// File: cmaureir[P]strip-packing/scattersearch.cpp
// Function: print_tikz(solution)
void print_tikz(solution sol){

 const string colors[] ={
        "blue",
        "brown",
        "cyan",
        "gray",
        "green",
        "magenta",
        "orange",
        "purple",
        "red",
        "violet",
        "yellow"};

    time_t ltime;
    struct tm *Tm;
    ltime = time(NULL);
    Tm = localtime(&ltime);

    stringstream ss;
    ss << "diagrams/";
    ss << Tm->tm_mday << "-";
    ss << Tm->tm_mon + 1  << "-";
    ss << Tm->tm_year + 1900 << "_";
    ss << Tm->tm_hour << "-";
    ss << Tm->tm_min << "-";
    ss << Tm->tm_sec << ".tex";

    string path = ss.str();
    ofstream file(path.c_str());
    file << "\\documentclass[dvipsnames]{article}\n";
    file << "\\usepackage[pdftex,active,tightpage]{preview}\n";
    file << "\\usepackage[utf8]{inputenc}\n";
    file << "\\usepackage{tikz}\n";
    file << "\\PreviewEnvironment{tikzpicture}\n";
    file << "\n";
    file << "\\begin{document}\n";
    file << "  \\begin{tikzpicture}[scale=0.75]\n";
    file << "    \\begin{scope}\n";

    file << "       \\draw (0 ," << sol.fitness << ") -- (0,0) -- (" << strip_width << ",0) -- (" << strip_width << "," << sol.fitness << ");\n";
    for (int i = 0; i < (int)sol.items.size(); i++) {
        file << "           \\filldraw["<<colors[i%11]<<",draw=black] (" << sol.a[i] << "," << sol.b[i] << ") rectangle (" << sol.a[i] + bs[sol.items[i]-1].width << "," << sol.b[i] + bs[sol.items[i]-1].height << ");\n";
        file << "           \\draw (" << sol.a[i] +  bs[sol.items[i]-1].width/2.0 << "," << sol.b[i] + bs[sol.items[i]-1].height/2.0 << ") node {" << sol.items[i] << "};\n";
        file << "\n";
    }

    file << "     \\end{scope}\n";
    file << "  \\end{tikzpicture}\n";
    file << "\\end{document}\n";

    file.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x770, %rsp            # imm = 0x770
movq %rdi, -0x570(%rbp)
movq %rdi, -0x8(%rbp)
movb $0x1, -0x197(%rbp)
leaq -0x170(%rbp), %rax
movq %rax, -0x568(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x179(%rbp), %rdi
movq %rdi, -0x560(%rbp)
callq 0x4560
movq -0x568(%rbp), %rdi
movq -0x560(%rbp), %rdx
leaq 0xf021(%rip), %rsi      # 0x170cb
callq 0xb810
jmp 0x80b1
leaq -0x150(%rbp), %rax
movq %rax, -0x580(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x18d(%rbp), %rdi
movq %rdi, -0x578(%rbp)
callq 0x4560
movq -0x580(%rbp), %rdi
movq -0x578(%rbp), %rdx
leaq 0xefe2(%rip), %rsi      # 0x170d0
callq 0xb810
jmp 0x80f5
leaq -0x130(%rbp), %rax
movq %rax, -0x590(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x18e(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0x4560
movq -0x590(%rbp), %rdi
movq -0x588(%rbp), %rdx
leaq 0xefa4(%rip), %rsi      # 0x170d6
callq 0xb810
jmp 0x8139
leaq -0x110(%rbp), %rax
movq %rax, -0x5a0(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x18f(%rbp), %rdi
movq %rdi, -0x598(%rbp)
callq 0x4560
movq -0x5a0(%rbp), %rdi
movq -0x598(%rbp), %rdx
leaq 0xef65(%rip), %rsi      # 0x170db
callq 0xb810
jmp 0x817d
leaq -0xf0(%rbp), %rax
movq %rax, -0x5b0(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x190(%rbp), %rdi
movq %rdi, -0x5a8(%rbp)
callq 0x4560
movq -0x5b0(%rbp), %rdi
movq -0x5a8(%rbp), %rdx
leaq 0xef26(%rip), %rsi      # 0x170e0
callq 0xb810
jmp 0x81c1
leaq -0xd0(%rbp), %rax
movq %rax, -0x5c0(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x191(%rbp), %rdi
movq %rdi, -0x5b8(%rbp)
callq 0x4560
movq -0x5c0(%rbp), %rdi
movq -0x5b8(%rbp), %rdx
leaq 0xeee8(%rip), %rsi      # 0x170e6
callq 0xb810
jmp 0x8205
leaq -0xb0(%rbp), %rax
movq %rax, -0x5d0(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x192(%rbp), %rdi
movq %rdi, -0x5c8(%rbp)
callq 0x4560
movq -0x5d0(%rbp), %rdi
movq -0x5c8(%rbp), %rdx
leaq 0xeeac(%rip), %rsi      # 0x170ee
callq 0xb810
jmp 0x8249
leaq -0x90(%rbp), %rax
movq %rax, -0x5e0(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x193(%rbp), %rdi
movq %rdi, -0x5d8(%rbp)
callq 0x4560
movq -0x5e0(%rbp), %rdi
movq -0x5d8(%rbp), %rdx
leaq 0xee6f(%rip), %rsi      # 0x170f5
callq 0xb810
jmp 0x828d
leaq -0x70(%rbp), %rax
movq %rax, -0x5f0(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x194(%rbp), %rdi
movq %rdi, -0x5e8(%rbp)
callq 0x4560
movq -0x5f0(%rbp), %rdi
movq -0x5e8(%rbp), %rdx
leaq 0xee35(%rip), %rsi      # 0x170fc
callq 0xb810
jmp 0x82ce
leaq -0x50(%rbp), %rax
movq %rax, -0x600(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x195(%rbp), %rdi
movq %rdi, -0x5f8(%rbp)
callq 0x4560
movq -0x600(%rbp), %rdi
movq -0x5f8(%rbp), %rdx
leaq 0xedf8(%rip), %rsi      # 0x17100
callq 0xb810
jmp 0x830f
leaq -0x30(%rbp), %rax
movq %rax, -0x610(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x196(%rbp), %rdi
movq %rdi, -0x608(%rbp)
callq 0x4560
movq -0x610(%rbp), %rdi
movq -0x608(%rbp), %rdx
leaq 0xedbe(%rip), %rsi      # 0x17107
callq 0xb810
jmp 0x8350
movb $0x0, -0x197(%rbp)
leaq -0x196(%rbp), %rdi
callq 0x4340
leaq -0x195(%rbp), %rdi
callq 0x4340
leaq -0x194(%rbp), %rdi
callq 0x4340
leaq -0x193(%rbp), %rdi
callq 0x4340
leaq -0x192(%rbp), %rdi
callq 0x4340
leaq -0x191(%rbp), %rdi
callq 0x4340
leaq -0x190(%rbp), %rdi
callq 0x4340
leaq -0x18f(%rbp), %rdi
callq 0x4340
leaq -0x18e(%rbp), %rdi
callq 0x4340
leaq -0x18d(%rbp), %rdi
callq 0x4340
leaq -0x179(%rbp), %rdi
callq 0x4340
xorl %eax, %eax
movl %eax, %edi
callq 0x42b0
movq %rax, -0x1a0(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x4200
movq %rax, -0x1a8(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x41d0
jmp 0x840c
leaq -0x320(%rbp), %rdi
leaq 0xecf4(%rip), %rsi      # 0x1710e
callq 0x42e0
jmp 0x8421
leaq -0x320(%rbp), %rdi
movq -0x1a8(%rbp), %rax
movl 0xc(%rax), %esi
callq 0x4520
movq %rax, -0x618(%rbp)
jmp 0x8440
movq -0x618(%rbp), %rdi
leaq 0xecca(%rip), %rsi      # 0x17118
callq 0x42e0
jmp 0x8455
leaq -0x320(%rbp), %rdi
movq -0x1a8(%rbp), %rax
movl 0x10(%rax), %esi
incl %esi
callq 0x4520
movq %rax, -0x620(%rbp)
jmp 0x8476
movq -0x620(%rbp), %rdi
leaq 0xec94(%rip), %rsi      # 0x17118
callq 0x42e0
jmp 0x848b
leaq -0x320(%rbp), %rdi
movq -0x1a8(%rbp), %rax
movl 0x14(%rax), %esi
addl $0x76c, %esi            # imm = 0x76C
callq 0x4520
movq %rax, -0x628(%rbp)
jmp 0x84b0
movq -0x628(%rbp), %rdi
leaq 0xec5c(%rip), %rsi      # 0x1711a
callq 0x42e0
jmp 0x84c5
leaq -0x320(%rbp), %rdi
movq -0x1a8(%rbp), %rax
movl 0x8(%rax), %esi
callq 0x4520
movq %rax, -0x630(%rbp)
jmp 0x84e4
movq -0x630(%rbp), %rdi
leaq 0xec26(%rip), %rsi      # 0x17118
callq 0x42e0
jmp 0x84f9
leaq -0x320(%rbp), %rdi
movq -0x1a8(%rbp), %rax
movl 0x4(%rax), %esi
callq 0x4520
movq %rax, -0x638(%rbp)
jmp 0x8518
movq -0x638(%rbp), %rdi
leaq 0xebf2(%rip), %rsi      # 0x17118
callq 0x42e0
jmp 0x852d
leaq -0x320(%rbp), %rdi
movq -0x1a8(%rbp), %rax
movl (%rax), %esi
callq 0x4520
movq %rax, -0x640(%rbp)
jmp 0x854b
movq -0x640(%rbp), %rdi
leaq 0xebc3(%rip), %rsi      # 0x1711c
callq 0x42e0
jmp 0x8560
leaq -0x350(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x42d0
jmp 0x8575
leaq -0x350(%rbp), %rdi
callq 0x4100
movq %rax, %rsi
leaq -0x550(%rbp), %rdi
movl $0x10, %edx
callq 0x4350
jmp 0x8597
leaq 0xeb83(%rip), %rsi      # 0x17121
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x85ac
leaq 0xeb93(%rip), %rsi      # 0x17146
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x85c1
leaq 0xebad(%rip), %rsi      # 0x17175
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x85d6
leaq 0xebb5(%rip), %rsi      # 0x17192
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x85eb
leaq 0xebb3(%rip), %rsi      # 0x171a5
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x8600
leaq 0xec2c(%rip), %rsi      # 0x17233
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x8615
leaq 0xebab(%rip), %rsi      # 0x171c7
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x862a
leaq 0xeba8(%rip), %rsi      # 0x171d9
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x863f
leaq 0xebb6(%rip), %rsi      # 0x171fc
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x8654
leaq 0xebb4(%rip), %rsi      # 0x1720f
leaq -0x550(%rbp), %rdi
callq 0x42e0
movq %rax, -0x648(%rbp)
jmp 0x8670
movq -0x648(%rbp), %rdi
movq -0x570(%rbp), %rax
movss 0x50(%rax), %xmm0
callq 0x4210
movq %rax, -0x650(%rbp)
jmp 0x8691
movq -0x650(%rbp), %rdi
leaq 0xeb82(%rip), %rsi      # 0x17221
callq 0x42e0
movq %rax, -0x658(%rbp)
jmp 0x86ad
movq -0x658(%rbp), %rdi
movl 0x19d5e(%rip), %esi     # 0x22418
callq 0x4520
movq %rax, -0x660(%rbp)
jmp 0x86c8
movq -0x660(%rbp), %rdi
leaq 0xeb52(%rip), %rsi      # 0x17228
callq 0x42e0
movq %rax, -0x668(%rbp)
jmp 0x86e4
movq -0x668(%rbp), %rdi
movl 0x19d27(%rip), %esi     # 0x22418
callq 0x4520
movq %rax, -0x670(%rbp)
jmp 0x86ff
movq -0x670(%rbp), %rdi
leaq 0xeb12(%rip), %rsi      # 0x1721f
callq 0x42e0
movq %rax, -0x678(%rbp)
jmp 0x871b
movq -0x678(%rbp), %rdi
movq -0x570(%rbp), %rax
movss 0x50(%rax), %xmm0
callq 0x4210
movq %rax, -0x680(%rbp)
jmp 0x873c
movq -0x680(%rbp), %rdi
leaq 0xeae7(%rip), %rsi      # 0x17231
callq 0x42e0
jmp 0x8751
movl $0x0, -0x554(%rbp)
movq -0x570(%rbp), %rdi
movl -0x554(%rbp), %eax
movl %eax, -0x684(%rbp)
callq 0x53e0
movq %rax, %rcx
movl -0x684(%rbp), %eax
cmpl %ecx, %eax
jge 0x8d80
leaq 0xeaaa(%rip), %rsi      # 0x17235
leaq -0x550(%rbp), %rdi
callq 0x42e0
movq %rax, -0x690(%rbp)
jmp 0x87a0
movq -0x690(%rbp), %rdi
movslq -0x554(%rbp), %rcx
movl %ecx, %eax
imulq $0x2e8ba2e9, %rcx, %rdx # imm = 0x2E8BA2E9
movq %rdx, %rcx
shrq $0x3f, %rcx
sarq $0x21, %rdx
addl %ecx, %edx
movl %edx, %ecx
leal (%rcx,%rcx,4), %esi
movl %esi, %edx
leal (%rcx,%rdx,2), %ecx
subl %ecx, %eax
cltq
shlq $0x5, %rax
leaq -0x170(%rbp,%rax), %rsi
callq 0x4290
movq %rax, -0x698(%rbp)
jmp 0x87ec
movq -0x698(%rbp), %rdi
leaq 0xea51(%rip), %rsi      # 0x1724b
callq 0x42e0
movq %rax, -0x6a0(%rbp)
jmp 0x8808
movq -0x570(%rbp), %rdi
addq $0x18, %rdi
movslq -0x554(%rbp), %rsi
callq 0xbcc0
movq -0x6a0(%rbp), %rdi
movl (%rax), %esi
callq 0x4520
movq %rax, -0x6a8(%rbp)
jmp 0x8836
movq -0x6a8(%rbp), %rdi
leaq 0xe9db(%rip), %rsi      # 0x1721f
callq 0x42e0
movq %rax, -0x6b0(%rbp)
jmp 0x8852
movq -0x570(%rbp), %rdi
addq $0x30, %rdi
movslq -0x554(%rbp), %rsi
callq 0xbcc0
movq -0x6b0(%rbp), %rdi
movl (%rax), %esi
callq 0x4520
movq %rax, -0x6b8(%rbp)
jmp 0x8880
movq -0x6b8(%rbp), %rdi
leaq 0xe9cc(%rip), %rsi      # 0x1725a
callq 0x42e0
movq %rax, -0x6c0(%rbp)
jmp 0x889c
movq -0x570(%rbp), %rdi
addq $0x18, %rdi
movslq -0x554(%rbp), %rsi
callq 0xbcc0
movq -0x570(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x6cc(%rbp)
movslq -0x554(%rbp), %rsi
callq 0xbcc0
movl (%rax), %eax
decl %eax
movslq %eax, %rsi
leaq 0x19b24(%rip), %rdi     # 0x22400
callq 0xbce0
movl -0x6cc(%rbp), %esi
movq -0x6c0(%rbp), %rdi
movl 0x8(%rax), %eax
addl %eax, %esi
callq 0x4520
movq %rax, -0x6c8(%rbp)
jmp 0x8901
movq -0x6c8(%rbp), %rdi
leaq 0xe910(%rip), %rsi      # 0x1721f
callq 0x42e0
movq %rax, -0x6d8(%rbp)
jmp 0x891d
movq -0x570(%rbp), %rdi
addq $0x30, %rdi
movslq -0x554(%rbp), %rsi
callq 0xbcc0
movq -0x570(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x6e4(%rbp)
movslq -0x554(%rbp), %rsi
callq 0xbcc0
movl (%rax), %eax
decl %eax
movslq %eax, %rsi
leaq 0x19aa3(%rip), %rdi     # 0x22400
callq 0xbce0
movl -0x6e4(%rbp), %esi
movq -0x6d8(%rbp), %rdi
movl 0x4(%rax), %eax
addl %eax, %esi
callq 0x4520
movq %rax, -0x6e0(%rbp)
jmp 0x8982
movq -0x6e0(%rbp), %rdi
leaq 0xe8a1(%rip), %rsi      # 0x17231
callq 0x42e0
jmp 0x8997
leaq 0xe8ca(%rip), %rsi      # 0x17268
leaq -0x550(%rbp), %rdi
callq 0x42e0
movq %rax, -0x6f0(%rbp)
jmp 0x89b3
movq -0x570(%rbp), %rdi
addq $0x18, %rdi
movslq -0x554(%rbp), %rsi
callq 0xbcc0
movq -0x570(%rbp), %rdi
cvtsi2sdl (%rax), %xmm0
movsd %xmm0, -0x700(%rbp)
movslq -0x554(%rbp), %rsi
callq 0xbcc0
movl (%rax), %eax
decl %eax
movslq %eax, %rsi
leaq 0x19a09(%rip), %rdi     # 0x22400
callq 0xbce0
movsd -0x700(%rbp), %xmm0
movq -0x6f0(%rbp), %rdi
cvtsi2sdl 0x8(%rax), %xmm1
movsd 0xe5f0(%rip), %xmm2     # 0x17008
mulsd %xmm2, %xmm1
addsd %xmm1, %xmm0
callq 0x45c0
movq %rax, -0x6f8(%rbp)
jmp 0x8a2e
movq -0x6f8(%rbp), %rdi
leaq 0xe7e3(%rip), %rsi      # 0x1721f
callq 0x42e0
movq %rax, -0x708(%rbp)
jmp 0x8a4a
movq -0x570(%rbp), %rdi
addq $0x30, %rdi
movslq -0x554(%rbp), %rsi
callq 0xbcc0
movq -0x570(%rbp), %rdi
cvtsi2sdl (%rax), %xmm0
movsd %xmm0, -0x718(%rbp)
movslq -0x554(%rbp), %rsi
callq 0xbcc0
movl (%rax), %eax
decl %eax
movslq %eax, %rsi
leaq 0x19972(%rip), %rdi     # 0x22400
callq 0xbce0
movsd -0x718(%rbp), %xmm0
movq -0x708(%rbp), %rdi
cvtsi2sdl 0x4(%rax), %xmm1
movsd 0xe559(%rip), %xmm2     # 0x17008
mulsd %xmm2, %xmm1
addsd %xmm1, %xmm0
callq 0x45c0
movq %rax, -0x710(%rbp)
jmp 0x8ac5
movq -0x710(%rbp), %rdi
leaq 0xe7a8(%rip), %rsi      # 0x1727b
callq 0x42e0
movq %rax, -0x720(%rbp)
jmp 0x8ae1
movq -0x570(%rbp), %rdi
movslq -0x554(%rbp), %rsi
callq 0xbcc0
movq -0x720(%rbp), %rdi
movl (%rax), %esi
callq 0x4520
movq %rax, -0x728(%rbp)
jmp 0x8b0b
movq -0x728(%rbp), %rdi
leaq 0xe76b(%rip), %rsi      # 0x17284
callq 0x42e0
jmp 0x8b20
leaq 0xe70c(%rip), %rsi      # 0x17233
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x8b35
jmp 0x8b37
movl -0x554(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x554(%rbp)
jmp 0x875b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8caf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8ca3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8c97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8c8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8c7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8c73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8c67
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8c5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8c4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8c43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x196(%rbp), %rdi
callq 0x4340
leaq -0x195(%rbp), %rdi
callq 0x4340
leaq -0x194(%rbp), %rdi
callq 0x4340
leaq -0x193(%rbp), %rdi
callq 0x4340
leaq -0x192(%rbp), %rdi
callq 0x4340
leaq -0x191(%rbp), %rdi
callq 0x4340
leaq -0x190(%rbp), %rdi
callq 0x4340
leaq -0x18f(%rbp), %rdi
callq 0x4340
leaq -0x18e(%rbp), %rdi
callq 0x4340
leaq -0x18d(%rbp), %rdi
callq 0x4340
leaq -0x179(%rbp), %rdi
callq 0x4340
testb $0x1, -0x197(%rbp)
jne 0x8cc6
jmp 0x8d13
movq -0x178(%rbp), %rax
leaq -0x170(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x730(%rbp)
je 0x8d11
movq -0x730(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x738(%rbp)
callq 0x4190
movq -0x738(%rbp), %rax
leaq -0x170(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x730(%rbp)
jne 0x8ce0
jmp 0x8d13
jmp 0x8eac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8e5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8e52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
jmp 0x8e46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x188(%rbp)
movl %eax, -0x18c(%rbp)
leaq -0x550(%rbp), %rdi
callq 0x4460
jmp 0x8e46
leaq 0xe501(%rip), %rsi      # 0x17288
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x8d95
leaq 0xe4fe(%rip), %rsi      # 0x1729a
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x8daa
leaq 0xe4fe(%rip), %rsi      # 0x172af
leaq -0x550(%rbp), %rdi
callq 0x42e0
jmp 0x8dbf
leaq -0x550(%rbp), %rdi
callq 0x4440
jmp 0x8dcd
leaq -0x550(%rbp), %rdi
callq 0x4460
leaq -0x350(%rbp), %rdi
callq 0x4190
leaq -0x330(%rbp), %rdi
callq 0x4220
leaq -0x170(%rbp), %rax
movq %rax, -0x748(%rbp)
addq $0x160, %rax            # imm = 0x160
movq %rax, -0x740(%rbp)
movq -0x740(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x750(%rbp)
callq 0x4190
movq -0x748(%rbp), %rcx
movq -0x750(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x740(%rbp)
jne 0x8e0c
addq $0x770, %rsp            # imm = 0x770
popq %rbp
retq
leaq -0x350(%rbp), %rdi
callq 0x4190
leaq -0x330(%rbp), %rdi
callq 0x4220
leaq -0x170(%rbp), %rax
movq %rax, -0x760(%rbp)
addq $0x160, %rax            # imm = 0x160
movq %rax, -0x758(%rbp)
movq -0x758(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x768(%rbp)
callq 0x4190
movq -0x760(%rbp), %rcx
movq -0x768(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x758(%rbp)
jne 0x8e79
jmp 0x8eac
movq -0x188(%rbp), %rdi
callq 0x4550
nopl (%rax,%rax)