// File: /workspace/github_c_makefile_star2_O1/zyearn[P]SmallC/codegen.cpp
// Function: genGT(treeNode*)
void genGT(treeNode* node)  //for global construct symboltable
{
    //int a,b,c[10] ÀàÐÍµÄÇé¿ö
    if(FT["_G"] == NULL)
    {
        FT["_G"] = new map<string, int>();
    }
    if(ISA["_G"] == NULL)
    {
        ISA["_G"] = new map<string, int>();
    }
    if(node->child[0]->type == 1)   
    {
        int size = 0;
        if( (*FT["_G"])["#"] != 0)
        {
            size = (*FT["_G"])["#"] /4;
        }
        string tmp = node->child[1]->data;
        if(tmp[tmp.length()-1] != ',')
        {
            tmp += ",";
        }

        while(tmp.find(",")>=0 && tmp.find(",")<tmp.length() )
        {
            // int situation
            if(tmp.find(",") < tmp.find("["))
            {
                string s = tmp.substr(0,tmp.find(","));
                tmp.erase(0,tmp.find(","));
                tmp.erase(tmp.find(","),1);
                size++;
                if((*FT["_G"])[s] == 0)
                    (*FT["_G"])[s] = size*4;
                else
                {
                    freopen(outputFile.c_str(), "w", stdout);
                    cout << "Error.";
                    fprintf(stderr, "\nCompile fail!\n");
                    fprintf(stderr, "error occurs, %s is redefined\n", s.c_str() );
                    exit(0);
                }
            }
            // array£¬eg a[10]
            else if(tmp.find("[") < tmp.find(","))
            {
                string s = tmp.substr(0,tmp.find("["));
                string num = tmp.substr(tmp.find("[")+1, tmp.find("]"));
                tmp.erase(0,tmp.find(","));
                tmp.erase(tmp.find(","),1);             
                size += atoi(num.c_str());
                if((*FT["_G"])[s] == 0)
                {
                    (*FT["_G"])[s] = size*4;
                    (*ISA["_G"])[s] = 1;
                }
                else
                {
                    freopen(outputFile.c_str(), "w", stdout);
                    cout << "Error.";
                    fprintf(stderr, "\nCompile fail!\n");
                    fprintf(stderr, "error occurs, %s is redefined\n", s.c_str() );
                    exit(0);
                }
            }
        }
        (*FT["_G"])["#"] = size*4;
    }
    //struct opt {DEFS} £¬modify ST
    else if (node->child[0]->child[0]->type == 1)
    {
        //printf("enter type == 2 (1)\n");
        treeNode *stspec = node->child[0]->child[0];
        string stname = stspec->child[1]->data;
        if( ST[stname] == 0)    //Èç¹ûstruct Ã»¶¨Òå£¬ÔòÐÞ¸Äsymboltable,
        {   //ÕâÀïÓÐ¸öÎÊÌâ£¬Èô¶¼Ã»ÓÐÖ¸¶¨OPTTAG£¬Ôò³öÏÖredefined´íÎó£¬µ«²»ÊÇËùÏ£ÍûµÄ
            ST[stname] = new map<string ,int>();
        }
        else
        {
            freopen(outputFile.c_str(), "w", stdout);
            cout << "Error.";
            fprintf(stderr, "\nCompile fail!\n");
            fprintf(stderr, "error occurs, %s is redefined\n", (stspec->child[2]->data).c_str() );
            exit(0);
        }
        string tmp = stspec->child[3]->data;
        if(tmp[tmp.length()-1] != ',')
        {
            tmp += ",";
        }
        int size = 0;
        while(tmp.find(",")>=0 && tmp.find(",")<tmp.length() )
        {
            string s = tmp.substr(0,tmp.find(","));
            tmp.erase(0,tmp.find(","));
            tmp.erase(tmp.find(","),1);
            size++;
            if((*ST[stname])[s] == 0)
            {
                (*ST[stname])[s] = size*4;
            }
            else
            {
                freopen(outputFile.c_str(), "w", stdout);
                cout << "Error.";
                fprintf(stderr, "\nCompile fail!\n");
                fprintf(stderr, "error occurs, %s is redefined\n", (stname+"."+s).c_str() );
                exit(0);
            }
        }
        (*ST[stname])["#"] = size*4;
        //´¦Àístruct id {..}id_1,id_2; Çé¿ö
        tmp = node->child[1]->data;
        if(tmp != "")
        {
            if(tmp[tmp.length()-1] != ',')
            {
                tmp += ",";
            }// + ","
            if((*FT["_G"])["#"] != 0)
            {   
                size = (*FT["_G"])["#"] /4;
            }
            while(tmp.find(",")>=0 && tmp.find(",")<tmp.length() )
            {
                string s = tmp.substr(0,tmp.find(","));
                tmp.erase(0,tmp.find(","));
                tmp.erase(tmp.find(","),1);
                size += ( (*ST[stname])["#"] )/4;
                if((*FT["_G"])[s] == 0)
                {
                    (*FT["_G"])[s] = size*4;
                    STAC[s] = stname;
                }
                else
                {
                    freopen(outputFile.c_str(), "w", stdout);
                    cout << "Error.";
                    fprintf(stderr, "\nCompile fail!\n");
                    fprintf(stderr, "error occurs, %s is redefined\n", s.c_str() );
                    exit(0);
                }
            }
            (*FT["_G"])["#"] = size*4;
        }
    }
    //struct id xxx; Çé¿ö
    else if(node->child[0]->child[0]->type == 2)
    {
    //  printf("enter type == 2 (2)\n");
        string stname = node->child[0]->child[0]->child[1]->data;
        if(ST[stname] == NULL)
        {
            freopen(outputFile.c_str(), "w", stdout);
            cout << "Error.";
            fprintf(stderr, "\nCompile fail!\n");
            fprintf(stderr, "error occurs, %s is not defined\n", stname.c_str() );
            exit(0);
        }
        int size = 0;
        if((*FT["_G"])["#"] != 0)
        {
            size = (*FT["_G"])["#"] /4;
        }
        string tmp = node->child[1]->data;
        if(tmp[tmp.length()-1] != ',')
        {
            tmp += ",";
        }
        while(tmp.find(",")>=0 && tmp.find(",")<tmp.length() )
        {
            string s = tmp.substr(0,tmp.find(","));
            tmp.erase(0,tmp.find(","));
            tmp.erase(tmp.find(","),1);
            size += (*ST[stname])["#"]/4;
            if((*FT["_G"])[s] == 0)
            {
                (*FT["_G"])[s] = size*4;
                STAC[s] = stname;
            }
            else
            {
                freopen(outputFile.c_str(), "w", stdout);
                cout << "Error.";
                fprintf(stderr, "\nCompile fail!\n");
                fprintf(stderr, "error occurs, %s is redefined\n", s.c_str() );
                exit(0);
            }
        }
        (*FT["_G"])["#"] = size*4;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rdi, %r15
leaq -0x98(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x161e7(%rip), %rsi     # 0x2188c
leaq 0x161e2(%rip), %rdx     # 0x2188e
leaq -0xa8(%rbp), %rdi
callq 0xb264
leaq 0x1cbf1(%rip), %rdi     # 0x282b0
leaq -0xa8(%rbp), %rsi
callq 0xb01a
movq (%rax), %rbx
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0xb6f0
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x21e0
testq %rbx, %rbx
jne 0xb784
movl $0x30, %edi
callq 0x21d0
movq %rax, %rbx
addq $0x8, %rax
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rbx)
movaps %xmm0, 0x20(%rbx)
movaps %xmm0, (%rbx)
movq %rax, 0x18(%rbx)
movq %rax, 0x20(%rbx)
movq $0x0, 0x28(%rbx)
leaq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
movq %rax, (%rdi)
leaq 0x1614c(%rip), %rsi     # 0x2188c
leaq 0x16147(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1cb5d(%rip), %rdi     # 0x282b0
leaq -0xa8(%rbp), %rsi
callq 0xb01a
movq %rbx, (%rax)
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0xb784
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x21e0
leaq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
movq %rax, (%rdi)
leaq 0x160f0(%rip), %rsi     # 0x2188c
leaq 0x160eb(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1cb61(%rip), %rdi     # 0x28310
leaq -0xa8(%rbp), %rsi
callq 0xb01a
movq (%rax), %rbx
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0xb7e0
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x21e0
testq %rbx, %rbx
jne 0xb874
movl $0x30, %edi
callq 0x21d0
movq %rax, %rbx
addq $0x8, %rax
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rbx)
movaps %xmm0, 0x20(%rbx)
movaps %xmm0, (%rbx)
movq %rax, 0x18(%rbx)
movq %rax, 0x20(%rbx)
movq $0x0, 0x28(%rbx)
leaq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
movq %rax, (%rdi)
leaq 0x1605c(%rip), %rsi     # 0x2188c
leaq 0x16057(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1cacd(%rip), %rdi     # 0x28310
leaq -0xa8(%rbp), %rsi
callq 0xb01a
movq %rbx, (%rax)
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0xb874
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x28(%r15), %rax
movq (%rax), %rcx
cmpl $0x1, 0x24(%rcx)
jne 0xb9e0
leaq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
movq %rax, (%rdi)
leaq 0x15fef(%rip), %rsi     # 0x2188c
leaq 0x15fea(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1ca00(%rip), %rdi     # 0x282b0
leaq -0xa8(%rbp), %rsi
callq 0xb01a
movq (%rax), %rbx
leaq -0x58(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x163ea(%rip), %rsi     # 0x21cb8
leaq 0x163e4(%rip), %rdx     # 0x21cb9
leaq -0x68(%rbp), %rdi
callq 0xb264
leaq -0x68(%rbp), %rsi
movq %rbx, %rdi
callq 0x1e6b4
movl (%rax), %ebx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xb905
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0xb927
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x21e0
testl %ebx, %ebx
je 0xc06b
leaq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
movq %rax, (%rdi)
leaq 0x15f45(%rip), %rsi     # 0x2188c
leaq 0x15f40(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1c956(%rip), %rdi     # 0x282b0
leaq -0xa8(%rbp), %rsi
callq 0xb01a
movq (%rax), %rbx
leaq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
movq %rax, (%rdi)
leaq 0x1633d(%rip), %rsi     # 0x21cb8
leaq 0x16337(%rip), %rdx     # 0x21cb9
callq 0xb264
leaq -0x68(%rbp), %rsi
movq %rbx, %rdi
callq 0x1e6b4
movl (%rax), %eax
leal 0x3(%rax), %ebx
testl %eax, %eax
cmovnsl %eax, %ebx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xb9b6
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0xb9d8
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x21e0
sarl $0x2, %ebx
jmp 0xc06d
movq 0x28(%rcx), %rcx
movq (%rcx), %rbx
movl 0x24(%rbx), %ecx
cmpl $0x2, %ecx
je 0xc5bc
cmpl $0x1, %ecx
jne 0xc5aa
movq 0x28(%rbx), %rax
movq 0x8(%rax), %rax
leaq -0xa8(%rbp), %r14
leaq -0x98(%rbp), %rcx
movq %rcx, (%r14)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0xb1ca
leaq 0x1c8b2(%rip), %rdi     # 0x282e0
movq %r14, %rsi
callq 0x1e7b4
addq $0x28, %rbx
cmpq $0x0, (%rax)
jne 0xccab
movl $0x30, %edi
callq 0x21d0
movq %rax, %r14
addq $0x8, %rax
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%r14)
movaps %xmm0, 0x20(%r14)
movaps %xmm0, (%r14)
movq %rax, 0x18(%r14)
movq %rax, 0x20(%r14)
movq $0x0, 0x28(%r14)
leaq 0x1c863(%rip), %rdi     # 0x282e0
leaq -0xa8(%rbp), %rsi
callq 0x1e7b4
movq %r14, (%rax)
movq (%rbx), %rax
movq 0x18(%rax), %rax
leaq -0x58(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x68(%rbp), %rdi
callq 0xb1ca
movq %r15, -0xb0(%rbp)
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rcx
cmpb $0x2c, -0x1(%rax,%rcx)
je 0xbad4
leaq 0x15dd3(%rip), %rsi     # 0x2189e
leaq -0x68(%rbp), %rdi
callq 0x2390
leaq 0x15dc3(%rip), %r15     # 0x2189e
xorl %ebx, %ebx
leaq -0x68(%rbp), %r14
movl $0x1, %ecx
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %ecx
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x2340
cmpq 0x8(%r14), %rax
jae 0xbc1e
xorl %ebx, %ebx
movl $0x4, %r13d
leaq 0x15d80(%rip), %r14     # 0x2189e
leaq -0x68(%rbp), %r15
leaq -0x48(%rbp), %r12
movl $0x1, %ecx
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x2340
movq %r12, %rdi
movq %r15, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x21f0
movl $0x1, %ecx
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x2340
movq %r15, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0x20c0
movl $0x1, %ecx
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %edx
movq %r15, %rdi
movq %rax, %rsi
callq 0x20c0
leaq 0x1c750(%rip), %rdi     # 0x282e0
leaq -0xa8(%rbp), %rsi
callq 0x1e7b4
movq (%rax), %rdi
movq %r12, %rsi
callq 0x1e734
cmpl $0x0, (%rax)
jne 0xcb19
leaq 0x1c729(%rip), %rdi     # 0x282e0
leaq -0xa8(%rbp), %rsi
callq 0x1e7b4
movq (%rax), %rdi
movq %r12, %rsi
callq 0x1e734
movl %r13d, (%rax)
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbbea
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movl $0x1, %ecx
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %ecx
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x2340
addl $0x4, %r13d
incl %ebx
cmpq -0x60(%rbp), %rax
jb 0xbb26
leaq 0x1c6bb(%rip), %rdi     # 0x282e0
leaq -0xa8(%rbp), %rsi
callq 0x1e7b4
movq (%rax), %r14
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x16072(%rip), %rsi     # 0x21cb8
leaq 0x1606c(%rip), %rdx     # 0x21cb9
callq 0xb264
movq -0xb0(%rbp), %r15
leaq -0x48(%rbp), %rsi
movq %r14, %rdi
callq 0x1e6b4
leal (,%rbx,4), %ecx
movl %ecx, (%rax)
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbc87
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x28(%r15), %rax
movq 0x8(%rax), %rsi
leaq -0x68(%rbp), %rdi
callq 0x2140
leaq 0x15fd7(%rip), %rsi     # 0x21c76
leaq -0x68(%rbp), %rdi
callq 0x20e0
testl %eax, %eax
je 0xc56f
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rcx
cmpb $0x2c, -0x1(%rax,%rcx)
je 0xbccf
leaq 0x15bd8(%rip), %rsi     # 0x2189e
leaq -0x68(%rbp), %rdi
callq 0x2390
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x15bab(%rip), %rsi     # 0x2188c
leaq 0x15ba6(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1c5bc(%rip), %rdi     # 0x282b0
leaq -0x48(%rbp), %rsi
callq 0xb01a
movq (%rax), %r14
leaq -0x78(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x15fa9(%rip), %rsi     # 0x21cb8
leaq 0x15fa3(%rip), %rdx     # 0x21cb9
leaq -0x88(%rbp), %rdi
callq 0xb264
leaq -0x88(%rbp), %rsi
movq %r14, %rdi
callq 0x1e6b4
movl (%rax), %r14d
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
je 0xbd4c
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbd65
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
testl %r14d, %r14d
je 0xbe09
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x15b0c(%rip), %rsi     # 0x2188c
leaq 0x15b07(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1c51d(%rip), %rdi     # 0x282b0
leaq -0x48(%rbp), %rsi
callq 0xb01a
movq (%rax), %rbx
leaq -0x88(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x15f08(%rip), %rsi     # 0x21cb8
leaq 0x15f02(%rip), %rdx     # 0x21cb9
callq 0xb264
leaq -0x88(%rbp), %rsi
movq %rbx, %rdi
callq 0x1e6b4
movl (%rax), %eax
leal 0x3(%rax), %ebx
testl %eax, %eax
cmovnsl %eax, %ebx
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
je 0xbded
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbe06
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
sarl $0x2, %ebx
movq %rbx, -0xb0(%rbp)
leaq 0x15a87(%rip), %r15     # 0x2189e
leaq -0x68(%rbp), %r14
movl $0x1, %ecx
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %ecx
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x2340
cmpq 0x8(%r14), %rax
jae 0xca7e
leaq 0x15a4e(%rip), %r12     # 0x2189e
leaq -0x78(%rbp), %r15
movl $0x1, %ecx
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
leaq -0x48(%rbp), %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x21f0
movl $0x1, %ecx
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
movq %r14, %rbx
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0x20c0
movl $0x1, %ecx
movq %rbx, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %edx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x20c0
leaq 0x1c41e(%rip), %rdi     # 0x282e0
leaq -0xa8(%rbp), %rsi
callq 0x1e7b4
movq (%rax), %r13
movq %r15, -0x88(%rbp)
leaq -0x88(%rbp), %r14
movq %r14, %rdi
leaq 0x15dcf(%rip), %rsi     # 0x21cb8
leaq 0x15dc9(%rip), %rdx     # 0x21cb9
callq 0xb264
movq %r13, %rdi
movq %r14, %rsi
callq 0x1e6b4
movl (%rax), %eax
leal 0x3(%rax), %r13d
testl %eax, %eax
cmovnsl %eax, %r13d
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
je 0xbf24
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
movq %r15, -0x88(%rbp)
leaq -0x88(%rbp), %r15
movq %r15, %rdi
leaq 0x15950(%rip), %rsi     # 0x2188c
leaq 0x1594b(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1c361(%rip), %rdi     # 0x282b0
movq %r15, %rsi
callq 0xb01a
movq (%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x1e734
movl (%rax), %r15d
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0xbf82
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
testl %r15d, %r15d
jne 0xcc6f
leaq -0x78(%rbp), %r15
movq %r15, -0x88(%rbp)
movq %r14, %rdi
leaq 0x158ec(%rip), %rsi     # 0x2188c
leaq 0x158e7(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1c2fd(%rip), %rdi     # 0x282b0
movq %r14, %rsi
callq 0xb01a
movq (%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x1e734
sarl $0x2, %r13d
movq -0xb0(%rbp), %rcx
addl %r13d, %ecx
movq %rcx, -0xb0(%rbp)
leal (,%rcx,4), %ecx
movl %ecx, (%rax)
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
je 0xbffd
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
leaq 0x1c33c(%rip), %rdi     # 0x28340
leaq -0x48(%rbp), %rsi
callq 0x1e8f8
movq %rax, %rdi
leaq -0xa8(%rbp), %rsi
callq 0x2140
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc035
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movl $0x1, %ecx
movq %rbx, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %ecx
movq %rbx, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
movq %rbx, %r14
cmpq -0x60(%rbp), %rax
jb 0xbe54
jmp 0xca82
xorl %ebx, %ebx
movq %rbx, -0xb0(%rbp)
movq 0x28(%r15), %rax
movq 0x8(%rax), %rax
leaq -0xa8(%rbp), %rbx
leaq -0x98(%rbp), %rcx
movq %rcx, (%rbx)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0xb1ca
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
cmpb $0x2c, -0x1(%rax,%rcx)
je 0xc0c0
leaq 0x157ea(%rip), %rsi     # 0x2189e
leaq -0xa8(%rbp), %rdi
callq 0x2390
leaq 0x157d7(%rip), %rbx     # 0x2189e
leaq -0xa8(%rbp), %r14
movl $0x1, %ecx
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %ecx
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2340
cmpq 0x8(%r14), %rax
jae 0xc4f2
leaq 0x1579b(%rip), %r15     # 0x2189e
leaq -0x48(%rbp), %r13
movl $0x1, %ecx
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x2340
movq %r15, %rbx
movq %rax, %r15
movl $0x1, %ecx
movq %r14, %rdi
leaq 0x15779(%rip), %r12     # 0x218a7
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %ecx
movq %r14, %rdi
cmpq %rax, %r15
jae 0xc261
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2340
leaq -0x68(%rbp), %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x21f0
movl $0x1, %ecx
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2340
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0x20c0
movl $0x1, %ecx
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %edx
movq %r14, %rdi
movq %rax, %rsi
callq 0x20c0
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movq %r13, %rdi
leaq 0x156d5(%rip), %rsi     # 0x2188c
leaq 0x156d0(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1c0e6(%rip), %rdi     # 0x282b0
movq %r13, %rsi
callq 0xb01a
movq (%rax), %rdi
leaq -0x68(%rbp), %rsi
callq 0x1e734
movl (%rax), %r15d
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc1fa
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
testl %r15d, %r15d
jne 0xcbbb
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movq %r13, %rdi
leaq 0x15677(%rip), %rsi     # 0x2188c
leaq 0x15672(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x15676(%rip), %r15     # 0x2189e
leaq 0x1c081(%rip), %rdi     # 0x282b0
movq %r13, %rsi
callq 0xb01a
movq (%rax), %rdi
leaq -0x68(%rbp), %rsi
callq 0x1e734
movq -0xb0(%rbp), %rcx
incl %ecx
movq %rcx, -0xb0(%rbp)
leal (,%rcx,4), %ecx
movl %ecx, (%rax)
jmp 0xc486
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
movq %rax, %r15
movl $0x1, %ecx
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2340
cmpq %rax, %r15
jae 0xc4ba
movl $0x1, %ecx
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
leaq -0x68(%rbp), %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x21f0
movl $0x1, %ecx
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
leaq 0x1(%rax), %r15
movl $0x1, %ecx
movq %r14, %rdi
leaq 0x155d8(%rip), %rsi     # 0x218a9
xorl %edx, %edx
callq 0x2340
movq %r13, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rax, %rcx
callq 0x21f0
leaq -0x88(%rbp), %r12
movl $0x1, %ecx
movq %r14, %rdi
leaq 0x1559f(%rip), %rbx     # 0x2189e
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2340
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0x20c0
movl $0x1, %ecx
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %edx
movq %r14, %rdi
movq %rax, %rsi
callq 0x20c0
movq -0x48(%rbp), %rdi
callq 0x22f0
movl %eax, %r15d
leaq -0x78(%rbp), %rax
movq %rax, -0x88(%rbp)
movq %r12, %rdi
leaq 0x15533(%rip), %rsi     # 0x2188c
leaq 0x1552e(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1bf44(%rip), %rdi     # 0x282b0
movq %r12, %rsi
callq 0xb01a
movq (%rax), %rdi
leaq -0x68(%rbp), %rsi
callq 0x1e734
movl (%rax), %r12d
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0xc39f
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
testl %r12d, %r12d
jne 0xcc33
leaq -0x78(%rbp), %rax
movq %rax, -0x88(%rbp)
leaq -0x88(%rbp), %rbx
movq %rbx, %rdi
leaq 0x154c8(%rip), %rsi     # 0x2188c
leaq 0x154c3(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1bed9(%rip), %rdi     # 0x282b0
movq %rbx, %rsi
callq 0xb01a
movq (%rax), %rdi
leaq -0x68(%rbp), %rsi
callq 0x1e734
movq -0xb0(%rbp), %rcx
addl %r15d, %ecx
movq %rcx, -0xb0(%rbp)
leal (,%rcx,4), %ecx
movl %ecx, (%rax)
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0xc421
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
leaq -0x78(%rbp), %rax
movq %rax, -0x88(%rbp)
movq %rbx, %rdi
leaq 0x15456(%rip), %rsi     # 0x2188c
leaq 0x15451(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x15455(%rip), %r15     # 0x2189e
leaq 0x1bec0(%rip), %rdi     # 0x28310
movq %rbx, %rsi
callq 0xb01a
movq (%rax), %rdi
leaq -0x68(%rbp), %rsi
callq 0x1e734
movl $0x1, (%rax)
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0xc486
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc49f
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xc4c1
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x21e0
jmp 0xc4c1
leaq 0x153dd(%rip), %r15     # 0x2189e
movl $0x1, %ecx
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %ecx
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x2340
cmpq -0xa0(%rbp), %rax
jb 0xc107
leaq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
movq %rax, (%rdi)
leaq 0x15388(%rip), %rsi     # 0x2188c
leaq 0x15383(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1bd99(%rip), %rdi     # 0x282b0
leaq -0x68(%rbp), %rsi
callq 0xb01a
movq (%rax), %rbx
leaq -0x38(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x15786(%rip), %rsi     # 0x21cb8
leaq 0x15780(%rip), %rdx     # 0x21cb9
leaq -0x48(%rbp), %rdi
callq 0xb264
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x1e6b4
movq -0xb0(%rbp), %rcx
shll $0x2, %ecx
movl %ecx, (%rax)
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xc56f
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xc588
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0xc5aa
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x21e0
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
leaq -0xa8(%rbp), %rbx
leaq -0x98(%rbp), %rcx
movq %rcx, (%rbx)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0xb1ca
leaq 0x1bce8(%rip), %rdi     # 0x282e0
movq %rbx, %rsi
callq 0x1e7b4
cmpq $0x0, (%rax)
je 0xcce6
leaq -0x58(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x15273(%rip), %rsi     # 0x2188c
leaq 0x1526e(%rip), %rdx     # 0x2188e
leaq -0x68(%rbp), %rdi
callq 0xb264
leaq 0x1bc80(%rip), %rdi     # 0x282b0
leaq -0x68(%rbp), %rsi
callq 0xb01a
movq (%rax), %rbx
leaq -0x38(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x1566d(%rip), %rsi     # 0x21cb8
leaq 0x15667(%rip), %rdx     # 0x21cb9
leaq -0x48(%rbp), %rdi
callq 0xb264
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x1e6b4
movl (%rax), %ebx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc682
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc697
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x21e0
testl %ebx, %ebx
je 0xc736
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x151df(%rip), %rsi     # 0x2188c
leaq 0x151da(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1bbf0(%rip), %rdi     # 0x282b0
leaq -0x68(%rbp), %rsi
callq 0xb01a
movq (%rax), %rbx
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x155da(%rip), %rsi     # 0x21cb8
leaq 0x155d4(%rip), %rdx     # 0x21cb9
callq 0xb264
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x1e6b4
movl (%rax), %eax
leal 0x3(%rax), %r13d
testl %eax, %eax
cmovnsl %eax, %r13d
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc71b
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc730
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x21e0
sarl $0x2, %r13d
jmp 0xc739
xorl %r13d, %r13d
movq 0x28(%r15), %rax
movq 0x8(%rax), %rax
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0xb1ca
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rcx
cmpb $0x2c, -0x1(%rax,%rcx)
je 0xc776
leaq 0x15131(%rip), %rsi     # 0x2189e
leaq -0x68(%rbp), %rdi
callq 0x2390
leaq 0x15121(%rip), %rbx     # 0x2189e
leaq -0x68(%rbp), %r14
movl $0x1, %ecx
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %ecx
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2340
cmpq 0x8(%r14), %rax
jae 0xc9ce
leaq -0x78(%rbp), %rbx
leaq 0x150e4(%rip), %r12     # 0x2189e
movl $0x1, %ecx
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
leaq -0x48(%rbp), %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x21f0
movl $0x1, %ecx
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0x20c0
movl $0x1, %ecx
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %edx
movq %r14, %rdi
movq %rax, %rsi
callq 0x20c0
leaq 0x1babb(%rip), %rdi     # 0x282e0
leaq -0xa8(%rbp), %rsi
callq 0x1e7b4
movq %r13, -0xb0(%rbp)
movq (%rax), %r13
movq %rbx, -0x88(%rbp)
leaq -0x88(%rbp), %r15
movq %r15, %rdi
leaq 0x15465(%rip), %rsi     # 0x21cb8
leaq 0x1545f(%rip), %rdx     # 0x21cb9
callq 0xb264
movq %r13, %rdi
movq %r15, %rsi
callq 0x1e6b4
movl (%rax), %eax
leal 0x3(%rax), %ecx
testl %eax, %eax
cmovnsl %eax, %ecx
movl %ecx, -0xb4(%rbp)
movq -0x88(%rbp), %rdi
cmpq %rbx, %rdi
je 0xc892
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, -0x88(%rbp)
movq %r15, %rdi
leaq 0x14fe9(%rip), %rsi     # 0x2188c
leaq 0x14fe4(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1b9fa(%rip), %rdi     # 0x282b0
movq %r15, %rsi
callq 0xb01a
movq (%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x1e734
movl (%rax), %r15d
movq -0x88(%rbp), %rdi
cmpq %rbx, %rdi
je 0xc8e5
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
testl %r15d, %r15d
jne 0xcbf7
movq %rbx, -0x88(%rbp)
leaq -0x88(%rbp), %r13
movq %r13, %rdi
leaq 0x14f86(%rip), %rsi     # 0x2188c
leaq 0x14f81(%rip), %rdx     # 0x2188e
callq 0xb264
leaq -0x48(%rbp), %r15
leaq 0x1b993(%rip), %rdi     # 0x282b0
movq %r13, %rsi
callq 0xb01a
movq (%rax), %rdi
movq %r15, %rsi
callq 0x1e734
movl -0xb4(%rbp), %ecx
sarl $0x2, %ecx
movq -0xb0(%rbp), %r15
addl %ecx, %r15d
movq %r15, %r13
leal (,%r15,4), %ecx
movl %ecx, (%rax)
movq -0x88(%rbp), %rdi
cmpq %rbx, %rdi
je 0xc968
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
leaq 0x1b9d1(%rip), %rdi     # 0x28340
leaq -0x48(%rbp), %rsi
callq 0x1e8f8
movq %rax, %rdi
leaq -0xa8(%rbp), %rsi
callq 0x2140
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc9a0
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movl $0x1, %ecx
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
movl $0x1, %ecx
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2340
cmpq -0x60(%rbp), %rax
jb 0xc7ba
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x14eac(%rip), %rsi     # 0x2188c
leaq 0x14ea7(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1b8bd(%rip), %rdi     # 0x282b0
leaq -0x48(%rbp), %rsi
callq 0xb01a
movq (%rax), %rbx
leaq -0x78(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x152aa(%rip), %rsi     # 0x21cb8
leaq 0x152a4(%rip), %rdx     # 0x21cb9
leaq -0x88(%rbp), %rdi
callq 0xb264
leaq -0x88(%rbp), %rsi
movq %rbx, %rdi
callq 0x1e6b4
shll $0x2, %r13d
movl %r13d, (%rax)
movq -0x88(%rbp), %rdi
cmpq %r14, %rdi
je 0xca4f
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
leaq -0x58(%rbp), %rbx
je 0xca6c
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x68(%rbp), %rdi
cmpq %rbx, %rdi
jne 0xc57c
jmp 0xc588
leaq -0x78(%rbp), %r15
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x14df8(%rip), %rsi     # 0x2188c
leaq 0x14df3(%rip), %rdx     # 0x2188e
callq 0xb264
leaq 0x1b809(%rip), %rdi     # 0x282b0
leaq -0x48(%rbp), %rsi
callq 0xb01a
movq -0xb0(%rbp), %rbx
movq (%rax), %r14
leaq -0x88(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x151ed(%rip), %rsi     # 0x21cb8
leaq 0x151e7(%rip), %rdx     # 0x21cb9
callq 0xb264
leaq -0x88(%rbp), %rsi
movq %r14, %rdi
callq 0x1e6b4
shll $0x2, %ebx
movl %ebx, (%rax)
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
je 0xcb03
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
jne 0xc563
jmp 0xc56f
leaq 0x1b768(%rip), %rax     # 0x28288
movq (%rax), %rdi
movq 0x1b47e(%rip), %rax     # 0x27fa8
movq (%rax), %rdx
leaq 0x14fb5(%rip), %rsi     # 0x21ae9
callq 0x2220
movq 0x1b490(%rip), %rdi     # 0x27fd0
leaq 0x15119(%rip), %rsi     # 0x21c60
movl $0x6, %edx
callq 0x2230
movq 0x1b480(%rip), %rbx     # 0x27fd8
movq (%rbx), %rcx
leaq 0x15105(%rip), %rdi     # 0x21c67
movl $0xf, %esi
movl $0x1, %edx
callq 0x23a0
movq (%rbx), %rbx
leaq 0x150ea(%rip), %rdx     # 0x21c65
leaq -0xd8(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x1e897
leaq -0x88(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq 0x1e833
leaq -0x88(%rbp), %rdi
leaq -0xd8(%rbp), %rdx
movq %rbx, %rsi
callq 0x250b
leaq 0x1b6c6(%rip), %rax     # 0x28288
movq (%rax), %rdi
movq 0x1b3dc(%rip), %rax     # 0x27fa8
movq (%rax), %rdx
leaq 0x14f13(%rip), %rsi     # 0x21ae9
callq 0x2220
movq 0x1b3ee(%rip), %rdi     # 0x27fd0
leaq 0x15077(%rip), %rsi     # 0x21c60
callq 0x21b0
leaq -0x68(%rbp), %rdi
callq 0x25c8
leaq 0x1b68a(%rip), %rax     # 0x28288
movq (%rax), %rdi
movq 0x1b3a0(%rip), %rax     # 0x27fa8
movq (%rax), %rdx
leaq 0x14ed7(%rip), %rsi     # 0x21ae9
callq 0x2220
movq 0x1b3b2(%rip), %rdi     # 0x27fd0
leaq 0x1503b(%rip), %rsi     # 0x21c60
callq 0x21b0
leaq -0x48(%rbp), %rdi
callq 0x2441
leaq 0x1b64e(%rip), %rax     # 0x28288
movq (%rax), %rdi
movq 0x1b364(%rip), %rax     # 0x27fa8
movq (%rax), %rdx
leaq 0x14e9b(%rip), %rsi     # 0x21ae9
callq 0x2220
movq 0x1b376(%rip), %rdi     # 0x27fd0
leaq 0x14fff(%rip), %rsi     # 0x21c60
callq 0x21b0
leaq -0x68(%rbp), %rdi
callq 0x2587
leaq 0x1b612(%rip), %rax     # 0x28288
movq (%rax), %rdi
movq 0x1b328(%rip), %rax     # 0x27fa8
movq (%rax), %rdx
leaq 0x14e5f(%rip), %rsi     # 0x21ae9
callq 0x2220
movq 0x1b33a(%rip), %rdi     # 0x27fd0
leaq 0x14fc3(%rip), %rsi     # 0x21c60
callq 0x21b0
leaq -0x48(%rbp), %rdi
callq 0x2546
leaq 0x1b5d6(%rip), %rax     # 0x28288
movq (%rax), %rdi
movq 0x1b2ec(%rip), %rax     # 0x27fa8
movq (%rax), %rdx
leaq 0x14e23(%rip), %rsi     # 0x21ae9
callq 0x2220
movq 0x1b2fe(%rip), %rdi     # 0x27fd0
leaq 0x14f87(%rip), %rsi     # 0x21c60
callq 0x21b0
movq %rbx, %rdi
callq 0x24c3
leaq 0x1b59b(%rip), %rax     # 0x28288
movq (%rax), %rdi
movq 0x1b2b1(%rip), %rax     # 0x27fa8
movq (%rax), %rdx
leaq 0x14de8(%rip), %rsi     # 0x21ae9
callq 0x2220
movq 0x1b2c3(%rip), %rdi     # 0x27fd0
leaq 0x14f4c(%rip), %rsi     # 0x21c60
callq 0x21b0
leaq -0xa8(%rbp), %rdi
callq 0x2482
jmp 0xcec4
jmp 0xcf95
jmp 0xcf95
jmp 0xcea4
jmp 0xcf3e
jmp 0xcea4
jmp 0xcec4
jmp 0xcf95
jmp 0xcf95
jmp 0xcea4
jmp 0xcec4
jmp 0xcf95
jmp 0xcf95
jmp 0xcea4
jmp 0xcdb1
jmp 0xcdd6
jmp 0xcdd6
jmp 0xcefa
jmp 0xcf95
jmp 0xcf95
jmp 0xcea4
movq %rax, %r12
movq -0x88(%rbp), %rdi
cmpq %r14, %rdi
jne 0xcf30
jmp 0xcf4c
jmp 0xcf49
jmp 0xcf49
jmp 0xcf3e
jmp 0xcefa
movq %rax, %r12
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xcdd9
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
jmp 0xcdd9
jmp 0xcdd6
jmp 0xcefa
movq %rax, %r12
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
jne 0xcfbe
jmp 0xcfca
jmp 0xcefa
jmp 0xcefa
jmp 0xcefa
jmp 0xcf3e
jmp 0xcefa
jmp 0xcefa
jmp 0xce64
jmp 0xcea4
jmp 0xcefa
jmp 0xce64
jmp 0xcefa
jmp 0xce64
movq %rax, %r12
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
jne 0xcf59
jmp 0xcf65
jmp 0xcf3e
jmp 0xcf3e
jmp 0xcefa
jmp 0xcf3e
jmp 0xcefa
jmp 0xcefa
jmp 0xce64
jmp 0xcefa
jmp 0xcefa
jmp 0xce64
jmp 0xcefa
movq %rax, %r12
jmp 0xcfec
jmp 0xcf95
jmp 0xcf49
jmp 0xcea4
jmp 0xcf95
jmp 0xcec4
jmp 0xcf95
jmp 0xcf95
jmp 0xcf49
jmp 0xcf49
jmp 0xcf49
jmp 0xcf3e
jmp 0xcefa
jmp 0xcf49
movq %rax, %r12
jmp 0xcfb1
jmp 0xcf3e
jmp 0xcf49
jmp 0xcf21
jmp 0xcf49
jmp 0xcf49
jmp 0xcf3e
movq %rax, %r12
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
jne 0xceef
jmp 0xcf98
movq %rax, %r12
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0xcf98
movq -0x78(%rbp), %rsi
jmp 0xcf8b
jmp 0xcf49
movq %rax, %r12
jmp 0xcfca
jmp 0xcf06
jmp 0xcf06
movq %rax, %r12
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
jne 0xcf30
jmp 0xcf4c
jmp 0xcf3e
jmp 0xcf3e
jmp 0xcf21
movq %rax, %r12
movq -0x88(%rbp), %rdi
cmpq %rbx, %rdi
je 0xcf4c
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
jmp 0xcf4c
movq %rax, %r12
jmp 0xcf65
jmp 0xcf49
jmp 0xcf49
jmp 0xcf95
movq %rax, %r12
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xcf65
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
jmp 0xcfb9
jmp 0xcf95
movq %rax, %r12
leaq -0xc8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xcf98
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x21e0
jmp 0xcf98
movq %rax, %r12
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xcfb1
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
leaq -0x58(%rbp), %rax
movq -0x68(%rbp), %rdi
cmpq %rax, %rdi
je 0xcfca
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0xcfec
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x21e0
movq %r12, %rdi
callq 0x2360