// File: /workspace/github_cpp_makefile_star2_O1/Sooryakiran[P]dotV/src/verilog.cpp
// Function: CARRY_RIPPLE_ADDER::CARRY_RIPPLE_ADDER(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int)
CARRY_RIPPLE_ADDER::CARRY_RIPPLE_ADDER(string name, vector<wire> input_wires, wire output_wire, int n_bits){
    /*------------------------------------------------------------------------------------------
    First we set up inputs and output vectors. The Chip parent expects everything to be of type
    vector<string>, so we set up that accordingly. 

    We also set up the bit width and name of the instance.    
    ------------------------------------------------------------------------------------------*/
    this->name = name;
    this->inputs = input_wires;
    this->outputs.push_back(output_wire);
    this->n_bits = n_bits;

    /*------------------------------------------------------------------------------------------
    Now we declare input and output ports. Note that these are generic input ports and instance
    independent where as the previous 'input_wires' will be different for each instance. 
    ------------------------------------------------------------------------------------------*/
    this->declare("A", CHIP_INPUTS);
    this->declare("B", CHIP_INPUTS);
    this->declare("out", CHIP_OUTPUTS);

    /*------------------------------------------------------------------------------------------
    We define a wire as carry wire. Note that we need to specify the bit width for wires only an
    d not input/output. This is because the bit width of input/output are expected to be equal to
    the bit width. 
    ------------------------------------------------------------------------------------------*/
    wire carry_wire = "CRA_carry_wire";
    this->add_wire("[" + to_string(n_bits) + ":0] " + carry_wire);

    /*------------------------------------------------------------------------------------------
    We need to assign the first bit of the carry wire to be zero. We use verilog("") function to
    embed verilog code inside our module.
    ------------------------------------------------------------------------------------------*/
    this->verilog("assign " + carry_wire + "[0] = 0;");

    /*------------------------------------------------------------------------------------------
    Now we configure wiring for each bits
    ------------------------------------------------------------------------------------------*/
    for(int i =0; i< n_bits; i++){
        string slice = "["+ to_string(i) + "]";
        string next_slice = "[" + to_string(i+1) + "]";

        FULL_ADDER fa("CRA_FA_" + to_string(i),
                      {"A" + slice, "B" + slice, carry_wire + slice},
                      {"out" + slice, carry_wire + next_slice});
        this->add_submodule(fa);
    }

    /*------------------------------------------------------------------------------------------
    After building the module we can use the auto_gen() funtion to automatically generate the m-
    odule definition.
    ------------------------------------------------------------------------------------------*/
    this->definition = this->auto_gen("module CARRY_RIPPLE_ADDER_" + to_string(this->n_bits) + "_BIT");

    /*------------------------------------------------------------------------------------------
    Then we can instruct how each instance has to be generated.
    ------------------------------------------------------------------------------------------*/
    this->generate =  "CARRY_RIPPLE_ADDER_" + to_string(this->n_bits) + "_BIT " + this->name  + " (" + this->inputs.at(0) + ", " + this->inputs.at(1) + ", " + this->outputs.at(0) + ");";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x628, %rsp            # imm = 0x628
movl %r8d, -0x34(%rbp)
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r13
leaq 0x10(%rdi), %rax
movq %rax, (%rdi)
xorl %r12d, %r12d
movq %r12, 0x8(%rdi)
movb %r12b, 0x10(%rdi)
leaq 0x30(%rdi), %rax
movq %rax, 0x20(%rdi)
movq %r12, 0x28(%rdi)
movb %r12b, 0x30(%rdi)
leaq 0x50(%rdi), %rax
movq %rax, 0x40(%rdi)
movq %r12, 0x48(%rdi)
movb %r12b, 0x50(%rdi)
movl %r12d, 0x60(%rdi)
addq $0x68, %rdi
movq %r12, 0x108(%r13)
movl %r12d, 0x110(%r13)
movq %r12, 0x148(%r13)
movl %r12d, 0x150(%r13)
movl $0x9c, %edx
movq %rdi, -0x228(%rbp)
xorl %esi, %esi
callq 0x72e0
xorps %xmm0, %xmm0
movups %xmm0, 0x118(%r13)
movups %xmm0, 0x128(%r13)
movups %xmm0, 0x134(%r13)
movups %xmm0, 0x158(%r13)
movups %xmm0, 0x168(%r13)
movups %xmm0, 0x178(%r13)
movq %r12, 0x188(%r13)
movq %r13, %r12
movl $0x1, 0x190(%r13)
movq %r13, %rdi
movq %r15, %rsi
callq 0x72d0
leaq 0x80(%r12), %rdi
movq %r14, %rsi
callq 0x7570
leaq 0x98(%r12), %rdi
movq %rbx, %rsi
callq 0x72a0
movl -0x34(%rbp), %eax
movl %eax, 0x190(%r12)
leaq -0x2d8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x2139d(%rip), %rsi     # 0x376f2
leaq 0x21397(%rip), %rdx     # 0x376f3
leaq -0x2e8(%rbp), %rdi
callq 0x7200
leaq -0x2e8(%rbp), %rsi
movq %r12, %rdi
xorl %edx, %edx
movq %r12, -0x30(%rbp)
callq 0x7190
movq -0x2e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x16398
movq -0x2d8(%rbp), %rsi
incq %rsi
callq 0x7510
leaq -0x2b8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x2110e(%rip), %rsi     # 0x374b8
leaq 0x21108(%rip), %rdx     # 0x374b9
leaq -0x2c8(%rbp), %rdi
callq 0x7200
leaq -0x2c8(%rbp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x7190
movq -0x2c8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x163e9
movq -0x2b8(%rbp), %rsi
incq %rsi
callq 0x7510
leaq -0x298(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x210c6(%rip), %rsi     # 0x374c1
leaq 0x210c2(%rip), %rdx     # 0x374c4
leaq -0x2a8(%rbp), %rdi
callq 0x7200
leaq -0x2a8(%rbp), %rsi
movq %r12, %rdi
movl $0x1, %edx
callq 0x7190
movq -0x2a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1643d
movq -0x298(%rbp), %rsi
incq %rsi
callq 0x7510
leaq -0x88(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x21109(%rip), %rsi     # 0x37558
leaq 0x21110(%rip), %rdx     # 0x37566
leaq -0x98(%rbp), %rdi
callq 0x7200
movl -0x34(%rbp), %eax
movl %eax, %ebx
negl %ebx
cmovsl %eax, %ebx
movl $0x1, %r14d
cmpl $0xa, %ebx
jb 0x164c0
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x164b7
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x164bd
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x164c0
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x16484
addl $-0x3, %r14d
jmp 0x164c0
addl $-0x2, %r14d
jmp 0x164c0
decl %r14d
movl -0x34(%rbp), %eax
movl %eax, %r15d
shrl $0x1f, %r15d
leal (%r14,%r15), %esi
leaq -0xc8(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0xd8(%rbp), %rdi
movl $0x2d, %edx
callq 0x75e0
movl %r15d, %edi
leaq -0xd8(%rbp), %r15
addq (%r15), %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x76b0
leaq 0x20cab(%rip), %rcx     # 0x371b3
movl $0x1, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x75b0
leaq -0x128(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x16547
movq %rdx, -0x138(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x128(%rbp)
jmp 0x1654d
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x138(%rbp), %r13
movq %rdx, 0x8(%r13)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x21037(%rip), %rsi     # 0x375a9
movq %r13, %rdi
callq 0x7910
leaq -0x470(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x165a7
movq %rdx, -0x480(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x470(%rbp)
jmp 0x165ad
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x480(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
callq 0x7140
leaq -0x278(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1660b
movq %rdx, -0x288(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x278(%rbp)
jmp 0x16611
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x288(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xb0(%r12), %rdi
callq 0x72a0
movq -0x288(%rbp), %rdi
cmpq %rbx, %rdi
je 0x16657
movq -0x278(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
leaq -0x128(%rbp), %rbx
je 0x16680
movq -0x470(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x138(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1669b
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x166bd
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x7510
leaq 0x20ea3(%rip), %rsi     # 0x37567
leaq -0x480(%rbp), %rdi
leaq -0x98(%rbp), %rdx
callq 0x7480
leaq 0x20f26(%rip), %rsi     # 0x37604
leaq -0x480(%rbp), %rdi
callq 0x7910
leaq -0x258(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x16717
movq %rdx, -0x268(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x258(%rbp)
jmp 0x1671d
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x268(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xc8(%r12), %rdi
callq 0x72a0
movq -0x268(%rbp), %rdi
cmpq %rbx, %rdi
je 0x16763
movq -0x258(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
leaq -0x128(%rbp), %rbx
je 0x1678c
movq -0x470(%rbp), %rsi
incq %rsi
callq 0x7510
cmpl $0x0, -0x34(%rbp)
jle 0x16d9c
xorl %r15d, %r15d
leaq -0x78(%rbp), %r14
movl $0xd1b71759, %edx       # imm = 0xD1B71759
movl $0x1, %r12d
cmpl $0xa, %r15d
jb 0x167f0
movl $0x4, %r12d
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x167e7
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x167ed
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x167f0
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r12d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x167b7
addl $-0x3, %r12d
jmp 0x167f0
addl $-0x2, %r12d
jmp 0x167f0
decl %r12d
movl %r12d, %esi
movq %rbx, -0x138(%rbp)
movq %r13, %rdi
movl $0x2d, %edx
callq 0x75e0
movq -0x138(%rbp), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x76b0
movl $0x1, %r8d
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x20986(%rip), %rcx     # 0x371b3
callq 0x75b0
leaq -0x470(%rbp), %rsi
movq %rsi, -0x480(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x68(%rbp), %r12
je 0x16866
movq %rdx, -0x480(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x470(%rbp)
jmp 0x1686c
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x478(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x480(%rbp), %rdi
leaq 0x2098f(%rip), %rsi     # 0x37223
callq 0x7910
movq %r12, -0x78(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x168b9
movq %rdx, -0x78(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x68(%rbp)
jmp 0x168c1
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x70(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
je 0x168fa
movq -0x470(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x138(%rbp), %rdi
cmpq %rbx, %rdi
je 0x16915
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x7510
leal 0x1(%r15), %r12d
movl $0x1, %ebx
cmpl $0x9, %r15d
jb 0x16966
movl $0x4, %ebx
movl %r12d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x1695f
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x16964
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x16966
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x16931
addl $-0x3, %ebx
jmp 0x16966
addl $-0x2, %ebx
jmp 0x16966
decl %ebx
movl %ebx, %esi
leaq -0x128(%rbp), %rax
movq %rax, -0x138(%rbp)
movq %r13, %rdi
movl $0x2d, %edx
callq 0x75e0
movq -0x138(%rbp), %rdi
movl %ebx, %esi
movl %r12d, %edx
callq 0x76b0
movl $0x1, %r8d
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x2080b(%rip), %rcx     # 0x371b3
callq 0x75b0
leaq -0x470(%rbp), %rsi
movq %rsi, -0x480(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x128(%rbp), %rbx
je 0x169e4
movq %rdx, -0x480(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x470(%rbp)
jmp 0x169ea
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x478(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x480(%rbp), %rdi
leaq 0x20811(%rip), %rsi     # 0x37223
callq 0x7910
leaq -0x48(%rbp), %rsi
movq %rsi, -0x58(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x16a3b
movq %rdx, -0x58(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x48(%rbp)
jmp 0x16a41
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x50(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
je 0x16a7a
movq -0x470(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x138(%rbp), %rdi
cmpq %rbx, %rdi
je 0x16a95
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x7510
movl $0x1, %ebx
cmpl $0xa, %r15d
jb 0x16ae2
movl $0x4, %ebx
movl %r15d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x16adb
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x16ae0
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x16ae2
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x16aad
addl $-0x3, %ebx
jmp 0x16ae2
addl $-0x2, %ebx
jmp 0x16ae2
decl %ebx
movl %r12d, -0x15c(%rbp)
movq %r14, %r12
movq %r13, %r14
movl %ebx, %esi
leaq -0x148(%rbp), %rax
movq %rax, -0x158(%rbp)
leaq -0x158(%rbp), %r13
movq %r13, %rdi
movl $0x2d, %edx
callq 0x75e0
movq -0x158(%rbp), %rdi
movl %ebx, %esi
movl %r15d, %edx
callq 0x76b0
movl $0x7, %r8d
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x20a37(%rip), %rcx     # 0x3756f
callq 0x75b0
leaq -0x170(%rbp), %rsi
movq %rsi, -0x180(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq %r14, %r13
je 0x16b70
movq %rdx, -0x180(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x170(%rbp)
jmp 0x16b76
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %r12, %r14
movq 0x8(%rax), %rdx
movq %rdx, -0x178(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r13, %rbx
movq %r13, %rdi
leaq 0x20b52(%rip), %rsi     # 0x376f2
movq %r12, %rdx
callq 0x7480
leaq -0x98(%rbp), %r15
leaq -0x4b0(%rbp), %r12
leaq -0x118(%rbp), %rdi
movq %rdi, %rbx
leaq 0x208f1(%rip), %rsi     # 0x374b8
movq %r14, %rdx
callq 0x7480
leaq -0xf8(%rbp), %rdi
movq %rdi, %rbx
movq %r15, %rsi
movq %r14, %rdx
callq 0x7930
movl $0x3, %edx
movq %r12, %rdi
movq %r13, %rsi
leaq -0x200(%rbp), %rcx
callq 0x70f0
leaq -0xd8(%rbp), %rdi
movq %rdi, %rbx
leaq 0x208b5(%rip), %rsi     # 0x374c1
movq %r14, %rdx
callq 0x7480
leaq -0xb8(%rbp), %rdi
movq %rdi, %rbx
movq %r15, %rsi
leaq -0x58(%rbp), %rdx
callq 0x7930
movl $0x2, %edx
leaq -0x498(%rbp), %rbx
movq %rbx, %rdi
leaq -0xd8(%rbp), %rsi
leaq -0x1a0(%rbp), %rcx
callq 0x70f0
leaq -0x480(%rbp), %rdi
leaq -0x180(%rbp), %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x7330
movq %rbx, %rdi
callq 0x73a0
movq $-0x40, %rbx
leaq -0xa8(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x16c8f
movq (%r15), %rsi
incq %rsi
callq 0x7510
addq $-0x20, %r15
addq $0x20, %rbx
jne 0x16c7b
movq %r12, %rdi
callq 0x73a0
movq $-0x60, %rbx
leaq -0xe8(%rbp), %r15
leaq -0x648(%rbp), %r12
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x16cca
movq (%r15), %rsi
incq %rsi
callq 0x7510
addq $-0x20, %r15
addq $0x20, %rbx
jne 0x16cb6
movq -0x180(%rbp), %rdi
leaq -0x170(%rbp), %rax
cmpq %rax, %rdi
je 0x16cf6
movq -0x170(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
cmpq %rax, %rdi
leaq -0x128(%rbp), %rbx
je 0x16d1f
movq -0x148(%rbp), %rsi
incq %rsi
callq 0x7510
movq %r12, %rdi
leaq -0x480(%rbp), %rsi
callq 0x7580
movq -0x228(%rbp), %rdi
movq %r12, %rsi
callq 0x7430
movq %r12, %rdi
callq 0x7160
leaq -0x480(%rbp), %rdi
callq 0x7160
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x16d6a
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
movl -0x15c(%rbp), %r12d
je 0x16d8a
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x7510
movl %r12d, %r15d
cmpl -0x34(%rbp), %r12d
movl $0xd1b71759, %edx       # imm = 0xD1B71759
jne 0x167a2
movq -0x30(%rbp), %rax
movl 0x190(%rax), %ebx
movl %ebx, %r14d
negl %r14d
cmovsl %ebx, %r14d
movl $0x1, %r15d
cmpl $0xa, %r14d
leaq -0xc8(%rbp), %r13
jb 0x16e0d
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r14d, %ecx
cmpl $0x63, %ecx
jbe 0x16e04
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x16e0a
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x16e0d
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x16dd1
addl $-0x3, %r15d
jmp 0x16e0d
addl $-0x2, %r15d
jmp 0x16e0d
decl %r15d
shrl $0x1f, %ebx
leal (%r15,%rbx), %esi
leaq -0xd8(%rbp), %rdi
movq %r13, (%rdi)
movl $0x2d, %edx
callq 0x75e0
leaq -0xd8(%rbp), %r12
addq (%r12), %rbx
movq %rbx, %rdi
movl %r15d, %esi
movl %r14d, %edx
callq 0x76b0
leaq 0x2072f(%rip), %rcx     # 0x37577
movl $0x1a, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x75b0
leaq -0x128(%rbp), %rsi
movq %rsi, -0x138(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x16e8a
movq %rdx, -0x138(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x128(%rbp)
jmp 0x16e90
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq -0x30(%rbp), %r15
movq 0x8(%rax), %rdx
leaq -0x138(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x206d9(%rip), %rsi     # 0x37592
callq 0x7910
leaq -0x238(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x16eeb
movq %rdx, -0x248(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x238(%rbp)
jmp 0x16ef2
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rsi
leaq -0x248(%rbp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x480(%rbp), %rdi
movq %r15, %rsi
callq 0x72b0
leaq 0x20(%r15), %rdi
leaq -0x480(%rbp), %rbx
movq %rbx, %rsi
callq 0x7610
movq (%rbx), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
je 0x16f50
movq -0x470(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x248(%rbp), %rdi
cmpq %r14, %rdi
leaq -0x128(%rbp), %rbx
je 0x16f72
movq -0x238(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x138(%rbp), %rdi
cmpq %rbx, %rdi
je 0x16f8d
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0xd8(%rbp), %rdi
cmpq %r13, %rdi
je 0x16fa8
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x7510
movl 0x190(%r15), %ebx
movl %ebx, %r14d
negl %r14d
cmovsl %ebx, %r14d
movl $0x1, %r15d
cmpl $0xa, %r14d
jb 0x1700f
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r14d, %ecx
cmpl $0x63, %ecx
jbe 0x17006
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x1700c
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x1700f
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x16fd3
addl $-0x3, %r15d
jmp 0x1700f
addl $-0x2, %r15d
jmp 0x1700f
decl %r15d
shrl $0x1f, %ebx
leal (%r15,%rbx), %esi
leaq -0x210(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x220(%rbp), %rdi
movl $0x2d, %edx
callq 0x75e0
leaq -0x220(%rbp), %r12
addq (%r12), %rbx
movq %rbx, %rdi
movl %r15d, %esi
movl %r14d, %edx
callq 0x76b0
leaq 0x2052c(%rip), %rcx     # 0x3757e
movl $0x13, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x75b0
leaq -0x1b0(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x17091
movq %rdx, -0x1c0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x1b0(%rbp)
jmp 0x17097
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq -0x30(%rbp), %rbx
movq 0x8(%rax), %rdx
leaq -0x1c0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x20106(%rip), %rsi     # 0x371c6
callq 0x7910
leaq -0x1d0(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x170f2
movq %rdx, -0x1e0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x1d0(%rbp)
jmp 0x170f8
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x1e0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
callq 0x7140
leaq -0x190(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1714f
movq %rdx, -0x1a0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x190(%rbp)
jmp 0x17155
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x1a0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1fef3(%rip), %rsi     # 0x3706d
callq 0x7910
leaq -0x1f0(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x171ac
movq %rdx, -0x200(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x1f0(%rbp)
jmp 0x171b3
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x1f8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x80(%rbx), %rax
cmpq %rax, 0x88(%rbx)
je 0x175d8
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq -0x200(%rbp), %rdi
callq 0x7140
leaq -0x128(%rbp), %rbx
leaq -0x148(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x17228
movq %rdx, -0x158(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x148(%rbp)
jmp 0x17230
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq -0x158(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1fe1b(%rip), %rsi     # 0x37070
callq 0x7910
leaq -0x48(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1727f
movq %rdx, -0x58(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x48(%rbp)
jmp 0x17287
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x50(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x30(%rbp), %rcx
movq 0x80(%rcx), %rax
movq 0x88(%rcx), %rdx
subq %rax, %rdx
sarq $0x5, %rdx
cmpq $0x1, %rdx
jbe 0x175ea
movq 0x20(%rax), %rsi
movq 0x28(%rax), %rdx
leaq -0x58(%rbp), %rdi
callq 0x7140
leaq -0x68(%rbp), %rsi
movq %rsi, -0x78(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x172f6
movq %rdx, -0x78(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x68(%rbp)
jmp 0x172fc
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x78(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1fd52(%rip), %rsi     # 0x37070
callq 0x7910
leaq -0xc8(%rbp), %rsi
movq %rsi, -0xd8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x17353
movq %rdx, -0xd8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xc8(%rbp)
jmp 0x17359
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xd0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x30(%rbp), %rcx
movq 0x98(%rcx), %rax
cmpq %rax, 0xa0(%rcx)
je 0x175fd
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq -0xd8(%rbp), %rdi
callq 0x7140
movq %rbx, -0x138(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x173c7
movq %rdx, -0x138(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x128(%rbp)
jmp 0x173cd
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x138(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x2031f(%rip), %rsi     # 0x37711
callq 0x7910
addq $0x40, -0x30(%rbp)
leaq -0x470(%rbp), %r14
movq %r14, -0x480(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1742c
movq %rdx, -0x480(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x470(%rbp)
jmp 0x17433
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x480(%rbp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x30(%rbp), %rdi
movq %rbx, %rsi
callq 0x7610
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x17474
movq -0x470(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x138(%rbp), %rdi
leaq -0x128(%rbp), %rax
cmpq %rax, %rdi
je 0x17496
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x174b8
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x174d1
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x58(%rbp), %rdi
cmpq %r12, %rdi
je 0x174e6
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x158(%rbp), %rdi
cmpq %r13, %rdi
je 0x17501
movq -0x148(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x200(%rbp), %rdi
cmpq %r15, %rdi
leaq -0x1b0(%rbp), %r13
leaq -0x1d0(%rbp), %r15
je 0x1752a
movq -0x1f0(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x1a0(%rbp), %rdi
leaq -0x190(%rbp), %rax
cmpq %rax, %rdi
leaq -0x88(%rbp), %rbx
leaq -0x210(%rbp), %r14
je 0x1755a
movq -0x190(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x1e0(%rbp), %rdi
cmpq %r15, %rdi
je 0x17575
movq -0x1d0(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x1c0(%rbp), %rdi
cmpq %r13, %rdi
je 0x17590
movq -0x1b0(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x220(%rbp), %rdi
cmpq %r14, %rdi
je 0x175ab
movq -0x210(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x98(%rbp), %rdi
cmpq %rbx, %rdi
je 0x175c6
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x7510
addq $0x628, %rsp            # imm = 0x628
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x202fa(%rip), %rdi     # 0x378d9
xorl %esi, %esi
xorl %edx, %edx
xorl %eax, %eax
callq 0x7720
leaq 0x202e8(%rip), %rdi     # 0x378d9
movl $0x1, %esi
xorl %eax, %eax
callq 0x7720
leaq 0x202d5(%rip), %rdi     # 0x378d9
xorl %esi, %esi
xorl %edx, %edx
xorl %eax, %eax
callq 0x7720
movq %rax, %r14
movq -0x138(%rbp), %rdi
cmpq %rbx, %rdi
je 0x177ee
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x7510
jmp 0x177ee
movq %rax, %r14
jmp 0x17810
movq %rax, %r14
jmp 0x17843
movq %rax, %r14
jmp 0x1787e
movq %rax, %r14
jmp 0x178a0
movq %rax, %r14
jmp 0x178c2
movq %rax, %r14
jmp 0x178e4
movq %rax, %r14
jmp 0x17906
movq %rax, %r15
movq -0x248(%rbp), %rdi
cmpq %r14, %rdi
je 0x17731
movq -0x238(%rbp), %rsi
jmp 0x17724
jmp 0x1772e
jmp 0x17755
jmp 0x17935
movq %rax, %r15
movq -0x268(%rbp), %rdi
cmpq %rbx, %rdi
je 0x176bf
movq -0x258(%rbp), %rsi
incq %rsi
callq 0x7510
jmp 0x176bf
movq %rax, %r15
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
je 0x17986
movq -0x470(%rbp), %rsi
jmp 0x1797e
jmp 0x17935
movq %rax, %r15
movq -0x288(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1770a
movq -0x278(%rbp), %rsi
incq %rsi
callq 0x7510
jmp 0x1770a
movq %rax, %r15
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
je 0x17731
movq -0x470(%rbp), %rsi
incq %rsi
callq 0x7510
jmp 0x17731
movq %rax, %r15
movq -0x138(%rbp), %rdi
leaq -0x128(%rbp), %rax
cmpq %rax, %rdi
je 0x17758
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x7510
jmp 0x17758
movq %rax, %r15
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x17986
movq -0xc8(%rbp), %rsi
jmp 0x1797e
jmp 0x17935
jmp 0x17919
movq %rax, %r15
movq -0x2a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x177dd
movq -0x298(%rbp), %rsi
jmp 0x177d5
jmp 0x17919
movq %rax, %r15
movq -0x2c8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x177dd
movq -0x2b8(%rbp), %rsi
jmp 0x177d5
jmp 0x17919
movq %rax, %r15
movq -0x2e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x177dd
movq -0x2d8(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x30(%rbp), %r12
jmp 0x17b93
jmp 0x17919
movq %rax, %r14
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x17810
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x1782e
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x7510
jmp 0x1782e
movq %rax, %r14
movq -0x58(%rbp), %rdi
cmpq %r12, %rdi
je 0x17843
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x158(%rbp), %rdi
cmpq %r13, %rdi
je 0x17863
movq -0x148(%rbp), %rsi
incq %rsi
callq 0x7510
jmp 0x17863
movq %rax, %r14
movq -0x200(%rbp), %rdi
cmpq %r15, %rdi
je 0x1787e
movq -0x1f0(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x1a0(%rbp), %rdi
leaq -0x190(%rbp), %rax
cmpq %rax, %rdi
je 0x178a0
movq -0x190(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x1e0(%rbp), %rdi
leaq -0x1d0(%rbp), %rax
cmpq %rax, %rdi
je 0x178c2
movq -0x1d0(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x1c0(%rbp), %rdi
leaq -0x1b0(%rbp), %rax
cmpq %rax, %rdi
je 0x178e4
movq -0x1b0(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x220(%rbp), %rdi
leaq -0x210(%rbp), %rax
cmpq %rax, %rdi
je 0x17906
movq -0x210(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x30(%rbp), %r12
leaq -0x88(%rbp), %rbx
movq %r14, %r15
jmp 0x17b78
movq %rax, %r15
jmp 0x17b93
movq %rax, %r15
leaq -0x648(%rbp), %rdi
callq 0x7160
jmp 0x17a64
movq %rax, %r15
jmp 0x17986
movq %rax, %r15
jmp 0x17964
movq %rax, %r15
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
je 0x17964
movq -0x470(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x138(%rbp), %rdi
leaq -0x128(%rbp), %rax
cmpq %rax, %rdi
je 0x17986
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x30(%rbp), %r12
leaq -0x88(%rbp), %rbx
jmp 0x17b78
movq %rax, %r15
jmp 0x179e7
movq %rax, %r15
jmp 0x179c5
movq %rax, %r15
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
je 0x179c5
movq -0x470(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x138(%rbp), %rdi
leaq -0x128(%rbp), %rax
cmpq %rax, %rdi
je 0x179e7
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x30(%rbp), %r12
leaq -0x88(%rbp), %rbx
jmp 0x17b5f
movq %rax, %r15
jmp 0x17a70
movq %rax, %r15
movq -0x30(%rbp), %r12
leaq -0x88(%rbp), %rbx
leaq -0x48(%rbp), %r14
jmp 0x17b28
movq %rax, %r15
jmp 0x17aae
movq %rax, %r15
jmp 0x17a2f
movq %rax, %r15
leaq -0x498(%rbp), %rdi
callq 0x73a0
leaq -0xa8(%rbp), %rbx
xorl %r14d, %r14d
movq -0xb8(%rbp,%r14), %rdi
leaq (%rbx,%r14), %rax
cmpq %rdi, %rax
je 0x17a55
movq (%rax), %rsi
incq %rsi
callq 0x7510
addq $-0x20, %r14
cmpq $-0x40, %r14
jne 0x17a39
jmp 0x17aa2
movq %rax, %r15
leaq -0x480(%rbp), %rdi
callq 0x7160
movq -0x30(%rbp), %r12
leaq -0x88(%rbp), %rbx
leaq -0x48(%rbp), %r14
jmp 0x17b4a
movq %rax, %r15
leaq -0xd8(%rbp), %rax
cmpq %rbx, %rax
je 0x17aa2
leaq -0xd8(%rbp), %rsi
movq %rbx, %rdi
callq 0x7a3e
leaq -0x4b0(%rbp), %rdi
callq 0x73a0
leaq -0xe8(%rbp), %rbx
xorl %r14d, %r14d
movq -0xf8(%rbp,%r14), %rdi
leaq (%rbx,%r14), %rax
cmpq %rdi, %rax
je 0x17ad4
movq (%rax), %rsi
incq %rsi
callq 0x7510
addq $-0x20, %r14
cmpq $-0x60, %r14
jne 0x17ab8
jmp 0x17af7
movq %rax, %r15
cmpq %rbx, %r13
je 0x17af7
leaq -0x138(%rbp), %rsi
movq %rbx, %rdi
callq 0x7a04
movq -0x30(%rbp), %r12
leaq -0x88(%rbp), %rbx
leaq -0x48(%rbp), %r14
leaq -0x170(%rbp), %rax
movq -0x180(%rbp), %rdi
cmpq %rax, %rdi
je 0x17b28
movq -0x170(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
cmpq %rax, %rdi
je 0x17b4a
movq -0x148(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x58(%rbp), %rdi
cmpq %r14, %rdi
je 0x17b5f
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x17b78
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x7510
movq -0x98(%rbp), %rdi
cmpq %rbx, %rdi
je 0x17b93
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x7510
movq %r12, %rdi
callq 0x7160
movq %r15, %rdi
callq 0x7870
nop