// File: /workspace/github_c_makefile_star2_O0/zyearn[P]SmallC/codegen.cpp
// Function: genStmt(treeNode*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int)
void genStmt(treeNode* node, int type, string scope, int labelN)
{
    switch(type)
    {
        case 1:
        genExp(node->child[0],node->child[0]->type, scope);
        break;
        case 2:
        genStmtblock(node->child[0],node->child[0]->type, scope, labelN);
        break;
        case 3: 
        {
            genExp(node->child[1],node->child[1]->type, scope);
            /*
            if(scope == "main")
            {
                cout << "li $v0, 1" << endl;
                cout << "move $a0, $t0" << endl;
                cout << "syscall" << endl;
                cout << "li $v0, 4" << endl;
                cout << "la $a0, newline" << endl;
                cout << "syscall" << endl;
            }*/
            cout << "lw $s1 -4($s0)" << endl;
            cout << "jr $s1" << endl;
        }
        break;
        case 4:
        {
            int local = labelNumber;
            labelNumber++;
            genExp(node->child[2], node->child[2]->type, scope);
            cout << "beqz $t0, _labelExit" << local+1 << endl;
            genStmt(node->child[4], node->child[4]->type, scope, labelN);
            cout << "_labelExit" << local+1 << ":"<< endl;
            break;
        }
        case 5:
        {
            int local = labelNumber;
            labelNumber = labelNumber + 2;
            genExp(node->child[2],node->child[2]->type, scope);
            cout << "beqz $t0, _labelElse" << local+1 << endl;
            genStmt(node->child[4], node->child[4]->type, scope, labelN);
            cout << "j _labelExit" << local+2 << endl;
            cout << "_labelElse" << local+1 << ":" << endl;
            genStmt(node->child[6], node->child[6]->type, scope, labelN);
            cout << "_labelExit" << local+2 << ":" << endl;
            break;
        }
        case 6:
        {
            int local = labelNumber;
            labelNumber = labelNumber + 3;
            genExp(node->child[2], node->child[2]->type, scope);
            cout << "_labelFor" << local+1 <<":"<< endl;
            genExp(node->child[4], node->child[4]->type, scope);
            cout << "beqz $t0, _labelExit" << local+3 << endl;
            genStmt(node->child[8], node->child[8]->type, scope, labelNumber);
            cout << "_labelUpdate" << local+2 << ":" << endl;
            genExp(node->child[6], node->child[6]->type, scope);
            cout << "j _labelFor" << local+1 << endl;
            cout << "_labelExit" << local+3 << ":" << endl;
            break;
        }
        case 7:
        {
            if(labelN != 0)
            {
                cout << "j _labelUpdate" << labelN-1 << endl;
            }
            else
                cout << "j _labelUpdate" << labelNumber-1 << endl;
        }
        case 8:
        {
            if(labelN != 0)
                cout << "j _labelExit" << labelN << endl;
            else
                cout << "j _labelExit" << labelNumber << endl;
            break;
        }
        case 9:     //read
        {
            cout << "li $v0, 5" << endl;
            cout << "syscall" << endl;
            if(node->child[2]->type == 35)  //int int[]
            {

            //  genExp(node->child[2], node->child[2]->type, scope);
                node = node->child[2];
                if(node->child[1]->type == 2) //int
                {
                    if((*FT[scope])[node->child[0]->data] != 0)
                        cout << "sw $v0, " << 4 + (*FT[scope])["#"] - (*FT[scope])[node->child[0]->data] << "($s0)" << endl;
                    else if ( (*FT["_G"])[node->child[0]->data] != 0)   
                        cout << "sw $v0, " << (*FT["_G"])["#"] - (*FT["_G"])[node->child[0]->data] << "($s2)" << endl;
                }
                else    //int[]
                {
                    genExp(node->child[1]->child[1], node->child[1]->child[1]->type, scope);
                    cout << "mul $t0, $t0, 4" << endl;
                    if((*FT[scope])[node->child[0]->data] != 0 && (*ISA[scope])[node->child[0]->data]== 1)
                    {
                        cout << "add $t0, $t0, " << 4 + (*FT[scope])["#"] - (*FT[scope])[node->child[0]->data] << endl;
                        cout << "add $t0, $t0, $s0" << endl;
                        cout << "sw $v0, 0($t0)" << endl;
                    }
                    else if ((*FT["_G"])[node->child[0]->data] != 0 && (*ISA["_G"])[node->child[0]->data]== 1)  
                    {
                        cout << "add $t0, $t0, " << (*FT["_G"])["#"] - (*FT["_G"])[node->child[0]->data] << endl;
                        cout << "add $t0, $t0, $s2" << endl;
                        cout << "sw $v0, 0($t0)" << endl;
                    }
                    else
                    {
                        freopen(outputFile.c_str(), "w", stdout);
                        cout << "Error.";
                        fprintf(stderr, "\nCompile fail!\n");
                        fprintf(stderr, "error occurs, %s is not defined\n",  (node->child[0]->data).c_str() );
                        exit(0);
                    }
                }
            }
            else if(node->child[2]->type == 36)
            {
                node = node->child[2];
                string stname = STAC[node->child[0]->child[0]->data];
                
                if(stname != "")
                {
                if((*FT[scope])[node->child[0]->child[0]->data] != 0)
                    cout << "sw $v0, " << 4 + (*FT[scope])["#"] - (*FT[scope])[node->child[0]->child[0]->data]
                            +(*ST[stname])["#"] - (*ST[stname])[node->child[2]->data]
                        << "($s0)" << endl;
                else if ((*FT["_G"])[node->child[0]->child[0]->data] != 0)  
                    cout << "sw $v0, " << (*FT["_G"])["#"] - (*FT["_G"])[node->child[0]->child[0]->data] 
                    +(*ST[stname])["#"] - (*ST[stname])[node->child[2]->data]
                    << "($s2)" << endl;
                }
                else
                {
                    freopen(outputFile.c_str(), "w", stdout);
                    cout << "Error.";
                    fprintf(stderr, "\nCompile fail!\n");
                    fprintf(stderr, "error occurs, %s is not defined\n",  (node->child[0]->child[0]->data).c_str() );
                    exit(0);

                }

            }
            else
            {
                freopen(outputFile.c_str(), "w", stdout);
                cout << "Error.";
                fprintf(stderr, "\nCompile fail!\n");
                fprintf(stderr, "error occurs,can't assign a value to a left value.\n" );
                exit(0);
            }
            break;
        }
        case 10:
        {
            genExp(node->child[2], node->child[2]->type, scope);
            cout << "li $v0, 1" << endl;
            cout << "move $a0, $t0" << endl;
            cout << "syscall" << endl;
            break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x990, %rsp            # imm = 0x990
movq %rdx, -0x508(%rbp)
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl -0xc(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x500(%rbp)
subl $0x9, %eax
ja 0x18f4b
movq -0x500(%rbp), %rax
leaq 0x1ef4b(%rip), %rcx     # 0x35cb0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x508(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq %rax, -0x520(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x514(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x510(%rbp)
callq 0x3150
movq -0x520(%rbp), %rdi
movl -0x514(%rbp), %esi
movq -0x510(%rbp), %rdx
xorl %ecx, %ecx
callq 0x18f60
jmp 0x16dbd
leaq -0x40(%rbp), %rdi
callq 0x34f8
jmp 0x18f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
movq -0x508(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq %rax, -0x538(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x52c(%rbp)
leaq -0x70(%rbp), %rdi
movq %rdi, -0x528(%rbp)
callq 0x3150
movq -0x538(%rbp), %rdi
movl -0x52c(%rbp), %esi
movq -0x528(%rbp), %rdx
movl -0x1c(%rbp), %ecx
callq 0x15bc0
jmp 0x16e35
leaq -0x70(%rbp), %rdi
callq 0x34f8
jmp 0x18f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
movq -0x508(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x550(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x544(%rbp)
leaq -0x90(%rbp), %rdi
movq %rdi, -0x540(%rbp)
callq 0x3150
movq -0x550(%rbp), %rdi
movl -0x544(%rbp), %esi
movq -0x540(%rbp), %rdx
xorl %ecx, %ecx
callq 0x18f60
jmp 0x16eb0
leaq -0x90(%rbp), %rdi
callq 0x34f8
movq 0x2710d(%rip), %rdi     # 0x3dfd0
leaq 0x1ef8c(%rip), %rsi     # 0x35e56
callq 0x3250
movq %rax, %rdi
movq 0x270d7(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq 0x270eb(%rip), %rdi     # 0x3dfd0
leaq 0x1ef79(%rip), %rsi     # 0x35e65
callq 0x3250
movq %rax, %rdi
movq 0x270b5(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x18f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
movq -0x508(%rbp), %rsi
leaq 0x27418(%rip), %rax     # 0x3e348
movl (%rax), %ecx
movl %ecx, -0x94(%rbp)
movl (%rax), %ecx
incl %ecx
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x568(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x55c(%rbp)
leaq -0xb8(%rbp), %rdi
movq %rdi, -0x558(%rbp)
callq 0x3150
movq -0x568(%rbp), %rdi
movl -0x55c(%rbp), %esi
movq -0x558(%rbp), %rdx
xorl %ecx, %ecx
callq 0x18f60
jmp 0x16f8a
leaq -0xb8(%rbp), %rdi
callq 0x34f8
movq 0x27033(%rip), %rdi     # 0x3dfd0
leaq 0x1eec8(%rip), %rsi     # 0x35e6c
callq 0x3250
movq %rax, %rdi
movl -0x94(%rbp), %esi
incl %esi
callq 0x3430
movq %rax, %rdi
movq 0x26fed(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq -0x508(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x580(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x574(%rbp)
leaq -0xd8(%rbp), %rdi
movq %rdi, -0x570(%rbp)
callq 0x3150
movq -0x580(%rbp), %rdi
movl -0x574(%rbp), %esi
movq -0x570(%rbp), %rdx
movl -0x1c(%rbp), %ecx
callq 0x16d20
jmp 0x1701c
leaq -0xd8(%rbp), %rdi
callq 0x34f8
movq 0x26fa1(%rip), %rdi     # 0x3dfd0
leaq 0x1ee40(%rip), %rsi     # 0x35e76
callq 0x3250
movq %rax, %rdi
movl -0x94(%rbp), %esi
addl $0x1, %esi
callq 0x3430
movq %rax, %rdi
leaq 0x1edab(%rip), %rsi     # 0x35e01
callq 0x3250
movq %rax, %rdi
movq 0x26f4b(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x18f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
movq -0x508(%rbp), %rsi
leaq 0x27291(%rip), %rax     # 0x3e348
movl (%rax), %ecx
movl %ecx, -0xdc(%rbp)
movl (%rax), %ecx
addl $0x2, %ecx
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x598(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x58c(%rbp)
leaq -0x100(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0x3150
movq -0x598(%rbp), %rdi
movl -0x58c(%rbp), %esi
movq -0x588(%rbp), %rdx
xorl %ecx, %ecx
callq 0x18f60
jmp 0x17112
leaq -0x100(%rbp), %rdi
callq 0x34f8
movq 0x26eab(%rip), %rdi     # 0x3dfd0
leaq 0x1ed55(%rip), %rsi     # 0x35e81
callq 0x3250
movq %rax, %rdi
movl -0xdc(%rbp), %esi
incl %esi
callq 0x3430
movq %rax, %rdi
movq 0x26e65(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq -0x508(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x5b0(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x5a4(%rbp)
leaq -0x120(%rbp), %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x3150
movq -0x5b0(%rbp), %rdi
movl -0x5a4(%rbp), %esi
movq -0x5a0(%rbp), %rdx
movl -0x1c(%rbp), %ecx
callq 0x16d20
jmp 0x171a4
leaq -0x120(%rbp), %rdi
callq 0x34f8
movq 0x26e19(%rip), %rdi     # 0x3dfd0
movq %rdi, -0x5d8(%rbp)
leaq 0x1ecd1(%rip), %rsi     # 0x35e96
callq 0x3250
movq %rax, %rdi
movl -0xdc(%rbp), %esi
addl $0x2, %esi
callq 0x3430
movq %rax, %rdi
movq 0x26dcb(%rip), %rsi     # 0x3dfb0
movq %rsi, -0x5d0(%rbp)
callq 0x32b0
movq -0x5d8(%rbp), %rdi
leaq 0x1ec8c(%rip), %rsi     # 0x35e8b
callq 0x3250
movq %rax, %rdi
movl -0xdc(%rbp), %esi
incl %esi
callq 0x3430
movq %rax, %rdi
leaq 0x1ebe3(%rip), %rsi     # 0x35e01
callq 0x3250
movq -0x5d0(%rbp), %rsi
movq %rax, %rdi
callq 0x32b0
movq -0x508(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x30(%rax), %rax
movq %rax, -0x5c8(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x5bc(%rbp)
leaq -0x140(%rbp), %rdi
movq %rdi, -0x5b8(%rbp)
callq 0x3150
movq -0x5c8(%rbp), %rdi
movl -0x5bc(%rbp), %esi
movq -0x5b8(%rbp), %rdx
movl -0x1c(%rbp), %ecx
callq 0x16d20
jmp 0x17286
leaq -0x140(%rbp), %rdi
callq 0x34f8
movq 0x26d37(%rip), %rdi     # 0x3dfd0
leaq 0x1ebd6(%rip), %rsi     # 0x35e76
callq 0x3250
movq %rax, %rdi
movl -0xdc(%rbp), %esi
addl $0x2, %esi
callq 0x3430
movq %rax, %rdi
leaq 0x1eb41(%rip), %rsi     # 0x35e01
callq 0x3250
movq %rax, %rdi
movq 0x26ce1(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x18f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
movq -0x508(%rbp), %rsi
leaq 0x2700a(%rip), %rax     # 0x3e348
movl (%rax), %ecx
movl %ecx, -0x144(%rbp)
movl (%rax), %ecx
addl $0x3, %ecx
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x5f0(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x5e4(%rbp)
leaq -0x168(%rbp), %rdi
movq %rdi, -0x5e0(%rbp)
callq 0x3150
movq -0x5f0(%rbp), %rdi
movl -0x5e4(%rbp), %esi
movq -0x5e0(%rbp), %rdx
xorl %ecx, %ecx
callq 0x18f60
jmp 0x17399
leaq -0x168(%rbp), %rdi
callq 0x34f8
movq 0x26c24(%rip), %rdi     # 0x3dfd0
leaq 0x1eaf2(%rip), %rsi     # 0x35ea5
callq 0x3250
movq %rax, %rdi
movl -0x144(%rbp), %esi
incl %esi
callq 0x3430
movq %rax, %rdi
leaq 0x1ea2f(%rip), %rsi     # 0x35e01
callq 0x3250
movq %rax, %rdi
movq 0x26bcf(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq -0x508(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x608(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x5fc(%rbp)
leaq -0x188(%rbp), %rdi
movq %rdi, -0x5f8(%rbp)
callq 0x3150
movq -0x608(%rbp), %rdi
movl -0x5fc(%rbp), %esi
movq -0x5f8(%rbp), %rdx
xorl %ecx, %ecx
callq 0x18f60
jmp 0x17439
leaq -0x188(%rbp), %rdi
callq 0x34f8
movq 0x26b84(%rip), %rdi     # 0x3dfd0
leaq 0x1ea19(%rip), %rsi     # 0x35e6c
callq 0x3250
movq %rax, %rdi
movl -0x144(%rbp), %esi
addl $0x3, %esi
callq 0x3430
movq %rax, %rdi
movq 0x26b3d(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq -0x508(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x40(%rax), %rax
movq %rax, -0x620(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x614(%rbp)
leaq -0x1a8(%rbp), %rdi
movq %rdi, -0x610(%rbp)
callq 0x3150
movq -0x620(%rbp), %rdi
movl -0x614(%rbp), %esi
movq -0x610(%rbp), %rdx
leaq 0x26e7f(%rip), %rax     # 0x3e348
movl (%rax), %ecx
callq 0x16d20
jmp 0x174d2
leaq -0x1a8(%rbp), %rdi
callq 0x34f8
movq 0x26aeb(%rip), %rdi     # 0x3dfd0
leaq 0x1e9c5(%rip), %rsi     # 0x35eb1
callq 0x3250
movq %rax, %rdi
movl -0x144(%rbp), %esi
addl $0x2, %esi
callq 0x3430
movq %rax, %rdi
leaq 0x1e8f5(%rip), %rsi     # 0x35e01
callq 0x3250
movq %rax, %rdi
movq 0x26a95(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq -0x508(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x30(%rax), %rax
movq %rax, -0x638(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x62c(%rbp)
leaq -0x1c8(%rbp), %rdi
movq %rdi, -0x628(%rbp)
callq 0x3150
movq -0x638(%rbp), %rdi
movl -0x62c(%rbp), %esi
movq -0x628(%rbp), %rdx
xorl %ecx, %ecx
callq 0x18f60
jmp 0x17573
leaq -0x1c8(%rbp), %rdi
callq 0x34f8
movq 0x26a4a(%rip), %rdi     # 0x3dfd0
leaq 0x1e916(%rip), %rsi     # 0x35ea3
callq 0x3250
movq %rax, %rdi
movl -0x144(%rbp), %esi
addl $0x1, %esi
callq 0x3430
movq %rax, %rdi
movq 0x26a03(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq 0x26a17(%rip), %rdi     # 0x3dfd0
leaq 0x1e8b6(%rip), %rsi     # 0x35e76
callq 0x3250
movq %rax, %rdi
movl -0x144(%rbp), %esi
addl $0x3, %esi
callq 0x3430
movq %rax, %rdi
leaq 0x1e821(%rip), %rsi     # 0x35e01
callq 0x3250
movq %rax, %rdi
movq 0x269c1(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x18f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
cmpl $0x0, -0x1c(%rbp)
je 0x176a5
movq 0x26956(%rip), %rdi     # 0x3dfd0
leaq 0x1e82e(%rip), %rsi     # 0x35eaf
callq 0x3250
movq %rax, %rdi
movl -0x1c(%rbp), %esi
subl $0x1, %esi
callq 0x3430
movq %rax, %rdi
movq 0x26912(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x176db
movq 0x26924(%rip), %rdi     # 0x3dfd0
leaq 0x1e7fc(%rip), %rsi     # 0x35eaf
callq 0x3250
movq %rax, %rdi
leaq 0x26c86(%rip), %rax     # 0x3e348
movl (%rax), %esi
subl $0x1, %esi
callq 0x3430
movq %rax, %rdi
movq 0x268da(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x176dd
cmpl $0x0, -0x1c(%rbp)
je 0x17712
movq 0x268e6(%rip), %rdi     # 0x3dfd0
leaq 0x1e7a5(%rip), %rsi     # 0x35e96
callq 0x3250
movq %rax, %rdi
movl -0x1c(%rbp), %esi
callq 0x3430
movq %rax, %rdi
movq 0x268a5(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x17745
movq 0x268b7(%rip), %rdi     # 0x3dfd0
leaq 0x1e776(%rip), %rsi     # 0x35e96
callq 0x3250
movq %rax, %rdi
leaq 0x26c19(%rip), %rax     # 0x3e348
movl (%rax), %esi
callq 0x3430
movq %rax, %rdi
movq 0x26870(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x18f4b
movq 0x2687f(%rip), %rdi     # 0x3dfd0
leaq 0x1e766(%rip), %rsi     # 0x35ebe
callq 0x3250
movq %rax, %rdi
movq 0x26849(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq 0x2685d(%rip), %rdi     # 0x3dfd0
leaq 0x1e74e(%rip), %rsi     # 0x35ec8
callq 0x3250
movq %rax, %rdi
movq 0x26827(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
cmpl $0x23, 0x24(%rax)
jne 0x184d5
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x2, 0x24(%rax)
jne 0x17cdd
movq -0x508(%rbp), %rsi
leaq 0x26b78(%rip), %rdi     # 0x3e350
callq 0x30a20
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
cmpl $0x0, (%rax)
je 0x17977
movq 0x267d0(%rip), %rdi     # 0x3dfd0
leaq 0x1e6c9(%rip), %rsi     # 0x35ed0
callq 0x3250
movq -0x508(%rbp), %rsi
movq %rax, -0x650(%rbp)
leaq 0x26b2f(%rip), %rdi     # 0x3e350
callq 0x30a20
movq (%rax), %rax
movq %rax, -0x648(%rbp)
leaq -0x1e9(%rbp), %rdi
movq %rdi, -0x640(%rbp)
callq 0x3460
movq -0x640(%rbp), %rdx
leaq 0x1e577(%rip), %rsi     # 0x35dc8
leaq -0x1e8(%rbp), %rdi
callq 0xfd00
jmp 0x1785f
movq -0x648(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x30860
movq %rax, -0x658(%rbp)
jmp 0x1787b
movq -0x508(%rbp), %rsi
movq -0x658(%rbp), %rax
movl (%rax), %eax
addl $0x4, %eax
movl %eax, -0x664(%rbp)
leaq 0x26ab5(%rip), %rdi     # 0x3e350
callq 0x30a20
movq %rax, -0x660(%rbp)
jmp 0x178a9
movq -0x660(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x670(%rbp)
jmp 0x178cc
movq -0x650(%rbp), %rdi
movl -0x664(%rbp), %esi
movq -0x670(%rbp), %rax
movl (%rax), %eax
subl %eax, %esi
callq 0x3430
movq %rax, -0x678(%rbp)
jmp 0x178f2
movq -0x678(%rbp), %rdi
leaq 0x1ea31(%rip), %rsi     # 0x36331
callq 0x3250
movq %rax, -0x680(%rbp)
jmp 0x1790e
movq -0x680(%rbp), %rdi
movq 0x26694(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x17923
leaq -0x1e8(%rbp), %rdi
callq 0x34f8
leaq -0x1e9(%rbp), %rdi
callq 0x32f0
jmp 0x17cd8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x17966
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x34f8
leaq -0x1e9(%rbp), %rdi
callq 0x32f0
jmp 0x18f54
leaq -0x211(%rbp), %rdi
movq %rdi, -0x688(%rbp)
callq 0x3460
movq -0x688(%rbp), %rdx
leaq 0x1dfa4(%rip), %rsi     # 0x3593c
leaq -0x210(%rbp), %rdi
callq 0xfd00
jmp 0x179a6
leaq 0x269a3(%rip), %rdi     # 0x3e350
leaq -0x210(%rbp), %rsi
callq 0xfe90
movq %rax, -0x690(%rbp)
jmp 0x179c2
movq -0x690(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x698(%rbp)
jmp 0x179e5
movq -0x698(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x69c(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x34f8
leaq -0x211(%rbp), %rdi
callq 0x32f0
movl -0x69c(%rbp), %eax
cmpl $0x0, %eax
je 0x17cd6
movq 0x265ae(%rip), %rdi     # 0x3dfd0
leaq 0x1e4a7(%rip), %rsi     # 0x35ed0
callq 0x3250
movq %rax, -0x6b0(%rbp)
leaq -0x239(%rbp), %rdi
movq %rdi, -0x6a8(%rbp)
callq 0x3460
movq -0x6a8(%rbp), %rdx
leaq 0x1dee6(%rip), %rsi     # 0x3593c
leaq -0x238(%rbp), %rdi
callq 0xfd00
jmp 0x17a64
leaq 0x268e5(%rip), %rdi     # 0x3e350
leaq -0x238(%rbp), %rsi
callq 0xfe90
movq %rax, -0x6b8(%rbp)
jmp 0x17a80
movq -0x6b8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x6c8(%rbp)
leaq -0x261(%rbp), %rdi
movq %rdi, -0x6c0(%rbp)
callq 0x3460
movq -0x6c0(%rbp), %rdx
leaq 0x1e316(%rip), %rsi     # 0x35dc8
leaq -0x260(%rbp), %rdi
callq 0xfd00
jmp 0x17ac0
movq -0x6c8(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x30860
movq %rax, -0x6d0(%rbp)
jmp 0x17adc
movq -0x6d0(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x6dc(%rbp)
leaq -0x289(%rbp), %rdi
movq %rdi, -0x6d8(%rbp)
callq 0x3460
movq -0x6d8(%rbp), %rdx
leaq 0x1de30(%rip), %rsi     # 0x3593c
leaq -0x288(%rbp), %rdi
callq 0xfd00
jmp 0x17b1a
leaq 0x2682f(%rip), %rdi     # 0x3e350
leaq -0x288(%rbp), %rsi
callq 0xfe90
movq %rax, -0x6e8(%rbp)
jmp 0x17b36
movq -0x6e8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x6f0(%rbp)
jmp 0x17b59
movq -0x6b0(%rbp), %rdi
movl -0x6dc(%rbp), %esi
movq -0x6f0(%rbp), %rax
movl (%rax), %eax
subl %eax, %esi
callq 0x3430
movq %rax, -0x6f8(%rbp)
jmp 0x17b7f
movq -0x6f8(%rbp), %rdi
leaq 0x1e34c(%rip), %rsi     # 0x35ed9
callq 0x3250
movq %rax, -0x700(%rbp)
jmp 0x17b9b
movq -0x700(%rbp), %rdi
movq 0x26407(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x17bb0
leaq -0x288(%rbp), %rdi
callq 0x34f8
leaq -0x289(%rbp), %rdi
callq 0x32f0
leaq -0x260(%rbp), %rdi
callq 0x34f8
leaq -0x261(%rbp), %rdi
callq 0x32f0
leaq -0x238(%rbp), %rdi
callq 0x34f8
leaq -0x239(%rbp), %rdi
callq 0x32f0
jmp 0x17cd6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x17c23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x34f8
leaq -0x211(%rbp), %rdi
callq 0x32f0
jmp 0x18f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x17cc5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x17cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x17cad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x17ca1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x17c95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x34f8
leaq -0x289(%rbp), %rdi
callq 0x32f0
leaq -0x260(%rbp), %rdi
callq 0x34f8
leaq -0x261(%rbp), %rdi
callq 0x32f0
leaq -0x238(%rbp), %rdi
callq 0x34f8
leaq -0x239(%rbp), %rdi
callq 0x32f0
jmp 0x18f54
jmp 0x17cd8
jmp 0x184d0
movq -0x508(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x718(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x70c(%rbp)
leaq -0x2b0(%rbp), %rdi
movq %rdi, -0x708(%rbp)
callq 0x3150
movq -0x718(%rbp), %rdi
movl -0x70c(%rbp), %esi
movq -0x708(%rbp), %rdx
xorl %ecx, %ecx
callq 0x18f60
jmp 0x17d38
leaq -0x2b0(%rbp), %rdi
callq 0x34f8
movq 0x26285(%rip), %rdi     # 0x3dfd0
leaq 0x1e18d(%rip), %rsi     # 0x35edf
callq 0x3250
movq %rax, %rdi
movq 0x2624f(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq -0x508(%rbp), %rsi
leaq 0x265dc(%rip), %rdi     # 0x3e350
callq 0x30a20
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
cmpl $0x0, (%rax)
je 0x17f87
movq -0x508(%rbp), %rsi
leaq 0x2660d(%rip), %rdi     # 0x3e3b0
callq 0x30a20
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
cmpl $0x1, (%rax)
jne 0x17f87
movq 0x26205(%rip), %rdi     # 0x3dfd0
leaq 0x1e11d(%rip), %rsi     # 0x35eef
callq 0x3250
movq -0x508(%rbp), %rsi
movq %rax, -0x730(%rbp)
leaq 0x26564(%rip), %rdi     # 0x3e350
callq 0x30a20
movq (%rax), %rax
movq %rax, -0x728(%rbp)
leaq -0x2d1(%rbp), %rdi
movq %rdi, -0x720(%rbp)
callq 0x3460
movq -0x720(%rbp), %rdx
leaq 0x1dfac(%rip), %rsi     # 0x35dc8
leaq -0x2d0(%rbp), %rdi
callq 0xfd00
jmp 0x17e2a
movq -0x728(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x30860
movq %rax, -0x738(%rbp)
jmp 0x17e46
movq -0x508(%rbp), %rsi
movq -0x738(%rbp), %rax
movl (%rax), %eax
addl $0x4, %eax
movl %eax, -0x744(%rbp)
leaq 0x264ea(%rip), %rdi     # 0x3e350
callq 0x30a20
movq %rax, -0x740(%rbp)
jmp 0x17e74
movq -0x740(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x750(%rbp)
jmp 0x17e97
movq -0x730(%rbp), %rdi
movl -0x744(%rbp), %esi
movq -0x750(%rbp), %rax
movl (%rax), %eax
subl %eax, %esi
callq 0x3430
movq %rax, -0x758(%rbp)
jmp 0x17ebd
movq -0x758(%rbp), %rdi
movq 0x260e5(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x17ed2
leaq -0x2d0(%rbp), %rdi
callq 0x34f8
leaq -0x2d1(%rbp), %rdi
callq 0x32f0
movq 0x260df(%rip), %rdi     # 0x3dfd0
leaq 0x1e006(%rip), %rsi     # 0x35efe
callq 0x3250
movq %rax, %rdi
movq 0x260a9(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq 0x260bd(%rip), %rdi     # 0x3dfd0
leaq 0x1dff6(%rip), %rsi     # 0x35f10
callq 0x3250
movq %rax, %rdi
movq 0x26087(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x184ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x17f76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x34f8
leaq -0x2d1(%rbp), %rdi
callq 0x32f0
jmp 0x18f54
leaq -0x2f9(%rbp), %rdi
movq %rdi, -0x760(%rbp)
callq 0x3460
movq -0x760(%rbp), %rdx
movb $0x0, -0x322(%rbp)
movb $0x0, -0x323(%rbp)
leaq 0x1d986(%rip), %rsi     # 0x3593c
leaq -0x2f8(%rbp), %rdi
callq 0xfd00
jmp 0x17fc4
leaq 0x26385(%rip), %rdi     # 0x3e350
leaq -0x2f8(%rbp), %rsi
callq 0xfe90
movq %rax, -0x768(%rbp)
jmp 0x17fe0
movq -0x768(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x770(%rbp)
jmp 0x18003
movq -0x770(%rbp), %rcx
xorl %eax, %eax
cmpl $0x0, (%rcx)
movb %al, -0x771(%rbp)
je 0x180aa
leaq -0x321(%rbp), %rdi
movq %rdi, -0x780(%rbp)
callq 0x3460
movq -0x780(%rbp), %rdx
movb $0x1, -0x322(%rbp)
leaq 0x1d8f9(%rip), %rsi     # 0x3593c
leaq -0x320(%rbp), %rdi
callq 0xfd00
jmp 0x18051
movb $0x1, -0x323(%rbp)
leaq 0x26351(%rip), %rdi     # 0x3e3b0
leaq -0x320(%rbp), %rsi
callq 0xfe90
movq %rax, -0x788(%rbp)
jmp 0x18074
movq -0x788(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x790(%rbp)
jmp 0x18097
movq -0x790(%rbp), %rax
cmpl $0x1, (%rax)
sete %al
movb %al, -0x771(%rbp)
movb -0x771(%rbp), %al
movb %al, -0x791(%rbp)
testb $0x1, -0x323(%rbp)
jne 0x180c1
jmp 0x180cd
leaq -0x320(%rbp), %rdi
callq 0x34f8
testb $0x1, -0x322(%rbp)
jne 0x180d8
jmp 0x180e4
leaq -0x321(%rbp), %rdi
callq 0x32f0
leaq -0x2f8(%rbp), %rdi
callq 0x34f8
leaq -0x2f9(%rbp), %rdi
callq 0x32f0
movb -0x791(%rbp), %al
testb $0x1, %al
jne 0x1810b
jmp 0x1843c
movq 0x25ebe(%rip), %rdi     # 0x3dfd0
leaq 0x1ddd6(%rip), %rsi     # 0x35eef
callq 0x3250
movq %rax, -0x7a8(%rbp)
leaq -0x349(%rbp), %rdi
movq %rdi, -0x7a0(%rbp)
callq 0x3460
movq -0x7a0(%rbp), %rdx
leaq 0x1d7f6(%rip), %rsi     # 0x3593c
leaq -0x348(%rbp), %rdi
callq 0xfd00
jmp 0x18154
leaq 0x261f5(%rip), %rdi     # 0x3e350
leaq -0x348(%rbp), %rsi
callq 0xfe90
movq %rax, -0x7b0(%rbp)
jmp 0x18170
movq -0x7b0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x7c0(%rbp)
leaq -0x371(%rbp), %rdi
movq %rdi, -0x7b8(%rbp)
callq 0x3460
movq -0x7b8(%rbp), %rdx
leaq 0x1dc26(%rip), %rsi     # 0x35dc8
leaq -0x370(%rbp), %rdi
callq 0xfd00
jmp 0x181b0
movq -0x7c0(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x30860
movq %rax, -0x7c8(%rbp)
jmp 0x181cc
movq -0x7c8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x7d4(%rbp)
leaq -0x399(%rbp), %rdi
movq %rdi, -0x7d0(%rbp)
callq 0x3460
movq -0x7d0(%rbp), %rdx
leaq 0x1d740(%rip), %rsi     # 0x3593c
leaq -0x398(%rbp), %rdi
callq 0xfd00
jmp 0x1820a
leaq 0x2613f(%rip), %rdi     # 0x3e350
leaq -0x398(%rbp), %rsi
callq 0xfe90
movq %rax, -0x7e0(%rbp)
jmp 0x18226
movq -0x7e0(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x7e8(%rbp)
jmp 0x18249
movq -0x7a8(%rbp), %rdi
movl -0x7d4(%rbp), %esi
movq -0x7e8(%rbp), %rax
movl (%rax), %eax
subl %eax, %esi
callq 0x3430
movq %rax, -0x7f0(%rbp)
jmp 0x1826f
movq -0x7f0(%rbp), %rdi
movq 0x25d33(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x18284
leaq -0x398(%rbp), %rdi
callq 0x34f8
leaq -0x399(%rbp), %rdi
callq 0x32f0
leaq -0x370(%rbp), %rdi
callq 0x34f8
leaq -0x371(%rbp), %rdi
callq 0x32f0
leaq -0x348(%rbp), %rdi
callq 0x34f8
leaq -0x349(%rbp), %rdi
callq 0x32f0
movq 0x25cfd(%rip), %rdi     # 0x3dfd0
leaq 0x1dc45(%rip), %rsi     # 0x35f1f
callq 0x3250
movq %rax, %rdi
movq 0x25cc7(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq 0x25cdb(%rip), %rdi     # 0x3dfd0
leaq 0x1dc14(%rip), %rsi     # 0x35f10
callq 0x3250
movq %rax, %rdi
movq 0x25ca5(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x184cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18389
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1837d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18364
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
testb $0x1, -0x323(%rbp)
jne 0x18356
jmp 0x18362
leaq -0x320(%rbp), %rdi
callq 0x34f8
jmp 0x18364
testb $0x1, -0x322(%rbp)
jne 0x1836f
jmp 0x1837b
leaq -0x321(%rbp), %rdi
callq 0x32f0
jmp 0x1837d
leaq -0x2f8(%rbp), %rdi
callq 0x34f8
leaq -0x2f9(%rbp), %rdi
callq 0x32f0
jmp 0x18f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1842b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1841f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18413
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18407
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x183fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x398(%rbp), %rdi
callq 0x34f8
leaq -0x399(%rbp), %rdi
callq 0x32f0
leaq -0x370(%rbp), %rdi
callq 0x34f8
leaq -0x371(%rbp), %rdi
callq 0x32f0
leaq -0x348(%rbp), %rdi
callq 0x34f8
leaq -0x349(%rbp), %rdi
callq 0x32f0
jmp 0x18f54
leaq 0x25ee5(%rip), %rdi     # 0x3e328
callq 0x3140
movq %rax, %rdi
movq 0x25b4e(%rip), %rax     # 0x3dfa0
movq (%rax), %rdx
leaq 0x1d7a9(%rip), %rsi     # 0x35c05
callq 0x32e0
movq 0x25b68(%rip), %rdi     # 0x3dfd0
leaq 0x1d901(%rip), %rsi     # 0x35d70
callq 0x3250
movq 0x25b5d(%rip), %rax     # 0x3dfd8
movq (%rax), %rdi
leaq 0x1d8f2(%rip), %rsi     # 0x35d77
movb $0x0, %al
callq 0x3390
movq 0x25b45(%rip), %rax     # 0x3dfd8
movq (%rax), %rax
movq %rax, -0x7f8(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rdi
callq 0x3140
movq -0x7f8(%rbp), %rdi
movq %rax, %rdx
leaq 0x1d8e8(%rip), %rsi     # 0x35da6
movb $0x0, %al
callq 0x3390
xorl %edi, %edi
callq 0x3340
jmp 0x184ce
jmp 0x184d0
jmp 0x18e65
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
cmpl $0x24, 0x24(%rax)
jne 0x18df4
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
leaq 0x25ecc(%rip), %rdi     # 0x3e3e0
callq 0x30b30
movq %rax, %rsi
leaq -0x3c0(%rbp), %rdi
movq %rdi, -0x808(%rbp)
callq 0x3150
movq -0x808(%rbp), %rdi
leaq 0x1d65c(%rip), %rsi     # 0x35b99
callq 0x30b00
movb %al, -0x7f9(%rbp)
jmp 0x1854a
movb -0x7f9(%rbp), %al
testb $0x1, %al
jne 0x18559
jmp 0x18d37
movq -0x508(%rbp), %rsi
leaq 0x25de9(%rip), %rdi     # 0x3e350
callq 0x30a20
movq %rax, -0x810(%rbp)
jmp 0x18575
movq -0x810(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x818(%rbp)
jmp 0x1859f
movq -0x818(%rbp), %rax
cmpl $0x0, (%rax)
je 0x18889
movq 0x25a1a(%rip), %rdi     # 0x3dfd0
leaq 0x1d913(%rip), %rsi     # 0x35ed0
callq 0x3250
movq %rax, -0x820(%rbp)
jmp 0x185cb
movq -0x508(%rbp), %rsi
leaq 0x25d77(%rip), %rdi     # 0x3e350
callq 0x30a20
movq %rax, -0x828(%rbp)
jmp 0x185e7
movq -0x828(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x838(%rbp)
leaq -0x3e1(%rbp), %rdi
movq %rdi, -0x830(%rbp)
callq 0x3460
movq -0x830(%rbp), %rdx
leaq 0x1d7af(%rip), %rsi     # 0x35dc8
leaq -0x3e0(%rbp), %rdi
callq 0xfd00
jmp 0x18627
movq -0x838(%rbp), %rdi
leaq -0x3e0(%rbp), %rsi
callq 0x30860
movq %rax, -0x840(%rbp)
jmp 0x18643
movq -0x508(%rbp), %rsi
movq -0x840(%rbp), %rax
movl (%rax), %eax
addl $0x4, %eax
movl %eax, -0x84c(%rbp)
leaq 0x25ced(%rip), %rdi     # 0x3e350
callq 0x30a20
movq %rax, -0x848(%rbp)
jmp 0x18671
movq -0x848(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x858(%rbp)
jmp 0x1869b
movl -0x84c(%rbp), %eax
movq -0x858(%rbp), %rcx
movl (%rcx), %ecx
subl %ecx, %eax
movl %eax, -0x864(%rbp)
leaq 0x25cc7(%rip), %rdi     # 0x3e380
leaq -0x3c0(%rbp), %rsi
callq 0x30a20
movq %rax, -0x860(%rbp)
jmp 0x186ce
movq -0x860(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x878(%rbp)
leaq -0x409(%rbp), %rdi
movq %rdi, -0x870(%rbp)
callq 0x3460
movq -0x870(%rbp), %rdx
leaq 0x1d6c8(%rip), %rsi     # 0x35dc8
leaq -0x408(%rbp), %rdi
callq 0xfd00
jmp 0x1870e
movq -0x878(%rbp), %rdi
leaq -0x408(%rbp), %rsi
callq 0x30860
movq %rax, -0x880(%rbp)
jmp 0x1872a
movl -0x864(%rbp), %eax
movq -0x880(%rbp), %rcx
movl (%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x88c(%rbp)
leaq 0x25c38(%rip), %rdi     # 0x3e380
leaq -0x3c0(%rbp), %rsi
callq 0x30a20
movq %rax, -0x888(%rbp)
jmp 0x1875d
movq -0x888(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rsi
callq 0x30940
movq %rax, -0x898(%rbp)
jmp 0x18781
movq -0x820(%rbp), %rdi
movl -0x88c(%rbp), %esi
movq -0x898(%rbp), %rax
movl (%rax), %eax
subl %eax, %esi
callq 0x3430
movq %rax, -0x8a0(%rbp)
jmp 0x187a7
movq -0x8a0(%rbp), %rdi
leaq 0x1db7c(%rip), %rsi     # 0x36331
callq 0x3250
movq %rax, -0x8a8(%rbp)
jmp 0x187c3
movq -0x8a8(%rbp), %rdi
movq 0x257df(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x187d8
leaq -0x408(%rbp), %rdi
callq 0x34f8
leaq -0x409(%rbp), %rdi
callq 0x32f0
leaq -0x3e0(%rbp), %rdi
callq 0x34f8
leaq -0x3e1(%rbp), %rdi
callq 0x32f0
jmp 0x18d32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18de3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1886c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18860
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x408(%rbp), %rdi
callq 0x34f8
leaq -0x409(%rbp), %rdi
callq 0x32f0
leaq -0x3e0(%rbp), %rdi
callq 0x34f8
leaq -0x3e1(%rbp), %rdi
callq 0x32f0
jmp 0x18de3
leaq -0x431(%rbp), %rdi
movq %rdi, -0x8b0(%rbp)
callq 0x3460
movq -0x8b0(%rbp), %rdx
leaq 0x1d092(%rip), %rsi     # 0x3593c
leaq -0x430(%rbp), %rdi
callq 0xfd00
jmp 0x188b8
leaq 0x25a91(%rip), %rdi     # 0x3e350
leaq -0x430(%rbp), %rsi
callq 0xfe90
movq %rax, -0x8b8(%rbp)
jmp 0x188d4
movq -0x8b8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x8c0(%rbp)
jmp 0x188fe
movq -0x8c0(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x8c4(%rbp)
leaq -0x430(%rbp), %rdi
callq 0x34f8
leaq -0x431(%rbp), %rdi
callq 0x32f0
movl -0x8c4(%rbp), %eax
cmpl $0x0, %eax
je 0x18d30
movq 0x25695(%rip), %rdi     # 0x3dfd0
leaq 0x1d58e(%rip), %rsi     # 0x35ed0
callq 0x3250
movq %rax, -0x8d0(%rbp)
jmp 0x18950
leaq -0x459(%rbp), %rdi
movq %rdi, -0x8d8(%rbp)
callq 0x3460
movq -0x8d8(%rbp), %rdx
leaq 0x1cfcb(%rip), %rsi     # 0x3593c
leaq -0x458(%rbp), %rdi
callq 0xfd00
jmp 0x1897f
leaq 0x259ca(%rip), %rdi     # 0x3e350
leaq -0x458(%rbp), %rsi
callq 0xfe90
movq %rax, -0x8e0(%rbp)
jmp 0x1899b
movq -0x8e0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x8f0(%rbp)
leaq -0x481(%rbp), %rdi
movq %rdi, -0x8e8(%rbp)
callq 0x3460
movq -0x8e8(%rbp), %rdx
leaq 0x1d3fb(%rip), %rsi     # 0x35dc8
leaq -0x480(%rbp), %rdi
callq 0xfd00
jmp 0x189db
movq -0x8f0(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x30860
movq %rax, -0x8f8(%rbp)
jmp 0x189f7
movq -0x8f8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x904(%rbp)
leaq -0x4a9(%rbp), %rdi
movq %rdi, -0x900(%rbp)
callq 0x3460
movq -0x900(%rbp), %rdx
leaq 0x1cf15(%rip), %rsi     # 0x3593c
leaq -0x4a8(%rbp), %rdi
callq 0xfd00
jmp 0x18a35
leaq 0x25914(%rip), %rdi     # 0x3e350
leaq -0x4a8(%rbp), %rsi
callq 0xfe90
movq %rax, -0x910(%rbp)
jmp 0x18a51
movq -0x910(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x918(%rbp)
jmp 0x18a7b
movl -0x904(%rbp), %eax
movq -0x918(%rbp), %rcx
movl (%rcx), %ecx
subl %ecx, %eax
movl %eax, -0x924(%rbp)
leaq 0x258e7(%rip), %rdi     # 0x3e380
leaq -0x3c0(%rbp), %rsi
callq 0x30a20
movq %rax, -0x920(%rbp)
jmp 0x18aae
movq -0x920(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x938(%rbp)
leaq -0x4d1(%rbp), %rdi
movq %rdi, -0x930(%rbp)
callq 0x3460
movq -0x930(%rbp), %rdx
leaq 0x1d2e8(%rip), %rsi     # 0x35dc8
leaq -0x4d0(%rbp), %rdi
callq 0xfd00
jmp 0x18aee
movq -0x938(%rbp), %rdi
leaq -0x4d0(%rbp), %rsi
callq 0x30860
movq %rax, -0x940(%rbp)
jmp 0x18b0a
movl -0x924(%rbp), %eax
movq -0x940(%rbp), %rcx
movl (%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x94c(%rbp)
leaq 0x25858(%rip), %rdi     # 0x3e380
leaq -0x3c0(%rbp), %rsi
callq 0x30a20
movq %rax, -0x948(%rbp)
jmp 0x18b3d
movq -0x948(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rsi
callq 0x30940
movq %rax, -0x958(%rbp)
jmp 0x18b61
movq -0x8d0(%rbp), %rdi
movl -0x94c(%rbp), %esi
movq -0x958(%rbp), %rax
movl (%rax), %eax
subl %eax, %esi
callq 0x3430
movq %rax, -0x960(%rbp)
jmp 0x18b87
movq -0x960(%rbp), %rdi
leaq 0x1d344(%rip), %rsi     # 0x35ed9
callq 0x3250
movq %rax, -0x968(%rbp)
jmp 0x18ba3
movq -0x968(%rbp), %rdi
movq 0x253ff(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x18bb8
leaq -0x4d0(%rbp), %rdi
callq 0x34f8
leaq -0x4d1(%rbp), %rdi
callq 0x32f0
leaq -0x4a8(%rbp), %rdi
callq 0x34f8
leaq -0x4a9(%rbp), %rdi
callq 0x32f0
leaq -0x480(%rbp), %rdi
callq 0x34f8
leaq -0x481(%rbp), %rdi
callq 0x32f0
leaq -0x458(%rbp), %rdi
callq 0x34f8
leaq -0x459(%rbp), %rdi
callq 0x32f0
jmp 0x18d30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18c43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x430(%rbp), %rdi
callq 0x34f8
leaq -0x431(%rbp), %rdi
callq 0x32f0
jmp 0x18de3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18d1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18d13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18d07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18cfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18cef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18ce3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x18cd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x4d0(%rbp), %rdi
callq 0x34f8
leaq -0x4d1(%rbp), %rdi
callq 0x32f0
leaq -0x4a8(%rbp), %rdi
callq 0x34f8
leaq -0x4a9(%rbp), %rdi
callq 0x32f0
leaq -0x480(%rbp), %rdi
callq 0x34f8
leaq -0x481(%rbp), %rdi
callq 0x32f0
leaq -0x458(%rbp), %rdi
callq 0x34f8
leaq -0x459(%rbp), %rdi
callq 0x32f0
jmp 0x18de3
jmp 0x18d32
jmp 0x18dd2
leaq 0x255ea(%rip), %rdi     # 0x3e328
callq 0x3140
movq %rax, %rdi
movq 0x25253(%rip), %rax     # 0x3dfa0
movq (%rax), %rdx
leaq 0x1ceae(%rip), %rsi     # 0x35c05
callq 0x32e0
jmp 0x18d5e
movq 0x2526b(%rip), %rdi     # 0x3dfd0
leaq 0x1d004(%rip), %rsi     # 0x35d70
callq 0x3250
jmp 0x18d73
movq 0x2525e(%rip), %rax     # 0x3dfd8
movq (%rax), %rdi
leaq 0x1cff3(%rip), %rsi     # 0x35d77
movb $0x0, %al
callq 0x3390
movq 0x25246(%rip), %rax     # 0x3dfd8
movq (%rax), %rax
movq %rax, -0x970(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rdi
callq 0x3140
movq -0x970(%rbp), %rdi
movq %rax, %rdx
leaq 0x1cfe2(%rip), %rsi     # 0x35da6
movb $0x0, %al
callq 0x3390
xorl %edi, %edi
callq 0x3340
leaq -0x3c0(%rbp), %rdi
callq 0x34f8
jmp 0x18e63
leaq -0x3c0(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
leaq 0x2552d(%rip), %rdi     # 0x3e328
callq 0x3140
movq %rax, %rdi
movq 0x25196(%rip), %rax     # 0x3dfa0
movq (%rax), %rdx
leaq 0x1cdf1(%rip), %rsi     # 0x35c05
callq 0x32e0
movq 0x251b0(%rip), %rdi     # 0x3dfd0
leaq 0x1cf49(%rip), %rsi     # 0x35d70
callq 0x3250
movq 0x251a5(%rip), %rax     # 0x3dfd8
movq (%rax), %rdi
leaq 0x1cf3a(%rip), %rsi     # 0x35d77
movb $0x0, %al
callq 0x3390
movq 0x2518d(%rip), %rax     # 0x3dfd8
movq (%rax), %rdi
leaq 0x1d0dc(%rip), %rsi     # 0x35f31
movb $0x0, %al
callq 0x3390
xorl %edi, %edi
callq 0x3340
jmp 0x18e65
jmp 0x18f4b
movq -0x508(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x988(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x97c(%rbp)
leaq -0x4f8(%rbp), %rdi
movq %rdi, -0x978(%rbp)
callq 0x3150
movq -0x988(%rbp), %rdi
movl -0x97c(%rbp), %esi
movq -0x978(%rbp), %rdx
xorl %ecx, %ecx
callq 0x18f60
jmp 0x18ebd
leaq -0x4f8(%rbp), %rdi
callq 0x34f8
movq 0x25100(%rip), %rdi     # 0x3dfd0
leaq 0x1d08e(%rip), %rsi     # 0x35f65
callq 0x3250
movq %rax, %rdi
movq 0x250ca(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq 0x250de(%rip), %rdi     # 0x3dfd0
leaq 0x1d076(%rip), %rsi     # 0x35f6f
callq 0x3250
movq %rax, %rdi
movq 0x250a8(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq 0x250bc(%rip), %rdi     # 0x3dfd0
leaq 0x1cfad(%rip), %rsi     # 0x35ec8
callq 0x3250
movq %rax, %rdi
movq 0x25086(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x18f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x34f8
jmp 0x18f54
addq $0x990, %rsp            # imm = 0x990
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x3450
nopl (%rax)