// File: /workspace/github_c_makefile_star2_O0/zyearn[P]SmallC/codegen.cpp
// Function: genDec(treeNode*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void genDec(treeNode* node, int type, string scope)
{
    switch(type)
    {
        case 1://´ËÇé¿öÃ»ÓÐ¸³Öµ£¬²»¿¼ÂÇ
        break;
        case 2:
        {   
            if(scope == "_G")
                cout << "_G_" << globalNumber << ":" << endl;
            //¶Ô±äÁ¿¸³Öµ
            if ( node->child[0]->type==1)
            {
                genInit(node->child[2],node->child[2]->type,scope);
                if((*FT[scope])[node->child[0]->child[0]->data] != 0 && scope != "_G")
                    cout << "sw $t0, " << 4 + (*FT[scope])["#"] - (*FT[scope])[node->child[0]->child[0]->data] << "($s0)" << endl;
                else if((*FT["_G"])[node->child[0]->child[0]->data] != 0 )  
                    cout << "sw $t0, " << (*FT["_G"])["#"] - (*FT["_G"])[node->child[0]->child[0]->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 if(node->child[0]->type==2)
            {
                if(node->child[2]->childnum != 3)
                {
                    freopen(outputFile.c_str(), "w", stdout);
                    cout << "Error.";
                    fprintf(stderr, "\nCompile fail!\n");
                    fprintf(stderr, "error occurs, %s wrong array initialization\n",(node->child[0]->child[0]->child[0]->data).c_str() );
                    exit(0);
                }
                //cout << "sw $t0, " << 4 + (*FT[scope])["#"] - (*FT[scope])[node->child[0]->data] << "($s0)" << endl;
                string num = node->child[0]->child[2]->data;
                int n = atoi(num.c_str());
                int size = 1;
                treeNode *tmp = node->child[2]->child[1];
                while(tmp->childnum == 3)
                {
                    size++;
                    tmp = tmp->child[2];
                }
                if(size > n)
                {
                    freopen(outputFile.c_str(), "w", stdout);
                    cout << "Error.";
                    fprintf(stderr, "\nCompile fail!\n");
                    fprintf(stderr, "error occurs, %s argument is too large\n",( node->child[0]->child[0]->child[0]->data ).c_str() );
                    exit(0);
                }
                tmp = node->child[2]->child[1];
                for(int i=0; i<size; i++)
                {
                    genExp(tmp->child[0],tmp->child[0]->type, scope);
                    //if(i == 0)
                    //  cout << tmp->child[0]->child[0]->data << endl;
                    if(tmp->childnum == 3)
                        tmp = tmp->child[2];
                    if(scope != "_G")
                        cout << "sw $t0, " << 4 + (*FT[scope])["#"]-(*FT[scope])[node->child[0]->child[0]->child[0]->data]+i*4 << "($s0)" << endl;
                    else
                        cout << "sw $t0, " << (*FT[scope])["#"]-(*FT[scope])[node->child[0]->child[0]->child[0]->data]+i*4 << "($s2)" << endl;
                }
            }
            if(scope == "_G")
                cout << "j _G_" << ++globalNumber << endl;
            break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x370, %rsp            # imm = 0x370
movq %rdx, -0x1c0(%rbp)
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x1b8(%rbp)
subl $0x1, %eax
je 0x15d0d
jmp 0x15cfd
movl -0x1b8(%rbp), %eax
subl $0x2, %eax
je 0x15d12
jmp 0x16aba
jmp 0x16aba
movq -0x1c0(%rbp), %rdi
leaq 0x1fc1c(%rip), %rsi     # 0x3593c
callq 0x30c10
testb $0x1, %al
jne 0x15d2b
jmp 0x15d6d
movq 0x2829e(%rip), %rdi     # 0x3dfd0
leaq 0x202a4(%rip), %rsi     # 0x35fdd
callq 0x3250
movq %rax, %rdi
leaq 0x28550(%rip), %rax     # 0x3e298
movl (%rax), %esi
callq 0x3430
movq %rax, %rdi
leaq 0x200a8(%rip), %rsi     # 0x35e01
callq 0x3250
movq %rax, %rdi
movq 0x28248(%rip), %rsi     # 0x3dfb0
callq 0x32b0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
cmpl $0x1, 0x24(%rax)
jne 0x163c0
movq -0x1c0(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x1d8(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x1cc(%rbp)
leaq -0x38(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0x3150
movq -0x1d8(%rbp), %rdi
movl -0x1cc(%rbp), %esi
movq -0x1c8(%rbp), %rdx
callq 0x30550
jmp 0x15dd0
leaq -0x38(%rbp), %rdi
callq 0x34f8
movq -0x1c0(%rbp), %rsi
leaq 0x28569(%rip), %rdi     # 0x3e350
callq 0x30a20
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
cmpl $0x0, (%rax)
je 0x15fb5
movq -0x1c0(%rbp), %rdi
leaq 0x1fb1f(%rip), %rsi     # 0x3593c
callq 0x30b00
testb $0x1, %al
jne 0x15e2b
jmp 0x15fb5
movq 0x2819e(%rip), %rdi     # 0x3dfd0
leaq 0x20144(%rip), %rsi     # 0x35f7d
callq 0x3250
movq -0x1c0(%rbp), %rsi
movq %rax, -0x1f0(%rbp)
leaq 0x284fd(%rip), %rdi     # 0x3e350
callq 0x30a20
movq (%rax), %rax
movq %rax, -0x1e8(%rbp)
leaq -0x69(%rbp), %rdi
movq %rdi, -0x1e0(%rbp)
callq 0x3460
movq -0x1e0(%rbp), %rdx
leaq 0x1ff48(%rip), %rsi     # 0x35dc8
leaq -0x68(%rbp), %rdi
callq 0xfd00
jmp 0x15e8b
movq -0x1e8(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x30860
movq %rax, -0x1f8(%rbp)
jmp 0x15ea4
movq -0x1c0(%rbp), %rsi
movq -0x1f8(%rbp), %rax
movl (%rax), %eax
addl $0x4, %eax
movl %eax, -0x204(%rbp)
leaq 0x2848c(%rip), %rdi     # 0x3e350
callq 0x30a20
movq %rax, -0x200(%rbp)
jmp 0x15ed2
movq -0x200(%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, -0x210(%rbp)
jmp 0x15efc
movq -0x1f0(%rbp), %rdi
movl -0x204(%rbp), %esi
movq -0x210(%rbp), %rax
movl (%rax), %eax
subl %eax, %esi
callq 0x3430
movq %rax, -0x218(%rbp)
jmp 0x15f22
movq -0x218(%rbp), %rdi
leaq 0x20401(%rip), %rsi     # 0x36331
callq 0x3250
movq %rax, -0x220(%rbp)
jmp 0x15f3e
movq -0x220(%rbp), %rdi
movq 0x28064(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x15f53
leaq -0x68(%rbp), %rdi
callq 0x34f8
leaq -0x69(%rbp), %rdi
callq 0x32f0
jmp 0x163bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x34f8
jmp 0x16ac3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x15fa7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x34f8
leaq -0x69(%rbp), %rdi
callq 0x32f0
jmp 0x16ac3
leaq -0x91(%rbp), %rdi
movq %rdi, -0x228(%rbp)
callq 0x3460
movq -0x228(%rbp), %rdx
leaq 0x1f966(%rip), %rsi     # 0x3593c
leaq -0x90(%rbp), %rdi
callq 0xfd00
jmp 0x15fe4
leaq 0x28365(%rip), %rdi     # 0x3e350
leaq -0x90(%rbp), %rsi
callq 0xfe90
movq %rax, -0x230(%rbp)
jmp 0x16000
movq -0x230(%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, -0x238(%rbp)
jmp 0x1602a
movq -0x238(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x23c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x34f8
leaq -0x91(%rbp), %rdi
callq 0x32f0
movl -0x23c(%rbp), %eax
cmpl $0x0, %eax
je 0x16322
movq 0x27f69(%rip), %rdi     # 0x3dfd0
leaq 0x1ff0f(%rip), %rsi     # 0x35f7d
callq 0x3250
movq %rax, -0x250(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x248(%rbp)
callq 0x3460
movq -0x248(%rbp), %rdx
leaq 0x1f8a1(%rip), %rsi     # 0x3593c
leaq -0xb8(%rbp), %rdi
callq 0xfd00
jmp 0x160a9
leaq 0x282a0(%rip), %rdi     # 0x3e350
leaq -0xb8(%rbp), %rsi
callq 0xfe90
movq %rax, -0x258(%rbp)
jmp 0x160c5
movq -0x258(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x268(%rbp)
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x260(%rbp)
callq 0x3460
movq -0x260(%rbp), %rdx
leaq 0x1fcd1(%rip), %rsi     # 0x35dc8
leaq -0xe0(%rbp), %rdi
callq 0xfd00
jmp 0x16105
movq -0x268(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x30860
movq %rax, -0x270(%rbp)
jmp 0x16121
movq -0x270(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x27c(%rbp)
leaq -0x109(%rbp), %rdi
movq %rdi, -0x278(%rbp)
callq 0x3460
movq -0x278(%rbp), %rdx
leaq 0x1f7eb(%rip), %rsi     # 0x3593c
leaq -0x108(%rbp), %rdi
callq 0xfd00
jmp 0x1615f
leaq 0x281ea(%rip), %rdi     # 0x3e350
leaq -0x108(%rbp), %rsi
callq 0xfe90
movq %rax, -0x288(%rbp)
jmp 0x1617b
movq -0x288(%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, -0x290(%rbp)
jmp 0x161a5
movq -0x250(%rbp), %rdi
movl -0x27c(%rbp), %esi
movq -0x290(%rbp), %rax
movl (%rax), %eax
subl %eax, %esi
callq 0x3430
movq %rax, -0x298(%rbp)
jmp 0x161cb
movq -0x298(%rbp), %rdi
leaq 0x1fd00(%rip), %rsi     # 0x35ed9
callq 0x3250
movq %rax, -0x2a0(%rbp)
jmp 0x161e7
movq -0x2a0(%rbp), %rdi
movq 0x27dbb(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x161fc
leaq -0x108(%rbp), %rdi
callq 0x34f8
leaq -0x109(%rbp), %rdi
callq 0x32f0
leaq -0xe0(%rbp), %rdi
callq 0x34f8
leaq -0xe1(%rbp), %rdi
callq 0x32f0
leaq -0xb8(%rbp), %rdi
callq 0x34f8
leaq -0xb9(%rbp), %rdi
callq 0x32f0
jmp 0x163b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1626f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x34f8
leaq -0x91(%rbp), %rdi
callq 0x32f0
jmp 0x16ac3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x16311
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x16305
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x162f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x162ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x162e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x34f8
leaq -0x109(%rbp), %rdi
callq 0x32f0
leaq -0xe0(%rbp), %rdi
callq 0x34f8
leaq -0xe1(%rbp), %rdi
callq 0x32f0
leaq -0xb8(%rbp), %rdi
callq 0x34f8
leaq -0xb9(%rbp), %rdi
callq 0x32f0
jmp 0x16ac3
leaq 0x27fff(%rip), %rdi     # 0x3e328
callq 0x3140
movq %rax, %rdi
movq 0x27c68(%rip), %rax     # 0x3dfa0
movq (%rax), %rdx
leaq 0x1f8c3(%rip), %rsi     # 0x35c05
callq 0x32e0
movq 0x27c82(%rip), %rdi     # 0x3dfd0
leaq 0x1fa1b(%rip), %rsi     # 0x35d70
callq 0x3250
movq 0x27c77(%rip), %rax     # 0x3dfd8
movq (%rax), %rdi
leaq 0x1fa0c(%rip), %rsi     # 0x35d77
movb $0x0, %al
callq 0x3390
movq 0x27c5f(%rip), %rax     # 0x3dfd8
movq (%rax), %rax
movq %rax, -0x2a8(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rdi
callq 0x3140
movq -0x2a8(%rbp), %rdi
movq %rax, %rdx
leaq 0x1f9fb(%rip), %rsi     # 0x35da6
movb $0x0, %al
callq 0x3390
xorl %edi, %edi
callq 0x3340
jmp 0x163bb
jmp 0x16a60
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
cmpl $0x2, 0x24(%rax)
jne 0x16a5e
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
cmpl $0x3, 0x20(%rax)
je 0x16489
leaq 0x27f36(%rip), %rdi     # 0x3e328
callq 0x3140
movq %rax, %rdi
movq 0x27b9f(%rip), %rax     # 0x3dfa0
movq (%rax), %rdx
leaq 0x1f7fa(%rip), %rsi     # 0x35c05
callq 0x32e0
movq 0x27bb9(%rip), %rdi     # 0x3dfd0
leaq 0x1f952(%rip), %rsi     # 0x35d70
callq 0x3250
movq 0x27bae(%rip), %rax     # 0x3dfd8
movq (%rax), %rdi
leaq 0x1f943(%rip), %rsi     # 0x35d77
movb $0x0, %al
callq 0x3390
movq 0x27b96(%rip), %rax     # 0x3dfd8
movq (%rax), %rax
movq %rax, -0x2b0(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rdi
callq 0x3140
movq -0x2b0(%rbp), %rdi
movq %rax, %rdx
leaq 0x1fb0b(%rip), %rsi     # 0x35f86
movb $0x0, %al
callq 0x3390
xorl %edi, %edi
callq 0x3340
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rsi
leaq -0x130(%rbp), %rdi
callq 0x3150
leaq -0x130(%rbp), %rdi
callq 0x3140
movq %rax, %rdi
callq 0x33e0
movl %eax, -0x134(%rbp)
movl $0x1, -0x138(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x140(%rbp)
movq -0x140(%rbp), %rax
cmpl $0x3, 0x20(%rax)
jne 0x1651b
movl -0x138(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x138(%rbp)
movq -0x140(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x140(%rbp)
jmp 0x164e7
movl -0x138(%rbp), %eax
cmpl -0x134(%rbp), %eax
jle 0x165e0
leaq 0x27df4(%rip), %rdi     # 0x3e328
callq 0x3140
movq %rax, %rdi
movq 0x27a5d(%rip), %rax     # 0x3dfa0
movq (%rax), %rdx
leaq 0x1f6b8(%rip), %rsi     # 0x35c05
callq 0x32e0
jmp 0x16554
movq 0x27a75(%rip), %rdi     # 0x3dfd0
leaq 0x1f80e(%rip), %rsi     # 0x35d70
callq 0x3250
jmp 0x16569
movq 0x27a68(%rip), %rax     # 0x3dfd8
movq (%rax), %rdi
leaq 0x1f7fd(%rip), %rsi     # 0x35d77
movb $0x0, %al
callq 0x3390
movq 0x27a50(%rip), %rax     # 0x3dfd8
movq (%rax), %rax
movq %rax, -0x2b8(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rdi
callq 0x3140
movq -0x2b8(%rbp), %rdi
movq %rax, %rdx
leaq 0x1f9f2(%rip), %rsi     # 0x35fb3
movb $0x0, %al
callq 0x3390
xorl %edi, %edi
callq 0x3340
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x16a50
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x140(%rbp)
movl $0x0, -0x144(%rbp)
movl -0x144(%rbp), %eax
cmpl -0x138(%rbp), %eax
jge 0x16a42
movq -0x1c0(%rbp), %rsi
movq -0x140(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq %rax, -0x2c8(%rbp)
movl 0x24(%rax), %eax
movl %eax, -0x2bc(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x3150
jmp 0x1664a
movl -0x2bc(%rbp), %esi
movq -0x2c8(%rbp), %rdi
leaq -0x168(%rbp), %rdx
xorl %ecx, %ecx
callq 0x18f60
jmp 0x16667
leaq -0x168(%rbp), %rdi
callq 0x34f8
movq -0x140(%rbp), %rax
cmpl $0x3, 0x20(%rax)
jne 0x166b5
movq -0x140(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x140(%rbp)
jmp 0x166b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x34f8
jmp 0x16a50
movq -0x1c0(%rbp), %rdi
leaq 0x1f279(%rip), %rsi     # 0x3593c
callq 0x30b00
movb %al, -0x2c9(%rbp)
jmp 0x166d0
movb -0x2c9(%rbp), %al
testb $0x1, %al
jne 0x166df
jmp 0x1688a
movq 0x278ea(%rip), %rdi     # 0x3dfd0
leaq 0x1f890(%rip), %rsi     # 0x35f7d
callq 0x3250
movq %rax, -0x2d8(%rbp)
jmp 0x166fb
movq -0x1c0(%rbp), %rsi
leaq 0x27c47(%rip), %rdi     # 0x3e350
callq 0x30a20
movq %rax, -0x2e0(%rbp)
jmp 0x16717
movq -0x2e0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x2f0(%rbp)
leaq -0x189(%rbp), %rdi
movq %rdi, -0x2e8(%rbp)
callq 0x3460
movq -0x2e8(%rbp), %rdx
leaq 0x1f67f(%rip), %rsi     # 0x35dc8
leaq -0x188(%rbp), %rdi
callq 0xfd00
jmp 0x16757
movq -0x2f0(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x30860
movq %rax, -0x2f8(%rbp)
jmp 0x16773
movq -0x1c0(%rbp), %rsi
movq -0x2f8(%rbp), %rax
movl (%rax), %eax
addl $0x4, %eax
movl %eax, -0x304(%rbp)
leaq 0x27bbd(%rip), %rdi     # 0x3e350
callq 0x30a20
movq %rax, -0x300(%rbp)
jmp 0x167a1
movq -0x300(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x310(%rbp)
jmp 0x167d2
movq -0x2d8(%rbp), %rdi
movl -0x304(%rbp), %edx
movq -0x310(%rbp), %rax
movl (%rax), %eax
subl %eax, %edx
movl -0x144(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal (%rax,%rcx,4), %esi
callq 0x3430
movq %rax, -0x318(%rbp)
jmp 0x16805
movq -0x318(%rbp), %rdi
leaq 0x1fb1e(%rip), %rsi     # 0x36331
callq 0x3250
movq %rax, -0x320(%rbp)
jmp 0x16821
movq -0x320(%rbp), %rdi
movq 0x27781(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x16836
leaq -0x188(%rbp), %rdi
callq 0x34f8
leaq -0x189(%rbp), %rdi
callq 0x32f0
jmp 0x16a2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x16879
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x34f8
leaq -0x189(%rbp), %rdi
callq 0x32f0
jmp 0x16a50
movq 0x2773f(%rip), %rdi     # 0x3dfd0
leaq 0x1f6e5(%rip), %rsi     # 0x35f7d
callq 0x3250
movq %rax, -0x328(%rbp)
jmp 0x168a6
movq -0x1c0(%rbp), %rsi
leaq 0x27a9c(%rip), %rdi     # 0x3e350
callq 0x30a20
movq %rax, -0x330(%rbp)
jmp 0x168c2
movq -0x330(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x340(%rbp)
leaq -0x1b1(%rbp), %rdi
movq %rdi, -0x338(%rbp)
callq 0x3460
movq -0x338(%rbp), %rdx
leaq 0x1f4d4(%rip), %rsi     # 0x35dc8
leaq -0x1b0(%rbp), %rdi
callq 0xfd00
jmp 0x16902
movq -0x340(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x30860
movq %rax, -0x348(%rbp)
jmp 0x1691e
movq -0x1c0(%rbp), %rsi
movq -0x348(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x354(%rbp)
leaq 0x27a15(%rip), %rdi     # 0x3e350
callq 0x30a20
movq %rax, -0x350(%rbp)
jmp 0x16949
movq -0x350(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
callq 0x30940
movq %rax, -0x360(%rbp)
jmp 0x1697a
movq -0x328(%rbp), %rdi
movl -0x354(%rbp), %edx
movq -0x360(%rbp), %rax
movl (%rax), %eax
subl %eax, %edx
movl -0x144(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal (%rax,%rcx,4), %esi
callq 0x3430
movq %rax, -0x368(%rbp)
jmp 0x169ad
movq -0x368(%rbp), %rdi
leaq 0x1f51e(%rip), %rsi     # 0x35ed9
callq 0x3250
movq %rax, -0x370(%rbp)
jmp 0x169c9
movq -0x370(%rbp), %rdi
movq 0x275d9(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x169de
leaq -0x1b0(%rbp), %rdi
callq 0x34f8
leaq -0x1b1(%rbp), %rdi
callq 0x32f0
jmp 0x16a2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x16a1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1b0(%rbp), %rdi
callq 0x34f8
leaq -0x1b1(%rbp), %rdi
callq 0x32f0
jmp 0x16a50
jmp 0x16a2e
movl -0x144(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x144(%rbp)
jmp 0x16605
leaq -0x130(%rbp), %rdi
callq 0x34f8
jmp 0x16a5e
leaq -0x130(%rbp), %rdi
callq 0x34f8
jmp 0x16ac3
jmp 0x16a60
movq -0x1c0(%rbp), %rdi
leaq 0x1eece(%rip), %rsi     # 0x3593c
callq 0x30c10
testb $0x1, %al
jne 0x16a79
jmp 0x16ab8
movq 0x27550(%rip), %rdi     # 0x3dfd0
leaq 0x1f554(%rip), %rsi     # 0x35fdb
callq 0x3250
movq %rax, %rdi
leaq 0x27802(%rip), %rax     # 0x3e298
movl (%rax), %esi
addl $0x1, %esi
leaq 0x277f6(%rip), %rax     # 0x3e298
movl %esi, (%rax)
callq 0x3430
movq %rax, %rdi
movq 0x274fd(%rip), %rsi     # 0x3dfb0
callq 0x32b0
jmp 0x16aba
addq $0x370, %rsp            # imm = 0x370
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x3450
nopl (%rax)