// File: /workspace/github_cpp_makefile_star2_O3/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 $0x5d8, %rsp            # imm = 0x5D8
movq %rdx, %rbx
movq %rsi, 0x8(%rsp)
movq %rdi, %r15
leaq 0x17ee7d(%rip), %rax    # 0x19d4f0
movq %rax, (%rdi)
addq $0x8, %rdi
movq %rdi, 0x120(%rsp)
callq 0x21b38
leaq 0x17eaa2(%rip), %r14    # 0x19d130
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, 0x118(%rsp)
callq 0x21b38
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, 0x110(%rsp)
callq 0x21b38
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 0x242a8
movl $0x0, 0x240(%r15)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x248(%r15)
xorl %eax, %eax
movq %rax, 0x258(%r15)
leaq 0x17eb52(%rip), %r12    # 0x19d2c0
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, 0x40(%rsp)
movq %r13, 0x18(%rsp)
callq 0x242a8
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, 0x108(%rsp)
callq 0x21b38
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, 0x38(%rsp)
callq 0x242a8
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, 0x30(%rsp)
callq 0x242a8
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, 0x100(%rsp)
callq 0x21b38
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, 0xf8(%rsp)
callq 0x21b38
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, 0xf0(%rsp)
callq 0x21b38
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, 0xe8(%rsp)
callq 0x21b38
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, 0xe0(%rsp)
callq 0x21b38
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, 0xd8(%rsp)
callq 0x21b38
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, 0xd0(%rsp)
callq 0x21b38
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, 0xc8(%rsp)
callq 0x21b38
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, 0x28(%rsp)
callq 0x242a8
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, 0x20(%rsp)
callq 0x242a8
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 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12c5fb(%rip), %rsi    # 0x14b1ca
leaq 0x12c5f8(%rip), %rdx    # 0x14b1ce
leaq 0x68(%rsp), %rdi
callq 0x175a0
leaq 0x90(%rsp), %rdi
movl $0x0, -0x8(%rdi)
leaq 0xa0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12c5cd(%rip), %rsi    # 0x14b1cf
leaq 0x12c5cc(%rip), %rdx    # 0x14b1d5
callq 0x175a0
leaq 0xb88(%r15), %rdi
leaq 0x68(%rsp), %rsi
movl $0x1, 0x48(%rsi)
leaq 0x48(%rsp), %rcx
leaq 0x17(%rsp), %r8
movl $0x2, %edx
movq %rdi, 0xc0(%rsp)
callq 0x25e96
movq $-0x50, %r13
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x1ec58
movq (%r14), %rsi
incq %rsi
callq 0xb2f0
addq $-0x28, %r14
addq $0x28, %r13
jne 0x1ec44
leaq 0xbb8(%r15), %rax
movq %rax, 0xb8(%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 0x1e5d0
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 0x18(%rsp), %r13
movq %r14, 0x130(%rsp)
callq 0xb2e0
movq %rax, 0xc28(%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), %rsi
movq %rsi, 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 0x1fe94
movl 0x2730(%rbp), %eax
leal -0x1(%rax), %ecx
testl %ecx, %eax
jne 0x1feb3
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 0x1edb2
xorl %ecx, %ecx
movl %eax, %edx
sarl %edx
incl %ecx
cmpl $0x1, %edx
ja 0x1eda9
movq %rsi, 0x128(%rsp)
movl %ecx, 0xc64(%r15)
movl $0x1, %edx
shll %cl, %edx
cmpl %eax, %edx
jne 0x1fed2
movw $0x0, 0xc60(%r15)
leaq 0x181647(%rip), %rsi    # 0x1a0428
leaq 0x68(%rsp), %rdi
movl $0x4, %ecx
xorl %edx, %edx
callq 0xb310
leaq 0x12b5e4(%rip), %rsi    # 0x14a3dd
leaq 0x68(%rsp), %r14
movq %r14, %rdi
callq 0xb100
movl %eax, %ebx
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x1ee1d
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xb2f0
testl %ebx, %ebx
movq 0x8(%rsp), %r14
jne 0x1ef31
leaq 0x58(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x12b576(%rip), %rsi    # 0x14a3b0
leaq 0x12b576(%rip), %rdx    # 0x14a3b7
leaq 0x48(%rsp), %rdi
callq 0x175a0
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
movq %r14, %rsi
callq 0x13b46
leaq 0x12b554(%rip), %rsi    # 0x14a3b8
leaq 0x68(%rsp), %r14
movq %r14, %rdi
callq 0xb100
movl %eax, %ebx
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x1ee88
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x1ee9f
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xb2f0
testl %ebx, %ebx
movq 0x18(%rsp), %r13
movq 0x8(%rsp), %r14
je 0x1ef31
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x12b4f0(%rip), %rsi    # 0x14a3b0
leaq 0x12b4f0(%rip), %rdx    # 0x14a3b7
callq 0x175a0
leaq 0x5b8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
movq %r14, %rsi
callq 0x13b46
leaq 0x5b8(%rsp), %rsi
movq %r15, %rdi
callq 0x25f1a
leaq 0x5c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ef12
movq 0x5c8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x1ef29
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xb2f0
movb $0x1, 0xc60(%r15)
cmpl $0x1, 0xb80(%r15)
je 0x1ef98
leaq 0x1814e6(%rip), %rsi    # 0x1a0428
leaq 0x68(%rsp), %rdi
movl $0x5, %ecx
xorl %edx, %edx
callq 0xb310
leaq 0x12c360(%rip), %rsi    # 0x14b2ba
leaq 0x68(%rsp), %r14
movq %r14, %rdi
callq 0xb100
movl %eax, %ebx
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x1ef7e
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xb2f0
testl %ebx, %ebx
movq 0x8(%rsp), %r14
jne 0x1ef98
movl 0x2738(%rbp), %eax
leal -0x1(%rax), %ecx
testl %ecx, %eax
jne 0x1fef1
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
je 0x1f014
sarq $0x2, %rdx
xorl %edi, %edi
movl 0x272c(%rbp,%rdi,4), %r8d
movl $0x0, %r9d
cmpl $0x2, %r8d
jb 0x1eff6
xorl %r9d, %r9d
sarl %r8d
incl %r9d
cmpl $0x1, %r8d
ja 0x1efea
movl %r9d, (%rax,%rdi,4)
movslq 0x272c(%rbp,%rdi,4), %r8
imulq %r8, %rsi
incl %edi
cmpq %rdi, %rdx
ja 0x1efd3
movq %rsi, 0xb48(%r15)
movl 0x2740(%rcx), %ecx
xorl %edx, %edx
cmpl $0x2, %ecx
jb 0x1f02c
xorl %edx, %edx
sarl %ecx
incl %edx
cmpl $0x1, %ecx
ja 0x1f023
subl %edx, 0x10(%rax)
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x12c2bf(%rip), %rsi    # 0x14b2fd
leaq 0x12c2c3(%rip), %rdx    # 0x14b308
callq 0x175a0
leaq 0x68(%rsp), %rsi
movq %r14, %rdi
callq 0x1711a
movq %rax, %rbx
addq $0x8, %r14
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f075
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xb2f0
cmpq %r14, %rbx
movq 0x8(%rsp), %r14
je 0x1f0fb
leaq 0x58(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x12c26e(%rip), %rsi    # 0x14b2fd
leaq 0x12c272(%rip), %rdx    # 0x14b308
leaq 0x48(%rsp), %rdi
callq 0x175a0
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
movq %r14, %rsi
callq 0x13b46
leaq 0x68(%rsp), %rsi
movq 0xc0(%rsp), %rdi
callq 0x267f6
movl (%rax), %eax
movl %eax, 0xb84(%r15)
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f0e4
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x48(%rsp), %rdi
cmpq %rbx, %rdi
je 0x1f0fb
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xb2f0
cmpl $0x0, 0xb84(%r15)
je 0x1f12f
movq 0xb48(%r15), %rsi
sarq $0xc, %rsi
movq %rsi, 0xbd0(%r15)
leaq 0x68(%rsp), %rdx
movl $0xffffffff, (%rdx)     # imm = 0xFFFFFFFF
movq 0xb8(%rsp), %rdi
callq 0x26872
leaq 0x5a8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12c1c7(%rip), %rsi    # 0x14b309
leaq 0x12c1cd(%rip), %rdx    # 0x14b316
leaq 0x598(%rsp), %rdi
callq 0x175a0
leaq 0x598(%rsp), %rsi
movq 0x120(%rsp), %rdi
callq 0x23884
movq %rax, %rbx
leaq 0x588(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12c195(%rip), %rsi    # 0x14b317
leaq 0x12c1af(%rip), %rdx    # 0x14b338
leaq 0x578(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x578(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x578(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f1cb
movq 0x588(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x598(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f1e8
movq 0x5a8(%rsp), %rsi
incq %rsi
callq 0xb2f0
cvtsi2sdq 0xb48(%r15), %xmm0
movsd %xmm0, 0x78(%r15)
leaq 0x568(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12c12f(%rip), %rsi    # 0x14b339
leaq 0x12c133(%rip), %rdx    # 0x14b344
leaq 0x558(%rsp), %rdi
callq 0x175a0
leaq 0x558(%rsp), %rsi
movq 0x118(%rsp), %rdi
callq 0x23884
movq %rax, %rbx
leaq 0x548(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12c0fb(%rip), %rsi    # 0x14b345
leaq 0x12c113(%rip), %rdx    # 0x14b364
leaq 0x538(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x538(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x538(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f293
movq 0x548(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x558(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f2b0
movq 0x568(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x528(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12c0a2(%rip), %rsi    # 0x14b365
leaq 0x12c0ac(%rip), %rdx    # 0x14b376
leaq 0x518(%rsp), %rdi
callq 0x175a0
leaq 0x518(%rsp), %rsi
movq 0x110(%rsp), %rdi
callq 0x23884
movq %rax, %rbx
leaq 0x508(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12c074(%rip), %rsi    # 0x14b377
leaq 0x12c090(%rip), %rdx    # 0x14b39a
leaq 0x4f8(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x4f8(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x4f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f34c
movq 0x508(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x518(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f369
movq 0x528(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x8(%rsp), %rax
movl 0x44(%rax), %esi
movq %r13, %rdi
callq 0x254c0
leaq 0x4e8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12c384(%rip), %rsi    # 0x14b710
leaq 0x12c38a(%rip), %rdx    # 0x14b71d
leaq 0x4d8(%rsp), %rdi
callq 0x175a0
leaq 0x4d8(%rsp), %rsi
movq %r13, %rdi
callq 0x23e18
movq %rax, %rbx
leaq 0x4c8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12bfd4(%rip), %rsi    # 0x14b39b
leaq 0x12bffe(%rip), %rdx    # 0x14b3cc
leaq 0x4b8(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x4b8(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x4b8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f410
movq 0x4c8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x4d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f42d
movq 0x4e8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x8(%rsp), %rax
movl 0x44(%rax), %esi
movq 0x40(%rsp), %rdi
callq 0x254c0
leaq 0x4a8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12c322(%rip), %rsi    # 0x14b774
leaq 0x12c329(%rip), %rdx    # 0x14b782
leaq 0x498(%rsp), %rdi
callq 0x175a0
leaq 0x498(%rsp), %rsi
movq 0x40(%rsp), %rdi
callq 0x23e18
movq %rax, %rbx
leaq 0x488(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12bf3e(%rip), %rsi    # 0x14b3cd
leaq 0x12bf69(%rip), %rdx    # 0x14b3ff
leaq 0x478(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x478(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x478(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f4d8
movq 0x488(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x498(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f4f5
movq 0x4a8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movl 0x272c(%rbp), %esi
movq 0x38(%rsp), %rdi
callq 0x254c0
leaq 0x468(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12bee8(%rip), %rsi    # 0x14b400
leaq 0x12befe(%rip), %rdx    # 0x14b41d
leaq 0x458(%rsp), %rdi
callq 0x175a0
leaq 0x458(%rsp), %rsi
movq 0x38(%rsp), %rdi
callq 0x23e18
movq %rax, %rbx
leaq 0x448(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12bec9(%rip), %rsi    # 0x14b41e
leaq 0x12bef2(%rip), %rdx    # 0x14b44e
leaq 0x438(%rsp), %rdi
callq 0x175a0
addq $0x28, %rbx
leaq 0x438(%rsp), %rsi
movq %rbx, %rdi
callq 0xb1c0
movq 0x438(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f59a
movq 0x448(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x458(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f5b7
movq 0x468(%rsp), %rsi
incq %rsi
callq 0xb2f0
movl 0x272c(%rbp), %esi
movq 0x30(%rsp), %rdi
callq 0x254c0
leaq 0x428(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12be75(%rip), %rsi    # 0x14b44f
leaq 0x12be8c(%rip), %rdx    # 0x14b46d
leaq 0x418(%rsp), %rdi
callq 0x175a0
leaq 0x418(%rsp), %rsi
movq 0x30(%rsp), %rdi
callq 0x23e18
movq %rax, %rbx
leaq 0x408(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12be57(%rip), %rsi    # 0x14b46e
leaq 0x12be85(%rip), %rdx    # 0x14b4a3
leaq 0x3f8(%rsp), %rdi
callq 0x175a0
addq $0x28, %rbx
leaq 0x3f8(%rsp), %rsi
movq %rbx, %rdi
callq 0xb1c0
movq 0x3f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f65c
movq 0x408(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x418(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f679
movq 0x428(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x3e8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12be18(%rip), %rsi    # 0x14b4a4
leaq 0x12be28(%rip), %rdx    # 0x14b4bb
leaq 0x3d8(%rsp), %rdi
callq 0x175a0
leaq 0x3d8(%rsp), %rsi
movq 0x108(%rsp), %rdi
callq 0x23884
movq %rax, %rbx
leaq 0x3c8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12bdf0(%rip), %rsi    # 0x14b4bc
leaq 0x12be2e(%rip), %rdx    # 0x14b501
leaq 0x3b8(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x3b8(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x3b8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f715
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x3d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f732
movq 0x3e8(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x3a8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12bdbd(%rip), %rsi    # 0x14b502
leaq 0x12bdcf(%rip), %rdx    # 0x14b51b
leaq 0x398(%rsp), %rdi
callq 0x175a0
leaq 0x398(%rsp), %rsi
movq 0x100(%rsp), %rdi
callq 0x23884
movq %rax, %rbx
leaq 0x388(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12bd97(%rip), %rsi    # 0x14b51c
leaq 0x12bdcb(%rip), %rdx    # 0x14b557
leaq 0x378(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x378(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x378(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f7ce
movq 0x388(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x398(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f7eb
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x368(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12bd5a(%rip), %rsi    # 0x14b558
leaq 0x12bd64(%rip), %rdx    # 0x14b569
leaq 0x358(%rsp), %rdi
callq 0x175a0
leaq 0x358(%rsp), %rsi
movq 0xf8(%rsp), %rdi
callq 0x23884
movq %rax, %rbx
leaq 0x348(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12bd2c(%rip), %rsi    # 0x14b56a
leaq 0x12bd4c(%rip), %rdx    # 0x14b591
leaq 0x338(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x338(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x338(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f887
movq 0x348(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x358(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f8a4
movq 0x368(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x328(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12bcdb(%rip), %rsi    # 0x14b592
leaq 0x12bce8(%rip), %rdx    # 0x14b5a6
leaq 0x318(%rsp), %rdi
callq 0x175a0
leaq 0x318(%rsp), %rsi
movq 0xf0(%rsp), %rdi
callq 0x23884
movq %rax, %rbx
leaq 0x308(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12bcb0(%rip), %rsi    # 0x14b5a7
leaq 0x12bcc7(%rip), %rdx    # 0x14b5c5
leaq 0x2f8(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x2f8(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x2f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f940
movq 0x308(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f95d
movq 0x328(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x2e8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12bc56(%rip), %rsi    # 0x14b5c6
leaq 0x12bc68(%rip), %rdx    # 0x14b5df
leaq 0x2d8(%rsp), %rdi
callq 0x175a0
leaq 0x2d8(%rsp), %rsi
movq 0xe8(%rsp), %rdi
callq 0x23884
movq %rax, %rbx
leaq 0x2c8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12bc30(%rip), %rsi    # 0x14b5e0
leaq 0x12bc41(%rip), %rdx    # 0x14b5f8
leaq 0x2b8(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x2b8(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x2b8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1f9f9
movq 0x2c8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x2d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fa16
movq 0x2e8(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x2a8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12bbd0(%rip), %rsi    # 0x14b5f9
leaq 0x12bbe3(%rip), %rdx    # 0x14b613
leaq 0x298(%rsp), %rdi
callq 0x175a0
leaq 0x298(%rsp), %rsi
movq 0xe0(%rsp), %rdi
callq 0x23884
movq %rax, %rbx
leaq 0x288(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12bbab(%rip), %rsi    # 0x14b614
leaq 0x12bbbd(%rip), %rdx    # 0x14b62d
leaq 0x278(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x278(%rsp), %rsi
callq 0xb1c0
movl $0x0, 0x48(%rbx)
movq 0x278(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fab2
movq 0x288(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x298(%rsp), %rdi
cmpq %r14, %rdi
je 0x1facf
movq 0x2a8(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x268(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12bb4c(%rip), %rsi    # 0x14b62e
leaq 0x12bb59(%rip), %rdx    # 0x14b642
leaq 0x258(%rsp), %rdi
callq 0x175a0
leaq 0x258(%rsp), %rsi
movq 0xd8(%rsp), %rdi
callq 0x23884
movq %rax, %rbx
leaq 0x248(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12bb21(%rip), %rsi    # 0x14b643
leaq 0x12bb4d(%rip), %rdx    # 0x14b676
leaq 0x238(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x238(%rsp), %rsi
callq 0xb1c0
movl $0x6, 0x48(%rbx)
movq 0x238(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fb6b
movq 0x248(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x258(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fb88
movq 0x268(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x228(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12badc(%rip), %rsi    # 0x14b677
leaq 0x12baee(%rip), %rdx    # 0x14b690
leaq 0x218(%rsp), %rdi
callq 0x175a0
leaq 0x218(%rsp), %rsi
movq 0xd0(%rsp), %rdi
callq 0x23884
movq %rax, %rbx
leaq 0x208(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12bab6(%rip), %rsi    # 0x14b691
leaq 0x12badc(%rip), %rdx    # 0x14b6be
leaq 0x1f8(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0xb1c0
movl $0x6, 0x48(%rbx)
movq 0x1f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fc24
movq 0x208(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x218(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fc41
movq 0x228(%rsp), %rsi
incq %rsi
callq 0xb2f0
leaq 0x1e8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12ba6b(%rip), %rsi    # 0x14b6bf
leaq 0x12ba7e(%rip), %rdx    # 0x14b6d9
leaq 0x1d8(%rsp), %rdi
callq 0x175a0
leaq 0x1d8(%rsp), %rsi
movq 0xc8(%rsp), %rdi
callq 0x23884
movq %rax, %rbx
leaq 0x1c8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12ba46(%rip), %rsi    # 0x14b6da
leaq 0x12ba6d(%rip), %rdx    # 0x14b708
leaq 0x1b8(%rsp), %rdi
callq 0x175a0
leaq 0x28(%rbx), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0xb1c0
movl $0x6, 0x48(%rbx)
movq 0x1b8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fcdd
movq 0x1c8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fcfa
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x8(%rsp), %rax
movl 0x44(%rax), %esi
movq 0x28(%rsp), %rdi
callq 0x254c0
leaq 0x1a8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12b9ea(%rip), %rsi    # 0x14b709
leaq 0x12b9f7(%rip), %rdx    # 0x14b71d
leaq 0x198(%rsp), %rdi
callq 0x175a0
leaq 0x198(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0x23e18
movq %rax, %rbx
leaq 0x188(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12b9c2(%rip), %rsi    # 0x14b71e
leaq 0x12ba09(%rip), %rdx    # 0x14b76c
leaq 0x178(%rsp), %rdi
callq 0x175a0
addq $0x28, %rbx
leaq 0x178(%rsp), %rsi
movq %rbx, %rdi
callq 0xb1c0
movq 0x178(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fda1
movq 0x188(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x198(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fdbe
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x8(%rsp), %rax
movl 0x44(%rax), %esi
movq 0x20(%rsp), %rdi
callq 0x254c0
leaq 0x168(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x12b98a(%rip), %rsi    # 0x14b76d
leaq 0x12b998(%rip), %rdx    # 0x14b782
leaq 0x158(%rsp), %rdi
callq 0x175a0
leaq 0x158(%rsp), %rsi
movq 0x20(%rsp), %rdi
callq 0x23e18
movq %rax, %rbx
leaq 0x148(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12b963(%rip), %rsi    # 0x14b783
leaq 0x12b9ab(%rip), %rdx    # 0x14b7d2
leaq 0x138(%rsp), %rdi
callq 0x175a0
addq $0x28, %rbx
leaq 0x138(%rsp), %rsi
movq %rbx, %rdi
callq 0xb1c0
movq 0x138(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fe65
movq 0x148(%rsp), %rsi
incq %rsi
callq 0xb2f0
movq 0x158(%rsp), %rdi
cmpq %r14, %rdi
je 0x1fe82
movq 0x168(%rsp), %rsi
incq %rsi
callq 0xb2f0
addq $0x5d8, %rsp            # imm = 0x5D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x12b33b(%rip), %rdi    # 0x14b1d6
leaq 0x12b34f(%rip), %rsi    # 0x14b1f1
leaq 0x12b355(%rip), %rcx    # 0x14b1fe
movl $0x73, %edx
callq 0xb200
leaq 0x12b3d2(%rip), %rdi    # 0x14b28c
leaq 0x12b330(%rip), %rsi    # 0x14b1f1
leaq 0x12b336(%rip), %rcx    # 0x14b1fe
movl $0x74, %edx
callq 0xb200
leaq 0x12b3ce(%rip), %rdi    # 0x14b2a7
leaq 0x12b311(%rip), %rsi    # 0x14b1f1
leaq 0x12b317(%rip), %rcx    # 0x14b1fe
movl $0x78, %edx
callq 0xb200
leaq 0x12b3c8(%rip), %rdi    # 0x14b2c0
leaq 0x12b2f2(%rip), %rsi    # 0x14b1f1
leaq 0x12b2f8(%rip), %rcx    # 0x14b1fe
movl $0x87, %edx
callq 0xb200
movq %rax, %rbp
leaq 0x5c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x204d5
movq 0x5c8(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x204d5
jmp 0x204d2
jmp 0x205dc
movq %rax, %rbp
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
jne 0x1ff95
jmp 0x205df
jmp 0x205dc
jmp 0x205dc
movq %rax, %rbp
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x1ff87
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x1ff87
jmp 0x205dc
movq %rax, %rbp
movq 0x48(%rsp), %rdi
cmpq %rbx, %rdi
je 0x205df
movq 0x58(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x138(%rsp), %rdi
cmpq %r12, %rdi
je 0x1ffcb
movq 0x148(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x1ffcb
jmp 0x1ffc8
movq %rax, %rbp
movq 0x158(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x168(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x178(%rsp), %rdi
cmpq %r12, %rdi
je 0x20015
movq 0x188(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20015
jmp 0x20012
movq %rax, %rbp
movq 0x198(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x1a8(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x1b8(%rsp), %rdi
cmpq %r12, %rdi
je 0x2005f
movq 0x1c8(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x2005f
jmp 0x2005c
movq %rax, %rbp
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x1e8(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x1f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x200a9
movq 0x208(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x200a9
jmp 0x200a6
movq %rax, %rbp
movq 0x218(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x228(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x238(%rsp), %rdi
cmpq %r12, %rdi
je 0x200f3
movq 0x248(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x200f3
jmp 0x200f0
movq %rax, %rbp
movq 0x258(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x268(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x278(%rsp), %rdi
cmpq %r12, %rdi
je 0x2013d
movq 0x288(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x2013d
jmp 0x2013a
movq %rax, %rbp
movq 0x298(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x2a8(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x2b8(%rsp), %rdi
cmpq %r12, %rdi
je 0x20187
movq 0x2c8(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20187
jmp 0x20184
movq %rax, %rbp
movq 0x2d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x2e8(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x2f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x201d1
movq 0x308(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x201d1
jmp 0x201ce
movq %rax, %rbp
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x328(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x338(%rsp), %rdi
cmpq %r12, %rdi
je 0x2021b
movq 0x348(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x2021b
jmp 0x20218
movq %rax, %rbp
movq 0x358(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x368(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x378(%rsp), %rdi
cmpq %r12, %rdi
je 0x20265
movq 0x388(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20265
jmp 0x20262
movq %rax, %rbp
movq 0x398(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x3a8(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x3b8(%rsp), %rdi
cmpq %r12, %rdi
je 0x202af
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x202af
jmp 0x202ac
movq %rax, %rbp
movq 0x3d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x3e8(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x3f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x202f9
movq 0x408(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x202f9
jmp 0x202f6
movq %rax, %rbp
movq 0x418(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x428(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x438(%rsp), %rdi
cmpq %r12, %rdi
je 0x20343
movq 0x448(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20343
jmp 0x20340
movq %rax, %rbp
movq 0x458(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x468(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x478(%rsp), %rdi
cmpq %r12, %rdi
je 0x2038d
movq 0x488(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x2038d
jmp 0x2038a
movq %rax, %rbp
movq 0x498(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x4a8(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x4b8(%rsp), %rdi
cmpq %r12, %rdi
je 0x203d7
movq 0x4c8(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x203d7
jmp 0x203d4
movq %rax, %rbp
movq 0x4d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x4e8(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x4f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x20421
movq 0x508(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20421
jmp 0x2041e
movq %rax, %rbp
movq 0x518(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x528(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x538(%rsp), %rdi
cmpq %r12, %rdi
je 0x2046b
movq 0x548(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x2046b
jmp 0x20468
movq %rax, %rbp
movq 0x558(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x568(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x578(%rsp), %rdi
cmpq %r12, %rdi
je 0x204b2
movq 0x588(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x204b2
jmp 0x204af
movq %rax, %rbp
movq 0x598(%rsp), %rdi
cmpq %r14, %rdi
je 0x205df
movq 0x5a8(%rsp), %rsi
jmp 0x204e8
jmp 0x205dc
movq %rax, %rbp
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x205df
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x205df
jmp 0x205dc
jmp 0x205dc
movq %rax, %rbp
jmp 0x2061c
movq %rax, %rbp
jmp 0x2063b
movq %rax, %rbp
leaq 0xb8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0xb581
jmp 0x20673
movq %rax, %rbp
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x20673
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xb2f0
jmp 0x20673
movq %rax, %rbp
jmp 0x20673
movq %rax, %rbp
jmp 0x2068c
movq %rax, %rbp
jmp 0x20696
movq %rax, %rbp
jmp 0x206a3
movq %rax, %rbp
jmp 0x206b0
movq %rax, %rbp
jmp 0x206bd
movq %rax, %rbp
jmp 0x206ca
movq %rax, %rbp
jmp 0x206d7
movq %rax, %rbp
jmp 0x206e4
movq %rax, %rbp
jmp 0x206f1
movq %rax, %rbp
jmp 0x206fe
movq %rax, %rbp
jmp 0x20708
movq %rax, %rbp
jmp 0x20712
movq %rax, %rbp
jmp 0x2071f
movq %rax, %rbp
jmp 0x20729
movq %rax, %rbp
jmp 0x20733
movq %rax, %rbp
jmp 0x20740
movq %rax, %rbp
jmp 0x2074d
movq %rax, %rbp
leaq 0xc28(%r15), %rbx
movq 0xc40(%r15), %rdi
movq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x20605
movq (%rax), %rsi
incq %rsi
callq 0xb2f0
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x2061c
movq 0xc38(%r15), %rsi
subq %rdi, %rsi
callq 0xb2f0
movq 0x130(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x2063b
movq 0xc18(%r15), %rsi
subq %rdi, %rsi
callq 0xb2f0
leaq 0xbd8(%r15), %rdi
callq 0x284ae
movq 0xb8(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x20666
movq 0xbc8(%r15), %rsi
subq %rdi, %rsi
callq 0xb2f0
movq 0xc0(%rsp), %rdi
callq 0x271be
addq $0xb50, %r15            # imm = 0xB50
movq %r15, %rdi
callq 0x284fe
movq 0x20(%rsp), %rdi
callq 0x23f36
movq 0x28(%rsp), %rdi
callq 0x23f36
movq 0xc8(%rsp), %rdi
callq 0x2191a
movq 0xd0(%rsp), %rdi
callq 0x2191a
movq 0xd8(%rsp), %rdi
callq 0x2191a
movq 0xe0(%rsp), %rdi
callq 0x2191a
movq 0xe8(%rsp), %rdi
callq 0x2191a
movq 0xf0(%rsp), %rdi
callq 0x2191a
movq 0xf8(%rsp), %rdi
callq 0x2191a
movq 0x100(%rsp), %rdi
callq 0x2191a
movq 0x30(%rsp), %rdi
callq 0x23f36
movq 0x38(%rsp), %rdi
callq 0x23f36
movq 0x108(%rsp), %rdi
callq 0x2191a
movq 0x40(%rsp), %rdi
callq 0x23f36
movq 0x18(%rsp), %rdi
callq 0x23f36
movq 0x110(%rsp), %rdi
callq 0x2191a
movq 0x118(%rsp), %rdi
callq 0x2191a
movq 0x120(%rsp), %rdi
callq 0x2191a
movq %rbp, %rdi
callq 0xb510