diff --git a/.gitignore b/.gitignore index b4d180c..1417248 100644 --- a/.gitignore +++ b/.gitignore @@ -91,3 +91,7 @@ ENV/ .vscode .benchmarks .pytest_cache + +scripts/libc_functions_args/tables/libc.txt.gz +scripts/libc_function_args/tables/x86_64.json +scripts/libc_function_args/tables/x86_32.json diff --git a/requirements.txt b/requirements.txt index e3f2441..e3c0dac 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,8 @@ -retdec-python +capstone +keystone-engine pygments +retdec-python +requests +ropper rpyc -keystone-engine -capstone unicorn -ropper diff --git a/scripts/assemble.py b/scripts/assemble.py index 6afa28a..79d0f21 100644 --- a/scripts/assemble.py +++ b/scripts/assemble.py @@ -17,15 +17,18 @@ # Format: # ARCH = [MODES] # with MODE = (NAME, HAS_LITTLE_ENDIAN, HAS_BIG_ENDIAN) - "ARM": [("ARM", True, True), ("THUMB", True, True), - ("ARMV8", True, True), ("THUMBV8", True, True)], - "ARM64": [("0", True, False)], - "MIPS": [("MIPS32", True, True), ("MIPS64", True, True)], - "PPC": [("PPC32", False, True), ("PPC64", True, True)], - "SPARC": [("SPARC32", True, True), ("SPARC64", False, True)], - "SYSTEMZ": [("SYSTEMZ", True, True)], - "X86": [("16", True, False), ("32", True, False), - ("64", True, False)] + "ARM": [ + ("ARM", True, True), + ("THUMB", True, True), + ("ARMV8", True, True), + ("THUMBV8", True, True), + ], + "ARM64": [("0", True, False)], + "MIPS": [("MIPS32", True, True), ("MIPS64", True, True)], + "PPC": [("PPC32", False, True), ("PPC64", True, True)], + "SPARC": [("SPARC32", True, True), ("SPARC64", False, True)], + "SYSTEMZ": [("SYSTEMZ", True, True)], + "X86": [("16", True, False), ("32", True, False), ("64", True, False)], } VALID_ARCHS = VALID_ARCH_MODES.keys() VALID_MODES = [_ for sublist in VALID_ARCH_MODES.values() for _ in sublist] @@ -35,20 +38,32 @@ @register class AssembleCommand(GenericCommand): - """Inline code assemble. Architecture can be set in GEF runtime config. """ + """Inline code assemble. Architecture can be set in GEF runtime config.""" _cmdline_ = "assemble" _syntax_ = f"{_cmdline_} [-h] [--list-archs] [--mode MODE] [--arch ARCH] [--overwrite-location LOCATION] [--endian ENDIAN] [--as-shellcode] instruction;[instruction;...instruction;])" - _aliases_ = ["asm", ] - _example_ = (f"{_cmdline_} --arch x86 --mode 32 nop ; nop ; inc eax ; int3", - f"{_cmdline_} --arch arm --mode arm add r0, r0, 1") + _aliases_ = [ + "asm", + ] + _example_ = ( + f"{_cmdline_} --arch x86 --mode 32 nop ; nop ; inc eax ; int3", + f"{_cmdline_} --arch arm --mode arm add r0, r0, 1", + ) def __init__(self) -> None: super().__init__() self["default_architecture"] = ( - "X86", "Specify the default architecture to use when assembling") + "X86", + "Specify the default architecture to use when assembling", + ) self["default_mode"] = ( - "64", "Specify the default architecture to use when assembling") + "64", + "Specify the default architecture to use when assembling", + ) + self["default_endianess"] = ( + "little", + "Specify the default endianess to use when assembling", + ) return def pre_load(self) -> None: @@ -81,9 +96,23 @@ def list_archs(self) -> None: gef_print(f" * {mode:<7} ({endianness})") return - @parse_arguments({"instructions": [""]}, {"--mode": "", "--arch": "", "--overwrite-location": "", "--endian": "little", "--list-archs": True, "--as-shellcode": True}) + @parse_arguments( + {"instructions": [""]}, + { + "--arch": "", + "--mode": "", + "--endian": "", + "--overwrite-location": "", + "--list-archs": True, + "--as-shellcode": True, + }, + ) def do_invoke(self, _: List[str], **kwargs: Any) -> None: - arch_s, mode_s, endian_s = self["default_architecture"], self["default_mode"], "" + arch_s, mode_s, endian_s = ( + self["default_architecture"], + self["default_mode"], + self["default_endianess"], + ) args = kwargs["arguments"] if args.list_archs: @@ -96,19 +125,22 @@ def do_invoke(self, _: List[str], **kwargs: Any) -> None: if is_alive(): arch_s, mode_s = gef.arch.arch, gef.arch.mode - endian_s = "big" if gef.arch.endianness == Endianness.BIG_ENDIAN else "" + endian_s = ( + "big" if gef.arch.endianness == Endianness.BIG_ENDIAN else "little" + ) - if not args.arch: - err("An architecture must be provided") - return + if args.arch: + arch_s = args.arch - if not args.mode: - err("A mode must be provided") - return + if args.mode: + mode_s = args.mode + + if args.endian: + endian_s = args.endian - arch_s = args.arch.upper() - mode_s = args.mode.upper() - endian_s = args.endian.upper() + arch_s = arch_s.upper() + mode_s = mode_s.upper() + endian_s = endian_s.upper() if arch_s not in VALID_ARCH_MODES: raise AttributeError(f"invalid arch '{arch_s}'") @@ -117,12 +149,17 @@ def do_invoke(self, _: List[str], **kwargs: Any) -> None: try: mode_idx = [m[0] for m in valid_modes].index(mode_s) except ValueError: + raise AttributeError(f"invalid mode '{mode_s}' for arch '{arch_s}'") + + if ( + endian_s == "little" + and not valid_modes[mode_idx][1] + or endian_s == "big" + and not valid_modes[mode_idx][2] + ): raise AttributeError( - f"invalid mode '{mode_s}' for arch '{arch_s}'") - - if endian_s == "little" and not valid_modes[mode_idx][1] or endian_s == "big" and not valid_modes[mode_idx][2]: - raise AttributeError( - f"invalid endianness '{endian_s}' for arch/mode '{arch_s}:{mode_s}'") + f"invalid endianness '{endian_s}' for arch/mode '{arch_s}:{mode_s}'" + ) ks_arch: int = getattr(keystone, f"KS_ARCH_{arch_s}") # manual fixups @@ -131,10 +168,8 @@ def do_invoke(self, _: List[str], **kwargs: Any) -> None: ks_mode = 0 else: ks_mode: int = getattr(keystone, f"KS_MODE_{mode_s}") - ks_endian: int = getattr( - keystone, f"KS_MODE_{endian_s}_ENDIAN") - insns = [x.strip() - for x in " ".join(args.instructions).split(";") if x] + ks_endian: int = getattr(keystone, f"KS_MODE_{endian_s}_ENDIAN") + insns = [x.strip() for x in " ".join(args.instructions).split(";") if x] info(f"Assembling {len(insns)} instruction(s) for {arch_s}:{mode_s}") if args.as_shellcode: @@ -151,8 +186,7 @@ def do_invoke(self, _: List[str], **kwargs: Any) -> None: raw += res s = binascii.hexlify(res) - res = b"\\x" + b"\\x".join([s[i:i + 2] - for i in range(0, len(s), 2)]) + res = b"\\x" + b"\\x".join([s[i : i + 2] for i in range(0, len(s), 2)]) res = res.decode("utf-8") if args.as_shellcode: @@ -163,17 +197,19 @@ def do_invoke(self, _: List[str], **kwargs: Any) -> None: if args.overwrite_location: if not is_alive(): warn( - "The debugging session is not active, cannot overwrite location. Skipping...") + "The debugging session is not active, cannot overwrite location. Skipping..." + ) return address = parse_address(args.overwrite_location) - info( - f"Overwriting {len(raw):d} bytes at {format_address(address)}") + info(f"Overwriting {len(raw):d} bytes at {format_address(address)}") gef.memory.write(address, raw, len(raw)) return -def ks_assemble(code: str, arch: int, mode: int, address: int = PLUGIN_ASSEMBLE_DEFAULT_ADDRESS) -> Optional[bytes]: +def ks_assemble( + code: str, arch: int, mode: int, address: int = PLUGIN_ASSEMBLE_DEFAULT_ADDRESS +) -> Optional[bytes]: """Assembly encoding function based on keystone.""" global __ks @@ -197,9 +233,11 @@ class ChangePermissionCommand(GenericCommand): """Change a page permission. By default, it will change it to 7 (RWX).""" _cmdline_ = "set-permission" - _syntax_ = (f"{_cmdline_} address [permission]\n" - "\taddress\t\tan address within the memory page for which the permissions should be changed\n" - "\tpermission\ta 3-bit bitmask with read=1, write=2 and execute=4 as integer") + _syntax_ = ( + f"{_cmdline_} address [permission]\n" + "\taddress\t\tan address within the memory page for which the permissions should be changed\n" + "\tpermission\ta 3-bit bitmask with read=1, write=2 and execute=4 as integer" + ) _aliases_ = ["mprotect"] _example_ = f"{_cmdline_} $sp 7" @@ -233,8 +271,10 @@ def do_invoke(self, argv: List[str]) -> None: size = sect.page_end - sect.page_start original_pc = gef.arch.pc - info(f"Generating sys_mprotect({sect.page_start:#x}, {size:#x}, " - f"'{perm!s}') stub for arch {get_arch()}") + info( + f"Generating sys_mprotect({sect.page_start:#x}, {size:#x}, " + f"'{perm!s}') stub for arch {get_arch()}" + ) stub = self.get_arch_and_mode(sect.page_start, size, perm) if stub is None: err("Failed to generate mprotect opcodes") @@ -254,7 +294,9 @@ def do_invoke(self, argv: List[str]) -> None: gdb.execute("continue") return - def get_arch_and_mode(self, addr: int, size: int, perm: Permission) -> Union[bytes, None]: + def get_arch_and_mode( + self, addr: int, size: int, perm: Permission + ) -> Union[bytes, None]: code = gef.arch.mprotect_asm(addr, size, perm) # arch, mode and endianness as seen by GEF @@ -271,8 +313,7 @@ def get_arch_and_mode(self, addr: int, size: int, perm: Permission) -> Union[byt ks_mode = 0 else: ks_mode: int = getattr(keystone, f"KS_MODE_{mode_s}") - ks_endian: int = getattr( - keystone, f"KS_MODE_{endian_s}") + ks_endian: int = getattr(keystone, f"KS_MODE_{endian_s}") addr = gef.arch.pc return ks_assemble(code, ks_arch, ks_mode | ks_endian, addr) diff --git a/scripts/libc_function_args/__init__.py b/scripts/libc_function_args/__init__.py index 1e95cf3..55541dd 100644 --- a/scripts/libc_function_args/__init__.py +++ b/scripts/libc_function_args/__init__.py @@ -33,15 +33,24 @@ def load_libc_args() -> bool: """Load the LIBC function arguments. Returns `True` on success, `False` or an Exception otherwise.""" # load libc function arguments' definitions - path = pathlib.Path( - GLIBC_FUNCTION_ARGS_CURRENT_DIRECTORY).expanduser().absolute() + path = ( + pathlib.Path(GLIBC_FUNCTION_ARGS_CURRENT_DIRECTORY).expanduser().absolute() + ) if not path.exists(): raise RuntimeError( - "Config `context.libc_args_path` set but it's not a directory") + "Config `context.libc_args_path` set but it's not a directory" + ) _arch_mode = f"{gef.arch.arch.lower()}_{gef.arch.mode}" _libc_args_file = path / f"tables/{_arch_mode}.json" + if not _libc_args_file.exists(): + # Try to generate the json table files + from .tables.generator import generate_all_json_files + + if not generate_all_json_files(): + raise RuntimeError("Failed to generate JSON table files") + # current arch and mode already loaded if _arch_mode in GlibcFunctionArguments.argument_table: return True @@ -50,14 +59,17 @@ def load_libc_args() -> bool: try: with _libc_args_file.open() as _libc_args: GlibcFunctionArguments.argument_table[_arch_mode] = json.load( - _libc_args) + _libc_args + ) return True except FileNotFoundError: warn( - f"Config context.libc_args is set but definition cannot be loaded: file {_libc_args_file} not found") + f"Config context.libc_args is set but definition cannot be loaded: file {_libc_args_file} not found" + ) except json.decoder.JSONDecodeError as e: warn( - f"Config context.libc_args is set but definition cannot be loaded from file {_libc_args_file}: {e}") + f"Config context.libc_args is set but definition cannot be loaded from file {_libc_args_file}: {e}" + ) GlibcFunctionArguments.argument_table[_arch_mode] = {} return False @@ -87,7 +99,8 @@ def pane_content() -> None: return function_basename = function_name.split("@")[0] nb_argument = len( - GlibcFunctionArguments.argument_table[_arch_mode][function_basename]) + GlibcFunctionArguments.argument_table[_arch_mode][function_basename] + ) args = [] for i in range(nb_argument): @@ -97,11 +110,10 @@ def pane_content() -> None: continue _values = RIGHT_ARROW.join(dereference_from(_values)) args.append( - f"\t{_key} = {_values} /* {GlibcFunctionArguments.argument_table[_arch_mode][function_basename][_key]}) */") + f"\t{_key} = {_values} /* {GlibcFunctionArguments.argument_table[_arch_mode][function_basename][_key]}) */" + ) - gef_print(f"{function_name} (\n", - '\n'.join(args), - "\n)") + gef_print(f"{function_name} (\n", "\n".join(args), "\n)") return @staticmethod @@ -118,9 +130,9 @@ def extract_called_function_name() -> str: 8: "QWORD", } - if insn.operands[-1].startswith(size2type[gef.arch.ptrsize]+" PTR"): + if insn.operands[-1].startswith(size2type[gef.arch.ptrsize] + " PTR"): function_name = "*" + insn.operands[-1].split()[-1] - elif "$"+insn.operands[0] in gef.arch.all_registers: + elif "$" + insn.operands[0] in gef.arch.all_registers: function_name = f"*{gef.arch.register('$' + insn.operands[0]):#x}" else: ops = " ".join(insn.operands) @@ -136,4 +148,8 @@ def extract_called_function_name() -> str: # Register the context pane # register_external_context_pane( - GLIBC_FUNCTION_ARGS_CONTEXT_PANE_INDEX, GlibcFunctionArguments.pane_content, pane_title_function=GlibcFunctionArguments.pane_title, condition=GlibcFunctionArguments.only_if_call) + GLIBC_FUNCTION_ARGS_CONTEXT_PANE_INDEX, + GlibcFunctionArguments.pane_content, + pane_title_function=GlibcFunctionArguments.pane_title, + condition=GlibcFunctionArguments.only_if_call, +) diff --git a/scripts/libc_function_args/tables/generate_glibc_args_json.py b/scripts/libc_function_args/tables/generate_glibc_args_json.py deleted file mode 100644 index 3339479..0000000 --- a/scripts/libc_function_args/tables/generate_glibc_args_json.py +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/env python3 -__AUTHOR__ = "theguly" -__VERSION__ = 0.1 - -import gzip -import json -import os -import sys - -function_dict = {} - - -def get_function_name(l): - pre_args = l.split(" (")[0] - _function_name = pre_args.split(" ")[-1] - return _function_name - - -def get_function_args(l): - _function_args = " (".join(l.split(" (")[1:]) - _function_args = ")".join(_function_args.split(")")[:-1]) - _function_args = _function_args.split(",") - ret_function_args = [] - for _function_arg in _function_args: - ret_function_args.append(_function_arg.lstrip().rstrip()) - return ret_function_args - - -def gen_json(function_dict, _params, outfile_name): - _dict = {} - for _key, _value in function_dict.items(): - _dict[_key] = {} - for i in range(0, len(_value)): - _dict[_key][_params[i]] = _value[i] - - if os.path.isfile(outfile_name): - print("file {} exists, overwrite? [y/N]".format(outfile_name)) - overwrite = input() - if "y" in overwrite.lower(): - print("overwriting {}".format(outfile_name)) - else: - print("not overwriting {}".format(outfile_name)) - return - with open(outfile_name, "w") as outfile: - json.dump(_dict, outfile) - print("{} written".format(outfile_name)) - - return - - -if __name__ == "__main__": - file_name = "libc.txt.gz" - - # looks like gzip.open doesn't raise any exception if opening a non-gzipped file. you'll end up with empty json - try: - fh = gzip.open(file_name, "r") - except FileNotFoundError: - print( - "file {} cannot be found. download it from https://www.gnu.org/software/libc/manual/text/libc.txt.gz".format( - file_name - ) - ) - sys.exit(-1) - - old_pos = fh.tell() - - while True: - line = fh.readline() - line = line.decode("utf-8") - - # check for EoF - current_pos = fh.tell() - if current_pos == old_pos: - break - else: - old_pos = current_pos - - if " -- Function: " in line: - # some function def span two lines, join them - line = line.replace(" -- Function: ", "").rstrip().rstrip(";").lstrip() - if not line.endswith(")"): - next_line = fh.readline() - next_line = next_line.decode("utf-8") - next_line = next_line.rstrip().lstrip() - line = "{} {}".format(line, next_line) - - function_name = get_function_name(line) - function_args = get_function_args(line) - - # there are two dupes as of now, get around the issue by using the last one found - if function_name in function_dict: - print("DUPE! {}".format(function_name)) - - function_dict[function_name] = [] - - for x in function_args: - function_dict[function_name].append(x) - - # generate x86_64 - gen_json( - function_dict, ["$rdi", "$rsi", "$rdx", "$r10", "$r8", "$r9"], "x86_64.json" - ) - # generate x86_32 - gen_json( - function_dict, - [ - "[sp + 0x0]", - "[sp + 0x4]", - "[sp + 0x8]", - "[sp + 0xc]", - "[sp + 0x10]", - "[sp + 0x14]", - ], - "x86_32.json", - ) diff --git a/scripts/libc_function_args/tables/generator.py b/scripts/libc_function_args/tables/generator.py new file mode 100644 index 0000000..1adc48a --- /dev/null +++ b/scripts/libc_function_args/tables/generator.py @@ -0,0 +1,143 @@ +#!/usr/bin/env python3 +__AUTHOR__ = "theguly" +__VERSION__ = 0.2 + +import gzip +import json +import logging +import pathlib +from typing import Dict, List + +import requests + +function_dict: Dict[str, List[str]] = {} + + +def __get_function_name(l: str) -> str: + pre_args = l.split(" (")[0] + _function_name = pre_args.split(" ")[-1] + return _function_name + + +def __get_function_args(l: str) -> list[str]: + _function_args = " (".join(l.split(" (")[1:]) + _function_args = ")".join(_function_args.split(")")[:-1]) + _function_args = _function_args.split(",") + ret_function_args = [_function_arg.strip() for _function_arg in _function_args] + return ret_function_args + + +def generate_json_file( + function_dict: dict[str, list[str]], _params: list[str], outfile_name: pathlib.Path +) -> bool: + _dict = {} + for _key, _value in function_dict.items(): + _dict[_key] = {} + for i in range(0, len(_value)): + _dict[_key][_params[i]] = _value[i] + + with open(outfile_name, "w") as outfile: + json.dump(_dict, outfile) + + logging.info(f"{outfile_name} written") + return True + + +def generate_all_json_files() -> bool: + curdir = pathlib.Path(__file__).parent + libc_file_path = curdir / "libc.txt.gz" + libc_x86_funcdef_fpath = curdir / "x86_32.json" + libc_x64_funcdef_fpath = curdir / "x86_64.json" + libc_funcdef_list = [libc_x86_funcdef_fpath, libc_x64_funcdef_fpath] + + if not libc_file_path.exists(): + # + # Try once to download if missing + # + url = "https://www.gnu.org/software/libc/manual/text/libc.txt.gz" + res = requests.get(url, stream=True) + if res.status_code == 200: + with libc_file_path.open("wb") as fd: + for chunk in res.iter_content(chunk_size=128): + fd.write(chunk) + + for f in (libc_x86_funcdef_fpath, libc_x64_funcdef_fpath): + if f.exists(): + overwrite = input(f"File {f} exists, overwrite? [y/N]") + if "y" in overwrite.lower(): + logging.debug(f"{f} will be overwritten") + else: + logging.info(f"Not overwriting {f}") + libc_funcdef_list.remove(f) + + if libc_funcdef_list: + # + # looks like gzip.open doesn't raise any exception if opening a non-gzipped file. you'll end up with empty json + # + try: + fh = gzip.open(libc_file_path, "r") + except FileNotFoundError: + logging.error(f"Missing {libc_file_path}.") + return False + + old_pos = fh.tell() + + while True: + line = fh.readline().decode("utf-8") + + # check for EoF + current_pos = fh.tell() + if current_pos == old_pos: + break + else: + old_pos = current_pos + + if " -- Function: " in line: + # some function def span two lines, join them + line = line.replace(" -- Function: ", "").rstrip().rstrip(";").lstrip() + if not line.endswith(")"): + next_line = fh.readline() + next_line = next_line.decode("utf-8") + next_line = next_line.rstrip().lstrip() + line = f"{line} {next_line}" + + function_name = __get_function_name(line) + function_args = __get_function_args(line) + + # there are two dupes as of now, get around the issue by using the last one found + if function_name in function_dict: + logging.warning(f"Found dupe for {function_name}") + + function_dict[function_name] = [] + + for x in function_args: + function_dict[function_name].append(x) + + # generate x86_64 + if libc_x64_funcdef_fpath in libc_funcdef_list and not generate_json_file( + function_dict, + ["$rdi", "$rsi", "$rdx", "$r10", "$r8", "$r9"], + libc_x64_funcdef_fpath, + ): + logging.error( + f"An error occurred while generating {libc_x64_funcdef_fpath}" + ) + + # generate x86_32 + if libc_x86_funcdef_fpath in libc_funcdef_list and not generate_json_file( + function_dict, + [ + "[sp + 0x0]", + "[sp + 0x4]", + "[sp + 0x8]", + "[sp + 0xc]", + "[sp + 0x10]", + "[sp + 0x14]", + ], + libc_x86_funcdef_fpath, + ): + logging.error( + f"An error occurred while generating {libc_x86_funcdef_fpath}" + ) + + return True diff --git a/scripts/libc_function_args/tables/libc.txt.gz b/scripts/libc_function_args/tables/libc.txt.gz new file mode 100644 index 0000000..42c1d44 Binary files /dev/null and b/scripts/libc_function_args/tables/libc.txt.gz differ diff --git a/scripts/libc_function_args/tables/x86_64.json b/scripts/libc_function_args/tables/x86_64.json index 39b899a..eeaa9bf 100644 --- a/scripts/libc_function_args/tables/x86_64.json +++ b/scripts/libc_function_args/tables/x86_64.json @@ -1 +1 @@ -{"strerror": {"$rdi": "int ERRNUM"}, "strerror_r": {"$rdi": "int ERRNUM", "$rsi": "char *BUF", "$rdx": "size_t N"}, "perror": {"$rdi": "const char *MESSAGE"}, "strerrorname_np": {"$rdi": "int ERRNUM"}, "strerrordesc_np": {"$rdi": "int ERRNUM"}, "error": {"$rdi": "int STATUS", "$rsi": "int ERRNUM", "$rdx": "const char *FORMAT", "$r10": "..."}, "error_at_line": {"$rdi": "int STATUS", "$rsi": "int ERRNUM", "$rdx": "const char *FNAME", "$r10": "unsigned int LINENO", "$r8": "const char *FORMAT", "$r9": "..."}, "warn": {"$rdi": "const char *FORMAT", "$rsi": "..."}, "vwarn": {"$rdi": "const char *FORMAT", "$rsi": "va_list AP"}, "warnx": {"$rdi": "const char *FORMAT", "$rsi": "..."}, "vwarnx": {"$rdi": "const char *FORMAT", "$rsi": "va_list AP"}, "err": {"$rdi": "int STATUS", "$rsi": "const char *FORMAT", "$rdx": "..."}, "verr": {"$rdi": "int STATUS", "$rsi": "const char *FORMAT", "$rdx": "va_list AP"}, "errx": {"$rdi": "int STATUS", "$rsi": "const char *FORMAT", "$rdx": "..."}, "verrx": {"$rdi": "int STATUS", "$rsi": "const char *FORMAT", "$rdx": "va_list AP"}, "malloc": {"$rdi": "size_t SIZE"}, "free": {"$rdi": "void *PTR"}, "realloc": {"$rdi": "void *PTR", "$rsi": "size_t NEWSIZE"}, "reallocarray": {"$rdi": "void *PTR", "$rsi": "size_t NMEMB", "$rdx": "size_t SIZE"}, "calloc": {"$rdi": "size_t COUNT", "$rsi": "size_t ELTSIZE"}, "aligned_alloc": {"$rdi": "size_t ALIGNMENT", "$rsi": "size_t SIZE"}, "memalign": {"$rdi": "size_t BOUNDARY", "$rsi": "size_t SIZE"}, "posix_memalign": {"$rdi": "void **MEMPTR", "$rsi": "size_t ALIGNMENT", "$rdx": "size_t SIZE"}, "valloc": {"$rdi": "size_t SIZE"}, "mallopt": {"$rdi": "int PARAM", "$rsi": "int VALUE"}, "mcheck": {"$rdi": "void (*ABORTFN) (enum mcheck_status STATUS)"}, "mprobe": {"$rdi": "void *POINTER"}, "mallinfo": {"$rdi": "void"}, "mtrace": {"$rdi": "void"}, "muntrace": {"$rdi": "void"}, "obstack_init": {"$rdi": "struct obstack *OBSTACK-PTR"}, "obstack_alloc": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "int SIZE"}, "obstack_copy": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *ADDRESS", "$rdx": "int SIZE"}, "obstack_copy0": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *ADDRESS", "$rdx": "int SIZE"}, "obstack_free": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *OBJECT"}, "obstack_blank": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "int SIZE"}, "obstack_grow": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *DATA", "$rdx": "int SIZE"}, "obstack_grow0": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *DATA", "$rdx": "int SIZE"}, "obstack_1grow": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "char C"}, "obstack_ptr_grow": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *DATA"}, "obstack_int_grow": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "int DATA"}, "obstack_finish": {"$rdi": "struct obstack *OBSTACK-PTR"}, "obstack_object_size": {"$rdi": "struct obstack *OBSTACK-PTR"}, "obstack_room": {"$rdi": "struct obstack *OBSTACK-PTR"}, "obstack_1grow_fast": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "char C"}, "obstack_ptr_grow_fast": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *DATA"}, "obstack_int_grow_fast": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "int DATA"}, "obstack_blank_fast": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "int SIZE"}, "obstack_base": {"$rdi": "struct obstack *OBSTACK-PTR"}, "obstack_next_free": {"$rdi": "struct obstack *OBSTACK-PTR"}, "alloca": {"$rdi": "size_t SIZE"}, "brk": {"$rdi": "void *ADDR"}, "*sbrk": {"$rdi": "ptrdiff_t DELTA"}, "mprotect": {"$rdi": "void *ADDRESS", "$rsi": "size_t LENGTH", "$rdx": "int PROTECTION"}, "pkey_alloc": {"$rdi": "unsigned int FLAGS", "$rsi": "unsigned int RESTRICTIONS"}, "pkey_free": {"$rdi": "int KEY"}, "pkey_mprotect": {"$rdi": "void *ADDRESS", "$rsi": "size_t LENGTH", "$rdx": "int PROTECTION", "$r10": "int KEY"}, "pkey_set": {"$rdi": "int KEY", "$rsi": "unsigned int RIGHTS"}, "pkey_get": {"$rdi": "int KEY"}, "mlock": {"$rdi": "const void *ADDR", "$rsi": "size_t LEN"}, "mlock2": {"$rdi": "const void *ADDR", "$rsi": "size_t LEN", "$rdx": "unsigned int FLAGS"}, "munlock": {"$rdi": "const void *ADDR", "$rsi": "size_t LEN"}, "mlockall": {"$rdi": "int FLAGS"}, "munlockall": {"$rdi": "void"}, "islower": {"$rdi": "int C"}, "isupper": {"$rdi": "int C"}, "isalpha": {"$rdi": "int C"}, "isdigit": {"$rdi": "int C"}, "isalnum": {"$rdi": "int C"}, "isxdigit": {"$rdi": "int C"}, "ispunct": {"$rdi": "int C"}, "isspace": {"$rdi": "int C"}, "isblank": {"$rdi": "int C"}, "isgraph": {"$rdi": "int C"}, "isprint": {"$rdi": "int C"}, "iscntrl": {"$rdi": "int C"}, "isascii": {"$rdi": "int C"}, "tolower": {"$rdi": "int C"}, "toupper": {"$rdi": "int C"}, "toascii": {"$rdi": "int C"}, "_tolower": {"$rdi": "int C"}, "_toupper": {"$rdi": "int C"}, "wctype": {"$rdi": "const char *PROPERTY"}, "iswctype": {"$rdi": "wint_t WC", "$rsi": "wctype_t DESC"}, "iswalnum": {"$rdi": "wint_t WC"}, "iswalpha": {"$rdi": "wint_t WC"}, "iswcntrl": {"$rdi": "wint_t WC"}, "iswdigit": {"$rdi": "wint_t WC"}, "iswgraph": {"$rdi": "wint_t WC"}, "iswlower": {"$rdi": "wint_t WC"}, "iswprint": {"$rdi": "wint_t WC"}, "iswpunct": {"$rdi": "wint_t WC"}, "iswspace": {"$rdi": "wint_t WC"}, "iswupper": {"$rdi": "wint_t WC"}, "iswxdigit": {"$rdi": "wint_t WC"}, "iswblank": {"$rdi": "wint_t WC"}, "wctrans": {"$rdi": "const char *PROPERTY"}, "towctrans": {"$rdi": "wint_t WC", "$rsi": "wctrans_t DESC"}, "towlower": {"$rdi": "wint_t WC"}, "towupper": {"$rdi": "wint_t WC"}, "strlen": {"$rdi": "const char *S"}, "wcslen": {"$rdi": "const wchar_t *WS"}, "strnlen": {"$rdi": "const char *S", "$rsi": "size_t MAXLEN"}, "wcsnlen": {"$rdi": "const wchar_t *WS", "$rsi": "size_t MAXLEN"}, "memcpy": {"$rdi": "void *restrict TO", "$rsi": "const void *restrict FROM", "$rdx": "size_t SIZE"}, "wmemcpy": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM", "$rdx": "size_t SIZE"}, "mempcpy": {"$rdi": "void *restrict TO", "$rsi": "const void *restrict FROM", "$rdx": "size_t SIZE"}, "wmempcpy": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM", "$rdx": "size_t SIZE"}, "memmove": {"$rdi": "void *TO", "$rsi": "const void *FROM", "$rdx": "size_t SIZE"}, "wmemmove": {"$rdi": "wchar_t *WTO", "$rsi": "const wchar_t *WFROM", "$rdx": "size_t SIZE"}, "memccpy": {"$rdi": "void *restrict TO", "$rsi": "const void *restrict FROM", "$rdx": "int C", "$r10": "size_t SIZE"}, "memset": {"$rdi": "void *BLOCK", "$rsi": "int C", "$rdx": "size_t SIZE"}, "wmemset": {"$rdi": "wchar_t *BLOCK", "$rsi": "wchar_t WC", "$rdx": "size_t SIZE"}, "strcpy": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM"}, "wcscpy": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM"}, "strdup": {"$rdi": "const char *S"}, "wcsdup": {"$rdi": "const wchar_t *WS"}, "stpcpy": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM"}, "wcpcpy": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM"}, "bcopy": {"$rdi": "const void *FROM", "$rsi": "void *TO", "$rdx": "size_t SIZE"}, "bzero": {"$rdi": "void *BLOCK", "$rsi": "size_t SIZE"}, "strcat": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM"}, "wcscat": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM"}, "strncpy": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM", "$rdx": "size_t SIZE"}, "wcsncpy": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM", "$rdx": "size_t SIZE"}, "strndup": {"$rdi": "const char *S", "$rsi": "size_t SIZE"}, "stpncpy": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM", "$rdx": "size_t SIZE"}, "wcpncpy": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM", "$rdx": "size_t SIZE"}, "strncat": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM", "$rdx": "size_t SIZE"}, "wcsncat": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM", "$rdx": "size_t SIZE"}, "memcmp": {"$rdi": "const void *A1", "$rsi": "const void *A2", "$rdx": "size_t SIZE"}, "wmemcmp": {"$rdi": "const wchar_t *A1", "$rsi": "const wchar_t *A2", "$rdx": "size_t SIZE"}, "strcmp": {"$rdi": "const char *S1", "$rsi": "const char *S2"}, "wcscmp": {"$rdi": "const wchar_t *WS1", "$rsi": "const wchar_t *WS2"}, "strcasecmp": {"$rdi": "const char *S1", "$rsi": "const char *S2"}, "wcscasecmp": {"$rdi": "const wchar_t *WS1", "$rsi": "const wchar_t *WS2"}, "strncmp": {"$rdi": "const char *S1", "$rsi": "const char *S2", "$rdx": "size_t SIZE"}, "wcsncmp": {"$rdi": "const wchar_t *WS1", "$rsi": "const wchar_t *WS2", "$rdx": "size_t SIZE"}, "strncasecmp": {"$rdi": "const char *S1", "$rsi": "const char *S2", "$rdx": "size_t N"}, "wcsncasecmp": {"$rdi": "const wchar_t *WS1", "$rsi": "const wchar_t *S2", "$rdx": "size_t N"}, "strverscmp": {"$rdi": "const char *S1", "$rsi": "const char *S2"}, "bcmp": {"$rdi": "const void *A1", "$rsi": "const void *A2", "$rdx": "size_t SIZE"}, "strcoll": {"$rdi": "const char *S1", "$rsi": "const char *S2"}, "wcscoll": {"$rdi": "const wchar_t *WS1", "$rsi": "const wchar_t *WS2"}, "strxfrm": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM", "$rdx": "size_t SIZE"}, "wcsxfrm": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *WFROM", "$rdx": "size_t SIZE"}, "memchr": {"$rdi": "const void *BLOCK", "$rsi": "int C", "$rdx": "size_t SIZE"}, "wmemchr": {"$rdi": "const wchar_t *BLOCK", "$rsi": "wchar_t WC", "$rdx": "size_t SIZE"}, "rawmemchr": {"$rdi": "const void *BLOCK", "$rsi": "int C"}, "memrchr": {"$rdi": "const void *BLOCK", "$rsi": "int C", "$rdx": "size_t SIZE"}, "strchr": {"$rdi": "const char *STRING", "$rsi": "int C"}, "wcschr": {"$rdi": "const wchar_t *WSTRING", "$rsi": "wchar_t WC"}, "strchrnul": {"$rdi": "const char *STRING", "$rsi": "int C"}, "wcschrnul": {"$rdi": "const wchar_t *WSTRING", "$rsi": "wchar_t WC"}, "strrchr": {"$rdi": "const char *STRING", "$rsi": "int C"}, "wcsrchr": {"$rdi": "const wchar_t *WSTRING", "$rsi": "wchar_t WC"}, "strstr": {"$rdi": "const char *HAYSTACK", "$rsi": "const char *NEEDLE"}, "wcsstr": {"$rdi": "const wchar_t *HAYSTACK", "$rsi": "const wchar_t *NEEDLE"}, "wcswcs": {"$rdi": "const wchar_t *HAYSTACK", "$rsi": "const wchar_t *NEEDLE"}, "strcasestr": {"$rdi": "const char *HAYSTACK", "$rsi": "const char *NEEDLE"}, "memmem": {"$rdi": "const void *HAYSTACK", "$rsi": "size_t HAYSTACK-LEN", "$rdx": "const void *NEEDLE", "$r10": "size_t NEEDLE-LEN"}, "strspn": {"$rdi": "const char *STRING", "$rsi": "const char *SKIPSET"}, "wcsspn": {"$rdi": "const wchar_t *WSTRING", "$rsi": "const wchar_t *SKIPSET"}, "strcspn": {"$rdi": "const char *STRING", "$rsi": "const char *STOPSET"}, "wcscspn": {"$rdi": "const wchar_t *WSTRING", "$rsi": "const wchar_t *STOPSET"}, "strpbrk": {"$rdi": "const char *STRING", "$rsi": "const char *STOPSET"}, "wcspbrk": {"$rdi": "const wchar_t *WSTRING", "$rsi": "const wchar_t *STOPSET"}, "index": {"$rdi": "const char *STRING", "$rsi": "int C"}, "rindex": {"$rdi": "const char *STRING", "$rsi": "int C"}, "strtok": {"$rdi": "char *restrict NEWSTRING", "$rsi": "const char *restrict DELIMITERS"}, "wcstok": {"$rdi": "wchar_t *NEWSTRING", "$rsi": "const wchar_t *DELIMITERS", "$rdx": "wchar_t **SAVE_PTR"}, "strtok_r": {"$rdi": "char *NEWSTRING", "$rsi": "const char *DELIMITERS", "$rdx": "char **SAVE_PTR"}, "strsep": {"$rdi": "char **STRING_PTR", "$rsi": "const char *DELIMITER"}, "basename": {"$rdi": "char *PATH"}, "dirname": {"$rdi": "char *PATH"}, "explicit_bzero": {"$rdi": "void *BLOCK", "$rsi": "size_t LEN"}, "strfry": {"$rdi": "char *STRING"}, "memfrob": {"$rdi": "void *MEM", "$rsi": "size_t LENGTH"}, "l64a": {"$rdi": "long int N"}, "a64l": {"$rdi": "const char *STRING"}, "argz_create": {"$rdi": "char *const ARGV[]", "$rsi": "char **ARGZ", "$rdx": "size_t *ARGZ_LEN"}, "argz_create_sep": {"$rdi": "const char *STRING", "$rsi": "int SEP", "$rdx": "char **ARGZ", "$r10": "size_t *ARGZ_LEN"}, "argz_count": {"$rdi": "const char *ARGZ", "$rsi": "size_t ARGZ_LEN"}, "argz_extract": {"$rdi": "const char *ARGZ", "$rsi": "size_t ARGZ_LEN", "$rdx": "char **ARGV"}, "argz_stringify": {"$rdi": "char *ARGZ", "$rsi": "size_t LEN", "$rdx": "int SEP"}, "argz_add": {"$rdi": "char **ARGZ", "$rsi": "size_t *ARGZ_LEN", "$rdx": "const char *STR"}, "argz_add_sep": {"$rdi": "char **ARGZ", "$rsi": "size_t *ARGZ_LEN", "$rdx": "const char *STR", "$r10": "int DELIM"}, "argz_append": {"$rdi": "char **ARGZ", "$rsi": "size_t *ARGZ_LEN", "$rdx": "const char *BUF", "$r10": "size_t BUF_LEN"}, "argz_delete": {"$rdi": "char **ARGZ", "$rsi": "size_t *ARGZ_LEN", "$rdx": "char *ENTRY"}, "argz_insert": {"$rdi": "char **ARGZ", "$rsi": "size_t *ARGZ_LEN", "$rdx": "char *BEFORE", "$r10": "const char *ENTRY"}, "argz_next": {"$rdi": "const char *ARGZ", "$rsi": "size_t ARGZ_LEN", "$rdx": "const char *ENTRY"}, "argz_replace": {"$rdi": "char **ARGZ", "$rsi": "size_t *ARGZ_LEN", "$rdx": "const char *STR", "$r10": "const char *WITH", "$r8": "unsigned *REPLACE_COUNT"}, "envz_entry": {"$rdi": "const char *ENVZ", "$rsi": "size_t ENVZ_LEN", "$rdx": "const char *NAME"}, "envz_get": {"$rdi": "const char *ENVZ", "$rsi": "size_t ENVZ_LEN", "$rdx": "const char *NAME"}, "envz_add": {"$rdi": "char **ENVZ", "$rsi": "size_t *ENVZ_LEN", "$rdx": "const char *NAME", "$r10": "const char *VALUE"}, "envz_merge": {"$rdi": "char **ENVZ", "$rsi": "size_t *ENVZ_LEN", "$rdx": "const char *ENVZ2", "$r10": "size_t ENVZ2_LEN", "$r8": "int OVERRIDE"}, "envz_strip": {"$rdi": "char **ENVZ", "$rsi": "size_t *ENVZ_LEN"}, "envz_remove": {"$rdi": "char **ENVZ", "$rsi": "size_t *ENVZ_LEN", "$rdx": "const char *NAME"}, "mbsinit": {"$rdi": "const mbstate_t *PS"}, "btowc": {"$rdi": "int C"}, "wctob": {"$rdi": "wint_t C"}, "mbrtowc": {"$rdi": "wchar_t *restrict PWC", "$rsi": "const char *restrict S", "$rdx": "size_t N", "$r10": "mbstate_t *restrict PS"}, "mbrlen": {"$rdi": "const char *restrict S", "$rsi": "size_t N", "$rdx": "mbstate_t *PS"}, "wcrtomb": {"$rdi": "char *restrict S", "$rsi": "wchar_t WC", "$rdx": "mbstate_t *restrict PS"}, "mbsrtowcs": {"$rdi": "wchar_t *restrict DST", "$rsi": "const char **restrict SRC", "$rdx": "size_t LEN", "$r10": "mbstate_t *restrict PS"}, "wcsrtombs": {"$rdi": "char *restrict DST", "$rsi": "const wchar_t **restrict SRC", "$rdx": "size_t LEN", "$r10": "mbstate_t *restrict PS"}, "mbsnrtowcs": {"$rdi": ""}, "wcsnrtombs": {"$rdi": ""}, "mbtowc": {"$rdi": "wchar_t *restrict RESULT", "$rsi": "const char *restrict STRING", "$rdx": "size_t SIZE"}, "wctomb": {"$rdi": "char *STRING", "$rsi": "wchar_t WCHAR"}, "mblen": {"$rdi": "const char *STRING", "$rsi": "size_t SIZE"}, "mbstowcs": {"$rdi": "wchar_t *WSTRING", "$rsi": "const char *STRING", "$rdx": "size_t SIZE"}, "wcstombs": {"$rdi": "char *STRING", "$rsi": "const wchar_t *WSTRING", "$rdx": "size_t SIZE"}, "iconv_open": {"$rdi": "const char *TOCODE", "$rsi": "const char *FROMCODE"}, "iconv_close": {"$rdi": "iconv_t CD"}, "iconv": {"$rdi": "iconv_t CD", "$rsi": "char **INBUF", "$rdx": "size_t *INBYTESLEFT", "$r10": "char **OUTBUF", "$r8": "size_t *OUTBYTESLEFT"}, "setlocale": {"$rdi": "int CATEGORY", "$rsi": "const char *LOCALE"}, "localeconv": {"$rdi": "void"}, "nl_langinfo": {"$rdi": "nl_item ITEM"}, "strfmon": {"$rdi": "char *S", "$rsi": "size_t MAXSIZE", "$rdx": "const char *FORMAT", "$r10": "..."}, "rpmatch": {"$rdi": "const char *RESPONSE"}, "catopen": {"$rdi": "const char *CAT_NAME", "$rsi": "int FLAG"}, "catgets": {"$rdi": "nl_catd CATALOG_DESC", "$rsi": "int SET", "$rdx": "int MESSAGE", "$r10": "const char *STRING"}, "catclose": {"$rdi": "nl_catd CATALOG_DESC"}, "gettext": {"$rdi": "const char *MSGID"}, "dgettext": {"$rdi": "const char *DOMAINNAME", "$rsi": "const char *MSGID"}, "dcgettext": {"$rdi": "const char *DOMAINNAME", "$rsi": "const char *MSGID", "$rdx": "int CATEGORY"}, "textdomain": {"$rdi": "const char *DOMAINNAME"}, "bindtextdomain": {"$rdi": "const char *DOMAINNAME", "$rsi": "const char *DIRNAME"}, "ngettext": {"$rdi": "const char *MSGID1", "$rsi": "const char *MSGID2", "$rdx": "unsigned long int N"}, "dngettext": {"$rdi": "const char *DOMAIN", "$rsi": "const char *MSGID1", "$rdx": "const char *MSGID2", "$r10": "unsigned long int N"}, "dcngettext": {"$rdi": "const char *DOMAIN", "$rsi": "const char *MSGID1", "$rdx": "const char *MSGID2", "$r10": "unsigned long int N", "$r8": "int CATEGORY"}, "bind_textdomain_codeset": {"$rdi": "const char *DOMAINNAME", "$rsi": "const char *CODESET"}, "lfind": {"$rdi": "const void *KEY", "$rsi": "const void *BASE", "$rdx": "size_t *NMEMB", "$r10": "size_t SIZE", "$r8": "comparison_fn_t COMPAR"}, "lsearch": {"$rdi": "const void *KEY", "$rsi": "void *BASE", "$rdx": "size_t *NMEMB", "$r10": "size_t SIZE", "$r8": "comparison_fn_t COMPAR"}, "bsearch": {"$rdi": "const void *KEY", "$rsi": "const void *ARRAY", "$rdx": "size_t COUNT", "$r10": "size_t SIZE", "$r8": "comparison_fn_t COMPARE"}, "qsort": {"$rdi": "void *ARRAY", "$rsi": "size_t COUNT", "$rdx": "size_t SIZE", "$r10": "comparison_fn_t COMPARE"}, "hcreate": {"$rdi": "size_t NEL"}, "hdestroy": {"$rdi": "void"}, "hsearch": {"$rdi": "ENTRY ITEM", "$rsi": "ACTION ACTION"}, "hcreate_r": {"$rdi": "size_t NEL", "$rsi": "struct hsearch_data *HTAB"}, "hdestroy_r": {"$rdi": "struct hsearch_data *HTAB"}, "hsearch_r": {"$rdi": "ENTRY ITEM", "$rsi": "ACTION ACTION", "$rdx": "ENTRY **RETVAL", "$r10": "struct hsearch_data *HTAB"}, "tsearch": {"$rdi": "const void *KEY", "$rsi": "void **ROOTP", "$rdx": "comparison_fn_t COMPAR"}, "tfind": {"$rdi": "const void *KEY", "$rsi": "void *const *ROOTP", "$rdx": "comparison_fn_t COMPAR"}, "tdelete": {"$rdi": "const void *KEY", "$rsi": "void **ROOTP", "$rdx": "comparison_fn_t COMPAR"}, "tdestroy": {"$rdi": "void *VROOT", "$rsi": "__free_fn_t FREEFCT"}, "twalk": {"$rdi": "const void *ROOT", "$rsi": "__action_fn_t ACTION"}, "twalk_r": {"$rdi": "const void *ROOT", "$rsi": "void (*ACTION) (const void *KEY", "$rdx": "VISIT WHICH", "$r10": "void *CLOSURE)", "$r8": "void *CLOSURE"}, "fnmatch": {"$rdi": "const char *PATTERN", "$rsi": "const char *STRING", "$rdx": "int FLAGS"}, "glob": {"$rdi": "const char *PATTERN", "$rsi": "int FLAGS", "$rdx": "int (*ERRFUNC"}, "glob64": {"$rdi": "const char *PATTERN", "$rsi": "int FLAGS", "$rdx": "int (*ERRFUNC"}, "globfree": {"$rdi": "glob_t *PGLOB"}, "globfree64": {"$rdi": "glob64_t *PGLOB"}, "regcomp": {"$rdi": "regex_t *restrict COMPILED", "$rsi": "const char *restrict PATTERN", "$rdx": "int CFLAGS"}, "regexec": {"$rdi": ""}, "regfree": {"$rdi": "regex_t *COMPILED"}, "regerror": {"$rdi": "int ERRCODE", "$rsi": "const regex_t *restrict COMPILED", "$rdx": "char *restrict BUFFER", "$r10": "size_t LENGTH"}, "wordexp": {"$rdi": "const char *WORDS", "$rsi": "wordexp_t *WORD-VECTOR-PTR", "$rdx": "int FLAGS"}, "wordfree": {"$rdi": "wordexp_t *WORD-VECTOR-PTR"}, "fopen": {"$rdi": "const char *FILENAME", "$rsi": "const char *OPENTYPE"}, "fopen64": {"$rdi": "const char *FILENAME", "$rsi": "const char *OPENTYPE"}, "freopen": {"$rdi": "const char *FILENAME", "$rsi": "const char *OPENTYPE", "$rdx": "FILE *STREAM"}, "freopen64": {"$rdi": "const char *FILENAME", "$rsi": "const char *OPENTYPE", "$rdx": "FILE *STREAM"}, "__freadable": {"$rdi": "FILE *STREAM"}, "__fwritable": {"$rdi": "FILE *STREAM"}, "__freading": {"$rdi": "FILE *STREAM"}, "__fwriting": {"$rdi": "FILE *STREAM"}, "fclose": {"$rdi": "FILE *STREAM"}, "fcloseall": {"$rdi": "void"}, "flockfile": {"$rdi": "FILE *STREAM"}, "ftrylockfile": {"$rdi": "FILE *STREAM"}, "funlockfile": {"$rdi": "FILE *STREAM"}, "__fsetlocking": {"$rdi": "FILE *STREAM", "$rsi": "int TYPE"}, "fwide": {"$rdi": "FILE *STREAM", "$rsi": "int MODE"}, "fputc": {"$rdi": "int C", "$rsi": "FILE *STREAM"}, "fputwc": {"$rdi": "wchar_t WC", "$rsi": "FILE *STREAM"}, "fputc_unlocked": {"$rdi": "int C", "$rsi": "FILE *STREAM"}, "fputwc_unlocked": {"$rdi": "wchar_t WC", "$rsi": "FILE *STREAM"}, "putc": {"$rdi": "int C", "$rsi": "FILE *STREAM"}, "putwc": {"$rdi": "wchar_t WC", "$rsi": "FILE *STREAM"}, "putc_unlocked": {"$rdi": "int C", "$rsi": "FILE *STREAM"}, "putwc_unlocked": {"$rdi": "wchar_t WC", "$rsi": "FILE *STREAM"}, "putchar": {"$rdi": "int C"}, "putwchar": {"$rdi": "wchar_t WC"}, "putchar_unlocked": {"$rdi": "int C"}, "putwchar_unlocked": {"$rdi": "wchar_t WC"}, "fputs": {"$rdi": "const char *S", "$rsi": "FILE *STREAM"}, "fputws": {"$rdi": "const wchar_t *WS", "$rsi": "FILE *STREAM"}, "fputs_unlocked": {"$rdi": "const char *S", "$rsi": "FILE *STREAM"}, "fputws_unlocked": {"$rdi": "const wchar_t *WS", "$rsi": "FILE *STREAM"}, "puts": {"$rdi": "const char *S"}, "putw": {"$rdi": "int W", "$rsi": "FILE *STREAM"}, "fgetc": {"$rdi": "FILE *STREAM"}, "fgetwc": {"$rdi": "FILE *STREAM"}, "fgetc_unlocked": {"$rdi": "FILE *STREAM"}, "fgetwc_unlocked": {"$rdi": "FILE *STREAM"}, "getc": {"$rdi": "FILE *STREAM"}, "getwc": {"$rdi": "FILE *STREAM"}, "getc_unlocked": {"$rdi": "FILE *STREAM"}, "getwc_unlocked": {"$rdi": "FILE *STREAM"}, "getchar": {"$rdi": "void"}, "getwchar": {"$rdi": "void"}, "getchar_unlocked": {"$rdi": "void"}, "getwchar_unlocked": {"$rdi": "void"}, "getw": {"$rdi": "FILE *STREAM"}, "getline": {"$rdi": "char **LINEPTR", "$rsi": "size_t *N", "$rdx": "FILE *STREAM"}, "getdelim": {"$rdi": "char **LINEPTR", "$rsi": "size_t *N", "$rdx": "int DELIMITER", "$r10": "FILE *STREAM"}, "fgets": {"$rdi": "char *S", "$rsi": "int COUNT", "$rdx": "FILE *STREAM"}, "fgetws": {"$rdi": "wchar_t *WS", "$rsi": "int COUNT", "$rdx": "FILE *STREAM"}, "fgets_unlocked": {"$rdi": "char *S", "$rsi": "int COUNT", "$rdx": "FILE *STREAM"}, "fgetws_unlocked": {"$rdi": "wchar_t *WS", "$rsi": "int COUNT", "$rdx": "FILE *STREAM"}, "ungetc": {"$rdi": "int C", "$rsi": "FILE *STREAM"}, "ungetwc": {"$rdi": "wint_t WC", "$rsi": "FILE *STREAM"}, "fread": {"$rdi": "void *DATA", "$rsi": "size_t SIZE", "$rdx": "size_t COUNT", "$r10": "FILE *STREAM"}, "fread_unlocked": {"$rdi": "void *DATA", "$rsi": "size_t SIZE", "$rdx": "size_t COUNT", "$r10": "FILE *STREAM"}, "fwrite": {"$rdi": "const void *DATA", "$rsi": "size_t SIZE", "$rdx": "size_t COUNT", "$r10": "FILE *STREAM"}, "fwrite_unlocked": {"$rdi": "const void *DATA", "$rsi": "size_t SIZE", "$rdx": "size_t COUNT", "$r10": "FILE *STREAM"}, "printf": {"$rdi": "const char *TEMPLATE", "$rsi": "..."}, "wprintf": {"$rdi": "const wchar_t *TEMPLATE", "$rsi": "..."}, "fprintf": {"$rdi": "FILE *STREAM", "$rsi": "const char *TEMPLATE", "$rdx": "..."}, "fwprintf": {"$rdi": "FILE *STREAM", "$rsi": "const wchar_t *TEMPLATE", "$rdx": "..."}, "sprintf": {"$rdi": "char *S", "$rsi": "const char *TEMPLATE", "$rdx": "..."}, "swprintf": {"$rdi": "wchar_t *WS", "$rsi": "size_t SIZE", "$rdx": "const wchar_t *TEMPLATE", "$r10": "..."}, "snprintf": {"$rdi": "char *S", "$rsi": "size_t SIZE", "$rdx": "const char *TEMPLATE", "$r10": "..."}, "asprintf": {"$rdi": "char **PTR", "$rsi": "const char *TEMPLATE", "$rdx": "..."}, "obstack_printf": {"$rdi": "struct obstack *OBSTACK", "$rsi": "const char *TEMPLATE", "$rdx": "..."}, "vprintf": {"$rdi": "const char *TEMPLATE", "$rsi": "va_list AP"}, "vwprintf": {"$rdi": "const wchar_t *TEMPLATE", "$rsi": "va_list AP"}, "vfprintf": {"$rdi": "FILE *STREAM", "$rsi": "const char *TEMPLATE", "$rdx": "va_list AP"}, "vfwprintf": {"$rdi": "FILE *STREAM", "$rsi": "const wchar_t *TEMPLATE", "$rdx": "va_list AP"}, "vsprintf": {"$rdi": "char *S", "$rsi": "const char *TEMPLATE", "$rdx": "va_list AP"}, "vswprintf": {"$rdi": "wchar_t *WS", "$rsi": "size_t SIZE", "$rdx": "const wchar_t *TEMPLATE", "$r10": "va_list AP"}, "vsnprintf": {"$rdi": "char *S", "$rsi": "size_t SIZE", "$rdx": "const char *TEMPLATE", "$r10": "va_list AP"}, "vasprintf": {"$rdi": "char **PTR", "$rsi": "const char *TEMPLATE", "$rdx": "va_list AP"}, "obstack_vprintf": {"$rdi": "struct obstack *OBSTACK", "$rsi": "const char *TEMPLATE", "$rdx": "va_list AP"}, "parse_printf_format": {"$rdi": "const char *TEMPLATE", "$rsi": "size_t N", "$rdx": "int *ARGTYPES"}, "register_printf_function": {"$rdi": "int SPEC", "$rsi": "printf_function HANDLER-FUNCTION", "$rdx": "printf_arginfo_function ARGINFO-FUNCTION"}, "printf_size": {"$rdi": "FILE *FP", "$rsi": "const struct printf_info *INFO", "$rdx": "const void *const *ARGS"}, "printf_size_info": {"$rdi": "const struct printf_info *INFO", "$rsi": "size_t N", "$rdx": "int *ARGTYPES"}, "scanf": {"$rdi": "const char *TEMPLATE", "$rsi": "..."}, "wscanf": {"$rdi": "const wchar_t *TEMPLATE", "$rsi": "..."}, "fscanf": {"$rdi": "FILE *STREAM", "$rsi": "const char *TEMPLATE", "$rdx": "..."}, "fwscanf": {"$rdi": "FILE *STREAM", "$rsi": "const wchar_t *TEMPLATE", "$rdx": "..."}, "sscanf": {"$rdi": "const char *S", "$rsi": "const char *TEMPLATE", "$rdx": "..."}, "swscanf": {"$rdi": "const wchar_t *WS", "$rsi": "const wchar_t *TEMPLATE", "$rdx": "..."}, "vscanf": {"$rdi": "const char *TEMPLATE", "$rsi": "va_list AP"}, "vwscanf": {"$rdi": "const wchar_t *TEMPLATE", "$rsi": "va_list AP"}, "vfscanf": {"$rdi": "FILE *STREAM", "$rsi": "const char *TEMPLATE", "$rdx": "va_list AP"}, "vfwscanf": {"$rdi": "FILE *STREAM", "$rsi": "const wchar_t *TEMPLATE", "$rdx": "va_list AP"}, "vsscanf": {"$rdi": "const char *S", "$rsi": "const char *TEMPLATE", "$rdx": "va_list AP"}, "vswscanf": {"$rdi": "const wchar_t *S", "$rsi": "const wchar_t *TEMPLATE", "$rdx": "va_list AP"}, "feof": {"$rdi": "FILE *STREAM"}, "feof_unlocked": {"$rdi": "FILE *STREAM"}, "ferror": {"$rdi": "FILE *STREAM"}, "ferror_unlocked": {"$rdi": "FILE *STREAM"}, "clearerr": {"$rdi": "FILE *STREAM"}, "clearerr_unlocked": {"$rdi": "FILE *STREAM"}, "ftell": {"$rdi": "FILE *STREAM"}, "ftello": {"$rdi": "FILE *STREAM"}, "ftello64": {"$rdi": "FILE *STREAM"}, "fseek": {"$rdi": "FILE *STREAM", "$rsi": "long int OFFSET", "$rdx": "int WHENCE"}, "fseeko": {"$rdi": "FILE *STREAM", "$rsi": "off_t OFFSET", "$rdx": "int WHENCE"}, "fseeko64": {"$rdi": "FILE *STREAM", "$rsi": "off64_t OFFSET", "$rdx": "int WHENCE"}, "rewind": {"$rdi": "FILE *STREAM"}, "fgetpos": {"$rdi": "FILE *STREAM", "$rsi": "fpos_t *POSITION"}, "fgetpos64": {"$rdi": "FILE *STREAM", "$rsi": "fpos64_t *POSITION"}, "fsetpos": {"$rdi": "FILE *STREAM", "$rsi": "const fpos_t *POSITION"}, "fsetpos64": {"$rdi": "FILE *STREAM", "$rsi": "const fpos64_t *POSITION"}, "fflush": {"$rdi": "FILE *STREAM"}, "fflush_unlocked": {"$rdi": "FILE *STREAM"}, "_flushlbf": {"$rdi": "void"}, "__fpurge": {"$rdi": "FILE *STREAM"}, "setvbuf": {"$rdi": "FILE *STREAM", "$rsi": "char *BUF", "$rdx": "int MODE", "$r10": "size_t SIZE"}, "setbuf": {"$rdi": "FILE *STREAM", "$rsi": "char *BUF"}, "setbuffer": {"$rdi": "FILE *STREAM", "$rsi": "char *BUF", "$rdx": "size_t SIZE"}, "setlinebuf": {"$rdi": "FILE *STREAM"}, "__flbf": {"$rdi": "FILE *STREAM"}, "__fbufsize": {"$rdi": "FILE *STREAM"}, "__fpending": {"$rdi": "FILE *STREAM"}, "fmemopen": {"$rdi": "void *BUF", "$rsi": "size_t SIZE", "$rdx": "const char *OPENTYPE"}, "open_memstream": {"$rdi": "char **PTR", "$rsi": "size_t *SIZELOC"}, "fopencookie": {"$rdi": "void *COOKIE", "$rsi": "const char *OPENTYPE", "$rdx": "cookie_io_functions_t IO-FUNCTIONS"}, "fmtmsg": {"$rdi": ""}, "addseverity": {"$rdi": "int SEVERITY", "$rsi": "const char *STRING"}, "open": {"$rdi": "const char *FILENAME", "$rsi": "int FLAGS[", "$rdx": "mode_t MODE]"}, "open64": {"$rdi": "const char *FILENAME", "$rsi": "int FLAGS[", "$rdx": "mode_t MODE]"}, "close": {"$rdi": "int FILEDES"}, "read": {"$rdi": "int FILEDES", "$rsi": "void *BUFFER", "$rdx": "size_t SIZE"}, "pread": {"$rdi": "int FILEDES", "$rsi": "void *BUFFER", "$rdx": "size_t SIZE", "$r10": "off_t OFFSET"}, "pread64": {"$rdi": "int FILEDES", "$rsi": "void *BUFFER", "$rdx": "size_t SIZE", "$r10": "off64_t OFFSET"}, "write": {"$rdi": "int FILEDES", "$rsi": "const void *BUFFER", "$rdx": "size_t SIZE"}, "pwrite": {"$rdi": "int FILEDES", "$rsi": "const void *BUFFER", "$rdx": "size_t SIZE", "$r10": "off_t OFFSET"}, "pwrite64": {"$rdi": "int FILEDES", "$rsi": "const void *BUFFER", "$rdx": "size_t SIZE", "$r10": "off64_t OFFSET"}, "lseek": {"$rdi": "int FILEDES", "$rsi": "off_t OFFSET", "$rdx": "int WHENCE"}, "lseek64": {"$rdi": "int FILEDES", "$rsi": "off64_t OFFSET", "$rdx": "int WHENCE"}, "fdopen": {"$rdi": "int FILEDES", "$rsi": "const char *OPENTYPE"}, "fileno": {"$rdi": "FILE *STREAM"}, "fileno_unlocked": {"$rdi": "FILE *STREAM"}, "readv": {"$rdi": "int FILEDES", "$rsi": "const struct iovec *VECTOR", "$rdx": "int COUNT"}, "writev": {"$rdi": "int FILEDES", "$rsi": "const struct iovec *VECTOR", "$rdx": "int COUNT"}, "preadv": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off_t OFFSET"}, "preadv64": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off64_t OFFSET"}, "pwritev": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off_t OFFSET"}, "pwritev64": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off64_t OFFSET"}, "preadv2": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off_t OFFSET", "$r8": "int FLAGS"}, "preadv64v2": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off64_t OFFSET", "$r8": "int FLAGS"}, "pwritev2": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off_t OFFSET", "$r8": "int FLAGS"}, "pwritev64v2": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off64_t OFFSET", "$r8": "int FLAGS"}, "copy_file_range": {"$rdi": ""}, "mmap": {"$rdi": "void *ADDRESS", "$rsi": "size_t LENGTH", "$rdx": "int PROTECT", "$r10": "int FLAGS", "$r8": "int FILEDES", "$r9": "off_t OFFSET"}, "mmap64": {"$rdi": "void *ADDRESS", "$rsi": "size_t LENGTH", "$rdx": "int PROTECT", "$r10": "int FLAGS", "$r8": "int FILEDES", "$r9": "off64_t OFFSET"}, "munmap": {"$rdi": "void *ADDR", "$rsi": "size_t LENGTH"}, "msync": {"$rdi": "void *ADDRESS", "$rsi": "size_t LENGTH", "$rdx": "int FLAGS"}, "mremap": {"$rdi": "void *ADDRESS", "$rsi": "size_t LENGTH", "$rdx": "size_t NEW_LENGTH", "$r10": "int FLAG"}, "madvise": {"$rdi": "void *ADDR", "$rsi": "size_t LENGTH", "$rdx": "int ADVICE"}, "shm_open": {"$rdi": "const char *NAME", "$rsi": "int OFLAG", "$rdx": "mode_t MODE"}, "shm_unlink": {"$rdi": "const char *NAME"}, "memfd_create": {"$rdi": "const char *NAME", "$rsi": "unsigned int FLAGS"}, "select": {"$rdi": "int NFDS", "$rsi": "fd_set *READ-FDS", "$rdx": "fd_set *WRITE-FDS", "$r10": "fd_set *EXCEPT-FDS", "$r8": "struct timeval *TIMEOUT"}, "sync": {"$rdi": "void"}, "fsync": {"$rdi": "int FILDES"}, "fdatasync": {"$rdi": "int FILDES"}, "aio_read": {"$rdi": "struct aiocb *AIOCBP"}, "aio_read64": {"$rdi": "struct aiocb64 *AIOCBP"}, "aio_write": {"$rdi": "struct aiocb *AIOCBP"}, "aio_write64": {"$rdi": "struct aiocb64 *AIOCBP"}, "lio_listio": {"$rdi": "int MODE", "$rsi": "struct aiocb *const LIST[]", "$rdx": "int NENT", "$r10": "struct sigevent *SIG"}, "lio_listio64": {"$rdi": "int MODE", "$rsi": "struct aiocb64 *const LIST[]", "$rdx": "int NENT", "$r10": "struct sigevent *SIG"}, "aio_error": {"$rdi": "const struct aiocb *AIOCBP"}, "aio_error64": {"$rdi": "const struct aiocb64 *AIOCBP"}, "aio_return": {"$rdi": "struct aiocb *AIOCBP"}, "aio_return64": {"$rdi": "struct aiocb64 *AIOCBP"}, "aio_fsync": {"$rdi": "int OP", "$rsi": "struct aiocb *AIOCBP"}, "aio_fsync64": {"$rdi": "int OP", "$rsi": "struct aiocb64 *AIOCBP"}, "aio_suspend": {"$rdi": "const struct aiocb *const LIST[]", "$rsi": "int NENT", "$rdx": "const struct timespec *TIMEOUT"}, "aio_suspend64": {"$rdi": "const struct aiocb64 *const LIST[]", "$rsi": "int NENT", "$rdx": "const struct timespec *TIMEOUT"}, "aio_cancel": {"$rdi": "int FILDES", "$rsi": "struct aiocb *AIOCBP"}, "aio_cancel64": {"$rdi": "int FILDES", "$rsi": "struct aiocb64 *AIOCBP"}, "aio_init": {"$rdi": "const struct aioinit *INIT"}, "fcntl": {"$rdi": "int FILEDES", "$rsi": "int COMMAND", "$rdx": "..."}, "dup": {"$rdi": "int OLD"}, "dup2": {"$rdi": "int OLD", "$rsi": "int NEW"}, "ioctl": {"$rdi": "int FILEDES", "$rsi": "int COMMAND", "$rdx": "..."}, "getcwd": {"$rdi": "char *BUFFER", "$rsi": "size_t SIZE"}, "get_current_dir_name": {"$rdi": "void"}, "chdir": {"$rdi": "const char *FILENAME"}, "fchdir": {"$rdi": "int FILEDES"}, "IFTODT": {"$rdi": "mode_t MODE"}, "DTTOIF": {"$rdi": "int DTYPE"}, "opendir": {"$rdi": "const char *DIRNAME"}, "fdopendir": {"$rdi": "int FD"}, "dirfd": {"$rdi": "DIR *DIRSTREAM"}, "readdir": {"$rdi": "DIR *DIRSTREAM"}, "readdir_r": {"$rdi": "DIR *DIRSTREAM", "$rsi": "struct dirent *ENTRY", "$rdx": "struct dirent **RESULT"}, "readdir64": {"$rdi": "DIR *DIRSTREAM"}, "readdir64_r": {"$rdi": "DIR *DIRSTREAM", "$rsi": "struct dirent64 *ENTRY", "$rdx": "struct dirent64 **RESULT"}, "closedir": {"$rdi": "DIR *DIRSTREAM"}, "rewinddir": {"$rdi": "DIR *DIRSTREAM"}, "telldir": {"$rdi": "DIR *DIRSTREAM"}, "seekdir": {"$rdi": "DIR *DIRSTREAM", "$rsi": "long int POS"}, "scandir": {"$rdi": "const char *DIR", "$rsi": "struct dirent ***NAMELIST", "$rdx": "int (*SELECTOR) (const struct dirent *)", "$r10": "int (*CMP"}, "alphasort": {"$rdi": "const struct dirent **A", "$rsi": "const struct dirent **B"}, "versionsort": {"$rdi": "const struct dirent **A", "$rsi": "const struct dirent **B"}, "scandir64": {"$rdi": "const char *DIR", "$rsi": "struct dirent64 ***NAMELIST", "$rdx": "int (*SELECTOR) (const struct dirent64 *"}, "alphasort64": {"$rdi": "const struct dirent64 **A", "$rsi": "const struct dirent **B"}, "versionsort64": {"$rdi": "const struct dirent64 **A", "$rsi": "const struct dirent64 **B"}, "getdents64": {"$rdi": "int FD", "$rsi": "void *BUFFER", "$rdx": "size_t LENGTH"}, "ftw": {"$rdi": "const char *FILENAME", "$rsi": "__ftw_func_t FUNC", "$rdx": "int DESCRIPTORS"}, "ftw64": {"$rdi": "const char *FILENAME", "$rsi": "__ftw64_func_t FUNC", "$rdx": "int DESCRIPTORS"}, "nftw": {"$rdi": "const char *FILENAME", "$rsi": "__nftw_func_t FUNC", "$rdx": "int DESCRIPTORS", "$r10": "int FLAG"}, "nftw64": {"$rdi": "const char *FILENAME", "$rsi": "__nftw64_func_t FUNC", "$rdx": "int DESCRIPTORS", "$r10": "int FLAG"}, "link": {"$rdi": "const char *OLDNAME", "$rsi": "const char *NEWNAME"}, "linkat": {"$rdi": "int oldfd", "$rsi": "const char *OLDNAME", "$rdx": "int newfd", "$r10": "const char *NEWNAME", "$r8": "int flags"}, "symlink": {"$rdi": "const char *OLDNAME", "$rsi": "const char *NEWNAME"}, "readlink": {"$rdi": "const char *FILENAME", "$rsi": "char *BUFFER", "$rdx": "size_t SIZE"}, "canonicalize_file_name": {"$rdi": "const char *NAME"}, "realpath": {"$rdi": "const char *restrict NAME", "$rsi": "char *restrict RESOLVED"}, "unlink": {"$rdi": "const char *FILENAME"}, "rmdir": {"$rdi": "const char *FILENAME"}, "remove": {"$rdi": "const char *FILENAME"}, "rename": {"$rdi": "const char *OLDNAME", "$rsi": "const char *NEWNAME"}, "mkdir": {"$rdi": "const char *FILENAME", "$rsi": "mode_t MODE"}, "stat": {"$rdi": "const char *FILENAME", "$rsi": "struct stat *BUF"}, "stat64": {"$rdi": "const char *FILENAME", "$rsi": "struct stat64 *BUF"}, "fstat": {"$rdi": "int FILEDES", "$rsi": "struct stat *BUF"}, "fstat64": {"$rdi": "int FILEDES", "$rsi": "struct stat64 *BUF"}, "lstat": {"$rdi": "const char *FILENAME", "$rsi": "struct stat *BUF"}, "lstat64": {"$rdi": "const char *FILENAME", "$rsi": "struct stat64 *BUF"}, "chown": {"$rdi": "const char *FILENAME", "$rsi": "uid_t OWNER", "$rdx": "gid_t GROUP"}, "fchown": {"$rdi": "int FILEDES", "$rsi": "uid_t OWNER", "$rdx": "gid_t GROUP"}, "umask": {"$rdi": "mode_t MASK"}, "getumask": {"$rdi": "void"}, "chmod": {"$rdi": "const char *FILENAME", "$rsi": "mode_t MODE"}, "fchmod": {"$rdi": "int FILEDES", "$rsi": "mode_t MODE"}, "access": {"$rdi": "const char *FILENAME", "$rsi": "int HOW"}, "utime": {"$rdi": "const char *FILENAME", "$rsi": "const struct utimbuf *TIMES"}, "utimes": {"$rdi": "const char *FILENAME", "$rsi": "const struct timeval TVP[2]"}, "lutimes": {"$rdi": "const char *FILENAME", "$rsi": "const struct timeval TVP[2]"}, "futimes": {"$rdi": "int FD", "$rsi": "const struct timeval TVP[2]"}, "truncate": {"$rdi": "const char *FILENAME", "$rsi": "off_t LENGTH"}, "truncate64": {"$rdi": "const char *NAME", "$rsi": "off64_t LENGTH"}, "ftruncate": {"$rdi": "int FD", "$rsi": "off_t LENGTH"}, "ftruncate64": {"$rdi": "int ID", "$rsi": "off64_t LENGTH"}, "posix_fallocate": {"$rdi": "int FD", "$rsi": "off_t OFFSET", "$rdx": "off_t LENGTH"}, "posix_fallocate64": {"$rdi": "int FD", "$rsi": "off64_t OFFSET", "$rdx": "off64_t LENGTH"}, "mknod": {"$rdi": "const char *FILENAME", "$rsi": "mode_t MODE", "$rdx": "dev_t DEV"}, "tmpfile": {"$rdi": "void"}, "tmpfile64": {"$rdi": "void"}, "tmpnam": {"$rdi": "char *RESULT"}, "tmpnam_r": {"$rdi": "char *RESULT"}, "tempnam": {"$rdi": "const char *DIR", "$rsi": "const char *PREFIX"}, "mktemp": {"$rdi": "char *TEMPLATE"}, "mkstemp": {"$rdi": "char *TEMPLATE"}, "mkdtemp": {"$rdi": "char *TEMPLATE"}, "pipe": {"$rdi": "int FILEDES[2]"}, "popen": {"$rdi": "const char *COMMAND", "$rsi": "const char *MODE"}, "pclose": {"$rdi": "FILE *STREAM"}, "mkfifo": {"$rdi": "const char *FILENAME", "$rsi": "mode_t MODE"}, "bind": {"$rdi": "int SOCKET", "$rsi": "struct sockaddr *ADDR", "$rdx": "socklen_t LENGTH"}, "getsockname": {"$rdi": "int SOCKET", "$rsi": "struct sockaddr *ADDR", "$rdx": "socklen_t *LENGTH-PTR"}, "if_nametoindex": {"$rdi": "const char *IFNAME"}, "if_indextoname": {"$rdi": "unsigned int IFINDEX", "$rsi": "char *IFNAME"}, "if_nameindex": {"$rdi": "void"}, "if_freenameindex": {"$rdi": "struct if_nameindex *PTR"}, "inet_aton": {"$rdi": "const char *NAME", "$rsi": "struct in_addr *ADDR"}, "inet_addr": {"$rdi": "const char *NAME"}, "inet_network": {"$rdi": "const char *NAME"}, "inet_ntoa": {"$rdi": "struct in_addr ADDR"}, "inet_makeaddr": {"$rdi": "uint32_t NET", "$rsi": "uint32_t LOCAL"}, "inet_lnaof": {"$rdi": "struct in_addr ADDR"}, "inet_netof": {"$rdi": "struct in_addr ADDR"}, "inet_pton": {"$rdi": "int AF", "$rsi": "const char *CP", "$rdx": "void *BUF"}, "inet_ntop": {"$rdi": "int AF", "$rsi": "const void *CP", "$rdx": "char *BUF", "$r10": "socklen_t LEN"}, "gethostbyname": {"$rdi": "const char *NAME"}, "gethostbyname2": {"$rdi": "const char *NAME", "$rsi": "int AF"}, "gethostbyaddr": {"$rdi": "const void *ADDR", "$rsi": "socklen_t LENGTH", "$rdx": "int FORMAT"}, "gethostbyname_r": {"$rdi": ""}, "gethostbyname2_r": {"$rdi": ""}, "gethostbyaddr_r": {"$rdi": ""}, "sethostent": {"$rdi": "int STAYOPEN"}, "gethostent": {"$rdi": "void"}, "endhostent": {"$rdi": "void"}, "getservbyname": {"$rdi": "const char *NAME", "$rsi": "const char *PROTO"}, "getservbyport": {"$rdi": "int PORT", "$rsi": "const char *PROTO"}, "setservent": {"$rdi": "int STAYOPEN"}, "getservent": {"$rdi": "void"}, "endservent": {"$rdi": "void"}, "htons": {"$rdi": "uint16_t HOSTSHORT"}, "ntohs": {"$rdi": "uint16_t NETSHORT"}, "htonl": {"$rdi": "uint32_t HOSTLONG"}, "ntohl": {"$rdi": "uint32_t NETLONG"}, "getprotobyname": {"$rdi": "const char *NAME"}, "getprotobynumber": {"$rdi": "int PROTOCOL"}, "setprotoent": {"$rdi": "int STAYOPEN"}, "getprotoent": {"$rdi": "void"}, "endprotoent": {"$rdi": "void"}, "socket": {"$rdi": "int NAMESPACE", "$rsi": "int STYLE", "$rdx": "int PROTOCOL"}, "shutdown": {"$rdi": "int SOCKET", "$rsi": "int HOW"}, "socketpair": {"$rdi": "int NAMESPACE", "$rsi": "int STYLE", "$rdx": "int PROTOCOL", "$r10": "int FILEDES[2]"}, "connect": {"$rdi": "int SOCKET", "$rsi": "struct sockaddr *ADDR", "$rdx": "socklen_t LENGTH"}, "listen": {"$rdi": "int SOCKET", "$rsi": "int N"}, "accept": {"$rdi": "int SOCKET", "$rsi": "struct sockaddr *ADDR", "$rdx": "socklen_t *LENGTH_PTR"}, "getpeername": {"$rdi": "int SOCKET", "$rsi": "struct sockaddr *ADDR", "$rdx": "socklen_t *LENGTH-PTR"}, "send": {"$rdi": "int SOCKET", "$rsi": "const void *BUFFER", "$rdx": "size_t SIZE", "$r10": "int FLAGS"}, "recv": {"$rdi": "int SOCKET", "$rsi": "void *BUFFER", "$rdx": "size_t SIZE", "$r10": "int FLAGS"}, "sendto": {"$rdi": "int SOCKET", "$rsi": "const void *BUFFER", "$rdx": "size_t SIZE", "$r10": "int FLAGS", "$r8": "struct sockaddr *ADDR", "$r9": "socklen_t LENGTH"}, "recvfrom": {"$rdi": "int SOCKET", "$rsi": "void *BUFFER", "$rdx": "size_t SIZE", "$r10": "int FLAGS", "$r8": "struct sockaddr *ADDR", "$r9": "socklen_t *LENGTH-PTR"}, "getsockopt": {"$rdi": "int SOCKET", "$rsi": "int LEVEL", "$rdx": "int OPTNAME", "$r10": "void *OPTVAL", "$r8": "socklen_t *OPTLEN-PTR"}, "setsockopt": {"$rdi": "int SOCKET", "$rsi": "int LEVEL", "$rdx": "int OPTNAME", "$r10": "const void *OPTVAL", "$r8": "socklen_t OPTLEN"}, "getnetbyname": {"$rdi": "const char *NAME"}, "getnetbyaddr": {"$rdi": "uint32_t NET", "$rsi": "int TYPE"}, "setnetent": {"$rdi": "int STAYOPEN"}, "getnetent": {"$rdi": "void"}, "endnetent": {"$rdi": "void"}, "isatty": {"$rdi": "int FILEDES"}, "ttyname": {"$rdi": "int FILEDES"}, "ttyname_r": {"$rdi": "int FILEDES", "$rsi": "char *BUF", "$rdx": "size_t LEN"}, "tcgetattr": {"$rdi": "int FILEDES", "$rsi": "struct termios *TERMIOS-P"}, "tcsetattr": {"$rdi": "int FILEDES", "$rsi": "int WHEN", "$rdx": "const struct termios *TERMIOS-P"}, "cfgetospeed": {"$rdi": "const struct termios *TERMIOS-P"}, "cfgetispeed": {"$rdi": "const struct termios *TERMIOS-P"}, "cfsetospeed": {"$rdi": "struct termios *TERMIOS-P", "$rsi": "speed_t SPEED"}, "cfsetispeed": {"$rdi": "struct termios *TERMIOS-P", "$rsi": "speed_t SPEED"}, "cfsetspeed": {"$rdi": "struct termios *TERMIOS-P", "$rsi": "speed_t SPEED"}, "cfmakeraw": {"$rdi": "struct termios *TERMIOS-P"}, "gtty": {"$rdi": "int FILEDES", "$rsi": "struct sgttyb *ATTRIBUTES"}, "stty": {"$rdi": "int FILEDES", "$rsi": "const struct sgttyb *ATTRIBUTES"}, "tcsendbreak": {"$rdi": "int FILEDES", "$rsi": "int DURATION"}, "tcdrain": {"$rdi": "int FILEDES"}, "tcflush": {"$rdi": "int FILEDES", "$rsi": "int QUEUE"}, "tcflow": {"$rdi": "int FILEDES", "$rsi": "int ACTION"}, "getpass": {"$rdi": "const char *PROMPT"}, "getpt": {"$rdi": "void"}, "grantpt": {"$rdi": "int FILEDES"}, "unlockpt": {"$rdi": "int FILEDES"}, "ptsname": {"$rdi": "int FILEDES"}, "ptsname_r": {"$rdi": "int FILEDES", "$rsi": "char *BUF", "$rdx": "size_t LEN"}, "openpty": {"$rdi": "int *AMASTER", "$rsi": "int *ASLAVE", "$rdx": "char *NAME", "$r10": "const struct termios *TERMP", "$r8": "const struct winsize *WINP"}, "forkpty": {"$rdi": "int *AMASTER", "$rsi": "char *NAME", "$rdx": "const struct termios *TERMP", "$r10": "const struct winsize *WINP"}, "openlog": {"$rdi": "const char *IDENT", "$rsi": "int OPTION", "$rdx": "int FACILITY"}, "syslog": {"$rdi": "int FACILITY_PRIORITY", "$rsi": "const char *FORMAT", "$rdx": "..."}, "vsyslog": {"$rdi": "int FACILITY_PRIORITY", "$rsi": "const char *FORMAT", "$rdx": "va_list ARGLIST"}, "closelog": {"$rdi": "void"}, "setlogmask": {"$rdi": "int MASK"}, "sin": {"$rdi": "double X"}, "sinf": {"$rdi": "float X"}, "sinl": {"$rdi": "long double X"}, "sinfN": {"$rdi": "_FloatN X"}, "sinfNx": {"$rdi": "_FloatNx X"}, "cos": {"$rdi": "double X"}, "cosf": {"$rdi": "float X"}, "cosl": {"$rdi": "long double X"}, "cosfN": {"$rdi": "_FloatN X"}, "cosfNx": {"$rdi": "_FloatNx X"}, "tan": {"$rdi": "double X"}, "tanf": {"$rdi": "float X"}, "tanl": {"$rdi": "long double X"}, "tanfN": {"$rdi": "_FloatN X"}, "tanfNx": {"$rdi": "_FloatNx X"}, "sincos": {"$rdi": "double X", "$rsi": "double *SINX", "$rdx": "double *COSX"}, "sincosf": {"$rdi": "float X", "$rsi": "float *SINX", "$rdx": "float *COSX"}, "sincosl": {"$rdi": "long double X", "$rsi": "long double *SINX", "$rdx": "long double *COSX"}, "sincosfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN *SINX", "$rdx": "_FloatN *COSX"}, "sincosfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx *SINX", "$rdx": "_FloatNx *COSX"}, "csin": {"$rdi": "complex double Z"}, "csinf": {"$rdi": "complex float Z"}, "csinl": {"$rdi": "complex long double Z"}, "csinfN": {"$rdi": "complex _FloatN Z"}, "csinfNx": {"$rdi": "complex _FloatNx Z"}, "ccos": {"$rdi": "complex double Z"}, "ccosf": {"$rdi": "complex float Z"}, "ccosl": {"$rdi": "complex long double Z"}, "ccosfN": {"$rdi": "complex _FloatN Z"}, "ccosfNx": {"$rdi": "complex _FloatNx Z"}, "ctan": {"$rdi": "complex double Z"}, "ctanf": {"$rdi": "complex float Z"}, "ctanl": {"$rdi": "complex long double Z"}, "ctanfN": {"$rdi": "complex _FloatN Z"}, "ctanfNx": {"$rdi": "complex _FloatNx Z"}, "asin": {"$rdi": "double X"}, "asinf": {"$rdi": "float X"}, "asinl": {"$rdi": "long double X"}, "asinfN": {"$rdi": "_FloatN X"}, "asinfNx": {"$rdi": "_FloatNx X"}, "acos": {"$rdi": "double X"}, "acosf": {"$rdi": "float X"}, "acosl": {"$rdi": "long double X"}, "acosfN": {"$rdi": "_FloatN X"}, "acosfNx": {"$rdi": "_FloatNx X"}, "atan": {"$rdi": "double X"}, "atanf": {"$rdi": "float X"}, "atanl": {"$rdi": "long double X"}, "atanfN": {"$rdi": "_FloatN X"}, "atanfNx": {"$rdi": "_FloatNx X"}, "atan2": {"$rdi": "double Y", "$rsi": "double X"}, "atan2f": {"$rdi": "float Y", "$rsi": "float X"}, "atan2l": {"$rdi": "long double Y", "$rsi": "long double X"}, "atan2fN": {"$rdi": "_FloatN Y", "$rsi": "_FloatN X"}, "atan2fNx": {"$rdi": "_FloatNx Y", "$rsi": "_FloatNx X"}, "casin": {"$rdi": "complex double Z"}, "casinf": {"$rdi": "complex float Z"}, "casinl": {"$rdi": "complex long double Z"}, "casinfN": {"$rdi": "complex _FloatN Z"}, "casinfNx": {"$rdi": "complex _FloatNx Z"}, "cacos": {"$rdi": "complex double Z"}, "cacosf": {"$rdi": "complex float Z"}, "cacosl": {"$rdi": "complex long double Z"}, "cacosfN": {"$rdi": "complex _FloatN Z"}, "cacosfNx": {"$rdi": "complex _FloatNx Z"}, "catan": {"$rdi": "complex double Z"}, "catanf": {"$rdi": "complex float Z"}, "catanl": {"$rdi": "complex long double Z"}, "catanfN": {"$rdi": "complex _FloatN Z"}, "catanfNx": {"$rdi": "complex _FloatNx Z"}, "exp": {"$rdi": "double X"}, "expf": {"$rdi": "float X"}, "expl": {"$rdi": "long double X"}, "expfN": {"$rdi": "_FloatN X"}, "expfNx": {"$rdi": "_FloatNx X"}, "exp2": {"$rdi": "double X"}, "exp2f": {"$rdi": "float X"}, "exp2l": {"$rdi": "long double X"}, "exp2fN": {"$rdi": "_FloatN X"}, "exp2fNx": {"$rdi": "_FloatNx X"}, "exp10": {"$rdi": "double X"}, "exp10f": {"$rdi": "float X"}, "exp10l": {"$rdi": "long double X"}, "exp10fN": {"$rdi": "_FloatN X"}, "exp10fNx": {"$rdi": "_FloatNx X"}, "log": {"$rdi": "double X"}, "logf": {"$rdi": "float X"}, "logl": {"$rdi": "long double X"}, "logfN": {"$rdi": "_FloatN X"}, "logfNx": {"$rdi": "_FloatNx X"}, "log10": {"$rdi": "double X"}, "log10f": {"$rdi": "float X"}, "log10l": {"$rdi": "long double X"}, "log10fN": {"$rdi": "_FloatN X"}, "log10fNx": {"$rdi": "_FloatNx X"}, "log2": {"$rdi": "double X"}, "log2f": {"$rdi": "float X"}, "log2l": {"$rdi": "long double X"}, "log2fN": {"$rdi": "_FloatN X"}, "log2fNx": {"$rdi": "_FloatNx X"}, "logb": {"$rdi": "double X"}, "logbf": {"$rdi": "float X"}, "logbl": {"$rdi": "long double X"}, "logbfN": {"$rdi": "_FloatN X"}, "logbfNx": {"$rdi": "_FloatNx X"}, "ilogb": {"$rdi": "double X"}, "ilogbf": {"$rdi": "float X"}, "ilogbl": {"$rdi": "long double X"}, "ilogbfN": {"$rdi": "_FloatN X"}, "ilogbfNx": {"$rdi": "_FloatNx X"}, "llogb": {"$rdi": "double X"}, "llogbf": {"$rdi": "float X"}, "llogbl": {"$rdi": "long double X"}, "llogbfN": {"$rdi": "_FloatN X"}, "llogbfNx": {"$rdi": "_FloatNx X"}, "pow": {"$rdi": "double BASE", "$rsi": "double POWER"}, "powf": {"$rdi": "float BASE", "$rsi": "float POWER"}, "powl": {"$rdi": "long double BASE", "$rsi": "long double POWER"}, "powfN": {"$rdi": "_FloatN BASE", "$rsi": "_FloatN POWER"}, "powfNx": {"$rdi": "_FloatNx BASE", "$rsi": "_FloatNx POWER"}, "sqrt": {"$rdi": "double X"}, "sqrtf": {"$rdi": "float X"}, "sqrtl": {"$rdi": "long double X"}, "sqrtfN": {"$rdi": "_FloatN X"}, "sqrtfNx": {"$rdi": "_FloatNx X"}, "cbrt": {"$rdi": "double X"}, "cbrtf": {"$rdi": "float X"}, "cbrtl": {"$rdi": "long double X"}, "cbrtfN": {"$rdi": "_FloatN X"}, "cbrtfNx": {"$rdi": "_FloatNx X"}, "hypot": {"$rdi": "double X", "$rsi": "double Y"}, "hypotf": {"$rdi": "float X", "$rsi": "float Y"}, "hypotl": {"$rdi": "long double X", "$rsi": "long double Y"}, "hypotfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "hypotfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "expm1": {"$rdi": "double X"}, "expm1f": {"$rdi": "float X"}, "expm1l": {"$rdi": "long double X"}, "expm1fN": {"$rdi": "_FloatN X"}, "expm1fNx": {"$rdi": "_FloatNx X"}, "log1p": {"$rdi": "double X"}, "log1pf": {"$rdi": "float X"}, "log1pl": {"$rdi": "long double X"}, "log1pfN": {"$rdi": "_FloatN X"}, "log1pfNx": {"$rdi": "_FloatNx X"}, "cexp": {"$rdi": "complex double Z"}, "cexpf": {"$rdi": "complex float Z"}, "cexpl": {"$rdi": "complex long double Z"}, "cexpfN": {"$rdi": "complex _FloatN Z"}, "cexpfNx": {"$rdi": "complex _FloatNx Z"}, "clog": {"$rdi": "complex double Z"}, "clogf": {"$rdi": "complex float Z"}, "clogl": {"$rdi": "complex long double Z"}, "clogfN": {"$rdi": "complex _FloatN Z"}, "clogfNx": {"$rdi": "complex _FloatNx Z"}, "clog10": {"$rdi": "complex double Z"}, "clog10f": {"$rdi": "complex float Z"}, "clog10l": {"$rdi": "complex long double Z"}, "clog10fN": {"$rdi": "complex _FloatN Z"}, "clog10fNx": {"$rdi": "complex _FloatNx Z"}, "csqrt": {"$rdi": "complex double Z"}, "csqrtf": {"$rdi": "complex float Z"}, "csqrtl": {"$rdi": "complex long double Z"}, "csqrtfN": {"$rdi": "_FloatN Z"}, "csqrtfNx": {"$rdi": "complex _FloatNx Z"}, "cpow": {"$rdi": "complex double BASE", "$rsi": "complex double POWER"}, "cpowf": {"$rdi": "complex float BASE", "$rsi": "complex float POWER"}, "cpowl": {"$rdi": "complex long double BASE", "$rsi": "complex long double POWER"}, "cpowfN": {"$rdi": "complex _FloatN BASE", "$rsi": "complex _FloatN POWER"}, "cpowfNx": {"$rdi": "complex _FloatNx BASE", "$rsi": "complex _FloatNx POWER"}, "sinh": {"$rdi": "double X"}, "sinhf": {"$rdi": "float X"}, "sinhl": {"$rdi": "long double X"}, "sinhfN": {"$rdi": "_FloatN X"}, "sinhfNx": {"$rdi": "_FloatNx X"}, "cosh": {"$rdi": "double X"}, "coshf": {"$rdi": "float X"}, "coshl": {"$rdi": "long double X"}, "coshfN": {"$rdi": "_FloatN X"}, "coshfNx": {"$rdi": "_FloatNx X"}, "tanh": {"$rdi": "double X"}, "tanhf": {"$rdi": "float X"}, "tanhl": {"$rdi": "long double X"}, "tanhfN": {"$rdi": "_FloatN X"}, "tanhfNx": {"$rdi": "_FloatNx X"}, "csinh": {"$rdi": "complex double Z"}, "csinhf": {"$rdi": "complex float Z"}, "csinhl": {"$rdi": "complex long double Z"}, "csinhfN": {"$rdi": "complex _FloatN Z"}, "csinhfNx": {"$rdi": "complex _FloatNx Z"}, "ccosh": {"$rdi": "complex double Z"}, "ccoshf": {"$rdi": "complex float Z"}, "ccoshl": {"$rdi": "complex long double Z"}, "ccoshfN": {"$rdi": "complex _FloatN Z"}, "ccoshfNx": {"$rdi": "complex _FloatNx Z"}, "ctanh": {"$rdi": "complex double Z"}, "ctanhf": {"$rdi": "complex float Z"}, "ctanhl": {"$rdi": "complex long double Z"}, "ctanhfN": {"$rdi": "complex _FloatN Z"}, "ctanhfNx": {"$rdi": "complex _FloatNx Z"}, "asinh": {"$rdi": "double X"}, "asinhf": {"$rdi": "float X"}, "asinhl": {"$rdi": "long double X"}, "asinhfN": {"$rdi": "_FloatN X"}, "asinhfNx": {"$rdi": "_FloatNx X"}, "acosh": {"$rdi": "double X"}, "acoshf": {"$rdi": "float X"}, "acoshl": {"$rdi": "long double X"}, "acoshfN": {"$rdi": "_FloatN X"}, "acoshfNx": {"$rdi": "_FloatNx X"}, "atanh": {"$rdi": "double X"}, "atanhf": {"$rdi": "float X"}, "atanhl": {"$rdi": "long double X"}, "atanhfN": {"$rdi": "_FloatN X"}, "atanhfNx": {"$rdi": "_FloatNx X"}, "casinh": {"$rdi": "complex double Z"}, "casinhf": {"$rdi": "complex float Z"}, "casinhl": {"$rdi": "complex long double Z"}, "casinhfN": {"$rdi": "complex _FloatN Z"}, "casinhfNx": {"$rdi": "complex _FloatNx Z"}, "cacosh": {"$rdi": "complex double Z"}, "cacoshf": {"$rdi": "complex float Z"}, "cacoshl": {"$rdi": "complex long double Z"}, "cacoshfN": {"$rdi": "complex _FloatN Z"}, "cacoshfNx": {"$rdi": "complex _FloatNx Z"}, "catanh": {"$rdi": "complex double Z"}, "catanhf": {"$rdi": "complex float Z"}, "catanhl": {"$rdi": "complex long double Z"}, "catanhfN": {"$rdi": "complex _FloatN Z"}, "catanhfNx": {"$rdi": "complex _FloatNx Z"}, "erf": {"$rdi": "double X"}, "erff": {"$rdi": "float X"}, "erfl": {"$rdi": "long double X"}, "erffN": {"$rdi": "_FloatN X"}, "erffNx": {"$rdi": "_FloatNx X"}, "erfc": {"$rdi": "double X"}, "erfcf": {"$rdi": "float X"}, "erfcl": {"$rdi": "long double X"}, "erfcfN": {"$rdi": "_FloatN X"}, "erfcfNx": {"$rdi": "_FloatNx X"}, "lgamma": {"$rdi": "double X"}, "lgammaf": {"$rdi": "float X"}, "lgammal": {"$rdi": "long double X"}, "lgammafN": {"$rdi": "_FloatN X"}, "lgammafNx": {"$rdi": "_FloatNx X"}, "lgamma_r": {"$rdi": "double X", "$rsi": "int *SIGNP"}, "lgammaf_r": {"$rdi": "float X", "$rsi": "int *SIGNP"}, "lgammal_r": {"$rdi": "long double X", "$rsi": "int *SIGNP"}, "lgammafN_r": {"$rdi": "_FloatN X", "$rsi": "int *SIGNP"}, "lgammafNx_r": {"$rdi": "_FloatNx X", "$rsi": "int *SIGNP"}, "gamma": {"$rdi": "double X"}, "gammaf": {"$rdi": "float X"}, "gammal": {"$rdi": "long double X"}, "tgamma": {"$rdi": "double X"}, "tgammaf": {"$rdi": "float X"}, "tgammal": {"$rdi": "long double X"}, "tgammafN": {"$rdi": "_FloatN X"}, "tgammafNx": {"$rdi": "_FloatNx X"}, "j0": {"$rdi": "double X"}, "j0f": {"$rdi": "float X"}, "j0l": {"$rdi": "long double X"}, "j0fN": {"$rdi": "_FloatN X"}, "j0fNx": {"$rdi": "_FloatNx X"}, "j1": {"$rdi": "double X"}, "j1f": {"$rdi": "float X"}, "j1l": {"$rdi": "long double X"}, "j1fN": {"$rdi": "_FloatN X"}, "j1fNx": {"$rdi": "_FloatNx X"}, "jn": {"$rdi": "int N", "$rsi": "double X"}, "jnf": {"$rdi": "int N", "$rsi": "float X"}, "jnl": {"$rdi": "int N", "$rsi": "long double X"}, "jnfN": {"$rdi": "int N", "$rsi": "_FloatN X"}, "jnfNx": {"$rdi": "int N", "$rsi": "_FloatNx X"}, "y0": {"$rdi": "double X"}, "y0f": {"$rdi": "float X"}, "y0l": {"$rdi": "long double X"}, "y0fN": {"$rdi": "_FloatN X"}, "y0fNx": {"$rdi": "_FloatNx X"}, "y1": {"$rdi": "double X"}, "y1f": {"$rdi": "float X"}, "y1l": {"$rdi": "long double X"}, "y1fN": {"$rdi": "_FloatN X"}, "y1fNx": {"$rdi": "_FloatNx X"}, "yn": {"$rdi": "int N", "$rsi": "double X"}, "ynf": {"$rdi": "int N", "$rsi": "float X"}, "ynl": {"$rdi": "int N", "$rsi": "long double X"}, "ynfN": {"$rdi": "int N", "$rsi": "_FloatN X"}, "ynfNx": {"$rdi": "int N", "$rsi": "_FloatNx X"}, "rand": {"$rdi": "void"}, "srand": {"$rdi": "unsigned int SEED"}, "rand_r": {"$rdi": "unsigned int *SEED"}, "random": {"$rdi": "void"}, "srandom": {"$rdi": "unsigned int SEED"}, "initstate": {"$rdi": "unsigned int SEED", "$rsi": "char *STATE", "$rdx": "size_t SIZE"}, "setstate": {"$rdi": "char *STATE"}, "random_r": {"$rdi": "struct random_data *restrict BUF", "$rsi": "int32_t *restrict RESULT"}, "srandom_r": {"$rdi": "unsigned int SEED", "$rsi": "struct random_data *BUF"}, "initstate_r": {"$rdi": "unsigned int SEED", "$rsi": "char *restrict STATEBUF", "$rdx": "size_t STATELEN", "$r10": "struct random_data *restrict BUF"}, "setstate_r": {"$rdi": "char *restrict STATEBUF", "$rsi": "struct random_data *restrict BUF"}, "drand48": {"$rdi": "void"}, "erand48": {"$rdi": "unsigned short int XSUBI[3]"}, "lrand48": {"$rdi": "void"}, "nrand48": {"$rdi": "unsigned short int XSUBI[3]"}, "mrand48": {"$rdi": "void"}, "jrand48": {"$rdi": "unsigned short int XSUBI[3]"}, "srand48": {"$rdi": "long int SEEDVAL"}, "seed48": {"$rdi": "unsigned short int SEED16V[3]"}, "lcong48": {"$rdi": "unsigned short int PARAM[7]"}, "drand48_r": {"$rdi": "struct drand48_data *BUFFER", "$rsi": "double *RESULT"}, "erand48_r": {"$rdi": "unsigned short int XSUBI[3]", "$rsi": "struct drand48_data *BUFFER", "$rdx": "double *RESULT"}, "lrand48_r": {"$rdi": "struct drand48_data *BUFFER", "$rsi": "long int *RESULT"}, "nrand48_r": {"$rdi": "unsigned short int XSUBI[3]", "$rsi": "struct drand48_data *BUFFER", "$rdx": "long int *RESULT"}, "mrand48_r": {"$rdi": "struct drand48_data *BUFFER", "$rsi": "long int *RESULT"}, "jrand48_r": {"$rdi": "unsigned short int XSUBI[3]", "$rsi": "struct drand48_data *BUFFER", "$rdx": "long int *RESULT"}, "srand48_r": {"$rdi": "long int SEEDVAL", "$rsi": "struct drand48_data *BUFFER"}, "seed48_r": {"$rdi": "unsigned short int SEED16V[3]", "$rsi": "struct drand48_data *BUFFER"}, "lcong48_r": {"$rdi": "unsigned short int PARAM[7]", "$rsi": "struct drand48_data *BUFFER"}, "div": {"$rdi": "int NUMERATOR", "$rsi": "int DENOMINATOR"}, "ldiv": {"$rdi": "long int NUMERATOR", "$rsi": "long int DENOMINATOR"}, "lldiv": {"$rdi": "long long int NUMERATOR", "$rsi": "long long int DENOMINATOR"}, "imaxdiv": {"$rdi": "intmax_t NUMERATOR", "$rsi": "intmax_t DENOMINATOR"}, "isinf": {"$rdi": "double X"}, "isinff": {"$rdi": "float X"}, "isinfl": {"$rdi": "long double X"}, "isnan": {"$rdi": "double X"}, "isnanf": {"$rdi": "float X"}, "isnanl": {"$rdi": "long double X"}, "finite": {"$rdi": "double X"}, "finitef": {"$rdi": "float X"}, "finitel": {"$rdi": "long double X"}, "feclearexcept": {"$rdi": "int EXCEPTS"}, "feraiseexcept": {"$rdi": "int EXCEPTS"}, "fesetexcept": {"$rdi": "int EXCEPTS"}, "fetestexcept": {"$rdi": "int EXCEPTS"}, "fegetexceptflag": {"$rdi": "fexcept_t *FLAGP", "$rsi": "int EXCEPTS"}, "fesetexceptflag": {"$rdi": "const fexcept_t *FLAGP", "$rsi": "int EXCEPTS"}, "fetestexceptflag": {"$rdi": "const fexcept_t *FLAGP", "$rsi": "int EXCEPTS"}, "fegetround": {"$rdi": "void"}, "fesetround": {"$rdi": "int ROUND"}, "fegetenv": {"$rdi": "fenv_t *ENVP"}, "feholdexcept": {"$rdi": "fenv_t *ENVP"}, "fesetenv": {"$rdi": "const fenv_t *ENVP"}, "feupdateenv": {"$rdi": "const fenv_t *ENVP"}, "fegetmode": {"$rdi": "femode_t *MODEP"}, "fesetmode": {"$rdi": "const femode_t *MODEP"}, "feenableexcept": {"$rdi": "int EXCEPTS"}, "fedisableexcept": {"$rdi": "int EXCEPTS"}, "fegetexcept": {"$rdi": "void"}, "abs": {"$rdi": "int NUMBER"}, "labs": {"$rdi": "long int NUMBER"}, "llabs": {"$rdi": "long long int NUMBER"}, "imaxabs": {"$rdi": "intmax_t NUMBER"}, "fabs": {"$rdi": "double NUMBER"}, "fabsf": {"$rdi": "float NUMBER"}, "fabsl": {"$rdi": "long double NUMBER"}, "fabsfN": {"$rdi": "_FloatN NUMBER"}, "fabsfNx": {"$rdi": "_FloatNx NUMBER"}, "cabs": {"$rdi": "complex double Z"}, "cabsf": {"$rdi": "complex float Z"}, "cabsl": {"$rdi": "complex long double Z"}, "cabsfN": {"$rdi": "complex _FloatN Z"}, "cabsfNx": {"$rdi": "complex _FloatNx Z"}, "frexp": {"$rdi": "double VALUE", "$rsi": "int *EXPONENT"}, "frexpf": {"$rdi": "float VALUE", "$rsi": "int *EXPONENT"}, "frexpl": {"$rdi": "long double VALUE", "$rsi": "int *EXPONENT"}, "frexpfN": {"$rdi": "_FloatN VALUE", "$rsi": "int *EXPONENT"}, "frexpfNx": {"$rdi": "_FloatNx VALUE", "$rsi": "int *EXPONENT"}, "ldexp": {"$rdi": "double VALUE", "$rsi": "int EXPONENT"}, "ldexpf": {"$rdi": "float VALUE", "$rsi": "int EXPONENT"}, "ldexpl": {"$rdi": "long double VALUE", "$rsi": "int EXPONENT"}, "ldexpfN": {"$rdi": "_FloatN VALUE", "$rsi": "int EXPONENT"}, "ldexpfNx": {"$rdi": "_FloatNx VALUE", "$rsi": "int EXPONENT"}, "scalb": {"$rdi": "double VALUE", "$rsi": "double EXPONENT"}, "scalbf": {"$rdi": "float VALUE", "$rsi": "float EXPONENT"}, "scalbl": {"$rdi": "long double VALUE", "$rsi": "long double EXPONENT"}, "scalbn": {"$rdi": "double X", "$rsi": "int N"}, "scalbnf": {"$rdi": "float X", "$rsi": "int N"}, "scalbnl": {"$rdi": "long double X", "$rsi": "int N"}, "scalbnfN": {"$rdi": "_FloatN X", "$rsi": "int N"}, "scalbnfNx": {"$rdi": "_FloatNx X", "$rsi": "int N"}, "scalbln": {"$rdi": "double X", "$rsi": "long int N"}, "scalblnf": {"$rdi": "float X", "$rsi": "long int N"}, "scalblnl": {"$rdi": "long double X", "$rsi": "long int N"}, "scalblnfN": {"$rdi": "_FloatN X", "$rsi": "long int N"}, "scalblnfNx": {"$rdi": "_FloatNx X", "$rsi": "long int N"}, "significand": {"$rdi": "double X"}, "significandf": {"$rdi": "float X"}, "significandl": {"$rdi": "long double X"}, "ceil": {"$rdi": "double X"}, "ceilf": {"$rdi": "float X"}, "ceill": {"$rdi": "long double X"}, "ceilfN": {"$rdi": "_FloatN X"}, "ceilfNx": {"$rdi": "_FloatNx X"}, "floor": {"$rdi": "double X"}, "floorf": {"$rdi": "float X"}, "floorl": {"$rdi": "long double X"}, "floorfN": {"$rdi": "_FloatN X"}, "floorfNx": {"$rdi": "_FloatNx X"}, "trunc": {"$rdi": "double X"}, "truncf": {"$rdi": "float X"}, "truncl": {"$rdi": "long double X"}, "truncfN": {"$rdi": "_FloatN X"}, "truncfNx": {"$rdi": "_FloatNx X"}, "rint": {"$rdi": "double X"}, "rintf": {"$rdi": "float X"}, "rintl": {"$rdi": "long double X"}, "rintfN": {"$rdi": "_FloatN X"}, "rintfNx": {"$rdi": "_FloatNx X"}, "nearbyint": {"$rdi": "double X"}, "nearbyintf": {"$rdi": "float X"}, "nearbyintl": {"$rdi": "long double X"}, "nearbyintfN": {"$rdi": "_FloatN X"}, "nearbyintfNx": {"$rdi": "_FloatNx X"}, "round": {"$rdi": "double X"}, "roundf": {"$rdi": "float X"}, "roundl": {"$rdi": "long double X"}, "roundfN": {"$rdi": "_FloatN X"}, "roundfNx": {"$rdi": "_FloatNx X"}, "roundeven": {"$rdi": "double X"}, "roundevenf": {"$rdi": "float X"}, "roundevenl": {"$rdi": "long double X"}, "roundevenfN": {"$rdi": "_FloatN X"}, "roundevenfNx": {"$rdi": "_FloatNx X"}, "lrint": {"$rdi": "double X"}, "lrintf": {"$rdi": "float X"}, "lrintl": {"$rdi": "long double X"}, "lrintfN": {"$rdi": "_FloatN X"}, "lrintfNx": {"$rdi": "_FloatNx X"}, "llrint": {"$rdi": "double X"}, "llrintf": {"$rdi": "float X"}, "llrintl": {"$rdi": "long double X"}, "llrintfN": {"$rdi": "_FloatN X"}, "llrintfNx": {"$rdi": "_FloatNx X"}, "lround": {"$rdi": "double X"}, "lroundf": {"$rdi": "float X"}, "lroundl": {"$rdi": "long double X"}, "lroundfN": {"$rdi": "_FloatN X"}, "lroundfNx": {"$rdi": "_FloatNx X"}, "llround": {"$rdi": "double X"}, "llroundf": {"$rdi": "float X"}, "llroundl": {"$rdi": "long double X"}, "llroundfN": {"$rdi": "_FloatN X"}, "llroundfNx": {"$rdi": "_FloatNx X"}, "fromfp": {"$rdi": "double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpf": {"$rdi": "float X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpl": {"$rdi": "long double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpfN": {"$rdi": "_FloatN X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpfNx": {"$rdi": "_FloatNx X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfp": {"$rdi": "double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpf": {"$rdi": "float X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpl": {"$rdi": "long double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpfN": {"$rdi": "_FloatN X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpfNx": {"$rdi": "_FloatNx X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpx": {"$rdi": "double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpxf": {"$rdi": "float X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpxl": {"$rdi": "long double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpxfN": {"$rdi": "_FloatN X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpxfNx": {"$rdi": "_FloatNx X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpx": {"$rdi": "double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpxf": {"$rdi": "float X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpxl": {"$rdi": "long double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpxfN": {"$rdi": "_FloatN X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpxfNx": {"$rdi": "_FloatNx X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "modf": {"$rdi": "double VALUE", "$rsi": "double *INTEGER-PART"}, "modff": {"$rdi": "float VALUE", "$rsi": "float *INTEGER-PART"}, "modfl": {"$rdi": "long double VALUE", "$rsi": "long double *INTEGER-PART"}, "modffN": {"$rdi": "_FloatN VALUE", "$rsi": "_FloatN *INTEGER-PART"}, "modffNx": {"$rdi": "_FloatNx VALUE", "$rsi": "_FloatNx *INTEGER-PART"}, "fmod": {"$rdi": "double NUMERATOR", "$rsi": "double DENOMINATOR"}, "fmodf": {"$rdi": "float NUMERATOR", "$rsi": "float DENOMINATOR"}, "fmodl": {"$rdi": "long double NUMERATOR", "$rsi": "long double DENOMINATOR"}, "fmodfN": {"$rdi": "_FloatN NUMERATOR", "$rsi": "_FloatN DENOMINATOR"}, "fmodfNx": {"$rdi": "_FloatNx NUMERATOR", "$rsi": "_FloatNx DENOMINATOR"}, "remainder": {"$rdi": "double NUMERATOR", "$rsi": "double DENOMINATOR"}, "remainderf": {"$rdi": "float NUMERATOR", "$rsi": "float DENOMINATOR"}, "remainderl": {"$rdi": "long double NUMERATOR", "$rsi": "long double DENOMINATOR"}, "remainderfN": {"$rdi": "_FloatN NUMERATOR", "$rsi": "_FloatN DENOMINATOR"}, "remainderfNx": {"$rdi": "_FloatNx NUMERATOR", "$rsi": "_FloatNx DENOMINATOR"}, "drem": {"$rdi": "double NUMERATOR", "$rsi": "double DENOMINATOR"}, "dremf": {"$rdi": "float NUMERATOR", "$rsi": "float DENOMINATOR"}, "dreml": {"$rdi": "long double NUMERATOR", "$rsi": "long double DENOMINATOR"}, "copysign": {"$rdi": "double X", "$rsi": "double Y"}, "copysignf": {"$rdi": "float X", "$rsi": "float Y"}, "copysignl": {"$rdi": "long double X", "$rsi": "long double Y"}, "copysignfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "copysignfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "signbit": {"$rdi": "_float-type_ X"}, "nextafter": {"$rdi": "double X", "$rsi": "double Y"}, "nextafterf": {"$rdi": "float X", "$rsi": "float Y"}, "nextafterl": {"$rdi": "long double X", "$rsi": "long double Y"}, "nextafterfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "nextafterfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "nexttoward": {"$rdi": "double X", "$rsi": "long double Y"}, "nexttowardf": {"$rdi": "float X", "$rsi": "long double Y"}, "nexttowardl": {"$rdi": "long double X", "$rsi": "long double Y"}, "nextup": {"$rdi": "double X"}, "nextupf": {"$rdi": "float X"}, "nextupl": {"$rdi": "long double X"}, "nextupfN": {"$rdi": "_FloatN X"}, "nextupfNx": {"$rdi": "_FloatNx X"}, "nextdown": {"$rdi": "double X"}, "nextdownf": {"$rdi": "float X"}, "nextdownl": {"$rdi": "long double X"}, "nextdownfN": {"$rdi": "_FloatN X"}, "nextdownfNx": {"$rdi": "_FloatNx X"}, "nan": {"$rdi": "const char *TAGP"}, "nanf": {"$rdi": "const char *TAGP"}, "nanl": {"$rdi": "const char *TAGP"}, "nanfN": {"$rdi": "const char *TAGP"}, "nanfNx": {"$rdi": "const char *TAGP"}, "canonicalize": {"$rdi": "double *CX", "$rsi": "const double *X"}, "canonicalizef": {"$rdi": "float *CX", "$rsi": "const float *X"}, "canonicalizel": {"$rdi": "long double *CX", "$rsi": "const long double *X"}, "canonicalizefN": {"$rdi": "_FloatN *CX", "$rsi": "const _FloatN *X"}, "canonicalizefNx": {"$rdi": "_FloatNx *CX", "$rsi": "const _FloatNx *X"}, "getpayload": {"$rdi": "const double *X"}, "getpayloadf": {"$rdi": "const float *X"}, "getpayloadl": {"$rdi": "const long double *X"}, "getpayloadfN": {"$rdi": "const _FloatN *X"}, "getpayloadfNx": {"$rdi": "const _FloatNx *X"}, "setpayload": {"$rdi": "double *X", "$rsi": "double PAYLOAD"}, "setpayloadf": {"$rdi": "float *X", "$rsi": "float PAYLOAD"}, "setpayloadl": {"$rdi": "long double *X", "$rsi": "long double PAYLOAD"}, "setpayloadfN": {"$rdi": "_FloatN *X", "$rsi": "_FloatN PAYLOAD"}, "setpayloadfNx": {"$rdi": "_FloatNx *X", "$rsi": "_FloatNx PAYLOAD"}, "setpayloadsig": {"$rdi": "double *X", "$rsi": "double PAYLOAD"}, "setpayloadsigf": {"$rdi": "float *X", "$rsi": "float PAYLOAD"}, "setpayloadsigl": {"$rdi": "long double *X", "$rsi": "long double PAYLOAD"}, "setpayloadsigfN": {"$rdi": "_FloatN *X", "$rsi": "_FloatN PAYLOAD"}, "setpayloadsigfNx": {"$rdi": "_FloatNx *X", "$rsi": "_FloatNx PAYLOAD"}, "totalorder": {"$rdi": "const double *X", "$rsi": "const double *Y"}, "totalorderf": {"$rdi": "const float *X", "$rsi": "const float *Y"}, "totalorderl": {"$rdi": "const long double *X", "$rsi": "const long double *Y"}, "totalorderfN": {"$rdi": "const _FloatN *X", "$rsi": "const _FloatN *Y"}, "totalorderfNx": {"$rdi": "const _FloatNx *X", "$rsi": "const _FloatNx *Y"}, "totalordermag": {"$rdi": "const double *X", "$rsi": "const double *Y"}, "totalordermagf": {"$rdi": "const float *X", "$rsi": "const float *Y"}, "totalordermagl": {"$rdi": "const long double *X", "$rsi": "const long double *Y"}, "totalordermagfN": {"$rdi": "const _FloatN *X", "$rsi": "const _FloatN *Y"}, "totalordermagfNx": {"$rdi": "const _FloatNx *X", "$rsi": "const _FloatNx *Y"}, "fmin": {"$rdi": "double X", "$rsi": "double Y"}, "fminf": {"$rdi": "float X", "$rsi": "float Y"}, "fminl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fminfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fminfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fmax": {"$rdi": "double X", "$rsi": "double Y"}, "fmaxf": {"$rdi": "float X", "$rsi": "float Y"}, "fmaxl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fmaxfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fmaxfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fminmag": {"$rdi": "double X", "$rsi": "double Y"}, "fminmagf": {"$rdi": "float X", "$rsi": "float Y"}, "fminmagl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fminmagfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fminmagfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fmaxmag": {"$rdi": "double X", "$rsi": "double Y"}, "fmaxmagf": {"$rdi": "float X", "$rsi": "float Y"}, "fmaxmagl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fmaxmagfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fmaxmagfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fdim": {"$rdi": "double X", "$rsi": "double Y"}, "fdimf": {"$rdi": "float X", "$rsi": "float Y"}, "fdiml": {"$rdi": "long double X", "$rsi": "long double Y"}, "fdimfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fdimfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fma": {"$rdi": "double X", "$rsi": "double Y", "$rdx": "double Z"}, "fmaf": {"$rdi": "float X", "$rsi": "float Y", "$rdx": "float Z"}, "fmal": {"$rdi": "long double X", "$rsi": "long double Y", "$rdx": "long double Z"}, "fmafN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y", "$rdx": "_FloatN Z"}, "fmafNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y", "$rdx": "_FloatNx Z"}, "fadd": {"$rdi": "double X", "$rsi": "double Y"}, "faddl": {"$rdi": "long double X", "$rsi": "long double Y"}, "daddl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fMaddfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMaddfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fMxaddfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMxaddfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fsub": {"$rdi": "double X", "$rsi": "double Y"}, "fsubl": {"$rdi": "long double X", "$rsi": "long double Y"}, "dsubl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fMsubfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMsubfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fMxsubfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMxsubfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fmul": {"$rdi": "double X", "$rsi": "double Y"}, "fmull": {"$rdi": "long double X", "$rsi": "long double Y"}, "dmull": {"$rdi": "long double X", "$rsi": "long double Y"}, "fMmulfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMmulfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fMxmulfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMxmulfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fdiv": {"$rdi": "double X", "$rsi": "double Y"}, "fdivl": {"$rdi": "long double X", "$rsi": "long double Y"}, "ddivl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fMdivfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMdivfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fMxdivfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMxdivfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "creal": {"$rdi": "complex double Z"}, "crealf": {"$rdi": "complex float Z"}, "creall": {"$rdi": "complex long double Z"}, "crealfN": {"$rdi": "complex _FloatN Z"}, "crealfNx": {"$rdi": "complex _FloatNx Z"}, "cimag": {"$rdi": "complex double Z"}, "cimagf": {"$rdi": "complex float Z"}, "cimagl": {"$rdi": "complex long double Z"}, "cimagfN": {"$rdi": "complex _FloatN Z"}, "cimagfNx": {"$rdi": "complex _FloatNx Z"}, "conj": {"$rdi": "complex double Z"}, "conjf": {"$rdi": "complex float Z"}, "conjl": {"$rdi": "complex long double Z"}, "conjfN": {"$rdi": "complex _FloatN Z"}, "conjfNx": {"$rdi": "complex _FloatNx Z"}, "carg": {"$rdi": "complex double Z"}, "cargf": {"$rdi": "complex float Z"}, "cargl": {"$rdi": "complex long double Z"}, "cargfN": {"$rdi": "complex _FloatN Z"}, "cargfNx": {"$rdi": "complex _FloatNx Z"}, "cproj": {"$rdi": "complex double Z"}, "cprojf": {"$rdi": "complex float Z"}, "cprojl": {"$rdi": "complex long double Z"}, "cprojfN": {"$rdi": "complex _FloatN Z"}, "cprojfNx": {"$rdi": "complex _FloatNx Z"}, "strtol": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstol": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtoul": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstoul": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtoll": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstoll": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtoq": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstoq": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtoull": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstoull": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtouq": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstouq": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtoimax": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstoimax": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtoumax": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstoumax": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "atol": {"$rdi": "const char *STRING"}, "atoi": {"$rdi": "const char *STRING"}, "atoll": {"$rdi": "const char *STRING"}, "strtod": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR"}, "strtof": {"$rdi": "const char *STRING", "$rsi": "char **TAILPTR"}, "strtold": {"$rdi": "const char *STRING", "$rsi": "char **TAILPTR"}, "strtofN": {"$rdi": "const char *STRING", "$rsi": "char **TAILPTR"}, "strtofNx": {"$rdi": "const char *STRING", "$rsi": "char **TAILPTR"}, "wcstod": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR"}, "wcstof": {"$rdi": "const wchar_t *STRING", "$rsi": "wchar_t **TAILPTR"}, "wcstold": {"$rdi": "const wchar_t *STRING", "$rsi": "wchar_t **TAILPTR"}, "wcstofN": {"$rdi": "const wchar_t *STRING", "$rsi": "wchar_t **TAILPTR"}, "wcstofNx": {"$rdi": "const wchar_t *STRING", "$rsi": "wchar_t **TAILPTR"}, "atof": {"$rdi": "const char *STRING"}, "strfromd": {"$rdi": "char *restrict STRING", "$rsi": "size_t SIZE", "$rdx": "const char *restrict FORMAT", "$r10": "double VALUE"}, "strfromf": {"$rdi": "char *restrict STRING", "$rsi": "size_t SIZE", "$rdx": "const char *restrict FORMAT", "$r10": "float VALUE"}, "strfroml": {"$rdi": "char *restrict STRING", "$rsi": "size_t SIZE", "$rdx": "const char *restrict FORMAT", "$r10": "long double VALUE"}, "strfromfN": {"$rdi": "char *restrict STRING", "$rsi": "size_t SIZE", "$rdx": "const char *restrict FORMAT", "$r10": "_FloatN VALUE"}, "strfromfNx": {"$rdi": "char *restrict STRING", "$rsi": "size_t SIZE", "$rdx": "const char *restrict FORMAT", "$r10": "_FloatNx VALUE"}, "ecvt": {"$rdi": "double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG"}, "fcvt": {"$rdi": "double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG"}, "gcvt": {"$rdi": "double VALUE", "$rsi": "int NDIGIT", "$rdx": "char *BUF"}, "qecvt": {"$rdi": "long double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG"}, "qfcvt": {"$rdi": "long double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG"}, "qgcvt": {"$rdi": "long double VALUE", "$rsi": "int NDIGIT", "$rdx": "char *BUF"}, "ecvt_r": {"$rdi": "double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG", "$r8": "char *BUF", "$r9": "size_t LEN"}, "fcvt_r": {"$rdi": "double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG", "$r8": "char *BUF", "$r9": "size_t LEN"}, "qecvt_r": {"$rdi": "long double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG", "$r8": "char *BUF", "$r9": "size_t LEN"}, "qfcvt_r": {"$rdi": "long double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG", "$r8": "char *BUF", "$r9": "size_t LEN"}, "difftime": {"$rdi": "time_t END", "$rsi": "time_t BEGIN"}, "clock": {"$rdi": "void"}, "times": {"$rdi": "struct tms *BUFFER"}, "time": {"$rdi": "time_t *RESULT"}, "clock_gettime": {"$rdi": "clockid_t CLOCK", "$rsi": "struct timespec *TS"}, "clock_getres": {"$rdi": "clockid_t CLOCK", "$rsi": "struct timespec *RES"}, "gettimeofday": {"$rdi": "struct timeval *TP", "$rsi": "void *TZP"}, "clock_settime": {"$rdi": "clockid_t CLOCK", "$rsi": "const struct timespec *TS"}, "ntp_gettime": {"$rdi": "struct ntptimeval *TPTR"}, "ntp_adjtime": {"$rdi": "struct timex *TPTR"}, "adjtime": {"$rdi": "const struct timeval *DELTA", "$rsi": "struct timeval *OLDDELTA"}, "stime": {"$rdi": "const time_t *NEWTIME"}, "adjtimex": {"$rdi": "struct timex *TIMEX"}, "settimeofday": {"$rdi": "const struct timeval *TP", "$rsi": "const void *TZP"}, "localtime": {"$rdi": "const time_t *TIME"}, "localtime_r": {"$rdi": "const time_t *TIME", "$rsi": "struct tm *RESULTP"}, "gmtime": {"$rdi": "const time_t *TIME"}, "gmtime_r": {"$rdi": "const time_t *TIME", "$rsi": "struct tm *RESULTP"}, "mktime": {"$rdi": "struct tm *BROKENTIME"}, "timelocal": {"$rdi": "struct tm *BROKENTIME"}, "timegm": {"$rdi": "struct tm *BROKENTIME"}, "asctime": {"$rdi": "const struct tm *BROKENTIME"}, "asctime_r": {"$rdi": "const struct tm *BROKENTIME", "$rsi": "char *BUFFER"}, "ctime": {"$rdi": "const time_t *TIME"}, "ctime_r": {"$rdi": "const time_t *TIME", "$rsi": "char *BUFFER"}, "strftime": {"$rdi": "char *S", "$rsi": "size_t SIZE", "$rdx": "const char *TEMPLATE", "$r10": "const struct tm *BROKENTIME"}, "wcsftime": {"$rdi": "wchar_t *S", "$rsi": "size_t SIZE", "$rdx": "const wchar_t *TEMPLATE", "$r10": "const struct tm *BROKENTIME"}, "strptime": {"$rdi": "const char *S", "$rsi": "const char *FMT", "$rdx": "struct tm *TP"}, "getdate": {"$rdi": "const char *STRING"}, "getdate_r": {"$rdi": "const char *STRING", "$rsi": "struct tm *TP"}, "tzset": {"$rdi": "void"}, "setitimer": {"$rdi": "int WHICH", "$rsi": "const struct itimerval *NEW", "$rdx": "struct itimerval *OLD"}, "getitimer": {"$rdi": "int WHICH", "$rsi": "struct itimerval *OLD"}, "alarm": {"$rdi": "unsigned int SECONDS"}, "sleep": {"$rdi": "unsigned int SECONDS"}, "nanosleep": {"$rdi": "const struct timespec *REQUESTED_TIME", "$rsi": "struct timespec *REMAINING"}, "getrusage": {"$rdi": "int PROCESSES", "$rsi": "struct rusage *RUSAGE"}, "vtimes": {"$rdi": "struct vtimes *CURRENT", "$rsi": "struct vtimes *CHILD"}, "getrlimit": {"$rdi": "int RESOURCE", "$rsi": "struct rlimit *RLP"}, "getrlimit64": {"$rdi": "int RESOURCE", "$rsi": "struct rlimit64 *RLP"}, "setrlimit": {"$rdi": "int RESOURCE", "$rsi": "const struct rlimit *RLP"}, "setrlimit64": {"$rdi": "int RESOURCE", "$rsi": "const struct rlimit64 *RLP"}, "ulimit": {"$rdi": "int CMD", "$rsi": "..."}, "vlimit": {"$rdi": "int RESOURCE", "$rsi": "int LIMIT"}, "sched_setscheduler": {"$rdi": "pid_t PID", "$rsi": "int POLICY", "$rdx": "const struct sched_param *PARAM"}, "sched_getscheduler": {"$rdi": "pid_t PID"}, "sched_setparam": {"$rdi": "pid_t PID", "$rsi": "const struct sched_param *PARAM"}, "sched_getparam": {"$rdi": "pid_t PID", "$rsi": "struct sched_param *PARAM"}, "sched_get_priority_min": {"$rdi": "int POLICY"}, "sched_get_priority_max": {"$rdi": "int POLICY"}, "sched_rr_get_interval": {"$rdi": "pid_t PID", "$rsi": "struct timespec *INTERVAL"}, "sched_yield": {"$rdi": "void"}, "getpriority": {"$rdi": "int CLASS", "$rsi": "int ID"}, "setpriority": {"$rdi": "int CLASS", "$rsi": "int ID", "$rdx": "int NICEVAL"}, "nice": {"$rdi": "int INCREMENT"}, "sched_getaffinity": {"$rdi": "pid_t PID", "$rsi": "size_t CPUSETSIZE", "$rdx": "cpu_set_t *CPUSET"}, "sched_setaffinity": {"$rdi": "pid_t PID", "$rsi": "size_t CPUSETSIZE", "$rdx": "const cpu_set_t *CPUSET"}, "getcpu": {"$rdi": "unsigned int *cpu", "$rsi": "unsigned int *node"}, "getpagesize": {"$rdi": "void"}, "get_phys_pages": {"$rdi": "void"}, "get_avphys_pages": {"$rdi": "void"}, "get_nprocs_conf": {"$rdi": "void"}, "get_nprocs": {"$rdi": "void"}, "getloadavg": {"$rdi": "double LOADAVG[]", "$rsi": "int NELEM"}, "longjmp": {"$rdi": "jmp_buf STATE", "$rsi": "int VALUE"}, "sigsetjmp": {"$rdi": "sigjmp_buf STATE", "$rsi": "int SAVESIGS"}, "siglongjmp": {"$rdi": "sigjmp_buf STATE", "$rsi": "int VALUE"}, "getcontext": {"$rdi": "ucontext_t *UCP"}, "makecontext": {"$rdi": "ucontext_t *UCP", "$rsi": "void (*FUNC) (void)", "$rdx": "int ARGC", "$r10": "..."}, "setcontext": {"$rdi": "const ucontext_t *UCP"}, "swapcontext": {"$rdi": "ucontext_t *restrict OUCP", "$rsi": "const ucontext_t *restrict UCP"}, "strsignal": {"$rdi": "int SIGNUM"}, "psignal": {"$rdi": "int SIGNUM", "$rsi": "const char *MESSAGE"}, "sigdescr_np": {"$rdi": "int SIGNUM"}, "sigabbrev_np": {"$rdi": "int SIGNUM"}, "signal": {"$rdi": "int SIGNUM", "$rsi": "sighandler_t ACTION"}, "sysv_signal": {"$rdi": "int SIGNUM", "$rsi": "sighandler_t ACTION"}, "ssignal": {"$rdi": "int SIGNUM", "$rsi": "sighandler_t ACTION"}, "sigaction": {"$rdi": "int SIGNUM", "$rsi": "const struct sigaction *restrict ACTION", "$rdx": "struct sigaction *restrict OLD-ACTION"}, "raise": {"$rdi": "int SIGNUM"}, "gsignal": {"$rdi": "int SIGNUM"}, "kill": {"$rdi": "pid_t PID", "$rsi": "int SIGNUM"}, "tgkill": {"$rdi": "pid_t PID", "$rsi": "pid_t TID", "$rdx": "int SIGNUM"}, "killpg": {"$rdi": "int PGID", "$rsi": "int SIGNUM"}, "sigemptyset": {"$rdi": "sigset_t *SET"}, "sigfillset": {"$rdi": "sigset_t *SET"}, "sigaddset": {"$rdi": "sigset_t *SET", "$rsi": "int SIGNUM"}, "sigdelset": {"$rdi": "sigset_t *SET", "$rsi": "int SIGNUM"}, "sigismember": {"$rdi": "const sigset_t *SET", "$rsi": "int SIGNUM"}, "sigprocmask": {"$rdi": "int HOW", "$rsi": "const sigset_t *restrict SET", "$rdx": "sigset_t *restrict OLDSET"}, "sigpending": {"$rdi": "sigset_t *SET"}, "pause": {"$rdi": "void"}, "sigsuspend": {"$rdi": "const sigset_t *SET"}, "sigaltstack": {"$rdi": "const stack_t *restrict STACK", "$rsi": "stack_t *restrict OLDSTACK"}, "sigstack": {"$rdi": "struct sigstack *STACK", "$rsi": "struct sigstack *OLDSTACK"}, "siginterrupt": {"$rdi": "int SIGNUM", "$rsi": "int FAILFLAG"}, "sigblock": {"$rdi": "int MASK"}, "sigsetmask": {"$rdi": "int MASK"}, "sigpause": {"$rdi": "int MASK"}, "getopt": {"$rdi": "int ARGC", "$rsi": "char *const *ARGV", "$rdx": "const char *OPTIONS"}, "getopt_long": {"$rdi": "int ARGC", "$rsi": "char *const *ARGV", "$rdx": "const char *SHORTOPTS", "$r10": "const struct option *LONGOPTS", "$r8": "int *INDEXPTR"}, "getopt_long_only": {"$rdi": "int ARGC", "$rsi": "char *const *ARGV", "$rdx": "const char *SHORTOPTS", "$r10": "const struct option *LONGOPTS", "$r8": "int *INDEXPTR"}, "argp_parse": {"$rdi": "const struct argp *ARGP", "$rsi": "int ARGC", "$rdx": "char **ARGV", "$r10": "unsigned FLAGS", "$r8": "int *ARG_INDEX", "$r9": "void *INPUT"}, "argp_usage": {"$rdi": "const struct argp_state *STATE"}, "argp_error": {"$rdi": "const struct argp_state *STATE", "$rsi": "const char *FMT", "$rdx": "..."}, "argp_failure": {"$rdi": "const struct argp_state *STATE", "$rsi": "int STATUS", "$rdx": "int ERRNUM", "$r10": "const char *FMT", "$r8": "..."}, "argp_state_help": {"$rdi": "const struct argp_state *STATE", "$rsi": "FILE *STREAM", "$rdx": "unsigned FLAGS"}, "argp_help": {"$rdi": "const struct argp *ARGP", "$rsi": "FILE *STREAM", "$rdx": "unsigned FLAGS", "$r10": "char *NAME"}, "getsubopt": {"$rdi": "char **OPTIONP", "$rsi": "char *const *TOKENS", "$rdx": "char **VALUEP"}, "getenv": {"$rdi": "const char *NAME"}, "secure_getenv": {"$rdi": "const char *NAME"}, "putenv": {"$rdi": "char *STRING"}, "setenv": {"$rdi": "const char *NAME", "$rsi": "const char *VALUE", "$rdx": "int REPLACE"}, "unsetenv": {"$rdi": "const char *NAME"}, "clearenv": {"$rdi": "void"}, "getauxval": {"$rdi": "unsigned long int TYPE"}, "syscall": {"$rdi": "long int SYSNO", "$rsi": "..."}, "exit": {"$rdi": "int STATUS"}, "atexit": {"$rdi": "void (*FUNCTION) (void)"}, "on_exit": {"$rdi": "void (*FUNCTION)(int STATUS", "$rsi": "void *ARG)", "$rdx": "void *ARG"}, "abort": {"$rdi": "void"}, "_exit": {"$rdi": "int STATUS"}, "_Exit": {"$rdi": "int STATUS"}, "system": {"$rdi": "const char *COMMAND"}, "getpid": {"$rdi": "void"}, "getppid": {"$rdi": "void"}, "gettid": {"$rdi": "void"}, "fork": {"$rdi": "void"}, "vfork": {"$rdi": "void"}, "execv": {"$rdi": "const char *FILENAME", "$rsi": "char *const ARGV[]"}, "execl": {"$rdi": "const char *FILENAME", "$rsi": "const char *ARG0", "$rdx": "..."}, "execve": {"$rdi": "const char *FILENAME", "$rsi": "char *const ARGV[]", "$rdx": "char *const ENV[]"}, "fexecve": {"$rdi": "int FD", "$rsi": "char *const ARGV[]", "$rdx": "char *const ENV[]"}, "execle": {"$rdi": "const char *FILENAME", "$rsi": "const char *ARG0", "$rdx": "...", "$r10": "char *const ENV[]"}, "execvp": {"$rdi": "const char *FILENAME", "$rsi": "char *const ARGV[]"}, "execlp": {"$rdi": "const char *FILENAME", "$rsi": "const char *ARG0", "$rdx": "..."}, "waitpid": {"$rdi": "pid_t PID", "$rsi": "int *STATUS-PTR", "$rdx": "int OPTIONS"}, "wait": {"$rdi": "int *STATUS-PTR"}, "wait4": {"$rdi": "pid_t PID", "$rsi": "int *STATUS-PTR", "$rdx": "int OPTIONS", "$r10": "struct rusage *USAGE"}, "wait3": {"$rdi": "int *STATUS-PTR", "$rsi": "int OPTIONS", "$rdx": "struct rusage *USAGE"}, "semctl": {"$rdi": "int SEMID", "$rsi": "int SEMNUM", "$rdx": "int CMD"}, "semget": {"$rdi": "key_t KEY", "$rsi": "int NSEMS", "$rdx": "int SEMFLG"}, "semop": {"$rdi": "int SEMID", "$rsi": "struct sembuf *SOPS", "$rdx": "size_t NSOPS"}, "semtimedop": {"$rdi": "int SEMID", "$rsi": "struct sembuf *SOPS", "$rdx": "size_t NSOPS", "$r10": "const struct timespec *TIMEOUT"}, "sem_init": {"$rdi": "sem_t *SEM", "$rsi": "int PSHARED", "$rdx": "unsigned int VALUE"}, "sem_destroy": {"$rdi": "sem_t *SEM"}, "*sem_open": {"$rdi": "const char *NAME", "$rsi": "int OFLAG", "$rdx": "..."}, "sem_close": {"$rdi": "sem_t *SEM"}, "sem_unlink": {"$rdi": "const char *NAME"}, "sem_wait": {"$rdi": "sem_t *SEM"}, "sem_timedwait": {"$rdi": "sem_t *SEM", "$rsi": "const struct timespec *ABSTIME"}, "sem_trywait": {"$rdi": "sem_t *SEM"}, "sem_post": {"$rdi": "sem_t *SEM"}, "sem_getvalue": {"$rdi": "sem_t *SEM", "$rsi": "int *SVAL"}, "ctermid": {"$rdi": "char *STRING"}, "setsid": {"$rdi": "void"}, "getsid": {"$rdi": "pid_t PID"}, "getpgrp": {"$rdi": "void"}, "getpgid": {"$rdi": "pid_t PID"}, "setpgid": {"$rdi": "pid_t PID", "$rsi": "pid_t PGID"}, "setpgrp": {"$rdi": "pid_t PID", "$rsi": "pid_t PGID"}, "tcgetpgrp": {"$rdi": "int FILEDES"}, "tcsetpgrp": {"$rdi": "int FILEDES", "$rsi": "pid_t PGID"}, "tcgetsid": {"$rdi": "int FILDES"}, "getuid": {"$rdi": "void"}, "getgid": {"$rdi": "void"}, "geteuid": {"$rdi": "void"}, "getegid": {"$rdi": "void"}, "getgroups": {"$rdi": "int COUNT", "$rsi": "gid_t *GROUPS"}, "seteuid": {"$rdi": "uid_t NEWEUID"}, "setuid": {"$rdi": "uid_t NEWUID"}, "setreuid": {"$rdi": "uid_t RUID", "$rsi": "uid_t EUID"}, "setegid": {"$rdi": "gid_t NEWGID"}, "setgid": {"$rdi": "gid_t NEWGID"}, "setregid": {"$rdi": "gid_t RGID", "$rsi": "gid_t EGID"}, "setgroups": {"$rdi": "size_t COUNT", "$rsi": "const gid_t *GROUPS"}, "initgroups": {"$rdi": "const char *USER", "$rsi": "gid_t GROUP"}, "getgrouplist": {"$rdi": "const char *USER", "$rsi": "gid_t GROUP", "$rdx": "gid_t *GROUPS", "$r10": "int *NGROUPS"}, "getlogin": {"$rdi": "void"}, "cuserid": {"$rdi": "char *STRING"}, "setutent": {"$rdi": "void"}, "getutent": {"$rdi": "void"}, "endutent": {"$rdi": "void"}, "getutid": {"$rdi": "const struct utmp *ID"}, "getutline": {"$rdi": "const struct utmp *LINE"}, "pututline": {"$rdi": "const struct utmp *UTMP"}, "getutent_r": {"$rdi": "struct utmp *BUFFER", "$rsi": "struct utmp **RESULT"}, "getutid_r": {"$rdi": "const struct utmp *ID", "$rsi": "struct utmp *BUFFER", "$rdx": "struct utmp **RESULT"}, "getutline_r": {"$rdi": "const struct utmp *LINE", "$rsi": "struct utmp *BUFFER", "$rdx": "struct utmp **RESULT"}, "utmpname": {"$rdi": "const char *FILE"}, "updwtmp": {"$rdi": "const char *WTMP_FILE", "$rsi": "const struct utmp *UTMP"}, "setutxent": {"$rdi": "void"}, "getutxent": {"$rdi": "void"}, "endutxent": {"$rdi": "void"}, "getutxid": {"$rdi": "const struct utmpx *ID"}, "getutxline": {"$rdi": "const struct utmpx *LINE"}, "pututxline": {"$rdi": "const struct utmpx *UTMP"}, "utmpxname": {"$rdi": "const char *FILE"}, "getutmp": {"$rdi": "const struct utmpx *UTMPX", "$rsi": "struct utmp *UTMP"}, "getutmpx": {"$rdi": "const struct utmp *UTMP", "$rsi": "struct utmpx *UTMPX"}, "login_tty": {"$rdi": "int FILEDES"}, "login": {"$rdi": "const struct utmp *ENTRY"}, "logout": {"$rdi": "const char *UT_LINE"}, "logwtmp": {"$rdi": "const char *UT_LINE", "$rsi": "const char *UT_NAME", "$rdx": "const char *UT_HOST"}, "getpwuid": {"$rdi": "uid_t UID"}, "getpwuid_r": {"$rdi": "uid_t UID", "$rsi": "struct passwd *RESULT_BUF", "$rdx": "char *BUFFER", "$r10": "size_t BUFLEN", "$r8": "struct passwd **RESULT"}, "getpwnam": {"$rdi": "const char *NAME"}, "getpwnam_r": {"$rdi": ""}, "fgetpwent": {"$rdi": "FILE *STREAM"}, "fgetpwent_r": {"$rdi": "FILE *STREAM", "$rsi": "struct passwd *RESULT_BUF", "$rdx": "char *BUFFER", "$r10": "size_t BUFLEN", "$r8": "struct passwd **RESULT"}, "setpwent": {"$rdi": "void"}, "getpwent": {"$rdi": "void"}, "getpwent_r": {"$rdi": "struct passwd *RESULT_BUF", "$rsi": "char *BUFFER", "$rdx": "size_t BUFLEN", "$r10": "struct passwd **RESULT"}, "endpwent": {"$rdi": "void"}, "putpwent": {"$rdi": "const struct passwd *P", "$rsi": "FILE *STREAM"}, "getgrgid": {"$rdi": "gid_t GID"}, "getgrgid_r": {"$rdi": "gid_t GID", "$rsi": "struct group *RESULT_BUF", "$rdx": "char *BUFFER", "$r10": "size_t BUFLEN", "$r8": "struct group **RESULT"}, "getgrnam": {"$rdi": "const char *NAME"}, "getgrnam_r": {"$rdi": ""}, "fgetgrent": {"$rdi": "FILE *STREAM"}, "fgetgrent_r": {"$rdi": "FILE *STREAM", "$rsi": "struct group *RESULT_BUF", "$rdx": "char *BUFFER", "$r10": "size_t BUFLEN", "$r8": "struct group **RESULT"}, "setgrent": {"$rdi": "void"}, "getgrent": {"$rdi": "void"}, "getgrent_r": {"$rdi": "struct group *RESULT_BUF", "$rsi": "char *BUFFER", "$rdx": "size_t BUFLEN", "$r10": "struct group **RESULT"}, "endgrent": {"$rdi": "void"}, "setnetgrent": {"$rdi": "const char *NETGROUP"}, "getnetgrent": {"$rdi": "char **HOSTP", "$rsi": "char **USERP", "$rdx": "char **DOMAINP"}, "getnetgrent_r": {"$rdi": "char **HOSTP", "$rsi": "char **USERP", "$rdx": "char **DOMAINP", "$r10": "char *BUFFER", "$r8": "size_t BUFLEN"}, "endnetgrent": {"$rdi": "void"}, "innetgr": {"$rdi": "const char *NETGROUP", "$rsi": "const char *HOST", "$rdx": "const char *USER", "$r10": "const char *DOMAIN"}, "gethostname": {"$rdi": "char *NAME", "$rsi": "size_t SIZE"}, "sethostname": {"$rdi": "const char *NAME", "$rsi": "size_t LENGTH"}, "getdomainnname": {"$rdi": "char *NAME", "$rsi": "size_t LENGTH"}, "setdomainname": {"$rdi": "const char *NAME", "$rsi": "size_t LENGTH"}, "gethostid": {"$rdi": "void"}, "sethostid": {"$rdi": "long int ID"}, "uname": {"$rdi": "struct utsname *INFO"}, "setfsent": {"$rdi": "void"}, "endfsent": {"$rdi": "void"}, "getfsent": {"$rdi": "void"}, "getfsspec": {"$rdi": "const char *NAME"}, "getfsfile": {"$rdi": "const char *NAME"}, "setmntent": {"$rdi": "const char *FILE", "$rsi": "const char *MODE"}, "endmntent": {"$rdi": "FILE *STREAM"}, "getmntent": {"$rdi": "FILE *STREAM"}, "getmntent_r": {"$rdi": "FILE *STREAM", "$rsi": "struct mntent *RESULT", "$rdx": "char *BUFFER", "$r10": "int BUFSIZE"}, "addmntent": {"$rdi": "FILE *STREAM", "$rsi": "const struct mntent *MNT"}, "hasmntopt": {"$rdi": "const struct mntent *MNT", "$rsi": "const char *OPT"}, "mount": {"$rdi": ""}, "umount2": {"$rdi": "const char *FILE", "$rsi": "int FLAGS"}, "umount": {"$rdi": "const char *FILE"}, "sysconf": {"$rdi": "int PARAMETER"}, "pathconf": {"$rdi": "const char *FILENAME", "$rsi": "int PARAMETER"}, "fpathconf": {"$rdi": "int FILEDES", "$rsi": "int PARAMETER"}, "confstr": {"$rdi": "int PARAMETER", "$rsi": "char *BUF", "$rdx": "size_t LEN"}, "crypt": {"$rdi": "const char *PHRASE", "$rsi": "const char *SALT"}, "crypt_r": {"$rdi": "const char *PHRASE", "$rsi": "const char *SALT", "$rdx": "struct crypt_data *DATA"}, "getentropy": {"$rdi": "void *BUFFER", "$rsi": "size_t LENGTH"}, "getrandom": {"$rdi": "void *BUFFER", "$rsi": "size_t LENGTH", "$rdx": "unsigned int FLAGS"}, "backtrace": {"$rdi": "void **BUFFER", "$rsi": "int SIZE"}, "backtrace_symbols": {"$rdi": "void *const *BUFFER", "$rsi": "int SIZE"}, "backtrace_symbols_fd": {"$rdi": "void *const *BUFFER", "$rsi": "int SIZE", "$rdx": "int FD"}, "thrd_create": {"$rdi": "thrd_t *THR", "$rsi": "thrd_start_t FUNC", "$rdx": "void *ARG"}, "thrd_current": {"$rdi": "void"}, "thrd_equal": {"$rdi": "thrd_t LHS", "$rsi": "thrd_t RHS"}, "thrd_sleep": {"$rdi": "const struct timespec *TIME_POINT", "$rsi": "struct timespec *REMAINING"}, "thrd_yield": {"$rdi": "void"}, "thrd_exit": {"$rdi": "int RES"}, "thrd_detach": {"$rdi": "thrd_t THR"}, "thrd_join": {"$rdi": "thrd_t THR", "$rsi": "int *RES"}, "call_once": {"$rdi": "once_flag *FLAG", "$rsi": "void (*FUNC) (void)"}, "mtx_init": {"$rdi": "mtx_t *MUTEX", "$rsi": "int TYPE"}, "mtx_lock": {"$rdi": "mtx_t *MUTEX"}, "mtx_timedlock": {"$rdi": "mtx_t *restrict MUTEX", "$rsi": "const struct timespec *restrict TIME_POINT"}, "mtx_trylock": {"$rdi": "mtx_t *MUTEX"}, "mtx_unlock": {"$rdi": "mtx_t *MUTEX"}, "mtx_destroy": {"$rdi": "mtx_t *MUTEX"}, "cnd_init": {"$rdi": "cnd_t *COND"}, "cnd_signal": {"$rdi": "cnd_t *COND"}, "cnd_broadcast": {"$rdi": "cnd_t *COND"}, "cnd_wait": {"$rdi": "cnd_t *COND", "$rsi": "mtx_t *MUTEX"}, "cnd_timedwait": {"$rdi": "cnd_t *restrict COND", "$rsi": "mtx_t *restrict MUTEX", "$rdx": "const struct timespec *restrict TIME_POINT"}, "cnd_destroy": {"$rdi": "cnd_t *COND"}, "tss_create": {"$rdi": "tss_t *TSS_KEY", "$rsi": "tss_dtor_t DESTRUCTOR"}, "tss_set": {"$rdi": "tss_t TSS_KEY", "$rsi": "void *VAL"}, "tss_get": {"$rdi": "tss_t TSS_KEY"}, "tss_delete": {"$rdi": "tss_t TSS_KEY"}, "pthread_key_create": {"$rdi": "pthread_key_t *KEY", "$rsi": "void (*DESTRUCTOR)(void*)"}, "pthread_key_delete": {"$rdi": "pthread_key_t KEY"}, "*pthread_getspecific": {"$rdi": "pthread_key_t KEY"}, "pthread_setspecific": {"$rdi": "pthread_key_t KEY", "$rsi": "const void *VALUE"}, "pthread_getattr_default_np": {"$rdi": "pthread_attr_t *ATTR"}, "pthread_setattr_default_np": {"$rdi": "pthread_attr_t *ATTR"}, "pthread_attr_setsigmask_np": {"$rdi": "pthread_attr_t *ATTR", "$rsi": "const sigset_t *SIGMASK"}, "pthread_attr_getsigmask_np": {"$rdi": "const pthread_attr_t *ATTR", "$rsi": "sigset_t *SIGMASK"}, "sem_clockwait": {"$rdi": "sem_t *SEM", "$rsi": "clockid_t CLOCKID", "$rdx": "const struct timespec *ABSTIME"}, "pthread_cond_clockwait": {"$rdi": ""}, "pthread_rwlock_clockrdlock": {"$rdi": "pthread_rwlock_t *RWLOCK", "$rsi": "clockid_t CLOCKID", "$rdx": "const struct timespec *ABSTIME"}, "pthread_rwlock_clockwrlock": {"$rdi": "pthread_rwlock_t *RWLOCK", "$rsi": "clockid_t CLOCKID", "$rdx": "const struct timespec *ABSTIME"}, "pthread_tryjoin_np": {"$rdi": "pthread_t *THREAD", "$rsi": "void **THREAD_RETURN"}, "pthread_timedjoin_np": {"$rdi": "pthread_t *THREAD", "$rsi": "void **THREAD_RETURN", "$rdx": "const struct timespec *ABSTIME"}, "pthread_clockjoin_np": {"$rdi": ""}, "__ppc_get_timebase": {"$rdi": "void"}, "__ppc_get_timebase_freq": {"$rdi": "void"}, "__ppc_yield": {"$rdi": "void"}, "__ppc_mdoio": {"$rdi": "void"}, "__ppc_mdoom": {"$rdi": "void"}, "__ppc_set_ppr_med": {"$rdi": "void"}, "__ppc_set_ppr_low": {"$rdi": "void"}, "__ppc_set_ppr_med_low": {"$rdi": "void"}, "__ppc_set_ppr_very_low": {"$rdi": "void"}, "__ppc_set_ppr_med_high": {"$rdi": "void"}, "__riscv_flush_icache": {"$rdi": "void *START", "$rsi": "void *END", "$rdx": "unsigned long int FLAGS"}} +{"strerror": {"$rdi": "int ERRNUM"}, "strerror_l": {"$rdi": "int ERRNUM", "$rsi": "locale_t LOCALE"}, "strerror_r": {"$rdi": "int ERRNUM", "$rsi": "char *BUF", "$rdx": "size_t N"}, "perror": {"$rdi": "const char *MESSAGE"}, "strerrorname_np": {"$rdi": "int ERRNUM"}, "strerrordesc_np": {"$rdi": "int ERRNUM"}, "error": {"$rdi": "int STATUS", "$rsi": "int ERRNUM", "$rdx": "const char *FORMAT", "$r10": "..."}, "error_at_line": {"$rdi": "int STATUS", "$rsi": "int ERRNUM", "$rdx": "const char *FNAME", "$r10": "unsigned int LINENO", "$r8": "const char *FORMAT", "$r9": "..."}, "warn": {"$rdi": "const char *FORMAT", "$rsi": "..."}, "vwarn": {"$rdi": "const char *FORMAT", "$rsi": "va_list AP"}, "warnx": {"$rdi": "const char *FORMAT", "$rsi": "..."}, "vwarnx": {"$rdi": "const char *FORMAT", "$rsi": "va_list AP"}, "err": {"$rdi": "int STATUS", "$rsi": "const char *FORMAT", "$rdx": "..."}, "verr": {"$rdi": "int STATUS", "$rsi": "const char *FORMAT", "$rdx": "va_list AP"}, "errx": {"$rdi": "int STATUS", "$rsi": "const char *FORMAT", "$rdx": "..."}, "verrx": {"$rdi": "int STATUS", "$rsi": "const char *FORMAT", "$rdx": "va_list AP"}, "malloc": {"$rdi": "size_t SIZE"}, "free": {"$rdi": "void *PTR"}, "realloc": {"$rdi": "void *PTR", "$rsi": "size_t NEWSIZE"}, "reallocarray": {"$rdi": "void *PTR", "$rsi": "size_t NMEMB", "$rdx": "size_t SIZE"}, "calloc": {"$rdi": "size_t COUNT", "$rsi": "size_t ELTSIZE"}, "aligned_alloc": {"$rdi": "size_t ALIGNMENT", "$rsi": "size_t SIZE"}, "memalign": {"$rdi": "size_t BOUNDARY", "$rsi": "size_t SIZE"}, "posix_memalign": {"$rdi": "void **MEMPTR", "$rsi": "size_t ALIGNMENT", "$rdx": "size_t SIZE"}, "valloc": {"$rdi": "size_t SIZE"}, "mallopt": {"$rdi": "int PARAM", "$rsi": "int VALUE"}, "mcheck": {"$rdi": "void (*ABORTFN) (enum mcheck_status STATUS)"}, "mprobe": {"$rdi": "void *POINTER"}, "mallinfo2": {"$rdi": "void"}, "mtrace": {"$rdi": "void"}, "muntrace": {"$rdi": "void"}, "obstack_init": {"$rdi": "struct obstack *OBSTACK-PTR"}, "obstack_alloc": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "int SIZE"}, "obstack_copy": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *ADDRESS", "$rdx": "int SIZE"}, "obstack_copy0": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *ADDRESS", "$rdx": "int SIZE"}, "obstack_free": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *OBJECT"}, "obstack_blank": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "int SIZE"}, "obstack_grow": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *DATA", "$rdx": "int SIZE"}, "obstack_grow0": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *DATA", "$rdx": "int SIZE"}, "obstack_1grow": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "char C"}, "obstack_ptr_grow": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *DATA"}, "obstack_int_grow": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "int DATA"}, "obstack_finish": {"$rdi": "struct obstack *OBSTACK-PTR"}, "obstack_object_size": {"$rdi": "struct obstack *OBSTACK-PTR"}, "obstack_room": {"$rdi": "struct obstack *OBSTACK-PTR"}, "obstack_1grow_fast": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "char C"}, "obstack_ptr_grow_fast": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "void *DATA"}, "obstack_int_grow_fast": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "int DATA"}, "obstack_blank_fast": {"$rdi": "struct obstack *OBSTACK-PTR", "$rsi": "int SIZE"}, "obstack_base": {"$rdi": "struct obstack *OBSTACK-PTR"}, "obstack_next_free": {"$rdi": "struct obstack *OBSTACK-PTR"}, "alloca": {"$rdi": "size_t SIZE"}, "brk": {"$rdi": "void *ADDR"}, "*sbrk": {"$rdi": "ptrdiff_t DELTA"}, "mprotect": {"$rdi": "void *ADDRESS", "$rsi": "size_t LENGTH", "$rdx": "int PROTECTION"}, "pkey_alloc": {"$rdi": "unsigned int FLAGS", "$rsi": "unsigned int RESTRICTIONS"}, "pkey_free": {"$rdi": "int KEY"}, "pkey_mprotect": {"$rdi": "void *ADDRESS", "$rsi": "size_t LENGTH", "$rdx": "int PROTECTION", "$r10": "int KEY"}, "pkey_set": {"$rdi": "int KEY", "$rsi": "unsigned int RIGHTS"}, "pkey_get": {"$rdi": "int KEY"}, "mlock": {"$rdi": "const void *ADDR", "$rsi": "size_t LEN"}, "mlock2": {"$rdi": "const void *ADDR", "$rsi": "size_t LEN", "$rdx": "unsigned int FLAGS"}, "munlock": {"$rdi": "const void *ADDR", "$rsi": "size_t LEN"}, "mlockall": {"$rdi": "int FLAGS"}, "munlockall": {"$rdi": "void"}, "islower": {"$rdi": "int C"}, "isupper": {"$rdi": "int C"}, "isalpha": {"$rdi": "int C"}, "isdigit": {"$rdi": "int C"}, "isalnum": {"$rdi": "int C"}, "isxdigit": {"$rdi": "int C"}, "ispunct": {"$rdi": "int C"}, "isspace": {"$rdi": "int C"}, "isblank": {"$rdi": "int C"}, "isgraph": {"$rdi": "int C"}, "isprint": {"$rdi": "int C"}, "iscntrl": {"$rdi": "int C"}, "isascii": {"$rdi": "int C"}, "tolower": {"$rdi": "int C"}, "toupper": {"$rdi": "int C"}, "toascii": {"$rdi": "int C"}, "_tolower": {"$rdi": "int C"}, "_toupper": {"$rdi": "int C"}, "wctype": {"$rdi": "const char *PROPERTY"}, "iswctype": {"$rdi": "wint_t WC", "$rsi": "wctype_t DESC"}, "iswalnum": {"$rdi": "wint_t WC"}, "iswalpha": {"$rdi": "wint_t WC"}, "iswcntrl": {"$rdi": "wint_t WC"}, "iswdigit": {"$rdi": "wint_t WC"}, "iswgraph": {"$rdi": "wint_t WC"}, "iswlower": {"$rdi": "wint_t WC"}, "iswprint": {"$rdi": "wint_t WC"}, "iswpunct": {"$rdi": "wint_t WC"}, "iswspace": {"$rdi": "wint_t WC"}, "iswupper": {"$rdi": "wint_t WC"}, "iswxdigit": {"$rdi": "wint_t WC"}, "iswblank": {"$rdi": "wint_t WC"}, "wctrans": {"$rdi": "const char *PROPERTY"}, "towctrans": {"$rdi": "wint_t WC", "$rsi": "wctrans_t DESC"}, "towlower": {"$rdi": "wint_t WC"}, "towupper": {"$rdi": "wint_t WC"}, "strlen": {"$rdi": "const char *S"}, "wcslen": {"$rdi": "const wchar_t *WS"}, "strnlen": {"$rdi": "const char *S", "$rsi": "size_t MAXLEN"}, "wcsnlen": {"$rdi": "const wchar_t *WS", "$rsi": "size_t MAXLEN"}, "memcpy": {"$rdi": "void *restrict TO", "$rsi": "const void *restrict FROM", "$rdx": "size_t SIZE"}, "wmemcpy": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM", "$rdx": "size_t SIZE"}, "mempcpy": {"$rdi": "void *restrict TO", "$rsi": "const void *restrict FROM", "$rdx": "size_t SIZE"}, "wmempcpy": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM", "$rdx": "size_t SIZE"}, "memmove": {"$rdi": "void *TO", "$rsi": "const void *FROM", "$rdx": "size_t SIZE"}, "wmemmove": {"$rdi": "wchar_t *WTO", "$rsi": "const wchar_t *WFROM", "$rdx": "size_t SIZE"}, "memccpy": {"$rdi": "void *restrict TO", "$rsi": "const void *restrict FROM", "$rdx": "int C", "$r10": "size_t SIZE"}, "memset": {"$rdi": "void *BLOCK", "$rsi": "int C", "$rdx": "size_t SIZE"}, "wmemset": {"$rdi": "wchar_t *BLOCK", "$rsi": "wchar_t WC", "$rdx": "size_t SIZE"}, "strcpy": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM"}, "wcscpy": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM"}, "strdup": {"$rdi": "const char *S"}, "wcsdup": {"$rdi": "const wchar_t *WS"}, "stpcpy": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM"}, "wcpcpy": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM"}, "bcopy": {"$rdi": "const void *FROM", "$rsi": "void *TO", "$rdx": "size_t SIZE"}, "bzero": {"$rdi": "void *BLOCK", "$rsi": "size_t SIZE"}, "strcat": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM"}, "wcscat": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM"}, "strncpy": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM", "$rdx": "size_t SIZE"}, "wcsncpy": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM", "$rdx": "size_t SIZE"}, "strndup": {"$rdi": "const char *S", "$rsi": "size_t SIZE"}, "stpncpy": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM", "$rdx": "size_t SIZE"}, "wcpncpy": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM", "$rdx": "size_t SIZE"}, "strncat": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM", "$rdx": "size_t SIZE"}, "wcsncat": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *restrict WFROM", "$rdx": "size_t SIZE"}, "strlcpy": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM", "$rdx": "size_t SIZE"}, "wcslcpy": {"$rdi": "wchar_t *restrict TO", "$rsi": "const wchar_t *restrict FROM", "$rdx": "size_t SIZE"}, "strlcat": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM", "$rdx": "size_t SIZE"}, "wcslcat": {"$rdi": "wchar_t *restrict TO", "$rsi": "const wchar_t *restrict FROM", "$rdx": "size_t SIZE"}, "memcmp": {"$rdi": "const void *A1", "$rsi": "const void *A2", "$rdx": "size_t SIZE"}, "wmemcmp": {"$rdi": "const wchar_t *A1", "$rsi": "const wchar_t *A2", "$rdx": "size_t SIZE"}, "strcmp": {"$rdi": "const char *S1", "$rsi": "const char *S2"}, "wcscmp": {"$rdi": "const wchar_t *WS1", "$rsi": "const wchar_t *WS2"}, "strcasecmp": {"$rdi": "const char *S1", "$rsi": "const char *S2"}, "wcscasecmp": {"$rdi": "const wchar_t *WS1", "$rsi": "const wchar_t *WS2"}, "strncmp": {"$rdi": "const char *S1", "$rsi": "const char *S2", "$rdx": "size_t SIZE"}, "wcsncmp": {"$rdi": "const wchar_t *WS1", "$rsi": "const wchar_t *WS2", "$rdx": "size_t SIZE"}, "strncasecmp": {"$rdi": "const char *S1", "$rsi": "const char *S2", "$rdx": "size_t N"}, "wcsncasecmp": {"$rdi": "const wchar_t *WS1", "$rsi": "const wchar_t *S2", "$rdx": "size_t N"}, "strverscmp": {"$rdi": "const char *S1", "$rsi": "const char *S2"}, "bcmp": {"$rdi": "const void *A1", "$rsi": "const void *A2", "$rdx": "size_t SIZE"}, "strcoll": {"$rdi": "const char *S1", "$rsi": "const char *S2"}, "wcscoll": {"$rdi": "const wchar_t *WS1", "$rsi": "const wchar_t *WS2"}, "strxfrm": {"$rdi": "char *restrict TO", "$rsi": "const char *restrict FROM", "$rdx": "size_t SIZE"}, "wcsxfrm": {"$rdi": "wchar_t *restrict WTO", "$rsi": "const wchar_t *WFROM", "$rdx": "size_t SIZE"}, "memchr": {"$rdi": "const void *BLOCK", "$rsi": "int C", "$rdx": "size_t SIZE"}, "wmemchr": {"$rdi": "const wchar_t *BLOCK", "$rsi": "wchar_t WC", "$rdx": "size_t SIZE"}, "rawmemchr": {"$rdi": "const void *BLOCK", "$rsi": "int C"}, "memrchr": {"$rdi": "const void *BLOCK", "$rsi": "int C", "$rdx": "size_t SIZE"}, "strchr": {"$rdi": "const char *STRING", "$rsi": "int C"}, "wcschr": {"$rdi": "const wchar_t *WSTRING", "$rsi": "wchar_t WC"}, "strchrnul": {"$rdi": "const char *STRING", "$rsi": "int C"}, "wcschrnul": {"$rdi": "const wchar_t *WSTRING", "$rsi": "wchar_t WC"}, "strrchr": {"$rdi": "const char *STRING", "$rsi": "int C"}, "wcsrchr": {"$rdi": "const wchar_t *WSTRING", "$rsi": "wchar_t WC"}, "strstr": {"$rdi": "const char *HAYSTACK", "$rsi": "const char *NEEDLE"}, "wcsstr": {"$rdi": "const wchar_t *HAYSTACK", "$rsi": "const wchar_t *NEEDLE"}, "wcswcs": {"$rdi": "const wchar_t *HAYSTACK", "$rsi": "const wchar_t *NEEDLE"}, "strcasestr": {"$rdi": "const char *HAYSTACK", "$rsi": "const char *NEEDLE"}, "memmem": {"$rdi": "const void *HAYSTACK", "$rsi": "size_t HAYSTACK-LEN", "$rdx": "const void *NEEDLE", "$r10": "size_t NEEDLE-LEN"}, "strspn": {"$rdi": "const char *STRING", "$rsi": "const char *SKIPSET"}, "wcsspn": {"$rdi": "const wchar_t *WSTRING", "$rsi": "const wchar_t *SKIPSET"}, "strcspn": {"$rdi": "const char *STRING", "$rsi": "const char *STOPSET"}, "wcscspn": {"$rdi": "const wchar_t *WSTRING", "$rsi": "const wchar_t *STOPSET"}, "strpbrk": {"$rdi": "const char *STRING", "$rsi": "const char *STOPSET"}, "wcspbrk": {"$rdi": "const wchar_t *WSTRING", "$rsi": "const wchar_t *STOPSET"}, "index": {"$rdi": "const char *STRING", "$rsi": "int C"}, "rindex": {"$rdi": "const char *STRING", "$rsi": "int C"}, "strtok": {"$rdi": "char *restrict NEWSTRING", "$rsi": "const char *restrict DELIMITERS"}, "wcstok": {"$rdi": "wchar_t *NEWSTRING", "$rsi": "const wchar_t *DELIMITERS", "$rdx": "wchar_t **SAVE_PTR"}, "strtok_r": {"$rdi": "char *NEWSTRING", "$rsi": "const char *DELIMITERS", "$rdx": "char **SAVE_PTR"}, "strsep": {"$rdi": "char **STRING_PTR", "$rsi": "const char *DELIMITER"}, "basename": {"$rdi": "char *PATH"}, "dirname": {"$rdi": "char *PATH"}, "explicit_bzero": {"$rdi": "void *BLOCK", "$rsi": "size_t LEN"}, "strfry": {"$rdi": "char *STRING"}, "memfrob": {"$rdi": "void *MEM", "$rsi": "size_t LENGTH"}, "l64a": {"$rdi": "long int N"}, "a64l": {"$rdi": "const char *STRING"}, "argz_create": {"$rdi": "char *const ARGV[]", "$rsi": "char **ARGZ", "$rdx": "size_t *ARGZ_LEN"}, "argz_create_sep": {"$rdi": "const char *STRING", "$rsi": "int SEP", "$rdx": "char **ARGZ", "$r10": "size_t *ARGZ_LEN"}, "argz_count": {"$rdi": "const char *ARGZ", "$rsi": "size_t ARGZ_LEN"}, "argz_extract": {"$rdi": "const char *ARGZ", "$rsi": "size_t ARGZ_LEN", "$rdx": "char **ARGV"}, "argz_stringify": {"$rdi": "char *ARGZ", "$rsi": "size_t LEN", "$rdx": "int SEP"}, "argz_add": {"$rdi": "char **ARGZ", "$rsi": "size_t *ARGZ_LEN", "$rdx": "const char *STR"}, "argz_add_sep": {"$rdi": "char **ARGZ", "$rsi": "size_t *ARGZ_LEN", "$rdx": "const char *STR", "$r10": "int DELIM"}, "argz_append": {"$rdi": "char **ARGZ", "$rsi": "size_t *ARGZ_LEN", "$rdx": "const char *BUF", "$r10": "size_t BUF_LEN"}, "argz_delete": {"$rdi": "char **ARGZ", "$rsi": "size_t *ARGZ_LEN", "$rdx": "char *ENTRY"}, "argz_insert": {"$rdi": "char **ARGZ", "$rsi": "size_t *ARGZ_LEN", "$rdx": "char *BEFORE", "$r10": "const char *ENTRY"}, "argz_next": {"$rdi": "const char *ARGZ", "$rsi": "size_t ARGZ_LEN", "$rdx": "const char *ENTRY"}, "argz_replace": {"$rdi": "char **ARGZ", "$rsi": "size_t *ARGZ_LEN", "$rdx": "const char *STR", "$r10": "const char *WITH", "$r8": "unsigned *REPLACE_COUNT"}, "envz_entry": {"$rdi": "const char *ENVZ", "$rsi": "size_t ENVZ_LEN", "$rdx": "const char *NAME"}, "envz_get": {"$rdi": "const char *ENVZ", "$rsi": "size_t ENVZ_LEN", "$rdx": "const char *NAME"}, "envz_add": {"$rdi": "char **ENVZ", "$rsi": "size_t *ENVZ_LEN", "$rdx": "const char *NAME", "$r10": "const char *VALUE"}, "envz_merge": {"$rdi": "char **ENVZ", "$rsi": "size_t *ENVZ_LEN", "$rdx": "const char *ENVZ2", "$r10": "size_t ENVZ2_LEN", "$r8": "int OVERRIDE"}, "envz_strip": {"$rdi": "char **ENVZ", "$rsi": "size_t *ENVZ_LEN"}, "envz_remove": {"$rdi": "char **ENVZ", "$rsi": "size_t *ENVZ_LEN", "$rdx": "const char *NAME"}, "mbsinit": {"$rdi": "const mbstate_t *PS"}, "btowc": {"$rdi": "int C"}, "wctob": {"$rdi": "wint_t C"}, "mbrtowc": {"$rdi": "wchar_t *restrict PWC", "$rsi": "const char *restrict S", "$rdx": "size_t N", "$r10": "mbstate_t *restrict PS"}, "mbrlen": {"$rdi": "const char *restrict S", "$rsi": "size_t N", "$rdx": "mbstate_t *PS"}, "wcrtomb": {"$rdi": "char *restrict S", "$rsi": "wchar_t WC", "$rdx": "mbstate_t *restrict PS"}, "mbsrtowcs": {"$rdi": "wchar_t *restrict DST", "$rsi": "const char **restrict SRC", "$rdx": "size_t LEN", "$r10": "mbstate_t *restrict PS"}, "wcsrtombs": {"$rdi": "char *restrict DST", "$rsi": "const wchar_t **restrict SRC", "$rdx": "size_t LEN", "$r10": "mbstate_t *restrict PS"}, "mbsnrtowcs": {"$rdi": ""}, "wcsnrtombs": {"$rdi": ""}, "mbtowc": {"$rdi": "wchar_t *restrict RESULT", "$rsi": "const char *restrict STRING", "$rdx": "size_t SIZE"}, "wctomb": {"$rdi": "char *STRING", "$rsi": "wchar_t WCHAR"}, "mblen": {"$rdi": "const char *STRING", "$rsi": "size_t SIZE"}, "mbstowcs": {"$rdi": "wchar_t *WSTRING", "$rsi": "const char *STRING", "$rdx": "size_t SIZE"}, "wcstombs": {"$rdi": "char *STRING", "$rsi": "const wchar_t *WSTRING", "$rdx": "size_t SIZE"}, "iconv_open": {"$rdi": "const char *TOCODE", "$rsi": "const char *FROMCODE"}, "iconv_close": {"$rdi": "iconv_t CD"}, "iconv": {"$rdi": "iconv_t CD", "$rsi": "char **INBUF", "$rdx": "size_t *INBYTESLEFT", "$r10": "char **OUTBUF", "$r8": "size_t *OUTBYTESLEFT"}, "setlocale": {"$rdi": "int CATEGORY", "$rsi": "const char *LOCALE"}, "localeconv": {"$rdi": "void"}, "nl_langinfo": {"$rdi": "nl_item ITEM"}, "strfmon": {"$rdi": "char *S", "$rsi": "size_t MAXSIZE", "$rdx": "const char *FORMAT", "$r10": "..."}, "rpmatch": {"$rdi": "const char *RESPONSE"}, "catopen": {"$rdi": "const char *CAT_NAME", "$rsi": "int FLAG"}, "catgets": {"$rdi": "nl_catd CATALOG_DESC", "$rsi": "int SET", "$rdx": "int MESSAGE", "$r10": "const char *STRING"}, "catclose": {"$rdi": "nl_catd CATALOG_DESC"}, "gettext": {"$rdi": "const char *MSGID"}, "dgettext": {"$rdi": "const char *DOMAINNAME", "$rsi": "const char *MSGID"}, "dcgettext": {"$rdi": "const char *DOMAINNAME", "$rsi": "const char *MSGID", "$rdx": "int CATEGORY"}, "textdomain": {"$rdi": "const char *DOMAINNAME"}, "bindtextdomain": {"$rdi": "const char *DOMAINNAME", "$rsi": "const char *DIRNAME"}, "ngettext": {"$rdi": "const char *MSGID1", "$rsi": "const char *MSGID2", "$rdx": "unsigned long int N"}, "dngettext": {"$rdi": "const char *DOMAIN", "$rsi": "const char *MSGID1", "$rdx": "const char *MSGID2", "$r10": "unsigned long int N"}, "dcngettext": {"$rdi": "const char *DOMAIN", "$rsi": "const char *MSGID1", "$rdx": "const char *MSGID2", "$r10": "unsigned long int N", "$r8": "int CATEGORY"}, "bind_textdomain_codeset": {"$rdi": "const char *DOMAINNAME", "$rsi": "const char *CODESET"}, "lfind": {"$rdi": "const void *KEY", "$rsi": "const void *BASE", "$rdx": "size_t *NMEMB", "$r10": "size_t SIZE", "$r8": "comparison_fn_t COMPAR"}, "lsearch": {"$rdi": "const void *KEY", "$rsi": "void *BASE", "$rdx": "size_t *NMEMB", "$r10": "size_t SIZE", "$r8": "comparison_fn_t COMPAR"}, "bsearch": {"$rdi": "const void *KEY", "$rsi": "const void *ARRAY", "$rdx": "size_t COUNT", "$r10": "size_t SIZE", "$r8": "comparison_fn_t COMPARE"}, "qsort": {"$rdi": "void *ARRAY", "$rsi": "size_t COUNT", "$rdx": "size_t SIZE", "$r10": "comparison_fn_t COMPARE"}, "hcreate": {"$rdi": "size_t NEL"}, "hdestroy": {"$rdi": "void"}, "hsearch": {"$rdi": "ENTRY ITEM", "$rsi": "ACTION ACTION"}, "hcreate_r": {"$rdi": "size_t NEL", "$rsi": "struct hsearch_data *HTAB"}, "hdestroy_r": {"$rdi": "struct hsearch_data *HTAB"}, "hsearch_r": {"$rdi": "ENTRY ITEM", "$rsi": "ACTION ACTION", "$rdx": "ENTRY **RETVAL", "$r10": "struct hsearch_data *HTAB"}, "tsearch": {"$rdi": "const void *KEY", "$rsi": "void **ROOTP", "$rdx": "comparison_fn_t COMPAR"}, "tfind": {"$rdi": "const void *KEY", "$rsi": "void *const *ROOTP", "$rdx": "comparison_fn_t COMPAR"}, "tdelete": {"$rdi": "const void *KEY", "$rsi": "void **ROOTP", "$rdx": "comparison_fn_t COMPAR"}, "tdestroy": {"$rdi": "void *VROOT", "$rsi": "__free_fn_t FREEFCT"}, "twalk": {"$rdi": "const void *ROOT", "$rsi": "__action_fn_t ACTION"}, "twalk_r": {"$rdi": "const void *ROOT", "$rsi": "void (*ACTION) (const void *KEY", "$rdx": "VISIT WHICH", "$r10": "void *CLOSURE)", "$r8": "void *CLOSURE"}, "fnmatch": {"$rdi": "const char *PATTERN", "$rsi": "const char *STRING", "$rdx": "int FLAGS"}, "glob": {"$rdi": "const char *PATTERN", "$rsi": "int FLAGS", "$rdx": "int (*ERRFUNC"}, "glob64": {"$rdi": "const char *PATTERN", "$rsi": "int FLAGS", "$rdx": "int (*ERRFUNC"}, "globfree": {"$rdi": "glob_t *PGLOB"}, "globfree64": {"$rdi": "glob64_t *PGLOB"}, "regcomp": {"$rdi": "regex_t *restrict COMPILED", "$rsi": "const char *restrict PATTERN", "$rdx": "int CFLAGS"}, "regexec": {"$rdi": ""}, "regfree": {"$rdi": "regex_t *COMPILED"}, "regerror": {"$rdi": "int ERRCODE", "$rsi": "const regex_t *restrict COMPILED", "$rdx": "char *restrict BUFFER", "$r10": "size_t LENGTH"}, "wordexp": {"$rdi": "const char *WORDS", "$rsi": "wordexp_t *WORD-VECTOR-PTR", "$rdx": "int FLAGS"}, "wordfree": {"$rdi": "wordexp_t *WORD-VECTOR-PTR"}, "fopen": {"$rdi": "const char *FILENAME", "$rsi": "const char *OPENTYPE"}, "fopen64": {"$rdi": "const char *FILENAME", "$rsi": "const char *OPENTYPE"}, "freopen": {"$rdi": "const char *FILENAME", "$rsi": "const char *OPENTYPE", "$rdx": "FILE *STREAM"}, "freopen64": {"$rdi": "const char *FILENAME", "$rsi": "const char *OPENTYPE", "$rdx": "FILE *STREAM"}, "__freadable": {"$rdi": "FILE *STREAM"}, "__fwritable": {"$rdi": "FILE *STREAM"}, "__freading": {"$rdi": "FILE *STREAM"}, "__fwriting": {"$rdi": "FILE *STREAM"}, "fclose": {"$rdi": "FILE *STREAM"}, "fcloseall": {"$rdi": "void"}, "flockfile": {"$rdi": "FILE *STREAM"}, "ftrylockfile": {"$rdi": "FILE *STREAM"}, "funlockfile": {"$rdi": "FILE *STREAM"}, "__fsetlocking": {"$rdi": "FILE *STREAM", "$rsi": "int TYPE"}, "fwide": {"$rdi": "FILE *STREAM", "$rsi": "int MODE"}, "fputc": {"$rdi": "int C", "$rsi": "FILE *STREAM"}, "fputwc": {"$rdi": "wchar_t WC", "$rsi": "FILE *STREAM"}, "fputc_unlocked": {"$rdi": "int C", "$rsi": "FILE *STREAM"}, "fputwc_unlocked": {"$rdi": "wchar_t WC", "$rsi": "FILE *STREAM"}, "putc": {"$rdi": "int C", "$rsi": "FILE *STREAM"}, "putwc": {"$rdi": "wchar_t WC", "$rsi": "FILE *STREAM"}, "putc_unlocked": {"$rdi": "int C", "$rsi": "FILE *STREAM"}, "putwc_unlocked": {"$rdi": "wchar_t WC", "$rsi": "FILE *STREAM"}, "putchar": {"$rdi": "int C"}, "putwchar": {"$rdi": "wchar_t WC"}, "putchar_unlocked": {"$rdi": "int C"}, "putwchar_unlocked": {"$rdi": "wchar_t WC"}, "fputs": {"$rdi": "const char *S", "$rsi": "FILE *STREAM"}, "fputws": {"$rdi": "const wchar_t *WS", "$rsi": "FILE *STREAM"}, "fputs_unlocked": {"$rdi": "const char *S", "$rsi": "FILE *STREAM"}, "fputws_unlocked": {"$rdi": "const wchar_t *WS", "$rsi": "FILE *STREAM"}, "puts": {"$rdi": "const char *S"}, "putw": {"$rdi": "int W", "$rsi": "FILE *STREAM"}, "fgetc": {"$rdi": "FILE *STREAM"}, "fgetwc": {"$rdi": "FILE *STREAM"}, "fgetc_unlocked": {"$rdi": "FILE *STREAM"}, "fgetwc_unlocked": {"$rdi": "FILE *STREAM"}, "getc": {"$rdi": "FILE *STREAM"}, "getwc": {"$rdi": "FILE *STREAM"}, "getc_unlocked": {"$rdi": "FILE *STREAM"}, "getwc_unlocked": {"$rdi": "FILE *STREAM"}, "getchar": {"$rdi": "void"}, "getwchar": {"$rdi": "void"}, "getchar_unlocked": {"$rdi": "void"}, "getwchar_unlocked": {"$rdi": "void"}, "getw": {"$rdi": "FILE *STREAM"}, "getline": {"$rdi": "char **LINEPTR", "$rsi": "size_t *N", "$rdx": "FILE *STREAM"}, "getdelim": {"$rdi": "char **LINEPTR", "$rsi": "size_t *N", "$rdx": "int DELIMITER", "$r10": "FILE *STREAM"}, "fgets": {"$rdi": "char *S", "$rsi": "int COUNT", "$rdx": "FILE *STREAM"}, "fgetws": {"$rdi": "wchar_t *WS", "$rsi": "int COUNT", "$rdx": "FILE *STREAM"}, "fgets_unlocked": {"$rdi": "char *S", "$rsi": "int COUNT", "$rdx": "FILE *STREAM"}, "fgetws_unlocked": {"$rdi": "wchar_t *WS", "$rsi": "int COUNT", "$rdx": "FILE *STREAM"}, "ungetc": {"$rdi": "int C", "$rsi": "FILE *STREAM"}, "ungetwc": {"$rdi": "wint_t WC", "$rsi": "FILE *STREAM"}, "fread": {"$rdi": "void *DATA", "$rsi": "size_t SIZE", "$rdx": "size_t COUNT", "$r10": "FILE *STREAM"}, "fread_unlocked": {"$rdi": "void *DATA", "$rsi": "size_t SIZE", "$rdx": "size_t COUNT", "$r10": "FILE *STREAM"}, "fwrite": {"$rdi": "const void *DATA", "$rsi": "size_t SIZE", "$rdx": "size_t COUNT", "$r10": "FILE *STREAM"}, "fwrite_unlocked": {"$rdi": "const void *DATA", "$rsi": "size_t SIZE", "$rdx": "size_t COUNT", "$r10": "FILE *STREAM"}, "printf": {"$rdi": "const char *TEMPLATE", "$rsi": "..."}, "wprintf": {"$rdi": "const wchar_t *TEMPLATE", "$rsi": "..."}, "fprintf": {"$rdi": "FILE *STREAM", "$rsi": "const char *TEMPLATE", "$rdx": "..."}, "fwprintf": {"$rdi": "FILE *STREAM", "$rsi": "const wchar_t *TEMPLATE", "$rdx": "..."}, "sprintf": {"$rdi": "char *S", "$rsi": "const char *TEMPLATE", "$rdx": "..."}, "swprintf": {"$rdi": "wchar_t *WS", "$rsi": "size_t SIZE", "$rdx": "const wchar_t *TEMPLATE", "$r10": "..."}, "snprintf": {"$rdi": "char *S", "$rsi": "size_t SIZE", "$rdx": "const char *TEMPLATE", "$r10": "..."}, "asprintf": {"$rdi": "char **PTR", "$rsi": "const char *TEMPLATE", "$rdx": "..."}, "obstack_printf": {"$rdi": "struct obstack *OBSTACK", "$rsi": "const char *TEMPLATE", "$rdx": "..."}, "vprintf": {"$rdi": "const char *TEMPLATE", "$rsi": "va_list AP"}, "vwprintf": {"$rdi": "const wchar_t *TEMPLATE", "$rsi": "va_list AP"}, "vfprintf": {"$rdi": "FILE *STREAM", "$rsi": "const char *TEMPLATE", "$rdx": "va_list AP"}, "vfwprintf": {"$rdi": "FILE *STREAM", "$rsi": "const wchar_t *TEMPLATE", "$rdx": "va_list AP"}, "vsprintf": {"$rdi": "char *S", "$rsi": "const char *TEMPLATE", "$rdx": "va_list AP"}, "vswprintf": {"$rdi": "wchar_t *WS", "$rsi": "size_t SIZE", "$rdx": "const wchar_t *TEMPLATE", "$r10": "va_list AP"}, "vsnprintf": {"$rdi": "char *S", "$rsi": "size_t SIZE", "$rdx": "const char *TEMPLATE", "$r10": "va_list AP"}, "vasprintf": {"$rdi": "char **PTR", "$rsi": "const char *TEMPLATE", "$rdx": "va_list AP"}, "obstack_vprintf": {"$rdi": "struct obstack *OBSTACK", "$rsi": "const char *TEMPLATE", "$rdx": "va_list AP"}, "parse_printf_format": {"$rdi": "const char *TEMPLATE", "$rsi": "size_t N", "$rdx": "int *ARGTYPES"}, "register_printf_function": {"$rdi": "int SPEC", "$rsi": "printf_function HANDLER-FUNCTION", "$rdx": "printf_arginfo_function ARGINFO-FUNCTION"}, "printf_size": {"$rdi": "FILE *FP", "$rsi": "const struct printf_info *INFO", "$rdx": "const void *const *ARGS"}, "printf_size_info": {"$rdi": "const struct printf_info *INFO", "$rsi": "size_t N", "$rdx": "int *ARGTYPES"}, "scanf": {"$rdi": "const char *TEMPLATE", "$rsi": "..."}, "wscanf": {"$rdi": "const wchar_t *TEMPLATE", "$rsi": "..."}, "fscanf": {"$rdi": "FILE *STREAM", "$rsi": "const char *TEMPLATE", "$rdx": "..."}, "fwscanf": {"$rdi": "FILE *STREAM", "$rsi": "const wchar_t *TEMPLATE", "$rdx": "..."}, "sscanf": {"$rdi": "const char *S", "$rsi": "const char *TEMPLATE", "$rdx": "..."}, "swscanf": {"$rdi": "const wchar_t *WS", "$rsi": "const wchar_t *TEMPLATE", "$rdx": "..."}, "vscanf": {"$rdi": "const char *TEMPLATE", "$rsi": "va_list AP"}, "vwscanf": {"$rdi": "const wchar_t *TEMPLATE", "$rsi": "va_list AP"}, "vfscanf": {"$rdi": "FILE *STREAM", "$rsi": "const char *TEMPLATE", "$rdx": "va_list AP"}, "vfwscanf": {"$rdi": "FILE *STREAM", "$rsi": "const wchar_t *TEMPLATE", "$rdx": "va_list AP"}, "vsscanf": {"$rdi": "const char *S", "$rsi": "const char *TEMPLATE", "$rdx": "va_list AP"}, "vswscanf": {"$rdi": "const wchar_t *S", "$rsi": "const wchar_t *TEMPLATE", "$rdx": "va_list AP"}, "feof": {"$rdi": "FILE *STREAM"}, "feof_unlocked": {"$rdi": "FILE *STREAM"}, "ferror": {"$rdi": "FILE *STREAM"}, "ferror_unlocked": {"$rdi": "FILE *STREAM"}, "clearerr": {"$rdi": "FILE *STREAM"}, "clearerr_unlocked": {"$rdi": "FILE *STREAM"}, "ftell": {"$rdi": "FILE *STREAM"}, "ftello": {"$rdi": "FILE *STREAM"}, "ftello64": {"$rdi": "FILE *STREAM"}, "fseek": {"$rdi": "FILE *STREAM", "$rsi": "long int OFFSET", "$rdx": "int WHENCE"}, "fseeko": {"$rdi": "FILE *STREAM", "$rsi": "off_t OFFSET", "$rdx": "int WHENCE"}, "fseeko64": {"$rdi": "FILE *STREAM", "$rsi": "off64_t OFFSET", "$rdx": "int WHENCE"}, "rewind": {"$rdi": "FILE *STREAM"}, "fgetpos": {"$rdi": "FILE *STREAM", "$rsi": "fpos_t *POSITION"}, "fgetpos64": {"$rdi": "FILE *STREAM", "$rsi": "fpos64_t *POSITION"}, "fsetpos": {"$rdi": "FILE *STREAM", "$rsi": "const fpos_t *POSITION"}, "fsetpos64": {"$rdi": "FILE *STREAM", "$rsi": "const fpos64_t *POSITION"}, "fflush": {"$rdi": "FILE *STREAM"}, "fflush_unlocked": {"$rdi": "FILE *STREAM"}, "_flushlbf": {"$rdi": "void"}, "__fpurge": {"$rdi": "FILE *STREAM"}, "setvbuf": {"$rdi": "FILE *STREAM", "$rsi": "char *BUF", "$rdx": "int MODE", "$r10": "size_t SIZE"}, "setbuf": {"$rdi": "FILE *STREAM", "$rsi": "char *BUF"}, "setbuffer": {"$rdi": "FILE *STREAM", "$rsi": "char *BUF", "$rdx": "size_t SIZE"}, "setlinebuf": {"$rdi": "FILE *STREAM"}, "__flbf": {"$rdi": "FILE *STREAM"}, "__fbufsize": {"$rdi": "FILE *STREAM"}, "__fpending": {"$rdi": "FILE *STREAM"}, "fmemopen": {"$rdi": "void *BUF", "$rsi": "size_t SIZE", "$rdx": "const char *OPENTYPE"}, "open_memstream": {"$rdi": "char **PTR", "$rsi": "size_t *SIZELOC"}, "fopencookie": {"$rdi": "void *COOKIE", "$rsi": "const char *OPENTYPE", "$rdx": "cookie_io_functions_t IO-FUNCTIONS"}, "fmtmsg": {"$rdi": ""}, "addseverity": {"$rdi": "int SEVERITY", "$rsi": "const char *STRING"}, "open": {"$rdi": "const char *FILENAME", "$rsi": "int FLAGS[", "$rdx": "mode_t MODE]"}, "open64": {"$rdi": "const char *FILENAME", "$rsi": "int FLAGS[", "$rdx": "mode_t MODE]"}, "close": {"$rdi": "int FILEDES"}, "close_range": {"$rdi": "unsigned int LOWFD", "$rsi": "unsigned int MAXFD", "$rdx": "int FLAGS"}, "closefrom": {"$rdi": "int LOWFD"}, "read": {"$rdi": "int FILEDES", "$rsi": "void *BUFFER", "$rdx": "size_t SIZE"}, "pread": {"$rdi": "int FILEDES", "$rsi": "void *BUFFER", "$rdx": "size_t SIZE", "$r10": "off_t OFFSET"}, "pread64": {"$rdi": "int FILEDES", "$rsi": "void *BUFFER", "$rdx": "size_t SIZE", "$r10": "off64_t OFFSET"}, "write": {"$rdi": "int FILEDES", "$rsi": "const void *BUFFER", "$rdx": "size_t SIZE"}, "pwrite": {"$rdi": "int FILEDES", "$rsi": "const void *BUFFER", "$rdx": "size_t SIZE", "$r10": "off_t OFFSET"}, "pwrite64": {"$rdi": "int FILEDES", "$rsi": "const void *BUFFER", "$rdx": "size_t SIZE", "$r10": "off64_t OFFSET"}, "lseek": {"$rdi": "int FILEDES", "$rsi": "off_t OFFSET", "$rdx": "int WHENCE"}, "lseek64": {"$rdi": "int FILEDES", "$rsi": "off64_t OFFSET", "$rdx": "int WHENCE"}, "fdopen": {"$rdi": "int FILEDES", "$rsi": "const char *OPENTYPE"}, "fileno": {"$rdi": "FILE *STREAM"}, "fileno_unlocked": {"$rdi": "FILE *STREAM"}, "readv": {"$rdi": "int FILEDES", "$rsi": "const struct iovec *VECTOR", "$rdx": "int COUNT"}, "writev": {"$rdi": "int FILEDES", "$rsi": "const struct iovec *VECTOR", "$rdx": "int COUNT"}, "preadv": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off_t OFFSET"}, "preadv64": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off64_t OFFSET"}, "pwritev": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off_t OFFSET"}, "pwritev64": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off64_t OFFSET"}, "preadv2": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off_t OFFSET", "$r8": "int FLAGS"}, "preadv64v2": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off64_t OFFSET", "$r8": "int FLAGS"}, "pwritev2": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off_t OFFSET", "$r8": "int FLAGS"}, "pwritev64v2": {"$rdi": "int FD", "$rsi": "const struct iovec *IOV", "$rdx": "int IOVCNT", "$r10": "off64_t OFFSET", "$r8": "int FLAGS"}, "copy_file_range": {"$rdi": ""}, "mmap": {"$rdi": "void *ADDRESS", "$rsi": "size_t LENGTH", "$rdx": "int PROTECT", "$r10": "int FLAGS", "$r8": "int FILEDES", "$r9": "off_t OFFSET"}, "mmap64": {"$rdi": "void *ADDRESS", "$rsi": "size_t LENGTH", "$rdx": "int PROTECT", "$r10": "int FLAGS", "$r8": "int FILEDES", "$r9": "off64_t OFFSET"}, "munmap": {"$rdi": "void *ADDR", "$rsi": "size_t LENGTH"}, "msync": {"$rdi": "void *ADDRESS", "$rsi": "size_t LENGTH", "$rdx": "int FLAGS"}, "mremap": {"$rdi": "void *ADDRESS", "$rsi": "size_t LENGTH", "$rdx": "size_t NEW_LENGTH", "$r10": "int FLAG"}, "madvise": {"$rdi": "void *ADDR", "$rsi": "size_t LENGTH", "$rdx": "int ADVICE"}, "shm_open": {"$rdi": "const char *NAME", "$rsi": "int OFLAG", "$rdx": "mode_t MODE"}, "shm_unlink": {"$rdi": "const char *NAME"}, "memfd_create": {"$rdi": "const char *NAME", "$rsi": "unsigned int FLAGS"}, "select": {"$rdi": "int NFDS", "$rsi": "fd_set *READ-FDS", "$rdx": "fd_set *WRITE-FDS", "$r10": "fd_set *EXCEPT-FDS", "$r8": "struct timeval *TIMEOUT"}, "sync": {"$rdi": "void"}, "fsync": {"$rdi": "int FILDES"}, "fdatasync": {"$rdi": "int FILDES"}, "aio_read": {"$rdi": "struct aiocb *AIOCBP"}, "aio_read64": {"$rdi": "struct aiocb64 *AIOCBP"}, "aio_write": {"$rdi": "struct aiocb *AIOCBP"}, "aio_write64": {"$rdi": "struct aiocb64 *AIOCBP"}, "lio_listio": {"$rdi": "int MODE", "$rsi": "struct aiocb *const LIST[]", "$rdx": "int NENT", "$r10": "struct sigevent *SIG"}, "lio_listio64": {"$rdi": "int MODE", "$rsi": "struct aiocb64 *const LIST[]", "$rdx": "int NENT", "$r10": "struct sigevent *SIG"}, "aio_error": {"$rdi": "const struct aiocb *AIOCBP"}, "aio_error64": {"$rdi": "const struct aiocb64 *AIOCBP"}, "aio_return": {"$rdi": "struct aiocb *AIOCBP"}, "aio_return64": {"$rdi": "struct aiocb64 *AIOCBP"}, "aio_fsync": {"$rdi": "int OP", "$rsi": "struct aiocb *AIOCBP"}, "aio_fsync64": {"$rdi": "int OP", "$rsi": "struct aiocb64 *AIOCBP"}, "aio_suspend": {"$rdi": "const struct aiocb *const LIST[]", "$rsi": "int NENT", "$rdx": "const struct timespec *TIMEOUT"}, "aio_suspend64": {"$rdi": "const struct aiocb64 *const LIST[]", "$rsi": "int NENT", "$rdx": "const struct timespec *TIMEOUT"}, "aio_cancel": {"$rdi": "int FILDES", "$rsi": "struct aiocb *AIOCBP"}, "aio_cancel64": {"$rdi": "int FILDES", "$rsi": "struct aiocb64 *AIOCBP"}, "aio_init": {"$rdi": "const struct aioinit *INIT"}, "fcntl": {"$rdi": "int FILEDES", "$rsi": "int COMMAND", "$rdx": "..."}, "dup": {"$rdi": "int OLD"}, "dup2": {"$rdi": "int OLD", "$rsi": "int NEW"}, "ioctl": {"$rdi": "int FILEDES", "$rsi": "int COMMAND", "$rdx": "..."}, "getcwd": {"$rdi": "char *BUFFER", "$rsi": "size_t SIZE"}, "get_current_dir_name": {"$rdi": "void"}, "chdir": {"$rdi": "const char *FILENAME"}, "fchdir": {"$rdi": "int FILEDES"}, "IFTODT": {"$rdi": "mode_t MODE"}, "DTTOIF": {"$rdi": "int DTYPE"}, "opendir": {"$rdi": "const char *DIRNAME"}, "fdopendir": {"$rdi": "int FD"}, "dirfd": {"$rdi": "DIR *DIRSTREAM"}, "readdir": {"$rdi": "DIR *DIRSTREAM"}, "readdir_r": {"$rdi": "DIR *DIRSTREAM", "$rsi": "struct dirent *ENTRY", "$rdx": "struct dirent **RESULT"}, "readdir64": {"$rdi": "DIR *DIRSTREAM"}, "readdir64_r": {"$rdi": "DIR *DIRSTREAM", "$rsi": "struct dirent64 *ENTRY", "$rdx": "struct dirent64 **RESULT"}, "closedir": {"$rdi": "DIR *DIRSTREAM"}, "rewinddir": {"$rdi": "DIR *DIRSTREAM"}, "telldir": {"$rdi": "DIR *DIRSTREAM"}, "seekdir": {"$rdi": "DIR *DIRSTREAM", "$rsi": "long int POS"}, "scandir": {"$rdi": "const char *DIR", "$rsi": "struct dirent ***NAMELIST", "$rdx": "int (*SELECTOR) (const struct dirent *)", "$r10": "int (*CMP"}, "alphasort": {"$rdi": "const struct dirent **A", "$rsi": "const struct dirent **B"}, "versionsort": {"$rdi": "const struct dirent **A", "$rsi": "const struct dirent **B"}, "scandir64": {"$rdi": "const char *DIR", "$rsi": "struct dirent64 ***NAMELIST", "$rdx": "int (*SELECTOR) (const struct dirent64 *"}, "alphasort64": {"$rdi": "const struct dirent64 **A", "$rsi": "const struct dirent **B"}, "versionsort64": {"$rdi": "const struct dirent64 **A", "$rsi": "const struct dirent64 **B"}, "getdents64": {"$rdi": "int FD", "$rsi": "void *BUFFER", "$rdx": "size_t LENGTH"}, "ftw": {"$rdi": "const char *FILENAME", "$rsi": "__ftw_func_t FUNC", "$rdx": "int DESCRIPTORS"}, "ftw64": {"$rdi": "const char *FILENAME", "$rsi": "__ftw64_func_t FUNC", "$rdx": "int DESCRIPTORS"}, "nftw": {"$rdi": "const char *FILENAME", "$rsi": "__nftw_func_t FUNC", "$rdx": "int DESCRIPTORS", "$r10": "int FLAG"}, "nftw64": {"$rdi": "const char *FILENAME", "$rsi": "__nftw64_func_t FUNC", "$rdx": "int DESCRIPTORS", "$r10": "int FLAG"}, "link": {"$rdi": "const char *OLDNAME", "$rsi": "const char *NEWNAME"}, "linkat": {"$rdi": "int oldfd", "$rsi": "const char *OLDNAME", "$rdx": "int newfd", "$r10": "const char *NEWNAME", "$r8": "int flags"}, "symlink": {"$rdi": "const char *OLDNAME", "$rsi": "const char *NEWNAME"}, "readlink": {"$rdi": "const char *FILENAME", "$rsi": "char *BUFFER", "$rdx": "size_t SIZE"}, "canonicalize_file_name": {"$rdi": "const char *NAME"}, "realpath": {"$rdi": "const char *restrict NAME", "$rsi": "char *restrict RESOLVED"}, "unlink": {"$rdi": "const char *FILENAME"}, "rmdir": {"$rdi": "const char *FILENAME"}, "remove": {"$rdi": "const char *FILENAME"}, "rename": {"$rdi": "const char *OLDNAME", "$rsi": "const char *NEWNAME"}, "mkdir": {"$rdi": "const char *FILENAME", "$rsi": "mode_t MODE"}, "stat": {"$rdi": "const char *FILENAME", "$rsi": "struct stat *BUF"}, "stat64": {"$rdi": "const char *FILENAME", "$rsi": "struct stat64 *BUF"}, "fstat": {"$rdi": "int FILEDES", "$rsi": "struct stat *BUF"}, "fstat64": {"$rdi": "int FILEDES", "$rsi": "struct stat64 *BUF"}, "lstat": {"$rdi": "const char *FILENAME", "$rsi": "struct stat *BUF"}, "lstat64": {"$rdi": "const char *FILENAME", "$rsi": "struct stat64 *BUF"}, "chown": {"$rdi": "const char *FILENAME", "$rsi": "uid_t OWNER", "$rdx": "gid_t GROUP"}, "fchown": {"$rdi": "int FILEDES", "$rsi": "uid_t OWNER", "$rdx": "gid_t GROUP"}, "umask": {"$rdi": "mode_t MASK"}, "getumask": {"$rdi": "void"}, "chmod": {"$rdi": "const char *FILENAME", "$rsi": "mode_t MODE"}, "fchmod": {"$rdi": "int FILEDES", "$rsi": "mode_t MODE"}, "access": {"$rdi": "const char *FILENAME", "$rsi": "int HOW"}, "utime": {"$rdi": "const char *FILENAME", "$rsi": "const struct utimbuf *TIMES"}, "utimes": {"$rdi": "const char *FILENAME", "$rsi": "const struct timeval TVP[2]"}, "lutimes": {"$rdi": "const char *FILENAME", "$rsi": "const struct timeval TVP[2]"}, "futimes": {"$rdi": "int FD", "$rsi": "const struct timeval TVP[2]"}, "truncate": {"$rdi": "const char *FILENAME", "$rsi": "off_t LENGTH"}, "truncate64": {"$rdi": "const char *NAME", "$rsi": "off64_t LENGTH"}, "ftruncate": {"$rdi": "int FD", "$rsi": "off_t LENGTH"}, "ftruncate64": {"$rdi": "int ID", "$rsi": "off64_t LENGTH"}, "posix_fallocate": {"$rdi": "int FD", "$rsi": "off_t OFFSET", "$rdx": "off_t LENGTH"}, "posix_fallocate64": {"$rdi": "int FD", "$rsi": "off64_t OFFSET", "$rdx": "off64_t LENGTH"}, "mknod": {"$rdi": "const char *FILENAME", "$rsi": "mode_t MODE", "$rdx": "dev_t DEV"}, "tmpfile": {"$rdi": "void"}, "tmpfile64": {"$rdi": "void"}, "tmpnam": {"$rdi": "char *RESULT"}, "tmpnam_r": {"$rdi": "char *RESULT"}, "tempnam": {"$rdi": "const char *DIR", "$rsi": "const char *PREFIX"}, "mktemp": {"$rdi": "char *TEMPLATE"}, "mkstemp": {"$rdi": "char *TEMPLATE"}, "mkdtemp": {"$rdi": "char *TEMPLATE"}, "pipe": {"$rdi": "int FILEDES[2]"}, "popen": {"$rdi": "const char *COMMAND", "$rsi": "const char *MODE"}, "pclose": {"$rdi": "FILE *STREAM"}, "mkfifo": {"$rdi": "const char *FILENAME", "$rsi": "mode_t MODE"}, "bind": {"$rdi": "int SOCKET", "$rsi": "struct sockaddr *ADDR", "$rdx": "socklen_t LENGTH"}, "getsockname": {"$rdi": "int SOCKET", "$rsi": "struct sockaddr *ADDR", "$rdx": "socklen_t *LENGTH-PTR"}, "if_nametoindex": {"$rdi": "const char *IFNAME"}, "if_indextoname": {"$rdi": "unsigned int IFINDEX", "$rsi": "char *IFNAME"}, "if_nameindex": {"$rdi": "void"}, "if_freenameindex": {"$rdi": "struct if_nameindex *PTR"}, "inet_aton": {"$rdi": "const char *NAME", "$rsi": "struct in_addr *ADDR"}, "inet_addr": {"$rdi": "const char *NAME"}, "inet_network": {"$rdi": "const char *NAME"}, "inet_ntoa": {"$rdi": "struct in_addr ADDR"}, "inet_makeaddr": {"$rdi": "uint32_t NET", "$rsi": "uint32_t LOCAL"}, "inet_lnaof": {"$rdi": "struct in_addr ADDR"}, "inet_netof": {"$rdi": "struct in_addr ADDR"}, "inet_pton": {"$rdi": "int AF", "$rsi": "const char *CP", "$rdx": "void *BUF"}, "inet_ntop": {"$rdi": "int AF", "$rsi": "const void *CP", "$rdx": "char *BUF", "$r10": "socklen_t LEN"}, "gethostbyname": {"$rdi": "const char *NAME"}, "gethostbyname2": {"$rdi": "const char *NAME", "$rsi": "int AF"}, "gethostbyaddr": {"$rdi": "const void *ADDR", "$rsi": "socklen_t LENGTH", "$rdx": "int FORMAT"}, "gethostbyname_r": {"$rdi": ""}, "gethostbyname2_r": {"$rdi": ""}, "gethostbyaddr_r": {"$rdi": ""}, "sethostent": {"$rdi": "int STAYOPEN"}, "gethostent": {"$rdi": "void"}, "endhostent": {"$rdi": "void"}, "getservbyname": {"$rdi": "const char *NAME", "$rsi": "const char *PROTO"}, "getservbyport": {"$rdi": "int PORT", "$rsi": "const char *PROTO"}, "setservent": {"$rdi": "int STAYOPEN"}, "getservent": {"$rdi": "void"}, "endservent": {"$rdi": "void"}, "htons": {"$rdi": "uint16_t HOSTSHORT"}, "ntohs": {"$rdi": "uint16_t NETSHORT"}, "htonl": {"$rdi": "uint32_t HOSTLONG"}, "ntohl": {"$rdi": "uint32_t NETLONG"}, "getprotobyname": {"$rdi": "const char *NAME"}, "getprotobynumber": {"$rdi": "int PROTOCOL"}, "setprotoent": {"$rdi": "int STAYOPEN"}, "getprotoent": {"$rdi": "void"}, "endprotoent": {"$rdi": "void"}, "socket": {"$rdi": "int NAMESPACE", "$rsi": "int STYLE", "$rdx": "int PROTOCOL"}, "shutdown": {"$rdi": "int SOCKET", "$rsi": "int HOW"}, "socketpair": {"$rdi": "int NAMESPACE", "$rsi": "int STYLE", "$rdx": "int PROTOCOL", "$r10": "int FILEDES[2]"}, "connect": {"$rdi": "int SOCKET", "$rsi": "struct sockaddr *ADDR", "$rdx": "socklen_t LENGTH"}, "listen": {"$rdi": "int SOCKET", "$rsi": "int N"}, "accept": {"$rdi": "int SOCKET", "$rsi": "struct sockaddr *ADDR", "$rdx": "socklen_t *LENGTH_PTR"}, "getpeername": {"$rdi": "int SOCKET", "$rsi": "struct sockaddr *ADDR", "$rdx": "socklen_t *LENGTH-PTR"}, "send": {"$rdi": "int SOCKET", "$rsi": "const void *BUFFER", "$rdx": "size_t SIZE", "$r10": "int FLAGS"}, "recv": {"$rdi": "int SOCKET", "$rsi": "void *BUFFER", "$rdx": "size_t SIZE", "$r10": "int FLAGS"}, "sendto": {"$rdi": "int SOCKET", "$rsi": "const void *BUFFER", "$rdx": "size_t SIZE", "$r10": "int FLAGS", "$r8": "struct sockaddr *ADDR", "$r9": "socklen_t LENGTH"}, "recvfrom": {"$rdi": "int SOCKET", "$rsi": "void *BUFFER", "$rdx": "size_t SIZE", "$r10": "int FLAGS", "$r8": "struct sockaddr *ADDR", "$r9": "socklen_t *LENGTH-PTR"}, "getsockopt": {"$rdi": "int SOCKET", "$rsi": "int LEVEL", "$rdx": "int OPTNAME", "$r10": "void *OPTVAL", "$r8": "socklen_t *OPTLEN-PTR"}, "setsockopt": {"$rdi": "int SOCKET", "$rsi": "int LEVEL", "$rdx": "int OPTNAME", "$r10": "const void *OPTVAL", "$r8": "socklen_t OPTLEN"}, "getnetbyname": {"$rdi": "const char *NAME"}, "getnetbyaddr": {"$rdi": "uint32_t NET", "$rsi": "int TYPE"}, "setnetent": {"$rdi": "int STAYOPEN"}, "getnetent": {"$rdi": "void"}, "endnetent": {"$rdi": "void"}, "isatty": {"$rdi": "int FILEDES"}, "ttyname": {"$rdi": "int FILEDES"}, "ttyname_r": {"$rdi": "int FILEDES", "$rsi": "char *BUF", "$rdx": "size_t LEN"}, "tcgetattr": {"$rdi": "int FILEDES", "$rsi": "struct termios *TERMIOS-P"}, "tcsetattr": {"$rdi": "int FILEDES", "$rsi": "int WHEN", "$rdx": "const struct termios *TERMIOS-P"}, "cfgetospeed": {"$rdi": "const struct termios *TERMIOS-P"}, "cfgetispeed": {"$rdi": "const struct termios *TERMIOS-P"}, "cfsetospeed": {"$rdi": "struct termios *TERMIOS-P", "$rsi": "speed_t SPEED"}, "cfsetispeed": {"$rdi": "struct termios *TERMIOS-P", "$rsi": "speed_t SPEED"}, "cfsetspeed": {"$rdi": "struct termios *TERMIOS-P", "$rsi": "speed_t SPEED"}, "cfmakeraw": {"$rdi": "struct termios *TERMIOS-P"}, "gtty": {"$rdi": "int FILEDES", "$rsi": "struct sgttyb *ATTRIBUTES"}, "stty": {"$rdi": "int FILEDES", "$rsi": "const struct sgttyb *ATTRIBUTES"}, "tcsendbreak": {"$rdi": "int FILEDES", "$rsi": "int DURATION"}, "tcdrain": {"$rdi": "int FILEDES"}, "tcflush": {"$rdi": "int FILEDES", "$rsi": "int QUEUE"}, "tcflow": {"$rdi": "int FILEDES", "$rsi": "int ACTION"}, "getpass": {"$rdi": "const char *PROMPT"}, "posix_openpt": {"$rdi": "int FLAGS"}, "getpt": {"$rdi": "void"}, "grantpt": {"$rdi": "int FILEDES"}, "unlockpt": {"$rdi": "int FILEDES"}, "ptsname": {"$rdi": "int FILEDES"}, "ptsname_r": {"$rdi": "int FILEDES", "$rsi": "char *BUF", "$rdx": "size_t LEN"}, "openpty": {"$rdi": "int *AMASTER", "$rsi": "int *ASLAVE", "$rdx": "char *NAME", "$r10": "const struct termios *TERMP", "$r8": "const struct winsize *WINP"}, "forkpty": {"$rdi": "int *AMASTER", "$rsi": "char *NAME", "$rdx": "const struct termios *TERMP", "$r10": "const struct winsize *WINP"}, "openlog": {"$rdi": "const char *IDENT", "$rsi": "int OPTION", "$rdx": "int FACILITY"}, "syslog": {"$rdi": "int FACILITY_PRIORITY", "$rsi": "const char *FORMAT", "$rdx": "..."}, "vsyslog": {"$rdi": "int FACILITY_PRIORITY", "$rsi": "const char *FORMAT", "$rdx": "va_list ARGLIST"}, "closelog": {"$rdi": "void"}, "setlogmask": {"$rdi": "int MASK"}, "sin": {"$rdi": "double X"}, "sinf": {"$rdi": "float X"}, "sinl": {"$rdi": "long double X"}, "sinfN": {"$rdi": "_FloatN X"}, "sinfNx": {"$rdi": "_FloatNx X"}, "cos": {"$rdi": "double X"}, "cosf": {"$rdi": "float X"}, "cosl": {"$rdi": "long double X"}, "cosfN": {"$rdi": "_FloatN X"}, "cosfNx": {"$rdi": "_FloatNx X"}, "tan": {"$rdi": "double X"}, "tanf": {"$rdi": "float X"}, "tanl": {"$rdi": "long double X"}, "tanfN": {"$rdi": "_FloatN X"}, "tanfNx": {"$rdi": "_FloatNx X"}, "sincos": {"$rdi": "double X", "$rsi": "double *SINX", "$rdx": "double *COSX"}, "sincosf": {"$rdi": "float X", "$rsi": "float *SINX", "$rdx": "float *COSX"}, "sincosl": {"$rdi": "long double X", "$rsi": "long double *SINX", "$rdx": "long double *COSX"}, "sincosfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN *SINX", "$rdx": "_FloatN *COSX"}, "sincosfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx *SINX", "$rdx": "_FloatNx *COSX"}, "csin": {"$rdi": "complex double Z"}, "csinf": {"$rdi": "complex float Z"}, "csinl": {"$rdi": "complex long double Z"}, "csinfN": {"$rdi": "complex _FloatN Z"}, "csinfNx": {"$rdi": "complex _FloatNx Z"}, "ccos": {"$rdi": "complex double Z"}, "ccosf": {"$rdi": "complex float Z"}, "ccosl": {"$rdi": "complex long double Z"}, "ccosfN": {"$rdi": "complex _FloatN Z"}, "ccosfNx": {"$rdi": "complex _FloatNx Z"}, "ctan": {"$rdi": "complex double Z"}, "ctanf": {"$rdi": "complex float Z"}, "ctanl": {"$rdi": "complex long double Z"}, "ctanfN": {"$rdi": "complex _FloatN Z"}, "ctanfNx": {"$rdi": "complex _FloatNx Z"}, "asin": {"$rdi": "double X"}, "asinf": {"$rdi": "float X"}, "asinl": {"$rdi": "long double X"}, "asinfN": {"$rdi": "_FloatN X"}, "asinfNx": {"$rdi": "_FloatNx X"}, "acos": {"$rdi": "double X"}, "acosf": {"$rdi": "float X"}, "acosl": {"$rdi": "long double X"}, "acosfN": {"$rdi": "_FloatN X"}, "acosfNx": {"$rdi": "_FloatNx X"}, "atan": {"$rdi": "double X"}, "atanf": {"$rdi": "float X"}, "atanl": {"$rdi": "long double X"}, "atanfN": {"$rdi": "_FloatN X"}, "atanfNx": {"$rdi": "_FloatNx X"}, "atan2": {"$rdi": "double Y", "$rsi": "double X"}, "atan2f": {"$rdi": "float Y", "$rsi": "float X"}, "atan2l": {"$rdi": "long double Y", "$rsi": "long double X"}, "atan2fN": {"$rdi": "_FloatN Y", "$rsi": "_FloatN X"}, "atan2fNx": {"$rdi": "_FloatNx Y", "$rsi": "_FloatNx X"}, "casin": {"$rdi": "complex double Z"}, "casinf": {"$rdi": "complex float Z"}, "casinl": {"$rdi": "complex long double Z"}, "casinfN": {"$rdi": "complex _FloatN Z"}, "casinfNx": {"$rdi": "complex _FloatNx Z"}, "cacos": {"$rdi": "complex double Z"}, "cacosf": {"$rdi": "complex float Z"}, "cacosl": {"$rdi": "complex long double Z"}, "cacosfN": {"$rdi": "complex _FloatN Z"}, "cacosfNx": {"$rdi": "complex _FloatNx Z"}, "catan": {"$rdi": "complex double Z"}, "catanf": {"$rdi": "complex float Z"}, "catanl": {"$rdi": "complex long double Z"}, "catanfN": {"$rdi": "complex _FloatN Z"}, "catanfNx": {"$rdi": "complex _FloatNx Z"}, "exp": {"$rdi": "double X"}, "expf": {"$rdi": "float X"}, "expl": {"$rdi": "long double X"}, "expfN": {"$rdi": "_FloatN X"}, "expfNx": {"$rdi": "_FloatNx X"}, "exp2": {"$rdi": "double X"}, "exp2f": {"$rdi": "float X"}, "exp2l": {"$rdi": "long double X"}, "exp2fN": {"$rdi": "_FloatN X"}, "exp2fNx": {"$rdi": "_FloatNx X"}, "exp10": {"$rdi": "double X"}, "exp10f": {"$rdi": "float X"}, "exp10l": {"$rdi": "long double X"}, "exp10fN": {"$rdi": "_FloatN X"}, "exp10fNx": {"$rdi": "_FloatNx X"}, "log": {"$rdi": "double X"}, "logf": {"$rdi": "float X"}, "logl": {"$rdi": "long double X"}, "logfN": {"$rdi": "_FloatN X"}, "logfNx": {"$rdi": "_FloatNx X"}, "log10": {"$rdi": "double X"}, "log10f": {"$rdi": "float X"}, "log10l": {"$rdi": "long double X"}, "log10fN": {"$rdi": "_FloatN X"}, "log10fNx": {"$rdi": "_FloatNx X"}, "log2": {"$rdi": "double X"}, "log2f": {"$rdi": "float X"}, "log2l": {"$rdi": "long double X"}, "log2fN": {"$rdi": "_FloatN X"}, "log2fNx": {"$rdi": "_FloatNx X"}, "logb": {"$rdi": "double X"}, "logbf": {"$rdi": "float X"}, "logbl": {"$rdi": "long double X"}, "logbfN": {"$rdi": "_FloatN X"}, "logbfNx": {"$rdi": "_FloatNx X"}, "ilogb": {"$rdi": "double X"}, "ilogbf": {"$rdi": "float X"}, "ilogbl": {"$rdi": "long double X"}, "ilogbfN": {"$rdi": "_FloatN X"}, "ilogbfNx": {"$rdi": "_FloatNx X"}, "llogb": {"$rdi": "double X"}, "llogbf": {"$rdi": "float X"}, "llogbl": {"$rdi": "long double X"}, "llogbfN": {"$rdi": "_FloatN X"}, "llogbfNx": {"$rdi": "_FloatNx X"}, "pow": {"$rdi": "double BASE", "$rsi": "double POWER"}, "powf": {"$rdi": "float BASE", "$rsi": "float POWER"}, "powl": {"$rdi": "long double BASE", "$rsi": "long double POWER"}, "powfN": {"$rdi": "_FloatN BASE", "$rsi": "_FloatN POWER"}, "powfNx": {"$rdi": "_FloatNx BASE", "$rsi": "_FloatNx POWER"}, "sqrt": {"$rdi": "double X"}, "sqrtf": {"$rdi": "float X"}, "sqrtl": {"$rdi": "long double X"}, "sqrtfN": {"$rdi": "_FloatN X"}, "sqrtfNx": {"$rdi": "_FloatNx X"}, "cbrt": {"$rdi": "double X"}, "cbrtf": {"$rdi": "float X"}, "cbrtl": {"$rdi": "long double X"}, "cbrtfN": {"$rdi": "_FloatN X"}, "cbrtfNx": {"$rdi": "_FloatNx X"}, "hypot": {"$rdi": "double X", "$rsi": "double Y"}, "hypotf": {"$rdi": "float X", "$rsi": "float Y"}, "hypotl": {"$rdi": "long double X", "$rsi": "long double Y"}, "hypotfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "hypotfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "expm1": {"$rdi": "double X"}, "expm1f": {"$rdi": "float X"}, "expm1l": {"$rdi": "long double X"}, "expm1fN": {"$rdi": "_FloatN X"}, "expm1fNx": {"$rdi": "_FloatNx X"}, "log1p": {"$rdi": "double X"}, "log1pf": {"$rdi": "float X"}, "log1pl": {"$rdi": "long double X"}, "log1pfN": {"$rdi": "_FloatN X"}, "log1pfNx": {"$rdi": "_FloatNx X"}, "cexp": {"$rdi": "complex double Z"}, "cexpf": {"$rdi": "complex float Z"}, "cexpl": {"$rdi": "complex long double Z"}, "cexpfN": {"$rdi": "complex _FloatN Z"}, "cexpfNx": {"$rdi": "complex _FloatNx Z"}, "clog": {"$rdi": "complex double Z"}, "clogf": {"$rdi": "complex float Z"}, "clogl": {"$rdi": "complex long double Z"}, "clogfN": {"$rdi": "complex _FloatN Z"}, "clogfNx": {"$rdi": "complex _FloatNx Z"}, "clog10": {"$rdi": "complex double Z"}, "clog10f": {"$rdi": "complex float Z"}, "clog10l": {"$rdi": "complex long double Z"}, "clog10fN": {"$rdi": "complex _FloatN Z"}, "clog10fNx": {"$rdi": "complex _FloatNx Z"}, "csqrt": {"$rdi": "complex double Z"}, "csqrtf": {"$rdi": "complex float Z"}, "csqrtl": {"$rdi": "complex long double Z"}, "csqrtfN": {"$rdi": "_FloatN Z"}, "csqrtfNx": {"$rdi": "complex _FloatNx Z"}, "cpow": {"$rdi": "complex double BASE", "$rsi": "complex double POWER"}, "cpowf": {"$rdi": "complex float BASE", "$rsi": "complex float POWER"}, "cpowl": {"$rdi": "complex long double BASE", "$rsi": "complex long double POWER"}, "cpowfN": {"$rdi": "complex _FloatN BASE", "$rsi": "complex _FloatN POWER"}, "cpowfNx": {"$rdi": "complex _FloatNx BASE", "$rsi": "complex _FloatNx POWER"}, "sinh": {"$rdi": "double X"}, "sinhf": {"$rdi": "float X"}, "sinhl": {"$rdi": "long double X"}, "sinhfN": {"$rdi": "_FloatN X"}, "sinhfNx": {"$rdi": "_FloatNx X"}, "cosh": {"$rdi": "double X"}, "coshf": {"$rdi": "float X"}, "coshl": {"$rdi": "long double X"}, "coshfN": {"$rdi": "_FloatN X"}, "coshfNx": {"$rdi": "_FloatNx X"}, "tanh": {"$rdi": "double X"}, "tanhf": {"$rdi": "float X"}, "tanhl": {"$rdi": "long double X"}, "tanhfN": {"$rdi": "_FloatN X"}, "tanhfNx": {"$rdi": "_FloatNx X"}, "csinh": {"$rdi": "complex double Z"}, "csinhf": {"$rdi": "complex float Z"}, "csinhl": {"$rdi": "complex long double Z"}, "csinhfN": {"$rdi": "complex _FloatN Z"}, "csinhfNx": {"$rdi": "complex _FloatNx Z"}, "ccosh": {"$rdi": "complex double Z"}, "ccoshf": {"$rdi": "complex float Z"}, "ccoshl": {"$rdi": "complex long double Z"}, "ccoshfN": {"$rdi": "complex _FloatN Z"}, "ccoshfNx": {"$rdi": "complex _FloatNx Z"}, "ctanh": {"$rdi": "complex double Z"}, "ctanhf": {"$rdi": "complex float Z"}, "ctanhl": {"$rdi": "complex long double Z"}, "ctanhfN": {"$rdi": "complex _FloatN Z"}, "ctanhfNx": {"$rdi": "complex _FloatNx Z"}, "asinh": {"$rdi": "double X"}, "asinhf": {"$rdi": "float X"}, "asinhl": {"$rdi": "long double X"}, "asinhfN": {"$rdi": "_FloatN X"}, "asinhfNx": {"$rdi": "_FloatNx X"}, "acosh": {"$rdi": "double X"}, "acoshf": {"$rdi": "float X"}, "acoshl": {"$rdi": "long double X"}, "acoshfN": {"$rdi": "_FloatN X"}, "acoshfNx": {"$rdi": "_FloatNx X"}, "atanh": {"$rdi": "double X"}, "atanhf": {"$rdi": "float X"}, "atanhl": {"$rdi": "long double X"}, "atanhfN": {"$rdi": "_FloatN X"}, "atanhfNx": {"$rdi": "_FloatNx X"}, "casinh": {"$rdi": "complex double Z"}, "casinhf": {"$rdi": "complex float Z"}, "casinhl": {"$rdi": "complex long double Z"}, "casinhfN": {"$rdi": "complex _FloatN Z"}, "casinhfNx": {"$rdi": "complex _FloatNx Z"}, "cacosh": {"$rdi": "complex double Z"}, "cacoshf": {"$rdi": "complex float Z"}, "cacoshl": {"$rdi": "complex long double Z"}, "cacoshfN": {"$rdi": "complex _FloatN Z"}, "cacoshfNx": {"$rdi": "complex _FloatNx Z"}, "catanh": {"$rdi": "complex double Z"}, "catanhf": {"$rdi": "complex float Z"}, "catanhl": {"$rdi": "complex long double Z"}, "catanhfN": {"$rdi": "complex _FloatN Z"}, "catanhfNx": {"$rdi": "complex _FloatNx Z"}, "erf": {"$rdi": "double X"}, "erff": {"$rdi": "float X"}, "erfl": {"$rdi": "long double X"}, "erffN": {"$rdi": "_FloatN X"}, "erffNx": {"$rdi": "_FloatNx X"}, "erfc": {"$rdi": "double X"}, "erfcf": {"$rdi": "float X"}, "erfcl": {"$rdi": "long double X"}, "erfcfN": {"$rdi": "_FloatN X"}, "erfcfNx": {"$rdi": "_FloatNx X"}, "lgamma": {"$rdi": "double X"}, "lgammaf": {"$rdi": "float X"}, "lgammal": {"$rdi": "long double X"}, "lgammafN": {"$rdi": "_FloatN X"}, "lgammafNx": {"$rdi": "_FloatNx X"}, "lgamma_r": {"$rdi": "double X", "$rsi": "int *SIGNP"}, "lgammaf_r": {"$rdi": "float X", "$rsi": "int *SIGNP"}, "lgammal_r": {"$rdi": "long double X", "$rsi": "int *SIGNP"}, "lgammafN_r": {"$rdi": "_FloatN X", "$rsi": "int *SIGNP"}, "lgammafNx_r": {"$rdi": "_FloatNx X", "$rsi": "int *SIGNP"}, "gamma": {"$rdi": "double X"}, "gammaf": {"$rdi": "float X"}, "gammal": {"$rdi": "long double X"}, "tgamma": {"$rdi": "double X"}, "tgammaf": {"$rdi": "float X"}, "tgammal": {"$rdi": "long double X"}, "tgammafN": {"$rdi": "_FloatN X"}, "tgammafNx": {"$rdi": "_FloatNx X"}, "j0": {"$rdi": "double X"}, "j0f": {"$rdi": "float X"}, "j0l": {"$rdi": "long double X"}, "j0fN": {"$rdi": "_FloatN X"}, "j0fNx": {"$rdi": "_FloatNx X"}, "j1": {"$rdi": "double X"}, "j1f": {"$rdi": "float X"}, "j1l": {"$rdi": "long double X"}, "j1fN": {"$rdi": "_FloatN X"}, "j1fNx": {"$rdi": "_FloatNx X"}, "jn": {"$rdi": "int N", "$rsi": "double X"}, "jnf": {"$rdi": "int N", "$rsi": "float X"}, "jnl": {"$rdi": "int N", "$rsi": "long double X"}, "jnfN": {"$rdi": "int N", "$rsi": "_FloatN X"}, "jnfNx": {"$rdi": "int N", "$rsi": "_FloatNx X"}, "y0": {"$rdi": "double X"}, "y0f": {"$rdi": "float X"}, "y0l": {"$rdi": "long double X"}, "y0fN": {"$rdi": "_FloatN X"}, "y0fNx": {"$rdi": "_FloatNx X"}, "y1": {"$rdi": "double X"}, "y1f": {"$rdi": "float X"}, "y1l": {"$rdi": "long double X"}, "y1fN": {"$rdi": "_FloatN X"}, "y1fNx": {"$rdi": "_FloatNx X"}, "yn": {"$rdi": "int N", "$rsi": "double X"}, "ynf": {"$rdi": "int N", "$rsi": "float X"}, "ynl": {"$rdi": "int N", "$rsi": "long double X"}, "ynfN": {"$rdi": "int N", "$rsi": "_FloatN X"}, "ynfNx": {"$rdi": "int N", "$rsi": "_FloatNx X"}, "rand": {"$rdi": "void"}, "srand": {"$rdi": "unsigned int SEED"}, "rand_r": {"$rdi": "unsigned int *SEED"}, "random": {"$rdi": "void"}, "srandom": {"$rdi": "unsigned int SEED"}, "initstate": {"$rdi": "unsigned int SEED", "$rsi": "char *STATE", "$rdx": "size_t SIZE"}, "setstate": {"$rdi": "char *STATE"}, "random_r": {"$rdi": "struct random_data *restrict BUF", "$rsi": "int32_t *restrict RESULT"}, "srandom_r": {"$rdi": "unsigned int SEED", "$rsi": "struct random_data *BUF"}, "initstate_r": {"$rdi": "unsigned int SEED", "$rsi": "char *restrict STATEBUF", "$rdx": "size_t STATELEN", "$r10": "struct random_data *restrict BUF"}, "setstate_r": {"$rdi": "char *restrict STATEBUF", "$rsi": "struct random_data *restrict BUF"}, "drand48": {"$rdi": "void"}, "erand48": {"$rdi": "unsigned short int XSUBI[3]"}, "lrand48": {"$rdi": "void"}, "nrand48": {"$rdi": "unsigned short int XSUBI[3]"}, "mrand48": {"$rdi": "void"}, "jrand48": {"$rdi": "unsigned short int XSUBI[3]"}, "srand48": {"$rdi": "long int SEEDVAL"}, "seed48": {"$rdi": "unsigned short int SEED16V[3]"}, "lcong48": {"$rdi": "unsigned short int PARAM[7]"}, "drand48_r": {"$rdi": "struct drand48_data *BUFFER", "$rsi": "double *RESULT"}, "erand48_r": {"$rdi": "unsigned short int XSUBI[3]", "$rsi": "struct drand48_data *BUFFER", "$rdx": "double *RESULT"}, "lrand48_r": {"$rdi": "struct drand48_data *BUFFER", "$rsi": "long int *RESULT"}, "nrand48_r": {"$rdi": "unsigned short int XSUBI[3]", "$rsi": "struct drand48_data *BUFFER", "$rdx": "long int *RESULT"}, "mrand48_r": {"$rdi": "struct drand48_data *BUFFER", "$rsi": "long int *RESULT"}, "jrand48_r": {"$rdi": "unsigned short int XSUBI[3]", "$rsi": "struct drand48_data *BUFFER", "$rdx": "long int *RESULT"}, "srand48_r": {"$rdi": "long int SEEDVAL", "$rsi": "struct drand48_data *BUFFER"}, "seed48_r": {"$rdi": "unsigned short int SEED16V[3]", "$rsi": "struct drand48_data *BUFFER"}, "lcong48_r": {"$rdi": "unsigned short int PARAM[7]", "$rsi": "struct drand48_data *BUFFER"}, "arc4random": {"$rdi": "void"}, "arc4random_buf": {"$rdi": "void *BUFFER", "$rsi": "size_t LENGTH"}, "arc4random_uniform": {"$rdi": "uint32_t UPPER_BOUND"}, "div": {"$rdi": "int NUMERATOR", "$rsi": "int DENOMINATOR"}, "ldiv": {"$rdi": "long int NUMERATOR", "$rsi": "long int DENOMINATOR"}, "lldiv": {"$rdi": "long long int NUMERATOR", "$rsi": "long long int DENOMINATOR"}, "imaxdiv": {"$rdi": "intmax_t NUMERATOR", "$rsi": "intmax_t DENOMINATOR"}, "isinf": {"$rdi": "double X"}, "isinff": {"$rdi": "float X"}, "isinfl": {"$rdi": "long double X"}, "isnan": {"$rdi": "double X"}, "isnanf": {"$rdi": "float X"}, "isnanl": {"$rdi": "long double X"}, "finite": {"$rdi": "double X"}, "finitef": {"$rdi": "float X"}, "finitel": {"$rdi": "long double X"}, "feclearexcept": {"$rdi": "int EXCEPTS"}, "feraiseexcept": {"$rdi": "int EXCEPTS"}, "fesetexcept": {"$rdi": "int EXCEPTS"}, "fetestexcept": {"$rdi": "int EXCEPTS"}, "fegetexceptflag": {"$rdi": "fexcept_t *FLAGP", "$rsi": "int EXCEPTS"}, "fesetexceptflag": {"$rdi": "const fexcept_t *FLAGP", "$rsi": "int EXCEPTS"}, "fetestexceptflag": {"$rdi": "const fexcept_t *FLAGP", "$rsi": "int EXCEPTS"}, "fegetround": {"$rdi": "void"}, "fesetround": {"$rdi": "int ROUND"}, "fegetenv": {"$rdi": "fenv_t *ENVP"}, "feholdexcept": {"$rdi": "fenv_t *ENVP"}, "fesetenv": {"$rdi": "const fenv_t *ENVP"}, "feupdateenv": {"$rdi": "const fenv_t *ENVP"}, "fegetmode": {"$rdi": "femode_t *MODEP"}, "fesetmode": {"$rdi": "const femode_t *MODEP"}, "feenableexcept": {"$rdi": "int EXCEPTS"}, "fedisableexcept": {"$rdi": "int EXCEPTS"}, "fegetexcept": {"$rdi": "void"}, "abs": {"$rdi": "int NUMBER"}, "labs": {"$rdi": "long int NUMBER"}, "llabs": {"$rdi": "long long int NUMBER"}, "imaxabs": {"$rdi": "intmax_t NUMBER"}, "fabs": {"$rdi": "double NUMBER"}, "fabsf": {"$rdi": "float NUMBER"}, "fabsl": {"$rdi": "long double NUMBER"}, "fabsfN": {"$rdi": "_FloatN NUMBER"}, "fabsfNx": {"$rdi": "_FloatNx NUMBER"}, "cabs": {"$rdi": "complex double Z"}, "cabsf": {"$rdi": "complex float Z"}, "cabsl": {"$rdi": "complex long double Z"}, "cabsfN": {"$rdi": "complex _FloatN Z"}, "cabsfNx": {"$rdi": "complex _FloatNx Z"}, "frexp": {"$rdi": "double VALUE", "$rsi": "int *EXPONENT"}, "frexpf": {"$rdi": "float VALUE", "$rsi": "int *EXPONENT"}, "frexpl": {"$rdi": "long double VALUE", "$rsi": "int *EXPONENT"}, "frexpfN": {"$rdi": "_FloatN VALUE", "$rsi": "int *EXPONENT"}, "frexpfNx": {"$rdi": "_FloatNx VALUE", "$rsi": "int *EXPONENT"}, "ldexp": {"$rdi": "double VALUE", "$rsi": "int EXPONENT"}, "ldexpf": {"$rdi": "float VALUE", "$rsi": "int EXPONENT"}, "ldexpl": {"$rdi": "long double VALUE", "$rsi": "int EXPONENT"}, "ldexpfN": {"$rdi": "_FloatN VALUE", "$rsi": "int EXPONENT"}, "ldexpfNx": {"$rdi": "_FloatNx VALUE", "$rsi": "int EXPONENT"}, "scalb": {"$rdi": "double VALUE", "$rsi": "double EXPONENT"}, "scalbf": {"$rdi": "float VALUE", "$rsi": "float EXPONENT"}, "scalbl": {"$rdi": "long double VALUE", "$rsi": "long double EXPONENT"}, "scalbn": {"$rdi": "double X", "$rsi": "int N"}, "scalbnf": {"$rdi": "float X", "$rsi": "int N"}, "scalbnl": {"$rdi": "long double X", "$rsi": "int N"}, "scalbnfN": {"$rdi": "_FloatN X", "$rsi": "int N"}, "scalbnfNx": {"$rdi": "_FloatNx X", "$rsi": "int N"}, "scalbln": {"$rdi": "double X", "$rsi": "long int N"}, "scalblnf": {"$rdi": "float X", "$rsi": "long int N"}, "scalblnl": {"$rdi": "long double X", "$rsi": "long int N"}, "scalblnfN": {"$rdi": "_FloatN X", "$rsi": "long int N"}, "scalblnfNx": {"$rdi": "_FloatNx X", "$rsi": "long int N"}, "significand": {"$rdi": "double X"}, "significandf": {"$rdi": "float X"}, "significandl": {"$rdi": "long double X"}, "ceil": {"$rdi": "double X"}, "ceilf": {"$rdi": "float X"}, "ceill": {"$rdi": "long double X"}, "ceilfN": {"$rdi": "_FloatN X"}, "ceilfNx": {"$rdi": "_FloatNx X"}, "floor": {"$rdi": "double X"}, "floorf": {"$rdi": "float X"}, "floorl": {"$rdi": "long double X"}, "floorfN": {"$rdi": "_FloatN X"}, "floorfNx": {"$rdi": "_FloatNx X"}, "trunc": {"$rdi": "double X"}, "truncf": {"$rdi": "float X"}, "truncl": {"$rdi": "long double X"}, "truncfN": {"$rdi": "_FloatN X"}, "truncfNx": {"$rdi": "_FloatNx X"}, "rint": {"$rdi": "double X"}, "rintf": {"$rdi": "float X"}, "rintl": {"$rdi": "long double X"}, "rintfN": {"$rdi": "_FloatN X"}, "rintfNx": {"$rdi": "_FloatNx X"}, "nearbyint": {"$rdi": "double X"}, "nearbyintf": {"$rdi": "float X"}, "nearbyintl": {"$rdi": "long double X"}, "nearbyintfN": {"$rdi": "_FloatN X"}, "nearbyintfNx": {"$rdi": "_FloatNx X"}, "round": {"$rdi": "double X"}, "roundf": {"$rdi": "float X"}, "roundl": {"$rdi": "long double X"}, "roundfN": {"$rdi": "_FloatN X"}, "roundfNx": {"$rdi": "_FloatNx X"}, "roundeven": {"$rdi": "double X"}, "roundevenf": {"$rdi": "float X"}, "roundevenl": {"$rdi": "long double X"}, "roundevenfN": {"$rdi": "_FloatN X"}, "roundevenfNx": {"$rdi": "_FloatNx X"}, "lrint": {"$rdi": "double X"}, "lrintf": {"$rdi": "float X"}, "lrintl": {"$rdi": "long double X"}, "lrintfN": {"$rdi": "_FloatN X"}, "lrintfNx": {"$rdi": "_FloatNx X"}, "llrint": {"$rdi": "double X"}, "llrintf": {"$rdi": "float X"}, "llrintl": {"$rdi": "long double X"}, "llrintfN": {"$rdi": "_FloatN X"}, "llrintfNx": {"$rdi": "_FloatNx X"}, "lround": {"$rdi": "double X"}, "lroundf": {"$rdi": "float X"}, "lroundl": {"$rdi": "long double X"}, "lroundfN": {"$rdi": "_FloatN X"}, "lroundfNx": {"$rdi": "_FloatNx X"}, "llround": {"$rdi": "double X"}, "llroundf": {"$rdi": "float X"}, "llroundl": {"$rdi": "long double X"}, "llroundfN": {"$rdi": "_FloatN X"}, "llroundfNx": {"$rdi": "_FloatNx X"}, "fromfp": {"$rdi": "double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpf": {"$rdi": "float X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpl": {"$rdi": "long double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpfN": {"$rdi": "_FloatN X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpfNx": {"$rdi": "_FloatNx X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfp": {"$rdi": "double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpf": {"$rdi": "float X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpl": {"$rdi": "long double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpfN": {"$rdi": "_FloatN X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpfNx": {"$rdi": "_FloatNx X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpx": {"$rdi": "double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpxf": {"$rdi": "float X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpxl": {"$rdi": "long double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpxfN": {"$rdi": "_FloatN X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "fromfpxfNx": {"$rdi": "_FloatNx X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpx": {"$rdi": "double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpxf": {"$rdi": "float X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpxl": {"$rdi": "long double X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpxfN": {"$rdi": "_FloatN X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "ufromfpxfNx": {"$rdi": "_FloatNx X", "$rsi": "int ROUND", "$rdx": "unsigned int WIDTH"}, "modf": {"$rdi": "double VALUE", "$rsi": "double *INTEGER-PART"}, "modff": {"$rdi": "float VALUE", "$rsi": "float *INTEGER-PART"}, "modfl": {"$rdi": "long double VALUE", "$rsi": "long double *INTEGER-PART"}, "modffN": {"$rdi": "_FloatN VALUE", "$rsi": "_FloatN *INTEGER-PART"}, "modffNx": {"$rdi": "_FloatNx VALUE", "$rsi": "_FloatNx *INTEGER-PART"}, "fmod": {"$rdi": "double NUMERATOR", "$rsi": "double DENOMINATOR"}, "fmodf": {"$rdi": "float NUMERATOR", "$rsi": "float DENOMINATOR"}, "fmodl": {"$rdi": "long double NUMERATOR", "$rsi": "long double DENOMINATOR"}, "fmodfN": {"$rdi": "_FloatN NUMERATOR", "$rsi": "_FloatN DENOMINATOR"}, "fmodfNx": {"$rdi": "_FloatNx NUMERATOR", "$rsi": "_FloatNx DENOMINATOR"}, "remainder": {"$rdi": "double NUMERATOR", "$rsi": "double DENOMINATOR"}, "remainderf": {"$rdi": "float NUMERATOR", "$rsi": "float DENOMINATOR"}, "remainderl": {"$rdi": "long double NUMERATOR", "$rsi": "long double DENOMINATOR"}, "remainderfN": {"$rdi": "_FloatN NUMERATOR", "$rsi": "_FloatN DENOMINATOR"}, "remainderfNx": {"$rdi": "_FloatNx NUMERATOR", "$rsi": "_FloatNx DENOMINATOR"}, "drem": {"$rdi": "double NUMERATOR", "$rsi": "double DENOMINATOR"}, "dremf": {"$rdi": "float NUMERATOR", "$rsi": "float DENOMINATOR"}, "dreml": {"$rdi": "long double NUMERATOR", "$rsi": "long double DENOMINATOR"}, "copysign": {"$rdi": "double X", "$rsi": "double Y"}, "copysignf": {"$rdi": "float X", "$rsi": "float Y"}, "copysignl": {"$rdi": "long double X", "$rsi": "long double Y"}, "copysignfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "copysignfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "signbit": {"$rdi": "_float-type_ X"}, "nextafter": {"$rdi": "double X", "$rsi": "double Y"}, "nextafterf": {"$rdi": "float X", "$rsi": "float Y"}, "nextafterl": {"$rdi": "long double X", "$rsi": "long double Y"}, "nextafterfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "nextafterfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "nexttoward": {"$rdi": "double X", "$rsi": "long double Y"}, "nexttowardf": {"$rdi": "float X", "$rsi": "long double Y"}, "nexttowardl": {"$rdi": "long double X", "$rsi": "long double Y"}, "nextup": {"$rdi": "double X"}, "nextupf": {"$rdi": "float X"}, "nextupl": {"$rdi": "long double X"}, "nextupfN": {"$rdi": "_FloatN X"}, "nextupfNx": {"$rdi": "_FloatNx X"}, "nextdown": {"$rdi": "double X"}, "nextdownf": {"$rdi": "float X"}, "nextdownl": {"$rdi": "long double X"}, "nextdownfN": {"$rdi": "_FloatN X"}, "nextdownfNx": {"$rdi": "_FloatNx X"}, "nan": {"$rdi": "const char *TAGP"}, "nanf": {"$rdi": "const char *TAGP"}, "nanl": {"$rdi": "const char *TAGP"}, "nanfN": {"$rdi": "const char *TAGP"}, "nanfNx": {"$rdi": "const char *TAGP"}, "canonicalize": {"$rdi": "double *CX", "$rsi": "const double *X"}, "canonicalizef": {"$rdi": "float *CX", "$rsi": "const float *X"}, "canonicalizel": {"$rdi": "long double *CX", "$rsi": "const long double *X"}, "canonicalizefN": {"$rdi": "_FloatN *CX", "$rsi": "const _FloatN *X"}, "canonicalizefNx": {"$rdi": "_FloatNx *CX", "$rsi": "const _FloatNx *X"}, "getpayload": {"$rdi": "const double *X"}, "getpayloadf": {"$rdi": "const float *X"}, "getpayloadl": {"$rdi": "const long double *X"}, "getpayloadfN": {"$rdi": "const _FloatN *X"}, "getpayloadfNx": {"$rdi": "const _FloatNx *X"}, "setpayload": {"$rdi": "double *X", "$rsi": "double PAYLOAD"}, "setpayloadf": {"$rdi": "float *X", "$rsi": "float PAYLOAD"}, "setpayloadl": {"$rdi": "long double *X", "$rsi": "long double PAYLOAD"}, "setpayloadfN": {"$rdi": "_FloatN *X", "$rsi": "_FloatN PAYLOAD"}, "setpayloadfNx": {"$rdi": "_FloatNx *X", "$rsi": "_FloatNx PAYLOAD"}, "setpayloadsig": {"$rdi": "double *X", "$rsi": "double PAYLOAD"}, "setpayloadsigf": {"$rdi": "float *X", "$rsi": "float PAYLOAD"}, "setpayloadsigl": {"$rdi": "long double *X", "$rsi": "long double PAYLOAD"}, "setpayloadsigfN": {"$rdi": "_FloatN *X", "$rsi": "_FloatN PAYLOAD"}, "setpayloadsigfNx": {"$rdi": "_FloatNx *X", "$rsi": "_FloatNx PAYLOAD"}, "totalorder": {"$rdi": "const double *X", "$rsi": "const double *Y"}, "totalorderf": {"$rdi": "const float *X", "$rsi": "const float *Y"}, "totalorderl": {"$rdi": "const long double *X", "$rsi": "const long double *Y"}, "totalorderfN": {"$rdi": "const _FloatN *X", "$rsi": "const _FloatN *Y"}, "totalorderfNx": {"$rdi": "const _FloatNx *X", "$rsi": "const _FloatNx *Y"}, "totalordermag": {"$rdi": "const double *X", "$rsi": "const double *Y"}, "totalordermagf": {"$rdi": "const float *X", "$rsi": "const float *Y"}, "totalordermagl": {"$rdi": "const long double *X", "$rsi": "const long double *Y"}, "totalordermagfN": {"$rdi": "const _FloatN *X", "$rsi": "const _FloatN *Y"}, "totalordermagfNx": {"$rdi": "const _FloatNx *X", "$rsi": "const _FloatNx *Y"}, "fmin": {"$rdi": "double X", "$rsi": "double Y"}, "fminf": {"$rdi": "float X", "$rsi": "float Y"}, "fminl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fminfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fminfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fmax": {"$rdi": "double X", "$rsi": "double Y"}, "fmaxf": {"$rdi": "float X", "$rsi": "float Y"}, "fmaxl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fmaxfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fmaxfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fminimum": {"$rdi": "double X", "$rsi": "double Y"}, "fminimumf": {"$rdi": "float X", "$rsi": "float Y"}, "fminimuml": {"$rdi": "long double X", "$rsi": "long double Y"}, "fminimumfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fminimumfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fmaximum": {"$rdi": "double X", "$rsi": "double Y"}, "fmaximumf": {"$rdi": "float X", "$rsi": "float Y"}, "fmaximuml": {"$rdi": "long double X", "$rsi": "long double Y"}, "fmaximumfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fmaximumfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fminimum_num": {"$rdi": "double X", "$rsi": "double Y"}, "fminimum_numf": {"$rdi": "float X", "$rsi": "float Y"}, "fminimum_numl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fminimum_numfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fminimum_numfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fmaximum_num": {"$rdi": "double X", "$rsi": "double Y"}, "fmaximum_numf": {"$rdi": "float X", "$rsi": "float Y"}, "fmaximum_numl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fmaximum_numfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fmaximum_numfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fminmag": {"$rdi": "double X", "$rsi": "double Y"}, "fminmagf": {"$rdi": "float X", "$rsi": "float Y"}, "fminmagl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fminmagfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fminmagfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fmaxmag": {"$rdi": "double X", "$rsi": "double Y"}, "fmaxmagf": {"$rdi": "float X", "$rsi": "float Y"}, "fmaxmagl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fmaxmagfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fmaxmagfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fminimum_mag": {"$rdi": "double X", "$rsi": "double Y"}, "fminimum_magf": {"$rdi": "float X", "$rsi": "float Y"}, "fminimum_magl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fminimum_magfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fminimum_magfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fmaximum_mag": {"$rdi": "double X", "$rsi": "double Y"}, "fmaximum_magf": {"$rdi": "float X", "$rsi": "float Y"}, "fmaximum_magl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fmaximum_magfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fmaximum_magfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fminimum_mag_num": {"$rdi": "double X", "$rsi": "double Y"}, "fminimum_mag_numf": {"$rdi": "float X", "$rsi": "float Y"}, "fminimum_mag_numl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fminimum_mag_numfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fminimum_mag_numfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fmaximum_mag_num": {"$rdi": "double X", "$rsi": "double Y"}, "fmaximum_mag_numf": {"$rdi": "float X", "$rsi": "float Y"}, "fmaximum_mag_numl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fmaximum_mag_numfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fmaximum_mag_numfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fdim": {"$rdi": "double X", "$rsi": "double Y"}, "fdimf": {"$rdi": "float X", "$rsi": "float Y"}, "fdiml": {"$rdi": "long double X", "$rsi": "long double Y"}, "fdimfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fdimfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fma": {"$rdi": "double X", "$rsi": "double Y", "$rdx": "double Z"}, "fmaf": {"$rdi": "float X", "$rsi": "float Y", "$rdx": "float Z"}, "fmal": {"$rdi": "long double X", "$rsi": "long double Y", "$rdx": "long double Z"}, "fmafN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y", "$rdx": "_FloatN Z"}, "fmafNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y", "$rdx": "_FloatNx Z"}, "fadd": {"$rdi": "double X", "$rsi": "double Y"}, "faddl": {"$rdi": "long double X", "$rsi": "long double Y"}, "daddl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fMaddfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMaddfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fMxaddfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMxaddfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fsub": {"$rdi": "double X", "$rsi": "double Y"}, "fsubl": {"$rdi": "long double X", "$rsi": "long double Y"}, "dsubl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fMsubfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMsubfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fMxsubfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMxsubfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fmul": {"$rdi": "double X", "$rsi": "double Y"}, "fmull": {"$rdi": "long double X", "$rsi": "long double Y"}, "dmull": {"$rdi": "long double X", "$rsi": "long double Y"}, "fMmulfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMmulfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fMxmulfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMxmulfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fdiv": {"$rdi": "double X", "$rsi": "double Y"}, "fdivl": {"$rdi": "long double X", "$rsi": "long double Y"}, "ddivl": {"$rdi": "long double X", "$rsi": "long double Y"}, "fMdivfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMdivfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fMxdivfN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y"}, "fMxdivfNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y"}, "fsqrt": {"$rdi": "double X"}, "fsqrtl": {"$rdi": "long double X"}, "dsqrtl": {"$rdi": "long double X"}, "fMsqrtfN": {"$rdi": "_FloatN X"}, "fMsqrtfNx": {"$rdi": "_FloatNx X"}, "fMxsqrtfN": {"$rdi": "_FloatN X"}, "fMxsqrtfNx": {"$rdi": "_FloatNx X"}, "ffma": {"$rdi": "double X", "$rsi": "double Y", "$rdx": "double Z"}, "ffmal": {"$rdi": "long double X", "$rsi": "long double Y", "$rdx": "long double Z"}, "dfmal": {"$rdi": "long double X", "$rsi": "long double Y", "$rdx": "long double Z"}, "fMfmafN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y", "$rdx": "_FloatN Z"}, "fMfmafNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y", "$rdx": "_FloatNx Z"}, "fMxfmafN": {"$rdi": "_FloatN X", "$rsi": "_FloatN Y", "$rdx": "_FloatN Z"}, "fMxfmafNx": {"$rdi": "_FloatNx X", "$rsi": "_FloatNx Y", "$rdx": "_FloatNx Z"}, "creal": {"$rdi": "complex double Z"}, "crealf": {"$rdi": "complex float Z"}, "creall": {"$rdi": "complex long double Z"}, "crealfN": {"$rdi": "complex _FloatN Z"}, "crealfNx": {"$rdi": "complex _FloatNx Z"}, "cimag": {"$rdi": "complex double Z"}, "cimagf": {"$rdi": "complex float Z"}, "cimagl": {"$rdi": "complex long double Z"}, "cimagfN": {"$rdi": "complex _FloatN Z"}, "cimagfNx": {"$rdi": "complex _FloatNx Z"}, "conj": {"$rdi": "complex double Z"}, "conjf": {"$rdi": "complex float Z"}, "conjl": {"$rdi": "complex long double Z"}, "conjfN": {"$rdi": "complex _FloatN Z"}, "conjfNx": {"$rdi": "complex _FloatNx Z"}, "carg": {"$rdi": "complex double Z"}, "cargf": {"$rdi": "complex float Z"}, "cargl": {"$rdi": "complex long double Z"}, "cargfN": {"$rdi": "complex _FloatN Z"}, "cargfNx": {"$rdi": "complex _FloatNx Z"}, "cproj": {"$rdi": "complex double Z"}, "cprojf": {"$rdi": "complex float Z"}, "cprojl": {"$rdi": "complex long double Z"}, "cprojfN": {"$rdi": "complex _FloatN Z"}, "cprojfNx": {"$rdi": "complex _FloatNx Z"}, "strtol": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstol": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtoul": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstoul": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtoll": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstoll": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtoq": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstoq": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtoull": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstoull": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtouq": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstouq": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtoimax": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstoimax": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "strtoumax": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR", "$rdx": "int BASE"}, "wcstoumax": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR", "$rdx": "int BASE"}, "atol": {"$rdi": "const char *STRING"}, "atoi": {"$rdi": "const char *STRING"}, "atoll": {"$rdi": "const char *STRING"}, "strtod": {"$rdi": "const char *restrict STRING", "$rsi": "char **restrict TAILPTR"}, "strtof": {"$rdi": "const char *STRING", "$rsi": "char **TAILPTR"}, "strtold": {"$rdi": "const char *STRING", "$rsi": "char **TAILPTR"}, "strtofN": {"$rdi": "const char *STRING", "$rsi": "char **TAILPTR"}, "strtofNx": {"$rdi": "const char *STRING", "$rsi": "char **TAILPTR"}, "wcstod": {"$rdi": "const wchar_t *restrict STRING", "$rsi": "wchar_t **restrict TAILPTR"}, "wcstof": {"$rdi": "const wchar_t *STRING", "$rsi": "wchar_t **TAILPTR"}, "wcstold": {"$rdi": "const wchar_t *STRING", "$rsi": "wchar_t **TAILPTR"}, "wcstofN": {"$rdi": "const wchar_t *STRING", "$rsi": "wchar_t **TAILPTR"}, "wcstofNx": {"$rdi": "const wchar_t *STRING", "$rsi": "wchar_t **TAILPTR"}, "atof": {"$rdi": "const char *STRING"}, "strfromd": {"$rdi": "char *restrict STRING", "$rsi": "size_t SIZE", "$rdx": "const char *restrict FORMAT", "$r10": "double VALUE"}, "strfromf": {"$rdi": "char *restrict STRING", "$rsi": "size_t SIZE", "$rdx": "const char *restrict FORMAT", "$r10": "float VALUE"}, "strfroml": {"$rdi": "char *restrict STRING", "$rsi": "size_t SIZE", "$rdx": "const char *restrict FORMAT", "$r10": "long double VALUE"}, "strfromfN": {"$rdi": "char *restrict STRING", "$rsi": "size_t SIZE", "$rdx": "const char *restrict FORMAT", "$r10": "_FloatN VALUE"}, "strfromfNx": {"$rdi": "char *restrict STRING", "$rsi": "size_t SIZE", "$rdx": "const char *restrict FORMAT", "$r10": "_FloatNx VALUE"}, "ecvt": {"$rdi": "double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG"}, "fcvt": {"$rdi": "double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG"}, "gcvt": {"$rdi": "double VALUE", "$rsi": "int NDIGIT", "$rdx": "char *BUF"}, "qecvt": {"$rdi": "long double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG"}, "qfcvt": {"$rdi": "long double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG"}, "qgcvt": {"$rdi": "long double VALUE", "$rsi": "int NDIGIT", "$rdx": "char *BUF"}, "ecvt_r": {"$rdi": "double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG", "$r8": "char *BUF", "$r9": "size_t LEN"}, "fcvt_r": {"$rdi": "double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG", "$r8": "char *BUF", "$r9": "size_t LEN"}, "qecvt_r": {"$rdi": "long double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG", "$r8": "char *BUF", "$r9": "size_t LEN"}, "qfcvt_r": {"$rdi": "long double VALUE", "$rsi": "int NDIGIT", "$rdx": "int *DECPT", "$r10": "int *NEG", "$r8": "char *BUF", "$r9": "size_t LEN"}, "difftime": {"$rdi": "time_t END", "$rsi": "time_t BEGIN"}, "clock": {"$rdi": "void"}, "times": {"$rdi": "struct tms *BUFFER"}, "time": {"$rdi": "time_t *RESULT"}, "clock_gettime": {"$rdi": "clockid_t CLOCK", "$rsi": "struct timespec *TS"}, "clock_getres": {"$rdi": "clockid_t CLOCK", "$rsi": "struct timespec *RES"}, "gettimeofday": {"$rdi": "struct timeval *TP", "$rsi": "void *TZP"}, "clock_settime": {"$rdi": "clockid_t CLOCK", "$rsi": "const struct timespec *TS"}, "ntp_gettime": {"$rdi": "struct ntptimeval *TPTR"}, "ntp_adjtime": {"$rdi": "struct timex *TPTR"}, "adjtime": {"$rdi": "const struct timeval *DELTA", "$rsi": "struct timeval *OLDDELTA"}, "stime": {"$rdi": "const time_t *NEWTIME"}, "adjtimex": {"$rdi": "struct timex *TIMEX"}, "settimeofday": {"$rdi": "const struct timeval *TP", "$rsi": "const void *TZP"}, "localtime": {"$rdi": "const time_t *TIME"}, "localtime_r": {"$rdi": "const time_t *TIME", "$rsi": "struct tm *RESULTP"}, "gmtime": {"$rdi": "const time_t *TIME"}, "gmtime_r": {"$rdi": "const time_t *TIME", "$rsi": "struct tm *RESULTP"}, "mktime": {"$rdi": "struct tm *BROKENTIME"}, "timelocal": {"$rdi": "struct tm *BROKENTIME"}, "timegm": {"$rdi": "struct tm *BROKENTIME"}, "asctime": {"$rdi": "const struct tm *BROKENTIME"}, "asctime_r": {"$rdi": "const struct tm *BROKENTIME", "$rsi": "char *BUFFER"}, "ctime": {"$rdi": "const time_t *TIME"}, "ctime_r": {"$rdi": "const time_t *TIME", "$rsi": "char *BUFFER"}, "strftime": {"$rdi": "char *S", "$rsi": "size_t SIZE", "$rdx": "const char *TEMPLATE", "$r10": "const struct tm *BROKENTIME"}, "wcsftime": {"$rdi": "wchar_t *S", "$rsi": "size_t SIZE", "$rdx": "const wchar_t *TEMPLATE", "$r10": "const struct tm *BROKENTIME"}, "strptime": {"$rdi": "const char *S", "$rsi": "const char *FMT", "$rdx": "struct tm *TP"}, "getdate": {"$rdi": "const char *STRING"}, "getdate_r": {"$rdi": "const char *STRING", "$rsi": "struct tm *TP"}, "tzset": {"$rdi": "void"}, "setitimer": {"$rdi": "int WHICH", "$rsi": "const struct itimerval *NEW", "$rdx": "struct itimerval *OLD"}, "getitimer": {"$rdi": "int WHICH", "$rsi": "struct itimerval *OLD"}, "alarm": {"$rdi": "unsigned int SECONDS"}, "sleep": {"$rdi": "unsigned int SECONDS"}, "nanosleep": {"$rdi": "const struct timespec *REQUESTED_TIME", "$rsi": "struct timespec *REMAINING"}, "getrusage": {"$rdi": "int PROCESSES", "$rsi": "struct rusage *RUSAGE"}, "getrlimit": {"$rdi": "int RESOURCE", "$rsi": "struct rlimit *RLP"}, "getrlimit64": {"$rdi": "int RESOURCE", "$rsi": "struct rlimit64 *RLP"}, "setrlimit": {"$rdi": "int RESOURCE", "$rsi": "const struct rlimit *RLP"}, "setrlimit64": {"$rdi": "int RESOURCE", "$rsi": "const struct rlimit64 *RLP"}, "ulimit": {"$rdi": "int CMD", "$rsi": "..."}, "vlimit": {"$rdi": "int RESOURCE", "$rsi": "int LIMIT"}, "sched_setscheduler": {"$rdi": "pid_t PID", "$rsi": "int POLICY", "$rdx": "const struct sched_param *PARAM"}, "sched_getscheduler": {"$rdi": "pid_t PID"}, "sched_setparam": {"$rdi": "pid_t PID", "$rsi": "const struct sched_param *PARAM"}, "sched_getparam": {"$rdi": "pid_t PID", "$rsi": "struct sched_param *PARAM"}, "sched_get_priority_min": {"$rdi": "int POLICY"}, "sched_get_priority_max": {"$rdi": "int POLICY"}, "sched_rr_get_interval": {"$rdi": "pid_t PID", "$rsi": "struct timespec *INTERVAL"}, "sched_yield": {"$rdi": "void"}, "getpriority": {"$rdi": "int CLASS", "$rsi": "int ID"}, "setpriority": {"$rdi": "int CLASS", "$rsi": "int ID", "$rdx": "int NICEVAL"}, "nice": {"$rdi": "int INCREMENT"}, "sched_getaffinity": {"$rdi": "pid_t PID", "$rsi": "size_t CPUSETSIZE", "$rdx": "cpu_set_t *CPUSET"}, "sched_setaffinity": {"$rdi": "pid_t PID", "$rsi": "size_t CPUSETSIZE", "$rdx": "const cpu_set_t *CPUSET"}, "getcpu": {"$rdi": "unsigned int *cpu", "$rsi": "unsigned int *node"}, "getpagesize": {"$rdi": "void"}, "get_phys_pages": {"$rdi": "void"}, "get_avphys_pages": {"$rdi": "void"}, "get_nprocs_conf": {"$rdi": "void"}, "get_nprocs": {"$rdi": "void"}, "getloadavg": {"$rdi": "double LOADAVG[]", "$rsi": "int NELEM"}, "longjmp": {"$rdi": "jmp_buf STATE", "$rsi": "int VALUE"}, "sigsetjmp": {"$rdi": "sigjmp_buf STATE", "$rsi": "int SAVESIGS"}, "siglongjmp": {"$rdi": "sigjmp_buf STATE", "$rsi": "int VALUE"}, "getcontext": {"$rdi": "ucontext_t *UCP"}, "makecontext": {"$rdi": "ucontext_t *UCP", "$rsi": "void (*FUNC) (void)", "$rdx": "int ARGC", "$r10": "..."}, "setcontext": {"$rdi": "const ucontext_t *UCP"}, "swapcontext": {"$rdi": "ucontext_t *restrict OUCP", "$rsi": "const ucontext_t *restrict UCP"}, "strsignal": {"$rdi": "int SIGNUM"}, "psignal": {"$rdi": "int SIGNUM", "$rsi": "const char *MESSAGE"}, "sigdescr_np": {"$rdi": "int SIGNUM"}, "sigabbrev_np": {"$rdi": "int SIGNUM"}, "signal": {"$rdi": "int SIGNUM", "$rsi": "sighandler_t ACTION"}, "sysv_signal": {"$rdi": "int SIGNUM", "$rsi": "sighandler_t ACTION"}, "ssignal": {"$rdi": "int SIGNUM", "$rsi": "sighandler_t ACTION"}, "sigaction": {"$rdi": "int SIGNUM", "$rsi": "const struct sigaction *restrict ACTION", "$rdx": "struct sigaction *restrict OLD-ACTION"}, "raise": {"$rdi": "int SIGNUM"}, "gsignal": {"$rdi": "int SIGNUM"}, "kill": {"$rdi": "pid_t PID", "$rsi": "int SIGNUM"}, "tgkill": {"$rdi": "pid_t PID", "$rsi": "pid_t TID", "$rdx": "int SIGNUM"}, "killpg": {"$rdi": "int PGID", "$rsi": "int SIGNUM"}, "sigemptyset": {"$rdi": "sigset_t *SET"}, "sigfillset": {"$rdi": "sigset_t *SET"}, "sigaddset": {"$rdi": "sigset_t *SET", "$rsi": "int SIGNUM"}, "sigdelset": {"$rdi": "sigset_t *SET", "$rsi": "int SIGNUM"}, "sigismember": {"$rdi": "const sigset_t *SET", "$rsi": "int SIGNUM"}, "sigprocmask": {"$rdi": "int HOW", "$rsi": "const sigset_t *restrict SET", "$rdx": "sigset_t *restrict OLDSET"}, "sigpending": {"$rdi": "sigset_t *SET"}, "pause": {"$rdi": "void"}, "sigsuspend": {"$rdi": "const sigset_t *SET"}, "sigaltstack": {"$rdi": "const stack_t *restrict STACK", "$rsi": "stack_t *restrict OLDSTACK"}, "sigstack": {"$rdi": "struct sigstack *STACK", "$rsi": "struct sigstack *OLDSTACK"}, "siginterrupt": {"$rdi": "int SIGNUM", "$rsi": "int FAILFLAG"}, "sigblock": {"$rdi": "int MASK"}, "sigsetmask": {"$rdi": "int MASK"}, "sigpause": {"$rdi": "int MASK"}, "getopt": {"$rdi": "int ARGC", "$rsi": "char *const *ARGV", "$rdx": "const char *OPTIONS"}, "getopt_long": {"$rdi": "int ARGC", "$rsi": "char *const *ARGV", "$rdx": "const char *SHORTOPTS", "$r10": "const struct option *LONGOPTS", "$r8": "int *INDEXPTR"}, "getopt_long_only": {"$rdi": "int ARGC", "$rsi": "char *const *ARGV", "$rdx": "const char *SHORTOPTS", "$r10": "const struct option *LONGOPTS", "$r8": "int *INDEXPTR"}, "argp_parse": {"$rdi": "const struct argp *ARGP", "$rsi": "int ARGC", "$rdx": "char **ARGV", "$r10": "unsigned FLAGS", "$r8": "int *ARG_INDEX", "$r9": "void *INPUT"}, "argp_usage": {"$rdi": "const struct argp_state *STATE"}, "argp_error": {"$rdi": "const struct argp_state *STATE", "$rsi": "const char *FMT", "$rdx": "..."}, "argp_failure": {"$rdi": "const struct argp_state *STATE", "$rsi": "int STATUS", "$rdx": "int ERRNUM", "$r10": "const char *FMT", "$r8": "..."}, "argp_state_help": {"$rdi": "const struct argp_state *STATE", "$rsi": "FILE *STREAM", "$rdx": "unsigned FLAGS"}, "argp_help": {"$rdi": "const struct argp *ARGP", "$rsi": "FILE *STREAM", "$rdx": "unsigned FLAGS", "$r10": "char *NAME"}, "getsubopt": {"$rdi": "char **OPTIONP", "$rsi": "char *const *TOKENS", "$rdx": "char **VALUEP"}, "getenv": {"$rdi": "const char *NAME"}, "secure_getenv": {"$rdi": "const char *NAME"}, "putenv": {"$rdi": "char *STRING"}, "setenv": {"$rdi": "const char *NAME", "$rsi": "const char *VALUE", "$rdx": "int REPLACE"}, "unsetenv": {"$rdi": "const char *NAME"}, "clearenv": {"$rdi": "void"}, "getauxval": {"$rdi": "unsigned long int TYPE"}, "syscall": {"$rdi": "long int SYSNO", "$rsi": "..."}, "exit": {"$rdi": "int STATUS"}, "atexit": {"$rdi": "void (*FUNCTION) (void)"}, "on_exit": {"$rdi": "void (*FUNCTION)(int STATUS", "$rsi": "void *ARG)", "$rdx": "void *ARG"}, "abort": {"$rdi": "void"}, "_exit": {"$rdi": "int STATUS"}, "_Exit": {"$rdi": "int STATUS"}, "system": {"$rdi": "const char *COMMAND"}, "getpid": {"$rdi": "void"}, "getppid": {"$rdi": "void"}, "gettid": {"$rdi": "void"}, "fork": {"$rdi": "void"}, "_Fork": {"$rdi": "void"}, "vfork": {"$rdi": "void"}, "execv": {"$rdi": "const char *FILENAME", "$rsi": "char *const ARGV[]"}, "execl": {"$rdi": "const char *FILENAME", "$rsi": "const char *ARG0", "$rdx": "..."}, "execve": {"$rdi": "const char *FILENAME", "$rsi": "char *const ARGV[]", "$rdx": "char *const ENV[]"}, "fexecve": {"$rdi": "int FD", "$rsi": "char *const ARGV[]", "$rdx": "char *const ENV[]"}, "execle": {"$rdi": "const char *FILENAME", "$rsi": "const char *ARG0", "$rdx": "...", "$r10": "char *const ENV[]"}, "execvp": {"$rdi": "const char *FILENAME", "$rsi": "char *const ARGV[]"}, "execlp": {"$rdi": "const char *FILENAME", "$rsi": "const char *ARG0", "$rdx": "..."}, "waitpid": {"$rdi": "pid_t PID", "$rsi": "int *STATUS-PTR", "$rdx": "int OPTIONS"}, "wait": {"$rdi": "int *STATUS-PTR"}, "wait4": {"$rdi": "pid_t PID", "$rsi": "int *STATUS-PTR", "$rdx": "int OPTIONS", "$r10": "struct rusage *USAGE"}, "wait3": {"$rdi": "int *STATUS-PTR", "$rsi": "int OPTIONS", "$rdx": "struct rusage *USAGE"}, "semctl": {"$rdi": "int SEMID", "$rsi": "int SEMNUM", "$rdx": "int CMD"}, "semget": {"$rdi": "key_t KEY", "$rsi": "int NSEMS", "$rdx": "int SEMFLG"}, "semop": {"$rdi": "int SEMID", "$rsi": "struct sembuf *SOPS", "$rdx": "size_t NSOPS"}, "semtimedop": {"$rdi": "int SEMID", "$rsi": "struct sembuf *SOPS", "$rdx": "size_t NSOPS", "$r10": "const struct timespec *TIMEOUT"}, "sem_init": {"$rdi": "sem_t *SEM", "$rsi": "int PSHARED", "$rdx": "unsigned int VALUE"}, "sem_destroy": {"$rdi": "sem_t *SEM"}, "*sem_open": {"$rdi": "const char *NAME", "$rsi": "int OFLAG", "$rdx": "..."}, "sem_close": {"$rdi": "sem_t *SEM"}, "sem_unlink": {"$rdi": "const char *NAME"}, "sem_wait": {"$rdi": "sem_t *SEM"}, "sem_timedwait": {"$rdi": "sem_t *SEM", "$rsi": "const struct timespec *ABSTIME"}, "sem_trywait": {"$rdi": "sem_t *SEM"}, "sem_post": {"$rdi": "sem_t *SEM"}, "sem_getvalue": {"$rdi": "sem_t *SEM", "$rsi": "int *SVAL"}, "ctermid": {"$rdi": "char *STRING"}, "setsid": {"$rdi": "void"}, "getsid": {"$rdi": "pid_t PID"}, "getpgrp": {"$rdi": "void"}, "getpgid": {"$rdi": "pid_t PID"}, "setpgid": {"$rdi": "pid_t PID", "$rsi": "pid_t PGID"}, "setpgrp": {"$rdi": "pid_t PID", "$rsi": "pid_t PGID"}, "tcgetpgrp": {"$rdi": "int FILEDES"}, "tcsetpgrp": {"$rdi": "int FILEDES", "$rsi": "pid_t PGID"}, "tcgetsid": {"$rdi": "int FILDES"}, "getuid": {"$rdi": "void"}, "getgid": {"$rdi": "void"}, "geteuid": {"$rdi": "void"}, "getegid": {"$rdi": "void"}, "getgroups": {"$rdi": "int COUNT", "$rsi": "gid_t *GROUPS"}, "seteuid": {"$rdi": "uid_t NEWEUID"}, "setuid": {"$rdi": "uid_t NEWUID"}, "setreuid": {"$rdi": "uid_t RUID", "$rsi": "uid_t EUID"}, "setegid": {"$rdi": "gid_t NEWGID"}, "setgid": {"$rdi": "gid_t NEWGID"}, "setregid": {"$rdi": "gid_t RGID", "$rsi": "gid_t EGID"}, "setgroups": {"$rdi": "size_t COUNT", "$rsi": "const gid_t *GROUPS"}, "initgroups": {"$rdi": "const char *USER", "$rsi": "gid_t GROUP"}, "getgrouplist": {"$rdi": "const char *USER", "$rsi": "gid_t GROUP", "$rdx": "gid_t *GROUPS", "$r10": "int *NGROUPS"}, "getlogin": {"$rdi": "void"}, "cuserid": {"$rdi": "char *STRING"}, "setutent": {"$rdi": "void"}, "getutent": {"$rdi": "void"}, "endutent": {"$rdi": "void"}, "getutid": {"$rdi": "const struct utmp *ID"}, "getutline": {"$rdi": "const struct utmp *LINE"}, "pututline": {"$rdi": "const struct utmp *UTMP"}, "getutent_r": {"$rdi": "struct utmp *BUFFER", "$rsi": "struct utmp **RESULT"}, "getutid_r": {"$rdi": "const struct utmp *ID", "$rsi": "struct utmp *BUFFER", "$rdx": "struct utmp **RESULT"}, "getutline_r": {"$rdi": "const struct utmp *LINE", "$rsi": "struct utmp *BUFFER", "$rdx": "struct utmp **RESULT"}, "utmpname": {"$rdi": "const char *FILE"}, "updwtmp": {"$rdi": "const char *WTMP_FILE", "$rsi": "const struct utmp *UTMP"}, "setutxent": {"$rdi": "void"}, "getutxent": {"$rdi": "void"}, "endutxent": {"$rdi": "void"}, "getutxid": {"$rdi": "const struct utmpx *ID"}, "getutxline": {"$rdi": "const struct utmpx *LINE"}, "pututxline": {"$rdi": "const struct utmpx *UTMP"}, "utmpxname": {"$rdi": "const char *FILE"}, "getutmp": {"$rdi": "const struct utmpx *UTMPX", "$rsi": "struct utmp *UTMP"}, "getutmpx": {"$rdi": "const struct utmp *UTMP", "$rsi": "struct utmpx *UTMPX"}, "login_tty": {"$rdi": "int FILEDES"}, "login": {"$rdi": "const struct utmp *ENTRY"}, "logout": {"$rdi": "const char *UT_LINE"}, "logwtmp": {"$rdi": "const char *UT_LINE", "$rsi": "const char *UT_NAME", "$rdx": "const char *UT_HOST"}, "getpwuid": {"$rdi": "uid_t UID"}, "getpwuid_r": {"$rdi": "uid_t UID", "$rsi": "struct passwd *RESULT_BUF", "$rdx": "char *BUFFER", "$r10": "size_t BUFLEN", "$r8": "struct passwd **RESULT"}, "getpwnam": {"$rdi": "const char *NAME"}, "getpwnam_r": {"$rdi": ""}, "fgetpwent": {"$rdi": "FILE *STREAM"}, "fgetpwent_r": {"$rdi": "FILE *STREAM", "$rsi": "struct passwd *RESULT_BUF", "$rdx": "char *BUFFER", "$r10": "size_t BUFLEN", "$r8": "struct passwd **RESULT"}, "setpwent": {"$rdi": "void"}, "getpwent": {"$rdi": "void"}, "getpwent_r": {"$rdi": "struct passwd *RESULT_BUF", "$rsi": "char *BUFFER", "$rdx": "size_t BUFLEN", "$r10": "struct passwd **RESULT"}, "endpwent": {"$rdi": "void"}, "putpwent": {"$rdi": "const struct passwd *P", "$rsi": "FILE *STREAM"}, "getgrgid": {"$rdi": "gid_t GID"}, "getgrgid_r": {"$rdi": "gid_t GID", "$rsi": "struct group *RESULT_BUF", "$rdx": "char *BUFFER", "$r10": "size_t BUFLEN", "$r8": "struct group **RESULT"}, "getgrnam": {"$rdi": "const char *NAME"}, "getgrnam_r": {"$rdi": ""}, "fgetgrent": {"$rdi": "FILE *STREAM"}, "fgetgrent_r": {"$rdi": "FILE *STREAM", "$rsi": "struct group *RESULT_BUF", "$rdx": "char *BUFFER", "$r10": "size_t BUFLEN", "$r8": "struct group **RESULT"}, "setgrent": {"$rdi": "void"}, "getgrent": {"$rdi": "void"}, "getgrent_r": {"$rdi": "struct group *RESULT_BUF", "$rsi": "char *BUFFER", "$rdx": "size_t BUFLEN", "$r10": "struct group **RESULT"}, "endgrent": {"$rdi": "void"}, "setnetgrent": {"$rdi": "const char *NETGROUP"}, "getnetgrent": {"$rdi": "char **HOSTP", "$rsi": "char **USERP", "$rdx": "char **DOMAINP"}, "getnetgrent_r": {"$rdi": "char **HOSTP", "$rsi": "char **USERP", "$rdx": "char **DOMAINP", "$r10": "char *BUFFER", "$r8": "size_t BUFLEN"}, "endnetgrent": {"$rdi": "void"}, "innetgr": {"$rdi": "const char *NETGROUP", "$rsi": "const char *HOST", "$rdx": "const char *USER", "$r10": "const char *DOMAIN"}, "gethostname": {"$rdi": "char *NAME", "$rsi": "size_t SIZE"}, "sethostname": {"$rdi": "const char *NAME", "$rsi": "size_t LENGTH"}, "getdomainnname": {"$rdi": "char *NAME", "$rsi": "size_t LENGTH"}, "setdomainname": {"$rdi": "const char *NAME", "$rsi": "size_t LENGTH"}, "gethostid": {"$rdi": "void"}, "sethostid": {"$rdi": "long int ID"}, "uname": {"$rdi": "struct utsname *INFO"}, "setfsent": {"$rdi": "void"}, "endfsent": {"$rdi": "void"}, "getfsent": {"$rdi": "void"}, "getfsspec": {"$rdi": "const char *NAME"}, "getfsfile": {"$rdi": "const char *NAME"}, "setmntent": {"$rdi": "const char *FILE", "$rsi": "const char *MODE"}, "endmntent": {"$rdi": "FILE *STREAM"}, "getmntent": {"$rdi": "FILE *STREAM"}, "getmntent_r": {"$rdi": "FILE *STREAM", "$rsi": "struct mntent *RESULT", "$rdx": "char *BUFFER", "$r10": "int BUFSIZE"}, "addmntent": {"$rdi": "FILE *STREAM", "$rsi": "const struct mntent *MNT"}, "hasmntopt": {"$rdi": "const struct mntent *MNT", "$rsi": "const char *OPT"}, "mount": {"$rdi": ""}, "umount2": {"$rdi": "const char *FILE", "$rsi": "int FLAGS"}, "umount": {"$rdi": "const char *FILE"}, "sysconf": {"$rdi": "int PARAMETER"}, "pathconf": {"$rdi": "const char *FILENAME", "$rsi": "int PARAMETER"}, "fpathconf": {"$rdi": "int FILEDES", "$rsi": "int PARAMETER"}, "confstr": {"$rdi": "int PARAMETER", "$rsi": "char *BUF", "$rdx": "size_t LEN"}, "crypt": {"$rdi": "const char *PHRASE", "$rsi": "const char *SALT"}, "crypt_r": {"$rdi": "const char *PHRASE", "$rsi": "const char *SALT", "$rdx": "struct crypt_data *DATA"}, "getentropy": {"$rdi": "void *BUFFER", "$rsi": "size_t LENGTH"}, "getrandom": {"$rdi": "void *BUFFER", "$rsi": "size_t LENGTH", "$rdx": "unsigned int FLAGS"}, "backtrace": {"$rdi": "void **BUFFER", "$rsi": "int SIZE"}, "backtrace_symbols": {"$rdi": "void *const *BUFFER", "$rsi": "int SIZE"}, "backtrace_symbols_fd": {"$rdi": "void *const *BUFFER", "$rsi": "int SIZE", "$rdx": "int FD"}, "thrd_create": {"$rdi": "thrd_t *THR", "$rsi": "thrd_start_t FUNC", "$rdx": "void *ARG"}, "thrd_current": {"$rdi": "void"}, "thrd_equal": {"$rdi": "thrd_t LHS", "$rsi": "thrd_t RHS"}, "thrd_sleep": {"$rdi": "const struct timespec *TIME_POINT", "$rsi": "struct timespec *REMAINING"}, "thrd_yield": {"$rdi": "void"}, "thrd_exit": {"$rdi": "int RES"}, "thrd_detach": {"$rdi": "thrd_t THR"}, "thrd_join": {"$rdi": "thrd_t THR", "$rsi": "int *RES"}, "call_once": {"$rdi": "once_flag *FLAG", "$rsi": "void (*FUNC) (void)"}, "mtx_init": {"$rdi": "mtx_t *MUTEX", "$rsi": "int TYPE"}, "mtx_lock": {"$rdi": "mtx_t *MUTEX"}, "mtx_timedlock": {"$rdi": "mtx_t *restrict MUTEX", "$rsi": "const struct timespec *restrict TIME_POINT"}, "mtx_trylock": {"$rdi": "mtx_t *MUTEX"}, "mtx_unlock": {"$rdi": "mtx_t *MUTEX"}, "mtx_destroy": {"$rdi": "mtx_t *MUTEX"}, "cnd_init": {"$rdi": "cnd_t *COND"}, "cnd_signal": {"$rdi": "cnd_t *COND"}, "cnd_broadcast": {"$rdi": "cnd_t *COND"}, "cnd_wait": {"$rdi": "cnd_t *COND", "$rsi": "mtx_t *MUTEX"}, "cnd_timedwait": {"$rdi": "cnd_t *restrict COND", "$rsi": "mtx_t *restrict MUTEX", "$rdx": "const struct timespec *restrict TIME_POINT"}, "cnd_destroy": {"$rdi": "cnd_t *COND"}, "tss_create": {"$rdi": "tss_t *TSS_KEY", "$rsi": "tss_dtor_t DESTRUCTOR"}, "tss_set": {"$rdi": "tss_t TSS_KEY", "$rsi": "void *VAL"}, "tss_get": {"$rdi": "tss_t TSS_KEY"}, "tss_delete": {"$rdi": "tss_t TSS_KEY"}, "pthread_key_create": {"$rdi": "pthread_key_t *KEY", "$rsi": "void (*DESTRUCTOR)(void*)"}, "pthread_key_delete": {"$rdi": "pthread_key_t KEY"}, "*pthread_getspecific": {"$rdi": "pthread_key_t KEY"}, "pthread_setspecific": {"$rdi": "pthread_key_t KEY", "$rsi": "const void *VALUE"}, "pthread_getattr_default_np": {"$rdi": "pthread_attr_t *ATTR"}, "pthread_setattr_default_np": {"$rdi": "pthread_attr_t *ATTR"}, "pthread_attr_setsigmask_np": {"$rdi": "pthread_attr_t *ATTR", "$rsi": "const sigset_t *SIGMASK"}, "pthread_attr_getsigmask_np": {"$rdi": "const pthread_attr_t *ATTR", "$rsi": "sigset_t *SIGMASK"}, "sem_clockwait": {"$rdi": "sem_t *SEM", "$rsi": "clockid_t CLOCKID", "$rdx": "const struct timespec *ABSTIME"}, "pthread_cond_clockwait": {"$rdi": ""}, "pthread_rwlock_clockrdlock": {"$rdi": "pthread_rwlock_t *RWLOCK", "$rsi": "clockid_t CLOCKID", "$rdx": "const struct timespec *ABSTIME"}, "pthread_rwlock_clockwrlock": {"$rdi": "pthread_rwlock_t *RWLOCK", "$rsi": "clockid_t CLOCKID", "$rdx": "const struct timespec *ABSTIME"}, "pthread_tryjoin_np": {"$rdi": "pthread_t *THREAD", "$rsi": "void **THREAD_RETURN"}, "pthread_timedjoin_np": {"$rdi": "pthread_t *THREAD", "$rsi": "void **THREAD_RETURN", "$rdx": "const struct timespec *ABSTIME"}, "pthread_clockjoin_np": {"$rdi": ""}, "dlinfo": {"$rdi": "void *HANDLE", "$rsi": "int REQUEST", "$rdx": "void *ARG"}, "_dl_find_object": {"$rdi": "void *ADDRESS", "$rsi": "struct dl_find_object *RESULT"}, "__ppc_get_timebase": {"$rdi": "void"}, "__ppc_get_timebase_freq": {"$rdi": "void"}, "__ppc_yield": {"$rdi": "void"}, "__ppc_mdoio": {"$rdi": "void"}, "__ppc_mdoom": {"$rdi": "void"}, "__ppc_set_ppr_med": {"$rdi": "void"}, "__ppc_set_ppr_low": {"$rdi": "void"}, "__ppc_set_ppr_med_low": {"$rdi": "void"}, "__ppc_set_ppr_very_low": {"$rdi": "void"}, "__ppc_set_ppr_med_high": {"$rdi": "void"}, "__riscv_flush_icache": {"$rdi": "void *START", "$rsi": "void *END", "$rdx": "unsigned long int FLAGS"}, "__x86_get_cpuid_feature_leaf": {"$rdi": "unsigned int LEAF"}} diff --git a/scripts/remote.py b/scripts/remote.py index aa869e6..e1284d2 100644 --- a/scripts/remote.py +++ b/scripts/remote.py @@ -4,48 +4,42 @@ gdb -ex 'source /path/to/gef-extras/scripts/remote.py' -ex rpyc-remote -ex quit """ +__AUTHOR__ = "hugsy" +__VERSION__ = 0.3 -import contextlib -import sys -from typing import TYPE_CHECKING, Any +import argparse import gdb + import rpyc +from typing import TYPE_CHECKING, Any, List + if TYPE_CHECKING: + import rpyc.core.protocol + import rpyc.utils.server from . import * from . import gdb -__AUTHOR__ = "hugsy" -__VERSION__ = 0.2 +RPYC_DEFAULT_HOST = "0.0.0.0" +RPYC_DEFAULT_PORT = 12345 -class GefRemoteService(rpyc.Service): - """The RPYC service for interacting with GEF""" +class RemoteDebugService(rpyc.Service): + def on_connect(self, conn: rpyc.core.protocol.Connection): + ok(f"connect open: {str(conn)}") + return - def exposed_gdb(self, cmd: str) -> str: - return gdb.execute(cmd, to_string=True) or "" + def on_disconnect(self, conn: rpyc.core.protocol.Connection): + ok(f"connection closed: {str(conn)}") + return - def exposed_gef(self, cmd: str) -> Any: + def exposed_eval(self, cmd): return eval(cmd) + exposed_gdb = gdb -class DisableStreamBufferContext(contextlib.ContextDecorator): - """Because stream buffering doesn't play well with rpyc""" - - def __enter__(self) -> None: - info("Backuping context") - self.old_stream_buffer = gef.ui.stream_buffer - self.old_redirect_fd = gef.ui.redirect_fd - gef.ui.stream_buffer = sys.stdout - gef.ui.redirect_fd = None - return self - - def __exit__(self, _) -> bool: - info("Restoring context") - gef.ui.stream_buffer = self.old_stream_buffer - gef.ui.redirect_fd = self.old_redirect_fd - return False + exposed_gef = gef @register @@ -54,23 +48,28 @@ class GefRemoteCommand(GenericCommand): _cmdline_ = "rpyc-remote" _aliases_ = [] - _syntax_ = f"{_cmdline_:s}" - _example_ = f"{_cmdline_:s}" + _syntax_ = f"{_cmdline_:s} --port=[PORT]" + _example_ = f"{_cmdline_:s} --port=1234" def __init__(self) -> None: super().__init__(prefix=False) - self["host"] = ("0.0.0.0", "The interface to listen on") - self["port"] = (12345, "The port to listen on") + self["host"] = (RPYC_DEFAULT_HOST, "The interface to listen on") + self["port"] = (RPYC_DEFAULT_PORT, "The port to listen on") return - def do_invoke(self, _) -> None: - with DisableStreamBufferContext(): - info( - f"Listening on {self['host']}:{self['port']}, press Ctrl+C to stop") - server = rpyc.utils.server.ThreadedServer( - GefRemoteService, port=12345) - try: - server.start() - except KeyboardInterrupt: - info("Stopping") - server.close() + def do_invoke(self, _: List[str]) -> None: + old_value = gef.config["gef.buffer"] + if gef.config["gef.buffer"]: + gef.config["gef.buffer"] = False + warn(f"TTY buffer must be disable for {self._cmdline_} to work") + + info(f"RPYC service listening on tcp/{self['host']}:{self['port']}") + svc = rpyc.utils.server.OneShotServer( + RemoteDebugService, + port=self["port"], + protocol_config={ + "allow_public_attrs": True, + }, + ) + svc.start() + gef.config["gef.buffer"] = old_value diff --git a/scripts/windbg.py b/scripts/windbg.py index 4b66e2b..8538acd 100644 --- a/scripts/windbg.py +++ b/scripts/windbg.py @@ -1,5 +1,5 @@ __AUTHOR__ = "hugsy" -__VERSION__ = 0.2 +__VERSION__ = 0.3 from typing import TYPE_CHECKING, Callable, List @@ -40,6 +40,7 @@ def stop(self): @register class WindbgSxeCommand(GenericCommand): """WinDBG compatibility layer: sxe (set-exception-enable): break on loading libraries.""" + _cmdline_ = "sxe" _syntax_ = f"{_cmdline_} [ld,ud]:module" _example_ = f"{_cmdline_} ld:mylib.so" @@ -69,7 +70,9 @@ def do_invoke(self, argv): return -def windbg_execute_until(cnt: int, cmd: str, stop_condition: Callable[[Instruction], bool]): +def windbg_execute_until( + cnt: int, cmd: str, stop_condition: Callable[[Instruction], bool] +): while cnt: cnt -= 1 gef.config["context.enable"] = False @@ -84,12 +87,13 @@ def windbg_execute_until(cnt: int, cmd: str, stop_condition: Callable[[Instructi @register class WindbgTcCommand(GenericCommand): """WinDBG compatibility layer: tc - trace until next call.""" + _cmdline_ = "tc" _syntax_ = f"{_cmdline_} [COUNT]" @only_if_gdb_running def do_invoke(self, argv): - cnt = int(argv[0]) if len(argv) else 0xffffffffffffffff + cnt = int(argv[0]) if len(argv) else 0xFFFFFFFFFFFFFFFF windbg_execute_until(cnt, "stepi", gef.arch.is_call) gdb.execute("context") return @@ -98,12 +102,13 @@ def do_invoke(self, argv): @register class WindbgPcCommand(GenericCommand): """WinDBG compatibility layer: pc - run until next call.""" + _cmdline_ = "pc" _syntax_ = f"{_cmdline_} [COUNT]" @only_if_gdb_running def do_invoke(self, argv): - cnt = int(argv[0]) if len(argv) else 0xffffffffffffffff + cnt = int(argv[0]) if len(argv) else 0xFFFFFFFFFFFFFFFF windbg_execute_until(cnt, "nexti", gef.arch.is_call) gdb.execute("context") return @@ -112,12 +117,13 @@ def do_invoke(self, argv): @register class WindbgTtCommand(GenericCommand): """WinDBG compatibility layer: tt - trace until next return.""" + _cmdline_ = "tt" _syntax_ = f"{_cmdline_} [COUNT]" @only_if_gdb_running def do_invoke(self, argv): - cnt = int(argv[0]) if len(argv) else 0xffffffffffffffff + cnt = int(argv[0]) if len(argv) else 0xFFFFFFFFFFFFFFFF windbg_execute_until(cnt, "stepi", gef.arch.is_ret) gdb.execute("context") return @@ -126,12 +132,13 @@ def do_invoke(self, argv): @register class WindbgPtCommand(GenericCommand): """WinDBG compatibility layer: pt - run until next return.""" + _cmdline_ = "pt" _syntax_ = f"{_cmdline_} [COUNT]" @only_if_gdb_running def do_invoke(self, argv): - cnt = int(argv[0]) if len(argv) else 0xffffffffffffffff + cnt = int(argv[0]) if len(argv) else 0xFFFFFFFFFFFFFFFF windbg_execute_until(cnt, "nexti", gef.arch.is_ret) gdb.execute("context") return @@ -140,12 +147,13 @@ def do_invoke(self, argv): @register class WindbgPtcCommand(GenericCommand): """WinDBG compatibility layer: ptc - run until next call or return.""" + _cmdline_ = "ptc" _syntax_ = f"{_cmdline_} [COUNT]" @only_if_gdb_running def do_invoke(self, argv): - cnt = int(argv[0]) if len(argv) else 0xffffffffffffffff + cnt = int(argv[0]) if len(argv) else 0xFFFFFFFFFFFFFFFF def fn(x) -> bool: return gef.arch.is_ret(x) or gef.arch.is_call(x) @@ -158,6 +166,7 @@ def fn(x) -> bool: @register class WindbgHhCommand(GenericCommand): """WinDBG compatibility layer: hh - open help in web browser.""" + _cmdline_ = "hh" _syntax_ = f"{_cmdline_}" @@ -165,16 +174,16 @@ def do_invoke(self, argv): url = GEF_DOCS_URL if len(argv): url += "search.html?q={}".format(argv[0]) - subprocess.Popen(["xdg-open", url], - cwd="/", - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT) + subprocess.Popen( + ["xdg-open", url], cwd="/", stdout=subprocess.PIPE, stderr=subprocess.STDOUT + ) return @register class WindbgGoCommand(GenericCommand): """WinDBG compatibility layer: g - go.""" + _cmdline_ = "g" _syntax_ = _cmdline_ @@ -189,6 +198,7 @@ def do_invoke(self, argv): @register class WindbgUCommand(GenericCommand): """WinDBG compatibility layer: u - disassemble.""" + _cmdline_ = "u" _syntax_ = _cmdline_ @@ -219,6 +229,7 @@ def do_invoke(self, argv: List[str]): @register class WindbgXCommand(GenericCommand): """WinDBG compatibility layer: x - search symbol.""" + _cmdline_ = "xs" _syntax_ = "{:s} REGEX".format(_cmdline_) @@ -243,6 +254,7 @@ def do_invoke(self, argv): @register class WindbgRCommand(GenericCommand): """WinDBG compatibility layer: r - register info""" + _cmdline_ = "r" _syntax_ = f"{_cmdline_} [REGISTER[=VALUE]]" @@ -252,12 +264,11 @@ def print_regs(self, reg_list, width=16): def chunks(l, n): for ii in range(0, len(l), n): - yield l[ii:ii + n] + yield l[ii : ii + n] def print_reg(reg, width=16): fmt = f"%s=%0{width}x".format() - regval = gef.arch.register(f"${reg}") & ( - (1 << (gef.arch.ptrsize * 8)) - 1) + regval = gef.arch.register(f"${reg}") & ((1 << (gef.arch.ptrsize * 8)) - 1) gef_print(fmt % (reg.rjust(max_reg_len), regval), end="") for regs in chunks(reg_list, n): @@ -273,36 +284,39 @@ def print_reg(reg, width=16): gef_print() def arch_reg_width(self): - if get_arch().startswith("i386:x86-64"): + if gef.arch.arch.startswith("i386:x86-64"): return 3 - if get_arch().startswith("i386"): + if gef.arch.arch.startswith("i386"): return 6 - if get_arch().startswith("aarch64"): + if gef.arch.arch.startswith("aarch64"): return 4 raise NotImplementedError def print_gprs(self): gprs = None - if get_arch() == "i386": + if gef.arch.arch == "i386": # eax=00473dc8 ebx=00622000 ecx=00000000 edx=a0b086dc esi=00a40620 edi=00a44890 # eip=00461003 esp=005bf8c8 ebp=005bf8c8 gprs = [ - 'eax', 'ebx', 'ecx', - 'edx', 'esi', 'edi', - 'eip', 'esp', 'ebp', + "eax", + "ebx", + "ecx", + "edx", + "esi", + "edi", + "eip", + "esp", + "ebp", ] self.print_regs(gprs, 8) # cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=0000020 - segregs = [ - 'cs', 'ss', 'ds', - 'es', 'fs', 'gs' - ] + segregs = ["cs", "ss", "ds", "es", "fs", "gs"] self.print_regs(segregs, 4) return - elif get_arch().startswith("i386:x86-64"): + elif gef.arch.arch.startswith("i386:x86-64"): # rax=0000000000000000 rbx=000000e62e50b000 rcx=00007ffb4763c564 # rdx=0000000000000000 rsi=00007ffb476cd4c0 rdi=0000000000000010 # rip=00007ffb4767121c rsp=000000e62e28f140 rbp=0000000000000000 @@ -310,24 +324,32 @@ def print_gprs(self): # r11=0000000000000246 r12=0000000000000001 r13=0000000000000000 # r14=00007ffb476ccd90 r15=0000027685520000 gprs = [ - 'rax', 'rbx', 'rcx', - 'rdx', 'rsi', 'rdi', - 'rip', 'rsp', 'rbp', - 'r8', 'r9', 'r10', - 'r11', 'r12', 'r13', - 'r14', 'r15' + "rax", + "rbx", + "rcx", + "rdx", + "rsi", + "rdi", + "rip", + "rsp", + "rbp", + "r8", + "r9", + "r10", + "r11", + "r12", + "r13", + "r14", + "r15", ] self.print_regs(gprs) # cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202 - segregs = [ - 'cs', 'ss', 'ds', - 'es', 'fs', 'gs' - ] + segregs = ["cs", "ss", "ds", "es", "fs", "gs"] self.print_regs(segregs, 4) return - elif get_arch().startswith('aarch64'): + elif gef.arch.arch.startswith("aarch64"): # x0=0000000000000078 x1=000002037b0069e0 x2=0000000000000010 x3=000000293a8ff9f0 # x4=000000293a8ffb90 x5=000000293a8ff9eb x6=0000000000000000 x7=0000000000000000 # x8=0000000000000072 x9=0000000000000000 x10=0000000000000000 x11=ffffffffff817aa9 @@ -338,15 +360,39 @@ def print_gprs(self): # x28=0000000000000000 fp=000000293a8ffc10 lr=00007ffea80f7388 sp=000000293a8ff9e0 # pc=00007ffea80e30f4 psr=60000000 -ZC- EL0 gprs = [ - 'x0', 'x1', 'x2', 'x3', - 'x4', 'x5', 'x6', 'x7', - 'x8', 'x9', 'x10', 'x11', - 'x12', 'x13', 'x14', 'x15', - 'x16', 'x17', 'x18', 'x19', - 'x20', 'x21', 'x22', 'x23', - 'x24', 'x25', 'x26', 'x27', - 'x28', 'fp', 'lr', 'sp', - 'pc' + "x0", + "x1", + "x2", + "x3", + "x4", + "x5", + "x6", + "x7", + "x8", + "x9", + "x10", + "x11", + "x12", + "x13", + "x14", + "x15", + "x16", + "x17", + "x18", + "x19", + "x20", + "x21", + "x22", + "x23", + "x24", + "x25", + "x26", + "x27", + "x28", + "fp", + "lr", + "sp", + "pc", ] self.print_regs(gprs) return @@ -374,7 +420,7 @@ def do_invoke(self, argv): def __windbg_prompt__(current_prompt: Callable) -> str: """WinDBG prompt function.""" - p = "0:000 ➤ " + p = "0:000 ➤ " if gef.config["gef.disable_color"] is True: return p @@ -385,8 +431,10 @@ def __windbg_prompt__(current_prompt: Callable) -> str: def __default_prompt__(x): - if gef.config["gef.use-windbg-prompt"] is False \ - or gef.config["gef.readline_compat"] is True: + if ( + gef.config["gef.use-windbg-prompt"] is False + or gef.config["gef.readline_compat"] is True + ): return __gef_prompt__(x) return __windbg_prompt__(x) @@ -394,7 +442,8 @@ def __default_prompt__(x): # Prompt gef.config["gef.use-windbg-prompt"] = GefSetting( - False, description="Use WinDBG like prompt") + False, description="Use WinDBG like prompt" +) gdb.prompt_hook = __default_prompt__ # Aliases diff --git a/structs/elf64_t.py b/structs/elf64_t.py index 8e090f5..c5cc7cb 100644 --- a/structs/elf64_t.py +++ b/structs/elf64_t.py @@ -16,7 +16,6 @@ class elf64_t(ct.Structure): - _fields_ = [ ("ei_magic", ct.c_char * 4), # ELF identification ("ei_class", ct.c_uint8),