// File: /workspace/github_c_makefile_star2_O1/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:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x5e8(%rdi), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rdi)
leaq (%rax,%rax,2), %r14
leaq 0xae31(%rip), %rsi      # 0x1eb45
movq %rsi, 0x138(%rdi,%r14,8)
movl $0x9, %eax
movl %eax, 0x140(%rdi,%r14,8)
leaq 0xb3a8(%rip), %r9       # 0x1f0d8
movl $0x1, %ebp
movl $0x9, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r14,8)
movl %ebp, 0x20(%rax)
leaq 0x984(%rip), %rcx       # 0x146dd
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r14
leaq 0xadd8(%rip), %rsi      # 0x1eb4f
movq %rsi, 0x138(%rbx,%r14,8)
movl $0x4, %eax
movl %eax, 0x140(%rbx,%r14,8)
leaq 0xb420(%rip), %r9       # 0x1f1b3
movq %rbx, %rdi
movl $0x4, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r14,8)
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
movl %r15d, 0x20(%rax)
leaq 0x9a4(%rip), %rcx       # 0x14765
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r14
leaq 0xad75(%rip), %rsi      # 0x1eb54
movq %rsi, 0x138(%rbx,%r14,8)
movl $0x6, 0x140(%rbx,%r14,8)
leaq 0xb43c(%rip), %r9       # 0x1f236
movq %rbx, %rdi
movl $0x6, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r14,8)
movl %r15d, 0x20(%rax)
leaq 0xa4a(%rip), %rcx       # 0x1486c
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r14
leaq 0xad1b(%rip), %rsi      # 0x1eb5b
movq %rsi, 0x138(%rbx,%r14,8)
movl $0x3, %r12d
movl %r12d, 0x140(%rbx,%r14,8)
leaq 0xb46e(%rip), %r9       # 0x1f2cb
movq %rbx, %rdi
movl $0x3, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r14,8)
movl %ebp, 0x20(%rax)
leaq 0xb16(%rip), %rcx       # 0x1499a
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r14
leaq 0xacbd(%rip), %rsi      # 0x1eb5f
movq %rsi, 0x138(%rbx,%r14,8)
movl %r12d, 0x140(%rbx,%r14,8)
leaq 0xb47c(%rip), %r9       # 0x1f335
movq %rbx, %rdi
movl $0x3, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r14,8)
movl %ebp, 0x20(%rax)
leaq 0xc60(%rip), %rcx       # 0x14b40
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r13
leaq 0xac65(%rip), %rsi      # 0x1eb63
movq %rsi, 0x138(%rbx,%r13,8)
movl $0x5, %r14d
movl %r14d, 0x140(%rbx,%r13,8)
leaq 0xb475(%rip), %r9       # 0x1f390
movq %rbx, %rdi
movl $0x5, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r13,8)
movl %r15d, 0x20(%rax)
leaq 0xdd5(%rip), %rcx       # 0x14d18
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r13
leaq 0xac08(%rip), %rsi      # 0x1eb69
movq %rsi, 0x138(%rbx,%r13,8)
movl $0x9, %eax
movl %eax, 0x140(%rbx,%r13,8)
leaq 0xb532(%rip), %r9       # 0x1f4af
movq %rbx, %rdi
movl $0x9, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r13,8)
movl %ebp, 0x20(%rax)
leaq 0xde7(%rip), %rcx       # 0x14d8b
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r13
leaq 0xabb1(%rip), %rsi      # 0x1eb73
movq %rsi, 0x138(%rbx,%r13,8)
movl %r14d, 0x140(%rbx,%r13,8)
leaq 0xb525(%rip), %r9       # 0x1f4fe
movq %rbx, %rdi
movl $0x5, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r13,8)
movl %r15d, 0x20(%rax)
leaq 0xdbf(%rip), %rcx       # 0x14dc0
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r13
leaq 0xab5a(%rip), %rsi      # 0x1eb79
movq %rsi, 0x138(%rbx,%r13,8)
movl %r14d, 0x140(%rbx,%r13,8)
leaq 0xb534(%rip), %r9       # 0x1f56a
movq %rbx, %rdi
movl $0x5, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r13,8)
movl %r15d, 0x20(%rax)
leaq 0xe17(%rip), %rcx       # 0x14e75
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r14
leaq 0xab03(%rip), %rsi      # 0x1eb7f
movq %rsi, 0x138(%rbx,%r14,8)
movl $0x4, %eax
movl %eax, 0x140(%rbx,%r14,8)
leaq 0xb578(%rip), %r9       # 0x1f610
movq %rbx, %rdi
movl $0x4, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r14,8)
movl %r15d, 0x20(%rax)
leaq 0xecd(%rip), %rcx       # 0x14f8d
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r15
leaq 0xaaa6(%rip), %rsi      # 0x1eb84
movq %rsi, 0x138(%rbx,%r15,8)
movl $0x7, %r14d
movl %r14d, 0x140(%rbx,%r15,8)
leaq 0xb62f(%rip), %r9       # 0x1f72a
movq %rbx, %rdi
movl $0x7, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r15,8)
movl %r12d, 0x20(%rax)
leaq 0xfe0(%rip), %rcx       # 0x15103
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r15
leaq 0xaa4b(%rip), %rsi      # 0x1eb8c
movq %rsi, 0x138(%rbx,%r15,8)
movl %r14d, 0x140(%rbx,%r15,8)
leaq 0xb6ea(%rip), %r9       # 0x1f842
movq %rbx, %rdi
movl $0x7, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r15,8)
movl %ebp, 0x20(%rax)
leaq 0x125b(%rip), %rcx      # 0x153da
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r15
leaq 0xa9f7(%rip), %rsi      # 0x1eb94
movq %rsi, 0x138(%rbx,%r15,8)
movl %r14d, 0x140(%rbx,%r15,8)
leaq 0xb70d(%rip), %r9       # 0x1f8c1
movq %rbx, %rdi
movl $0x7, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r15,8)
movl %ebp, 0x20(%rax)
leaq 0x138a(%rip), %rcx      # 0x15565
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r14
leaq 0xa9a3(%rip), %rsi      # 0x1eb9c
movq %rsi, 0x138(%rbx,%r14,8)
movl $0xb, 0x140(%rbx,%r14,8)
leaq 0xb72d(%rip), %r9       # 0x1f941
movq %rbx, %rdi
movl $0xb, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r14,8)
movl $0x2, %ebp
movl %ebp, 0x20(%rax)
leaq 0x13a1(%rip), %rcx      # 0x155e1
movq %rcx, 0x38(%rax)
movl 0x5e8(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x5e8(%rbx)
leaq (%rax,%rax,2), %r14
leaq 0xa94a(%rip), %rsi      # 0x1eba8
movq %rsi, 0x138(%rbx,%r14,8)
movl $0xa, 0x140(%rbx,%r14,8)
leaq 0xb75a(%rip), %r9       # 0x1f9d3
movq %rbx, %rdi
movl $0xa, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x929e
movq %rax, 0x148(%rbx,%r14,8)
movl %ebp, 0x20(%rax)
leaq 0x1431(%rip), %rcx      # 0x156d1
movq %rcx, 0x38(%rax)
leaq 0xa908(%rip), %rsi      # 0x1ebb3
movq %rbx, %rdi
callq 0x131bf
movq %rax, %r14
leaq 0xa8fb(%rip), %rdx      # 0x1ebb8
leaq 0x14e7(%rip), %rcx      # 0x157ab
leaq 0xb798(%rip), %r9       # 0x1fa63
movq %rbx, %rdi
movq %rax, %rsi
xorl %r8d, %r8d
callq 0x13342
leaq 0xa676(%rip), %rdx      # 0x1e956
leaq 0x14ef(%rip), %rcx      # 0x157d6
leaq 0xb7c0(%rip), %r9       # 0x1faae
movq %rbx, %rdi
movq %r14, %rsi
xorl %r8d, %r8d
callq 0x13342
leaq 0xa8bb(%rip), %rdx      # 0x1ebbe
leaq 0x151c(%rip), %rcx      # 0x15826
leaq 0xb7ec(%rip), %r9       # 0x1fafd
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa89b(%rip), %rdx      # 0x1ebc4
leaq 0x1581(%rip), %rcx      # 0x158b1
leaq 0xb819(%rip), %r9       # 0x1fb50
movq %rbx, %rdi
movq %r14, %rsi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x13342
leaq 0xa87b(%rip), %rdx      # 0x1ebca
leaq 0x15f8(%rip), %rcx      # 0x1594e
leaq 0xb872(%rip), %r9       # 0x1fbcf
movq %rbx, %rdi
movq %r14, %rsi
xorl %r8d, %r8d
callq 0x13342
leaq 0xa864(%rip), %rsi      # 0x1ebd6
movq %rbx, %rdi
callq 0x131bf
movq %rax, %r14
leaq 0xa857(%rip), %rdx      # 0x1ebdb
leaq 0x15c5(%rip), %rcx      # 0x15950
leaq 0xb887(%rip), %r9       # 0x1fc19
movq %rbx, %rdi
movq %rax, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa837(%rip), %rdx      # 0x1ebe1
leaq 0x1674(%rip), %rcx      # 0x15a25
leaq 0xb87a(%rip), %r9       # 0x1fc32
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa816(%rip), %rdx      # 0x1ebe6
leaq 0x1723(%rip), %rcx      # 0x15afa
leaq 0xb86c(%rip), %r9       # 0x1fc4a
movq %rbx, %rdi
movq %r14, %rsi
movl $0x2, %r8d
callq 0x13342
leaq 0xa7f4(%rip), %rdx      # 0x1ebea
leaq 0x189a(%rip), %rcx      # 0x15c97
leaq 0xb85d(%rip), %r9       # 0x1fc61
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa7d3(%rip), %rdx      # 0x1ebef
leaq 0x1961(%rip), %rcx      # 0x15d84
leaq 0xb84f(%rip), %r9       # 0x1fc79
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa7b1(%rip), %rdx      # 0x1ebf3
leaq 0x1a27(%rip), %rcx      # 0x15e70
leaq 0xb840(%rip), %r9       # 0x1fc90
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa790(%rip), %rdx      # 0x1ebf8
leaq 0x1b1a(%rip), %rcx      # 0x15f89
leaq 0xb832(%rip), %r9       # 0x1fca8
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa77f(%rip), %rdx      # 0x1ec0d
leaq 0x1b6a(%rip), %rcx      # 0x15fff
leaq 0xb872(%rip), %r9       # 0x1fd0e
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa75e(%rip), %rdx      # 0x1ec12
leaq 0x1c19(%rip), %rcx      # 0x160d4
leaq 0xb8b4(%rip), %r9       # 0x1fd76
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa73d(%rip), %rdx      # 0x1ec17
leaq 0x1cc8(%rip), %rcx      # 0x161a9
leaq 0xb8f8(%rip), %r9       # 0x1fde0
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa6fd(%rip), %rdx      # 0x1ebfd
leaq 0x1d77(%rip), %rcx      # 0x1627e
leaq 0xb93d(%rip), %r9       # 0x1fe4b
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa6dc(%rip), %rdx      # 0x1ec02
leaq 0x1e26(%rip), %rcx      # 0x16353
leaq 0xb960(%rip), %r9       # 0x1fe94
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa6bb(%rip), %rdx      # 0x1ec07
leaq 0x1ed5(%rip), %rcx      # 0x16428
leaq 0xb985(%rip), %r9       # 0x1fedf
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa69a(%rip), %rdx      # 0x1ec0c
leaq 0x1f84(%rip), %rcx      # 0x164fd
leaq 0xb9df(%rip), %r9       # 0x1ff5f
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa679(%rip), %rdx      # 0x1ec11
leaq 0x2093(%rip), %rcx      # 0x16632
leaq 0xba32(%rip), %r9       # 0x1ffd8
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa658(%rip), %rdx      # 0x1ec16
leaq 0x21a2(%rip), %rcx      # 0x16767
leaq 0xba77(%rip), %r9       # 0x20043
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa637(%rip), %rdx      # 0x1ec1b
leaq 0x2251(%rip), %rcx      # 0x1683c
leaq 0xbabd(%rip), %r9       # 0x200af
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa617(%rip), %rdx      # 0x1ec21
leaq 0x2300(%rip), %rcx      # 0x16911
leaq 0xbae3(%rip), %r9       # 0x200fb
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %r8d
callq 0x13342
movsd 0xa1df(%rip), %xmm0     # 0x1e810
callq 0x905b
leaq 0xa14b(%rip), %rdx      # 0x1e788
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rcx
callq 0x132ca
leaq 0x8ff8(%rip), %rsi      # 0x1d64a
movq %rbx, %rdi
callq 0x131bf
movq %rax, %r14
leaq 0xa5c3(%rip), %rdx      # 0x1ec27
leaq 0x237b(%rip), %rcx      # 0x169e6
leaq 0xbae1(%rip), %r9       # 0x20153
movq %rbx, %rdi
movq %rax, %rsi
movl $0x1, %r8d
callq 0x13342
leaq 0xa5a1(%rip), %rdx      # 0x1ec2b
leaq 0x2395(%rip), %rcx      # 0x16a26
leaq 0xbb68(%rip), %r9       # 0x20200
movq %rbx, %rdi
movq %r14, %rsi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x13342
leaq 0xa57f(%rip), %rdx      # 0x1ec2f
leaq 0x2453(%rip), %rcx      # 0x16b0a
leaq 0xbc26(%rip), %r9       # 0x202e4
movq %rbx, %rdi
movq %r14, %rsi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x13342