// File: /workspace/github_c_makefile_star2_O2/janet-lang[P]janet/src/core/corelib.c
// Function: janet_core_env
JanetTable *janet_core_env(JanetTable *replacements) {
    JanetTable *env = (NULL != replacements) ? replacements : janet_table(0);
    janet_quick_asm(env, JANET_FUN_CMP,
                    "cmp", 2, 2, 2, 2, cmp_asm, sizeof(cmp_asm),
                    JDOC("(cmp x y)\n\n"
         "Returns -1 if x is strictly less than y, 1 if y is strictly greater "
         "than x, and 0 otherwise. To return 0, x and y must be the exact same type."));
    janet_quick_asm(env, JANET_FUN_NEXT,
                    "next", 2, 1, 2, 2, next_asm, sizeof(next_asm),
                    JDOC("(next ds &opt key)\n\n"
         "Gets the next key in a data structure. Can be used to iterate through "
         "the keys of a data structure in an unspecified order. Keys are guaranteed "
         "to be seen only once per iteration if the data structure is not mutated "
         "during iteration. If key is nil, next returns the first key. If next "
         "returns nil, there are no more keys to iterate through."));
    janet_quick_asm(env, JANET_FUN_PROP,
                    "propagate", 2, 2, 2, 2, propagate_asm, sizeof(propagate_asm),
                    JDOC("(propagate x fiber)\n\n"
         "Propagate a signal from a fiber to the current fiber and "
         "set the last value of the current fiber to `x`.  The signal "
         "value is then available as the status of the current fiber. "
         "The resulting stack trace from the current fiber will include "
         "frames from fiber. If fiber is in a state that can be resumed, "
         "resuming the current fiber will first resume `fiber`. "
         "This function can be used to re-raise an error without losing "
         "the original stack trace."));
    janet_quick_asm(env, JANET_FUN_DEBUG,
                    "debug", 1, 0, 1, 1, debug_asm, sizeof(debug_asm),
                    JDOC("(debug &opt x)\n\n"
         "Throws a debug signal that can be caught by a parent fiber and used to inspect "
         "the running state of the current fiber. Returns the value passed in by resume."));
    janet_quick_asm(env, JANET_FUN_ERROR,
                    "error", 1, 1, 1, 1, error_asm, sizeof(error_asm),
                    JDOC("(error e)\n\n"
         "Throws an error e that can be caught and handled by a parent fiber."));
    janet_quick_asm(env, JANET_FUN_YIELD,
                    "yield", 1, 0, 1, 2, yield_asm, sizeof(yield_asm),
                    JDOC("(yield &opt x)\n\n"
         "Yield a value to a parent fiber. When a fiber yields, its execution is paused until "
         "another thread resumes it. The fiber will then resume, and the last yield call will "
         "return the value that was passed to resume."));
    janet_quick_asm(env, JANET_FUN_CANCEL,
                    "cancel", 2, 2, 2, 2, cancel_asm, sizeof(cancel_asm),
                    JDOC("(cancel fiber err)\n\n"
         "Resume a fiber but have it immediately raise an error. This lets a programmer unwind a pending fiber. "
         "Returns the same result as resume."));
    janet_quick_asm(env, JANET_FUN_RESUME,
                    "resume", 2, 1, 2, 2, resume_asm, sizeof(resume_asm),
                    JDOC("(resume fiber &opt x)\n\n"
         "Resume a new or suspended fiber and optionally pass in a value to the fiber that "
         "will be returned to the last yield in the case of a pending fiber, or the argument to "
         "the dispatch function in the case of a new fiber. Returns either the return result of "
         "the fiber's dispatch function, or the value from the next yield call in fiber."));
    janet_quick_asm(env, JANET_FUN_IN,
                    "in", 3, 2, 3, 4, in_asm, sizeof(in_asm),
                    JDOC("(in ds key &opt dflt)\n\n"
         "Get value in ds at key, works on associative data structures. Arrays, tuples, tables, structs, "
         "strings, symbols, and buffers are all associative and can be used. Arrays, tuples, strings, buffers, "
         "and symbols must use integer keys that are in bounds or an error is raised. Structs and tables can "
         "take any value as a key except nil and will return nil or dflt if not found."));
    janet_quick_asm(env, JANET_FUN_GET,
                    "get", 3, 2, 3, 4, get_asm, sizeof(in_asm),
                    JDOC("(get ds key &opt dflt)\n\n"
         "Get the value mapped to key in data structure ds, and return dflt or nil if not found. "
         "Similar to in, but will not throw an error if the key is invalid for the data structure "
         "unless the data structure is an abstract type. In that case, the abstract type getter may throw "
         "an error."));
    janet_quick_asm(env, JANET_FUN_PUT,
                    "put", 3, 3, 3, 3, put_asm, sizeof(put_asm),
                    JDOC("(put ds key value)\n\n"
         "Associate a key with a value in any mutable associative data structure. Indexed data structures "
         "(arrays and buffers) only accept non-negative integer keys, and will expand if an out of bounds "
         "value is provided. In an array, extra space will be filled with nils, and in a buffer, extra "
         "space will be filled with 0 bytes. In a table, putting a key that is contained in the table prototype "
         "will hide the association defined by the prototype, but will not mutate the prototype table. Putting "
         "a value nil into a table will remove the key from the table. Returns the data structure ds."));
    janet_quick_asm(env, JANET_FUN_LENGTH,
                    "length", 1, 1, 1, 1, length_asm, sizeof(length_asm),
                    JDOC("(length ds)\n\n"
         "Returns the length or count of a data structure in constant time as an integer. For "
         "structs and tables, returns the number of key-value pairs in the data structure."));
    janet_quick_asm(env, JANET_FUN_BNOT,
                    "bnot", 1, 1, 1, 1, bnot_asm, sizeof(bnot_asm),
                    JDOC("(bnot x)\n\nReturns the bit-wise inverse of integer x."));
    make_apply(env);

    /* Variadic ops */
    templatize_varop(env, JANET_FUN_ADD, "+", 0, 0, JOP_ADD,
                     JDOC("(+ & xs)\n\n"
         "Returns the sum of all xs. xs must be integers or real numbers only. If xs is empty, return 0."));
    templatize_varop(env, JANET_FUN_SUBTRACT, "-", 0, 0, JOP_SUBTRACT,
                     JDOC("(- & xs)\n\n"
         "Returns the difference of xs. If xs is empty, returns 0. If xs has one element, returns the "
         "negative value of that element. Otherwise, returns the first element in xs minus the sum of "
         "the rest of the elements."));
    templatize_varop(env, JANET_FUN_MULTIPLY, "*", 1, 1, JOP_MULTIPLY,
                     JDOC("(* & xs)\n\n"
         "Returns the product of all elements in xs. If xs is empty, returns 1."));
    templatize_varop(env, JANET_FUN_DIVIDE, "/", 1, 1, JOP_DIVIDE,
                     JDOC("(/ & xs)\n\n"
         "Returns the quotient of xs. If xs is empty, returns 1. If xs has one value x, returns "
         "the reciprocal of x. Otherwise return the first value of xs repeatedly divided by the remaining "
         "values."));
    templatize_varop(env, JANET_FUN_DIVIDE_FLOOR, "div", 1, 1, JOP_DIVIDE_FLOOR,
                     JDOC("(div & xs)\n\n"
         "Returns the floored division of xs. If xs is empty, returns 1. If xs has one value x, returns "
         "the reciprocal of x. Otherwise return the first value of xs repeatedly divided by the remaining "
         "values."));
    templatize_varop(env, JANET_FUN_MODULO, "mod", 0, 1, JOP_MODULO,
                     JDOC("(mod & xs)\n\n"
         "Returns the result of applying the modulo operator on the first value of xs with each remaining value. "
         "`(mod x 0)` is defined to be `x`."));
    templatize_varop(env, JANET_FUN_REMAINDER, "%", 0, 1, JOP_REMAINDER,
                     JDOC("(% & xs)\n\n"
         "Returns the remainder of dividing the first value of xs by each remaining value."));
    templatize_varop(env, JANET_FUN_BAND, "band", -1, -1, JOP_BAND,
                     JDOC("(band & xs)\n\n"
         "Returns the bit-wise and of all values in xs. Each x in xs must be an integer."));
    templatize_varop(env, JANET_FUN_BOR, "bor", 0, 0, JOP_BOR,
                     JDOC("(bor & xs)\n\n"
         "Returns the bit-wise or of all values in xs. Each x in xs must be an integer."));
    templatize_varop(env, JANET_FUN_BXOR, "bxor", 0, 0, JOP_BXOR,
                     JDOC("(bxor & xs)\n\n"
         "Returns the bit-wise xor of all values in xs. Each in xs must be an integer."));
    templatize_varop(env, JANET_FUN_LSHIFT, "blshift", 1, 1, JOP_SHIFT_LEFT,
                     JDOC("(blshift x & shifts)\n\n"
         "Returns the value of x bit shifted left by the sum of all values in shifts. x "
         "and each element in shift must be an integer."));
    templatize_varop(env, JANET_FUN_RSHIFT, "brshift", 1, 1, JOP_SHIFT_RIGHT,
                     JDOC("(brshift x & shifts)\n\n"
         "Returns the value of x bit shifted right by the sum of all values in shifts. x "
         "and each element in shift must be an integer."));
    templatize_varop(env, JANET_FUN_RSHIFTU, "brushift", 1, 1, JOP_SHIFT_RIGHT_UNSIGNED,
                     JDOC("(brushift x & shifts)\n\n"
         "Returns the value of x bit shifted right by the sum of all values in shifts. x "
         "and each element in shift must be an integer. The sign of x is not preserved, so "
         "for positive shifts the return value will always be positive."));

    /* Variadic comparators */
    templatize_comparator(env, JANET_FUN_GT, ">", 0, JOP_GREATER_THAN,
                          JDOC("(> & xs)\n\n"
         "Check if xs is in descending order. Returns a boolean."));
    templatize_comparator(env, JANET_FUN_LT, "<", 0, JOP_LESS_THAN,
                          JDOC("(< & xs)\n\n"
         "Check if xs is in ascending order. Returns a boolean."));
    templatize_comparator(env, JANET_FUN_GTE, ">=", 0, JOP_GREATER_THAN_EQUAL,
                          JDOC("(>= & xs)\n\n"
         "Check if xs is in non-ascending order. Returns a boolean."));
    templatize_comparator(env, JANET_FUN_LTE, "<=", 0, JOP_LESS_THAN_EQUAL,
                          JDOC("(<= & xs)\n\n"
         "Check if xs is in non-descending order. Returns a boolean."));
    templatize_comparator(env, JANET_FUN_EQ, "=", 0, JOP_EQUALS,
                          JDOC("(= & xs)\n\n"
         "Check if all values in xs are equal. Returns a boolean."));
    templatize_comparator(env, JANET_FUN_NEQ, "not=", 1, JOP_EQUALS,
                          JDOC("(not= & xs)\n\n"
         "Check if any values in xs are not equal. Returns a boolean."));

    /* Platform detection */
    janet_def(env, "janet/version", janet_cstringv(JANET_VERSION),
              JDOC("The version number of the running janet program."));
    janet_def(env, "janet/build", janet_cstringv(JANET_BUILD),
              JDOC("The build identifier of the running janet program."));
    janet_def(env, "janet/config-bits", janet_wrap_integer(JANET_CURRENT_CONFIG_BITS),
              JDOC("The flag set of config options from janetconf.h which is used to check "
         "if native modules are compatible with the host program."));

    /* Allow references to the environment */
    janet_def(env, "root-env", janet_wrap_table(env),
              JDOC("The root environment used to create environments with (make-env)."));

    janet_load_libs(env);
    janet_gcroot(janet_wrap_table(env));
    return env;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
testq %rdi, %rdi
jne 0x1dd78
xorl %edi, %edi
callq 0x43b8a
movq %rax, %rbx
leaq 0x32d75(%rip), %rax     # 0x50af4
pushq $0x8
popq %r11
leaq 0x34826(%rip), %r10     # 0x525b0
pushq $0x2
popq %r15
leaq 0x3480a(%rip), %rdx     # 0x5259f
pushq $0x1f
popq %rsi
movq %rbx, %rdi
movl %r15d, %ecx
movl %r15d, %r8d
movl %r15d, %r9d
pushq %rax
pushq %r11
movq %r11, %r12
pushq %r10
pushq %r15
callq 0x1e44d
addq $0x20, %rsp
leaq 0x32dd0(%rip), %rax     # 0x50b8e
leaq 0x347f3(%rip), %r10     # 0x525b8
leaq 0x3e468(%rip), %rdx     # 0x5c234
pushq $0x1c
popq %rsi
pushq $0x1
popq %r14
movq %rbx, %rdi
movl %r15d, %ecx
movl %r14d, %r8d
movl %r15d, %r9d
pushq %rax
pushq %r12
pushq %r10
pushq %r15
callq 0x1e44d
addq $0x20, %rsp
leaq 0x32f0b(%rip), %rax     # 0x50d01
leaq 0x347c3(%rip), %r10     # 0x525c0
leaq 0x32ef3(%rip), %rdx     # 0x50cf7
pushq $0x1a
popq %rsi
movq %rbx, %rdi
movl %r15d, %ecx
movl %r15d, %r8d
movl %r15d, %r9d
pushq %rax
pushq %r12
pushq %r10
pushq %r15
callq 0x1e44d
addq $0x20, %rsp
leaq 0x330ae(%rip), %rax     # 0x50ed8
leaq 0x34797(%rip), %r10     # 0x525c8
leaq 0x3309a(%rip), %rdx     # 0x50ed2
movq %rbx, %rdi
movl %r14d, %esi
movl %r14d, %ecx
xorl %r8d, %r8d
movl %r14d, %r9d
pushq %rax
pushq %r12
pushq %r10
pushq %r14
callq 0x1e44d
addq $0x20, %rsp
leaq 0x33128(%rip), %rax     # 0x50f86
leaq 0x3476b(%rip), %r10     # 0x525d0
leaq 0x46952(%rip), %rdx     # 0x647be
movq %rbx, %rdi
movl %r15d, %esi
movl %r14d, %ecx
movl %r14d, %r8d
movl %r14d, %r9d
pushq %rax
pushq $0x4
pushq %r10
pushq %r14
callq 0x1e44d
addq $0x20, %rsp
leaq 0x33149(%rip), %rax     # 0x50fdb
leaq 0x3473b(%rip), %r10     # 0x525d4
leaq 0x33135(%rip), %rdx     # 0x50fd5
pushq $0x4
popq %r13
movq %rbx, %rdi
movl %r13d, %esi
movl %r14d, %ecx
xorl %r8d, %r8d
movl %r14d, %r9d
pushq %rax
pushq %r12
pushq %r10
pushq %r15
callq 0x1e44d
addq $0x20, %rsp
leaq 0x331f5(%rip), %rax     # 0x510bf
leaq 0x3470b(%rip), %r10     # 0x525dc
leaq 0x49fc9(%rip), %rdx     # 0x67ea1
pushq $0x20
popq %rsi
movq %rbx, %rdi
movl %r15d, %ecx
movl %r15d, %r8d
movl %r15d, %r9d
pushq %rax
pushq %r12
pushq %r10
pushq %r15
callq 0x1e44d
addq $0x20, %rsp
leaq 0x33265(%rip), %rax     # 0x51163
leaq 0x346df(%rip), %r10     # 0x525e4
leaq 0x33250(%rip), %rdx     # 0x5115c
pushq $0x5
popq %rsi
movq %rbx, %rdi
movl %r15d, %ecx
movl %r14d, %r8d
movl %r15d, %r9d
pushq %rax
pushq %r12
pushq %r10
pushq %r15
callq 0x1e44d
addq $0x20, %rsp
leaq 0x33394(%rip), %rax     # 0x512c6
pushq $0x18
popq %r11
leaq 0x346b3(%rip), %r10     # 0x525f0
leaq 0x3646e(%rip), %rdx     # 0x543b2
pushq $0x6
popq %rsi
pushq $0x3
popq %r12
movq %rbx, %rdi
movl %r12d, %ecx
movl %r15d, %r8d
movl %r12d, %r9d
pushq %rax
pushq %r11
pushq %r10
pushq %r13
callq 0x1e44d
addq $0x20, %rsp
leaq 0x334e3(%rip), %rax     # 0x51451
leaq 0x3469b(%rip), %r10     # 0x52610
leaq 0x48a40(%rip), %rdx     # 0x669bc
pushq $0x1b
popq %rsi
movq %rbx, %rdi
movl %r12d, %ecx
movl %r15d, %r8d
movl %r12d, %r9d
pushq %rax
pushq $0x18
popq %rax
pushq %rax
pushq %r10
pushq %r13
callq 0x1e44d
addq $0x20, %rsp
leaq 0x335de(%rip), %rax     # 0x51582
leaq 0x3467d(%rip), %r10     # 0x52628
leaq 0x30849(%rip), %rdx     # 0x4e7fb
pushq $0x7
popq %rsi
movq %rbx, %rdi
movl %r12d, %ecx
movl %r12d, %r8d
movl %r12d, %r9d
pushq %rax
pushq $0x8
popq %r12
pushq %r12
pushq %r10
pushq $0x3
callq 0x1e44d
addq $0x20, %rsp
leaq 0x337fe(%rip), %rax     # 0x517da
leaq 0x3464d(%rip), %r10     # 0x52630
leaq 0x45fd0(%rip), %rdx     # 0x63fba
pushq $0x8
popq %r15
movq %rbx, %rdi
movl %r15d, %esi
movl %r14d, %ecx
movl %r14d, %r8d
movl %r14d, %r9d
pushq %rax
pushq %r12
pushq %r10
pushq %r14
callq 0x1e44d
addq $0x20, %rsp
leaq 0x33878(%rip), %rax     # 0x5188c
leaq 0x3461d(%rip), %r10     # 0x52638
leaq 0x306fd(%rip), %rdx     # 0x4e71f
pushq $0x13
popq %rsi
movq %rbx, %rdi
movl %r14d, %ecx
movl %r14d, %r8d
movl %r14d, %r9d
pushq %rax
pushq %r12
pushq %r10
pushq %r14
callq 0x1e44d
addq $0x20, %rsp
leaq 0x34394(%rip), %rax     # 0x523dc
leaq 0x345f1(%rip), %r10     # 0x52640
leaq 0x34380(%rip), %rdx     # 0x523d6
movq %rbx, %rdi
movl $0x10003, %esi          # imm = 0x10003
movl %r14d, %ecx
movl %r14d, %r8d
movl $0x7fffffff, %r9d       # imm = 0x7FFFFFFF
pushq %rax
pushq $0x30
pushq %r10
pushq $0x6
callq 0x1e44d
addq $0x18, %rsp
leaq 0x33840(%rip), %rax     # 0x518c1
leaq 0x3bf01(%rip), %rdx     # 0x59f89
pushq $0x9
popq %rsi
movq %rbx, %rdi
xorl %ecx, %ecx
xorl %r8d, %r8d
pushq $0x6
popq %r9
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
subq $0x8, %rsp
leaq 0x33880(%rip), %rax     # 0x5192a
leaq 0x45ff6(%rip), %rdx     # 0x640a7
pushq $0xa
popq %r12
movq %rbx, %rdi
movl %r12d, %esi
xorl %ecx, %ecx
xorl %r8d, %r8d
movl %r15d, %r9d
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
subq $0x8, %rsp
leaq 0x33930(%rip), %rax     # 0x51a06
leaq 0x3beb2(%rip), %rdx     # 0x59f8f
pushq $0xb
popq %rsi
movq %rbx, %rdi
movl %r14d, %ecx
movl %r14d, %r8d
movl %r12d, %r9d
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
subq $0x8, %rsp
leaq 0x33957(%rip), %rax     # 0x51a56
leaq 0x3be8c(%rip), %rdx     # 0x59f92
pushq $0xc
popq %rsi
movq %rbx, %rdi
movl %r14d, %ecx
movl %r14d, %r8d
movl %esi, %r9d
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
subq $0x8, %rsp
leaq 0x339f6(%rip), %rax     # 0x51b1e
leaq 0x3be66(%rip), %rdx     # 0x59f95
pushq $0x21
popq %rsi
pushq $0xd
popq %r15
movq %rbx, %rdi
movl %r14d, %ecx
movl %r14d, %r8d
movl %r15d, %r9d
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
subq $0x8, %rsp
leaq 0x33a9b(%rip), %rax     # 0x51bf0
leaq 0x4418f(%rip), %rdx     # 0x622eb
pushq $0x1d
popq %rsi
pushq $0xe
popq %r9
movq %rbx, %rdi
xorl %ecx, %ecx
movl %r14d, %r8d
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
subq $0x8, %rsp
leaq 0x33b07(%rip), %rax     # 0x51c85
leaq 0x43f94(%rip), %rdx     # 0x62119
pushq $0x1e
popq %rsi
pushq $0xf
popq %r9
movq %rbx, %rdi
xorl %ecx, %ecx
movl %r14d, %r8d
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
subq $0x8, %rsp
leaq 0x33b39(%rip), %rax     # 0x51ce0
leaq 0x3056c(%rip), %rdx     # 0x4e71a
pushq $-0x1
popq %rcx
pushq $0x10
popq %r12
movq %rbx, %rdi
movl %r15d, %esi
movl %ecx, %r8d
movl %r12d, %r9d
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
subq $0x8, %rsp
leaq 0x33b68(%rip), %rax     # 0x51d3c
leaq 0x30549(%rip), %rdx     # 0x4e724
pushq $0x11
popq %r13
movq %rbx, %rdi
pushq $0xe
popq %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
movl %r13d, %r9d
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
subq $0x8, %rsp
leaq 0x33b96(%rip), %rax     # 0x51d96
leaq 0x30521(%rip), %rdx     # 0x4e728
pushq $0x12
popq %r9
movq %rbx, %rdi
pushq $0xf
popq %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
subq $0x8, %rsp
leaq 0x33bcf(%rip), %rax     # 0x51df8
leaq 0x33bc0(%rip), %rdx     # 0x51df0
pushq $0x14
popq %r15
movq %rbx, %rdi
movl %r12d, %esi
movl %r14d, %ecx
movl %r14d, %r8d
movl %r15d, %r9d
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
subq $0x8, %rsp
leaq 0x33c3c(%rip), %rax     # 0x51e92
leaq 0x33c2d(%rip), %rdx     # 0x51e8a
pushq $0x16
popq %r12
movq %rbx, %rdi
movl %r13d, %esi
movl %r14d, %ecx
movl %r14d, %r8d
movl %r12d, %r9d
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
subq $0x8, %rsp
leaq 0x33cab(%rip), %rax     # 0x51f2e
leaq 0x33c9b(%rip), %rdx     # 0x51f25
pushq $0x18
popq %r13
movq %rbx, %rdi
pushq $0x12
popq %rsi
movl %r14d, %ecx
movl %r14d, %r8d
movl %r13d, %r9d
pushq %rax
callq 0x1e55f
popq %rax
popq %rcx
leaq 0x45df8(%rip), %rdx     # 0x640a4
leaq 0x33d70(%rip), %r9      # 0x52023
movq %rbx, %rdi
movl %r15d, %esi
xorl %ecx, %ecx
pushq $0x21
popq %r8
callq 0x1e607
leaq 0x49a0a(%rip), %rdx     # 0x67cd5
leaq 0x33d92(%rip), %r9      # 0x52064
pushq $0x15
popq %rsi
pushq $0x23
popq %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x1e607
leaq 0x33dba(%rip), %rdx     # 0x520a4
leaq 0x33db6(%rip), %r9      # 0x520a7
pushq $0x47
popq %r8
movq %rbx, %rdi
movl %r12d, %esi
xorl %ecx, %ecx
callq 0x1e607
leaq 0x33de3(%rip), %rdx     # 0x520ec
leaq 0x33ddf(%rip), %r9      # 0x520ef
pushq $0x17
popq %rsi
pushq $0x48
popq %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x1e607
leaq 0x33dc5(%rip), %rdx     # 0x520ed
leaq 0x33e06(%rip), %r9      # 0x52135
pushq $0x25
popq %r15
movq %rbx, %rdi
movl %r13d, %esi
xorl %ecx, %ecx
movl %r15d, %r8d
callq 0x1e607
leaq 0x33e2d(%rip), %rdx     # 0x52177
leaq 0x33e2b(%rip), %r9      # 0x5217c
pushq $0x19
popq %rsi
movq %rbx, %rdi
movl %r14d, %ecx
movl %r15d, %r8d
callq 0x1e607
leaq 0x33e6a(%rip), %rdi     # 0x521d3
callq 0x411ea
movabsq $-0x6000000000000, %r14 # imm = 0xFFFA000000000000
movq %rax, %rdi
movq %r14, %rsi
callq 0x4b366
leaq 0x33e3b(%rip), %rsi     # 0x521c5
leaq 0x33e49(%rip), %rcx     # 0x521da
movq %rbx, %rdi
movq %rax, %rdx
callq 0x44f49
leaq 0x33e74(%rip), %rdi     # 0x52217
callq 0x411ea
movq %rax, %rdi
movq %r14, %rsi
callq 0x4b366
leaq 0x33e51(%rip), %rsi     # 0x5220b
leaq 0x33e5f(%rip), %rcx     # 0x52220
movq %rbx, %rdi
movq %rax, %rdx
callq 0x44f49
movsd 0x31f44(%rip), %xmm0    # 0x50318
callq 0x4b471
leaq 0x33e73(%rip), %rsi     # 0x52253
leaq 0x33e7e(%rip), %rcx     # 0x52265
movq %rbx, %rdi
movq %rax, %rdx
callq 0x44f49
movabsq $-0x3800000000000, %r14 # imm = 0xFFFC800000000000
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4b3ab
leaq 0x33ed6(%rip), %rsi     # 0x522e4
leaq 0x33ed8(%rip), %rcx     # 0x522ed
movq %rbx, %rdi
movq %rax, %rdx
callq 0x44f49
movq %rbx, %rdi
callq 0x1e69e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4b3ab
movq %rax, %rdi
callq 0x28c2a
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq