// File: davidsun[P]TinyCompiler/CodeGenerator.cpp
// Function: CodeGenerator::parse_p[abi:cxx11]()
pair <string, vector <string> > CodeGenerator::parse_p(){
    int current_rule = _lra_result[_lra_position];
    _lra_position --;
    const string &rule = _lr_analytics.getRules()[current_rule].right_side;
    vector <string> apps;
    vector <vector <string> > parses;
    for (int i = rule.size() - 1; i >= 0; i --){
        if (rule[i] == _la_result[_la_position].first){
            if (rule[i] <= 'Z' && rule[i] >= 'A'){
                apps.push_back(string() + rule[i] + _la_result[_la_position].second);
                parses.push_back(vector <string>());
            }
            _la_position --;
        }  else {
            pair <string, vector <string> > result = parse_p();
            apps.push_back(string(" ") + result.first);
            parses.push_back(result.second);
        }
    }
    reverse(apps.begin(), apps.end());
    reverse(parses.begin(), parses.end());
    const ListCodeItems &lst_code_items = _code_rules[current_rule];
    _tmp_count ++;
    string ret_var_name = "t." + Utils::toString(_tmp_count);
    vector <string> codes;
    int label_start = _label_count;
    for (int i = 0; i < lst_code_items.size(); i ++){
        const string &command = lst_code_items[i].command;
        if (command == "PARSE"){
            // Parse command
            int pos = lst_code_items[i].param1 - '0';
            codes.insert(codes.end(), parses[pos].begin(), parses[pos].end());
        }  else if (command == "LABEL"){
            // Label
            if (lst_code_items[i].param1 == '-'){
                _label_count ++;
                string lbl_name = "L." + Utils::toString(_label_count);
                codes.push_back(lbl_name + ":");
            }  else {
                codes.push_back("L." + apps[lst_code_items[i].param1 - '0'].substr(1) + ":");
            }
        }  else if (command == "J"){
            // Jump
            codes.push_back(lst_code_items[i].command + "\tL." + Utils::toString(label_start + 1 + lst_code_items[i].param1 - '0')); 
        }  else if (command == "CALL"){
            // Call
            string as = lst_code_items[i].command + "\tL." + apps[lst_code_items[i].param1 - '0'].substr(1);
            if (lst_code_items[i].param2 == 'N'){
                as += string("\t") + ret_var_name;
            }  else if (lst_code_items[i].param2 != '-'){
                as += string("\t") + apps[lst_code_items[i].param2 - '0'].substr(1);
            }
            codes.push_back(as);
        }  else if (command == "BEQZ" || command == "BGEZ" || command == "BGTZ" || command == "BLEZ" || command == "BLTZ"){
            // Conditional Jump
            string as = lst_code_items[i].command + '\t';
            if (lst_code_items[i].param1 == 'N'){
                as += ret_var_name;
            }  else if (lst_code_items[i].param1 != '-'){
                as += apps[lst_code_items[i].param1 - '0'].substr(1);
            }
            as += "\tL." + Utils::toString(label_start + 1 + lst_code_items[i].param2 - '0');
            codes.push_back(as);
        }  else {
            string as = lst_code_items[i].command;
            if (lst_code_items[i].param1 == 'N'){
                as += string("\t") + ret_var_name;
            }  else if (lst_code_items[i].param1 != '-'){
                as += string("\t") + apps[lst_code_items[i].param1 - '0'].substr(1);
            }
            if (lst_code_items[i].param2 == 'N'){
                as += string("\t") + ret_var_name;
            }  else if (lst_code_items[i].param2 == 'T'){
                as += string("\t") + "1";
            }  else if (lst_code_items[i].param2 == 'F'){
                as += string("\t") + "0";
            }  else if (lst_code_items[i].param2 != '-'){
                as += string("\t") + apps[lst_code_items[i].param2 - '0'].substr(1);
            }
            codes.push_back(as);
        }
    }
    return make_pair(ret_var_name, codes);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x7b0, %rsp            # imm = 0x7B0
movq %rdi, -0x6f8(%rbp)
movq %rdi, %rax
movq %rax, -0x6f0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x6e8(%rbp)
movq %rax, %rdi
addq $0x60, %rdi
movslq (%rax), %rsi
callq 0x122a0
movq -0x6e8(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x14(%rbp)
movl (%rdi), %eax
addl $-0x1, %eax
movl %eax, (%rdi)
addq $0x10, %rdi
callq 0x8290
movq %rax, %rdi
movslq -0x14(%rbp), %rsi
callq 0x4920
addq $0x8, %rax
movq %rax, -0x20(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x97f0
leaq -0x50(%rbp), %rdi
callq 0x97a0
movq -0x20(%rbp), %rdi
callq 0x31e0
subq $0x1, %rax
movl %eax, -0x54(%rbp)
cmpl $0x0, -0x54(%rbp)
jl 0x105fe
movq -0x20(%rbp), %rdi
movslq -0x54(%rbp), %rsi
callq 0x3300
movq %rax, %rcx
movq -0x6e8(%rbp), %rax
movsbl (%rcx), %ecx
movl %ecx, -0x6fc(%rbp)
movq %rax, %rdi
addq $0x48, %rdi
movslq 0x4(%rax), %rsi
callq 0x122c0
movq %rax, %rcx
movl -0x6fc(%rbp), %eax
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x1049b
movq -0x20(%rbp), %rdi
movslq -0x54(%rbp), %rsi
callq 0x3300
movsbl (%rax), %eax
cmpl $0x5a, %eax
jg 0x10486
movq -0x20(%rbp), %rdi
movslq -0x54(%rbp), %rsi
callq 0x3300
movsbl (%rax), %eax
cmpl $0x41, %eax
jl 0x10486
leaq -0xb8(%rbp), %rdi
movq %rdi, -0x708(%rbp)
callq 0x33a0
movq -0x20(%rbp), %rdi
movslq -0x54(%rbp), %rsi
callq 0x3300
movq -0x708(%rbp), %rsi
movsbl (%rax), %edx
leaq -0x98(%rbp), %rdi
callq 0x6d70
jmp 0x10358
movq -0x6e8(%rbp), %rax
movq %rax, %rdi
addq $0x48, %rdi
movslq 0x4(%rax), %rsi
callq 0x122c0
movq %rax, %rdx
addq $0x8, %rdx
leaq -0x78(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x122e0
jmp 0x10388
leaq -0x38(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x9960
jmp 0x10397
leaq -0x78(%rbp), %rdi
callq 0x31a0
leaq -0x98(%rbp), %rdi
callq 0x31a0
leaq -0xb8(%rbp), %rdi
callq 0x31a0
xorps %xmm0, %xmm0
movaps %xmm0, -0xe0(%rbp)
movq $0x0, -0xd0(%rbp)
leaq -0xe0(%rbp), %rdi
movq %rdi, -0x710(%rbp)
callq 0x97f0
movq -0x710(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x97c0
jmp 0x103f2
leaq -0xe0(%rbp), %rdi
callq 0x9810
jmp 0x10486
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x10452
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x10446
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x31a0
leaq -0x98(%rbp), %rdi
callq 0x31a0
leaq -0xb8(%rbp), %rdi
callq 0x31a0
jmp 0x11b1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x9810
jmp 0x11b1e
movq -0x6e8(%rbp), %rax
movl 0x4(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x4(%rax)
jmp 0x105ee
movq -0x6e8(%rbp), %rsi
leaq -0x118(%rbp), %rdi
callq 0x10210
jmp 0x104b0
leaq -0x159(%rbp), %rdi
movq %rdi, -0x718(%rbp)
callq 0x3490
movq -0x718(%rbp), %rdx
leaq 0x14f32(%rip), %rsi     # 0x25403
leaq -0x158(%rbp), %rdi
callq 0x3870
jmp 0x104df
leaq -0x138(%rbp), %rdi
leaq -0x158(%rbp), %rsi
leaq -0x118(%rbp), %rdx
callq 0x122e0
jmp 0x104fb
leaq -0x38(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x9960
jmp 0x1050d
leaq -0x138(%rbp), %rdi
callq 0x31a0
leaq -0x158(%rbp), %rdi
callq 0x31a0
leaq -0x159(%rbp), %rdi
callq 0x32e0
leaq -0xf8(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x99e0
jmp 0x10543
leaq -0x118(%rbp), %rdi
callq 0x12270
jmp 0x105ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11b1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x105bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x105b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x31a0
leaq -0x158(%rbp), %rdi
callq 0x31a0
leaq -0x159(%rbp), %rdi
callq 0x32e0
jmp 0x105dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x12270
jmp 0x11b1e
jmp 0x105f0
movl -0x54(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x102a0
leaq -0x38(%rbp), %rdi
movq %rdi, -0x720(%rbp)
callq 0xcde0
movq -0x720(%rbp), %rdi
movq %rax, -0x168(%rbp)
callq 0xcc20
movq %rax, -0x170(%rbp)
movq -0x168(%rbp), %rdi
movq -0x170(%rbp), %rsi
callq 0x12330
jmp 0x1063d
leaq -0x50(%rbp), %rdi
movq %rdi, -0x728(%rbp)
callq 0xc560
movq -0x728(%rbp), %rdi
movq %rax, -0x178(%rbp)
callq 0xc280
movq %rax, -0x180(%rbp)
movq -0x178(%rbp), %rdi
movq -0x180(%rbp), %rsi
callq 0x12370
jmp 0x1067c
movq -0x6e8(%rbp), %rdi
addq $0x78, %rdi
movslq -0x14(%rbp), %rsi
callq 0x123b0
movq %rax, %rcx
movq -0x6e8(%rbp), %rax
movq %rcx, -0x188(%rbp)
movl 0x8(%rax), %ecx
incl %ecx
movl %ecx, 0x8(%rax)
movl 0x8(%rax), %esi
leaq -0x1c8(%rbp), %rdi
callq 0x3750
jmp 0x106ba
leaq 0x14c60(%rip), %rsi     # 0x25321
leaq -0x1a8(%rbp), %rdi
leaq -0x1c8(%rbp), %rdx
callq 0x9990
jmp 0x106d6
leaq -0x1c8(%rbp), %rdi
callq 0x31a0
leaq -0x1e0(%rbp), %rdi
callq 0x97f0
movq -0x6e8(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x1e4(%rbp)
movl $0x0, -0x1e8(%rbp)
movslq -0x1e8(%rbp), %rax
movq %rax, -0x730(%rbp)
movq -0x188(%rbp), %rdi
callq 0x123d0
movq %rax, %rcx
movq -0x730(%rbp), %rax
cmpq %rcx, %rax
jae 0x11ab0
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movq %rax, -0x1f0(%rbp)
movq -0x1f0(%rbp), %rdi
leaq 0x14bc7(%rip), %rsi     # 0x25324
callq 0x6de0
movb %al, -0x731(%rbp)
jmp 0x1076a
movb -0x731(%rbp), %al
testb $0x1, %al
jne 0x10779
jmp 0x10885
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x20(%rax), %eax
addl $-0x30, %eax
movl %eax, -0x1f4(%rbp)
leaq -0x1e0(%rbp), %rdi
movq %rdi, -0x748(%rbp)
callq 0xcc20
movq %rax, -0x208(%rbp)
leaq -0x200(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x124d0
movslq -0x1f4(%rbp), %rsi
leaq -0x50(%rbp), %rdi
movq %rdi, -0x750(%rbp)
callq 0x9940
movq %rax, %rdi
callq 0xcde0
movq -0x750(%rbp), %rdi
movq %rax, -0x210(%rbp)
movslq -0x1f4(%rbp), %rsi
callq 0x9940
movq %rax, %rdi
callq 0xcc20
movq -0x748(%rbp), %rdi
movq %rax, -0x218(%rbp)
movq -0x200(%rbp), %rsi
movq -0x210(%rbp), %rdx
movq -0x218(%rbp), %rcx
callq 0x12420
movq %rax, -0x740(%rbp)
jmp 0x10838
movq -0x740(%rbp), %rax
movq %rax, -0x220(%rbp)
jmp 0x11a9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x31a0
jmp 0x11b1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11b06
movq -0x1f0(%rbp), %rdi
leaq 0x14a97(%rip), %rsi     # 0x2532a
callq 0x6de0
movb %al, -0x751(%rbp)
jmp 0x108a0
movb -0x751(%rbp), %al
testb $0x1, %al
jne 0x108af
jmp 0x10ae9
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x20(%rax), %eax
cmpl $0x2d, %eax
jne 0x109cb
movq -0x6e8(%rbp), %rax
movl 0xc(%rax), %ecx
incl %ecx
movl %ecx, 0xc(%rax)
movl 0xc(%rax), %esi
leaq -0x260(%rbp), %rdi
callq 0x3750
jmp 0x108ef
leaq 0x14a3d(%rip), %rsi     # 0x25333
leaq -0x240(%rbp), %rdi
leaq -0x260(%rbp), %rdx
callq 0x9990
jmp 0x1090b
leaq -0x260(%rbp), %rdi
callq 0x31a0
leaq 0x14b56(%rip), %rdx     # 0x25474
leaq -0x280(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x12510
jmp 0x10933
leaq -0x1e0(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x9960
jmp 0x10948
leaq -0x280(%rbp), %rdi
callq 0x31a0
leaq -0x240(%rbp), %rdi
callq 0x31a0
jmp 0x10ae4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x31a0
jmp 0x11b06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x109ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x31a0
leaq -0x240(%rbp), %rdi
callq 0x31a0
jmp 0x11b06
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x20(%rax), %eax
addl $-0x30, %eax
movslq %eax, %rsi
leaq -0x38(%rbp), %rdi
callq 0x9a70
movq %rax, %rsi
leaq -0x2e0(%rbp), %rdi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0x32a0
jmp 0x10a0e
leaq 0x1491e(%rip), %rsi     # 0x25333
leaq -0x2c0(%rbp), %rdi
leaq -0x2e0(%rbp), %rdx
callq 0x9990
jmp 0x10a2a
leaq 0x14a43(%rip), %rdx     # 0x25474
leaq -0x2a0(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x6e50
jmp 0x10a46
leaq -0x1e0(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x9960
jmp 0x10a5b
leaq -0x2a0(%rbp), %rdi
callq 0x31a0
leaq -0x2c0(%rbp), %rdi
callq 0x31a0
leaq -0x2e0(%rbp), %rdi
callq 0x31a0
jmp 0x10ae4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x10ad3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x10ac7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x31a0
leaq -0x2c0(%rbp), %rdi
callq 0x31a0
leaq -0x2e0(%rbp), %rdi
callq 0x31a0
jmp 0x11b06
jmp 0x11a98
movq -0x1f0(%rbp), %rdi
leaq 0x14839(%rip), %rsi     # 0x25330
callq 0x6de0
movb %al, -0x752(%rbp)
jmp 0x10b04
movb -0x752(%rbp), %al
testb $0x1, %al
jne 0x10b13
jmp 0x10c3a
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movq %rax, %rsi
leaq 0x14802(%rip), %rdx     # 0x25332
leaq -0x320(%rbp), %rdi
callq 0x12510
jmp 0x10b3e
movl -0x1e4(%rbp), %eax
movl %eax, -0x758(%rbp)
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movl -0x758(%rbp), %ecx
movsbl 0x20(%rax), %edx
movl %ecx, %eax
movl %edx, %ecx
leal -0x2f(%rax,%rcx), %esi
leaq -0x340(%rbp), %rdi
callq 0x3750
jmp 0x10b7d
leaq -0x300(%rbp), %rdi
leaq -0x320(%rbp), %rsi
leaq -0x340(%rbp), %rdx
callq 0x9870
jmp 0x10b99
leaq -0x1e0(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x9960
jmp 0x10bae
leaq -0x300(%rbp), %rdi
callq 0x31a0
leaq -0x340(%rbp), %rdi
callq 0x31a0
leaq -0x320(%rbp), %rdi
callq 0x31a0
jmp 0x11a96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x10c29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x10c1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x31a0
leaq -0x340(%rbp), %rdi
callq 0x31a0
leaq -0x320(%rbp), %rdi
callq 0x31a0
jmp 0x11b06
movq -0x1f0(%rbp), %rdi
leaq 0x146ee(%rip), %rsi     # 0x25336
callq 0x6de0
movb %al, -0x759(%rbp)
jmp 0x10c55
movb -0x759(%rbp), %al
testb $0x1, %al
jne 0x10c64
jmp 0x11018
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movq %rax, %rsi
leaq 0x146b1(%rip), %rdx     # 0x25332
leaq -0x380(%rbp), %rdi
callq 0x12510
jmp 0x10c8f
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x20(%rax), %eax
addl $-0x30, %eax
movslq %eax, %rsi
leaq -0x38(%rbp), %rdi
callq 0x9a70
movq %rax, %rsi
leaq -0x3a0(%rbp), %rdi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0x32a0
jmp 0x10cd2
leaq -0x360(%rbp), %rdi
leaq -0x380(%rbp), %rsi
leaq -0x3a0(%rbp), %rdx
callq 0x9870
jmp 0x10cee
leaq -0x3a0(%rbp), %rdi
callq 0x31a0
leaq -0x380(%rbp), %rdi
callq 0x31a0
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x21(%rax), %eax
cmpl $0x4e, %eax
jne 0x10e55
leaq -0x3e1(%rbp), %rdi
movq %rdi, -0x768(%rbp)
callq 0x3490
movq -0x768(%rbp), %rdx
leaq 0x146c6(%rip), %rsi     # 0x2540d
leaq -0x3e0(%rbp), %rdi
callq 0x3870
jmp 0x10d55
leaq -0x3c0(%rbp), %rdi
leaq -0x3e0(%rbp), %rsi
leaq -0x1a8(%rbp), %rdx
callq 0x122e0
jmp 0x10d71
leaq -0x360(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x3360
jmp 0x10d86
leaq -0x3c0(%rbp), %rdi
callq 0x31a0
leaq -0x3e0(%rbp), %rdi
callq 0x31a0
leaq -0x3e1(%rbp), %rdi
callq 0x32e0
jmp 0x10fcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x10de1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x31a0
leaq -0x380(%rbp), %rdi
callq 0x31a0
jmp 0x11b06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x10e44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x10e38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x3c0(%rbp), %rdi
callq 0x31a0
leaq -0x3e0(%rbp), %rdi
callq 0x31a0
leaq -0x3e1(%rbp), %rdi
callq 0x32e0
jmp 0x11007
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x21(%rax), %eax
cmpl $0x2d, %eax
je 0x10fcd
leaq -0x429(%rbp), %rdi
movq %rdi, -0x770(%rbp)
callq 0x3490
movq -0x770(%rbp), %rdx
leaq 0x14577(%rip), %rsi     # 0x2540d
leaq -0x428(%rbp), %rdi
callq 0x3870
jmp 0x10ea4
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x21(%rax), %eax
addl $-0x30, %eax
movslq %eax, %rsi
leaq -0x38(%rbp), %rdi
callq 0x9a70
movq %rax, %rsi
leaq -0x450(%rbp), %rdi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0x32a0
jmp 0x10ee7
leaq -0x408(%rbp), %rdi
leaq -0x428(%rbp), %rsi
leaq -0x450(%rbp), %rdx
callq 0x9870
jmp 0x10f03
leaq -0x360(%rbp), %rdi
leaq -0x408(%rbp), %rsi
callq 0x3360
jmp 0x10f18
leaq -0x408(%rbp), %rdi
callq 0x31a0
leaq -0x450(%rbp), %rdi
callq 0x31a0
leaq -0x428(%rbp), %rdi
callq 0x31a0
leaq -0x429(%rbp), %rdi
callq 0x32e0
jmp 0x10fcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x10fbf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x10fb3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x10fa7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x408(%rbp), %rdi
callq 0x31a0
leaq -0x450(%rbp), %rdi
callq 0x31a0
leaq -0x428(%rbp), %rdi
callq 0x31a0
leaq -0x429(%rbp), %rdi
callq 0x32e0
jmp 0x11007
jmp 0x10fcf
leaq -0x1e0(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0x12590
jmp 0x10fe4
leaq -0x360(%rbp), %rdi
callq 0x31a0
jmp 0x11a94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x31a0
jmp 0x11b06
movq -0x1f0(%rbp), %rdi
leaq 0x14315(%rip), %rsi     # 0x2533b
callq 0x6de0
movb %al, -0x771(%rbp)
jmp 0x11033
movb -0x771(%rbp), %al
testb $0x1, %al
jne 0x110e2
jmp 0x11043
movq -0x1f0(%rbp), %rdi
leaq 0x142ef(%rip), %rsi     # 0x25340
callq 0x6de0
movb %al, -0x772(%rbp)
jmp 0x1105e
movb -0x772(%rbp), %al
testb $0x1, %al
jne 0x110e2
jmp 0x1106a
movq -0x1f0(%rbp), %rdi
leaq 0x142cd(%rip), %rsi     # 0x25345
callq 0x6de0
movb %al, -0x773(%rbp)
jmp 0x11085
movb -0x773(%rbp), %al
testb $0x1, %al
jne 0x110e2
jmp 0x11091
movq -0x1f0(%rbp), %rdi
leaq 0x142ab(%rip), %rsi     # 0x2534a
callq 0x6de0
movb %al, -0x774(%rbp)
jmp 0x110ac
movb -0x774(%rbp), %al
testb $0x1, %al
jne 0x110e2
jmp 0x110b8
movq -0x1f0(%rbp), %rdi
leaq 0x14289(%rip), %rsi     # 0x2534f
callq 0x6de0
movb %al, -0x775(%rbp)
jmp 0x110d3
movb -0x775(%rbp), %al
testb $0x1, %al
jne 0x110e2
jmp 0x11300
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movq %rax, %rsi
leaq -0x470(%rbp), %rdi
movl $0x9, %edx
callq 0x12600
jmp 0x1110b
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x20(%rax), %eax
cmpl $0x4e, %eax
jne 0x11158
leaq -0x470(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x3360
jmp 0x1113c
jmp 0x11203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x112ef
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x20(%rax), %eax
cmpl $0x2d, %eax
je 0x11201
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x20(%rax), %eax
addl $-0x30, %eax
movslq %eax, %rsi
leaq -0x38(%rbp), %rdi
callq 0x9a70
movq %rax, %rsi
leaq -0x490(%rbp), %rdi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0x32a0
jmp 0x111bb
leaq -0x470(%rbp), %rdi
leaq -0x490(%rbp), %rsi
callq 0x3360
jmp 0x111d0
leaq -0x490(%rbp), %rdi
callq 0x31a0
jmp 0x11201
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x490(%rbp), %rdi
callq 0x31a0
jmp 0x112ef
jmp 0x11203
movl -0x1e4(%rbp), %eax
movl %eax, -0x77c(%rbp)
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movl -0x77c(%rbp), %ecx
movsbl 0x21(%rax), %edx
movl %ecx, %eax
movl %edx, %ecx
leal -0x2f(%rax,%rcx), %esi
leaq -0x4d0(%rbp), %rdi
callq 0x3750
jmp 0x11242
leaq 0x140e9(%rip), %rsi     # 0x25332
leaq -0x4b0(%rbp), %rdi
leaq -0x4d0(%rbp), %rdx
callq 0x9990
jmp 0x1125e
leaq -0x470(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0x3360
jmp 0x11273
leaq -0x4b0(%rbp), %rdi
callq 0x31a0
leaq -0x4d0(%rbp), %rdi
callq 0x31a0
leaq -0x1e0(%rbp), %rdi
leaq -0x470(%rbp), %rsi
callq 0x12590
jmp 0x112a0
leaq -0x470(%rbp), %rdi
callq 0x31a0
jmp 0x11a92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x112e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x4b0(%rbp), %rdi
callq 0x31a0
leaq -0x4d0(%rbp), %rdi
callq 0x31a0
leaq -0x470(%rbp), %rdi
callq 0x31a0
jmp 0x11b06
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movq %rax, %rsi
leaq -0x4f0(%rbp), %rdi
callq 0x3120
jmp 0x11324
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x20(%rax), %eax
cmpl $0x4e, %eax
jne 0x11430
leaq -0x531(%rbp), %rdi
movq %rdi, -0x788(%rbp)
callq 0x3490
movq -0x788(%rbp), %rdx
leaq 0x140a8(%rip), %rsi     # 0x2540d
leaq -0x530(%rbp), %rdi
callq 0x3870
jmp 0x11373
leaq -0x510(%rbp), %rdi
leaq -0x530(%rbp), %rsi
leaq -0x1a8(%rbp), %rdx
callq 0x122e0
jmp 0x1138f
leaq -0x4f0(%rbp), %rdi
leaq -0x510(%rbp), %rsi
callq 0x3360
jmp 0x113a4
leaq -0x510(%rbp), %rdi
callq 0x31a0
leaq -0x530(%rbp), %rdi
callq 0x31a0
leaq -0x531(%rbp), %rdi
callq 0x32e0
jmp 0x115ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1141f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11413
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x510(%rbp), %rdi
callq 0x31a0
leaq -0x530(%rbp), %rdi
callq 0x31a0
leaq -0x531(%rbp), %rdi
callq 0x32e0
jmp 0x11a84
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x20(%rax), %eax
cmpl $0x2d, %eax
je 0x115ab
leaq -0x579(%rbp), %rdi
movq %rdi, -0x790(%rbp)
callq 0x3490
movq -0x790(%rbp), %rdx
leaq 0x13f9c(%rip), %rsi     # 0x2540d
leaq -0x578(%rbp), %rdi
callq 0x3870
jmp 0x1147f
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x20(%rax), %eax
addl $-0x30, %eax
movslq %eax, %rsi
leaq -0x38(%rbp), %rdi
callq 0x9a70
movq %rax, %rsi
leaq -0x5a0(%rbp), %rdi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0x32a0
jmp 0x114c2
leaq -0x558(%rbp), %rdi
leaq -0x578(%rbp), %rsi
leaq -0x5a0(%rbp), %rdx
callq 0x9870
jmp 0x114de
leaq -0x4f0(%rbp), %rdi
leaq -0x558(%rbp), %rsi
callq 0x3360
jmp 0x114f3
leaq -0x558(%rbp), %rdi
callq 0x31a0
leaq -0x5a0(%rbp), %rdi
callq 0x31a0
leaq -0x578(%rbp), %rdi
callq 0x31a0
leaq -0x579(%rbp), %rdi
callq 0x32e0
jmp 0x115ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1159a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1158e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11582
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x558(%rbp), %rdi
callq 0x31a0
leaq -0x5a0(%rbp), %rdi
callq 0x31a0
leaq -0x578(%rbp), %rdi
callq 0x31a0
leaq -0x579(%rbp), %rdi
callq 0x32e0
jmp 0x11a84
jmp 0x115ad
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x21(%rax), %eax
cmpl $0x4e, %eax
jne 0x116b9
leaq -0x5e1(%rbp), %rdi
movq %rdi, -0x798(%rbp)
callq 0x3490
movq -0x798(%rbp), %rdx
leaq 0x13e1f(%rip), %rsi     # 0x2540d
leaq -0x5e0(%rbp), %rdi
callq 0x3870
jmp 0x115fc
leaq -0x5c0(%rbp), %rdi
leaq -0x5e0(%rbp), %rsi
leaq -0x1a8(%rbp), %rdx
callq 0x122e0
jmp 0x11618
leaq -0x4f0(%rbp), %rdi
leaq -0x5c0(%rbp), %rsi
callq 0x3360
jmp 0x1162d
leaq -0x5c0(%rbp), %rdi
callq 0x31a0
leaq -0x5e0(%rbp), %rdi
callq 0x31a0
leaq -0x5e1(%rbp), %rdi
callq 0x32e0
jmp 0x11a4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x116a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1169c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x5c0(%rbp), %rdi
callq 0x31a0
leaq -0x5e0(%rbp), %rdi
callq 0x31a0
leaq -0x5e1(%rbp), %rdi
callq 0x32e0
jmp 0x11a84
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x21(%rax), %eax
cmpl $0x54, %eax
jne 0x117c5
leaq -0x629(%rbp), %rdi
movq %rdi, -0x7a0(%rbp)
callq 0x3490
movq -0x7a0(%rbp), %rdx
leaq 0x13d13(%rip), %rsi     # 0x2540d
leaq -0x628(%rbp), %rdi
callq 0x3870
jmp 0x11708
leaq 0x13c45(%rip), %rdx     # 0x25354
leaq -0x608(%rbp), %rdi
leaq -0x628(%rbp), %rsi
callq 0x6e50
jmp 0x11724
leaq -0x4f0(%rbp), %rdi
leaq -0x608(%rbp), %rsi
callq 0x3360
jmp 0x11739
leaq -0x608(%rbp), %rdi
callq 0x31a0
leaq -0x628(%rbp), %rdi
callq 0x31a0
leaq -0x629(%rbp), %rdi
callq 0x32e0
jmp 0x11a4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x117b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x117a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x608(%rbp), %rdi
callq 0x31a0
leaq -0x628(%rbp), %rdi
callq 0x31a0
leaq -0x629(%rbp), %rdi
callq 0x32e0
jmp 0x11a84
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x21(%rax), %eax
cmpl $0x46, %eax
jne 0x118d1
leaq -0x671(%rbp), %rdi
movq %rdi, -0x7a8(%rbp)
callq 0x3490
movq -0x7a8(%rbp), %rdx
leaq 0x13c07(%rip), %rsi     # 0x2540d
leaq -0x670(%rbp), %rdi
callq 0x3870
jmp 0x11814
leaq 0x13b3b(%rip), %rdx     # 0x25356
leaq -0x650(%rbp), %rdi
leaq -0x670(%rbp), %rsi
callq 0x6e50
jmp 0x11830
leaq -0x4f0(%rbp), %rdi
leaq -0x650(%rbp), %rsi
callq 0x3360
jmp 0x11845
leaq -0x650(%rbp), %rdi
callq 0x31a0
leaq -0x670(%rbp), %rdi
callq 0x31a0
leaq -0x671(%rbp), %rdi
callq 0x32e0
jmp 0x11a4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x118c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x118b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x650(%rbp), %rdi
callq 0x31a0
leaq -0x670(%rbp), %rdi
callq 0x31a0
leaq -0x671(%rbp), %rdi
callq 0x32e0
jmp 0x11a84
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x21(%rax), %eax
cmpl $0x2d, %eax
je 0x11a49
leaq -0x6b9(%rbp), %rdi
movq %rdi, -0x7b0(%rbp)
callq 0x3490
movq -0x7b0(%rbp), %rdx
leaq 0x13afb(%rip), %rsi     # 0x2540d
leaq -0x6b8(%rbp), %rdi
callq 0x3870
jmp 0x11920
movq -0x188(%rbp), %rdi
movslq -0x1e8(%rbp), %rsi
callq 0x12400
movsbl 0x21(%rax), %eax
addl $-0x30, %eax
movslq %eax, %rsi
leaq -0x38(%rbp), %rdi
callq 0x9a70
movq %rax, %rsi
leaq -0x6e0(%rbp), %rdi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0x32a0
jmp 0x11963
leaq -0x698(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
leaq -0x6e0(%rbp), %rdx
callq 0x9870
jmp 0x1197f
leaq -0x4f0(%rbp), %rdi
leaq -0x698(%rbp), %rsi
callq 0x3360
jmp 0x11994
leaq -0x698(%rbp), %rdi
callq 0x31a0
leaq -0x6e0(%rbp), %rdi
callq 0x31a0
leaq -0x6b8(%rbp), %rdi
callq 0x31a0
leaq -0x6b9(%rbp), %rdi
callq 0x32e0
jmp 0x11a49
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11a3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11a2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11a23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x698(%rbp), %rdi
callq 0x31a0
leaq -0x6e0(%rbp), %rdi
callq 0x31a0
leaq -0x6b8(%rbp), %rdi
callq 0x31a0
leaq -0x6b9(%rbp), %rdi
callq 0x32e0
jmp 0x11a84
jmp 0x11a4b
jmp 0x11a4d
jmp 0x11a4f
leaq -0x1e0(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
callq 0x12590
jmp 0x11a64
leaq -0x4f0(%rbp), %rdi
callq 0x31a0
jmp 0x11a92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x31a0
jmp 0x11b06
jmp 0x11a94
jmp 0x11a96
jmp 0x11a98
jmp 0x11a9a
jmp 0x11a9c
movl -0x1e8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1e8(%rbp)
jmp 0x10708
movq -0x6f8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
leaq -0x1e0(%rbp), %rdx
callq 0x12680
jmp 0x11acc
leaq -0x1e0(%rbp), %rdi
callq 0x9810
leaq -0x1a8(%rbp), %rdi
callq 0x31a0
leaq -0x50(%rbp), %rdi
callq 0x9a90
leaq -0x38(%rbp), %rdi
callq 0x9810
movq -0x6f0(%rbp), %rax
addq $0x7b0, %rsp            # imm = 0x7B0
popq %rbp
retq
leaq -0x1e0(%rbp), %rdi
callq 0x9810
leaq -0x1a8(%rbp), %rdi
callq 0x31a0
leaq -0x50(%rbp), %rdi
callq 0x9a90
leaq -0x38(%rbp), %rdi
callq 0x9810
movq -0xc0(%rbp), %rdi
callq 0x3480
nopl (%rax)