// File: sighingnow[P]compile-pascal/pl0_tac_gen.cpp
// Function: pl0_tac_cond_stmt(pl0_ast_cond_stmt const*)
void pl0_tac_cond_stmt(pl0_ast_cond_stmt const *stmt) {
    cout << __func__;

    int thenlabel = irb.makelabel(), elselabel, endlabel = irb.makelabel();
    
    auto lhs = pl0_tac_expr(stmt->cond->lhs);
    auto rhs = pl0_tac_expr(stmt->cond->rhs);
    // if (lhs.second != rhs.second) {
    //     pl0_ast_error(stmt->cond->loc, "compare two expressions with different types.");
    // }
    irb.emit("cmp", new Value(thenlabel, "integer"), lhs.first, rhs.first);

    if (stmt->else_block == nullptr) {
        elselabel = endlabel;
    }
    else {
        elselabel = irb.makelabel();
    }
    // reference: http://unixwiz.net/techtips/x86-jumps.html
    // +--------+------------------------------+-------------+--------------------+
    // |Instr   | Description                  | signed-ness | Flags              |
    // +--------+------------------------------+-------------+--------------------+
    // | JL/    | Jump if less                 | signed      | SF <> OF           |
    // | JNGE   | Jump if not greater or equal |             |                    |
    // +--------+------------------------------+-------------+--------------------+
    // | JGE/   | Jump if greater or equal     | signed      | SF = OF            |
    // | JNL    | Jump if not less             |             |                    |
    // +--------+------------------------------+-------------+--------------------+
    // | JLE/   | Jump if less or equal        | signed      | ZF = 1 or SF <> OF |
    // | JNG    | Jump if not greater          |             |                    |
    // +--------+------------------------------+-------------+--------------------+
    // | JG/    | Jump if greater              | signed      | ZF = 0 and SF = OF |
    // | JNLE   | Jump if not less or equal    |             |                    |
    // +--------+------------------------------+-------------+--------------------+
    if (stmt->cond->op->op == "<") {
        irb.emit("goto", new Value("jge", "string"), new Value(elselabel, "integer"));
    }
    else if (stmt->cond->op->op == "<=") {
        irb.emit("goto", new Value("jg", "string"), new Value(elselabel, "integer"));
    }
    else if (stmt->cond->op->op == ">") {
        irb.emit("goto", new Value("jle", "string"), new Value(elselabel, "integer"));
    }
    else if (stmt->cond->op->op == ">=") {
        irb.emit("goto", new Value("jl", "string"), new Value(elselabel, "integer"));
    }
    else if (stmt->cond->op->op == "=") {
        irb.emit("goto", new Value("jne", "string"), new Value(elselabel, "integer"));
    }
    else if (stmt->cond->op->op == "<>") {
        irb.emit("goto", new Value("je", "string"), new Value(elselabel, "integer"));
    }
    irb.emitlabel(thenlabel);
    pl0_tac_stmt(stmt->then_block);
    irb.emit("goto", new Value("jmp", "string"), new Value(endlabel, "integer"));
    if (stmt->else_block != nullptr) {
        irb.emitlabel(elselabel);
        pl0_tac_stmt(stmt->else_block);
        irb.emit("goto", new Value("jmp", "string"), new Value(endlabel, "integer"));
    }
    irb.emitlabel(endlabel);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x7c0, %rsp            # imm = 0x7C0
movq %rdi, -0x8(%rbp)
movq 0xabad2(%rip), %rdi     # 0x15efd8
leaq 0x3e722(%rip), %rsi     # 0xf1c2f
callq 0x5330
leaq 0xad1b7(%rip), %rdi     # 0x1606d0
movq %rdi, -0x5d0(%rbp)
callq 0xa01e0
movq -0x5d0(%rbp), %rdi
movl %eax, -0xc(%rbp)
callq 0xa01e0
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rsi
leaq -0x40(%rbp), %rdi
callq 0xba600
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rsi
leaq -0x68(%rbp), %rdi
callq 0xba600
jmp 0xb3563
leaq -0x99(%rbp), %rdi
movq %rdi, -0x5d8(%rbp)
callq 0x55d0
movq -0x5d8(%rbp), %rdx
leaq 0x3dc4a(%rip), %rsi     # 0xf11ce
leaq -0x98(%rbp), %rdi
callq 0x19840
jmp 0xb3592
movl $0x48, %edi
callq 0x5340
movq %rax, -0x5e0(%rbp)
jmp 0xb35a5
movb $0x1, -0xc2(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x5ec(%rbp)
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x5e8(%rbp)
callq 0x55d0
movq -0x5e8(%rbp), %rdx
leaq 0x3bc71(%rip), %rsi     # 0xef247
leaq -0xc0(%rbp), %rdi
callq 0x19840
jmp 0xb35e4
movl -0x5ec(%rbp), %esi
movq -0x5e0(%rbp), %rdi
leaq -0xc0(%rbp), %rdx
callq 0xbdfe0
jmp 0xb35ff
movq -0x5e0(%rbp), %rdx
movb $0x0, -0xc2(%rbp)
movq -0x40(%rbp), %rcx
movq -0x68(%rbp), %r8
leaq 0xad0b4(%rip), %rdi     # 0x1606d0
leaq -0x98(%rbp), %rsi
callq 0xbdf00
jmp 0xb362a
leaq -0xc0(%rbp), %rdi
callq 0x5200
leaq -0xc1(%rbp), %rdi
callq 0x53c0
leaq -0x98(%rbp), %rdi
callq 0x5200
leaq -0x99(%rbp), %rdi
callq 0x53c0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x28(%rax)
jne 0xb370e
movl -0x14(%rbp), %eax
movl %eax, -0x10(%rbp)
jmp 0xb373e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4f9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb36fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb36f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb36c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x5200
leaq -0xc1(%rbp), %rdi
callq 0x53c0
testb $0x1, -0xc2(%rbp)
jne 0xb36de
jmp 0xb36ef
movq -0x5e0(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb36f1
leaq -0x98(%rbp), %rdi
callq 0x5200
leaq -0x99(%rbp), %rdi
callq 0x53c0
jmp 0xb4f95
leaq 0xacfbb(%rip), %rdi     # 0x1606d0
callq 0xa01e0
movl %eax, -0x5f0(%rbp)
jmp 0xb3722
movl -0x5f0(%rbp), %eax
movl %eax, -0x10(%rbp)
jmp 0xb373e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4f95
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdi
addq $0x10, %rdi
leaq 0x3bd71(%rip), %rsi     # 0xef4c6
callq 0x2a580
movb %al, -0x5f1(%rbp)
jmp 0xb3762
movb -0x5f1(%rbp), %al
testb $0x1, %al
jne 0xb3771
jmp 0xb3a46
leaq -0xe9(%rbp), %rdi
movq %rdi, -0x600(%rbp)
callq 0x55d0
movq -0x600(%rbp), %rdx
leaq 0x3da40(%rip), %rsi     # 0xf11d2
leaq -0xe8(%rbp), %rdi
callq 0x19840
jmp 0xb37a0
movl $0x48, %edi
callq 0x5340
movq %rax, -0x608(%rbp)
jmp 0xb37b3
movb $0x1, -0x13a(%rbp)
leaq -0x111(%rbp), %rdi
movq %rdi, -0x610(%rbp)
callq 0x55d0
movq -0x610(%rbp), %rdx
leaq 0x3d9fc(%rip), %rsi     # 0xf11d7
leaq -0x110(%rbp), %rdi
callq 0x19840
jmp 0xb37e9
leaq -0x139(%rbp), %rdi
movq %rdi, -0x618(%rbp)
callq 0x55d0
movq -0x618(%rbp), %rdx
leaq 0x3e196(%rip), %rsi     # 0xf19a0
leaq -0x138(%rbp), %rdi
callq 0x19840
jmp 0xb3818
movq -0x608(%rbp), %rdi
leaq -0x110(%rbp), %rsi
leaq -0x138(%rbp), %rdx
callq 0xbeae0
jmp 0xb3834
movb $0x0, -0x13a(%rbp)
movl $0x48, %edi
callq 0x5340
movq %rax, -0x620(%rbp)
jmp 0xb384e
movb $0x1, -0x162(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0x62c(%rbp)
leaq -0x161(%rbp), %rdi
movq %rdi, -0x628(%rbp)
callq 0x55d0
movq -0x628(%rbp), %rdx
leaq 0x3b9c8(%rip), %rsi     # 0xef247
leaq -0x160(%rbp), %rdi
callq 0x19840
jmp 0xb388d
movl -0x62c(%rbp), %esi
movq -0x620(%rbp), %rdi
leaq -0x160(%rbp), %rdx
callq 0xbdfe0
jmp 0xb38a8
movq -0x620(%rbp), %rcx
movq -0x608(%rbp), %rdx
movb $0x0, -0x162(%rbp)
leaq 0xace0c(%rip), %rdi     # 0x1606d0
xorl %eax, %eax
movl %eax, %r8d
leaq -0xe8(%rbp), %rsi
callq 0xbdf00
jmp 0xb38d7
leaq -0x160(%rbp), %rdi
callq 0x5200
leaq -0x161(%rbp), %rdi
callq 0x53c0
leaq -0x138(%rbp), %rdi
callq 0x5200
leaq -0x139(%rbp), %rdi
callq 0x53c0
leaq -0x110(%rbp), %rdi
callq 0x5200
leaq -0x111(%rbp), %rdi
callq 0x53c0
leaq -0xe8(%rbp), %rdi
callq 0x5200
leaq -0xe9(%rbp), %rdi
callq 0x53c0
jmp 0xb4978
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb3a35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb3a29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb39ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb39e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb39db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb39b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x5200
leaq -0x161(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x162(%rbp)
jne 0xb39c8
jmp 0xb39d9
movq -0x620(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb39db
leaq -0x138(%rbp), %rdi
callq 0x5200
leaq -0x139(%rbp), %rdi
callq 0x53c0
leaq -0x110(%rbp), %rdi
callq 0x5200
leaq -0x111(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x13a(%rbp)
jne 0xb3a16
jmp 0xb3a27
movq -0x608(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb3a29
leaq -0xe8(%rbp), %rdi
callq 0x5200
leaq -0xe9(%rbp), %rdi
callq 0x53c0
jmp 0xb4f95
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdi
addq $0x10, %rdi
leaq 0x3ba60(%rip), %rsi     # 0xef4bd
callq 0x2a580
movb %al, -0x62d(%rbp)
jmp 0xb3a6a
movb -0x62d(%rbp), %al
testb $0x1, %al
jne 0xb3a79
jmp 0xb3d4e
leaq -0x189(%rbp), %rdi
movq %rdi, -0x638(%rbp)
callq 0x55d0
movq -0x638(%rbp), %rdx
leaq 0x3d738(%rip), %rsi     # 0xf11d2
leaq -0x188(%rbp), %rdi
callq 0x19840
jmp 0xb3aa8
movl $0x48, %edi
callq 0x5340
movq %rax, -0x640(%rbp)
jmp 0xb3abb
movb $0x1, -0x1da(%rbp)
leaq -0x1b1(%rbp), %rdi
movq %rdi, -0x648(%rbp)
callq 0x55d0
movq -0x648(%rbp), %rdx
leaq 0x3d6f8(%rip), %rsi     # 0xf11db
leaq -0x1b0(%rbp), %rdi
callq 0x19840
jmp 0xb3af1
leaq -0x1d9(%rbp), %rdi
movq %rdi, -0x650(%rbp)
callq 0x55d0
movq -0x650(%rbp), %rdx
leaq 0x3de8e(%rip), %rsi     # 0xf19a0
leaq -0x1d8(%rbp), %rdi
callq 0x19840
jmp 0xb3b20
movq -0x640(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
leaq -0x1d8(%rbp), %rdx
callq 0xbeae0
jmp 0xb3b3c
movb $0x0, -0x1da(%rbp)
movl $0x48, %edi
callq 0x5340
movq %rax, -0x658(%rbp)
jmp 0xb3b56
movb $0x1, -0x202(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0x664(%rbp)
leaq -0x201(%rbp), %rdi
movq %rdi, -0x660(%rbp)
callq 0x55d0
movq -0x660(%rbp), %rdx
leaq 0x3b6c0(%rip), %rsi     # 0xef247
leaq -0x200(%rbp), %rdi
callq 0x19840
jmp 0xb3b95
movl -0x664(%rbp), %esi
movq -0x658(%rbp), %rdi
leaq -0x200(%rbp), %rdx
callq 0xbdfe0
jmp 0xb3bb0
movq -0x658(%rbp), %rcx
movq -0x640(%rbp), %rdx
movb $0x0, -0x202(%rbp)
leaq 0xacb04(%rip), %rdi     # 0x1606d0
xorl %eax, %eax
movl %eax, %r8d
leaq -0x188(%rbp), %rsi
callq 0xbdf00
jmp 0xb3bdf
leaq -0x200(%rbp), %rdi
callq 0x5200
leaq -0x201(%rbp), %rdi
callq 0x53c0
leaq -0x1d8(%rbp), %rdi
callq 0x5200
leaq -0x1d9(%rbp), %rdi
callq 0x53c0
leaq -0x1b0(%rbp), %rdi
callq 0x5200
leaq -0x1b1(%rbp), %rdi
callq 0x53c0
leaq -0x188(%rbp), %rdi
callq 0x5200
leaq -0x189(%rbp), %rdi
callq 0x53c0
jmp 0xb4976
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb3d3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb3d31
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb3d07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb3cef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb3ce3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb3cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x5200
leaq -0x201(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x202(%rbp)
jne 0xb3cd0
jmp 0xb3ce1
movq -0x658(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb3ce3
leaq -0x1d8(%rbp), %rdi
callq 0x5200
leaq -0x1d9(%rbp), %rdi
callq 0x53c0
leaq -0x1b0(%rbp), %rdi
callq 0x5200
leaq -0x1b1(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x1da(%rbp)
jne 0xb3d1e
jmp 0xb3d2f
movq -0x640(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb3d31
leaq -0x188(%rbp), %rdi
callq 0x5200
leaq -0x189(%rbp), %rdi
callq 0x53c0
jmp 0xb4f95
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdi
addq $0x10, %rdi
leaq 0x3b75c(%rip), %rsi     # 0xef4c1
callq 0x2a580
movb %al, -0x665(%rbp)
jmp 0xb3d72
movb -0x665(%rbp), %al
testb $0x1, %al
jne 0xb3d81
jmp 0xb4056
leaq -0x229(%rbp), %rdi
movq %rdi, -0x670(%rbp)
callq 0x55d0
movq -0x670(%rbp), %rdx
leaq 0x3d430(%rip), %rsi     # 0xf11d2
leaq -0x228(%rbp), %rdi
callq 0x19840
jmp 0xb3db0
movl $0x48, %edi
callq 0x5340
movq %rax, -0x678(%rbp)
jmp 0xb3dc3
movb $0x1, -0x27a(%rbp)
leaq -0x251(%rbp), %rdi
movq %rdi, -0x680(%rbp)
callq 0x55d0
movq -0x680(%rbp), %rdx
leaq 0x3d3f3(%rip), %rsi     # 0xf11de
leaq -0x250(%rbp), %rdi
callq 0x19840
jmp 0xb3df9
leaq -0x279(%rbp), %rdi
movq %rdi, -0x688(%rbp)
callq 0x55d0
movq -0x688(%rbp), %rdx
leaq 0x3db86(%rip), %rsi     # 0xf19a0
leaq -0x278(%rbp), %rdi
callq 0x19840
jmp 0xb3e28
movq -0x678(%rbp), %rdi
leaq -0x250(%rbp), %rsi
leaq -0x278(%rbp), %rdx
callq 0xbeae0
jmp 0xb3e44
movb $0x0, -0x27a(%rbp)
movl $0x48, %edi
callq 0x5340
movq %rax, -0x690(%rbp)
jmp 0xb3e5e
movb $0x1, -0x2a2(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0x69c(%rbp)
leaq -0x2a1(%rbp), %rdi
movq %rdi, -0x698(%rbp)
callq 0x55d0
movq -0x698(%rbp), %rdx
leaq 0x3b3b8(%rip), %rsi     # 0xef247
leaq -0x2a0(%rbp), %rdi
callq 0x19840
jmp 0xb3e9d
movl -0x69c(%rbp), %esi
movq -0x690(%rbp), %rdi
leaq -0x2a0(%rbp), %rdx
callq 0xbdfe0
jmp 0xb3eb8
movq -0x690(%rbp), %rcx
movq -0x678(%rbp), %rdx
movb $0x0, -0x2a2(%rbp)
leaq 0xac7fc(%rip), %rdi     # 0x1606d0
xorl %eax, %eax
movl %eax, %r8d
leaq -0x228(%rbp), %rsi
callq 0xbdf00
jmp 0xb3ee7
leaq -0x2a0(%rbp), %rdi
callq 0x5200
leaq -0x2a1(%rbp), %rdi
callq 0x53c0
leaq -0x278(%rbp), %rdi
callq 0x5200
leaq -0x279(%rbp), %rdi
callq 0x53c0
leaq -0x250(%rbp), %rdi
callq 0x5200
leaq -0x251(%rbp), %rdi
callq 0x53c0
leaq -0x228(%rbp), %rdi
callq 0x5200
leaq -0x229(%rbp), %rdi
callq 0x53c0
jmp 0xb4974
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4045
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4039
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb400f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb3ff7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb3feb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb3fc1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x5200
leaq -0x2a1(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x2a2(%rbp)
jne 0xb3fd8
jmp 0xb3fe9
movq -0x690(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb3feb
leaq -0x278(%rbp), %rdi
callq 0x5200
leaq -0x279(%rbp), %rdi
callq 0x53c0
leaq -0x250(%rbp), %rdi
callq 0x5200
leaq -0x251(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x27a(%rbp)
jne 0xb4026
jmp 0xb4037
movq -0x678(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb4039
leaq -0x228(%rbp), %rdi
callq 0x5200
leaq -0x229(%rbp), %rdi
callq 0x53c0
jmp 0xb4f95
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdi
addq $0x10, %rdi
leaq 0x3b456(%rip), %rsi     # 0xef4c3
callq 0x2a580
movb %al, -0x69d(%rbp)
jmp 0xb407a
movb -0x69d(%rbp), %al
testb $0x1, %al
jne 0xb4089
jmp 0xb435e
leaq -0x2c9(%rbp), %rdi
movq %rdi, -0x6a8(%rbp)
callq 0x55d0
movq -0x6a8(%rbp), %rdx
leaq 0x3d128(%rip), %rsi     # 0xf11d2
leaq -0x2c8(%rbp), %rdi
callq 0x19840
jmp 0xb40b8
movl $0x48, %edi
callq 0x5340
movq %rax, -0x6b0(%rbp)
jmp 0xb40cb
movb $0x1, -0x31a(%rbp)
leaq -0x2f1(%rbp), %rdi
movq %rdi, -0x6b8(%rbp)
callq 0x55d0
movq -0x6b8(%rbp), %rdx
leaq 0x3d0ef(%rip), %rsi     # 0xf11e2
leaq -0x2f0(%rbp), %rdi
callq 0x19840
jmp 0xb4101
leaq -0x319(%rbp), %rdi
movq %rdi, -0x6c0(%rbp)
callq 0x55d0
movq -0x6c0(%rbp), %rdx
leaq 0x3d87e(%rip), %rsi     # 0xf19a0
leaq -0x318(%rbp), %rdi
callq 0x19840
jmp 0xb4130
movq -0x6b0(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
leaq -0x318(%rbp), %rdx
callq 0xbeae0
jmp 0xb414c
movb $0x0, -0x31a(%rbp)
movl $0x48, %edi
callq 0x5340
movq %rax, -0x6c8(%rbp)
jmp 0xb4166
movb $0x1, -0x342(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0x6d4(%rbp)
leaq -0x341(%rbp), %rdi
movq %rdi, -0x6d0(%rbp)
callq 0x55d0
movq -0x6d0(%rbp), %rdx
leaq 0x3b0b0(%rip), %rsi     # 0xef247
leaq -0x340(%rbp), %rdi
callq 0x19840
jmp 0xb41a5
movl -0x6d4(%rbp), %esi
movq -0x6c8(%rbp), %rdi
leaq -0x340(%rbp), %rdx
callq 0xbdfe0
jmp 0xb41c0
movq -0x6c8(%rbp), %rcx
movq -0x6b0(%rbp), %rdx
movb $0x0, -0x342(%rbp)
leaq 0xac4f4(%rip), %rdi     # 0x1606d0
xorl %eax, %eax
movl %eax, %r8d
leaq -0x2c8(%rbp), %rsi
callq 0xbdf00
jmp 0xb41ef
leaq -0x340(%rbp), %rdi
callq 0x5200
leaq -0x341(%rbp), %rdi
callq 0x53c0
leaq -0x318(%rbp), %rdi
callq 0x5200
leaq -0x319(%rbp), %rdi
callq 0x53c0
leaq -0x2f0(%rbp), %rdi
callq 0x5200
leaq -0x2f1(%rbp), %rdi
callq 0x53c0
leaq -0x2c8(%rbp), %rdi
callq 0x5200
leaq -0x2c9(%rbp), %rdi
callq 0x53c0
jmp 0xb4972
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb434d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4341
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4317
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb42ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb42f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb42c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x340(%rbp), %rdi
callq 0x5200
leaq -0x341(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x342(%rbp)
jne 0xb42e0
jmp 0xb42f1
movq -0x6c8(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb42f3
leaq -0x318(%rbp), %rdi
callq 0x5200
leaq -0x319(%rbp), %rdi
callq 0x53c0
leaq -0x2f0(%rbp), %rdi
callq 0x5200
leaq -0x2f1(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x31a(%rbp)
jne 0xb432e
jmp 0xb433f
movq -0x6b0(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb4341
leaq -0x2c8(%rbp), %rdi
callq 0x5200
leaq -0x2c9(%rbp), %rdi
callq 0x53c0
jmp 0xb4f95
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdi
addq $0x10, %rdi
leaq 0x3b0a7(%rip), %rsi     # 0xef41c
callq 0x2a580
movb %al, -0x6d5(%rbp)
jmp 0xb4382
movb -0x6d5(%rbp), %al
testb $0x1, %al
jne 0xb4391
jmp 0xb4666
leaq -0x369(%rbp), %rdi
movq %rdi, -0x6e0(%rbp)
callq 0x55d0
movq -0x6e0(%rbp), %rdx
leaq 0x3ce20(%rip), %rsi     # 0xf11d2
leaq -0x368(%rbp), %rdi
callq 0x19840
jmp 0xb43c0
movl $0x48, %edi
callq 0x5340
movq %rax, -0x6e8(%rbp)
jmp 0xb43d3
movb $0x1, -0x3ba(%rbp)
leaq -0x391(%rbp), %rdi
movq %rdi, -0x6f0(%rbp)
callq 0x55d0
movq -0x6f0(%rbp), %rdx
leaq 0x3cdea(%rip), %rsi     # 0xf11e5
leaq -0x390(%rbp), %rdi
callq 0x19840
jmp 0xb4409
leaq -0x3b9(%rbp), %rdi
movq %rdi, -0x6f8(%rbp)
callq 0x55d0
movq -0x6f8(%rbp), %rdx
leaq 0x3d576(%rip), %rsi     # 0xf19a0
leaq -0x3b8(%rbp), %rdi
callq 0x19840
jmp 0xb4438
movq -0x6e8(%rbp), %rdi
leaq -0x390(%rbp), %rsi
leaq -0x3b8(%rbp), %rdx
callq 0xbeae0
jmp 0xb4454
movb $0x0, -0x3ba(%rbp)
movl $0x48, %edi
callq 0x5340
movq %rax, -0x700(%rbp)
jmp 0xb446e
movb $0x1, -0x3e2(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0x70c(%rbp)
leaq -0x3e1(%rbp), %rdi
movq %rdi, -0x708(%rbp)
callq 0x55d0
movq -0x708(%rbp), %rdx
leaq 0x3ada8(%rip), %rsi     # 0xef247
leaq -0x3e0(%rbp), %rdi
callq 0x19840
jmp 0xb44ad
movl -0x70c(%rbp), %esi
movq -0x700(%rbp), %rdi
leaq -0x3e0(%rbp), %rdx
callq 0xbdfe0
jmp 0xb44c8
movq -0x700(%rbp), %rcx
movq -0x6e8(%rbp), %rdx
movb $0x0, -0x3e2(%rbp)
leaq 0xac1ec(%rip), %rdi     # 0x1606d0
xorl %eax, %eax
movl %eax, %r8d
leaq -0x368(%rbp), %rsi
callq 0xbdf00
jmp 0xb44f7
leaq -0x3e0(%rbp), %rdi
callq 0x5200
leaq -0x3e1(%rbp), %rdi
callq 0x53c0
leaq -0x3b8(%rbp), %rdi
callq 0x5200
leaq -0x3b9(%rbp), %rdi
callq 0x53c0
leaq -0x390(%rbp), %rdi
callq 0x5200
leaq -0x391(%rbp), %rdi
callq 0x53c0
leaq -0x368(%rbp), %rdi
callq 0x5200
leaq -0x369(%rbp), %rdi
callq 0x53c0
jmp 0xb4970
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4655
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4649
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb461f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4607
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb45fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb45d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0x5200
leaq -0x3e1(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x3e2(%rbp)
jne 0xb45e8
jmp 0xb45f9
movq -0x700(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb45fb
leaq -0x3b8(%rbp), %rdi
callq 0x5200
leaq -0x3b9(%rbp), %rdi
callq 0x53c0
leaq -0x390(%rbp), %rdi
callq 0x5200
leaq -0x391(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x3ba(%rbp)
jne 0xb4636
jmp 0xb4647
movq -0x6e8(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb4649
leaq -0x368(%rbp), %rdi
callq 0x5200
leaq -0x369(%rbp), %rdi
callq 0x53c0
jmp 0xb4f95
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rdi
addq $0x10, %rdi
leaq 0x3ae43(%rip), %rsi     # 0xef4c0
callq 0x2a580
movb %al, -0x70d(%rbp)
jmp 0xb468a
movb -0x70d(%rbp), %al
testb $0x1, %al
jne 0xb4699
jmp 0xb496e
leaq -0x409(%rbp), %rdi
movq %rdi, -0x718(%rbp)
callq 0x55d0
movq -0x718(%rbp), %rdx
leaq 0x3cb18(%rip), %rsi     # 0xf11d2
leaq -0x408(%rbp), %rdi
callq 0x19840
jmp 0xb46c8
movl $0x48, %edi
callq 0x5340
movq %rax, -0x720(%rbp)
jmp 0xb46db
movb $0x1, -0x45a(%rbp)
leaq -0x431(%rbp), %rdi
movq %rdi, -0x728(%rbp)
callq 0x55d0
movq -0x728(%rbp), %rdx
leaq 0x3cae6(%rip), %rsi     # 0xf11e9
leaq -0x430(%rbp), %rdi
callq 0x19840
jmp 0xb4711
leaq -0x459(%rbp), %rdi
movq %rdi, -0x730(%rbp)
callq 0x55d0
movq -0x730(%rbp), %rdx
leaq 0x3d26e(%rip), %rsi     # 0xf19a0
leaq -0x458(%rbp), %rdi
callq 0x19840
jmp 0xb4740
movq -0x720(%rbp), %rdi
leaq -0x430(%rbp), %rsi
leaq -0x458(%rbp), %rdx
callq 0xbeae0
jmp 0xb475c
movb $0x0, -0x45a(%rbp)
movl $0x48, %edi
callq 0x5340
movq %rax, -0x738(%rbp)
jmp 0xb4776
movb $0x1, -0x482(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0x744(%rbp)
leaq -0x481(%rbp), %rdi
movq %rdi, -0x740(%rbp)
callq 0x55d0
movq -0x740(%rbp), %rdx
leaq 0x3aaa0(%rip), %rsi     # 0xef247
leaq -0x480(%rbp), %rdi
callq 0x19840
jmp 0xb47b5
movl -0x744(%rbp), %esi
movq -0x738(%rbp), %rdi
leaq -0x480(%rbp), %rdx
callq 0xbdfe0
jmp 0xb47d0
movq -0x738(%rbp), %rcx
movq -0x720(%rbp), %rdx
movb $0x0, -0x482(%rbp)
leaq 0xabee4(%rip), %rdi     # 0x1606d0
xorl %eax, %eax
movl %eax, %r8d
leaq -0x408(%rbp), %rsi
callq 0xbdf00
jmp 0xb47ff
leaq -0x480(%rbp), %rdi
callq 0x5200
leaq -0x481(%rbp), %rdi
callq 0x53c0
leaq -0x458(%rbp), %rdi
callq 0x5200
leaq -0x459(%rbp), %rdi
callq 0x53c0
leaq -0x430(%rbp), %rdi
callq 0x5200
leaq -0x431(%rbp), %rdi
callq 0x53c0
leaq -0x408(%rbp), %rdi
callq 0x5200
leaq -0x409(%rbp), %rdi
callq 0x53c0
jmp 0xb496e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb495d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4951
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb490f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4903
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb48d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x480(%rbp), %rdi
callq 0x5200
leaq -0x481(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x482(%rbp)
jne 0xb48f0
jmp 0xb4901
movq -0x738(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb4903
leaq -0x458(%rbp), %rdi
callq 0x5200
leaq -0x459(%rbp), %rdi
callq 0x53c0
leaq -0x430(%rbp), %rdi
callq 0x5200
leaq -0x431(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x45a(%rbp)
jne 0xb493e
jmp 0xb494f
movq -0x720(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb4951
leaq -0x408(%rbp), %rdi
callq 0x5200
leaq -0x409(%rbp), %rdi
callq 0x53c0
jmp 0xb4f95
jmp 0xb4970
jmp 0xb4972
jmp 0xb4974
jmp 0xb4976
jmp 0xb4978
movl -0xc(%rbp), %esi
leaq 0xabd4e(%rip), %rdi     # 0x1606d0
callq 0xbe1d0
jmp 0xb4989
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0xb23b0
jmp 0xb4998
leaq -0x4a9(%rbp), %rdi
movq %rdi, -0x750(%rbp)
callq 0x55d0
movq -0x750(%rbp), %rdx
leaq 0x3c819(%rip), %rsi     # 0xf11d2
leaq -0x4a8(%rbp), %rdi
callq 0x19840
jmp 0xb49c7
movl $0x48, %edi
callq 0x5340
movq %rax, -0x758(%rbp)
jmp 0xb49da
movb $0x1, -0x4fa(%rbp)
leaq -0x4d1(%rbp), %rdi
movq %rdi, -0x760(%rbp)
callq 0x55d0
movq -0x760(%rbp), %rdx
leaq 0x3c7ea(%rip), %rsi     # 0xf11ec
leaq -0x4d0(%rbp), %rdi
callq 0x19840
jmp 0xb4a10
leaq -0x4f9(%rbp), %rdi
movq %rdi, -0x768(%rbp)
callq 0x55d0
movq -0x768(%rbp), %rdx
leaq 0x3cf6f(%rip), %rsi     # 0xf19a0
leaq -0x4f8(%rbp), %rdi
callq 0x19840
jmp 0xb4a3f
movq -0x758(%rbp), %rdi
leaq -0x4d0(%rbp), %rsi
leaq -0x4f8(%rbp), %rdx
callq 0xbeae0
jmp 0xb4a5b
movb $0x0, -0x4fa(%rbp)
movl $0x48, %edi
callq 0x5340
movq %rax, -0x770(%rbp)
jmp 0xb4a75
movb $0x1, -0x522(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x77c(%rbp)
leaq -0x521(%rbp), %rdi
movq %rdi, -0x778(%rbp)
callq 0x55d0
movq -0x778(%rbp), %rdx
leaq 0x3a7a1(%rip), %rsi     # 0xef247
leaq -0x520(%rbp), %rdi
callq 0x19840
jmp 0xb4ab4
movl -0x77c(%rbp), %esi
movq -0x770(%rbp), %rdi
leaq -0x520(%rbp), %rdx
callq 0xbdfe0
jmp 0xb4acf
movq -0x770(%rbp), %rcx
movq -0x758(%rbp), %rdx
movb $0x0, -0x522(%rbp)
leaq 0xabbe5(%rip), %rdi     # 0x1606d0
xorl %eax, %eax
movl %eax, %r8d
leaq -0x4a8(%rbp), %rsi
callq 0xbdf00
jmp 0xb4afe
leaq -0x520(%rbp), %rdi
callq 0x5200
leaq -0x521(%rbp), %rdi
callq 0x53c0
leaq -0x4f8(%rbp), %rdi
callq 0x5200
leaq -0x4f9(%rbp), %rdi
callq 0x53c0
leaq -0x4d0(%rbp), %rdi
callq 0x5200
leaq -0x4d1(%rbp), %rdi
callq 0x53c0
leaq -0x4a8(%rbp), %rdi
callq 0x5200
leaq -0x4a9(%rbp), %rdi
callq 0x53c0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0xb4f69
movl -0x10(%rbp), %esi
leaq 0xabb59(%rip), %rdi     # 0x1606d0
callq 0xbe1d0
jmp 0xb4b7e
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0xb23b0
jmp 0xb4b8d
leaq -0x549(%rbp), %rdi
movq %rdi, -0x788(%rbp)
callq 0x55d0
movq -0x788(%rbp), %rdx
leaq 0x3c624(%rip), %rsi     # 0xf11d2
leaq -0x548(%rbp), %rdi
callq 0x19840
jmp 0xb4bbc
movl $0x48, %edi
callq 0x5340
movq %rax, -0x790(%rbp)
jmp 0xb4bcf
movb $0x1, -0x59a(%rbp)
leaq -0x571(%rbp), %rdi
movq %rdi, -0x798(%rbp)
callq 0x55d0
movq -0x798(%rbp), %rdx
leaq 0x3c5f5(%rip), %rsi     # 0xf11ec
leaq -0x570(%rbp), %rdi
callq 0x19840
jmp 0xb4c05
leaq -0x599(%rbp), %rdi
movq %rdi, -0x7a0(%rbp)
callq 0x55d0
movq -0x7a0(%rbp), %rdx
leaq 0x3cd7a(%rip), %rsi     # 0xf19a0
leaq -0x598(%rbp), %rdi
callq 0x19840
jmp 0xb4c34
movq -0x790(%rbp), %rdi
leaq -0x570(%rbp), %rsi
leaq -0x598(%rbp), %rdx
callq 0xbeae0
jmp 0xb4c50
movb $0x0, -0x59a(%rbp)
movl $0x48, %edi
callq 0x5340
movq %rax, -0x7a8(%rbp)
jmp 0xb4c6a
movb $0x1, -0x5c2(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x7b4(%rbp)
leaq -0x5c1(%rbp), %rdi
movq %rdi, -0x7b0(%rbp)
callq 0x55d0
movq -0x7b0(%rbp), %rdx
leaq 0x3a5ac(%rip), %rsi     # 0xef247
leaq -0x5c0(%rbp), %rdi
callq 0x19840
jmp 0xb4ca9
movl -0x7b4(%rbp), %esi
movq -0x7a8(%rbp), %rdi
leaq -0x5c0(%rbp), %rdx
callq 0xbdfe0
jmp 0xb4cc4
movq -0x7a8(%rbp), %rcx
movq -0x790(%rbp), %rdx
movb $0x0, -0x5c2(%rbp)
leaq 0xab9f0(%rip), %rdi     # 0x1606d0
xorl %eax, %eax
movl %eax, %r8d
leaq -0x548(%rbp), %rsi
callq 0xbdf00
jmp 0xb4cf3
leaq -0x5c0(%rbp), %rdi
callq 0x5200
leaq -0x5c1(%rbp), %rdi
callq 0x53c0
leaq -0x598(%rbp), %rdi
callq 0x5200
leaq -0x599(%rbp), %rdi
callq 0x53c0
leaq -0x570(%rbp), %rdi
callq 0x5200
leaq -0x571(%rbp), %rdi
callq 0x53c0
leaq -0x548(%rbp), %rdi
callq 0x5200
leaq -0x549(%rbp), %rdi
callq 0x53c0
jmp 0xb4f69
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4e51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4e45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4e1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4e03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4df7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4dcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x520(%rbp), %rdi
callq 0x5200
leaq -0x521(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x522(%rbp)
jne 0xb4de4
jmp 0xb4df5
movq -0x770(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb4df7
leaq -0x4f8(%rbp), %rdi
callq 0x5200
leaq -0x4f9(%rbp), %rdi
callq 0x53c0
leaq -0x4d0(%rbp), %rdi
callq 0x5200
leaq -0x4d1(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x4fa(%rbp)
jne 0xb4e32
jmp 0xb4e43
movq -0x758(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb4e45
leaq -0x4a8(%rbp), %rdi
callq 0x5200
leaq -0x4a9(%rbp), %rdi
callq 0x53c0
jmp 0xb4f95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4f5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4f4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4f25
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4f0d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4f01
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xb4ed7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x5c0(%rbp), %rdi
callq 0x5200
leaq -0x5c1(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x5c2(%rbp)
jne 0xb4eee
jmp 0xb4eff
movq -0x7a8(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb4f01
leaq -0x598(%rbp), %rdi
callq 0x5200
leaq -0x599(%rbp), %rdi
callq 0x53c0
leaq -0x570(%rbp), %rdi
callq 0x5200
leaq -0x571(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x59a(%rbp)
jne 0xb4f3c
jmp 0xb4f4d
movq -0x790(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb4f4f
leaq -0x548(%rbp), %rdi
callq 0x5200
leaq -0x549(%rbp), %rdi
callq 0x53c0
jmp 0xb4f95
movl -0x14(%rbp), %esi
leaq 0xab75d(%rip), %rdi     # 0x1606d0
callq 0xbe1d0
jmp 0xb4f7a
leaq -0x68(%rbp), %rdi
callq 0xbf290
leaq -0x40(%rbp), %rdi
callq 0xbf290
addq $0x7c0, %rsp            # imm = 0x7C0
popq %rbp
retq
leaq -0x68(%rbp), %rdi
callq 0xbf290
leaq -0x40(%rbp), %rdi
callq 0xbf290
movq -0x70(%rbp), %rdi
callq 0x55b0