// File: /workspace/github_cpp_makefile_star2_O3/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 0x37cdf(%rip), %rdi     # 0xbb6f8
callq 0x8e9ae
movq 0x37cc3(%rip), %rsi     # 0xbb6e8
cmpq 0x37cc4(%rip), %rsi     # 0xbb6f0
je 0x83a43
movl 0x37e14(%rip), %eax     # 0xbb848
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x37ca7(%rip)     # 0xbb6e8
jmp 0x83a56
leaq 0x37c96(%rip), %rdi     # 0xbb6e0
leaq 0x37df7(%rip), %rdx     # 0xbb848
callq 0x792ca
movl $0x0, 0x37de8(%rip)     # 0xbb848
movl $0x8, %ebx
movl $0x1, %eax
movq %rax, 0xd0(%rsp)
xorl %r15d, %r15d
movq %rsp, %r12
leaq 0xef53(%rip), %r13      # 0x929d2
leaq 0x20(%rsp), %rbp
movq 0x100(%rsp), %r14
movq 0x18(%r14), %rdi
addq %r15, %rdi
leaq 0xef41(%rip), %rsi      # 0x929db
callq 0x50c0
testl %eax, %eax
je 0x83aba
movq 0x18(%r14), %rdi
addq %r15, %rdi
movq %r13, %rsi
callq 0x50c0
testl %eax, %eax
jne 0x83b78
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 0x351dc
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 0x8182a
leaq 0x37bef(%rip), %rdi     # 0xbb6f8
movq %rbp, %rsi
callq 0x8278a
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x83b2d
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x83b49
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x83b64
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
addl $0x4, %ebx
addq $0x50, %r15
incq 0xd0(%rsp)
jmp 0x83a8c
leaq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rbp
movq %rbp, (%rdi)
leaq 0xf983(%rip), %rdx      # 0x9350f
movq %rdx, %rsi
callq 0x253d0
leaq 0x20(%rsp), %rsi
movq 0x68(%rsp), %rdi
callq 0x76928
leaq 0x10(%rsp), %r14
movq 0x100(%rsp), %r12
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x83bc7
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xf425(%rip), %rsi      # 0x92ff9
leaq 0xf429(%rip), %rdx      # 0x93004
callq 0x253d0
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 0x83c1d
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x83c24
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 0x76928
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x83c61
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x83c77
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 0x351dc
leaq 0xd409(%rip), %rsi      # 0x910aa
movq %rbx, %rdi
callq 0x5420
movq %rbp, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x83ccc
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x83cd3
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 0x76928
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x83d10
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x83d26
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0x20(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0xf2d0(%rip), %rsi      # 0x93005
leaq 0xf2d5(%rip), %rdx      # 0x93011
callq 0x253d0
leaq 0x20(%rsp), %rsi
movq 0x68(%rsp), %rdi
callq 0x76928
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x83d67
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0x20(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0xf29c(%rip), %rsi      # 0x93012
leaq 0xf2a5(%rip), %rdx      # 0x93022
callq 0x253d0
leaq 0x20(%rsp), %rsi
movq 0x68(%rsp), %rdi
callq 0x76928
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x83da8
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x37969(%rip), %rbx     # 0xbb718
subq 0x3795a(%rip), %rbx     # 0xbb710
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xf260(%rip), %rsi      # 0x93023
leaq 0xf25c(%rip), %rdx      # 0x93026
callq 0x253d0
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 0x83e27
movq %rdx, 0x128(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x138(%rsp)
jmp 0x83e2e
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 0x8182a
leaq 0x37890(%rip), %rdi     # 0xbb6f8
leaq 0x20(%rsp), %rsi
callq 0x8278a
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x83e8e
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x83ea5
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x128(%rsp), %rdi
cmpq %r14, %rdi
je 0x83ec2
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
leaq 0x10(%rsp), %r14
cmpq %r14, %rdi
je 0x83edd
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xf143(%rip), %rsi      # 0x93027
movq 0x68(%rsp), %rdi
callq 0x8ea24
cmpl $0x2, 0xf8(%rsp)
jl 0x840b0
movl $0x1, %r13d
movl $0xd1b71759, %r12d      # imm = 0xD1B71759
leal (,%r13,4), %r14d
movl $0x1, %ebp
cmpl $0xa, %r14d
jb 0x83f58
movl $0x4, %ebp
movl %r14d, %eax
cmpl $0x63, %eax
jbe 0x83f51
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x83f56
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x83f58
movl %eax, %ecx
imulq %r12, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebp
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x83f23
addl $-0x3, %ebp
jmp 0x83f58
addl $-0x2, %ebp
jmp 0x83f58
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 0x651be
movl $0x14, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0xf0a4(%rip), %rcx      # 0x93040
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 0x83fcc
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x83fd3
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 0xec33(%rip), %rsi      # 0x92c28
callq 0x5420
movq %rbp, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8401d
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x84024
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 0x76928
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x84062
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x8407d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x8409f
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5260
incl %r13d
cmpl 0xf8(%rsp), %r13d
jne 0x83f08
movq 0xf8(%rsp), %rax
shll $0x2, %eax
subl %eax, 0x37787(%rip)     # 0xbb848
leaq 0xef3d(%rip), %rsi      # 0x93005
movq 0x68(%rsp), %rdi
callq 0x8eb94
movq 0x100(%rsp), %r13
movq %r13, %rdi
callq 0x79e38
movq 0xd0(%rsp), %rbx
cmpq %rax, %rbx
jae 0x846e0
movq 0x18(%r13), %rax
leaq (%rax,%r15), %rdi
addq $0x50, %rdi
leaq 0xec1c(%rip), %rsi      # 0x92d22
callq 0x50c0
testl %eax, %eax
jne 0x846e0
addl $-0x4, 0x3772e(%rip)    # 0xbb848
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 0x351dc
movl 0x376f8(%rip), %edx     # 0xbb848
leaq 0x20(%rsp), %rdi
movq %rbx, %rsi
xorl %ecx, %ecx
callq 0x8182a
leaq 0x37592(%rip), %rdi     # 0xbb6f8
leaq 0x20(%rsp), %rsi
callq 0x8278a
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
movq 0xd0(%rsp), %rbx
je 0x84194
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x841ab
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x148(%rsp), %rdi
cmpq %r14, %rdi
je 0x841c8
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xc0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xee7a(%rip), %rsi      # 0x93055
leaq 0xee80(%rip), %rdx      # 0x93062
leaq 0xb0(%rsp), %rdi
callq 0x253d0
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, %edi
cmpq %r14, %rcx
je 0x8424c
movq 0xc0(%rsp), %rdi
movq 0x90(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x84270
movl $0xf, %edi
cmpq %r12, %rsi
je 0x8426b
movq 0xa0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x8427f
leaq 0xb0(%rsp), %rdi
callq 0x50d0
jmp 0x84290
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 0x842ba
movq %rsi, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x842c0
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 0xed7f(%rip), %rsi      # 0x93063
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 0x84314
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x8431a
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 0x629c4
movq (%rsp), %rcx
movq 0x8(%rsp), %r8
movq 0xe0(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
leaq 0x10(%rsp), %rsi
cmpq %rsi, %rcx
je 0x84374
movq 0x10(%rsp), %rdi
movq 0xd8(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x843a0
leaq 0xe8(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x8439b
movq 0xe8(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x843aa
movq %rsp, %rdi
callq 0x50d0
jmp 0x843bb
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 0x843db
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x843e2
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 0x76928
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x84425
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x84446
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x84461
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x84482
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x90(%rsp), %rdi
cmpq %r12, %rdi
je 0x8449f
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0xb0(%rsp), %rdi
cmpq %r14, %rdi
je 0x846dd
movq 0xc0(%rsp), %rsi
jmp 0x846d5
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x844dc
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x844dc
movq %rax, %rbx
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x84502
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x84502
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x84522
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x84522
movq %rax, %rbx
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x84548
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x84548
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r12, %rdi
je 0x8456a
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x8456a
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
cmpq %r14, %rdi
je 0x84cbf
jmp 0x84caf
jmp 0x8463d
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x814b4
jmp 0x84597
movq %rax, %rbx
movq 0x148(%rsp), %rdi
cmpq %r14, %rdi
je 0x84cbf
movq 0x158(%rsp), %rsi
jmp 0x84cb7
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x814b4
jmp 0x845c7
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r14, %rdi
je 0x846b9
movq 0x138(%rsp), %rsi
jmp 0x8460e
jmp 0x846b6
jmp 0x8463d
jmp 0x84622
jmp 0x8463d
jmp 0x84622
jmp 0x8463d
jmp 0x845f8
jmp 0x846b6
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x846b9
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x846b9
jmp 0x846b6
jmp 0x8463d
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x84cbf
movq 0x30(%rsp), %rsi
jmp 0x84cb7
movq %rax, %rbx
jmp 0x84cbf
movq %rax, %rbx
jmp 0x84684
movq %rax, %rbx
jmp 0x84669
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x84669
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x84684
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x84cbf
movq 0x80(%rsp), %rsi
jmp 0x84cb7
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x814b4
jmp 0x846b9
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x84cbf
movq 0x10(%rsp), %rsi
jmp 0x84cb7
incq %rsi
callq 0x5260
incq %rbx
movq %r13, %rdi
callq 0x79e38
cmpq %rax, %rbx
jae 0x8488c
leaq (%rbx,%rbx,4), %rbp
shlq $0x4, %rbp
movq 0x18(%r13), %rdi
addq %rbp, %rdi
leaq 0xe274(%rip), %rsi      # 0x9297b
callq 0x50c0
testl %eax, %eax
jne 0x8488c
movq 0x18(%r13), %r12
movq 0x28(%r12,%rbp), %rdi
addq $0x8, %rdi
leaq 0xc9e7(%rip), %rsi      # 0x9110f
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, 0x370f8(%rip)    # 0xbb848
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 0x351dc
movl 0x370ce(%rip), %edx     # 0xbb848
leaq 0x20(%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
xorl %ecx, %ecx
callq 0x8182a
leaq 0x36f65(%rip), %rdi     # 0xbb6f8
movq %r14, %rsi
callq 0x8278a
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x847b7
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x847d3
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq %rbx, 0xd0(%rsp)
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x847f6
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 0x848a1
movl $0x4, %r14d
movl %ebx, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x84886
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x8489e
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x848a1
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x84856
addl $-0x3, %r14d
jmp 0x848a1
addl $-0x2, %r14d
jmp 0x848a1
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 0x651be
movq 0xb0(%rsp), %rcx
movl $0xf, %edi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rcx
je 0x84902
movq 0xc0(%rsp), %rdi
movq 0xb8(%rsp), %r8
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
movq 0x100(%rsp), %r13
jbe 0x8494a
movl $0xf, %edi
leaq 0xa0(%rsp), %r9
cmpq %r9, %rsi
je 0x84945
movq 0xa0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x84959
leaq 0xb0(%rsp), %rdi
callq 0x50d0
jmp 0x8496a
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 0x84995
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x8499b
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 0xe69f(%rip), %rsi      # 0x93063
callq 0x5420
leaq 0x30(%rsp), %rsi
movq %rsi, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x849f1
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x849f7
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 0x629c4
movq 0x20(%rsp), %rcx
movl $0xf, %edi
leaq 0x30(%rsp), %rbx
cmpq %rbx, %rcx
leaq 0x80(%rsp), %r15
leaq 0x118(%rsp), %rbp
je 0x84a4b
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %r8
movq 0xd8(%rsp), %rsi
movq 0xe0(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x84a88
movl $0xf, %edi
leaq 0xe8(%rsp), %r9
cmpq %r9, %rsi
je 0x84a83
movq 0xe8(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x84a94
leaq 0x20(%rsp), %rdi
callq 0x50d0
jmp 0x84aa5
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 0x84ace
movq %rdx, 0x108(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x118(%rsp)
jmp 0x84ad5
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 0x84b1a
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x20(%rsp), %rdi
cmpq %rbx, %rdi
je 0x84b31
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
movq 0xd0(%rsp), %rbx
je 0x84b53
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x84b78
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x84b9d
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x68(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x76928
movq 0x108(%rsp), %rdi
cmpq %rbp, %rdi
je 0x846dd
movq 0x118(%rsp), %rsi
jmp 0x846d5
jmp 0x846a7
movq %rax, %rbx
jmp 0x84c9a
movq %rax, %rbx
movq 0x108(%rsp), %rdi
cmpq %rbp, %rdi
je 0x84cbf
movq 0x118(%rsp), %rsi
jmp 0x84cb7
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x84c32
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x84c32
movq %rax, %rbx
jmp 0x84c4e
jmp 0x846b6
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x84c4e
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x84c75
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x84c75
movq %rax, %rbx
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x84c9a
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5260
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x84cbf
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5260
movq %rbx, %rdi
callq 0x53d0