// File: /workspace/github_c_makefile_star2_O0/g3ida[P]g3idaCompiler/vm.cpp
// Function: main
int main(int argc, char* argv[])
{
    if(argc <= 1) {
        printf(" g3idaMachine: fatal error no input files\n");
        return 0;
    }

    input = fopen(argv[1], "r");
    if(input == NULL) {
        printf(" g3idaMachine: fatal error file not found %s\n", argv[1]);
        return -1;
    }

    while(true) {
        Inst is = getNextInst();
        if(is.ins == NUM_ELEMENTS) {break;}
        if(is.ins == ETIQ)
        {
            etiq[is.value] = instr.size();
        }
        instr.push_back(is);
    }

    unsigned int cc=0;
    while(cc !=instr.size()) {
        Inst i, j, k;
        //if(!s.empty())
        //cout << s.top().value << "++++"<<endl;
        //cout << s.size()<<endl;

        switch(instr[cc].ins) {
        case EMPILER: s.push(instr[cc]); break;
        case VALEURD: instr[cc].value = memory[instr[cc].s]; s.push(instr[cc]); break;
        case VALEURG: s.push(instr[cc]); break;
        case DEPILER: s.pop(); break;
        case AFFECT:
            i = s.top();s.pop();
            j = s.top();s.pop();
            memory[j.s] = i.value;
            break;
        case COPIER:
            i = s.top();
            s.push(i);
            break;
        case MULT:
            i = s.top();s.pop();
            j = s.top(); s.pop();
            k.value = j.value*i.value;
            k.ins = EMPILER;
            s.push(k);
            break;
        case DIV:
            i = s.top();s.pop();
            j = s.top(); s.pop();
            k.value = j.value/i.value;
            k.ins = EMPILER;
            s.push(k);
            break;
        case PLUS:
            i = s.top();s.pop();
            j = s.top(); s.pop();
            k.value = j.value+i.value;
            k.ins = EMPILER;
            s.push(k);
            break;
        case OR:
            i = s.top();s.pop();
            j = s.top(); s.pop();
            k.value = j.value||i.value;
            k.ins = EMPILER;
            s.push(k);
            break;
        case AND:
            i = s.top();s.pop();
            j = s.top(); s.pop();
            k.value = j.value&&i.value;
            k.ins = EMPILER;
            s.push(k);
            break;
        case MINUS:
            i = s.top();s.pop();
            j = s.top(); s.pop();
            k.value = j.value-i.value;
            k.ins = EMPILER;
            s.push(k);
            break;
        case MOD:
            i = s.top();s.pop();
            j = s.top(); s.pop();
            k.value = j.value%i.value;
            k.ins = EMPILER;
            s.push(k);
            break;
        case ETIQ:
            break;
        case ALLER_A:
            cc = etiq[instr[cc].value];
            break;
        case ALLER_SI_FAUX:
            i = s.top();
            s.pop();
            if(i.value==0) {
                cc = etiq[instr[cc].value];
            }
            break;
        case ALLER_SI_VRAI:
            i = s.top();
            s.pop();
            if(i.value) {
                cc = etiq[instr[cc].value];
            }
            break;
        case HALTE:
            cc = instr.size();
            break;
        case COMPARER_SI_SUP:
            i = s.top();s.pop();
            j = s.top(); s.pop();
            k.ins = EMPILER;
            k.value = 0;
            if(j.value > i.value) {
                k.value = 1;
            }
            s.push(k);
            break;
        case COMPARER_SI_INF:
            i = s.top();s.pop();
            j = s.top(); s.pop();
            k.ins = EMPILER;
            k.value = 0;
            if(j.value < i.value) {
                k.value = 1;
            }
            s.push(k);
            break;
        case COMPARER_SI_EGAL:
            i = s.top();s.pop();
            j = s.top(); s.pop();
            k.ins = EMPILER;
            k.value = 0;
            if(i.value == j.value) {
                k.value = 1;
            }
            s.push(k);
            break;
        case READ:
            cin >> memory[s.top().s];
            s.pop();
            break;
        case WRITE:
            cout << s.top().value;
            s.pop();
            break;
        case READLN:
            cin >> memory[s.top().s];
            s.pop();
            cin.ignore();
            break;
        case WRITELN:
            cout << s.top().value<<endl;
            s.pop();
            break;
        default:
            break;
        }
        cc++;
    }

    //system("PAUSE");
    fclose(input);

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x260, %rsp            # imm = 0x260
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x1, -0x8(%rbp)
jg 0x2829
leaq 0x6853(%rip), %rdi      # 0x9069
movb $0x0, %al
callq 0x2050
movl $0x0, -0x4(%rbp)
jmp 0x3598
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x68b2(%rip), %rsi      # 0x90ea
callq 0x21a0
movq %rax, 0xbb1c(%rip)      # 0xe360
cmpq $0x0, 0xbb14(%rip)      # 0xe360
jne 0x2870
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x6837(%rip), %rdi      # 0x9094
movb $0x0, %al
callq 0x2050
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x3598
jmp 0x2872
leaq -0x40(%rbp), %rdi
callq 0x2480
cmpl $0x19, -0x18(%rbp)
jne 0x288a
movl $0x3, -0x44(%rbp)
jmp 0x28ff
cmpl $0xd, -0x18(%rbp)
jne 0x28e6
leaq 0xba61(%rip), %rdi      # 0xe2f8
callq 0x3830
movl %eax, -0xf4(%rbp)
leaq 0xbaef(%rip), %rdi      # 0xe398
leaq -0x40(%rbp), %rsi
callq 0x3860
movq %rax, -0xf0(%rbp)
jmp 0x28bb
movq -0xf0(%rbp), %rax
movl -0xf4(%rbp), %ecx
movl %ecx, (%rax)
jmp 0x28e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x3810
jmp 0x35a4
leaq 0xba0b(%rip), %rdi      # 0xe2f8
leaq -0x40(%rbp), %rsi
callq 0x3940
jmp 0x28f8
movl $0x0, -0x44(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x3810
movl -0x44(%rbp), %eax
testl %eax, %eax
je 0x2913
jmp 0x2911
jmp 0x2918
jmp 0x2872
movl $0x0, -0x58(%rbp)
movl -0x58(%rbp), %eax
movq %rax, -0x100(%rbp)
leaq 0xb9c8(%rip), %rdi      # 0xe2f8
callq 0x3830
movq %rax, %rcx
movq -0x100(%rbp), %rax
cmpq %rcx, %rax
je 0x3585
leaq -0x88(%rbp), %rdi
callq 0x3700
leaq -0xb8(%rbp), %rdi
callq 0x3700
leaq -0xe8(%rbp), %rdi
callq 0x3700
movl -0x58(%rbp), %eax
movl %eax, %esi
leaq 0xb980(%rip), %rdi      # 0xe2f8
callq 0x39b0
movl 0x28(%rax), %eax
movq %rax, -0x108(%rbp)
subq $0x18, %rax
ja 0x3551
movq -0x108(%rbp), %rax
leaq 0x6665(%rip), %rcx      # 0x9004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl -0x58(%rbp), %eax
movl %eax, %esi
leaq 0xb944(%rip), %rdi      # 0xe2f8
callq 0x39b0
movq %rax, %rsi
leaq 0xb94d(%rip), %rdi      # 0xe310
callq 0x39d0
jmp 0x29ca
jmp 0x3553
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x3810
leaq -0xb8(%rbp), %rdi
callq 0x3810
leaq -0x88(%rbp), %rdi
callq 0x3810
jmp 0x35a4
movl -0x58(%rbp), %eax
movl %eax, %esi
leaq 0xb8e8(%rip), %rdi      # 0xe2f8
callq 0x39b0
movq %rax, %rsi
addq $0x8, %rsi
leaq 0xb945(%rip), %rdi      # 0xe368
callq 0x3730
movq %rax, -0x110(%rbp)
jmp 0x2a31
movq -0x110(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x11c(%rbp)
movl -0x58(%rbp), %eax
movl %eax, %esi
leaq 0xb8ac(%rip), %rdi      # 0xe2f8
movq %rdi, -0x118(%rbp)
callq 0x39b0
movl -0x11c(%rbp), %ecx
movq -0x118(%rbp), %rdi
movl %ecx, (%rax)
movl -0x58(%rbp), %eax
movl %eax, %esi
callq 0x39b0
movq %rax, %rsi
leaq 0xb895(%rip), %rdi      # 0xe310
callq 0x39d0
jmp 0x2a82
jmp 0x3553
movl -0x58(%rbp), %eax
movl %eax, %esi
leaq 0xb865(%rip), %rdi      # 0xe2f8
callq 0x39b0
movq %rax, %rsi
leaq 0xb86e(%rip), %rdi      # 0xe310
callq 0x39d0
jmp 0x2aa9
jmp 0x3553
leaq 0xb85b(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2abc
jmp 0x3553
leaq 0xb848(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x128(%rbp)
jmp 0x2ad6
movq -0x128(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x2aeb
leaq 0xb81e(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2af9
leaq 0xb810(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x130(%rbp)
jmp 0x2b0e
movq -0x130(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3a40
jmp 0x2b23
leaq 0xb7e6(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2b31
movl -0x88(%rbp), %eax
movl %eax, -0x13c(%rbp)
leaq -0xb0(%rbp), %rsi
leaq 0xb81d(%rip), %rdi      # 0xe368
callq 0x3730
movq %rax, -0x138(%rbp)
jmp 0x2b59
movq -0x138(%rbp), %rax
movl -0x13c(%rbp), %ecx
movl %ecx, (%rax)
jmp 0x3553
leaq 0xb79c(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x148(%rbp)
jmp 0x2b82
movq -0x148(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x2b97
leaq 0xb772(%rip), %rdi      # 0xe310
leaq -0x88(%rbp), %rsi
callq 0x39d0
jmp 0x2bac
jmp 0x3553
leaq 0xb758(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x150(%rbp)
jmp 0x2bc6
movq -0x150(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x2bdb
leaq 0xb72e(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2be9
leaq 0xb720(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x158(%rbp)
jmp 0x2bfe
movq -0x158(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3a40
jmp 0x2c13
leaq 0xb6f6(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2c21
movl -0xb8(%rbp), %eax
movl -0x88(%rbp), %ecx
imull %ecx, %eax
movl %eax, -0xe8(%rbp)
movl $0x0, -0xc0(%rbp)
leaq 0xb6c9(%rip), %rdi      # 0xe310
leaq -0xe8(%rbp), %rsi
callq 0x39d0
jmp 0x2c55
jmp 0x3553
leaq 0xb6af(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x160(%rbp)
jmp 0x2c6f
movq -0x160(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x2c84
leaq 0xb685(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2c92
leaq 0xb677(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x168(%rbp)
jmp 0x2ca7
movq -0x168(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3a40
jmp 0x2cbc
leaq 0xb64d(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2cca
movl -0xb8(%rbp), %eax
movl -0x88(%rbp), %ecx
cltd
idivl %ecx
movl %eax, -0xe8(%rbp)
movl $0x0, -0xc0(%rbp)
leaq 0xb620(%rip), %rdi      # 0xe310
leaq -0xe8(%rbp), %rsi
callq 0x39d0
jmp 0x2cfe
jmp 0x3553
leaq 0xb606(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x170(%rbp)
jmp 0x2d18
movq -0x170(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x2d2d
leaq 0xb5dc(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2d3b
leaq 0xb5ce(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x178(%rbp)
jmp 0x2d50
movq -0x178(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3a40
jmp 0x2d65
leaq 0xb5a4(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2d73
movl -0xb8(%rbp), %eax
movl -0x88(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0xe8(%rbp)
movl $0x0, -0xc0(%rbp)
leaq 0xb578(%rip), %rdi      # 0xe310
leaq -0xe8(%rbp), %rsi
callq 0x39d0
jmp 0x2da6
jmp 0x3553
leaq 0xb55e(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x180(%rbp)
jmp 0x2dc0
movq -0x180(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x2dd5
leaq 0xb534(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2de3
leaq 0xb526(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x188(%rbp)
jmp 0x2df8
movq -0x188(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3a40
jmp 0x2e0d
leaq 0xb4fc(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2e1b
movb $0x1, %al
cmpl $0x0, -0xb8(%rbp)
movb %al, -0x189(%rbp)
jne 0x2e3c
cmpl $0x0, -0x88(%rbp)
setne %al
movb %al, -0x189(%rbp)
movb -0x189(%rbp), %al
movzbl %al, %eax
andl $0x1, %eax
movl %eax, -0xe8(%rbp)
movl $0x0, -0xc0(%rbp)
leaq 0xb4b1(%rip), %rdi      # 0xe310
leaq -0xe8(%rbp), %rsi
callq 0x39d0
jmp 0x2e6d
jmp 0x3553
leaq 0xb497(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x198(%rbp)
jmp 0x2e87
movq -0x198(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x2e9c
leaq 0xb46d(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2eaa
leaq 0xb45f(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x1a0(%rbp)
jmp 0x2ebf
movq -0x1a0(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3a40
jmp 0x2ed4
leaq 0xb435(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2ee2
xorl %eax, %eax
cmpl $0x0, -0xb8(%rbp)
movb %al, -0x1a1(%rbp)
je 0x2f03
cmpl $0x0, -0x88(%rbp)
setne %al
movb %al, -0x1a1(%rbp)
movb -0x1a1(%rbp), %al
movzbl %al, %eax
andl $0x1, %eax
movl %eax, -0xe8(%rbp)
movl $0x0, -0xc0(%rbp)
leaq 0xb3ea(%rip), %rdi      # 0xe310
leaq -0xe8(%rbp), %rsi
callq 0x39d0
jmp 0x2f34
jmp 0x3553
leaq 0xb3d0(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x1b0(%rbp)
jmp 0x2f4e
movq -0x1b0(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x2f63
leaq 0xb3a6(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2f71
leaq 0xb398(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x1b8(%rbp)
jmp 0x2f86
movq -0x1b8(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3a40
jmp 0x2f9b
leaq 0xb36e(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x2fa9
movl -0xb8(%rbp), %eax
movl -0x88(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0xe8(%rbp)
movl $0x0, -0xc0(%rbp)
leaq 0xb342(%rip), %rdi      # 0xe310
leaq -0xe8(%rbp), %rsi
callq 0x39d0
jmp 0x2fdc
jmp 0x3553
leaq 0xb328(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x1c0(%rbp)
jmp 0x2ff6
movq -0x1c0(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x300b
leaq 0xb2fe(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x3019
leaq 0xb2f0(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x1c8(%rbp)
jmp 0x302e
movq -0x1c8(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3a40
jmp 0x3043
leaq 0xb2c6(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x3051
movl -0xb8(%rbp), %eax
movl -0x88(%rbp), %ecx
cltd
idivl %ecx
movl %edx, -0xe8(%rbp)
movl $0x0, -0xc0(%rbp)
leaq 0xb299(%rip), %rdi      # 0xe310
leaq -0xe8(%rbp), %rsi
callq 0x39d0
jmp 0x3085
jmp 0x3553
jmp 0x3553
movl -0x58(%rbp), %eax
movl %eax, %esi
leaq 0xb25d(%rip), %rdi      # 0xe2f8
callq 0x39b0
movq %rax, %rsi
leaq 0xb2ee(%rip), %rdi      # 0xe398
callq 0x3860
movq %rax, -0x1d0(%rbp)
jmp 0x30b8
movq -0x1d0(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x58(%rbp)
jmp 0x3553
leaq 0xb240(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x1d8(%rbp)
jmp 0x30de
movq -0x1d8(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x30f3
leaq 0xb216(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x3101
cmpl $0x0, -0x88(%rbp)
jne 0x313f
movl -0x58(%rbp), %eax
movl %eax, %esi
leaq 0xb1e2(%rip), %rdi      # 0xe2f8
callq 0x39b0
movq %rax, %rsi
leaq 0xb273(%rip), %rdi      # 0xe398
callq 0x3860
movq %rax, -0x1e0(%rbp)
jmp 0x3133
movq -0x1e0(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x58(%rbp)
jmp 0x3553
leaq 0xb1c5(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x1e8(%rbp)
jmp 0x3159
movq -0x1e8(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x316e
leaq 0xb19b(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x317c
cmpl $0x0, -0x88(%rbp)
je 0x31ba
movl -0x58(%rbp), %eax
movl %eax, %esi
leaq 0xb167(%rip), %rdi      # 0xe2f8
callq 0x39b0
movq %rax, %rsi
leaq 0xb1f8(%rip), %rdi      # 0xe398
callq 0x3860
movq %rax, -0x1f0(%rbp)
jmp 0x31ae
movq -0x1f0(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x58(%rbp)
jmp 0x3553
leaq 0xb132(%rip), %rdi      # 0xe2f8
callq 0x3830
movl %eax, -0x58(%rbp)
jmp 0x3553
leaq 0xb136(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x1f8(%rbp)
jmp 0x31e8
movq -0x1f8(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x31fd
leaq 0xb10c(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x320b
leaq 0xb0fe(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x200(%rbp)
jmp 0x3220
movq -0x200(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3a40
jmp 0x3235
leaq 0xb0d4(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x3243
movl $0x0, -0xc0(%rbp)
movl $0x0, -0xe8(%rbp)
movl -0xb8(%rbp), %eax
cmpl -0x88(%rbp), %eax
jle 0x326f
movl $0x1, -0xe8(%rbp)
leaq 0xb09a(%rip), %rdi      # 0xe310
leaq -0xe8(%rbp), %rsi
callq 0x39d0
jmp 0x3284
jmp 0x3553
leaq 0xb080(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x208(%rbp)
jmp 0x329e
movq -0x208(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x32b3
leaq 0xb056(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x32c1
leaq 0xb048(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x210(%rbp)
jmp 0x32d6
movq -0x210(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3a40
jmp 0x32eb
leaq 0xb01e(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x32f9
movl $0x0, -0xc0(%rbp)
movl $0x0, -0xe8(%rbp)
movl -0xb8(%rbp), %eax
cmpl -0x88(%rbp), %eax
jge 0x3325
movl $0x1, -0xe8(%rbp)
leaq 0xafe4(%rip), %rdi      # 0xe310
leaq -0xe8(%rbp), %rsi
callq 0x39d0
jmp 0x333a
jmp 0x3553
leaq 0xafca(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x218(%rbp)
jmp 0x3354
movq -0x218(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x3a40
jmp 0x3369
leaq 0xafa0(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x3377
leaq 0xaf92(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x220(%rbp)
jmp 0x338c
movq -0x220(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3a40
jmp 0x33a1
leaq 0xaf68(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x33af
movl $0x0, -0xc0(%rbp)
movl $0x0, -0xe8(%rbp)
movl -0x88(%rbp), %eax
cmpl -0xb8(%rbp), %eax
jne 0x33db
movl $0x1, -0xe8(%rbp)
leaq 0xaf2e(%rip), %rdi      # 0xe310
leaq -0xe8(%rbp), %rsi
callq 0x39d0
jmp 0x33f0
jmp 0x3553
leaq 0xaf14(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x228(%rbp)
jmp 0x340a
movq -0x228(%rbp), %rsi
addq $0x8, %rsi
leaq 0xaf4c(%rip), %rdi      # 0xe368
callq 0x3730
movq %rax, -0x230(%rbp)
jmp 0x342a
movq -0x230(%rbp), %rsi
movq 0xaba8(%rip), %rdi      # 0xdfe0
callq 0x20f0
jmp 0x343f
leaq 0xaeca(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x344d
jmp 0x3553
leaq 0xaeb7(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x238(%rbp)
jmp 0x3467
movq -0x238(%rbp), %rax
movl (%rax), %esi
movq 0xab59(%rip), %rdi      # 0xdfd0
callq 0x2240
jmp 0x347e
leaq 0xae8b(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x348c
jmp 0x3553
leaq 0xae78(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x240(%rbp)
jmp 0x34a6
movq -0x240(%rbp), %rsi
addq $0x8, %rsi
leaq 0xaeb0(%rip), %rdi      # 0xe368
callq 0x3730
movq %rax, -0x248(%rbp)
jmp 0x34c6
movq -0x248(%rbp), %rsi
movq 0xab0c(%rip), %rdi      # 0xdfe0
callq 0x20f0
jmp 0x34db
leaq 0xae2e(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x34e9
movq 0xaaf0(%rip), %rdi      # 0xdfe0
callq 0x2260
jmp 0x34f7
jmp 0x3553
leaq 0xae10(%rip), %rdi      # 0xe310
callq 0x3a20
movq %rax, -0x250(%rbp)
jmp 0x350e
movq -0x250(%rbp), %rax
movl (%rax), %esi
movq 0xaab2(%rip), %rdi      # 0xdfd0
callq 0x2240
movq %rax, -0x258(%rbp)
jmp 0x352c
movq -0x258(%rbp), %rdi
movq 0xaa86(%rip), %rsi      # 0xdfc0
callq 0x2190
jmp 0x3541
leaq 0xadc8(%rip), %rdi      # 0xe310
callq 0x3a00
jmp 0x354f
jmp 0x3553
jmp 0x3553
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x3810
leaq -0xb8(%rbp), %rdi
callq 0x3810
leaq -0x88(%rbp), %rdi
callq 0x3810
jmp 0x291f
movq 0xadd4(%rip), %rdi      # 0xe360
callq 0x2160
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x260, %rsp            # imm = 0x260
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x2250
nopl (%rax)