// File: Konano[P]UselessDatabase/Index.cpp
// Function: Index::queryRecords(enumOp, Anys&, int)
std::vector<uint> Index::queryRecords(enumOp op, Anys& data, int now_index){
    BtreeNode* now = Index::convert_buf_to_BtreeNode(now_index);

    std::vector<uint> ans;
    std::vector<uint> temp;

    int i;
    for (i = 0; i < now->record_cnt; i++) {
        bool flag = false;
        switch(op){
            case OP_EQ:{
                if(now->record[i].key == data){
                    ans.push_back(now->record[i].record_id);
                    temp.push_back(i);
                }
                else if(now->record[i].key > data){
                    flag = true;
                }
                break;
            }
            case OP_NEQ:{
                if(now->record[i].key != data){
                    ans.push_back(now->record[i].record_id);
                    temp.push_back(i);
                }
                break;
            }
            case OP_LE:{
                if(now->record[i].key <= data){
                    ans.push_back(now->record[i].record_id);
                    temp.push_back(i);
                }
                else if(now->record[i].key > data){
                    flag = true;
                }
                break;
            }
            case OP_GE:{
                if(now->record[i].key >= data){
                    ans.push_back(now->record[i].record_id);
                    temp.push_back(i);
                }
                break;
            }
            case OP_LS:{
                if(now->record[i].key < data){
                    ans.push_back(now->record[i].record_id);
                    temp.push_back(i);
                }
                else if(now->record[i].key >= data){
                    flag = true;
                }
                break;
            }
            case OP_GT:{
                if(now->record[i].key > data){
                    ans.push_back(now->record[i].record_id);
                    temp.push_back(i);
                }
                break;
            }
            case OP_NL:{
                bool ok = true;
                for(uint j = 0;j < now->record[i].key.size();j ++){
                    if(!now->record[i].key[j].isNull()){
                        ok = false;
                        break;
                    }
                }
                if(ok){
                    ans.push_back(now->record[i].record_id);
                    temp.push_back(i);
                }
                break;
            }
            case OP_NNL:{
                bool ok = false;
                for(uint j = 0;j < now->record[i].key.size();j ++){
                    if(!now->record[i].key[j].isNull()){
                        ok = true;
                        break;
                    }
                }
                if(ok){
                    ans.push_back(now->record[i].record_id);
                    temp.push_back(i);
                }
                break;
            }
            case OP_IN:{
                //UnReachable
                break;
            }
        }
        if(flag)break;
    }

    switch(op){
        case OP_EQ:{
            for(uint i = 0;i < temp.size();i ++){
                if(now->child[temp[i]] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i]]);
                    for (auto it: temp)ans.push_back(it);
                }
                if(i == temp.size() - 1 && now->child[temp[i] + 1] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i] + 1]);
                    for (auto it: temp)ans.push_back(it);
                }
            }
            break;
        }
        case OP_NEQ:{
            for(uint i = 0;i < temp.size();i ++){
                if(now->child[temp[i]] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i]]);
                    for (auto it: temp)ans.push_back(it);
                }
                if(i == temp.size() - 1 && now->child[temp[i] + 1] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i] + 1]);
                    for (auto it: temp)ans.push_back(it);
                }
                if(i < temp.size() - 1 && temp[i] != temp[i + 1] - 1 && now->child[temp[i] + 1] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i] + 1]);
                    for (auto it: temp)ans.push_back(it);
                }
            }
            break;
        }
        case OP_LE:{
            for(uint i = 0;i < temp.size();i ++){
                if(now->child[temp[i]] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i]]);
                    for (auto it: temp)ans.push_back(it);
                }
                if(i == temp.size() - 1 && now->child[temp[i] + 1] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i] + 1]);
                    for (auto it: temp)ans.push_back(it);
                }
            }
            break;
        }
        case OP_GE:{
            for(uint i = 0;i < temp.size();i ++){
                if(now->child[temp[i]] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i]]);
                    for (auto it: temp)ans.push_back(it);
                }
                if(i == temp.size() - 1 && now->child[temp[i] + 1] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i] + 1]);
                    for (auto it: temp)ans.push_back(it);
                }
            }
            break;
        }
        case OP_LS:{
            for(uint i = 0;i < temp.size();i ++){
                if(now->child[temp[i]] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i]]);
                    for (auto it: temp)ans.push_back(it);
                }
                if(i == temp.size() - 1 && now->child[temp[i] + 1] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i] + 1]);
                    for (auto it: temp)ans.push_back(it);
                }
            }
            break;
        }
        case OP_GT:{
            for(uint i = 0;i < temp.size();i ++){
                if(now->child[temp[i]] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i]]);
                    for (auto it: temp)ans.push_back(it);
                }
                if(i == temp.size() - 1 && now->child[temp[i] + 1] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i] + 1]);
                    for (auto it: temp)ans.push_back(it);
                }
            }
            break;
        }
        case OP_NL:{
            for(uint i = 0;i < temp.size();i ++){
                if(now->child[temp[i]] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i]]);
                    for (auto it: temp)ans.push_back(it);
                }
                if(i == temp.size() - 1 && now->child[temp[i] + 1] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i] + 1]);
                    for (auto it: temp)ans.push_back(it);
                }
            }
            break;
        }
        case OP_NNL:{
            for(uint i = 0;i < temp.size();i ++){
                if(now->child[temp[i]] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i]]);
                    for (auto it: temp)ans.push_back(it);
                }
                if(i == temp.size() - 1 && now->child[temp[i] + 1] != -1){
                    std::vector<uint> temp =  queryRecords(op,data,now->child[temp[i] + 1]);
                    for (auto it: temp)ans.push_back(it);
                }
            }
            break;
        }
        case OP_IN:{
            //UnReachable
            break;
        }
    }

    return ans;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x810, %rsp            # imm = 0x810
movq %rdi, -0x478(%rbp)
movq %rdi, %rax
movq %rax, -0x488(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x480(%rbp)
movl -0x24(%rbp), %esi
callq 0x36fd0
movq -0x478(%rbp), %rdi
movq %rax, -0x30(%rbp)
movb $0x0, -0x31(%rbp)
callq 0xec40
leaq -0x50(%rbp), %rdi
callq 0xec40
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x30(%rbp), %rcx
cmpl 0x1c(%rcx), %eax
jge 0x3b2be
movb $0x0, -0x55(%rbp)
movl -0x14(%rbp), %eax
movq %rax, -0x490(%rbp)
subq $0x8, %rax
ja 0x3b2a6
movq -0x490(%rbp), %rax
leaq 0x48b7c(%rip), %rcx     # 0x83838
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
movq -0x20(%rbp), %rsi
callq 0xc500
movb %al, -0x491(%rbp)
jmp 0x3acee
movb -0x491(%rbp), %al
testb $0x1, %al
jne 0x3acfa
jmp 0x3ad4a
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x68(%rbp)
leaq -0x68(%rbp), %rsi
callq 0x3d060
jmp 0x3ad22
movl -0x54(%rbp), %eax
movl %eax, -0x6c(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x6c(%rbp), %rsi
callq 0x3d060
jmp 0x3ad37
jmp 0x3ad85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x3ce8e
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
movq -0x20(%rbp), %rsi
callq 0xc710
movb %al, -0x492(%rbp)
jmp 0x3ad73
movb -0x492(%rbp), %al
testb $0x1, %al
jne 0x3ad7f
jmp 0x3ad83
movb $0x1, -0x55(%rbp)
jmp 0x3ad85
jmp 0x3b2a6
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
movq -0x20(%rbp), %rsi
callq 0xc5a0
movb %al, -0x493(%rbp)
jmp 0x3adb3
movb -0x493(%rbp), %al
testb $0x1, %al
jne 0x3adbf
jmp 0x3adfe
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x70(%rbp)
leaq -0x70(%rbp), %rsi
callq 0x3d060
jmp 0x3ade7
movl -0x54(%rbp), %eax
movl %eax, -0x74(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x74(%rbp), %rsi
callq 0x3d060
jmp 0x3adfc
jmp 0x3adfe
jmp 0x3b2a6
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
movq -0x20(%rbp), %rsi
callq 0xc5d0
movb %al, -0x494(%rbp)
jmp 0x3ae2c
movb -0x494(%rbp), %al
testb $0x1, %al
jne 0x3ae38
jmp 0x3ae77
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x78(%rbp)
leaq -0x78(%rbp), %rsi
callq 0x3d060
jmp 0x3ae60
movl -0x54(%rbp), %eax
movl %eax, -0x7c(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x7c(%rbp), %rsi
callq 0x3d060
jmp 0x3ae75
jmp 0x3aeb2
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
movq -0x20(%rbp), %rsi
callq 0xc710
movb %al, -0x495(%rbp)
jmp 0x3aea0
movb -0x495(%rbp), %al
testb $0x1, %al
jne 0x3aeac
jmp 0x3aeb0
movb $0x1, -0x55(%rbp)
jmp 0x3aeb2
jmp 0x3b2a6
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
movq -0x20(%rbp), %rsi
callq 0xc600
movb %al, -0x496(%rbp)
jmp 0x3aee0
movb -0x496(%rbp), %al
testb $0x1, %al
jne 0x3aeec
jmp 0x3af31
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x80(%rbp)
leaq -0x80(%rbp), %rsi
callq 0x3d060
jmp 0x3af14
movl -0x54(%rbp), %eax
movl %eax, -0x84(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x84(%rbp), %rsi
callq 0x3d060
jmp 0x3af2f
jmp 0x3af31
jmp 0x3b2a6
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
movq -0x20(%rbp), %rsi
callq 0xc630
movb %al, -0x497(%rbp)
jmp 0x3af5f
movb -0x497(%rbp), %al
testb $0x1, %al
jne 0x3af6b
jmp 0x3afb6
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x88(%rbp)
leaq -0x88(%rbp), %rsi
callq 0x3d060
jmp 0x3af99
movl -0x54(%rbp), %eax
movl %eax, -0x8c(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x8c(%rbp), %rsi
callq 0x3d060
jmp 0x3afb4
jmp 0x3aff1
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
movq -0x20(%rbp), %rsi
callq 0xc600
movb %al, -0x498(%rbp)
jmp 0x3afdf
movb -0x498(%rbp), %al
testb $0x1, %al
jne 0x3afeb
jmp 0x3afef
movb $0x1, -0x55(%rbp)
jmp 0x3aff1
jmp 0x3b2a6
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
movq -0x20(%rbp), %rsi
callq 0xc710
movb %al, -0x499(%rbp)
jmp 0x3b01f
movb -0x499(%rbp), %al
testb $0x1, %al
jne 0x3b02b
jmp 0x3b076
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x90(%rbp)
leaq -0x90(%rbp), %rsi
callq 0x3d060
jmp 0x3b059
movl -0x54(%rbp), %eax
movl %eax, -0x94(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x94(%rbp), %rsi
callq 0x3d060
jmp 0x3b074
jmp 0x3b076
jmp 0x3b2a6
movb $0x1, -0x95(%rbp)
movl $0x0, -0x9c(%rbp)
movl -0x9c(%rbp), %eax
movl %eax, -0x4a4(%rbp)
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
callq 0xcd90
movl %eax, -0x4a0(%rbp)
jmp 0x3b0bd
movl -0x4a4(%rbp), %eax
movl -0x4a0(%rbp), %ecx
cmpl %ecx, %eax
jae 0x3b138
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
movl -0x9c(%rbp), %esi
callq 0xc8f0
movq %rax, -0x4b0(%rbp)
jmp 0x3b0f9
movq -0x4b0(%rbp), %rdi
callq 0xc920
movb %al, -0x4b1(%rbp)
jmp 0x3b10d
movb -0x4b1(%rbp), %al
testb $0x1, %al
jne 0x3b122
jmp 0x3b119
movb $0x0, -0x95(%rbp)
jmp 0x3b138
jmp 0x3b124
movl -0x9c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x9c(%rbp)
jmp 0x3b08c
testb $0x1, -0x95(%rbp)
je 0x3b18c
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0xa0(%rbp)
leaq -0xa0(%rbp), %rsi
callq 0x3d060
jmp 0x3b16f
movl -0x54(%rbp), %eax
movl %eax, -0xa4(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0xa4(%rbp), %rsi
callq 0x3d060
jmp 0x3b18a
jmp 0x3b18c
jmp 0x3b2a6
movb $0x0, -0xa5(%rbp)
movl $0x0, -0xac(%rbp)
movl -0xac(%rbp), %eax
movl %eax, -0x4bc(%rbp)
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
callq 0xcd90
movl %eax, -0x4b8(%rbp)
jmp 0x3b1d3
movl -0x4bc(%rbp), %eax
movl -0x4b8(%rbp), %ecx
cmpl %ecx, %eax
jae 0x3b24e
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq %rax, %rdi
addq $0x8, %rdi
movl -0xac(%rbp), %esi
callq 0xc8f0
movq %rax, -0x4c8(%rbp)
jmp 0x3b20f
movq -0x4c8(%rbp), %rdi
callq 0xc920
movb %al, -0x4c9(%rbp)
jmp 0x3b223
movb -0x4c9(%rbp), %al
testb $0x1, %al
jne 0x3b238
jmp 0x3b22f
movb $0x1, -0xa5(%rbp)
jmp 0x3b24e
jmp 0x3b23a
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
jmp 0x3b1a2
testb $0x1, -0xa5(%rbp)
je 0x3b2a2
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
movslq -0x54(%rbp), %rsi
callq 0x3d7a0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0xb0(%rbp)
leaq -0xb0(%rbp), %rsi
callq 0x3d060
jmp 0x3b285
movl -0x54(%rbp), %eax
movl %eax, -0xb4(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0xb4(%rbp), %rsi
callq 0x3d060
jmp 0x3b2a0
jmp 0x3b2a2
jmp 0x3b2a6
jmp 0x3b2a6
testb $0x1, -0x55(%rbp)
je 0x3b2ae
jmp 0x3b2be
jmp 0x3b2b0
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x3ac86
movl -0x14(%rbp), %eax
movq %rax, -0x4d8(%rbp)
subq $0x8, %rax
ja 0x3ce79
movq -0x4d8(%rbp), %rax
leaq 0x4857c(%rip), %rcx     # 0x8385c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x0, -0xb8(%rbp)
movl -0xb8(%rbp), %eax
movq %rax, -0x4e0(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x4e0(%rbp), %rax
cmpq %rcx, %rax
jae 0x3b61c
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x4e8(%rbp)
movl -0xb8(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x4e8(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3b477
movl -0x14(%rbp), %eax
movl %eax, -0x4f4(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x4f0(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x508(%rbp)
movl -0xb8(%rbp), %eax
movl %eax, %esi
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x500(%rbp)
callq 0x3cf40
movq -0x508(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x500(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x4f4(%rbp), %edx
movq -0x4f0(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3b3c8
leaq -0xd0(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0xd8(%rbp), %rdi
callq 0x3d210
movq %rax, -0xe0(%rbp)
movq -0xd8(%rbp), %rdi
callq 0x3d240
movq %rax, -0xe8(%rbp)
leaq -0xe0(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3b415
jmp 0x3b46b
leaq -0xe0(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0xec(%rbp)
leaq -0xec(%rbp), %rsi
callq 0x3d2d0
jmp 0x3b43e
jmp 0x3b440
leaq -0xe0(%rbp), %rdi
callq 0x3d3b0
jmp 0x3b3fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0xd0(%rbp), %rdi
callq 0xee40
movl -0xb8(%rbp), %eax
movq %rax, -0x510(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x510(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x3b606
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x518(%rbp)
movl -0xb8(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x518(%rbp), %rdi
movl (%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3b606
movl -0x14(%rbp), %eax
movl %eax, -0x524(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x520(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x538(%rbp)
movl -0xb8(%rbp), %eax
movl %eax, %esi
leaq -0x108(%rbp), %rdi
movq %rdi, -0x530(%rbp)
callq 0x3cf40
movq -0x538(%rbp), %rdi
movl (%rax), %eax
incl %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x530(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x524(%rbp), %edx
movq -0x520(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3b557
leaq -0x108(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x110(%rbp), %rdi
callq 0x3d210
movq %rax, -0x118(%rbp)
movq -0x110(%rbp), %rdi
callq 0x3d240
movq %rax, -0x120(%rbp)
leaq -0x118(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3b5a4
jmp 0x3b5fa
leaq -0x118(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x124(%rbp)
leaq -0x124(%rbp), %rsi
callq 0x3d2d0
jmp 0x3b5cd
jmp 0x3b5cf
leaq -0x118(%rbp), %rdi
callq 0x3d3b0
jmp 0x3b58b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x108(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x108(%rbp), %rdi
callq 0xee40
jmp 0x3b608
movl -0xb8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb8(%rbp)
jmp 0x3b2f3
jmp 0x3ce79
movl $0x0, -0x128(%rbp)
movl -0x128(%rbp), %eax
movq %rax, -0x540(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x540(%rbp), %rax
cmpq %rcx, %rax
jae 0x3bb28
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x548(%rbp)
movl -0x128(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x548(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3b7af
movl -0x14(%rbp), %eax
movl %eax, -0x554(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x550(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x568(%rbp)
movl -0x128(%rbp), %eax
movl %eax, %esi
leaq -0x140(%rbp), %rdi
movq %rdi, -0x560(%rbp)
callq 0x3cf40
movq -0x568(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x560(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x554(%rbp), %edx
movq -0x550(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3b700
leaq -0x140(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x148(%rbp), %rdi
callq 0x3d210
movq %rax, -0x150(%rbp)
movq -0x148(%rbp), %rdi
callq 0x3d240
movq %rax, -0x158(%rbp)
leaq -0x150(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3b74d
jmp 0x3b7a3
leaq -0x150(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x15c(%rbp)
leaq -0x15c(%rbp), %rsi
callq 0x3d2d0
jmp 0x3b776
jmp 0x3b778
leaq -0x150(%rbp), %rdi
callq 0x3d3b0
jmp 0x3b734
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x140(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x140(%rbp), %rdi
callq 0xee40
movl -0x128(%rbp), %eax
movq %rax, -0x570(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x570(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x3b93e
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x578(%rbp)
movl -0x128(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x578(%rbp), %rdi
movl (%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3b93e
movl -0x14(%rbp), %eax
movl %eax, -0x584(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x580(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x598(%rbp)
movl -0x128(%rbp), %eax
movl %eax, %esi
leaq -0x178(%rbp), %rdi
movq %rdi, -0x590(%rbp)
callq 0x3cf40
movq -0x598(%rbp), %rdi
movl (%rax), %eax
incl %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x590(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x584(%rbp), %edx
movq -0x580(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3b88f
leaq -0x178(%rbp), %rax
movq %rax, -0x180(%rbp)
movq -0x180(%rbp), %rdi
callq 0x3d210
movq %rax, -0x188(%rbp)
movq -0x180(%rbp), %rdi
callq 0x3d240
movq %rax, -0x190(%rbp)
leaq -0x188(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3b8dc
jmp 0x3b932
leaq -0x188(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x194(%rbp)
leaq -0x194(%rbp), %rsi
callq 0x3d2d0
jmp 0x3b905
jmp 0x3b907
leaq -0x188(%rbp), %rdi
callq 0x3d3b0
jmp 0x3b8c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x178(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x178(%rbp), %rdi
callq 0xee40
movl -0x128(%rbp), %eax
movq %rax, -0x5a0(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x5a0(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jae 0x3bb12
movl -0x128(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movl (%rax), %eax
movl %eax, -0x5a4(%rbp)
movl -0x128(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq %rax, %rcx
movl -0x5a4(%rbp), %eax
movl (%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
je 0x3bb12
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x5b0(%rbp)
movl -0x128(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x5b0(%rbp), %rdi
movl (%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3bb12
movl -0x14(%rbp), %eax
movl %eax, -0x5bc(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x5b8(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x5d0(%rbp)
movl -0x128(%rbp), %eax
movl %eax, %esi
leaq -0x1b0(%rbp), %rdi
movq %rdi, -0x5c8(%rbp)
callq 0x3cf40
movq -0x5d0(%rbp), %rdi
movl (%rax), %eax
incl %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x5c8(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x5bc(%rbp), %edx
movq -0x5b8(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3ba63
leaq -0x1b0(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq -0x1b8(%rbp), %rdi
callq 0x3d210
movq %rax, -0x1c0(%rbp)
movq -0x1b8(%rbp), %rdi
callq 0x3d240
movq %rax, -0x1c8(%rbp)
leaq -0x1c0(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3bab0
jmp 0x3bb06
leaq -0x1c0(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x1cc(%rbp)
leaq -0x1cc(%rbp), %rsi
callq 0x3d2d0
jmp 0x3bad9
jmp 0x3badb
leaq -0x1c0(%rbp), %rdi
callq 0x3d3b0
jmp 0x3ba97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1b0(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x1b0(%rbp), %rdi
callq 0xee40
jmp 0x3bb14
movl -0x128(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x128(%rbp)
jmp 0x3b62b
jmp 0x3ce79
movl $0x0, -0x1d0(%rbp)
movl -0x1d0(%rbp), %eax
movq %rax, -0x5d8(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x5d8(%rbp), %rax
cmpq %rcx, %rax
jae 0x3be60
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x5e0(%rbp)
movl -0x1d0(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x5e0(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3bcbb
movl -0x14(%rbp), %eax
movl %eax, -0x5ec(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x5e8(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x600(%rbp)
movl -0x1d0(%rbp), %eax
movl %eax, %esi
leaq -0x1e8(%rbp), %rdi
movq %rdi, -0x5f8(%rbp)
callq 0x3cf40
movq -0x600(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x5f8(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x5ec(%rbp), %edx
movq -0x5e8(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3bc0c
leaq -0x1e8(%rbp), %rax
movq %rax, -0x1f0(%rbp)
movq -0x1f0(%rbp), %rdi
callq 0x3d210
movq %rax, -0x1f8(%rbp)
movq -0x1f0(%rbp), %rdi
callq 0x3d240
movq %rax, -0x200(%rbp)
leaq -0x1f8(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3bc59
jmp 0x3bcaf
leaq -0x1f8(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x204(%rbp)
leaq -0x204(%rbp), %rsi
callq 0x3d2d0
jmp 0x3bc82
jmp 0x3bc84
leaq -0x1f8(%rbp), %rdi
callq 0x3d3b0
jmp 0x3bc40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x1e8(%rbp), %rdi
callq 0xee40
movl -0x1d0(%rbp), %eax
movq %rax, -0x608(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x608(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x3be4a
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x610(%rbp)
movl -0x1d0(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x610(%rbp), %rdi
movl (%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3be4a
movl -0x14(%rbp), %eax
movl %eax, -0x61c(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x618(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x630(%rbp)
movl -0x1d0(%rbp), %eax
movl %eax, %esi
leaq -0x220(%rbp), %rdi
movq %rdi, -0x628(%rbp)
callq 0x3cf40
movq -0x630(%rbp), %rdi
movl (%rax), %eax
incl %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x628(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x61c(%rbp), %edx
movq -0x618(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3bd9b
leaq -0x220(%rbp), %rax
movq %rax, -0x228(%rbp)
movq -0x228(%rbp), %rdi
callq 0x3d210
movq %rax, -0x230(%rbp)
movq -0x228(%rbp), %rdi
callq 0x3d240
movq %rax, -0x238(%rbp)
leaq -0x230(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3bde8
jmp 0x3be3e
leaq -0x230(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x23c(%rbp)
leaq -0x23c(%rbp), %rsi
callq 0x3d2d0
jmp 0x3be11
jmp 0x3be13
leaq -0x230(%rbp), %rdi
callq 0x3d3b0
jmp 0x3bdcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x220(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x220(%rbp), %rdi
callq 0xee40
jmp 0x3be4c
movl -0x1d0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1d0(%rbp)
jmp 0x3bb37
jmp 0x3ce79
movl $0x0, -0x240(%rbp)
movl -0x240(%rbp), %eax
movq %rax, -0x638(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x638(%rbp), %rax
cmpq %rcx, %rax
jae 0x3c198
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x640(%rbp)
movl -0x240(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x640(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3bff3
movl -0x14(%rbp), %eax
movl %eax, -0x64c(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x648(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x660(%rbp)
movl -0x240(%rbp), %eax
movl %eax, %esi
leaq -0x258(%rbp), %rdi
movq %rdi, -0x658(%rbp)
callq 0x3cf40
movq -0x660(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x658(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x64c(%rbp), %edx
movq -0x648(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3bf44
leaq -0x258(%rbp), %rax
movq %rax, -0x260(%rbp)
movq -0x260(%rbp), %rdi
callq 0x3d210
movq %rax, -0x268(%rbp)
movq -0x260(%rbp), %rdi
callq 0x3d240
movq %rax, -0x270(%rbp)
leaq -0x268(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3bf91
jmp 0x3bfe7
leaq -0x268(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x274(%rbp)
leaq -0x274(%rbp), %rsi
callq 0x3d2d0
jmp 0x3bfba
jmp 0x3bfbc
leaq -0x268(%rbp), %rdi
callq 0x3d3b0
jmp 0x3bf78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x258(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x258(%rbp), %rdi
callq 0xee40
movl -0x240(%rbp), %eax
movq %rax, -0x668(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x668(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x3c182
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x670(%rbp)
movl -0x240(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x670(%rbp), %rdi
movl (%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3c182
movl -0x14(%rbp), %eax
movl %eax, -0x67c(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x678(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x690(%rbp)
movl -0x240(%rbp), %eax
movl %eax, %esi
leaq -0x290(%rbp), %rdi
movq %rdi, -0x688(%rbp)
callq 0x3cf40
movq -0x690(%rbp), %rdi
movl (%rax), %eax
incl %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x688(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x67c(%rbp), %edx
movq -0x678(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3c0d3
leaq -0x290(%rbp), %rax
movq %rax, -0x298(%rbp)
movq -0x298(%rbp), %rdi
callq 0x3d210
movq %rax, -0x2a0(%rbp)
movq -0x298(%rbp), %rdi
callq 0x3d240
movq %rax, -0x2a8(%rbp)
leaq -0x2a0(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3c120
jmp 0x3c176
leaq -0x2a0(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x2ac(%rbp)
leaq -0x2ac(%rbp), %rsi
callq 0x3d2d0
jmp 0x3c149
jmp 0x3c14b
leaq -0x2a0(%rbp), %rdi
callq 0x3d3b0
jmp 0x3c107
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x290(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x290(%rbp), %rdi
callq 0xee40
jmp 0x3c184
movl -0x240(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x240(%rbp)
jmp 0x3be6f
jmp 0x3ce79
movl $0x0, -0x2b0(%rbp)
movl -0x2b0(%rbp), %eax
movq %rax, -0x698(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x698(%rbp), %rax
cmpq %rcx, %rax
jae 0x3c4d0
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x6a0(%rbp)
movl -0x2b0(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x6a0(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3c32b
movl -0x14(%rbp), %eax
movl %eax, -0x6ac(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x6a8(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x6c0(%rbp)
movl -0x2b0(%rbp), %eax
movl %eax, %esi
leaq -0x2c8(%rbp), %rdi
movq %rdi, -0x6b8(%rbp)
callq 0x3cf40
movq -0x6c0(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x6b8(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x6ac(%rbp), %edx
movq -0x6a8(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3c27c
leaq -0x2c8(%rbp), %rax
movq %rax, -0x2d0(%rbp)
movq -0x2d0(%rbp), %rdi
callq 0x3d210
movq %rax, -0x2d8(%rbp)
movq -0x2d0(%rbp), %rdi
callq 0x3d240
movq %rax, -0x2e0(%rbp)
leaq -0x2d8(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3c2c9
jmp 0x3c31f
leaq -0x2d8(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x2e4(%rbp)
leaq -0x2e4(%rbp), %rsi
callq 0x3d2d0
jmp 0x3c2f2
jmp 0x3c2f4
leaq -0x2d8(%rbp), %rdi
callq 0x3d3b0
jmp 0x3c2b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x2c8(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x2c8(%rbp), %rdi
callq 0xee40
movl -0x2b0(%rbp), %eax
movq %rax, -0x6c8(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x6c8(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x3c4ba
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x6d0(%rbp)
movl -0x2b0(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x6d0(%rbp), %rdi
movl (%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3c4ba
movl -0x14(%rbp), %eax
movl %eax, -0x6dc(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x6d8(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x6f0(%rbp)
movl -0x2b0(%rbp), %eax
movl %eax, %esi
leaq -0x300(%rbp), %rdi
movq %rdi, -0x6e8(%rbp)
callq 0x3cf40
movq -0x6f0(%rbp), %rdi
movl (%rax), %eax
incl %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x6e8(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x6dc(%rbp), %edx
movq -0x6d8(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3c40b
leaq -0x300(%rbp), %rax
movq %rax, -0x308(%rbp)
movq -0x308(%rbp), %rdi
callq 0x3d210
movq %rax, -0x310(%rbp)
movq -0x308(%rbp), %rdi
callq 0x3d240
movq %rax, -0x318(%rbp)
leaq -0x310(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3c458
jmp 0x3c4ae
leaq -0x310(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x31c(%rbp)
leaq -0x31c(%rbp), %rsi
callq 0x3d2d0
jmp 0x3c481
jmp 0x3c483
leaq -0x310(%rbp), %rdi
callq 0x3d3b0
jmp 0x3c43f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x300(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x300(%rbp), %rdi
callq 0xee40
jmp 0x3c4bc
movl -0x2b0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2b0(%rbp)
jmp 0x3c1a7
jmp 0x3ce79
movl $0x0, -0x320(%rbp)
movl -0x320(%rbp), %eax
movq %rax, -0x6f8(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x6f8(%rbp), %rax
cmpq %rcx, %rax
jae 0x3c808
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x700(%rbp)
movl -0x320(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x700(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3c663
movl -0x14(%rbp), %eax
movl %eax, -0x70c(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x708(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x720(%rbp)
movl -0x320(%rbp), %eax
movl %eax, %esi
leaq -0x338(%rbp), %rdi
movq %rdi, -0x718(%rbp)
callq 0x3cf40
movq -0x720(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x718(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x70c(%rbp), %edx
movq -0x708(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3c5b4
leaq -0x338(%rbp), %rax
movq %rax, -0x340(%rbp)
movq -0x340(%rbp), %rdi
callq 0x3d210
movq %rax, -0x348(%rbp)
movq -0x340(%rbp), %rdi
callq 0x3d240
movq %rax, -0x350(%rbp)
leaq -0x348(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3c601
jmp 0x3c657
leaq -0x348(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x354(%rbp)
leaq -0x354(%rbp), %rsi
callq 0x3d2d0
jmp 0x3c62a
jmp 0x3c62c
leaq -0x348(%rbp), %rdi
callq 0x3d3b0
jmp 0x3c5e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x338(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x338(%rbp), %rdi
callq 0xee40
movl -0x320(%rbp), %eax
movq %rax, -0x728(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x728(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x3c7f2
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x730(%rbp)
movl -0x320(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x730(%rbp), %rdi
movl (%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3c7f2
movl -0x14(%rbp), %eax
movl %eax, -0x73c(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x738(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x750(%rbp)
movl -0x320(%rbp), %eax
movl %eax, %esi
leaq -0x370(%rbp), %rdi
movq %rdi, -0x748(%rbp)
callq 0x3cf40
movq -0x750(%rbp), %rdi
movl (%rax), %eax
incl %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x748(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x73c(%rbp), %edx
movq -0x738(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3c743
leaq -0x370(%rbp), %rax
movq %rax, -0x378(%rbp)
movq -0x378(%rbp), %rdi
callq 0x3d210
movq %rax, -0x380(%rbp)
movq -0x378(%rbp), %rdi
callq 0x3d240
movq %rax, -0x388(%rbp)
leaq -0x380(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3c790
jmp 0x3c7e6
leaq -0x380(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x38c(%rbp)
leaq -0x38c(%rbp), %rsi
callq 0x3d2d0
jmp 0x3c7b9
jmp 0x3c7bb
leaq -0x380(%rbp), %rdi
callq 0x3d3b0
jmp 0x3c777
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x370(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x370(%rbp), %rdi
callq 0xee40
jmp 0x3c7f4
movl -0x320(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x320(%rbp)
jmp 0x3c4df
jmp 0x3ce79
movl $0x0, -0x390(%rbp)
movl -0x390(%rbp), %eax
movq %rax, -0x758(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x758(%rbp), %rax
cmpq %rcx, %rax
jae 0x3cb40
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x760(%rbp)
movl -0x390(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x760(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3c99b
movl -0x14(%rbp), %eax
movl %eax, -0x76c(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x768(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x780(%rbp)
movl -0x390(%rbp), %eax
movl %eax, %esi
leaq -0x3a8(%rbp), %rdi
movq %rdi, -0x778(%rbp)
callq 0x3cf40
movq -0x780(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x778(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x76c(%rbp), %edx
movq -0x768(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3c8ec
leaq -0x3a8(%rbp), %rax
movq %rax, -0x3b0(%rbp)
movq -0x3b0(%rbp), %rdi
callq 0x3d210
movq %rax, -0x3b8(%rbp)
movq -0x3b0(%rbp), %rdi
callq 0x3d240
movq %rax, -0x3c0(%rbp)
leaq -0x3b8(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3c939
jmp 0x3c98f
leaq -0x3b8(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x3c4(%rbp)
leaq -0x3c4(%rbp), %rsi
callq 0x3d2d0
jmp 0x3c962
jmp 0x3c964
leaq -0x3b8(%rbp), %rdi
callq 0x3d3b0
jmp 0x3c920
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x3a8(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x3a8(%rbp), %rdi
callq 0xee40
movl -0x390(%rbp), %eax
movq %rax, -0x788(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x788(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x3cb2a
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x790(%rbp)
movl -0x390(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x790(%rbp), %rdi
movl (%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3cb2a
movl -0x14(%rbp), %eax
movl %eax, -0x79c(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x798(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x7b0(%rbp)
movl -0x390(%rbp), %eax
movl %eax, %esi
leaq -0x3e0(%rbp), %rdi
movq %rdi, -0x7a8(%rbp)
callq 0x3cf40
movq -0x7b0(%rbp), %rdi
movl (%rax), %eax
incl %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x7a8(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x79c(%rbp), %edx
movq -0x798(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3ca7b
leaq -0x3e0(%rbp), %rax
movq %rax, -0x3e8(%rbp)
movq -0x3e8(%rbp), %rdi
callq 0x3d210
movq %rax, -0x3f0(%rbp)
movq -0x3e8(%rbp), %rdi
callq 0x3d240
movq %rax, -0x3f8(%rbp)
leaq -0x3f0(%rbp), %rdi
leaq -0x3f8(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3cac8
jmp 0x3cb1e
leaq -0x3f0(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x3fc(%rbp)
leaq -0x3fc(%rbp), %rsi
callq 0x3d2d0
jmp 0x3caf1
jmp 0x3caf3
leaq -0x3f0(%rbp), %rdi
callq 0x3d3b0
jmp 0x3caaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x3e0(%rbp), %rdi
callq 0xee40
jmp 0x3cb2c
movl -0x390(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x390(%rbp)
jmp 0x3c817
jmp 0x3ce79
movl $0x0, -0x400(%rbp)
movl -0x400(%rbp), %eax
movq %rax, -0x7b8(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x7b8(%rbp), %rax
cmpq %rcx, %rax
jae 0x3ce75
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x7c0(%rbp)
movl -0x400(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x7c0(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3ccd3
movl -0x14(%rbp), %eax
movl %eax, -0x7cc(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x7c8(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x7e0(%rbp)
movl -0x400(%rbp), %eax
movl %eax, %esi
leaq -0x418(%rbp), %rdi
movq %rdi, -0x7d8(%rbp)
callq 0x3cf40
movq -0x7e0(%rbp), %rdi
movl (%rax), %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x7d8(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x7cc(%rbp), %edx
movq -0x7c8(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3cc24
leaq -0x418(%rbp), %rax
movq %rax, -0x420(%rbp)
movq -0x420(%rbp), %rdi
callq 0x3d210
movq %rax, -0x428(%rbp)
movq -0x420(%rbp), %rdi
callq 0x3d240
movq %rax, -0x430(%rbp)
leaq -0x428(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3cc71
jmp 0x3ccc7
leaq -0x428(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x434(%rbp)
leaq -0x434(%rbp), %rsi
callq 0x3d2d0
jmp 0x3cc9a
jmp 0x3cc9c
leaq -0x428(%rbp), %rdi
callq 0x3d3b0
jmp 0x3cc58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x418(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x418(%rbp), %rdi
callq 0xee40
movl -0x400(%rbp), %eax
movq %rax, -0x7e8(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3d1f0
movq %rax, %rcx
movq -0x7e8(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x3ce5f
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x7f0(%rbp)
movl -0x400(%rbp), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x3cf40
movq -0x7f0(%rbp), %rdi
movl (%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x3d6f0
cmpl $-0x1, (%rax)
je 0x3ce5f
movl -0x14(%rbp), %eax
movl %eax, -0x7fc(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x7f8(%rbp)
movq -0x30(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x810(%rbp)
movl -0x400(%rbp), %eax
movl %eax, %esi
leaq -0x450(%rbp), %rdi
movq %rdi, -0x808(%rbp)
callq 0x3cf40
movq -0x810(%rbp), %rdi
movl (%rax), %eax
incl %eax
movl %eax, %esi
callq 0x3d6f0
movq -0x808(%rbp), %rdi
movq -0x480(%rbp), %rsi
movl -0x7fc(%rbp), %edx
movq -0x7f8(%rbp), %rcx
movl (%rax), %r8d
callq 0x3ac20
jmp 0x3cdb3
leaq -0x450(%rbp), %rax
movq %rax, -0x458(%rbp)
movq -0x458(%rbp), %rdi
callq 0x3d210
movq %rax, -0x460(%rbp)
movq -0x458(%rbp), %rdi
callq 0x3d240
movq %rax, -0x468(%rbp)
leaq -0x460(%rbp), %rdi
leaq -0x468(%rbp), %rsi
callq 0x3d270
testb $0x1, %al
jne 0x3ce00
jmp 0x3ce53
leaq -0x460(%rbp), %rdi
callq 0x3d2b0
movq -0x478(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x46c(%rbp)
leaq -0x46c(%rbp), %rsi
callq 0x3d2d0
jmp 0x3ce29
jmp 0x3ce2b
leaq -0x460(%rbp), %rdi
callq 0x3d3b0
jmp 0x3cde7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x450(%rbp), %rdi
callq 0xee40
jmp 0x3ce8e
leaq -0x450(%rbp), %rdi
callq 0xee40
jmp 0x3ce61
movl -0x400(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x400(%rbp)
jmp 0x3cb4f
jmp 0x3ce79
jmp 0x3ce79
movb $0x1, -0x31(%rbp)
leaq -0x50(%rbp), %rdi
callq 0xee40
testb $0x1, -0x31(%rbp)
jne 0x3ceb1
jmp 0x3cea5
leaq -0x50(%rbp), %rdi
callq 0xee40
movq -0x478(%rbp), %rdi
callq 0xee40
jmp 0x3cec1
movq -0x478(%rbp), %rdi
callq 0xee40
movq -0x488(%rbp), %rax
addq $0x810, %rsp            # imm = 0x810
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x6890
nopw (%rax,%rax)