x86 Runtime library
Compiled programs
From hand-written assembly
Standard input
Reading the library
Stepping
_Exit
<stdlib.h>- Declaration
void _Exit(int status)- Header
<stdlib.h>- From assembly
- status → rdi; returns nothing
call _Exit__assert_fail
<assert.h>- Declaration
void __assert_fail(const char *expr, const char *file, int line, const char *func)- Header
<assert.h>- From assembly
- expr → rdi; file → rsi; line → rdx; func → rcx; returns nothing
call __assert_failabort
<stdlib.h>- Declaration
void abort(void)- Header
<stdlib.h>- From assembly
- returns nothing
call abortabs
<stdlib.h>- Declaration
int abs(int n)- Header
<stdlib.h>- From assembly
- n → rdi; returns int in rax
call absacos
<math.h>- Declaration
double acos(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call acosaligned_alloc
<stdlib.h>- Declaration
void *aligned_alloc(size_t alignment, size_t size)- Header
<stdlib.h>- From assembly
- alignment → rdi; size → rsi; returns void * in rax
call aligned_allocasctime
<time.h>- Declaration
char *asctime(const struct tm *tm)- Header
<time.h>- From assembly
- tm → rdi; returns char * in rax
call asctimeasin
<math.h>- Declaration
double asin(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call asinatan
<math.h>- Declaration
double atan(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call atanatan2
<math.h>- Declaration
double atan2(double y, double x)- Header
<math.h>- From assembly
- y → xmm0; x → xmm1; returns double in xmm0
call atan2atexit
<stdlib.h>- Declaration
int atexit(void(*func)(void))- Header
<stdlib.h>- From assembly
- void(*func)(void) → rdi; returns int in rax
call atexitatof
<stdlib.h>- Declaration
double atof(const char *str)- Header
<stdlib.h>- From assembly
- str → rdi; returns double in xmm0
call atofatoi
<stdlib.h>- Declaration
int atoi(const char *str)- Header
<stdlib.h>- From assembly
- str → rdi; returns int in rax
call atoiatol
<stdlib.h>- Declaration
long atol(const char *str)- Header
<stdlib.h>- From assembly
- str → rdi; returns long in rax
call atolatoll
<stdlib.h>- Declaration
long long atoll(const char *str)- Header
<stdlib.h>- From assembly
- str → rdi; returns long long in rax
call atollbsearch
<stdlib.h>- Declaration
void *bsearch(const void *key, const void *base, size_t count, size_t size, int(*cmp)(const void *, const void *))- Header
<stdlib.h>- From assembly
- key → rdi; base → rsi; count → rdx; size → rcx; int(cmp)(const void , const void ) → r8; returns void in rax
call bsearchcalloc
<stdlib.h>- Declaration
void *calloc(size_t count, size_t size)- Header
<stdlib.h>- From assembly
- count → rdi; size → rsi; returns void * in rax
call calloccbrt
<math.h>- Declaration
double cbrt(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call cbrtceil
<math.h>- Declaration
double ceil(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call ceilceilf
<math.h>- Declaration
float ceilf(float x)- Header
<math.h>- From assembly
- x → xmm0; returns float in xmm0
call ceilfclearerr
<stdio.h>- Declaration
void clearerr(FILE *stream)- Header
<stdio.h>- From assembly
- stream → rdi; returns nothing
call clearerrclock
<time.h>- Declaration
clock_t clock(void)- Header
<time.h>- From assembly
- returns clock_t in rax
call clockcopysign
<math.h>- Declaration
double copysign(double x, double y)- Header
<math.h>- From assembly
- x → xmm0; y → xmm1; returns double in xmm0
call copysigncos
<math.h>- Declaration
double cos(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call coscosf
<math.h>- Declaration
float cosf(float x)- Header
<math.h>- From assembly
- x → xmm0; returns float in xmm0
call cosfcosh
<math.h>- Declaration
double cosh(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call coshctime
<time.h>- Declaration
char *ctime(const time_t *t)- Header
<time.h>- From assembly
- t → rdi; returns char * in rax
call ctimedifftime
<time.h>- Declaration
double difftime(time_t end, time_t start)- Header
<time.h>- From assembly
- end → rdi; start → rsi; returns double in xmm0
call difftimediv
<stdlib.h>- Declaration
div_t div(int num, int den)- Header
<stdlib.h>- From assembly
- num → rdi; den → rsi; returns div_t in rax
call divexit
<stdlib.h>- Declaration
void exit(int status)- Header
<stdlib.h>- From assembly
- status → rdi; returns nothing
call exitexp
<math.h>- Declaration
double exp(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call expexpf
<math.h>- Declaration
float expf(float x)- Header
<math.h>- From assembly
- x → xmm0; returns float in xmm0
call expfexpm1
<math.h>- Declaration
double expm1(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call expm1fabs
<math.h>- Declaration
double fabs(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call fabsfabsf
<math.h>- Declaration
float fabsf(float x)- Header
<math.h>- From assembly
- x → xmm0; returns float in xmm0
call fabsffclose
<stdio.h>- Declaration
int fclose(FILE *stream)- Header
<stdio.h>- From assembly
- stream → rdi; returns int in rax
call fclosefeof
<stdio.h>- Declaration
int feof(FILE *stream)- Header
<stdio.h>- From assembly
- stream → rdi; returns int in rax
call feofferror
<stdio.h>- Declaration
int ferror(FILE *stream)- Header
<stdio.h>- From assembly
- stream → rdi; returns int in rax
call ferrorfflush
<stdio.h>- Declaration
int fflush(FILE *stream)- Header
<stdio.h>- From assembly
- stream → rdi; returns int in rax
call fflushfgetc
<stdio.h>- Declaration
int fgetc(FILE *stream)- Header
<stdio.h>- From assembly
- stream → rdi; returns int in rax
call fgetcfgetpos
<stdio.h>- Declaration
int fgetpos(FILE *stream, fpos_t *pos)- Header
<stdio.h>- From assembly
- stream → rdi; pos → rsi; returns int in rax
call fgetposfgets
<stdio.h>- Declaration
char *fgets(char *str, int n, FILE *stream)- Header
<stdio.h>- From assembly
- str → rdi; n → rsi; stream → rdx; returns char * in rax
call fgetsfloor
<math.h>- Declaration
double floor(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call floorfloorf
<math.h>- Declaration
float floorf(float x)- Header
<math.h>- From assembly
- x → xmm0; returns float in xmm0
call floorffmax
<math.h>- Declaration
double fmax(double x, double y)- Header
<math.h>- From assembly
- x → xmm0; y → xmm1; returns double in xmm0
call fmaxfmin
<math.h>- Declaration
double fmin(double x, double y)- Header
<math.h>- From assembly
- x → xmm0; y → xmm1; returns double in xmm0
call fminfmod
<math.h>- Declaration
double fmod(double x, double y)- Header
<math.h>- From assembly
- x → xmm0; y → xmm1; returns double in xmm0
call fmodfmodf
<math.h>- Declaration
float fmodf(float x, float y)- Header
<math.h>- From assembly
- x → xmm0; y → xmm1; returns float in xmm0
call fmodffopen
<stdio.h>- Declaration
FILE *fopen(const char *path, const char *mode)- Header
<stdio.h>- From assembly
- path → rdi; mode → rsi; returns FILE * in rax
call fopenfprintf
<stdio.h>- Declaration
int fprintf(FILE *stream, const char *format, ...)- Header
<stdio.h>- From assembly
- stream → rdi; format → rsi; the remaining arguments → the next free integer or xmm registers, then the stack; al = how many xmm registers hold arguments; returns int in rax
call fprintffputc
<stdio.h>- Declaration
int fputc(int c, FILE *stream)- Header
<stdio.h>- From assembly
- c → rdi; stream → rsi; returns int in rax
call fputcfputs
<stdio.h>- Declaration
int fputs(const char *str, FILE *stream)- Header
<stdio.h>- From assembly
- str → rdi; stream → rsi; returns int in rax
call fputsfread
<stdio.h>- Declaration
size_t fread(void *ptr, size_t size, size_t count, FILE *stream)- Header
<stdio.h>- From assembly
- ptr → rdi; size → rsi; count → rdx; stream → rcx; returns size_t in rax
call freadfree
<stdlib.h>- Declaration
void free(void *ptr)- Header
<stdlib.h>- From assembly
- ptr → rdi; returns nothing
call freefreopen
<stdio.h>- Declaration
FILE *freopen(const char *path, const char *mode, FILE *stream)- Header
<stdio.h>- From assembly
- path → rdi; mode → rsi; stream → rdx; returns FILE * in rax
call freopenfrexp
<math.h>- Declaration
double frexp(double x, int *exp)- Header
<math.h>- From assembly
- x → xmm0; exp → rdi; returns double in xmm0
call frexpfscanf
<stdio.h>- Declaration
int fscanf(FILE *stream, const char *format, ...)- Header
<stdio.h>- From assembly
- stream → rdi; format → rsi; the remaining arguments → the next free integer or xmm registers, then the stack; al = how many xmm registers hold arguments; returns int in rax
call fscanffseek
<stdio.h>- Declaration
int fseek(FILE *stream, long offset, int whence)- Header
<stdio.h>- From assembly
- stream → rdi; offset → rsi; whence → rdx; returns int in rax
call fseekfsetpos
<stdio.h>- Declaration
int fsetpos(FILE *stream, const fpos_t *pos)- Header
<stdio.h>- From assembly
- stream → rdi; pos → rsi; returns int in rax
call fsetposftell
<stdio.h>- Declaration
long ftell(FILE *stream)- Header
<stdio.h>- From assembly
- stream → rdi; returns long in rax
call ftellfwrite
<stdio.h>- Declaration
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream)- Header
<stdio.h>- From assembly
- ptr → rdi; size → rsi; count → rdx; stream → rcx; returns size_t in rax
call fwritegetc
<stdio.h>- Declaration
int getc(FILE *stream)- Header
<stdio.h>- From assembly
- stream → rdi; returns int in rax
call getcgetchar
<stdio.h>- Declaration
int getchar(void)- Header
<stdio.h>- From assembly
- returns int in rax
call getchargetenv
<stdlib.h>- Declaration
char *getenv(const char *name)- Header
<stdlib.h>- From assembly
- name → rdi; returns char * in rax
call getenvgmtime
<time.h>- Declaration
struct tm *gmtime(const time_t *t)- Header
<time.h>- From assembly
- t → rdi; returns struct tm * in rax
call gmtimehypot
<math.h>- Declaration
double hypot(double x, double y)- Header
<math.h>- From assembly
- x → xmm0; y → xmm1; returns double in xmm0
call hypotimaxabs
<inttypes.h>- Declaration
intmax_t imaxabs(intmax_t n)- Header
<inttypes.h>- From assembly
- n → rdi; returns intmax_t in rax
call imaxabsimaxdiv
<inttypes.h>- Declaration
imaxdiv_t imaxdiv(intmax_t num, intmax_t den)- Header
<inttypes.h>- From assembly
- num → rdi; den → rsi; returns imaxdiv_t in rax:rdx
call imaxdivisalnum
<ctype.h>- Declaration
int isalnum(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call isalnumisalpha
<ctype.h>- Declaration
int isalpha(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call isalphaisblank
<ctype.h>- Declaration
int isblank(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call isblankiscntrl
<ctype.h>- Declaration
int iscntrl(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call iscntrlisdigit
<ctype.h>- Declaration
int isdigit(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call isdigitisgraph
<ctype.h>- Declaration
int isgraph(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call isgraphislower
<ctype.h>- Declaration
int islower(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call islowerisprint
<ctype.h>- Declaration
int isprint(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call isprintispunct
<ctype.h>- Declaration
int ispunct(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call ispunctisspace
<ctype.h>- Declaration
int isspace(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call isspaceisupper
<ctype.h>- Declaration
int isupper(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call isupperisxdigit
<ctype.h>- Declaration
int isxdigit(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call isxdigitlabs
<stdlib.h>- Declaration
long labs(long n)- Header
<stdlib.h>- From assembly
- n → rdi; returns long in rax
call labsldexp
<math.h>- Declaration
double ldexp(double x, int exp)- Header
<math.h>- From assembly
- x → xmm0; exp → rdi; returns double in xmm0
call ldexpldiv
<stdlib.h>- Declaration
ldiv_t ldiv(long num, long den)- Header
<stdlib.h>- From assembly
- num → rdi; den → rsi; returns ldiv_t in rax:rdx
call ldivllabs
<stdlib.h>- Declaration
long long llabs(long long n)- Header
<stdlib.h>- From assembly
- n → rdi; returns long long in rax
call llabslldiv
<stdlib.h>- Declaration
lldiv_t lldiv(long long num, long long den)- Header
<stdlib.h>- From assembly
- num → rdi; den → rsi; returns lldiv_t in rax:rdx
call lldivlocaltime
<time.h>- Declaration
struct tm *localtime(const time_t *t)- Header
<time.h>- From assembly
- t → rdi; returns struct tm * in rax
call localtimelog
<math.h>- Declaration
double log(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call loglog10
<math.h>- Declaration
double log10(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call log10log2
<math.h>- Declaration
double log2(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call log2logf
<math.h>- Declaration
float logf(float x)- Header
<math.h>- From assembly
- x → xmm0; returns float in xmm0
call logfmalloc
<stdlib.h>- Declaration
void *malloc(size_t size)- Header
<stdlib.h>- From assembly
- size → rdi; returns void * in rax
call mallocmemchr
<string.h>- Declaration
void *memchr(const void *s, int c, size_t n)- Header
<string.h>- From assembly
- s → rdi; c → rsi; n → rdx; returns void * in rax
call memchrmemcmp
<string.h>- Declaration
int memcmp(const void *a, const void *b, size_t n)- Header
<string.h>- From assembly
- a → rdi; b → rsi; n → rdx; returns int in rax
call memcmpmemcpy
<string.h>- Declaration
void *memcpy(void *dest, const void *src, size_t n)- Header
<string.h>- From assembly
- dest → rdi; src → rsi; n → rdx; returns void * in rax
call memcpymemmove
<string.h>- Declaration
void *memmove(void *dest, const void *src, size_t n)- Header
<string.h>- From assembly
- dest → rdi; src → rsi; n → rdx; returns void * in rax
call memmovememset
<string.h>- Declaration
void *memset(void *dest, int c, size_t n)- Header
<string.h>- From assembly
- dest → rdi; c → rsi; n → rdx; returns void * in rax
call memsetmktime
<time.h>- Declaration
time_t mktime(struct tm *tm)- Header
<time.h>- From assembly
- tm → rdi; returns time_t in rax
call mktimemodf
<math.h>- Declaration
double modf(double x, double *ip)- Header
<math.h>- From assembly
- x → xmm0; ip → rdi; returns double in xmm0
call modfperror
<stdio.h>- Declaration
void perror(const char *msg)- Header
<stdio.h>- From assembly
- msg → rdi; returns nothing
call perrorpow
<math.h>- Declaration
double pow(double x, double y)- Header
<math.h>- From assembly
- x → xmm0; y → xmm1; returns double in xmm0
call powpowf
<math.h>- Declaration
float powf(float x, float y)- Header
<math.h>- From assembly
- x → xmm0; y → xmm1; returns float in xmm0
call powfprintf
<stdio.h>- Declaration
int printf(const char *format, ...)- Header
<stdio.h>- From assembly
- format → rdi; the remaining arguments → the next free integer or xmm registers, then the stack; al = how many xmm registers hold arguments; returns int in rax
call printfputc
<stdio.h>- Declaration
int putc(int c, FILE *stream)- Header
<stdio.h>- From assembly
- c → rdi; stream → rsi; returns int in rax
call putcputchar
<stdio.h>- Declaration
int putchar(int c)- Header
<stdio.h>- From assembly
- c → rdi; returns int in rax
call putcharputs
<stdio.h>- Declaration
int puts(const char *str)- Header
<stdio.h>- From assembly
- str → rdi; returns int in rax
call putsqsort
<stdlib.h>- Declaration
void qsort(void *base, size_t count, size_t size, int(*cmp)(const void *, const void *))- Header
<stdlib.h>- From assembly
- base → rdi; count → rsi; size → rdx; int(cmp)(const void , const void *) → rcx; returns nothing
call qsortrand
<stdlib.h>- Declaration
int rand(void)- Header
<stdlib.h>- From assembly
- returns int in rax
call randrealloc
<stdlib.h>- Declaration
void *realloc(void *ptr, size_t size)- Header
<stdlib.h>- From assembly
- ptr → rdi; size → rsi; returns void * in rax
call reallocrewind
<stdio.h>- Declaration
void rewind(FILE *stream)- Header
<stdio.h>- From assembly
- stream → rdi; returns nothing
call rewindround
<math.h>- Declaration
double round(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call roundroundf
<math.h>- Declaration
float roundf(float x)- Header
<math.h>- From assembly
- x → xmm0; returns float in xmm0
call roundfscalbn
<math.h>- Declaration
double scalbn(double x, int n)- Header
<math.h>- From assembly
- x → xmm0; n → rdi; returns double in xmm0
call scalbnscanf
<stdio.h>- Declaration
int scanf(const char *format, ...)- Header
<stdio.h>- From assembly
- format → rdi; the remaining arguments → the next free integer or xmm registers, then the stack; al = how many xmm registers hold arguments; returns int in rax
call scanfsetbuf
<stdio.h>- Declaration
void setbuf(FILE *stream, char *buf)- Header
<stdio.h>- From assembly
- stream → rdi; buf → rsi; returns nothing
call setbufsetvbuf
<stdio.h>- Declaration
int setvbuf(FILE *stream, char *buf, int mode, size_t size)- Header
<stdio.h>- From assembly
- stream → rdi; buf → rsi; mode → rdx; size → rcx; returns int in rax
call setvbufsin
<math.h>- Declaration
double sin(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call sinsincos
<math.h>- Declaration
void sincos(double x, double *s, double *c)- Header
<math.h>- From assembly
- x → xmm0; s → rdi; c → rsi; returns nothing
call sincossincosf
<math.h>- Declaration
void sincosf(float x, float *s, float *c)- Header
<math.h>- From assembly
- x → xmm0; s → rdi; c → rsi; returns nothing
call sincosfsinf
<math.h>- Declaration
float sinf(float x)- Header
<math.h>- From assembly
- x → xmm0; returns float in xmm0
call sinfsinh
<math.h>- Declaration
double sinh(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call sinhsnprintf
<stdio.h>- Declaration
int snprintf(char *str, size_t n, const char *format, ...)- Header
<stdio.h>- From assembly
- str → rdi; n → rsi; format → rdx; the remaining arguments → the next free integer or xmm registers, then the stack; al = how many xmm registers hold arguments; returns int in rax
call snprintfsprintf
<stdio.h>- Declaration
int sprintf(char *str, const char *format, ...)- Header
<stdio.h>- From assembly
- str → rdi; format → rsi; the remaining arguments → the next free integer or xmm registers, then the stack; al = how many xmm registers hold arguments; returns int in rax
call sprintfsqrt
<math.h>- Declaration
double sqrt(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call sqrtsqrtf
<math.h>- Declaration
float sqrtf(float x)- Header
<math.h>- From assembly
- x → xmm0; returns float in xmm0
call sqrtfsrand
<stdlib.h>- Declaration
void srand(unsigned int seed)- Header
<stdlib.h>- From assembly
- seed → rdi; returns nothing
call srandsscanf
<stdio.h>- Declaration
int sscanf(const char *str, const char *format, ...)- Header
<stdio.h>- From assembly
- str → rdi; format → rsi; the remaining arguments → the next free integer or xmm registers, then the stack; al = how many xmm registers hold arguments; returns int in rax
call sscanfstrcat
<string.h>- Declaration
char *strcat(char *dest, const char *src)- Header
<string.h>- From assembly
- dest → rdi; src → rsi; returns char * in rax
call strcatstrchr
<string.h>- Declaration
char *strchr(const char *s, int c)- Header
<string.h>- From assembly
- s → rdi; c → rsi; returns char * in rax
call strchrstrcmp
<string.h>- Declaration
int strcmp(const char *a, const char *b)- Header
<string.h>- From assembly
- a → rdi; b → rsi; returns int in rax
call strcmpstrcoll
<string.h>- Declaration
int strcoll(const char *a, const char *b)- Header
<string.h>- From assembly
- a → rdi; b → rsi; returns int in rax
call strcollstrcpy
<string.h>- Declaration
char *strcpy(char *dest, const char *src)- Header
<string.h>- From assembly
- dest → rdi; src → rsi; returns char * in rax
call strcpystrcspn
<string.h>- Declaration
size_t strcspn(const char *s, const char *reject)- Header
<string.h>- From assembly
- s → rdi; reject → rsi; returns size_t in rax
call strcspnstrdup
<string.h>- Declaration
char *strdup(const char *s)- Header
<string.h>- From assembly
- s → rdi; returns char * in rax
call strdupstrerror
<string.h>- Declaration
char *strerror(int errnum)- Header
<string.h>- From assembly
- errnum → rdi; returns char * in rax
call strerrorstrlen
<string.h>- Declaration
size_t strlen(const char *s)- Header
<string.h>- From assembly
- s → rdi; returns size_t in rax
call strlenstrncat
<string.h>- Declaration
char *strncat(char *dest, const char *src, size_t n)- Header
<string.h>- From assembly
- dest → rdi; src → rsi; n → rdx; returns char * in rax
call strncatstrncmp
<string.h>- Declaration
int strncmp(const char *a, const char *b, size_t n)- Header
<string.h>- From assembly
- a → rdi; b → rsi; n → rdx; returns int in rax
call strncmpstrncpy
<string.h>- Declaration
char *strncpy(char *dest, const char *src, size_t n)- Header
<string.h>- From assembly
- dest → rdi; src → rsi; n → rdx; returns char * in rax
call strncpystrndup
<string.h>- Declaration
char *strndup(const char *s, size_t n)- Header
<string.h>- From assembly
- s → rdi; n → rsi; returns char * in rax
call strndupstrnlen
<string.h>- Declaration
size_t strnlen(const char *s, size_t n)- Header
<string.h>- From assembly
- s → rdi; n → rsi; returns size_t in rax
call strnlenstrpbrk
<string.h>- Declaration
char *strpbrk(const char *s, const char *accept)- Header
<string.h>- From assembly
- s → rdi; accept → rsi; returns char * in rax
call strpbrkstrrchr
<string.h>- Declaration
char *strrchr(const char *s, int c)- Header
<string.h>- From assembly
- s → rdi; c → rsi; returns char * in rax
call strrchrstrspn
<string.h>- Declaration
size_t strspn(const char *s, const char *accept)- Header
<string.h>- From assembly
- s → rdi; accept → rsi; returns size_t in rax
call strspnstrstr
<string.h>- Declaration
char *strstr(const char *haystack, const char *needle)- Header
<string.h>- From assembly
- haystack → rdi; needle → rsi; returns char * in rax
call strstrstrtod
<stdlib.h>- Declaration
double strtod(const char *str, char * *end)- Header
<stdlib.h>- From assembly
- str → rdi; end → rsi; returns double in xmm0
call strtodstrtof
<stdlib.h>- Declaration
float strtof(const char *str, char * *end)- Header
<stdlib.h>- From assembly
- str → rdi; end → rsi; returns float in xmm0
call strtofstrtoimax
<inttypes.h>- Declaration
intmax_t strtoimax(const char *str, char * *end, int base)- Header
<inttypes.h>- From assembly
- str → rdi; end → rsi; base → rdx; returns intmax_t in rax
call strtoimaxstrtok
<string.h>- Declaration
char *strtok(char *str, const char *delim)- Header
<string.h>- From assembly
- str → rdi; delim → rsi; returns char * in rax
call strtokstrtol
<stdlib.h>- Declaration
long strtol(const char *str, char * *end, int base)- Header
<stdlib.h>- From assembly
- str → rdi; end → rsi; base → rdx; returns long in rax
call strtolstrtoll
<stdlib.h>- Declaration
long long strtoll(const char *str, char * *end, int base)- Header
<stdlib.h>- From assembly
- str → rdi; end → rsi; base → rdx; returns long long in rax
call strtollstrtoul
<stdlib.h>- Declaration
unsigned long strtoul(const char *str, char * *end, int base)- Header
<stdlib.h>- From assembly
- str → rdi; end → rsi; base → rdx; returns unsigned long in rax
call strtoulstrtoull
<stdlib.h>- Declaration
unsigned long long strtoull(const char *str, char * *end, int base)- Header
<stdlib.h>- From assembly
- str → rdi; end → rsi; base → rdx; returns unsigned long long in rax
call strtoullstrtoumax
<inttypes.h>- Declaration
uintmax_t strtoumax(const char *str, char * *end, int base)- Header
<inttypes.h>- From assembly
- str → rdi; end → rsi; base → rdx; returns uintmax_t in rax
call strtoumaxstrxfrm
<string.h>- Declaration
size_t strxfrm(char *dest, const char *src, size_t n)- Header
<string.h>- From assembly
- dest → rdi; src → rsi; n → rdx; returns size_t in rax
call strxfrmtan
<math.h>- Declaration
double tan(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call tantanf
<math.h>- Declaration
float tanf(float x)- Header
<math.h>- From assembly
- x → xmm0; returns float in xmm0
call tanftanh
<math.h>- Declaration
double tanh(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call tanhtime
<time.h>- Declaration
time_t time(time_t *t)- Header
<time.h>- From assembly
- t → rdi; returns time_t in rax
call timetolower
<ctype.h>- Declaration
int tolower(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call tolowertoupper
<ctype.h>- Declaration
int toupper(int c)- Header
<ctype.h>- From assembly
- c → rdi; returns int in rax
call touppertrunc
<math.h>- Declaration
double trunc(double x)- Header
<math.h>- From assembly
- x → xmm0; returns double in xmm0
call trunctruncf
<math.h>- Declaration
float truncf(float x)- Header
<math.h>- From assembly
- x → xmm0; returns float in xmm0
call truncfungetc
<stdio.h>- Declaration
int ungetc(int c, FILE *stream)- Header
<stdio.h>- From assembly
- c → rdi; stream → rsi; returns int in rax
call ungetcvfprintf
<stdio.h>- Declaration
int vfprintf(FILE *stream, const char *format, va_list ap)- Header
<stdio.h>- From assembly
- stream → rdi; format → rsi; ap → rdx; returns int in rax
call vfprintfvfscanf
<stdio.h>- Declaration
int vfscanf(FILE *stream, const char *format, va_list ap)- Header
<stdio.h>- From assembly
- stream → rdi; format → rsi; ap → rdx; returns int in rax
call vfscanfvprintf
<stdio.h>- Declaration
int vprintf(const char *format, va_list ap)- Header
<stdio.h>- From assembly
- format → rdi; ap → rsi; returns int in rax
call vprintfvscanf
<stdio.h>- Declaration
int vscanf(const char *format, va_list ap)- Header
<stdio.h>- From assembly
- format → rdi; ap → rsi; returns int in rax
call vscanfvsnprintf
<stdio.h>- Declaration
int vsnprintf(char *str, size_t n, const char *format, va_list ap)- Header
<stdio.h>- From assembly
- str → rdi; n → rsi; format → rdx; ap → rcx; returns int in rax
call vsnprintfvsprintf
<stdio.h>- Declaration
int vsprintf(char *str, const char *format, va_list ap)- Header
<stdio.h>- From assembly
- str → rdi; format → rsi; ap → rdx; returns int in rax
call vsprintfvsscanf
<stdio.h>- Declaration
int vsscanf(const char *str, const char *format, va_list ap)- Header
<stdio.h>- From assembly
- str → rdi; format → rsi; ap → rdx; returns int in rax
call vsscanf