// File: /workspace/github_c_makefile_star2_O0/atomlang[P]atomlang/src/pk_core.c
// Function: initializeCore
void initializeCore(PKVM* vm) {

#define INITIALIZE_BUILTIN_FN(name, fn, argc)                        \
  initializeBuiltinFN(vm, &vm->builtins[vm->builtins_count++], name, \
                      (int)strlen(name), argc, fn, DOCSTRING(fn));

#define MODULE_ADD_FN(module, name, fn, argc) \
  moduleAddFunctionInternal(vm, module, name, fn, argc, DOCSTRING(fn))

  // Initialize builtin functions.
  INITIALIZE_BUILTIN_FN("type_name",   coreTypeName,   1);

  // TODO: Add is keyword with modules for builtin types.
  // ex: val is Num; val is null; val is List; val is Range
  //     List.append(l, e) # List is implicitly imported core module.
  //     String.lower(s)

  INITIALIZE_BUILTIN_FN("help",        coreHelp,      -1);
  INITIALIZE_BUILTIN_FN("assert",      coreAssert,    -1);
  INITIALIZE_BUILTIN_FN("bin",         coreBin,        1);
  INITIALIZE_BUILTIN_FN("hex",         coreHex,        1);
  INITIALIZE_BUILTIN_FN("yield",       coreYield,     -1);
  INITIALIZE_BUILTIN_FN("to_string",   coreToString,   1);
  INITIALIZE_BUILTIN_FN("print",       corePrint,     -1);
  INITIALIZE_BUILTIN_FN("input",       coreInput,     -1);
  INITIALIZE_BUILTIN_FN("exit",        coreExit,      -1);

  // String functions.
  INITIALIZE_BUILTIN_FN("str_sub",     coreStrSub,     3);
  INITIALIZE_BUILTIN_FN("str_chr",     coreStrChr,     1);
  INITIALIZE_BUILTIN_FN("str_ord",     coreStrOrd,     1);

  // List functions.
  INITIALIZE_BUILTIN_FN("list_append", coreListAppend, 2);

  // Map functions.
  INITIALIZE_BUILTIN_FN("map_remove",  coreMapRemove,  2);

  // Core Modules /////////////////////////////////////////////////////////////

  Script* lang = newModuleInternal(vm, "lang");
  MODULE_ADD_FN(lang, "clock", stdLangClock,  0);
  MODULE_ADD_FN(lang, "gc",    stdLangGC,     0);
  MODULE_ADD_FN(lang, "disas", stdLangDisas,  1);
  MODULE_ADD_FN(lang, "write", stdLangWrite, -1);
#ifdef DEBUG
  MODULE_ADD_FN(lang, "debug_break", stdLangDebugBreak, 0);
#endif

  Script* math = newModuleInternal(vm, "math");
  MODULE_ADD_FN(math, "floor", stdMathFloor,       1);
  MODULE_ADD_FN(math, "ceil",  stdMathCeil,        1);
  MODULE_ADD_FN(math, "pow",   stdMathPow,         2);
  MODULE_ADD_FN(math, "sqrt",  stdMathSqrt,        1);
  MODULE_ADD_FN(math, "abs",   stdMathAbs,         1);
  MODULE_ADD_FN(math, "sign",  stdMathSign,        1);
  MODULE_ADD_FN(math, "hash",  stdMathHash,        1);
  MODULE_ADD_FN(math, "sin",   stdMathSine,        1);
  MODULE_ADD_FN(math, "cos",   stdMathCosine,      1);
  MODULE_ADD_FN(math, "tan",   stdMathTangent,     1);
  MODULE_ADD_FN(math, "sinh",  stdMathSinh,        1);
  MODULE_ADD_FN(math, "cosh",  stdMathCosh,        1);
  MODULE_ADD_FN(math, "tanh",  stdMathTanh,        1);
  MODULE_ADD_FN(math, "asin",  stdMathArcSine,     1);
  MODULE_ADD_FN(math, "acos",  stdMathArcCosine,   1);
  MODULE_ADD_FN(math, "atan",  stdMathArcTangent,  1);
  MODULE_ADD_FN(math, "log10", stdMathLog10,       1);
  MODULE_ADD_FN(math, "round", stdMathRound,       1);

  // Note that currently it's mutable (since it's a global variable, not
  // constant and atomlang doesn't support constant) so the user shouldn't
  // modify the PI, like in python.
  // TODO: at varSetAttrib() we can detect if the user try to change an
  // attribute of a core module and we can throw an error.
  moduleAddGlobalInternal(vm, math, "PI", VAR_NUM(M_PI));

  Script* fiber = newModuleInternal(vm, "Fiber");
  MODULE_ADD_FN(fiber, "new",      stdFiberNew,     1);
  MODULE_ADD_FN(fiber, "run",      stdFiberRun,    -1);
  MODULE_ADD_FN(fiber, "resume",   stdFiberResume, -1);

}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x17180(%rip), %rax     # 0x33a90
leaq 0xf3be(%rip), %rdx      # 0x2bcd5
movl $0x9, %ecx
movl $0x1, %r8d
leaq 0xa47(%rip), %r9        # 0x1d370
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x1712f(%rip), %rax     # 0x33a98
leaq 0xf36f(%rip), %rdx      # 0x2bcdf
movl $0x4, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq 0xaae(%rip), %r9        # 0x1d430
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x170de(%rip), %rax     # 0x33aa0
leaq 0xf31b(%rip), %rdx      # 0x2bce4
movl $0x6, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq 0xc95(%rip), %r9        # 0x1d670
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x1708d(%rip), %rax     # 0x33aa8
leaq 0xf2c9(%rip), %rdx      # 0x2bceb
movl $0x3, %ecx
movl $0x1, %r8d
leaq 0xeec(%rip), %r9        # 0x1d920
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x1703c(%rip), %rax     # 0x33ab0
leaq 0xf274(%rip), %rdx      # 0x2bcef
movl $0x3, %ecx
movl $0x1, %r8d
leaq 0x1023(%rip), %r9       # 0x1dab0
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x16feb(%rip), %rax     # 0x33ab8
leaq 0xf21f(%rip), %rdx      # 0x2bcf3
movl $0x5, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq 0x11aa(%rip), %r9       # 0x1dc90
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x16f9a(%rip), %rax     # 0x33ac0
leaq 0xf1cc(%rip), %rdx      # 0x2bcf9
movl $0x9, %ecx
movl $0x1, %r8d
leaq 0x1281(%rip), %r9       # 0x1ddc0
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x16f49(%rip), %rax     # 0x33ac8
leaq 0xf17d(%rip), %rdx      # 0x2bd03
movl $0x5, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq 0x1278(%rip), %r9       # 0x1de10
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x16ef8(%rip), %rax     # 0x33ad0
leaq 0xf12a(%rip), %rdx      # 0x2bd09
movl $0x5, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq 0x131f(%rip), %r9       # 0x1df10
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x16ea7(%rip), %rax     # 0x33ad8
leaq 0xf0d7(%rip), %rdx      # 0x2bd0f
movl $0x4, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq 0x1526(%rip), %r9       # 0x1e170
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x16e56(%rip), %rax     # 0x33ae0
leaq 0xf083(%rip), %rdx      # 0x2bd14
movl $0x7, %ecx
movl $0x3, %r8d
leaq 0x15fd(%rip), %r9       # 0x1e2a0
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x16e05(%rip), %rax     # 0x33ae8
leaq 0xf032(%rip), %rdx      # 0x2bd1c
movl $0x7, %ecx
movl $0x1, %r8d
leaq 0x1844(%rip), %r9       # 0x1e540
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x16db4(%rip), %rax     # 0x33af0
leaq 0xefe1(%rip), %rdx      # 0x2bd24
movl $0x7, %ecx
movl $0x1, %r8d
leaq 0x192b(%rip), %r9       # 0x1e680
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x16d63(%rip), %rax     # 0x33af8
leaq 0xef90(%rip), %rdx      # 0x2bd2c
movl $0xb, %ecx
movl $0x2, %r8d
leaq 0x19e2(%rip), %r9       # 0x1e790
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x138, %rsi            # imm = 0x138
movq 0x30(%rsp), %rcx
movl 0x5e8(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x5e8(%rcx)
movl %eax, %eax
imulq $0x18, %rax, %rax
addq %rax, %rsi
movq 0x16d12(%rip), %rax     # 0x33b00
leaq 0xef43(%rip), %rdx      # 0x2bd38
movl $0xa, %ecx
movl $0x2, %r8d
leaq 0x1a09(%rip), %r9       # 0x1e810
movq %rax, (%rsp)
callq 0x1d2d0
movq 0x30(%rsp), %rdi
leaq 0xef27(%rip), %rsi      # 0x2bd43
callq 0x1aa90
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x16cd1(%rip), %r9      # 0x33b08
leaq 0xef0a(%rip), %rdx      # 0x2bd48
leaq 0x1a3b(%rip), %rcx      # 0x1e880
xorl %r8d, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x16cb2(%rip), %r9      # 0x33b10
leaq 0xec81(%rip), %rdx      # 0x2bae6
leaq 0x1a54(%rip), %rcx      # 0x1e8c0
xorl %r8d, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x16c93(%rip), %r9      # 0x33b18
leaq 0xeec2(%rip), %rdx      # 0x2bd4e
leaq 0x1aad(%rip), %rcx      # 0x1e940
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x16c71(%rip), %r9      # 0x33b20
leaq 0xee9e(%rip), %rdx      # 0x2bd54
leaq 0x1b53(%rip), %rcx      # 0x1ea10
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x16c4f(%rip), %r9      # 0x33b28
leaq 0xee7a(%rip), %rdx      # 0x2bd5a
leaq 0x1c39(%rip), %rcx      # 0x1eb20
xorl %r8d, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
leaq 0xee6b(%rip), %rsi      # 0x2bd66
callq 0x1aa90
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16c1a(%rip), %r9      # 0x33b30
leaq 0xee4e(%rip), %rdx      # 0x2bd6b
leaq 0x1c0c(%rip), %rcx      # 0x1eb30
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16bf8(%rip), %r9      # 0x33b38
leaq 0xee2a(%rip), %rdx      # 0x2bd71
leaq 0x1c52(%rip), %rcx      # 0x1eba0
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16bd6(%rip), %r9      # 0x33b40
leaq 0xee05(%rip), %rdx      # 0x2bd76
leaq 0x1c98(%rip), %rcx      # 0x1ec10
movl $0x2, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16bb4(%rip), %r9      # 0x33b48
leaq 0xeddf(%rip), %rdx      # 0x2bd7a
leaq 0x1d0e(%rip), %rcx      # 0x1ecb0
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16b92(%rip), %r9      # 0x33b50
leaq 0xedba(%rip), %rdx      # 0x2bd7f
leaq 0x1d54(%rip), %rcx      # 0x1ed20
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16b70(%rip), %r9      # 0x33b58
leaq 0xed94(%rip), %rdx      # 0x2bd83
leaq 0x1dba(%rip), %rcx      # 0x1edb0
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16b4e(%rip), %r9      # 0x33b60
leaq 0xed6f(%rip), %rdx      # 0x2bd88
leaq 0x1e40(%rip), %rcx      # 0x1ee60
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16b2c(%rip), %r9      # 0x33b68
leaq 0xed5a(%rip), %rdx      # 0x2bd9d
leaq 0x1ed6(%rip), %rcx      # 0x1ef20
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16b0a(%rip), %r9      # 0x33b70
leaq 0xed35(%rip), %rdx      # 0x2bda2
leaq 0x1f1c(%rip), %rcx      # 0x1ef90
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16ae8(%rip), %r9      # 0x33b78
leaq 0xed10(%rip), %rdx      # 0x2bda7
leaq 0x1f62(%rip), %rcx      # 0x1f000
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16ac6(%rip), %r9      # 0x33b80
leaq 0xeccc(%rip), %rdx      # 0x2bd8d
leaq 0x1fa8(%rip), %rcx      # 0x1f070
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16aa4(%rip), %r9      # 0x33b88
leaq 0xeca7(%rip), %rdx      # 0x2bd92
leaq 0x1fee(%rip), %rcx      # 0x1f0e0
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16a82(%rip), %r9      # 0x33b90
leaq 0xec82(%rip), %rdx      # 0x2bd97
leaq 0x2034(%rip), %rcx      # 0x1f150
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16a60(%rip), %r9      # 0x33b98
leaq 0xec5d(%rip), %rdx      # 0x2bd9c
leaq 0x207a(%rip), %rcx      # 0x1f1c0
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16a3e(%rip), %r9      # 0x33ba0
leaq 0xec38(%rip), %rdx      # 0x2bda1
leaq 0x2180(%rip), %rcx      # 0x1f2f0
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x16a1c(%rip), %r9      # 0x33ba8
leaq 0xec13(%rip), %rdx      # 0x2bda6
leaq 0x2286(%rip), %rcx      # 0x1f420
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x169fa(%rip), %r9      # 0x33bb0
leaq 0xebee(%rip), %rdx      # 0x2bdab
leaq 0x22cc(%rip), %rcx      # 0x1f490
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x169d8(%rip), %r9      # 0x33bb8
leaq 0xebca(%rip), %rdx      # 0x2bdb1
leaq 0x2312(%rip), %rcx      # 0x1f500
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movsd 0xe793(%rip), %xmm0     # 0x2b9a8
callq 0x45b0
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rcx
leaq 0xe6f3(%rip), %rdx      # 0x2b921
callq 0x1ad60
movq 0x30(%rsp), %rdi
leaq 0xd477(%rip), %rsi      # 0x2a6b6
callq 0x1aa90
movq %rax, 0x18(%rsp)
movq 0x30(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x16966(%rip), %r9      # 0x33bc0
leaq 0xeb56(%rip), %rdx      # 0x2bdb7
leaq 0x2308(%rip), %rcx      # 0x1f570
movl $0x1, %r8d
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x16944(%rip), %r9      # 0x33bc8
leaq 0xeb30(%rip), %rdx      # 0x2bdbb
leaq 0x233e(%rip), %rcx      # 0x1f5d0
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x1aef0
movq 0x30(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x16922(%rip), %r9      # 0x33bd0
leaq 0xeb0a(%rip), %rdx      # 0x2bdbf
leaq 0x2524(%rip), %rcx      # 0x1f7e0
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x1aef0
addq $0x38, %rsp
retq
nopl (%rax)