// File: /workspace/github_cpp_makefile_star2_O1/CMU-SAFARI[P]ramulator/src/Memory.h
// Function: ramulator::Memory<ramulator::DDR3, ramulator::Controller>::Memory(ramulator::Config const&, std::vector<ramulator::Controller<ramulator::DDR3>*, std::allocator<ramulator::Controller<ramulator::DDR3>*>>)
Memory(const Config& configs, vector<Controller<T>*> ctrls)
        : ctrls(ctrls),
          spec(ctrls[0]->channel->spec),
          addr_bits(int(T::Level::MAX))
    {
        // make sure 2^N channels/ranks
        // TODO support channel number that is not powers of 2
        int *sz = spec->org_entry.count;
        assert((sz[0] & (sz[0] - 1)) == 0);
        assert((sz[1] & (sz[1] - 1)) == 0);
        // validate size of one transaction
        int tx = (spec->prefetch_size * spec->channel_width / 8);
        tx_bits = calc_log2(tx);
        assert((1<<tx_bits) == tx);
        
        // Parsing mapping file and initialize mapping table
        use_mapping_file = false;
        dump_mapping = false;
        if (spec->standard_name.substr(0, 4) == "DDR3"){
            if (configs["mapping"] != "defaultmapping"){
              init_mapping_with_file(configs["mapping"]);
              // dump_mapping = true;
              use_mapping_file = true;
            }
        }
        // If hi address bits will not be assigned to Rows
        // then the chips must not be LPDDRx 6Gb, 12Gb etc.
        if (type != Type::RoBaRaCoCh && spec->standard_name.substr(0, 5) == "LPDDR")
            assert((sz[int(T::Level::Row)] & (sz[int(T::Level::Row)] - 1)) == 0);

        max_address = spec->channel_width / 8;

        for (unsigned int lev = 0; lev < addr_bits.size(); lev++) {
          addr_bits[lev] = calc_log2(sz[lev]);
            max_address *= sz[lev];
        }

        addr_bits[int(T::Level::MAX) - 1] -= calc_log2(spec->prefetch_size);

        // Initiating translation
        if (configs.contains("translation")) {
          translation = name_to_translation[configs["translation"]];
        }
        if (translation != Translation::None) {
          // construct a list of available pages
          // TODO: this should not assume a 4KB page!
          free_physical_pages_remaining = max_address >> 12;

          free_physical_pages.resize(free_physical_pages_remaining, -1);
        }

        dram_capacity
            .name("dram_capacity")
            .desc("Number of bytes in simulated DRAM")
            .precision(0)
            ;
        dram_capacity = max_address;

        num_dram_cycles
            .name("dram_cycles")
            .desc("Number of DRAM cycles simulated")
            .precision(0)
            ;
        num_incoming_requests
            .name("incoming_requests")
            .desc("Number of incoming requests to DRAM")
            .precision(0)
            ;
        num_read_requests
            .init(configs.get_core_num())
            .name("read_requests")
            .desc("Number of incoming read requests to DRAM per core")
            .precision(0)
            ;
        num_write_requests
            .init(configs.get_core_num())
            .name("write_requests")
            .desc("Number of incoming write requests to DRAM per core")
            .precision(0)
            ;
        incoming_requests_per_channel
            .init(sz[int(T::Level::Channel)])
            .name("incoming_requests_per_channel")
            .desc("Number of incoming requests to each DRAM channel")
            ;
        incoming_read_reqs_per_channel
            .init(sz[int(T::Level::Channel)])
            .name("incoming_read_reqs_per_channel")
            .desc("Number of incoming read requests to each DRAM channel")
            ;

        ramulator_active_cycles
            .name("ramulator_active_cycles")
            .desc("The total number of cycles that the DRAM part is active (serving R/W)")
            .precision(0)
            ;
        physical_page_replacement
            .name("physical_page_replacement")
            .desc("The number of times that physical page replacement happens.")
            .precision(0)
            ;
        maximum_bandwidth
            .name("maximum_bandwidth")
            .desc("The theoretical maximum bandwidth (Bps)")
            .precision(0)
            ;
        in_queue_req_num_sum
            .name("in_queue_req_num_sum")
            .desc("Sum of read/write queue length")
            .precision(0)
            ;
        in_queue_read_req_num_sum
            .name("in_queue_read_req_num_sum")
            .desc("Sum of read queue length")
            .precision(0)
            ;
        in_queue_write_req_num_sum
            .name("in_queue_write_req_num_sum")
            .desc("Sum of write queue length")
            .precision(0)
            ;
        in_queue_req_num_avg
            .name("in_queue_req_num_avg")
            .desc("Average of read/write queue length per memory cycle")
            .precision(6)
            ;
        in_queue_read_req_num_avg
            .name("in_queue_read_req_num_avg")
            .desc("Average of read queue length per memory cycle")
            .precision(6)
            ;
        in_queue_write_req_num_avg
            .name("in_queue_write_req_num_avg")
            .desc("Average of write queue length per memory cycle")
            .precision(6)
            ;
#ifndef INTEGRATED_WITH_GEM5
        record_read_requests
            .init(configs.get_core_num())
            .name("record_read_requests")
            .desc("record read requests for this core when it reaches request limit or to the end")
            ;

        record_write_requests
            .init(configs.get_core_num())
            .name("record_write_requests")
            .desc("record write requests for this core when it reaches request limit or to the end")
            ;
#endif

    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x5e8, %rsp            # imm = 0x5E8
movq %rdx, %rbx
movq %rsi, (%rsp)
movq %rdi, %r15
leaq 0x182e2e(%rip), %rax    # 0x1a14b8
movq %rax, (%rdi)
addq $0x8, %rdi
movq %rdi, 0xc0(%rsp)
callq 0x21be2
leaq 0x182a53(%rip), %r14    # 0x1a10f8
movq %r14, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x78(%r15)
leaq 0x90(%r15), %rcx
movq %rcx, 0x80(%r15)
movq %rax, 0x88(%r15)
movb $0x0, 0x90(%r15)
leaq 0xa0(%r15), %rdi
movq %rdi, 0xb0(%rsp)
callq 0x21be2
movq %r14, 0xa0(%r15)
xorl %eax, %eax
movq %rax, 0x110(%r15)
leaq 0x128(%r15), %rcx
movq %rcx, 0x118(%r15)
movq %rax, 0x120(%r15)
movb $0x0, 0x128(%r15)
leaq 0x138(%r15), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x21be2
movq %r14, 0x138(%r15)
xorl %eax, %eax
movq %rax, 0x1a8(%r15)
leaq 0x1c0(%r15), %rcx
movq %rcx, 0x1b0(%r15)
movq %rax, 0x1b8(%r15)
movb $0x0, 0x1c0(%r15)
leaq 0x1d0(%r15), %r13
movq %r13, %rdi
callq 0x242a2
movl $0x0, 0x240(%r15)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x248(%r15)
xorl %eax, %eax
movq %rax, 0x258(%r15)
leaq 0x182b03(%rip), %r12    # 0x1a1288
movq %r12, 0x1d0(%r15)
leaq 0x270(%r15), %rcx
movq %rcx, 0x260(%r15)
movq %rax, 0x268(%r15)
movb $0x0, 0x270(%r15)
leaq 0x280(%r15), %rdi
movq %rdi, 0x48(%rsp)
movq %r13, 0xb8(%rsp)
callq 0x242a2
movl $0x0, 0x2f0(%r15)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x2f8(%r15)
xorl %eax, %eax
movq %rax, 0x308(%r15)
movq %r12, 0x280(%r15)
leaq 0x320(%r15), %rcx
movq %rcx, 0x310(%r15)
movq %rax, 0x318(%r15)
movb $0x0, 0x320(%r15)
leaq 0x330(%r15), %rdi
movq %rdi, 0xa0(%rsp)
callq 0x21be2
movq %r14, 0x330(%r15)
xorl %eax, %eax
movq %rax, 0x3a0(%r15)
leaq 0x3b8(%r15), %rcx
movq %rcx, 0x3a8(%r15)
movq %rax, 0x3b0(%r15)
movb $0x0, 0x3b8(%r15)
leaq 0x3c8(%r15), %rdi
movq %rdi, 0x40(%rsp)
callq 0x242a2
movl $0x0, 0x438(%r15)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x440(%r15)
xorl %eax, %eax
movq %rax, 0x450(%r15)
movq %r12, 0x3c8(%r15)
leaq 0x468(%r15), %rcx
movq %rcx, 0x458(%r15)
movq %rax, 0x460(%r15)
movb $0x0, 0x468(%r15)
leaq 0x478(%r15), %rdi
movq %rdi, 0x38(%rsp)
callq 0x242a2
movl $0x0, 0x4e8(%r15)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x4f0(%r15)
xorl %eax, %eax
movq %rax, 0x500(%r15)
movq %r12, 0x478(%r15)
leaq 0x518(%r15), %rcx
movq %rcx, 0x508(%r15)
movq %rax, 0x510(%r15)
movb $0x0, 0x518(%r15)
leaq 0x528(%r15), %rdi
movq %rdi, 0x98(%rsp)
callq 0x21be2
movq %r14, 0x528(%r15)
xorl %eax, %eax
movq %rax, 0x598(%r15)
leaq 0x5b0(%r15), %rcx
movq %rcx, 0x5a0(%r15)
movq %rax, 0x5a8(%r15)
movb $0x0, 0x5b0(%r15)
leaq 0x5c0(%r15), %rdi
movq %rdi, 0x90(%rsp)
callq 0x21be2
movq %r14, 0x5c0(%r15)
xorl %eax, %eax
movq %rax, 0x630(%r15)
leaq 0x648(%r15), %rcx
movq %rcx, 0x638(%r15)
movq %rax, 0x640(%r15)
movb $0x0, 0x648(%r15)
leaq 0x658(%r15), %rdi
movq %rdi, 0x88(%rsp)
callq 0x21be2
movq %r14, 0x658(%r15)
xorl %eax, %eax
movq %rax, 0x6c8(%r15)
leaq 0x6e0(%r15), %rcx
movq %rcx, 0x6d0(%r15)
movq %rax, 0x6d8(%r15)
movb $0x0, 0x6e0(%r15)
leaq 0x6f0(%r15), %rdi
movq %rdi, 0x80(%rsp)
callq 0x21be2
movq %r14, 0x6f0(%r15)
xorl %eax, %eax
movq %rax, 0x760(%r15)
leaq 0x778(%r15), %rcx
movq %rcx, 0x768(%r15)
movq %rax, 0x770(%r15)
movb $0x0, 0x778(%r15)
leaq 0x788(%r15), %rdi
movq %rdi, 0x78(%rsp)
callq 0x21be2
movq %r14, 0x788(%r15)
xorl %eax, %eax
movq %rax, 0x7f8(%r15)
leaq 0x810(%r15), %rcx
movq %rcx, 0x800(%r15)
movq %rax, 0x808(%r15)
movb $0x0, 0x810(%r15)
leaq 0x820(%r15), %rdi
movq %rdi, 0x70(%rsp)
callq 0x21be2
movq %r14, 0x820(%r15)
xorl %eax, %eax
movq %rax, 0x890(%r15)
leaq 0x8a8(%r15), %rcx
movq %rcx, 0x898(%r15)
movq %rax, 0x8a0(%r15)
movb $0x0, 0x8a8(%r15)
leaq 0x8b8(%r15), %rdi
movq %rdi, 0x68(%rsp)
callq 0x21be2
movq %r14, 0x8b8(%r15)
xorl %eax, %eax
movq %rax, 0x928(%r15)
leaq 0x940(%r15), %rcx
movq %rcx, 0x930(%r15)
movq %rax, 0x938(%r15)
movb $0x0, 0x940(%r15)
leaq 0x950(%r15), %rdi
movq %rdi, 0x60(%rsp)
callq 0x21be2
movq %r14, 0x950(%r15)
xorl %eax, %eax
movq %rax, 0x9c0(%r15)
leaq 0x9d8(%r15), %rcx
movq %rcx, 0x9c8(%r15)
movq %rax, 0x9d0(%r15)
movb $0x0, 0x9d8(%r15)
leaq 0x9e8(%r15), %rdi
movq %rdi, 0x30(%rsp)
callq 0x242a2
movl $0x0, 0xa58(%r15)
xorpd %xmm0, %xmm0
movupd %xmm0, 0xa60(%r15)
xorl %r14d, %r14d
movq %r14, 0xa70(%r15)
movq %r12, 0x9e8(%r15)
leaq 0xa88(%r15), %rax
movq %rax, 0xa78(%r15)
movq %r14, 0xa80(%r15)
movb $0x0, 0xa88(%r15)
leaq 0xa98(%r15), %rdi
movq %rdi, 0x28(%rsp)
callq 0x242a2
movl %r14d, 0xb08(%r15)
xorpd %xmm0, %xmm0
movupd %xmm0, 0xb10(%r15)
movq %r14, 0xb20(%r15)
movq %r12, 0xa98(%r15)
leaq 0xb38(%r15), %rax
movq %rax, 0xb28(%r15)
movq %r14, 0xb30(%r15)
movb $0x0, 0xb38(%r15)
leaq 0xb58(%r15), %rax
movl %r14d, 0xb58(%r15)
movq %r14, 0xb60(%r15)
movq %rax, 0xb68(%r15)
movq %rax, 0xb70(%r15)
movq %r14, 0xb78(%r15)
movq $0x1, 0xb80(%r15)
leaq 0xd8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12f5aa(%rip), %rsi    # 0x14e18a
leaq 0x12f5a7(%rip), %rdx    # 0x14e18e
leaq 0xc8(%rsp), %rbp
movq %rbp, %rdi
callq 0x17586
leaq 0xf0(%rsp), %r14
movl $0x0, -0x8(%r14)
leaq 0x100(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x12f575(%rip), %rsi    # 0x14e18f
leaq 0x12f574(%rip), %rdx    # 0x14e195
movq %r14, %rdi
callq 0x17586
leaq 0xb88(%r15), %rdi
leaq 0xc8(%rsp), %rsi
movl $0x1, 0x48(%rsi)
leaq 0x8(%rsp), %rcx
leaq 0x128(%rsp), %r8
movl $0x2, %edx
movq %rdi, 0x58(%rsp)
callq 0x25dd4
movq $-0x50, %r14
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0x1ec77
movq (%r13), %rsi
incq %rsi
callq 0xb2f0
addq $-0x28, %r13
addq $0x28, %r14
jne 0x1ec62
leaq 0xbb8(%r15), %rax
movq %rax, 0x50(%rsp)
xorpd %xmm0, %xmm0
movupd %xmm0, 0xbb8(%r15)
xorl %eax, %eax
movq %rax, 0xbc8(%r15)
leaq 0xbe0(%r15), %rcx
movl $0x0, 0xbe0(%r15)
movq %rax, 0xbe8(%r15)
movq %rcx, 0xbf0(%r15)
movq %rcx, 0xbf8(%r15)
movq %rax, 0xc00(%r15)
leaq 0xc08(%r15), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1e5e8
movq (%rbx), %rax
movq (%rax), %rax
movq 0x1098(%rax), %rax
movq 0x390(%rax), %rax
movq %rax, 0xc20(%r15)
xorpd %xmm0, %xmm0
movupd %xmm0, 0xc28(%r15)
movq $0x0, 0xc38(%r15)
movl $0x14, %edi
movq %r14, 0x120(%rsp)
callq 0xb2e0
movq %rax, 0xc28(%r15)
movq %rax, 0xc30(%r15)
movq %rax, %rcx
addq $0x14, %rcx
movq %rcx, 0xc38(%r15)
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
movl $0x0, 0x10(%rax)
movq %rcx, 0xc30(%r15)
leaq 0xc50(%r15), %rbx
movq %rbx, 0xc40(%r15)
movq $0x0, 0xc48(%r15)
movb $0x0, 0xc50(%r15)
movq 0xc20(%r15), %rbp
movl 0x272c(%rbp), %eax
leal -0x1(%rax), %ecx
testl %ecx, %eax
jne 0x1feeb
movl 0x2730(%rbp), %eax
leal -0x1(%rax), %ecx
testl %ecx, %eax
jne 0x1ff0a
movl 0x2744(%rbp), %ecx
imull 0x2740(%rbp), %ecx
leal 0x7(%rcx), %eax
testl %ecx, %ecx
cmovnsl %ecx, %eax
sarl $0x3, %eax
xorl %ecx, %ecx
cmpl $0x2, %eax
jb 0x1edd0
xorl %ecx, %ecx
movl %eax, %edx
sarl %edx
incl %ecx
cmpl $0x1, %edx
ja 0x1edc7
movl %ecx, 0xc64(%r15)
movl $0x1, %edx
shll %cl, %edx
cmpl %eax, %edx
jne 0x1ff29
movw $0x0, 0xc60(%r15)
leaq 0x185631(%rip), %rsi    # 0x1a4428
leaq 0xc8(%rsp), %rdi
movl $0x4, %ecx
xorl %edx, %edx
movq %rbx, 0x118(%rsp)
callq 0xb310
leaq 0x12e583(%rip), %rsi    # 0x14d39d
leaq 0xc8(%rsp), %r14
movq %r14, %rdi
callq 0xb100
movl %eax, %ebx
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x1ee44
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x18(%rsp), %r13
testl %ebx, %ebx
movq (%rsp), %rbx
jne 0x1ef65
leaq 0x8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x12e50c(%rip), %rsi    # 0x14d370
leaq 0x12e50c(%rip), %rdx    # 0x14d377
callq 0x17586
leaq 0xc8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
movq %rbx, %rsi
callq 0x13b32
leaq 0x12e4ec(%rip), %rsi    # 0x14d378
leaq 0xc8(%rsp), %r14
movq %r14, %rdi
callq 0xb100
movl %eax, %ebx
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x1eeb6
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x1eecd
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xb2f0
testl %ebx, %ebx
movq (%rsp), %rbx
je 0x1ef65
leaq 0xc8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x12e485(%rip), %rsi    # 0x14d370
leaq 0x12e485(%rip), %rdx    # 0x14d377
callq 0x17586
leaq 0x5c8(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
movq %rbx, %rsi
callq 0x13b32
leaq 0x5c8(%rsp), %rsi
movq %r15, %rdi
callq 0x25e58
leaq 0x5d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ef40
movq 0x5d8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0xc8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1ef5d
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movb $0x1, 0xc60(%r15)
movl 0xb80(%r15), %ebx
cmpl $0x1, %ebx
jne 0x1ef76
xorl %r14d, %r14d
jmp 0x1efab
leaq 0x1854ab(%rip), %rsi    # 0x1a4428
leaq 0xc8(%rsp), %rdi
movl $0x5, %ecx
xorl %edx, %edx
callq 0xb310
leaq 0x12f2e2(%rip), %rsi    # 0x14e27a
leaq 0xc8(%rsp), %rdi
callq 0xb100
testl %eax, %eax
sete %r14b
cmpl $0x1, %ebx
je 0x1efcd
movq 0xc8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1efcd
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xb2f0
testb %r14b, %r14b
je 0x1efe3
movl 0x2738(%rbp), %eax
leal -0x1(%rax), %ecx
testl %ecx, %eax
jne 0x1ff48
movq 0xc20(%r15), %rcx
movq 0xc28(%r15), %rax
movl 0x2744(%rcx), %edx
leal 0x7(%rdx), %esi
testl %edx, %edx
cmovnsl %edx, %esi
sarl $0x3, %esi
movq 0xc30(%r15), %rdx
movslq %esi, %rsi
movq %rsi, 0xb48(%r15)
subq %rax, %rdx
movq (%rsp), %r14
je 0x1f06a
sarq $0x2, %rdx
movq 0xb48(%r15), %rsi
xorl %edi, %edi
movl 0x272c(%rbp,%rdi,4), %r8d
movl $0x0, %r9d
cmpl $0x2, %r8d
jb 0x1f04c
xorl %r9d, %r9d
sarl %r8d
incl %r9d
cmpl $0x1, %r8d
ja 0x1f040
movl %r9d, (%rax,%rdi,4)
movslq 0x272c(%rbp,%rdi,4), %r8
imulq %r8, %rsi
incl %edi
cmpq %rdi, %rdx
ja 0x1f029
movq %rsi, 0xb48(%r15)
movl 0x2740(%rcx), %ecx
xorl %edx, %edx
cmpl $0x2, %ecx
jb 0x1f082
xorl %edx, %edx
sarl %ecx
incl %edx
cmpl $0x1, %ecx
ja 0x1f079
subl %edx, 0x10(%rax)
leaq 0x8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x12f229(%rip), %rsi    # 0x14e2bd
leaq 0x12f22d(%rip), %rdx    # 0x14e2c8
callq 0x17586
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x17106
movq %rax, %rbx
addq $0x8, %r14
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x1f0cb
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xb2f0
cmpq %r14, %rbx
je 0x1f15d
leaq 0x138(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12f1d6(%rip), %rsi    # 0x14e2bd
leaq 0x12f1da(%rip), %rdx    # 0x14e2c8
leaq 0x128(%rsp), %rdi
callq 0x17586
leaq 0x8(%rsp), %rdi
leaq 0x128(%rsp), %rdx
movq (%rsp), %rsi
callq 0x13b32
leaq 0x8(%rsp), %rsi
movq 0x58(%rsp), %rdi
callq 0x267d0
movl (%rax), %eax
movl %eax, 0xb84(%r15)
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x1f140
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x128(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f15d
movq 0x138(%rsp), %rsi
incq %rsi
callq 0xb2f0
cmpl $0x0, 0xb84(%r15)
movq 0xb8(%rsp), %r13
je 0x1f196
movq 0xb48(%r15), %rsi
sarq $0xc, %rsi
movq %rsi, 0xbd0(%r15)
leaq 0x8(%rsp), %rdx
movl $0xffffffff, (%rdx)     # imm = 0xFFFFFFFF
movq 0x50(%rsp), %rdi
callq 0x2684c
leaq 0x5b8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12f120(%rip), %rsi    # 0x14e2c9
leaq 0x12f126(%rip), %rdx    # 0x14e2d6
leaq 0x5a8(%rsp), %rdi
callq 0x17586
leaq 0x5a8(%rsp), %rsi
movq 0xc0(%rsp), %rdi
callq 0x2386a
movq %rax, %rbx
leaq 0x598(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12f0ee(%rip), %rsi    # 0x14e2d7
leaq 0x12f108(%rip), %rdx    # 0x14e2f8
leaq 0x588(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x588(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x588(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f232
movq 0x598(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x5a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f24f
movq 0x5b8(%rsp), %rsi
incq %rsi
callq 0xb2f0
cvtsi2sdq 0xb48(%r15), %xmm0
movsd %xmm0, 0x78(%r15)
leaq 0x578(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12f088(%rip), %rsi    # 0x14e2f9
leaq 0x12f08c(%rip), %rdx    # 0x14e304
leaq 0x568(%rsp), %rdi
callq 0x17586
leaq 0x568(%rsp), %rsi
movq 0xb0(%rsp), %rdi
callq 0x2386a
movq %rax, %rbx
leaq 0x558(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12f054(%rip), %rsi    # 0x14e305
leaq 0x12f06c(%rip), %rdx    # 0x14e324
leaq 0x548(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x548(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x548(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f2fa
movq 0x558(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x568(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f317
movq 0x578(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x538(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12effb(%rip), %rsi    # 0x14e325
leaq 0x12f005(%rip), %rdx    # 0x14e336
leaq 0x528(%rsp), %rdi
callq 0x17586
leaq 0x528(%rsp), %rsi
movq 0xa8(%rsp), %rdi
callq 0x2386a
movq %rax, %rbx
leaq 0x518(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12efcd(%rip), %rsi    # 0x14e337
leaq 0x12efe9(%rip), %rdx    # 0x14e35a
leaq 0x508(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x508(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x508(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f3b3
movq 0x518(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x528(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f3d0
movq 0x538(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq (%rsp), %rax
movl 0x44(%rax), %esi
movq %r13, %rdi
callq 0x2540c
leaq 0x4f8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12f2de(%rip), %rsi    # 0x14e6d0
leaq 0x12f2e4(%rip), %rdx    # 0x14e6dd
leaq 0x4e8(%rsp), %rdi
callq 0x17586
leaq 0x4e8(%rsp), %rsi
movq %r13, %rdi
callq 0x23e04
movq %rax, %rbx
leaq 0x4d8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12ef2e(%rip), %rsi    # 0x14e35b
leaq 0x12ef58(%rip), %rdx    # 0x14e38c
leaq 0x4c8(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x4c8(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x4c8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f476
movq 0x4d8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x4e8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f493
movq 0x4f8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq (%rsp), %rax
movl 0x44(%rax), %esi
movq 0x48(%rsp), %rdi
callq 0x2540c
leaq 0x4b8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12f27d(%rip), %rsi    # 0x14e734
leaq 0x12f284(%rip), %rdx    # 0x14e742
leaq 0x4a8(%rsp), %rdi
callq 0x17586
leaq 0x4a8(%rsp), %rsi
movq 0x48(%rsp), %rdi
callq 0x23e04
movq %rax, %rbx
leaq 0x498(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12ee99(%rip), %rsi    # 0x14e38d
leaq 0x12eec4(%rip), %rdx    # 0x14e3bf
leaq 0x488(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x488(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x488(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f53d
movq 0x498(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x4a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f55a
movq 0x4b8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movl 0x272c(%rbp), %esi
movq 0x40(%rsp), %rdi
callq 0x2540c
leaq 0x478(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12ee43(%rip), %rsi    # 0x14e3c0
leaq 0x12ee59(%rip), %rdx    # 0x14e3dd
leaq 0x468(%rsp), %rdi
callq 0x17586
leaq 0x468(%rsp), %rsi
movq 0x40(%rsp), %rdi
callq 0x23e04
movq %rax, %rbx
leaq 0x458(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12ee24(%rip), %rsi    # 0x14e3de
leaq 0x12ee4d(%rip), %rdx    # 0x14e40e
leaq 0x448(%rsp), %rdi
callq 0x17586
addq $0x28, %rbx
leaq 0x448(%rsp), %rsi
movq %rbx, %rdi
callq 0xb1c0
movq 0x448(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f5ff
movq 0x458(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x468(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f61c
movq 0x478(%rsp), %rsi
incq %rsi
callq 0xb2f0
movl 0x272c(%rbp), %esi
movq 0x38(%rsp), %rdi
callq 0x2540c
leaq 0x438(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12edd0(%rip), %rsi    # 0x14e40f
leaq 0x12ede7(%rip), %rdx    # 0x14e42d
leaq 0x428(%rsp), %rdi
callq 0x17586
leaq 0x428(%rsp), %rsi
movq 0x38(%rsp), %rdi
callq 0x23e04
movq %rax, %rbx
leaq 0x418(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12edb2(%rip), %rsi    # 0x14e42e
leaq 0x12ede0(%rip), %rdx    # 0x14e463
leaq 0x408(%rsp), %rdi
callq 0x17586
addq $0x28, %rbx
leaq 0x408(%rsp), %rsi
movq %rbx, %rdi
callq 0xb1c0
movq 0x408(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f6c1
movq 0x418(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x428(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f6de
movq 0x438(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x3f8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12ed73(%rip), %rsi    # 0x14e464
leaq 0x12ed83(%rip), %rdx    # 0x14e47b
leaq 0x3e8(%rsp), %rdi
callq 0x17586
leaq 0x3e8(%rsp), %rsi
movq 0xa0(%rsp), %rdi
callq 0x2386a
movq %rax, %rbx
leaq 0x3d8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12ed4b(%rip), %rsi    # 0x14e47c
leaq 0x12ed89(%rip), %rdx    # 0x14e4c1
leaq 0x3c8(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x3c8(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x3c8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f77a
movq 0x3d8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x3e8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f797
movq 0x3f8(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x3b8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12ed18(%rip), %rsi    # 0x14e4c2
leaq 0x12ed2a(%rip), %rdx    # 0x14e4db
leaq 0x3a8(%rsp), %rdi
callq 0x17586
leaq 0x3a8(%rsp), %rsi
movq 0x98(%rsp), %rdi
callq 0x2386a
movq %rax, %rbx
leaq 0x398(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12ecf2(%rip), %rsi    # 0x14e4dc
leaq 0x12ed26(%rip), %rdx    # 0x14e517
leaq 0x388(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x388(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x388(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f833
movq 0x398(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x3a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f850
movq 0x3b8(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x378(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12ecb5(%rip), %rsi    # 0x14e518
leaq 0x12ecbf(%rip), %rdx    # 0x14e529
leaq 0x368(%rsp), %rdi
callq 0x17586
leaq 0x368(%rsp), %rsi
movq 0x90(%rsp), %rdi
callq 0x2386a
movq %rax, %rbx
leaq 0x358(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12ec87(%rip), %rsi    # 0x14e52a
leaq 0x12eca7(%rip), %rdx    # 0x14e551
leaq 0x348(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x348(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x348(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f8ec
movq 0x358(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x368(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f909
movq 0x378(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x338(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12ec36(%rip), %rsi    # 0x14e552
leaq 0x12ec43(%rip), %rdx    # 0x14e566
leaq 0x328(%rsp), %rdi
callq 0x17586
leaq 0x328(%rsp), %rsi
movq 0x88(%rsp), %rdi
callq 0x2386a
movq %rax, %rbx
leaq 0x318(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12ec0b(%rip), %rsi    # 0x14e567
leaq 0x12ec22(%rip), %rdx    # 0x14e585
leaq 0x308(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x308(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x308(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f9a5
movq 0x318(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x328(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f9c2
movq 0x338(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x2f8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12ebb1(%rip), %rsi    # 0x14e586
leaq 0x12ebc3(%rip), %rdx    # 0x14e59f
leaq 0x2e8(%rsp), %rdi
callq 0x17586
leaq 0x2e8(%rsp), %rsi
movq 0x80(%rsp), %rdi
callq 0x2386a
movq %rax, %rbx
leaq 0x2d8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12eb8b(%rip), %rsi    # 0x14e5a0
leaq 0x12eb9c(%rip), %rdx    # 0x14e5b8
leaq 0x2c8(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x2c8(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x2c8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fa5e
movq 0x2d8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x2e8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fa7b
movq 0x2f8(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x2b8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12eb2b(%rip), %rsi    # 0x14e5b9
leaq 0x12eb3e(%rip), %rdx    # 0x14e5d3
leaq 0x2a8(%rsp), %rdi
callq 0x17586
leaq 0x2a8(%rsp), %rsi
movq 0x78(%rsp), %rdi
callq 0x2386a
movq %rax, %rbx
leaq 0x298(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12eb09(%rip), %rsi    # 0x14e5d4
leaq 0x12eb1b(%rip), %rdx    # 0x14e5ed
leaq 0x288(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x288(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x288(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fb14
movq 0x298(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x2a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fb31
movq 0x2b8(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x278(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12eaaa(%rip), %rsi    # 0x14e5ee
leaq 0x12eab7(%rip), %rdx    # 0x14e602
leaq 0x268(%rsp), %rdi
callq 0x17586
leaq 0x268(%rsp), %rsi
movq 0x70(%rsp), %rdi
callq 0x2386a
movq %rax, %rbx
leaq 0x258(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12ea82(%rip), %rsi    # 0x14e603
leaq 0x12eaae(%rip), %rdx    # 0x14e636
leaq 0x248(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x248(%rsp), %rsi
callq 0xb1c0
movl $0x6, 0x48(%rbx)
movq 0x248(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fbca
movq 0x258(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x268(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fbe7
movq 0x278(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x238(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12ea3d(%rip), %rsi    # 0x14e637
leaq 0x12ea4f(%rip), %rdx    # 0x14e650
leaq 0x228(%rsp), %rdi
callq 0x17586
leaq 0x228(%rsp), %rsi
movq 0x68(%rsp), %rdi
callq 0x2386a
movq %rax, %rbx
leaq 0x218(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12ea1a(%rip), %rsi    # 0x14e651
leaq 0x12ea40(%rip), %rdx    # 0x14e67e
leaq 0x208(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x208(%rsp), %rsi
callq 0xb1c0
movl $0x6, 0x48(%rbx)
movq 0x208(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fc80
movq 0x218(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x228(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fc9d
movq 0x238(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x1f8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12e9cf(%rip), %rsi    # 0x14e67f
leaq 0x12e9e2(%rip), %rdx    # 0x14e699
leaq 0x1e8(%rsp), %rdi
callq 0x17586
leaq 0x1e8(%rsp), %rsi
movq 0x60(%rsp), %rdi
callq 0x2386a
movq %rax, %rbx
leaq 0x1d8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12e9ad(%rip), %rsi    # 0x14e69a
leaq 0x12e9d4(%rip), %rdx    # 0x14e6c8
leaq 0x1c8(%rsp), %rdi
callq 0x17586
leaq 0x28(%rbx), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0xb1c0
movl $0x6, 0x48(%rbx)
movq 0x1c8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fd36
movq 0x1d8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x1e8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fd53
movq 0x1f8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq (%rsp), %rax
movl 0x44(%rax), %esi
movq 0x30(%rsp), %rdi
callq 0x2540c
leaq 0x1b8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12e952(%rip), %rsi    # 0x14e6c9
leaq 0x12e95f(%rip), %rdx    # 0x14e6dd
leaq 0x1a8(%rsp), %rdi
callq 0x17586
leaq 0x1a8(%rsp), %rsi
movq 0x30(%rsp), %rdi
callq 0x23e04
movq %rax, %rbx
leaq 0x198(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12e92a(%rip), %rsi    # 0x14e6de
leaq 0x12e971(%rip), %rdx    # 0x14e72c
leaq 0x188(%rsp), %rdi
callq 0x17586
addq $0x28, %rbx
leaq 0x188(%rsp), %rsi
movq %rbx, %rdi
callq 0xb1c0
movq 0x188(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fdf9
movq 0x198(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x1a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fe16
movq 0x1b8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq (%rsp), %rax
movl 0x44(%rax), %esi
movq 0x28(%rsp), %rdi
callq 0x2540c
leaq 0x178(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12e8f3(%rip), %rsi    # 0x14e72d
leaq 0x12e901(%rip), %rdx    # 0x14e742
leaq 0x168(%rsp), %rdi
callq 0x17586
leaq 0x168(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0x23e04
movq %rax, %rbx
leaq 0x158(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12e8cc(%rip), %rsi    # 0x14e743
leaq 0x12e914(%rip), %rdx    # 0x14e792
leaq 0x148(%rsp), %rdi
callq 0x17586
addq $0x28, %rbx
leaq 0x148(%rsp), %rsi
movq %rbx, %rdi
callq 0xb1c0
movq 0x148(%rsp), %rdi
cmpq %r12, %rdi
je 0x1febc
movq 0x158(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x168(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fed9
movq 0x178(%rsp), %rsi
incq %rsi
callq 0xb2f0
addq $0x5e8, %rsp            # imm = 0x5E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x12e2a4(%rip), %rdi    # 0x14e196
leaq 0x12e2b8(%rip), %rsi    # 0x14e1b1
leaq 0x12e2be(%rip), %rcx    # 0x14e1be
movl $0x73, %edx
callq 0xb200
leaq 0x12e33b(%rip), %rdi    # 0x14e24c
leaq 0x12e299(%rip), %rsi    # 0x14e1b1
leaq 0x12e29f(%rip), %rcx    # 0x14e1be
movl $0x74, %edx
callq 0xb200
leaq 0x12e337(%rip), %rdi    # 0x14e267
leaq 0x12e27a(%rip), %rsi    # 0x14e1b1
leaq 0x12e280(%rip), %rcx    # 0x14e1be
movl $0x78, %edx
callq 0xb200
leaq 0x12e331(%rip), %rdi    # 0x14e280
leaq 0x12e25b(%rip), %rsi    # 0x14e1b1
leaq 0x12e261(%rip), %rcx    # 0x14e1be
movl $0x87, %edx
callq 0xb200
movq %rax, %rbx
leaq 0x5d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ff90
movq 0x5d8(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x1ff90
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %r12, %rdi
je 0x20666
movq 0xd8(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
jmp 0x20537
jmp 0x20663
jmp 0x20663
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x1ffe6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x1ffe6
jmp 0x20663
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x138(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x148(%rsp), %rdi
cmpq %r12, %rdi
je 0x20030
movq 0x158(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20030
jmp 0x2002d
movq %rax, %rbx
movq 0x168(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x178(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x188(%rsp), %rdi
cmpq %r12, %rdi
je 0x2007a
movq 0x198(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x2007a
jmp 0x20077
movq %rax, %rbx
movq 0x1a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x1b8(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x1c8(%rsp), %rdi
cmpq %r12, %rdi
je 0x200c4
movq 0x1d8(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x200c4
jmp 0x200c1
movq %rax, %rbx
movq 0x1e8(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x1f8(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x208(%rsp), %rdi
cmpq %r12, %rdi
je 0x2010e
movq 0x218(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x2010e
jmp 0x2010b
movq %rax, %rbx
movq 0x228(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x238(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x248(%rsp), %rdi
cmpq %r12, %rdi
je 0x20158
movq 0x258(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20158
jmp 0x20155
movq %rax, %rbx
movq 0x268(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x278(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x288(%rsp), %rdi
cmpq %r12, %rdi
je 0x201a2
movq 0x298(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x201a2
jmp 0x2019f
movq %rax, %rbx
movq 0x2a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x2b8(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x2c8(%rsp), %rdi
cmpq %r12, %rdi
je 0x201ec
movq 0x2d8(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x201ec
jmp 0x201e9
movq %rax, %rbx
movq 0x2e8(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x2f8(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x308(%rsp), %rdi
cmpq %r12, %rdi
je 0x20236
movq 0x318(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20236
jmp 0x20233
movq %rax, %rbx
movq 0x328(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x338(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x348(%rsp), %rdi
cmpq %r12, %rdi
je 0x20280
movq 0x358(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20280
jmp 0x2027d
movq %rax, %rbx
movq 0x368(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x378(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x388(%rsp), %rdi
cmpq %r12, %rdi
je 0x202ca
movq 0x398(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x202ca
jmp 0x202c7
movq %rax, %rbx
movq 0x3a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x3b8(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x3c8(%rsp), %rdi
cmpq %r12, %rdi
je 0x20314
movq 0x3d8(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20314
jmp 0x20311
movq %rax, %rbx
movq 0x3e8(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x3f8(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x408(%rsp), %rdi
cmpq %r12, %rdi
je 0x2035e
movq 0x418(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x2035e
jmp 0x2035b
movq %rax, %rbx
movq 0x428(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x438(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x448(%rsp), %rdi
cmpq %r12, %rdi
je 0x203a8
movq 0x458(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x203a8
jmp 0x203a5
movq %rax, %rbx
movq 0x468(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x478(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x488(%rsp), %rdi
cmpq %r12, %rdi
je 0x203f2
movq 0x498(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x203f2
jmp 0x203ef
movq %rax, %rbx
movq 0x4a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x4b8(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x4c8(%rsp), %rdi
cmpq %r12, %rdi
je 0x2043c
movq 0x4d8(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x2043c
jmp 0x20439
movq %rax, %rbx
movq 0x4e8(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x4f8(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x508(%rsp), %rdi
cmpq %r12, %rdi
je 0x20486
movq 0x518(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20486
jmp 0x20483
movq %rax, %rbx
movq 0x528(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x538(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x548(%rsp), %rdi
cmpq %r12, %rdi
je 0x204d0
movq 0x558(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x204d0
jmp 0x204cd
movq %rax, %rbx
movq 0x568(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x578(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x588(%rsp), %rdi
cmpq %r12, %rdi
je 0x20517
movq 0x598(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20517
jmp 0x20514
movq %rax, %rbx
movq 0x5a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x20666
movq 0x5b8(%rsp), %rsi
jmp 0x2054d
jmp 0x20663
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x20666
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20666
jmp 0x20663
jmp 0x20663
movq %rax, %rbx
jmp 0x206a3
movq %rax, %rbx
jmp 0x206c2
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xb581
movb $0x1, %al
jmp 0x2059f
movq %rax, %rbx
xorl %eax, %eax
jmp 0x2059f
movq %rax, %rbx
xorl %eax, %eax
movq %rbp, %r14
cmpq %r14, %rbp
sete %cl
orb %al, %cl
jne 0x206f4
leaq 0xc8(%rsp), %r12
movq -0x28(%r14), %rdi
leaq -0x18(%r14), %rax
cmpq %rdi, %rax
je 0x205cd
movq (%rax), %rsi
incq %rsi
callq 0xb2f0
addq $-0x28, %r14
cmpq %r12, %r14
jne 0x205b5
jmp 0x206f4
movq %rax, %rbx
jmp 0x2070d
movq %rax, %rbx
jmp 0x20717
movq %rax, %rbx
jmp 0x20721
movq %rax, %rbx
jmp 0x2072b
movq %rax, %rbx
jmp 0x20735
movq %rax, %rbx
jmp 0x2073f
movq %rax, %rbx
jmp 0x2074c
movq %rax, %rbx
jmp 0x20759
movq %rax, %rbx
jmp 0x20766
movq %rax, %rbx
jmp 0x20773
movq %rax, %rbx
jmp 0x2077d
movq %rax, %rbx
jmp 0x20787
movq %rax, %rbx
jmp 0x20794
movq %rax, %rbx
jmp 0x2079e
movq %rax, %rbx
jmp 0x207ab
movq %rax, %rbx
jmp 0x207b8
movq %rax, %rbx
jmp 0x207c5
movq %rax, %rbx
leaq 0xc28(%r15), %r14
movq 0xc40(%r15), %rdi
movq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x2068c
movq (%rax), %rsi
incq %rsi
callq 0xb2f0
movq (%r14), %rdi
testq %rdi, %rdi
je 0x206a3
movq 0xc38(%r15), %rsi
subq %rdi, %rsi
callq 0xb2f0
movq 0x120(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x206c2
movq 0xc18(%r15), %rsi
subq %rdi, %rsi
callq 0xb2f0
leaq 0xbd8(%r15), %rdi
callq 0x280b8
movq 0x50(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x206ea
movq 0xbc8(%r15), %rsi
subq %rdi, %rsi
callq 0xb2f0
movq 0x58(%rsp), %rdi
callq 0x27182
addq $0xb50, %r15            # imm = 0xB50
movq %r15, %rdi
callq 0x28108
movq 0x28(%rsp), %rdi
callq 0x23f1c
movq 0x30(%rsp), %rdi
callq 0x23f1c
movq 0x60(%rsp), %rdi
callq 0x219b2
movq 0x68(%rsp), %rdi
callq 0x219b2
movq 0x70(%rsp), %rdi
callq 0x219b2
movq 0x78(%rsp), %rdi
callq 0x219b2
movq 0x80(%rsp), %rdi
callq 0x219b2
movq 0x88(%rsp), %rdi
callq 0x219b2
movq 0x90(%rsp), %rdi
callq 0x219b2
movq 0x98(%rsp), %rdi
callq 0x219b2
movq 0x38(%rsp), %rdi
callq 0x23f1c
movq 0x40(%rsp), %rdi
callq 0x23f1c
movq 0xa0(%rsp), %rdi
callq 0x219b2
movq 0x48(%rsp), %rdi
callq 0x23f1c
movq 0xb8(%rsp), %rdi
callq 0x23f1c
movq 0xa8(%rsp), %rdi
callq 0x219b2
movq 0xb0(%rsp), %rdi
callq 0x219b2
movq 0xc0(%rsp), %rdi
callq 0x219b2
movq %rbx, %rdi
callq 0xb510