// File: /workspace/github_cpp_makefile_star2_O1/sighingnow[P]compile-pascal/pl0_x86.cpp
// Function: pl0_x86_gen_header(BasicBlock&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&)
static void pl0_x86_gen_header(BasicBlock & bb, std::vector<std::string> & buffer) {
    runtime.tag(); old.emplace_back(dist); dist = 0;
    size_t p = pl0_x86_gen_param(bb.code, 0);
    buffer.emplace_back(string(""));
    buffer.emplace_back(string("    global ") + bb.code[p].rd->sv);
    buffer.emplace_back(string(bb.code[p].rd->sv) + ":");
    buffer.emplace_back(string("    push ebp"));
    buffer.emplace_back(string("    mov ebp, esp"));
    // prepare displays.
    int d = runtime.depth();
    runtime.push(LOC(string("$fn") + bb.code[p].rd->sv, d));
    buffer.emplace_back("    mov ebx, dword [ebp]");
    for (int i = 1; i < d; ++i) {
        buffer.emplace_back("    push dword [ebx-" + to_string(i*4) + "]");
    }
    dist = dist - 4 * d;
    buffer.emplace_back("    push ebp");
    if (++p < bb.size() && bb.code[p].op == "allocret") {
        dist = dist - 4;
        runtime.push(LOC(bb.code[p].rd->sv, dist));
        buffer.emplace_back(string("    sub esp, ") + to_string(4) + "\t\t;; " + bb.code[p].str());
        p = p + 1;
    }
    while (p < bb.size() && bb.code[p].op == "def") {
        buffer.emplace_back(x86_gen_def(bb.code[p++]));
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movq %rsi, 0x68(%rsp)
movq %rdi, 0x100(%rsp)
leaq 0x382c3(%rip), %rdi     # 0xc16f8
callq 0x94600
movq 0x382a7(%rip), %rsi     # 0xc16e8
cmpq 0x382a8(%rip), %rsi     # 0xc16f0
je 0x8945f
movl 0x383f8(%rip), %eax     # 0xc1848
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x3828b(%rip)     # 0xc16e8
jmp 0x89472
leaq 0x3827a(%rip), %rdi     # 0xc16e0
leaq 0x383db(%rip), %rdx     # 0xc1848
callq 0x7eb90
movl $0x0, 0x383cc(%rip)     # 0xc1848
movl $0x8, %ebx
movl $0x1, %eax
movq %rax, 0xd0(%rsp)
xorl %r15d, %r15d
movq %rsp, %r12
leaq 0xf537(%rip), %r13      # 0x989d2
leaq 0x20(%rsp), %rbp
movq 0x100(%rsp), %r14
movq 0x18(%r14), %rdi
addq %r15, %rdi
leaq 0xf525(%rip), %rsi      # 0x989db
callq 0x50c0
testl %eax, %eax
je 0x894d6
movq 0x18(%r14), %rdi
addq %r15, %rdi
movq %r13, %rsi
callq 0x50c0
testl %eax, %eax
jne 0x89594
movq 0x18(%r14), %rax
movq 0x20(%rax,%r15), %rax
leaq 0x10(%rsp), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0x36590
movq 0x18(%r14), %rdi
addq %r15, %rdi
movq %r13, %rsi
callq 0x50c0
xorl %ecx, %ecx
testl %eax, %eax
sete %cl
movq %rbp, %rdi
movq %r12, %rsi
movl %ebx, %edx
callq 0x87250
leaq 0x381d3(%rip), %rdi     # 0xc16f8
movq %rbp, %rsi
callq 0x881b2
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x89549
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x89565
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x89580
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
addl $0x4, %ebx
addq $0x50, %r15
incq 0xd0(%rsp)
jmp 0x894a8
leaq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rbp
movq %rbp, (%rdi)
leaq 0xff67(%rip), %rdx      # 0x9950f
movq %rdx, %rsi
callq 0x2670a
leaq 0x20(%rsp), %rsi
movq 0x68(%rsp), %rdi
callq 0x7c1e6
leaq 0x10(%rsp), %r14
movq 0x100(%rsp), %r12
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x895e3
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xfa09(%rip), %rsi      # 0x98ff9
leaq 0xfa0d(%rip), %rdx      # 0x99004
callq 0x2670a
movq 0x18(%r12), %rax
movq 0x20(%rax,%r15), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %rsp, %rdi
callq 0x50d0
movq %rbp, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x89639
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x89640
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x68(%rsp), %rdi
callq 0x7c1e6
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8967d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x89693
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x18(%r12), %rax
movq 0x20(%rax,%r15), %rax
movq %rsp, %rbx
movq %r14, (%rbx)
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x36590
leaq 0xd9ed(%rip), %rsi      # 0x970aa
movq %rbx, %rdi
callq 0x5420
movq %rbp, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x896e8
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x896ef
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x68(%rsp), %rdi
callq 0x7c1e6
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8972c
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x89742
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0x20(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0xf8b4(%rip), %rsi      # 0x99005
leaq 0xf8b9(%rip), %rdx      # 0x99011
callq 0x2670a
leaq 0x20(%rsp), %rsi
movq 0x68(%rsp), %rdi
callq 0x7c1e6
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x89783
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0x20(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0xf880(%rip), %rsi      # 0x99012
leaq 0xf889(%rip), %rdx      # 0x99022
callq 0x2670a
leaq 0x20(%rsp), %rsi
movq 0x68(%rsp), %rdi
callq 0x7c1e6
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x897c4
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x37f4d(%rip), %rbx     # 0xc1718
subq 0x37f3e(%rip), %rbx     # 0xc1710
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xf844(%rip), %rsi      # 0x99023
leaq 0xf840(%rip), %rdx      # 0x99026
callq 0x2670a
movq 0x18(%r12), %rax
movq 0x20(%rax,%r15), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %rsp, %rdi
callq 0x50d0
shrq $0x2, %rbx
decl %ebx
movq %rbx, 0xf8(%rsp)
leaq 0x138(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x89843
movq %rdx, 0x128(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x138(%rsp)
jmp 0x8984a
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x128(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x20(%rsp), %rdi
movq 0xf8(%rsp), %rdx
xorl %ecx, %ecx
callq 0x87250
leaq 0x37e74(%rip), %rdi     # 0xc16f8
leaq 0x20(%rsp), %rsi
callq 0x881b2
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x898aa
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x898c1
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x128(%rsp), %rdi
cmpq %r14, %rdi
je 0x898de
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
leaq 0x10(%rsp), %r14
cmpq %r14, %rdi
je 0x898f9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xf727(%rip), %rsi      # 0x99027
movq 0x68(%rsp), %rdi
callq 0x94674
cmpl $0x2, 0xf8(%rsp)
jl 0x89acc
movl $0x1, %r13d
movl $0xd1b71759, %r12d      # imm = 0xD1B71759
leal (,%r13,4), %r14d
movl $0x1, %ebp
cmpl $0xa, %r14d
jb 0x89974
movl $0x4, %ebp
movl %r14d, %eax
cmpl $0x63, %eax
jbe 0x8996d
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x89972
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x89974
movl %eax, %ecx
imulq %r12, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebp
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x8993f
addl $-0x3, %ebp
jmp 0x89974
addl $-0x2, %ebp
jmp 0x89974
decl %ebp
movl %ebp, %esi
leaq 0x80(%rsp), %rax
movq %rax, 0x70(%rsp)
leaq 0x70(%rsp), %rbx
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x5300
movq 0x70(%rsp), %rdi
movl %ebp, %esi
movl %r14d, %edx
callq 0x6b096
movl $0x14, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0xf688(%rip), %rcx      # 0x99040
callq 0x52c0
leaq 0x10(%rsp), %r14
movq %r14, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq 0x30(%rsp), %rbp
je 0x899e8
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x899ef
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rsp, %rdi
leaq 0xf217(%rip), %rsi      # 0x98c28
callq 0x5420
movq %rbp, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x89a39
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x89a40
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x68(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x7c1e6
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x89a7e
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x89a99
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x89abb
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5260
incl %r13d
cmpl 0xf8(%rsp), %r13d
jne 0x89924
movq 0xf8(%rsp), %rax
shll $0x2, %eax
subl %eax, 0x37d6b(%rip)     # 0xc1848
leaq 0xf521(%rip), %rsi      # 0x99005
movq 0x68(%rsp), %rdi
callq 0x947dc
movq 0x100(%rsp), %r13
movq %r13, %rdi
callq 0x7f724
movq 0xd0(%rsp), %rbx
cmpq %rax, %rbx
jae 0x8a102
movq 0x18(%r13), %rax
leaq (%rax,%r15), %rdi
addq $0x50, %rdi
leaq 0xf200(%rip), %rsi      # 0x98d22
callq 0x50c0
testl %eax, %eax
jne 0x8a102
addl $-0x4, 0x37d12(%rip)    # 0xc1848
movq 0x18(%r13), %rax
movq 0x70(%rax,%r15), %rax
leaq 0x158(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
addq %rsi, %rdx
leaq 0x148(%rsp), %rbx
movq %rbx, %rdi
callq 0x36590
movl 0x37cdc(%rip), %edx     # 0xc1848
leaq 0x20(%rsp), %rdi
movq %rbx, %rsi
xorl %ecx, %ecx
callq 0x87250
leaq 0x37b76(%rip), %rdi     # 0xc16f8
leaq 0x20(%rsp), %rsi
callq 0x881b2
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
movq 0xd0(%rsp), %rbx
je 0x89bb0
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x89bc7
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x148(%rsp), %rdi
cmpq %r14, %rdi
je 0x89be4
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xc0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xf45e(%rip), %rsi      # 0x99055
leaq 0xf464(%rip), %rdx      # 0x99062
leaq 0xb0(%rsp), %rdi
callq 0x2670a
leaq 0xa0(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x90(%rsp), %rdi
movl $0x1, %esi
movl $0x2d, %edx
callq 0x5300
movq 0x90(%rsp), %rax
movb $0x34, (%rax)
movq 0xb0(%rsp), %rcx
movq 0xb8(%rsp), %r8
movq 0x98(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r14, %rcx
je 0x89c68
movq 0xc0(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x89c89
movl $0xf, %esi
cmpq %r12, 0x90(%rsp)
je 0x89c84
movq 0xa0(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x89ca0
movq 0x90(%rsp), %rsi
leaq 0xb0(%rsp), %rdi
callq 0x50d0
jmp 0x89cb1
leaq 0x90(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x52c0
leaq 0x80(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x89cdb
movq %rsi, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x89ce1
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xf35e(%rip), %rsi      # 0x99063
leaq 0x70(%rsp), %rdi
callq 0x5420
leaq 0x10(%rsp), %rsi
movq %rsi, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x89d35
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x89d3b
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x18(%r13), %rax
leaq (%rax,%r15), %rsi
addq $0x50, %rsi
leaq 0xd8(%rsp), %rdi
callq 0x688a0
movq (%rsp), %rcx
movq 0x8(%rsp), %r8
movq 0xe0(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
leaq 0x10(%rsp), %rdi
cmpq %rdi, %rcx
je 0x89d95
movq 0x10(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x89dba
leaq 0xe8(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x89db5
movq 0xe8(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x89dcc
movq 0xd8(%rsp), %rsi
movq %rsp, %rdi
callq 0x50d0
jmp 0x89ddd
leaq 0xd8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x52c0
movq %rbp, 0x20(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x89dfd
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x89e04
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x20(%rsp), %rsi
movq 0x68(%rsp), %rdi
callq 0x7c1e6
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x89e47
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x89e68
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x89e83
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x89ea4
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x90(%rsp), %rdi
cmpq %r12, %rdi
je 0x89ec1
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0xb0(%rsp), %rdi
cmpq %r14, %rdi
je 0x8a0ff
movq 0xc0(%rsp), %rsi
jmp 0x8a0f7
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x89efe
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x89efe
movq %rax, %rbx
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x89f24
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x89f24
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x89f44
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x89f44
movq %rax, %rbx
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x89f6a
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x89f6a
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r12, %rdi
je 0x89f8c
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x89f8c
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
cmpq %r14, %rdi
je 0x8a6eb
jmp 0x8a6db
jmp 0x8a05f
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x86ef2
jmp 0x89fb9
movq %rax, %rbx
movq 0x148(%rsp), %rdi
cmpq %r14, %rdi
je 0x8a6eb
movq 0x158(%rsp), %rsi
jmp 0x8a6e3
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x86ef2
jmp 0x89fe9
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r14, %rdi
je 0x8a0db
movq 0x138(%rsp), %rsi
jmp 0x8a030
jmp 0x8a0d8
jmp 0x8a05f
jmp 0x8a044
jmp 0x8a05f
jmp 0x8a044
jmp 0x8a05f
jmp 0x8a01a
jmp 0x8a0d8
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8a0db
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x8a0db
jmp 0x8a0d8
jmp 0x8a05f
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8a6eb
movq 0x30(%rsp), %rsi
jmp 0x8a6e3
movq %rax, %rbx
jmp 0x8a6eb
movq %rax, %rbx
jmp 0x8a0a6
movq %rax, %rbx
jmp 0x8a08b
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8a08b
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x8a0a6
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x8a6eb
movq 0x80(%rsp), %rsi
jmp 0x8a6e3
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x86ef2
jmp 0x8a0db
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x8a6eb
movq 0x10(%rsp), %rsi
jmp 0x8a6e3
incq %rsi
callq 0x5260
incq %rbx
movq %r13, %rdi
callq 0x7f724
cmpq %rax, %rbx
jae 0x8a2ae
leaq (%rbx,%rbx,4), %rbp
shlq $0x4, %rbp
movq 0x18(%r13), %rdi
addq %rbp, %rdi
leaq 0xe852(%rip), %rsi      # 0x9897b
callq 0x50c0
testl %eax, %eax
jne 0x8a2ae
movq 0x18(%r13), %r12
movq 0x28(%r12,%rbp), %rdi
addq $0x8, %rdi
leaq 0xcfc5(%rip), %rsi      # 0x9710f
callq 0x50c0
movq 0x30(%r12,%rbp), %rax
movl 0x4(%rax), %eax
leal (,%rax,4), %r13d
cmpl $-0x1, %eax
movl $0x4, %eax
cmovel %eax, %r13d
subl %r13d, 0x376d6(%rip)    # 0xc1848
movq 0x20(%r12,%rbp), %rax
leaq 0x10(%rsp), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
addq %rsi, %rdx
movq %rsp, %r15
movq %r15, %rdi
callq 0x36590
movl 0x376ac(%rip), %edx     # 0xc1848
leaq 0x20(%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
xorl %ecx, %ecx
callq 0x87250
leaq 0x37543(%rip), %rdi     # 0xc16f8
movq %r14, %rsi
callq 0x881b2
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x8a1d9
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x8a1f5
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq %rbx, 0xd0(%rsp)
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x8a218
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xc0(%rsp), %rax
movq %rax, 0xb0(%rsp)
movabsq $0x202c707365206275, %rcx # imm = 0x202C707365206275
movq %rcx, 0x5(%rax)
movabsq $0x2062757320202020, %rcx # imm = 0x2062757320202020
movq %rcx, (%rax)
movq $0xd, 0xb8(%rsp)
movb $0x0, 0xcd(%rsp)
movl %r13d, %ebx
negl %ebx
cmovsl %r13d, %ebx
movl $0x1, %r14d
cmpl $0xa, %ebx
jb 0x8a2c3
movl $0x4, %r14d
movl %ebx, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x8a2a8
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x8a2c0
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x8a2c3
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x8a278
addl $-0x3, %r14d
jmp 0x8a2c3
addl $-0x2, %r14d
jmp 0x8a2c3
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
decl %r14d
shrl $0x1f, %r13d
leal (%r14,%r13), %esi
leaq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
leaq 0x90(%rsp), %rdi
movl $0x2d, %edx
callq 0x5300
movl %r13d, %edi
addq 0x90(%rsp), %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x6b096
movq 0xb0(%rsp), %rcx
movl $0xf, %esi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rcx
je 0x8a324
movq 0xc0(%rsp), %rsi
movq 0xb8(%rsp), %r8
movq 0x98(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
movq 0x100(%rsp), %r13
jbe 0x8a369
movl $0xf, %esi
leaq 0xa0(%rsp), %rdi
cmpq %rdi, 0x90(%rsp)
je 0x8a364
movq 0xa0(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8a380
movq 0x90(%rsp), %rsi
leaq 0xb0(%rsp), %rdi
callq 0x50d0
jmp 0x8a391
leaq 0x90(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x52c0
leaq 0x80(%rsp), %rsi
movq %rsi, 0x70(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x8a3bc
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x8a3c2
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x70(%rsp), %rdi
leaq 0xec78(%rip), %rsi      # 0x99063
callq 0x5420
leaq 0x30(%rsp), %rsi
movq %rsi, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8a418
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x8a41e
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
addq %rbp, %r12
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xd8(%rsp), %rdi
movq %r12, %rsi
callq 0x688a0
movq 0x20(%rsp), %rcx
movl $0xf, %esi
leaq 0x30(%rsp), %rbx
cmpq %rbx, %rcx
leaq 0x80(%rsp), %r15
leaq 0x118(%rsp), %rbp
je 0x8a472
movq 0x30(%rsp), %rsi
movq 0x28(%rsp), %r8
movq 0xe0(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x8a4ac
movl $0xf, %esi
leaq 0xe8(%rsp), %rdi
cmpq %rdi, 0xd8(%rsp)
je 0x8a4a7
movq 0xe8(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8a4c0
movq 0xd8(%rsp), %rsi
leaq 0x20(%rsp), %rdi
callq 0x50d0
jmp 0x8a4d1
leaq 0xd8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x52c0
movq %rbp, 0x108(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x8a4fa
movq %rdx, 0x108(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x118(%rsp)
jmp 0x8a501
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x110(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x8a546
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x20(%rsp), %rdi
cmpq %rbx, %rdi
je 0x8a55d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
movq 0xd0(%rsp), %rbx
je 0x8a57f
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x8a5a4
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x8a5c9
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x68(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x7c1e6
movq 0x108(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8a0ff
movq 0x118(%rsp), %rsi
jmp 0x8a0f7
jmp 0x8a0c9
movq %rax, %rbx
jmp 0x8a6c6
movq %rax, %rbx
movq 0x108(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8a6eb
movq 0x118(%rsp), %rsi
jmp 0x8a6e3
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x8a65e
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x8a65e
movq %rax, %rbx
jmp 0x8a67a
jmp 0x8a0d8
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x8a67a
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x8a6a1
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x8a6a1
movq %rax, %rbx
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x8a6c6
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x8a6eb
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5260
movq %rbx, %rdi
callq 0x53d0