// File: /workspace/github_cpp_makefile_star2_O2/davidsun[P]TinyCompiler/CodeRunner.cpp
// Function: CodeRunner::execute(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>>>> const&)
void CodeRunner::execute(const vector <string> &codes){
    map <int, map <string, Variable *> > variables;
    map <string, int> labels;
    vector <pair <int, string> > call_stack;
    vector <vector <int> > scopes_stack;
    vector <Variable> variable_stack;
    int scopes_count = 0;
    for (int i = 0; i < codes.size(); i ++)
        if (codes[i].length() > 0 && codes[i][codes[i].length() - 1])
            labels[codes[i].substr(0, codes[i].length() - 1)] = i;
    if (labels.find("L.main") == labels.end()) throw Exception("ERROR: Cannot find the entry of the code.");
    call_stack.push_back(make_pair(-1, "#"));
    scopes_stack.push_back(vector <int>());
    for (int location = labels["L.main"]; ; location ++){
        const string &cmd = codes[location];
        vector <int> &cur_scopes = scopes_stack[scopes_stack.size() - 1];
        if (cur_scopes.size() == 0) cur_scopes.push_back(++ scopes_count);
        int cur_scope = cur_scopes[cur_scopes.size() - 1];
        if (cmd == "SCOPE"){
            scopes_count ++;
            cur_scopes.push_back(scopes_count);
        }  else if (cmd == "ENDSCOPE"){
            cur_scopes.pop_back();
            if (variables.find(cur_scope) != variables.end())
                for (map <string, Variable *>::iterator it = variables[cur_scope].begin(); it != variables[cur_scope].end(); it ++) delete it -> second;
        }  else if (cmd.substr(0, 7) == "ASSIGN\t"){
            char s1[100], s2[100];
            sscanf(cmd.c_str(), "%*s%s%s", s1, s2);
            string a = s1, b = s2;
            if (b == "int" || b == "double"){
                if (getVariable_p(variables, cur_scopes, a))
                    throw Exception("ERROR: Duplicate variable allocation " + a + " on line " + Utils::toString(location + 1) + ".");
                variables[cur_scope][a] = new Variable(b, "0");
            }  else if (b[0] <= '9' && b[0] >= '0'){
                Variable *va = getVariable_p(variables, cur_scopes, a);
                if (!va) variables[cur_scope][a] = new Variable(b.find('.') != string::npos ? "double" : "int", b);
                else {
                    if (va -> type == "int") va -> value = Utils::toString(atoi(b.c_str()));
                    else va -> value = Utils::toString(atof(b.c_str()));
                }
            }  else {
                Variable *va = getVariable_p(variables, cur_scopes, a);
                Variable *vb = getVariable_p(variables, cur_scopes, b);
                if (!vb) throw Exception("ERROR: Unknown variable " + b + " on line " + Utils::toString(location + 1) + ".");
                if (!va){
                    if (a.substr(0, 2) != "t.") throw Exception("ERROR: Unknown variable " + a + " on line " + Utils::toString(location + 1) + ".");
                    else variables[cur_scope][a] = new Variable(*vb);
                }  else {
                    if (va -> type == "int") va -> value = Utils::toString(atoi(vb -> value.c_str()));
                    else va -> value = Utils::toString(atof(vb -> value.c_str()));
                }
            }
        }  else if (cmd.substr(0, 4) == "ADD\t" || cmd.substr(0, 4) == "SUB\t" || cmd.substr(0, 4) == "MUL\t" || cmd.substr(0, 4) == "DIV\t"){
            char s1[100], s2[100];
            sscanf(cmd.c_str(), "%*s%s%s", s1, s2);
            string a = s1, b = s2;
            Variable *va = getVariable_p(variables, cur_scopes, a);
            Variable *vb = getVariable_p(variables, cur_scopes, b);
            if (!va) throw Exception("ERROR: Unknown variable " + a + " on line " + Utils::toString(location + 1) + ".");
            if (!vb) throw Exception("ERROR: Unknown variable " + b + " on line " + Utils::toString(location + 1) + ".");
            if (va -> type == "double" || vb -> type == "double"){
                double a = atof(va -> value.c_str());
                double b = atof(vb -> value.c_str());
                double result = a;
                string sc = cmd.substr(0, 4);
                if (sc == "ADD\t") result += b;
                else if (sc == "SUB\t") result -= b;
                else if (sc == "MUL\t") result *= b;
                else if (sc == "DIV\t") result /= b;
                if (va -> type == "int") va -> value = Utils::toString((int)result);
                else va -> value = Utils::toString(result);
            }  else {
                int a = atoi(va -> value.c_str());
                int b = atoi(vb -> value.c_str());
                string sc = cmd.substr(0, 4);
                if (sc == "ADD\t") va -> value = Utils::toString(a + b);
                else if (sc == "SUB\t") va -> value = Utils::toString(a - b);
                else if (sc == "MUL\t") va -> value = Utils::toString(a * b);
                else if (sc == "DIV\t") va -> value = Utils::toString(a / b);
            }
        }  else if (cmd.substr(0, 5) == "BEQZ\t" || cmd.substr(0, 5) == "BGEZ\t" || cmd.substr(0, 5) == "BGTZ\t" || cmd.substr(0, 5) == "BLEZ\t" || cmd.substr(0, 5) == "BLTZ\t"){
            char s1[100], s2[100];
            sscanf(cmd.c_str(), "%*s%s%s", s1, s2);
            string a = s1, b = s2;
            Variable *va = getVariable_p(variables, cur_scopes, a);
            if (!va) throw Exception("ERROR: Unknown variable " + a + " on line " + Utils::toString(location + 1) + ".");
            if (labels.find(b) == labels.end()) throw Exception("ERROR: Unknown label " + b + " on line " + Utils::toString(location + 1) + ".");
            int should_jmp = 0;
            string sc = cmd.substr(0, 5);
            if (va -> type == "double"){
                double a = atof(va -> value.c_str());
                if (sc == "BEQZ\t" && a == 0.0) should_jmp = 1;
                else if (sc == "BGEZ\t" && a >= 0.0) should_jmp = 1;
                else if (sc == "BGTZ\t" && a > 0.0) should_jmp = 1;
                else if (sc == "BLEZ\t" && a <= 0.0) should_jmp = 1;
                else if (sc == "BLTZ\t" && a < 0.0) should_jmp = 1;
            }  else {
                int a = atoi(va -> value.c_str());
                if (sc == "BEQZ\t" && a == 0.0) should_jmp = 1;
                else if (sc == "BGEZ\t" && a >= 0.0) should_jmp = 1;
                else if (sc == "BGTZ\t" && a > 0.0) should_jmp = 1;
                else if (sc == "BLEZ\t" && a <= 0.0) should_jmp = 1;
                else if (sc == "BLTZ\t" && a < 0.0) should_jmp = 1;
            }
            if (should_jmp) location = labels[b];
        }  else if (cmd.substr(0, 2) == "J\t"){
            char s1[100];
            sscanf(cmd.c_str(), "%*s%s", s1);
            if (labels.find(s1) == labels.end()) throw Exception("ERROR: Unknown label " + string(s1) + " on line " + Utils::toString(location + 1) + ".");
            location = labels[s1];
        }  else if (cmd.substr(0, 5) == "PUSH\t"){
            char s1[100];
            sscanf(cmd.c_str(), "%*s%s", s1);
            string a = s1;
            Variable *va = getVariable_p(variables, cur_scopes, a);
            if (!va) throw Exception("ERROR: Unknown variable " + a + " on line " + Utils::toString(location + 1) + ".");
            variable_stack.push_back(*va);
        }  else if (cmd.substr(0, 4) == "POP\t"){
            char s1[100];
            sscanf(cmd.c_str(), "%*s%s", s1);
            string a = s1;
            Variable *va = getVariable_p(variables, cur_scopes, a);
            if (!va) throw Exception("ERROR: Unknown variable " + a + " on line " + Utils::toString(location + 1) + ".");
            (*va) = variable_stack[variable_stack.size() - 1];
            variable_stack.pop_back();
        }  else if (cmd.substr(0, 5) == "CALL\t"){
            char s1[100], s2[100];
            sscanf(cmd.c_str(), "%*s%s%s", s1, s2);
            string a = s1, b = s2;
            Variable *vb = getVariable_p(variables, cur_scopes, b);
            if (labels.find(a) == labels.end()) throw Exception("ERROR: Unknown label " + a + " on line " + Utils::toString(location + 1) + ".");
            if (!vb) variables[cur_scope][b] = new Variable("double", "0");
            call_stack.push_back(make_pair(location, b));
            scopes_stack.push_back(vector <int>());
            location = labels[a];
        }  else if (cmd.substr(0, 4) == "RET\t"){
            char s1[100];
            sscanf(cmd.c_str(), "%*s%s", s1);
            string a = s1;
            Variable *va = getVariable_p(variables, cur_scopes, a);
            if (!va) throw Exception("ERROR: Unknown variable " + a + " on line " + Utils::toString(location + 1) + ".");
            scopes_stack.pop_back();
            if (scopes_stack.size() == 0) break;
            const vector <int> &cs = scopes_stack[scopes_stack.size() - 1];
            Variable *vret = getVariable_p(variables, cs, call_stack[call_stack.size() - 1].second);
            *vret = *va;
            location = call_stack[call_stack.size() - 1].first;
            call_stack.pop_back();
        }
        printf("After %d:", location + 1);
        for (int i = 0; i < cur_scopes.size(); i ++){
            if (variables.find(cur_scopes[i]) == variables.end()) continue;
            for (map <string, Variable *>::iterator it = variables[cur_scopes[i]].begin(); it != variables[cur_scopes[i]].end(); it ++)
                if (it -> first.substr(0, 2) != "t.") printf("\t%s:%s", it -> first.c_str(), it -> second -> value.c_str());
        }
        printf("\n");
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2c8, %rsp            # imm = 0x2C8
movq %rsi, 0x198(%rsp)
leaq 0x128(%rsp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq 0x238(%rsp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
xorpd %xmm0, %xmm0
andq $0x0, 0x190(%rsp)
movapd %xmm0, 0x180(%rsp)
andq $0x0, 0x170(%rsp)
movapd %xmm0, 0x160(%rsp)
andq $0x0, 0x220(%rsp)
movapd %xmm0, 0x210(%rsp)
andl $0x0, 0xb4(%rsp)
xorl %r15d, %r15d
leaq 0x260(%rsp), %rbx
leaq 0x230(%rsp), %r14
xorl %r12d, %r12d
movq 0x198(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rax
subq %rsi, %rax
sarq $0x5, %rax
cmpq %r12, %rax
jbe 0x7fed
movq 0x8(%rsi,%r15), %rcx
testq %rcx, %rcx
je 0x7fe4
addq %r15, %rsi
movq (%rsi), %rax
cmpb $0x0, -0x1(%rax,%rcx)
je 0x7fe4
decq %rcx
movq %rbx, %rdi
xorl %edx, %edx
callq 0x21e0
movq %r14, %rdi
movq %rbx, %rsi
callq 0xa25a
movl %r12d, (%rax)
movq %rbx, %rdi
callq 0x20f0
incq %r12
addq $0x20, %r15
jmp 0x7f8f
leaq 0x51c4(%rip), %rsi      # 0xd1b8
leaq 0x260(%rsp), %rdi
leaq 0x1a0(%rsp), %rdx
callq 0x25ae
leaq 0x230(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0xaaa8
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0x20f0
leaq 0x238(%rsp), %rax
cmpq %rax, %rbx
je 0x9893
leaq 0x1a0(%rsp), %rsi
orl $-0x1, (%rsi)
leaq 0x5198(%rip), %rax      # 0xd1e9
movq %rax, 0x8(%rsi)
leaq 0x260(%rsp), %rdi
callq 0xa2c0
leaq 0x180(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0xaae6
leaq 0x268(%rsp), %rbx
movq %rbx, %rdi
callq 0x20f0
xorpd %xmm0, %xmm0
movapd %xmm0, -0x8(%rbx)
andq $0x0, 0x8(%rbx)
leaq 0x160(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0xace2
leaq 0x260(%rsp), %rdi
callq 0x56e6
leaq 0x50fa(%rip), %rsi      # 0xd1b8
leaq 0x260(%rsp), %rdi
leaq 0x1a0(%rsp), %rdx
callq 0x25ae
leaq 0x230(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0xa25a
movl (%rax), %r15d
leaq 0x260(%rsp), %r12
movq %r12, %rdi
callq 0x20f0
leaq 0x120(%rsp), %rbp
leaq 0x50(%rsp), %r13
movslq %r15d, %r14
shlq $0x5, %r14
movq 0x198(%rsp), %rax
addq (%rax), %r14
movq 0x168(%rsp), %rcx
leaq -0x18(%rcx), %rbx
movq -0x10(%rcx), %rax
movq %rcx, 0x158(%rsp)
cmpq -0x18(%rcx), %rax
jne 0x815b
incl 0xb4(%rsp)
movq %rbx, %rdi
leaq 0xb4(%rsp), %rsi
callq 0x4a34
movq 0x158(%rsp), %rax
movq -0x10(%rax), %rax
movl -0x4(%rax), %eax
movl %eax, 0x14(%rsp)
movq %r14, %rdi
leaq 0x5082(%rip), %rsi      # 0xd1ee
callq 0x36c4
testb %al, %al
je 0x8191
incl 0xb4(%rsp)
movq %rbx, %rdi
leaq 0xb4(%rsp), %rsi
callq 0x4a34
jmp 0x8848
movq %r14, %rdi
leaq 0x5050(%rip), %rsi      # 0xd1eb
callq 0x36c4
testb %al, %al
je 0x822f
movq 0x158(%rsp), %rax
addq $-0x4, -0x10(%rax)
movq %rbp, %rdi
leaq 0x14(%rsp), %rsi
callq 0xaef4
leaq 0x128(%rsp), %rcx
cmpq %rcx, %rax
je 0x8848
movq %rbp, %rdi
leaq 0x14(%rsp), %rsi
callq 0xa2da
movq 0x18(%rax), %r14
movq %rbp, %rdi
leaq 0x14(%rsp), %rsi
callq 0xa2da
addq $0x8, %rax
cmpq %rax, %r14
je 0x8848
movq 0x40(%r14), %rbp
testq %rbp, %rbp
je 0x820f
movq %rbp, %rdi
callq 0xa328
movq %rbp, %rdi
pushq $0x40
popq %rsi
callq 0x21d0
movq %r14, %rdi
callq 0x2130
movq %rax, %r14
leaq 0x120(%rsp), %rbp
jmp 0x81e4
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
pushq $0x7
popq %rcx
callq 0x21e0
movq %r12, %rdi
leaq 0x4fab(%rip), %rsi      # 0xd1f4
callq 0x36c4
movl %eax, %ebp
movq %r12, %rdi
callq 0x20f0
testb %bpl, %bpl
je 0x836d
movq (%r14), %rdi
leaq 0x4f91(%rip), %rsi      # 0xd1fc
movq %r12, %rdx
leaq 0x1a0(%rsp), %r14
movq %r14, %rcx
xorl %eax, %eax
callq 0x21a0
leaq 0x20(%rsp), %rdi
movq %r12, %rsi
leaq 0x90(%rsp), %r13
movq %r13, %rdx
callq 0x25ae
movq %r13, %rdi
movq %r14, %rsi
leaq 0x50(%rsp), %rdx
callq 0x25ae
leaq 0x120(%rsp), %rbp
movq %r13, %rdi
leaq 0x4dc2(%rip), %rsi      # 0xd07c
callq 0x36c4
testb %al, %al
jne 0x82df
leaq 0x90(%rsp), %rdi
leaq 0x4dae(%rip), %rsi      # 0xd080
callq 0x36c4
testb %al, %al
je 0x856f
movq %rbp, %rsi
movq %rbx, %rdx
leaq 0x20(%rsp), %rcx
callq 0xa1e0
leaq 0x50(%rsp), %r13
testq %rax, %rax
jne 0x951d
pushq $0x40
popq %rdi
callq 0x21c0
movq %rax, %r14
movq %r13, %rdi
leaq 0x4e80(%rip), %rsi      # 0xd192
leaq 0x70(%rsp), %rdx
callq 0x25ae
movb $0x1, %bpl
movq %r14, %rdi
leaq 0x90(%rsp), %rsi
movq %r13, %rdx
callq 0x7e4a
xorl %ebp, %ebp
leaq 0x120(%rsp), %rdi
leaq 0x14(%rsp), %rsi
callq 0xa2da
xorl %ebp, %ebp
movq %rax, %rdi
leaq 0x20(%rsp), %rsi
callq 0xa33e
movq %r14, (%rax)
movq %r13, %rdi
callq 0x20f0
leaq 0x120(%rsp), %rbp
jmp 0x8831
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
pushq $0x4
popq %rcx
callq 0x21e0
movq %r14, 0x18(%rsp)
movq %r12, %rdi
leaq 0x4ec1(%rip), %rsi      # 0xd24d
callq 0x36c4
testb %al, %al
leaq 0x120(%rsp), %rbp
je 0x83af
movq %r12, %rdi
callq 0x20f0
leaq 0x1a0(%rsp), %r14
jmp 0x842a
leaq 0x1a0(%rsp), %r14
movq %r14, %rdi
movq 0x18(%rsp), %rsi
xorl %edx, %edx
pushq $0x4
popq %rcx
callq 0x21e0
movq %r14, %rdi
leaq 0x4e7f(%rip), %rsi      # 0xd252
callq 0x36c4
testb %al, %al
jne 0x841a
leaq 0x20(%rsp), %r14
movq %r14, %rdi
movq 0x18(%rsp), %rsi
xorl %edx, %edx
pushq $0x4
popq %rcx
callq 0x21e0
movq %r14, %rdi
leaq 0x4e5a(%rip), %rsi      # 0xd257
callq 0x36c4
testb %al, %al
je 0x86d7
movq %r14, %rdi
callq 0x20f0
leaq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x20f0
movq %r12, %rdi
callq 0x20f0
movq 0x18(%rsp), %rax
movq (%rax), %rdi
leaq 0x4dc3(%rip), %rsi      # 0xd1fc
movq %r12, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x21a0
leaq 0x20(%rsp), %rdi
movq %r12, %rsi
leaq 0x90(%rsp), %r13
movq %r13, %rdx
callq 0x25ae
movq %r13, %rdi
movq %r14, %rsi
leaq 0x50(%rsp), %r13
movq %r13, %rdx
callq 0x25ae
movq %rbp, %rsi
movq %rbx, %rdx
leaq 0x20(%rsp), %rcx
callq 0xa1e0
movq %rax, (%rsp)
movq %rbp, %rsi
movq %rbx, %rdx
leaq 0x90(%rsp), %rcx
callq 0xa1e0
cmpq $0x0, (%rsp)
je 0x946d
movq %rax, %r14
testq %rax, %rax
je 0x93ba
movq (%rsp), %rdi
movq %rdi, 0x150(%rsp)
leaq 0x4bbe(%rip), %rsi      # 0xd080
callq 0x36c4
testb %al, %al
jne 0x84e2
movq %r14, %rdi
leaq 0x4bab(%rip), %rsi      # 0xd080
callq 0x36c4
testb %al, %al
je 0x85d7
movq 0x150(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x2230
movsd %xmm0, 0x8(%rsp)
movq 0x20(%r14), %rdi
callq 0x2230
movsd %xmm0, 0x118(%rsp)
movq %r13, %rdi
movq 0x18(%rsp), %rsi
xorl %edx, %edx
pushq $0x4
popq %rcx
callq 0x21e0
movq %r13, %rdi
leaq 0x4d26(%rip), %rsi      # 0xd24d
callq 0x36c4
testb %al, %al
je 0x8544
movsd 0x8(%rsp), %xmm0
addsd 0x118(%rsp), %xmm0
jmp 0x87ca
movq %r13, %rdi
leaq 0x4d04(%rip), %rsi      # 0xd252
callq 0x36c4
testb %al, %al
je 0x8640
movsd 0x8(%rsp), %xmm0
subsd 0x118(%rsp), %xmm0
jmp 0x87ca
movq 0x90(%rsp), %rax
movb (%rax), %al
addb $-0x30, %al
cmpb $0x9, %al
leaq 0x50(%rsp), %r13
ja 0x866b
movq %rbp, %rsi
movq %rbx, %rdx
leaq 0x20(%rsp), %rcx
callq 0xa1e0
movq %rax, %r14
testq %rax, %rax
je 0x897f
movq %r14, %rdi
leaq 0x4ace(%rip), %rsi      # 0xd07c
callq 0x36c4
testb %al, %al
je 0x8a7e
movq 0x90(%rsp), %rdi
callq 0x22a0
movq %r13, %rdi
movl %eax, %esi
callq 0x2536
jmp 0x8a93
movq 0x150(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x22a0
movl %eax, 0x8(%rsp)
movq 0x20(%r14), %rdi
callq 0x22a0
movl %eax, %r14d
movq %r13, %rdi
movq 0x18(%rsp), %rsi
xorl %edx, %edx
pushq $0x4
popq %rcx
callq 0x21e0
addq $0x20, (%rsp)
movq %r13, %rdi
leaq 0x4c34(%rip), %rsi      # 0xd24d
callq 0x36c4
testb %al, %al
je 0x877b
addl 0x8(%rsp), %r14d
movl %r14d, %esi
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x2536
jmp 0x8815
movq %r13, %rdi
leaq 0x4c0d(%rip), %rsi      # 0xd257
callq 0x36c4
testb %al, %al
je 0x87a8
movsd 0x8(%rsp), %xmm0
mulsd 0x118(%rsp), %xmm0
jmp 0x87ca
movq %rbp, %rsi
movq %rbx, %rdx
leaq 0x20(%rsp), %rcx
callq 0xa1e0
movq %rax, (%rsp)
movq %rbp, %rsi
movq %rbx, %rdx
leaq 0x90(%rsp), %rcx
callq 0xa1e0
movq %rax, %r14
testq %rax, %rax
je 0x95cd
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x8a04
leaq 0x49ca(%rip), %rsi      # 0xd07c
callq 0x36c4
testb %al, %al
je 0x8a9c
movq 0x20(%r14), %rdi
callq 0x22a0
movq %r13, %rdi
movl %eax, %esi
callq 0x2536
jmp 0x8aad
leaq 0x90(%rsp), %r14
movq %r14, %rdi
movq 0x18(%rsp), %rsi
xorl %edx, %edx
pushq $0x4
popq %rcx
callq 0x21e0
movq %r14, %rdi
leaq 0x4b61(%rip), %rsi      # 0xd25c
callq 0x36c4
movl %eax, %ebp
movq %r14, %rdi
callq 0x20f0
leaq 0x20(%rsp), %rdi
callq 0x20f0
leaq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x20f0
movq %r12, %rdi
callq 0x20f0
testb %bpl, %bpl
leaq 0x120(%rsp), %rbp
jne 0x842a
movq %r12, %rdi
movq 0x18(%rsp), %rsi
xorl %edx, %edx
pushq $0x5
popq %rcx
callq 0x21e0
movq %r12, %rdi
leaq 0x4b08(%rip), %rsi      # 0xd261
callq 0x36c4
testb %al, %al
je 0x8ac2
movq %r12, %rdi
callq 0x20f0
leaq 0x1a0(%rsp), %r14
jmp 0x8bb0
movq %r13, %rdi
leaq 0x4acd(%rip), %rsi      # 0xd252
callq 0x36c4
testb %al, %al
je 0x894d
movl 0x8(%rsp), %esi
subl %r14d, %esi
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x2536
jmp 0x8815
movq %r13, %rdi
leaq 0x4aaa(%rip), %rsi      # 0xd25c
callq 0x36c4
testb %al, %al
je 0x87d0
movsd 0x8(%rsp), %xmm0
divsd 0x118(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
addq $0x20, (%rsp)
movq 0x150(%rsp), %rdi
leaq 0x4898(%rip), %rsi      # 0xd07c
callq 0x36c4
testb %al, %al
je 0x8802
cvttsd2si 0x8(%rsp), %esi
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x2536
jmp 0x8815
leaq 0x70(%rsp), %r14
movq %r14, %rdi
movsd 0x8(%rsp), %xmm0
callq 0x2573
movq (%rsp), %rdi
movq %r14, %rsi
callq 0x2220
movq %r14, %rdi
callq 0x20f0
movq %r13, %rdi
callq 0x20f0
leaq 0x90(%rsp), %rdi
callq 0x20f0
leaq 0x20(%rsp), %rdi
callq 0x20f0
incl %r15d
leaq 0x4a62(%rip), %rdi      # 0xd2b4
movl %r15d, (%rsp)
movl %r15d, %esi
xorl %eax, %eax
callq 0x2040
xorl %r15d, %r15d
movq 0x158(%rsp), %rcx
movq -0x18(%rcx), %rax
movq -0x10(%rcx), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq %r15, %rcx
jbe 0x893c
leaq (%rax,%r15,4), %rsi
movq %rbp, %rdi
callq 0xaef4
leaq 0x128(%rsp), %rcx
cmpq %rcx, %rax
je 0x892f
leaq (,%r15,4), %r13
movq (%rbx), %rsi
addq %r13, %rsi
movq %rbp, %rdi
callq 0xa2da
movq 0x18(%rax), %r14
movq (%rbx), %rsi
addq %r13, %rsi
movq %rbp, %rdi
callq 0xa2da
addq $0x8, %rax
cmpq %rax, %r14
je 0x892f
leaq 0x20(%r14), %rsi
movq %r12, %rdi
xorl %edx, %edx
pushq $0x2
popq %rcx
callq 0x21e0
movq %r12, %rdi
leaq 0x4871(%rip), %rsi      # 0xd15d
callq 0xa3a4
movl %eax, %ebp
movq %r12, %rdi
callq 0x20f0
testb %bpl, %bpl
je 0x891a
movq 0x20(%r14), %rsi
movq 0x40(%r14), %rax
movq 0x20(%rax), %rdx
leaq 0x49ab(%rip), %rdi      # 0xd2be
xorl %eax, %eax
callq 0x2040
movq %r14, %rdi
callq 0x2130
movq %rax, %r14
leaq 0x120(%rsp), %rbp
jmp 0x88ba
incq %r15
leaq 0x50(%rsp), %r13
jmp 0x8863
pushq $0xa
popq %rdi
callq 0x2270
movl (%rsp), %r15d
jmp 0x8108
movq %r13, %rdi
leaq 0x4900(%rip), %rsi      # 0xd257
callq 0x36c4
testb %al, %al
je 0x8b22
imull 0x8(%rsp), %r14d
movl %r14d, %esi
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x2536
jmp 0x8815
pushq $0x40
popq %rdi
callq 0x21c0
movq %rax, (%rsp)
leaq 0x90(%rsp), %r14
movq %r14, %rdi
pushq $0x2e
popq %rsi
xorl %edx, %edx
callq 0x2250
cmpq $-0x1, %rax
leaq 0x46d5(%rip), %rsi      # 0xd080
leaq 0x46ca(%rip), %rax      # 0xd07c
cmoveq %rax, %rsi
movq %r13, %rdi
leaq 0x70(%rsp), %rdx
callq 0x25ae
movb $0x1, %bpl
movq (%rsp), %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0x7e4a
xorl %ebp, %ebp
leaq 0x120(%rsp), %rdi
leaq 0x14(%rsp), %rsi
callq 0xa2da
xorl %ebp, %ebp
movq %rax, %rdi
leaq 0x20(%rsp), %rsi
callq 0xa33e
movq (%rsp), %rcx
movq %rcx, (%rax)
jmp 0x8358
movq %r13, %rdi
leaq 0x20(%rsp), %rsi
xorl %edx, %edx
pushq $0x2
popq %rcx
callq 0x21e0
movq %r13, %rdi
leaq 0x473d(%rip), %rsi      # 0xd15d
callq 0xa3a4
movl %eax, %ebp
movq %r13, %rdi
callq 0x20f0
testb %bpl, %bpl
jne 0x97e3
pushq $0x40
popq %rdi
callq 0x21c0
movq %rax, (%rsp)
leaq 0x120(%rsp), %rbp
movq (%rsp), %rdi
movq %r14, %rsi
callq 0x7e80
movq %rbp, %rdi
leaq 0x14(%rsp), %rsi
callq 0xa2da
movq %rax, %rdi
leaq 0x20(%rsp), %rsi
callq 0xa33e
movq (%rsp), %rcx
movq %rcx, (%rax)
jmp 0x8831
movq 0x90(%rsp), %rdi
callq 0x2230
movq %r13, %rdi
callq 0x2573
addq $0x20, %r14
movq %r14, %rdi
jmp 0x8ab5
movq 0x20(%r14), %rdi
callq 0x2230
movq %r13, %rdi
callq 0x2573
movq (%rsp), %rdi
addq $0x20, %rdi
movq %r13, %rsi
callq 0x2220
jmp 0x8829
leaq 0x1a0(%rsp), %r14
movq %r14, %rdi
movq 0x18(%rsp), %rsi
xorl %edx, %edx
pushq $0x5
popq %rcx
callq 0x21e0
movq %r14, %rdi
leaq 0x4781(%rip), %rsi      # 0xd267
callq 0x36c4
testb %al, %al
jne 0x8ba0
leaq 0x20(%rsp), %r14
movq %r14, %rdi
movq 0x18(%rsp), %rsi
xorl %edx, %edx
pushq $0x5
popq %rcx
callq 0x21e0
movq %r14, %rdi
leaq 0x4759(%rip), %rsi      # 0xd26d
callq 0x36c4
testb %al, %al
je 0x8b55
movq %r14, %rdi
jmp 0x8b93
movq %r13, %rdi
leaq 0x4730(%rip), %rsi      # 0xd25c
callq 0x36c4
testb %al, %al
je 0x8829
movl 0x8(%rsp), %eax
cltd
idivl %r14d
leaq 0x70(%rsp), %r14
movq %r14, %rdi
movl %eax, %esi
callq 0x2536
jmp 0x8815
leaq 0x90(%rsp), %r14
movq %r14, %rdi
movq 0x18(%rsp), %rsi
xorl %edx, %edx
pushq $0x5
popq %rcx
callq 0x21e0
movq %r14, %rdi
leaq 0x46fa(%rip), %rsi      # 0xd273
callq 0x36c4
testb %al, %al
je 0x8dda
movq %r14, %rdi
callq 0x20f0
leaq 0x20(%rsp), %rdi
callq 0x20f0
leaq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x20f0
movq %r12, %rdi
callq 0x20f0
movq 0x18(%rsp), %rax
movq (%rax), %rdi
leaq 0x463d(%rip), %rsi      # 0xd1fc
movq %r12, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x21a0
leaq 0x20(%rsp), %rdi
movq %r12, %rsi
leaq 0x90(%rsp), %r13
movq %r13, %rdx
callq 0x25ae
movq %r13, %rdi
movq %r14, %rsi
leaq 0x50(%rsp), %r13
movq %r13, %rdx
callq 0x25ae
movq %rbp, %rsi
movq %rbx, %rdx
leaq 0x20(%rsp), %rcx
callq 0xa1e0
movq %rax, %r14
testq %rax, %rax
je 0x9733
leaq 0x230(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0xaaa8
leaq 0x238(%rsp), %rcx
cmpq %rcx, %rax
je 0x9680
movq %r13, %rdi
movq 0x18(%rsp), %rsi
xorl %edx, %edx
pushq $0x5
popq %rcx
callq 0x21e0
movq %r14, %rdi
leaq 0x442b(%rip), %rsi      # 0xd080
callq 0x36c4
movq 0x20(%r14), %rdi
testb %al, %al
je 0x8d35
callq 0x2230
movsd %xmm0, (%rsp)
movq %r13, %rdi
leaq 0x45e7(%rip), %rsi      # 0xd261
callq 0x36c4
movsd (%rsp), %xmm0
testb %al, %al
je 0x8c98
ucomisd 0x4520(%rip), %xmm0     # 0xd1b0
jne 0x8c98
jnp 0x8dbd
movq %r13, %rdi
leaq 0x45c5(%rip), %rsi      # 0xd267
callq 0x36c4
movsd (%rsp), %xmm0
testb %al, %al
je 0x8cbe
ucomisd 0x44f8(%rip), %xmm0     # 0xd1b0
jae 0x8dbd
movq %r13, %rdi
leaq 0x45a5(%rip), %rsi      # 0xd26d
callq 0x36c4
movsd (%rsp), %xmm0
testb %al, %al
je 0x8ce4
ucomisd 0x44d2(%rip), %xmm0     # 0xd1b0
ja 0x8dbd
movq %r13, %rdi
leaq 0x4585(%rip), %rsi      # 0xd273
callq 0x36c4
movsd (%rsp), %xmm1
testb %al, %al
je 0x8d0a
xorpd %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jae 0x8dbd
movq %r13, %rdi
leaq 0x4565(%rip), %rsi      # 0xd279
callq 0x36c4
testb %al, %al
je 0x8829
xorpd %xmm0, %xmm0
ucomisd (%rsp), %xmm0
ja 0x8dbd
jmp 0x8829
callq 0x22a0
movl %eax, %r14d
movq %r13, %rdi
leaq 0x451a(%rip), %rsi      # 0xd261
callq 0x36c4
testb %al, %al
je 0x8d55
testl %r14d, %r14d
je 0x8dbd
movq %r13, %rdi
leaq 0x4508(%rip), %rsi      # 0xd267
callq 0x36c4
testb %al, %al
je 0x8d6d
testl %r14d, %r14d
jns 0x8dbd
movq %r13, %rdi
leaq 0x44f6(%rip), %rsi      # 0xd26d
callq 0x36c4
testb %al, %al
je 0x8d85
testl %r14d, %r14d
jg 0x8dbd
movq %r13, %rdi
leaq 0x44e4(%rip), %rsi      # 0xd273
callq 0x36c4
testb %al, %al
je 0x8d9d
testl %r14d, %r14d
jle 0x8dbd
movq %r13, %rdi
leaq 0x44d2(%rip), %rsi      # 0xd279
callq 0x36c4
testb %al, %al
je 0x8829
testl %r14d, %r14d
jns 0x8829
leaq 0x230(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0xa3ae
movl (%rax), %r15d
jmp 0x8829
movq %r13, %rdi
movq 0x18(%rsp), %rsi
xorl %edx, %edx
pushq $0x5
popq %rcx
callq 0x21e0
movq %r13, %rdi
leaq 0x4483(%rip), %rsi      # 0xd279
callq 0x36c4
movl %eax, %ebp
movq %r13, %rdi
callq 0x20f0
leaq 0x90(%rsp), %rdi
callq 0x20f0
leaq 0x20(%rsp), %rdi
callq 0x20f0
leaq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x20f0
movq %r12, %rdi
callq 0x20f0
testb %bpl, %bpl
leaq 0x120(%rsp), %rbp
jne 0x8bb0
movq %r12, %rdi
movq 0x18(%rsp), %r14
movq %r14, %rsi
xorl %edx, %edx
pushq $0x2
popq %rcx
callq 0x21e0
movq %r12, %rdi
leaq 0x4431(%rip), %rsi      # 0xd295
callq 0x36c4
movl %eax, %ebp
movq %r12, %rdi
callq 0x20f0
testb %bpl, %bpl
je 0x8f11
movq (%r14), %rdi
leaq 0x4412(%rip), %rsi      # 0xd298
movq %r12, %rdx
xorl %eax, %eax
callq 0x21a0
leaq 0x1a0(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
leaq 0x20(%rsp), %rdx
callq 0x25ae
leaq 0x230(%rsp), %rdi
movq %r13, %rsi
callq 0xaaa8
leaq 0x120(%rsp), %rbp
movq %rax, %r14
movq %r13, %rdi
callq 0x20f0
leaq 0x238(%rsp), %rax
cmpq %rax, %r14
je 0x98ea
movq %r13, %rdi
movq %r12, %rsi
leaq 0x20(%rsp), %rdx
callq 0x25ae
leaq 0x230(%rsp), %rdi
movq %r13, %rsi
callq 0xa25a
movl (%rax), %r15d
movq %r13, %rdi
callq 0x20f0
leaq 0x50(%rsp), %r13
jmp 0x8848
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
pushq $0x5
popq %rcx
callq 0x21e0
movq %r12, %rdi
leaq 0x4373(%rip), %rsi      # 0xd29e
callq 0x36c4
movl %eax, %ebp
movq %r12, %rdi
callq 0x20f0
testb %bpl, %bpl
je 0x8f9f
movq (%r14), %rdi
leaq 0x434f(%rip), %rsi      # 0xd298
movq %r12, %rdx
xorl %eax, %eax
callq 0x21a0
leaq 0x1a0(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x20(%rsp), %rdx
callq 0x25ae
leaq 0x120(%rsp), %rbp
movq %rbp, %rsi
movq %rbx, %rdx
movq %r14, %rcx
callq 0xa1e0
testq %rax, %rax
je 0x99b4
leaq 0x210(%rsp), %rdi
movq %rax, %rsi
callq 0xa414
jmp 0x9049
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
pushq $0x4
popq %rcx
callq 0x21e0
movq %r12, %rdi
leaq 0x42eb(%rip), %rsi      # 0xd2a4
callq 0x36c4
movl %eax, %ebp
movq %r12, %rdi
callq 0x20f0
testb %bpl, %bpl
je 0x9056
movq (%r14), %rdi
leaq 0x42bd(%rip), %rsi      # 0xd298
movq %r12, %rdx
xorl %eax, %eax
callq 0x21a0
leaq 0x1a0(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x20(%rsp), %rdx
callq 0x25ae
leaq 0x120(%rsp), %rbp
movq %rbp, %rsi
movq %rbx, %rdx
movq %r14, %rcx
callq 0xa1e0
testq %rax, %rax
je 0x9a61
movq 0x218(%rsp), %rsi
addq $-0x40, %rsi
movq %rax, %rdi
callq 0x7eba
movq 0x218(%rsp), %rdi
addq $-0x40, %rdi
movq %rdi, 0x218(%rsp)
callq 0xa328
leaq 0x1a0(%rsp), %rdi
jmp 0x8843
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
pushq $0x5
popq %rcx
callq 0x21e0
movq %r12, %rdi
leaq 0x4239(%rip), %rsi      # 0xd2a9
callq 0x36c4
movl %eax, %ebp
movq %r12, %rdi
callq 0x20f0
testb %bpl, %bpl
je 0x923c
movq (%r14), %rdi
leaq 0x416a(%rip), %rsi      # 0xd1fc
movq %r12, %rdx
leaq 0x1a0(%rsp), %r14
movq %r14, %rcx
xorl %eax, %eax
callq 0x21a0
leaq 0x90(%rsp), %rdi
movq %r12, %rsi
leaq 0x20(%rsp), %rbp
movq %rbp, %rdx
callq 0x25ae
leaq 0x50(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
movq %rbp, %rdx
callq 0x25ae
leaq 0x120(%rsp), %rbp
movq %rbp, %rsi
movq %rbx, %rdx
movq %r13, %rcx
callq 0xa1e0
movq %rax, %r14
leaq 0x230(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0xaaa8
leaq 0x238(%rsp), %rcx
cmpq %rcx, %rax
je 0x9b0e
testq %r14, %r14
jne 0x91b3
pushq $0x40
popq %rdi
callq 0x21c0
movq %rax, (%rsp)
leaq 0x20(%rsp), %rdi
leaq 0x3f4e(%rip), %rsi      # 0xd080
leaq 0xb8(%rsp), %rdx
callq 0x25ae
leaq 0x70(%rsp), %r14
movq %r14, %rdi
leaq 0x4044(%rip), %rsi      # 0xd192
leaq 0xd8(%rsp), %rdx
callq 0x25ae
movb $0x1, %bpl
movq (%rsp), %rdi
leaq 0x20(%rsp), %rsi
movq %r14, %rdx
callq 0x7e4a
xorl %ebp, %ebp
leaq 0x120(%rsp), %rdi
leaq 0x14(%rsp), %rsi
callq 0xa2da
xorl %ebp, %ebp
movq %rax, %rdi
movq %r13, %rsi
callq 0xa33e
movq (%rsp), %rcx
movq %rcx, (%rax)
leaq 0x70(%rsp), %rdi
callq 0x20f0
leaq 0x20(%rsp), %rdi
callq 0x20f0
leaq 0x120(%rsp), %rbp
movl %r15d, 0x20(%rsp)
leaq 0x28(%rsp), %rdi
movq %r13, %rsi
callq 0x2260
leaq 0x180(%rsp), %rdi
leaq 0x20(%rsp), %r14
movq %r14, %rsi
callq 0xaae6
leaq 0x90(%rsp), %r15
leaq 0x28(%rsp), %rdi
callq 0x20f0
xorpd %xmm0, %xmm0
movapd %xmm0, 0x20(%rsp)
andq $0x0, 0x30(%rsp)
leaq 0x160(%rsp), %rdi
movq %r14, %rsi
callq 0xace2
movq %r14, %rdi
callq 0x56e6
leaq 0x230(%rsp), %rdi
movq %r15, %rsi
callq 0xa3ae
movl (%rax), %r15d
movq %r13, %rdi
callq 0x20f0
leaq 0x90(%rsp), %rdi
jmp 0x8843
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
pushq $0x4
popq %rcx
callq 0x21e0
movq %r12, %rdi
leaq 0x4059(%rip), %rsi      # 0xd2af
callq 0x36c4
movl %eax, %ebp
movq %r12, %rdi
callq 0x20f0
testb %bpl, %bpl
je 0x935a
movq (%r14), %rdi
leaq 0x4020(%rip), %rsi      # 0xd298
movq %r12, %rdx
xorl %eax, %eax
callq 0x21a0
leaq 0x1a0(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
leaq 0x20(%rsp), %rdx
callq 0x25ae
leaq 0x120(%rsp), %rsi
movq %rbx, %rdx
movq %r14, %rcx
callq 0xa1e0
movq %rax, %r14
movl %r15d, %ebp
testq %rax, %rax
je 0x9bc1
movq 0x168(%rsp), %rdi
addq $-0x18, %rdi
movq %rdi, 0x168(%rsp)
callq 0x56e6
movq 0x160(%rsp), %r15
movq 0x168(%rsp), %r13
cmpq %r15, %r13
je 0x9332
leaq -0x18(%r13), %rdx
movq 0x188(%rsp), %rcx
addq $-0x20, %rcx
leaq 0x120(%rsp), %rsi
callq 0xa1e0
movq %rax, %rdi
movq %r14, %rsi
callq 0x7eba
movq 0x188(%rsp), %rdi
movl -0x28(%rdi), %ebp
leaq -0x28(%rdi), %rax
movq %rax, 0x188(%rsp)
addq $-0x20, %rdi
callq 0x20f0
leaq 0x1a0(%rsp), %rdi
callq 0x20f0
cmpq %r15, %r13
movl %ebp, %r15d
leaq 0x120(%rsp), %rbp
leaq 0x50(%rsp), %r13
jne 0x8848
jmp 0x9367
leaq 0x120(%rsp), %rbp
jmp 0x8848
leaq 0x210(%rsp), %rdi
callq 0xa440
leaq 0x160(%rsp), %rdi
callq 0xa462
leaq 0x180(%rsp), %rdi
callq 0xa484
leaq 0x230(%rsp), %rdi
callq 0xa4a6
leaq 0x120(%rsp), %rdi
callq 0xa50a
addq $0x2c8, %rsp            # imm = 0x2C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x3e68(%rip), %rsi      # 0xd234
leaq 0xd8(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x36f0
leaq 0x3e42(%rip), %rdx      # 0xd22a
leaq 0xb8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x36d1
incl %r15d
leaq 0xf8(%rsp), %rdi
movl %r15d, %esi
callq 0x2536
leaq 0x70(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x48f1
leaq 0x3d3f(%rip), %rdx      # 0xd170
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x36d1
movb $0x1, %bpl
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa94f(%rip), %rsi      # 0x13da8
leaq -0x6f8e(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9c67
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x3db5(%rip), %rsi      # 0xd234
leaq 0xd8(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x36f0
leaq 0x3d92(%rip), %rdx      # 0xd22a
leaq 0xb8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x36d1
incl %r15d
leaq 0xf8(%rsp), %rdi
movl %r15d, %esi
callq 0x2536
leaq 0x70(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x48f1
leaq 0x3c8f(%rip), %rdx      # 0xd170
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x36d1
movb $0x1, %bpl
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa89f(%rip), %rsi      # 0x13da8
leaq -0x703e(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9c67
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x3cd5(%rip), %rsi      # 0xd204
leaq 0xd8(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x36f0
leaq 0x3ce2(%rip), %rdx      # 0xd22a
leaq 0xb8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x36d1
incl %r15d
leaq 0xf8(%rsp), %rdi
movl %r15d, %esi
callq 0x2536
leaq 0x70(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x48f1
leaq 0x3bdf(%rip), %rdx      # 0xd170
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x36d1
movb $0x1, %bpl
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa7ef(%rip), %rsi      # 0x13da8
leaq -0x70ee(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9c67
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x3c55(%rip), %rsi      # 0xd234
leaq 0xd8(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x36f0
leaq 0x3c2f(%rip), %rdx      # 0xd22a
leaq 0xb8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x36d1
incl %r15d
leaq 0xf8(%rsp), %rdi
movl %r15d, %esi
callq 0x2536
leaq 0x70(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x48f1
leaq 0x3b2c(%rip), %rdx      # 0xd170
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x36d1
movb $0x1, %bpl
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa73c(%rip), %rsi      # 0x13da8
leaq -0x71a1(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9c67
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x3bed(%rip), %rsi      # 0xd27f
leaq 0xd8(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x36f0
leaq 0x3b7c(%rip), %rdx      # 0xd22a
leaq 0xb8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x36d1
incl %r15d
leaq 0xf8(%rsp), %rdi
movl %r15d, %esi
callq 0x2536
leaq 0x70(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x48f1
leaq 0x3a79(%rip), %rdx      # 0xd170
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x36d1
movb $0x1, %bpl
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa689(%rip), %rsi      # 0x13da8
leaq -0x7254(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9c67
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x3aef(%rip), %rsi      # 0xd234
leaq 0xd8(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x36f0
leaq 0x3acc(%rip), %rdx      # 0xd22a
leaq 0xb8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x36d1
incl %r15d
leaq 0xf8(%rsp), %rdi
movl %r15d, %esi
callq 0x2536
leaq 0x70(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x48f1
leaq 0x39c9(%rip), %rdx      # 0xd170
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x36d1
movb $0x1, %bpl
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa5d9(%rip), %rsi      # 0x13da8
leaq -0x7304(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9c67
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x3a3f(%rip), %rsi      # 0xd234
leaq 0xd8(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x36f0
leaq 0x3a1c(%rip), %rdx      # 0xd22a
leaq 0xb8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x36d1
incl %r15d
leaq 0xf8(%rsp), %rdi
movl %r15d, %esi
callq 0x2536
leaq 0x70(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x48f1
leaq 0x3919(%rip), %rdx      # 0xd170
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x36d1
movb $0x1, %bpl
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa529(%rip), %rsi      # 0x13da8
leaq -0x73b4(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9c67
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x391a(%rip), %rsi      # 0xd1bf
leaq 0x260(%rsp), %rdi
leaq 0x1a0(%rsp), %rdx
callq 0x25ae
movb $0x1, %bpl
leaq 0x260(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa4d2(%rip), %rsi      # 0x13da8
leaq -0x740b(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9c67
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x70(%rsp), %rdi
leaq 0x260(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
callq 0x25ae
leaq 0x3969(%rip), %rsi      # 0xd27f
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x4958
leaq 0x38fe(%rip), %rdx      # 0xd22a
leaq 0x90(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x36d1
incl %r15d
leaq 0xb8(%rsp), %rdi
movl %r15d, %esi
callq 0x2536
leaq 0x20(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x48f1
leaq 0x37fe(%rip), %rdx      # 0xd170
leaq 0x1a0(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x36d1
movb $0x1, %bpl
leaq 0x1a0(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa408(%rip), %rsi      # 0x13da8
leaq -0x74d5(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9c67
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x386e(%rip), %rsi      # 0xd234
leaq 0x70(%rsp), %rdi
leaq 0x1a0(%rsp), %rdx
callq 0x36f0
leaq 0x384b(%rip), %rdx      # 0xd22a
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x36d1
incl %r15d
leaq 0xb8(%rsp), %rdi
movl %r15d, %esi
callq 0x2536
leaq 0x90(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x48f1
leaq 0x374e(%rip), %rdx      # 0xd170
leaq 0x20(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x36d1
movb $0x1, %bpl
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa35b(%rip), %rsi      # 0x13da8
leaq -0x7582(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9c67
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x37c1(%rip), %rsi      # 0xd234
leaq 0x70(%rsp), %rdi
leaq 0x1a0(%rsp), %rdx
callq 0x36f0
leaq 0x379e(%rip), %rdx      # 0xd22a
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x36d1
incl %r15d
leaq 0xb8(%rsp), %rdi
movl %r15d, %esi
callq 0x2536
leaq 0x90(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x48f1
leaq 0x36a1(%rip), %rdx      # 0xd170
leaq 0x20(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x36d1
movb $0x1, %bpl
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa2ae(%rip), %rsi      # 0x13da8
leaq -0x762f(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9c67
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x375f(%rip), %rsi      # 0xd27f
leaq 0xd8(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x36f0
leaq 0x36ee(%rip), %rdx      # 0xd22a
leaq 0xb8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x36d1
incl %r15d
leaq 0xf8(%rsp), %rdi
movl %r15d, %esi
callq 0x2536
leaq 0x70(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x48f1
leaq 0x35eb(%rip), %rdx      # 0xd170
leaq 0x20(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x36d1
movb $0x1, %bpl
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa1fb(%rip), %rsi      # 0x13da8
leaq -0x76e2(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9c67
pushq $0x28
popq %rdi
callq 0x2100
movq %rax, %r14
leaq 0x3661(%rip), %rsi      # 0xd234
leaq 0x70(%rsp), %rdi
leaq 0x1a0(%rsp), %rdx
callq 0x36f0
leaq 0x363e(%rip), %rdx      # 0xd22a
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x36d1
movl %ebp, %esi
incl %esi
leaq 0xb8(%rsp), %rdi
callq 0x2536
leaq 0x90(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x48f1
leaq 0x3543(%rip), %rdx      # 0xd170
leaq 0x20(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x36d1
movb $0x1, %bpl
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0x249c
xorl %ebp, %ebp
leaq 0xa150(%rip), %rsi      # 0x13da8
leaq -0x778d(%rip), %rdx     # 0x24d2
movq %r14, %rdi
callq 0x2320
jmp 0x9cf5
jmp 0x9d04
jmp 0x9d30
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x20f0
jmp 0x9c8b
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x70(%rsp), %rdi
callq 0x20f0
jmp 0x9ca2
jmp 0x9d91
movq %rax, %rbx
movb $0x1, %bpl
leaq 0xf8(%rsp), %rdi
callq 0x20f0
jmp 0x9ce6
jmp 0x9cf5
jmp 0x9d04
jmp 0x9d30
movq %rax, %rbx
leaq 0x1a0(%rsp), %rdi
callq 0x20f0
jmp 0x9ccf
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x20(%rsp), %rdi
callq 0x20f0
jmp 0x9d21
jmp 0x9ddc
movq %rax, %rbx
movb $0x1, %bpl
leaq 0xb8(%rsp), %rdi
callq 0x20f0
jmp 0x9d50
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x20f0
jmp 0x9d0a
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x90(%rsp), %rdi
callq 0x20f0
jmp 0x9d36
jmp 0x9d91
movq %rax, %rbx
movb $0x1, %bpl
leaq 0xb8(%rsp), %rdi
callq 0x20f0
jmp 0x9d82
movq %rax, %rbx
movb $0x1, %bpl
leaq 0xb8(%rsp), %rdi
callq 0x20f0
jmp 0x9d97
jmp 0x9e6b
movq %rax, %rbx
movb $0x1, %bpl
leaq 0xd8(%rsp), %rdi
callq 0x20f0
testb %bpl, %bpl
jne 0x9da6
jmp 0x9e7b
movq %rax, %rbx
movb $0x1, %bpl
jmp 0x9e34
movq %rax, %rbx
jmp 0x9e43
jmp 0x9ddc
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x90(%rsp), %rdi
callq 0x20f0
jmp 0x9dcd
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x50(%rsp), %rdi
callq 0x20f0
jmp 0x9de2
movq %rax, %rbx
movq %r14, %rdi
callq 0x2160
jmp 0x9e7b
jmp 0x9eb1
jmp 0xa194
jmp 0x9eb1
jmp 0x9e6b
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x50(%rsp), %rdi
callq 0x20f0
jmp 0x9e61
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x70(%rsp), %rdi
callq 0x20f0
testb %bpl, %bpl
jne 0x9e6e
jmp 0x9eb4
jmp 0xa194
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x56e6
jmp 0x9e7b
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x20f0
jmp 0x9e7b
jmp 0x9e78
jmp 0x9e78
movq %rax, %rbx
jmp 0x9e85
jmp 0xa194
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x20f0
leaq 0x20(%rsp), %rdi
callq 0x20f0
testb %bpl, %bpl
je 0x9e7b
pushq $0x40
popq %rsi
movq (%rsp), %rdi
callq 0x21d0
jmp 0x9e7b
jmp 0xa194
jmp 0xa194
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x70(%rsp), %rdi
jmp 0x9f22
movq %rax, %rbx
movq %r14, %rdi
callq 0x2160
jmp 0x9eb4
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x20f0
leaq 0x90(%rsp), %rdi
jmp 0xa181
jmp 0x9f31
jmp 0x9eb1
jmp 0xa194
jmp 0xa194
jmp 0x9eb1
jmp 0xa194
jmp 0x9eb1
jmp 0xa194
movq %rax, %rbx
leaq 0x1a0(%rsp), %rdi
jmp 0xa181
jmp 0xa194
jmp 0x9fc3
jmp 0x9fd2
jmp 0x9fc3
jmp 0x9fd2
jmp 0x9fc3
jmp 0x9fd2
jmp 0xa194
jmp 0xa029
jmp 0xa029
jmp 0xa029
jmp 0x9fc3
jmp 0x9fd2
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x20f0
jmp 0xa091
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0x20f0
testb %bpl, %bpl
jne 0x9f34
jmp 0xa197
movq %rax, %rbx
movq %r14, %rdi
callq 0x2160
jmp 0xa197
jmp 0xa06f
jmp 0xa06f
jmp 0xa06f
jmp 0xa029
jmp 0xa08e
jmp 0xa122
jmp 0xa194
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0x56e6
jmp 0xa197
movq %rax, %rbx
leaq 0x268(%rsp), %rdi
jmp 0xa181
jmp 0xa194
jmp 0xa122
jmp 0xa194
jmp 0xa0cd
jmp 0xa102
jmp 0xa0cd
jmp 0xa0cd
jmp 0xa06f
jmp 0xa0ec
jmp 0xa115
jmp 0x9fc3
jmp 0x9fd2
jmp 0x9fc3
jmp 0x9fd2
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x20f0
jmp 0x9fd8
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x70(%rsp), %rdi
callq 0x20f0
jmp 0xa02f
jmp 0xa102
jmp 0xa115
jmp 0xa115
jmp 0xa0cd
jmp 0xa122
jmp 0xa149
jmp 0xa149
jmp 0xa149
jmp 0xa149
jmp 0xa029
jmp 0xa01a
jmp 0xa149
movq %rax, %rbx
jmp 0xa0b8
jmp 0xa102
jmp 0xa029
movq %rax, %rbx
movb $0x1, %bpl
leaq 0xf8(%rsp), %rdi
callq 0x20f0
jmp 0xa075
jmp 0xa102
jmp 0xa149
jmp 0xa149
jmp 0xa149
jmp 0xa140
jmp 0xa194
jmp 0xa115
jmp 0xa194
jmp 0xa06f
jmp 0xa102
jmp 0xa06f
movq %rax, %rbx
movb $0x1, %bpl
leaq 0xb8(%rsp), %rdi
callq 0x20f0
jmp 0xa0d3
jmp 0xa122
jmp 0xa194
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x20f0
jmp 0xa0ef
jmp 0xa149
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x20f0
testb %bpl, %bpl
je 0xa16f
pushq $0x40
popq %rsi
movq (%rsp), %rdi
jmp 0xa16a
jmp 0xa149
jmp 0xa0cd
jmp 0xa0cd
movq %rax, %rbx
movb $0x1, %bpl
leaq 0xd8(%rsp), %rdi
callq 0x20f0
testb %bpl, %bpl
jne 0xa118
jmp 0xa16f
jmp 0xa149
movq %rax, %rbx
leaq 0x1a0(%rsp), %rdi
callq 0x20f0
jmp 0xa125
jmp 0xa149
jmp 0xa102
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x20f0
jmp 0xa16f
jmp 0xa115
jmp 0xa115
movq %rax, %rbx
movq %r14, %rdi
callq 0x2160
jmp 0xa16f
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
jmp 0xa181
jmp 0xa149
movq %rax, %rbx
jmp 0xa164
jmp 0xa149
jmp 0xa149
jmp 0xa140
jmp 0xa194
jmp 0xa194
movq %rax, %rbx
jmp 0xa17c
jmp 0xa194
jmp 0xa194
movq %rax, %rbx
jmp 0xa16f
jmp 0xa194
jmp 0xa194
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x20f0
testb %bpl, %bpl
je 0xa16f
pushq $0x40
popq %rsi
movq %r14, %rdi
callq 0x21d0
leaq 0x90(%rsp), %rdi
callq 0x20f0
leaq 0x20(%rsp), %rdi
callq 0x20f0
jmp 0xa197
jmp 0xa194
jmp 0xa194
jmp 0xa194
jmp 0xa194
jmp 0xa194
jmp 0xa194
movq %rax, %rbx
leaq 0x210(%rsp), %rdi
callq 0xa440
leaq 0x160(%rsp), %rdi
callq 0xa462
leaq 0x180(%rsp), %rdi
callq 0xa484
leaq 0x230(%rsp), %rdi
callq 0xa4a6
leaq 0x120(%rsp), %rdi
callq 0xa50a
movq %rbx, %rdi
callq 0x2330