// File: sighingnow[P]compile-pascal/pl0_tac_gen.cpp
// Function: pl0_tac_function_stmt(pl0_ast_function_stmt const*)
void pl0_tac_function_stmt(pl0_ast_function_stmt const *stmts) {
    cout << __func__;
    for (auto && f: stmts->funcs) {
        // validate.
        string fid = f.first->id->id;
        if (valtb.find(fid, false) || vartb.find(fid, false) || proctb.find(fid, false) || functb.find(fid, false)
                || (!scope.empty() && fid == scope.back())) {
            pl0_ast_error(f.first->id->loc, string("overloaded identifier ") + "\"" + fid + "\"" + " isn't a function");
        }
        else {
            scope.emplace_back(fid); // update global scope.
            vector<string> functype = pl0_tac_function_header(f.first);
            irb.emit("function", new Value(scope_name(), "string"));
            functb.push(func(scope_name(), f.first->type->type, functype)); // update symbol table
            proctb.tag(); functb.tag();
            irb.emit("def", new Value(scope_name(), f.first->type->type), new Value("function", "string"), new Value(-1, "integer"));
            pl0_tac_prog(f.second);
            irb.emit("loadret", new Value(scope_name(), "string"));
            irb.emit("endfunc", new Value(scope_name(), "string"));
            // end of current scope.
            scope.pop_back(); // restore scope.
            valtb.detag(); vartb.detag();
            proctb.detag(), functb.detag();
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x490, %rsp            # imm = 0x490
movq %rdi, -0x8(%rbp)
movq 0xae6e2(%rip), %rdi     # 0x15efd8
leaq 0x41332(%rip), %rsi     # 0xf1c2f
callq 0x5330
movq -0x8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x37c50
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x37c80
movq %rax, -0x20(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x38060
testb $0x1, %al
jne 0xb093e
jmp 0xb166c
leaq -0x18(%rbp), %rdi
callq 0x380d0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rsi
addq $0x8, %rsi
leaq -0x48(%rbp), %rdi
movq %rdi, -0x3f8(%rbp)
callq 0x5150
movq -0x3f8(%rbp), %rsi
leaq 0xafdd0(%rip), %rdi     # 0x160748
xorl %edx, %edx
callq 0xbe630
movb %al, -0x3eb(%rbp)
jmp 0xb0987
movb -0x3eb(%rbp), %al
testb $0x1, %al
jne 0xb0a42
jmp 0xb0997
leaq 0xafd7a(%rip), %rdi     # 0x160718
leaq -0x48(%rbp), %rsi
xorl %edx, %edx
callq 0xbe7c0
movb %al, -0x3f9(%rbp)
jmp 0xb09b1
movb -0x3f9(%rbp), %al
testb $0x1, %al
jne 0xb0a42
jmp 0xb09c1
leaq 0xafdb0(%rip), %rdi     # 0x160778
leaq -0x48(%rbp), %rsi
xorl %edx, %edx
callq 0xbeb90
movb %al, -0x3fa(%rbp)
jmp 0xb09db
movb -0x3fa(%rbp), %al
testb $0x1, %al
jne 0xb0a42
jmp 0xb09e7
leaq 0xafdba(%rip), %rdi     # 0x1607a8
leaq -0x48(%rbp), %rsi
xorl %edx, %edx
callq 0xbed20
movb %al, -0x3fb(%rbp)
jmp 0xb0a01
movb -0x3fb(%rbp), %al
testb $0x1, %al
jne 0xb0a42
jmp 0xb0a0d
leaq 0xafcec(%rip), %rdi     # 0x160700
callq 0xbe5b0
testb $0x1, %al
jne 0xb0bf3
leaq 0xafcd8(%rip), %rdi     # 0x160700
callq 0xbe5f0
movq %rax, %rsi
leaq -0x48(%rbp), %rdi
callq 0x19db0
testb $0x1, %al
jne 0xb0a42
jmp 0xb0bf3
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x60(%rbp)
leaq -0x101(%rbp), %rdi
movq %rdi, -0x408(%rbp)
callq 0x55d0
movq -0x408(%rbp), %rdx
leaq 0x4063a(%rip), %rsi     # 0xf10af
leaq -0x100(%rbp), %rdi
callq 0x19840
jmp 0xb0a83
leaq 0x40c91(%rip), %rdx     # 0xf171b
leaq -0xe0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x1a380
jmp 0xb0a9f
leaq -0xc0(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq 0x1a4d0
jmp 0xb0ab8
leaq 0x40c5c(%rip), %rdx     # 0xf171b
leaq -0xa0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x1a380
jmp 0xb0ad4
leaq 0x405eb(%rip), %rdx     # 0xf10c6
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x1a380
jmp 0xb0aed
movq -0x60(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0xae910
jmp 0xb0afc
leaq -0x80(%rbp), %rdi
callq 0x5200
leaq -0xa0(%rbp), %rdi
callq 0x5200
leaq -0xc0(%rbp), %rdi
callq 0x5200
leaq -0xe0(%rbp), %rdi
callq 0x5200
leaq -0x100(%rbp), %rdi
callq 0x5200
leaq -0x101(%rbp), %rdi
callq 0x53c0
jmp 0xb164a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb1661
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb0be2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb0bd6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb0bca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb0bbe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb0bb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x5200
leaq -0xa0(%rbp), %rdi
callq 0x5200
leaq -0xc0(%rbp), %rdi
callq 0x5200
leaq -0xe0(%rbp), %rdi
callq 0x5200
leaq -0x100(%rbp), %rdi
callq 0x5200
leaq -0x101(%rbp), %rdi
callq 0x53c0
jmp 0xb1661
leaq 0xafb06(%rip), %rdi     # 0x160700
leaq -0x48(%rbp), %rsi
callq 0xbeeb0
jmp 0xb0c05
movq -0x28(%rbp), %rax
movq (%rax), %rsi
leaq -0x120(%rbp), %rdi
callq 0xb18e0
jmp 0xb0c1a
leaq -0x141(%rbp), %rdi
movq %rdi, -0x410(%rbp)
callq 0x55d0
movq -0x410(%rbp), %rdx
leaq 0x40494(%rip), %rsi     # 0xf10cf
leaq -0x140(%rbp), %rdi
callq 0x19840
jmp 0xb0c49
movl $0x48, %edi
callq 0x5340
movq %rax, -0x418(%rbp)
jmp 0xb0c5c
movb $0x1, -0x18a(%rbp)
leaq -0x168(%rbp), %rdi
callq 0xb1760
jmp 0xb0c71
leaq -0x189(%rbp), %rdi
movq %rdi, -0x420(%rbp)
callq 0x55d0
movq -0x420(%rbp), %rdx
leaq 0x40d0e(%rip), %rsi     # 0xf19a0
leaq -0x188(%rbp), %rdi
callq 0x19840
jmp 0xb0ca0
movq -0x418(%rbp), %rdi
leaq -0x168(%rbp), %rsi
leaq -0x188(%rbp), %rdx
callq 0xbeae0
jmp 0xb0cbc
movq -0x418(%rbp), %rdx
movb $0x0, -0x18a(%rbp)
leaq 0xaf9ff(%rip), %rdi     # 0x1606d0
xorl %eax, %eax
movl %eax, %r8d
leaq -0x140(%rbp), %rsi
movq %r8, %rcx
callq 0xbdf00
jmp 0xb0ce7
leaq -0x188(%rbp), %rdi
callq 0x5200
leaq -0x189(%rbp), %rdi
callq 0x53c0
leaq -0x168(%rbp), %rdi
callq 0x5200
leaq -0x140(%rbp), %rdi
callq 0x5200
leaq -0x141(%rbp), %rdi
callq 0x53c0
leaq -0x208(%rbp), %rdi
callq 0xb1760
jmp 0xb0d31
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
addq $0x8, %rsi
leaq -0x228(%rbp), %rdi
callq 0x5150
jmp 0xb0d4e
leaq -0x1e8(%rbp), %rdi
leaq -0x208(%rbp), %rsi
leaq -0x228(%rbp), %rdx
leaq -0x120(%rbp), %rcx
callq 0xa07f0
jmp 0xb0d71
leaq 0xafa30(%rip), %rdi     # 0x1607a8
leaq -0x1e8(%rbp), %rsi
callq 0xbefc0
jmp 0xb0d86
leaq -0x1e8(%rbp), %rdi
callq 0xbeff0
leaq -0x228(%rbp), %rdi
callq 0x5200
leaq -0x208(%rbp), %rdi
callq 0x5200
leaq 0xaf9c7(%rip), %rdi     # 0x160778
callq 0xbe0d0
jmp 0xb0db8
leaq 0xaf9e9(%rip), %rdi     # 0x1607a8
callq 0xbe110
jmp 0xb0dc6
leaq -0x249(%rbp), %rdi
movq %rdi, -0x428(%rbp)
callq 0x55d0
movq -0x428(%rbp), %rdx
leaq 0x402c4(%rip), %rsi     # 0xf10ab
leaq -0x248(%rbp), %rdi
callq 0x19840
jmp 0xb0df5
movl $0x48, %edi
callq 0x5340
movq %rax, -0x430(%rbp)
jmp 0xb0e08
movb $0x1, -0x291(%rbp)
leaq -0x270(%rbp), %rdi
callq 0xb1760
jmp 0xb0e1d
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
addq $0x8, %rsi
leaq -0x290(%rbp), %rdi
callq 0x5150
jmp 0xb0e3a
movq -0x430(%rbp), %rdi
leaq -0x270(%rbp), %rsi
leaq -0x290(%rbp), %rdx
callq 0xbeae0
jmp 0xb0e56
movb $0x0, -0x291(%rbp)
movl $0x48, %edi
callq 0x5340
movq %rax, -0x438(%rbp)
jmp 0xb0e70
movb $0x1, -0x2e2(%rbp)
leaq -0x2b9(%rbp), %rdi
movq %rdi, -0x440(%rbp)
callq 0x55d0
movq -0x440(%rbp), %rdx
leaq 0x40237(%rip), %rsi     # 0xf10cf
leaq -0x2b8(%rbp), %rdi
callq 0x19840
jmp 0xb0ea6
leaq -0x2e1(%rbp), %rdi
movq %rdi, -0x448(%rbp)
callq 0x55d0
movq -0x448(%rbp), %rdx
leaq 0x40ad9(%rip), %rsi     # 0xf19a0
leaq -0x2e0(%rbp), %rdi
callq 0x19840
jmp 0xb0ed5
movq -0x438(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
leaq -0x2e0(%rbp), %rdx
callq 0xbeae0
jmp 0xb0ef1
movb $0x0, -0x2e2(%rbp)
movl $0x48, %edi
callq 0x5340
movq %rax, -0x450(%rbp)
jmp 0xb0f0b
movb $0x1, -0x30a(%rbp)
leaq -0x309(%rbp), %rdi
movq %rdi, -0x458(%rbp)
callq 0x55d0
movq -0x458(%rbp), %rdx
leaq 0x3e314(%rip), %rsi     # 0xef247
leaq -0x308(%rbp), %rdi
callq 0x19840
jmp 0xb0f41
movq -0x450(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq -0x308(%rbp), %rdx
callq 0xbdfe0
jmp 0xb0f5b
movq -0x450(%rbp), %r8
movq -0x438(%rbp), %rcx
movq -0x430(%rbp), %rdx
movb $0x0, -0x30a(%rbp)
leaq 0xaf752(%rip), %rdi     # 0x1606d0
leaq -0x248(%rbp), %rsi
callq 0xbdf00
jmp 0xb0f8c
leaq -0x308(%rbp), %rdi
callq 0x5200
leaq -0x309(%rbp), %rdi
callq 0x53c0
leaq -0x2e0(%rbp), %rdi
callq 0x5200
leaq -0x2e1(%rbp), %rdi
callq 0x53c0
leaq -0x2b8(%rbp), %rdi
callq 0x5200
leaq -0x2b9(%rbp), %rdi
callq 0x53c0
leaq -0x290(%rbp), %rdi
callq 0x5200
leaq -0x270(%rbp), %rdi
callq 0x5200
leaq -0x248(%rbp), %rdi
callq 0x5200
leaq -0x249(%rbp), %rdi
callq 0x53c0
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xaef50
jmp 0xb1013
leaq -0x331(%rbp), %rdi
movq %rdi, -0x460(%rbp)
callq 0x55d0
movq -0x460(%rbp), %rdx
leaq 0x400a4(%rip), %rsi     # 0xf10d8
leaq -0x330(%rbp), %rdi
callq 0x19840
jmp 0xb1042
movl $0x48, %edi
callq 0x5340
movq %rax, -0x468(%rbp)
jmp 0xb1055
movb $0x1, -0x37a(%rbp)
leaq -0x358(%rbp), %rdi
callq 0xb1760
jmp 0xb106a
leaq -0x379(%rbp), %rdi
movq %rdi, -0x470(%rbp)
callq 0x55d0
movq -0x470(%rbp), %rdx
leaq 0x40915(%rip), %rsi     # 0xf19a0
leaq -0x378(%rbp), %rdi
callq 0x19840
jmp 0xb1099
movq -0x468(%rbp), %rdi
leaq -0x358(%rbp), %rsi
leaq -0x378(%rbp), %rdx
callq 0xbeae0
jmp 0xb10b5
movq -0x468(%rbp), %rdx
movb $0x0, -0x37a(%rbp)
leaq 0xaf606(%rip), %rdi     # 0x1606d0
xorl %eax, %eax
movl %eax, %r8d
leaq -0x330(%rbp), %rsi
movq %r8, %rcx
callq 0xbdf00
jmp 0xb10e0
leaq -0x378(%rbp), %rdi
callq 0x5200
leaq -0x379(%rbp), %rdi
callq 0x53c0
leaq -0x358(%rbp), %rdi
callq 0x5200
leaq -0x330(%rbp), %rdi
callq 0x5200
leaq -0x331(%rbp), %rdi
callq 0x53c0
leaq -0x3a1(%rbp), %rdi
movq %rdi, -0x478(%rbp)
callq 0x55d0
movq -0x478(%rbp), %rdx
leaq 0x3ffa3(%rip), %rsi     # 0xf10e0
leaq -0x3a0(%rbp), %rdi
callq 0x19840
jmp 0xb114b
movl $0x48, %edi
callq 0x5340
movq %rax, -0x480(%rbp)
jmp 0xb115e
movb $0x1, -0x3ea(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0xb1760
jmp 0xb1173
leaq -0x3e9(%rbp), %rdi
movq %rdi, -0x488(%rbp)
callq 0x55d0
movq -0x488(%rbp), %rdx
leaq 0x4080c(%rip), %rsi     # 0xf19a0
leaq -0x3e8(%rbp), %rdi
callq 0x19840
jmp 0xb11a2
movq -0x480(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
leaq -0x3e8(%rbp), %rdx
callq 0xbeae0
jmp 0xb11be
movq -0x480(%rbp), %rdx
movb $0x0, -0x3ea(%rbp)
leaq 0xaf4fd(%rip), %rdi     # 0x1606d0
xorl %eax, %eax
movl %eax, %r8d
leaq -0x3a0(%rbp), %rsi
movq %r8, %rcx
callq 0xbdf00
jmp 0xb11e9
leaq -0x3e8(%rbp), %rdi
callq 0x5200
leaq -0x3e9(%rbp), %rdi
callq 0x53c0
leaq -0x3c8(%rbp), %rdi
callq 0x5200
leaq -0x3a0(%rbp), %rdi
callq 0x5200
leaq -0x3a1(%rbp), %rdi
callq 0x53c0
leaq 0xaf4d4(%rip), %rdi     # 0x160700
callq 0xbef90
leaq 0xaf510(%rip), %rdi     # 0x160748
callq 0xbe3d0
jmp 0xb123f
leaq 0xaf4d2(%rip), %rdi     # 0x160718
callq 0xbe430
jmp 0xb124d
leaq 0xaf524(%rip), %rdi     # 0x160778
callq 0xbe490
jmp 0xb125b
leaq 0xaf546(%rip), %rdi     # 0x1607a8
callq 0xbe4f0
jmp 0xb1269
leaq -0x120(%rbp), %rdi
callq 0xbda20
jmp 0xb164a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb130f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb1303
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb12e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb12cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x5200
leaq -0x189(%rbp), %rdi
callq 0x53c0
leaq -0x168(%rbp), %rdi
callq 0x5200
testb $0x1, -0x18a(%rbp)
jne 0xb12f0
jmp 0xb1301
movq -0x418(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb1303
leaq -0x140(%rbp), %rdi
callq 0x5200
leaq -0x141(%rbp), %rdi
callq 0x53c0
jmp 0xb163c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb163c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb1371
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb1365
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0xbeff0
leaq -0x228(%rbp), %rdi
callq 0x5200
leaq -0x208(%rbp), %rdi
callq 0x5200
jmp 0xb163c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb14e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb14d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb14ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb14ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb14a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb1478
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb1460
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb1454
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb142a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x308(%rbp), %rdi
callq 0x5200
leaq -0x309(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x30a(%rbp)
jne 0xb1441
jmp 0xb1452
movq -0x450(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb1454
leaq -0x2e0(%rbp), %rdi
callq 0x5200
leaq -0x2e1(%rbp), %rdi
callq 0x53c0
leaq -0x2b8(%rbp), %rdi
callq 0x5200
leaq -0x2b9(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x2e2(%rbp)
jne 0xb148f
jmp 0xb14a0
movq -0x438(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb14a2
leaq -0x290(%rbp), %rdi
callq 0x5200
leaq -0x270(%rbp), %rdi
callq 0x5200
testb $0x1, -0x291(%rbp)
jne 0xb14c5
jmp 0xb14d6
movq -0x430(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb14d8
leaq -0x248(%rbp), %rdi
callq 0x5200
leaq -0x249(%rbp), %rdi
callq 0x53c0
jmp 0xb163c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb158a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb157e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb1560
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb1548
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x378(%rbp), %rdi
callq 0x5200
leaq -0x379(%rbp), %rdi
callq 0x53c0
leaq -0x358(%rbp), %rdi
callq 0x5200
testb $0x1, -0x37a(%rbp)
jne 0xb156b
jmp 0xb157c
movq -0x468(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb157e
leaq -0x330(%rbp), %rdi
callq 0x5200
leaq -0x331(%rbp), %rdi
callq 0x53c0
jmp 0xb163c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb1630
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb1624
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb1606
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xb15ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x3e8(%rbp), %rdi
callq 0x5200
leaq -0x3e9(%rbp), %rdi
callq 0x53c0
leaq -0x3c8(%rbp), %rdi
callq 0x5200
testb $0x1, -0x3ea(%rbp)
jne 0xb1611
jmp 0xb1622
movq -0x480(%rbp), %rdi
movl $0x48, %esi
callq 0x5350
jmp 0xb1624
leaq -0x3a0(%rbp), %rdi
callq 0x5200
leaq -0x3a1(%rbp), %rdi
callq 0x53c0
leaq -0x120(%rbp), %rdi
callq 0xbda20
jmp 0xb1661
leaq -0x48(%rbp), %rdi
callq 0x5200
leaq -0x18(%rbp), %rdi
callq 0x380f0
jmp 0xb0928
leaq -0x48(%rbp), %rdi
callq 0x5200
jmp 0xb1675
addq $0x490, %rsp            # imm = 0x490
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x55b0
nop