// File: /workspace/github_cpp_makefile_star2_O3/Davidc2525[P]Leaf/compiler/registers/x86_64_register_provider.cpp
// Function: X86_64RegisterProvider::X86_64RegisterProvider()
X86_64RegisterProvider::X86_64RegisterProvider()
{
    //this->registers = (Register **)malloc(sizeof(Register *) * 100);

    string *byte = new string("BYTE");   //8
    string *word = new string("WORD");   //16
    string *dword = new string("DWORD"); //32
    string *qword = new string("QWORD"); //64

    int counter = 0;

    registers_.push_back(new Register(counter++, new string("ah"), 8, byte));
    registers_.push_back(new Register(counter++, new string("al"), 8, byte));
    registers_.push_back(new Register(counter++, new string("bh"), 8, byte));
    registers_.push_back(new Register(counter++, new string("bl"), 8, byte));
    registers_.push_back(new Register(counter++, new string("ch"), 8, byte));
    registers_.push_back(new Register(counter++, new string("cl"), 8, byte));
    registers_.push_back(new Register(counter++, new string("dh"), 8, byte));
    registers_.push_back(new Register(counter++, new string("dl"), 8, byte));

    registers_.push_back(new Register(counter++, new string("ax"), 16, word));
    registers_.push_back(new Register(counter++, new string("bx"), 16, word));
    registers_.push_back(new Register(counter++, new string("cx"), 16, word));
    registers_.push_back(new Register(counter++, new string("dx"), 16, word));
    registers_.push_back(new Register(counter++, new string("si"), 16, word));
    registers_.push_back(new Register(counter++, new string("di"), 16, word));

    registers_.push_back(new Register(counter++, new string("eax"), 32, dword));
    registers_.push_back(new Register(counter++, new string("ebx"), 32, dword));
    registers_.push_back(new Register(counter++, new string("ecx"), 32, dword));
    registers_.push_back(new Register(counter++, new string("edx"), 32, dword));
    registers_.push_back(new Register(counter++, new string("esi"), 32, dword));
    registers_.push_back(new Register(counter++, new string("edi"), 32, dword));

    registers_.push_back(new Register(counter++, new string("rax"), this->arc, qword));
    registers_.push_back(new Register(counter++, new string("rbx"), this->arc, qword));
    registers_.push_back(new Register(counter++, new string("rcx"), this->arc, qword));
    registers_.push_back(new Register(counter++, new string("rdx"), this->arc, qword));
    registers_.push_back(new Register(counter++, new string("rsi"), this->arc, qword));
    registers_.push_back(new Register(counter++, new string("rdi"), this->arc, qword));

    registers_.push_back(new Register(counter++, new string("rbp"), this->arc, qword, false));
    registers_.push_back(new Register(counter++, new string("rsp"), this->arc, qword, false));

    registers_.push_back(new Register(counter++, new string("r8"), this->arc, qword));
    registers_.push_back(new Register(counter++, new string("r9"), this->arc, qword));
    registers_.push_back(new Register(counter++, new string("r10"), this->arc, qword));
    registers_.push_back(new Register(counter++, new string("r11"), this->arc, qword));
    registers_.push_back(new Register(counter++, new string("r12"), this->arc, qword));
    registers_.push_back(new Register(counter++, new string("r13"), this->arc, qword));
    registers_.push_back(new Register(counter++, new string("r14"), this->arc, qword));
    registers_.push_back(new Register(counter++, new string("r15"), this->arc, qword));

    string *no_word = new string("");
    registers_.push_back(new Register(counter++, new string("xmm0"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm1"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm2"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm3"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm4"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm5"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm6"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm7"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm8"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm9"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm10"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm11"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm12"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm13"), 128, no_word));
    registers_.push_back(new Register(counter++, new string("xmm14"), 128, no_word));

    reservers = new map<int, stack<int> *>;
    for (auto x = registers_.begin(); x != registers_.end(); x++)
    {
        reservers->insert(make_pair((*x)->id, new stack<int>));
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
movq $0x0, 0x18(%rdi)
leaq 0x12fcf(%rip), %rax     # 0x25760
movq %rax, (%rdi)
movl $0x40, 0x30(%rdi)
movl $0x20, %edi
callq 0x5290
movq %rax, %rbp
addq $0x10, %rax
movq %rax, (%rbp)
leaq 0x8545(%rip), %rsi      # 0x1acfc
leaq 0x8542(%rip), %rdx      # 0x1ad00
movq %rbp, %rdi
callq 0x8496
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x8520(%rip), %rsi      # 0x1ad02
leaq 0x851d(%rip), %rdx      # 0x1ad06
movq %r13, %rdi
callq 0x8496
movl $0x20, %edi
callq 0x5290
movq %rax, %rdi
addq $0x10, %rax
movq %rax, (%rdi)
leaq 0x84f5(%rip), %rsi      # 0x1ad01
leaq 0x84f3(%rip), %rdx      # 0x1ad06
movq %rdi, 0x20(%rsp)
callq 0x8496
movl $0x20, %edi
callq 0x5290
movq %rax, %rdi
addq $0x10, %rax
movq %rax, (%rdi)
leaq 0x84cf(%rip), %rsi      # 0x1ad07
leaq 0x84cd(%rip), %rdx      # 0x1ad0c
movq %rdi, 0x18(%rsp)
callq 0x8496
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r14
addq $0x10, %rax
movq %rax, (%r14)
leaq 0x88b4(%rip), %rsi      # 0x1b125
leaq 0x88af(%rip), %rdx      # 0x1b127
movq %r14, %rdi
callq 0x8496
movq %r12, %rdi
xorl %esi, %esi
movq %r14, %rdx
movl $0x8, %ecx
movq %rbp, %r8
callq 0x118c8
leaq 0x8(%rbx), %r14
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x84b6(%rip), %rsi      # 0x1ad87
leaq 0x84b1(%rip), %rdx      # 0x1ad89
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x1, %esi
movq %r15, %rdx
movl $0x8, %ecx
movq %rbp, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x87f8(%rip), %rsi      # 0x1b128
leaq 0x87f3(%rip), %rdx      # 0x1b12a
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x2, %esi
movq %r15, %rdx
movl $0x8, %ecx
movq %rbp, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x879c(%rip), %rsi      # 0x1b12b
leaq 0x8797(%rip), %rdx      # 0x1b12d
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x3, %esi
movq %r15, %rdx
movl $0x8, %ecx
movq %rbp, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x8aa5(%rip), %rsi      # 0x1b493
leaq 0x8aa0(%rip), %rdx      # 0x1b495
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x4, %esi
movq %r15, %rdx
movl $0x8, %ecx
movq %rbp, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x86e1(%rip), %rsi      # 0x1b12e
leaq 0x86dc(%rip), %rdx      # 0x1b130
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x5, %esi
movq %r15, %rdx
movl $0x8, %ecx
movq %rbp, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x8685(%rip), %rsi      # 0x1b131
leaq 0x8680(%rip), %rdx      # 0x1b133
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x6, %esi
movq %r15, %rdx
movl $0x8, %ecx
movq %rbp, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x8629(%rip), %rsi      # 0x1b134
leaq 0x8624(%rip), %rdx      # 0x1b136
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x7, %esi
movq %r15, %rdx
movl $0x8, %ecx
movq %rbp, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x85ce(%rip), %rsi      # 0x1b138
leaq 0x85c9(%rip), %rdx      # 0x1b13a
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x8, %esi
movq %r15, %rdx
movl $0x10, %ecx
movq %r13, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x8573(%rip), %rsi      # 0x1b13c
leaq 0x856e(%rip), %rdx      # 0x1b13e
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x9, %esi
movq %r15, %rdx
movl $0x10, %ecx
movq %r13, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x8518(%rip), %rsi      # 0x1b140
leaq 0x8513(%rip), %rdx      # 0x1b142
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0xa, %esi
movq %r15, %rdx
movl $0x10, %ecx
movq %r13, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x84bd(%rip), %rsi      # 0x1b144
leaq 0x84b8(%rip), %rdx      # 0x1b146
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0xb, %esi
movq %r15, %rdx
movl $0x10, %ecx
movq %r13, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x8462(%rip), %rsi      # 0x1b148
leaq 0x845d(%rip), %rdx      # 0x1b14a
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0xc, %esi
movq %r15, %rdx
movl $0x10, %ecx
movq %r13, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x8407(%rip), %rsi      # 0x1b14c
leaq 0x8402(%rip), %rdx      # 0x1b14e
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0xd, %esi
movq %r15, %rdx
movl $0x10, %ecx
movq %r13, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x8393(%rip), %rsi      # 0x1b137
leaq 0x838f(%rip), %rdx      # 0x1b13a
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0xe, %esi
movq %r15, %rdx
movl $0x20, %ecx
movq 0x20(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x8336(%rip), %rsi      # 0x1b13b
leaq 0x8332(%rip), %rdx      # 0x1b13e
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0xf, %esi
movq %r15, %rdx
movl $0x20, %ecx
movq 0x20(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x82d9(%rip), %rsi      # 0x1b13f
leaq 0x82d5(%rip), %rdx      # 0x1b142
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x10, %esi
movq %r15, %rdx
movl $0x20, %ecx
movq 0x20(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x827c(%rip), %rsi      # 0x1b143
leaq 0x8278(%rip), %rdx      # 0x1b146
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x11, %esi
movq %r15, %rdx
movl $0x20, %ecx
movq 0x20(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x821f(%rip), %rsi      # 0x1b147
leaq 0x821b(%rip), %rdx      # 0x1b14a
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x12, %esi
movq %r15, %rdx
movl $0x20, %ecx
movq 0x20(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x81c2(%rip), %rsi      # 0x1b14b
leaq 0x81be(%rip), %rdx      # 0x1b14e
movq %r15, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x13, %esi
movq %r15, %rdx
movl $0x20, %ecx
movq 0x20(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7f59(%rip), %rsi      # 0x1af44
leaq 0x7f55(%rip), %rdx      # 0x1af47
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x14, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7efd(%rip), %rsi      # 0x1af48
leaq 0x7ef9(%rip), %rdx      # 0x1af4b
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x15, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7ea1(%rip), %rsi      # 0x1af4c
leaq 0x7e9d(%rip), %rdx      # 0x1af4f
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x16, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7e45(%rip), %rsi      # 0x1af50
leaq 0x7e41(%rip), %rdx      # 0x1af53
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x17, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7ded(%rip), %rsi      # 0x1af58
leaq 0x7de9(%rip), %rdx      # 0x1af5b
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x18, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7d89(%rip), %rsi      # 0x1af54
leaq 0x7d85(%rip), %rdx      # 0x1af57
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x19, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7d4f(%rip), %rsi      # 0x1af7a
leaq 0x7d4b(%rip), %rdx      # 0x1af7d
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x1a, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
xorl %r9d, %r9d
callq 0x118da
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7ec1(%rip), %rsi      # 0x1b14f
leaq 0x7ebd(%rip), %rdx      # 0x1b152
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x1b, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
xorl %r9d, %r9d
callq 0x118da
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7c6b(%rip), %rsi      # 0x1af5c
leaq 0x7c66(%rip), %rdx      # 0x1af5e
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x1c, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7c0e(%rip), %rsi      # 0x1af5f
leaq 0x7c09(%rip), %rdx      # 0x1af61
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x1d, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7bb1(%rip), %rsi      # 0x1af62
leaq 0x7bad(%rip), %rdx      # 0x1af65
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x1e, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7b55(%rip), %rsi      # 0x1af66
leaq 0x7b51(%rip), %rdx      # 0x1af69
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x1f, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7af9(%rip), %rsi      # 0x1af6a
leaq 0x7af5(%rip), %rdx      # 0x1af6d
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x20, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7a9d(%rip), %rsi      # 0x1af6e
leaq 0x7a99(%rip), %rdx      # 0x1af71
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x21, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7a41(%rip), %rsi      # 0x1af72
leaq 0x7a3d(%rip), %rdx      # 0x1af75
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x22, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x79e5(%rip), %rsi      # 0x1af76
leaq 0x79e1(%rip), %rdx      # 0x1af79
movq %r13, %rdi
callq 0x8496
movl 0x30(%rbx), %ecx
movq %r12, %rdi
movl $0x23, %esi
movq %r13, %rdx
movq 0x18(%rsp), %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x20, %edi
callq 0x5290
movq %rax, %r15
addq $0x10, %rax
movq %rax, (%r15)
leaq 0x77a8(%rip), %rdx      # 0x1ad8b
movq %r15, %rdi
movq %rdx, %rsi
callq 0x8496
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7b3c(%rip), %rsi      # 0x1b153
leaq 0x7b39(%rip), %rdx      # 0x1b157
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x24, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7ae1(%rip), %rsi      # 0x1b158
leaq 0x7ade(%rip), %rdx      # 0x1b15c
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x25, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7a86(%rip), %rsi      # 0x1b15d
leaq 0x7a83(%rip), %rdx      # 0x1b161
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x26, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7a2b(%rip), %rsi      # 0x1b162
leaq 0x7a28(%rip), %rdx      # 0x1b166
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x27, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x79d0(%rip), %rsi      # 0x1b167
leaq 0x79cd(%rip), %rdx      # 0x1b16b
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x28, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7975(%rip), %rsi      # 0x1b16c
leaq 0x7972(%rip), %rdx      # 0x1b170
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x29, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x791a(%rip), %rsi      # 0x1b171
leaq 0x7917(%rip), %rdx      # 0x1b175
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x2a, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x78bf(%rip), %rsi      # 0x1b176
leaq 0x78bc(%rip), %rdx      # 0x1b17a
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x2b, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7864(%rip), %rsi      # 0x1b17b
leaq 0x7861(%rip), %rdx      # 0x1b17f
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x2c, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7809(%rip), %rsi      # 0x1b180
leaq 0x7806(%rip), %rdx      # 0x1b184
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x2d, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x77ae(%rip), %rsi      # 0x1b185
leaq 0x77ac(%rip), %rdx      # 0x1b18a
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x2e, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7754(%rip), %rsi      # 0x1b18b
leaq 0x7752(%rip), %rdx      # 0x1b190
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x2f, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x76fa(%rip), %rsi      # 0x1b191
leaq 0x76f8(%rip), %rdx      # 0x1b196
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x30, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x76a0(%rip), %rsi      # 0x1b197
leaq 0x769e(%rip), %rdx      # 0x1b19c
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x31, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movl $0x20, %edi
callq 0x5290
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
leaq 0x7646(%rip), %rsi      # 0x1b19d
leaq 0x7644(%rip), %rdx      # 0x1b1a2
movq %r13, %rdi
callq 0x8496
movq %r12, %rdi
movl $0x32, %esi
movq %r13, %rdx
movl $0x80, %ecx
movq %r15, %r8
callq 0x118c8
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0x141b0
movl $0x30, %edi
callq 0x5290
movq %rax, %rcx
addq $0x8, %rcx
movl $0x0, 0x8(%rax)
xorl %edx, %edx
movq %rdx, 0x10(%rax)
movq %rcx, 0x18(%rax)
movq %rcx, 0x20(%rax)
movq %rdx, 0x28(%rax)
movq %rax, 0x20(%rbx)
movq 0x8(%rbx), %r13
cmpq 0x10(%rbx), %r13
je 0x13c21
leaq 0x8(%rsp), %r14
movq 0x20(%rbx), %r15
movq (%r13), %rbp
movl $0x50, %edi
callq 0x5290
movq %rax, %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rax)
movups %xmm0, 0x30(%rax)
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
movq %rax, %rdi
xorl %esi, %esi
callq 0x14324
movl (%rbp), %eax
movl %eax, 0x8(%rsp)
movq %r12, 0x10(%rsp)
movq %r15, %rdi
movq %r14, %rsi
callq 0x1447e
addq $0x8, %r13
cmpq 0x10(%rbx), %r13
jne 0x13bcb
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13d89
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
movq %rax, %r14
movl $0x20, %esi
movq %r13, %rdi
callq 0x52a0
movq %r14, (%rsp)
jmp 0x14112
jmp 0x1410e
jmp 0x1417f
movq %rax, %r14
movl $0x20, %esi
movq %r15, %rdi
jmp 0x14174
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x13f2e
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
movq %rax, (%rsp)
movl $0x20, %esi
movq %r13, %rdi
jmp 0x140eb
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
jmp 0x140df
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
movq %rax, (%rsp)
movl $0x20, %esi
movq %r15, %rdi
callq 0x52a0
jmp 0x14112
jmp 0x1410e
jmp 0x1417f
jmp 0x1417f
jmp 0x1410e
movq %rax, (%rsp)
movl $0x20, %esi
movq %r14, %rdi
jmp 0x140eb
movq %rax, (%rsp)
movl $0x28, %esi
movq %r12, %rdi
callq 0x52a0
jmp 0x14183
jmp 0x1417f
movq %rax, (%rsp)
movl $0x20, %esi
movq 0x18(%rsp), %rdi
jmp 0x1411a
jmp 0x1417f
movq %rax, (%rsp)
movl $0x20, %esi
movq 0x20(%rsp), %rdi
jmp 0x1411a
jmp 0x1417f
movq %rax, (%rsp)
movl $0x20, %esi
movq %r13, %rdi
jmp 0x1411a
jmp 0x1417f
movq %rax, (%rsp)
movl $0x20, %esi
movq %rbp, %rdi
jmp 0x1411a
jmp 0x1417f
jmp 0x1417f
movq %rax, %r14
movl $0x50, %esi
movq %r12, %rdi
callq 0x52a0
movq %r14, (%rsp)
jmp 0x14183
movq %rax, (%rsp)
leaq 0x11516(%rip), %rax     # 0x256a0
addq $0x10, %rax
movq %rax, (%rbx)
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x141a6
movq 0x18(%rbx), %rsi
subq %rdi, %rsi
callq 0x52a0
movq (%rsp), %rdi
callq 0x5470
nop