// File: /workspace/github_cpp_makefile_star2_O3/temelmertcan[P]multgen/src/adders.cpp
// Function: create_ks_adder(int, bool, std::queue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<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>>>>>&)
void create_ks_adder (int size, bool carryin, std::queue<string>& verilog){

  int index = 0;

  string* g = new string[size];
  string* p = new string[size];

  string* gtmp = new string[size];
  string* ptmp = new string[size];

  ppx_preprocess(size,  carryin, index, "KS", gtmp, ptmp, verilog);
  pgtmp_to_pg(size, gtmp, g);
  pgtmp_to_pg(size, ptmp, p);

  verilog.push("\n// Kogge-Stone Adder \n");

  int stage=0;

  // ks steps
  for (int diff = 1; diff < size; diff *= 2){
    verilog.push("");
    verilog.push("// KS stage " + to_string(++stage));

    for (int i=diff; i < size; i++){

      string new_p = "p_" + to_string(stage)+ "_" + to_string(i);
      string new_g = "g_" + to_string(stage)+ "_" + to_string(i);

      verilog.push ("wire logic "+ new_p + ";");
      verilog.push ("wire logic "+ new_g + ";");

      verilog.push ("assign "+ new_p + " = " + p[i] + " & " + p[i-diff] + ";");
      verilog.push ("assign "+ new_g + " = (" + p[i] + " & " + g[i-diff] + ") | " + g[i] + ";");

      gtmp[i] =  new_g;
      ptmp[i] =  new_p;
    }

    pgtmp_to_pg(size, gtmp, g);
    pgtmp_to_pg(size, ptmp, p);
  }

  verilog.push("");
  verilog.push("// KS postprocess ");

  ppx_postprocess (size, index, g, p, verilog);

  delete[] p;
  delete[] g;

  delete[] ptmp;
  delete[] gtmp;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movq %rdx, -0x138(%rbp)
movl %esi, %r15d
movl %edi, -0x4c(%rbp)
movslq %edi, %r12
movq %r12, %rbx
shlq $0x5, %rbx
leaq 0x8(%rbx), %rax
testl %r12d, %r12d
movq $-0x1, %r13
movq %rax, -0x58(%rbp)
cmovnsq %rax, %r13
movq %r13, %rdi
callq 0x3030
leaq 0x8(%rax), %r14
movq %r12, (%rax)
testl %r12d, %r12d
movl %r15d, -0x108(%rbp)
je 0x352d4
addq $0x18, %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
addq $0x20, %rax
addq $-0x20, %rbx
jne 0x351d2
movq %r14, -0x148(%rbp)
movq %r13, %rdi
callq 0x3030
movq %rax, %r15
movq %r12, (%rax)
addq $0x8, %rax
movq %rax, -0x158(%rbp)
movq %r12, -0x58(%rbp)
movq %r12, %rbx
shlq $0x5, %rbx
movq %rbx, %r12
negq %r12
movl $0x18, %eax
leaq (%r15,%rax), %rcx
movq %rcx, -0x10(%r15,%rax)
movq $0x0, -0x8(%r15,%rax)
movb $0x0, (%r15,%rax)
leaq (%r12,%rax), %rcx
addq $0x20, %rcx
addq $0x20, %rax
cmpq $0x18, %rcx
jne 0x35221
movq %r13, -0x110(%rbp)
movq %r13, %rdi
callq 0x3030
movq %rax, %r13
movq -0x58(%rbp), %rax
movq %rax, (%r13)
leaq 0x8(%r13), %rax
movl $0x18, %ecx
leaq (%rcx,%r13), %rdx
movq %rdx, -0x10(%r13,%rcx)
movq $0x0, -0x8(%r13,%rcx)
movb $0x0, (%r13,%rcx)
leaq (%r12,%rcx), %rdx
addq $0x20, %rdx
addq $0x20, %rcx
cmpq $0x18, %rdx
jne 0x3526d
movq %rax, -0x140(%rbp)
movq -0x110(%rbp), %rdi
callq 0x3030
movq -0x58(%rbp), %rcx
movq %rcx, (%rax)
leaq 0x8(%rax), %r12
addq $0x18, %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
addq $0x20, %rax
addq $-0x20, %rbx
jne 0x352b9
jmp 0x35326
movq %r14, -0x148(%rbp)
movq -0x58(%rbp), %rbx
movq %rbx, %rdi
callq 0x3030
movq %rax, %r15
movq %r12, (%rax)
addq $0x8, %rax
movq %rax, -0x158(%rbp)
movq %rbx, %rdi
callq 0x3030
movq %rax, %r13
movq %r12, (%rax)
addq $0x8, %rax
movq %rax, -0x140(%rbp)
movq %rbx, %rdi
callq 0x3030
movq %r12, %rcx
movq %rax, %r12
movq %rcx, (%rax)
addq $0x8, %r12
leaq -0x160(%rbp), %rax
movq %r12, (%rax)
leaq -0x1b8(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x4239d(%rip), %rsi     # 0x776df
leaq 0x42398(%rip), %rdx     # 0x776e1
leaq -0x1c8(%rbp), %rbx
movq %rbx, %rdi
callq 0x2ac04
movq -0x138(%rbp), %rax
movq %rax, (%rsp)
movzbl -0x108(%rbp), %esi
leaq -0x140(%rbp), %r8
movl -0x4c(%rbp), %edi
movq %rbx, %rcx
leaq -0x160(%rbp), %r9
callq 0x2daef
movq -0x1c8(%rbp), %rdi
leaq -0x1b8(%rbp), %rax
cmpq %rax, %rdi
je 0x3539b
callq 0x31d0
movl -0x4c(%rbp), %eax
movl %eax, %ecx
movq %rcx, -0x150(%rbp)
testl %eax, %eax
jle 0x353f1
addq $0x8, %r13
movq -0x150(%rbp), %rbx
movq %r14, %rdi
movq %r13, %rsi
callq 0x3120
addq $0x20, %r14
addq $0x20, %r13
decq %rbx
jne 0x353b6
addq $0x8, %r15
movq -0x150(%rbp), %rbx
movq %r15, %rdi
movq %r12, %rsi
callq 0x3120
addq $0x20, %r15
addq $0x20, %r12
decq %rbx
jne 0x353d9
leaq -0x88(%rbp), %rax
movq %rax, %r15
movq %rax, -0x10(%rax)
leaq 0x438ed(%rip), %rsi     # 0x78cf3
leaq 0x438fd(%rip), %rdx     # 0x78d0a
leaq -0x98(%rbp), %rdi
callq 0x2ac04
leaq -0x98(%rbp), %rsi
movq -0x138(%rbp), %r14
movq %r14, %rdi
callq 0x2a942
movq -0x98(%rbp), %rdi
movq %r15, %rax
cmpq %r15, %rdi
je 0x35446
callq 0x31d0
movq %r15, %rax
cmpl $0x2, -0x4c(%rbp)
jl 0x36418
movq $0x0, -0x110(%rbp)
movl $0x1, -0xbc(%rbp)
leaq -0x98(%rbp), %rbx
leaq -0x78(%rbp), %r12
movl $0xd1b71759, %r15d      # imm = 0xD1B71759
movq %rax, %r13
movq %rax, -0x98(%rbp)
movq %rbx, %rdi
leaq 0x44177(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2a942
movq -0x98(%rbp), %rdi
cmpq %r13, %rdi
je 0x354ae
callq 0x31d0
movq -0x110(%rbp), %rax
leal 0x1(%rax), %r14d
movl $0x1, %ebx
cmpl $0x9, %eax
movl %r14d, -0x58(%rbp)
jb 0x3550e
movl $0x4, %ebx
cmpl $0x63, %r14d
jbe 0x35503
cmpl $0x3e7, %r14d           # imm = 0x3E7
jbe 0x35508
cmpl $0x2710, %r14d          # imm = 0x2710
jb 0x3550a
movl %r14d, %ecx
imulq %r15, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %r14d         # imm = 0x1869F
movl %ecx, %r14d
ja 0x354cc
addl $-0x3, %ebx
jmp 0x3550a
addl $-0x2, %ebx
jmp 0x3550a
decl %ebx
movl -0x58(%rbp), %r14d
movl %ebx, %esi
leaq -0xd0(%rbp), %rax
movq %rax, -0xe0(%rbp)
leaq -0xe0(%rbp), %r15
movq %r15, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0xe0(%rbp), %rdi
movl %ebx, %esi
movl %r14d, %edx
callq 0x2a6a5
movl $0xc, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x437b4(%rip), %rcx     # 0x78d0b
callq 0x3230
movq %r13, -0x98(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x98(%rbp), %rsi
movq -0x138(%rbp), %rdi
je 0x35593
movq %rdx, -0x98(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x88(%rbp)
jmp 0x3559b
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movl $0xd1b71759, %r15d      # imm = 0xD1B71759
movq 0x8(%rax), %rdx
movq %rdx, -0x90(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x2a942
movq -0x98(%rbp), %rdi
cmpq %r13, %rdi
je 0x355d1
callq 0x31d0
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x355e9
callq 0x31d0
movl -0xbc(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jge 0x36386
movslq -0xbc(%rbp), %rax
movq %rax, -0x1a8(%rbp)
movq %rax, -0x108(%rbp)
movl $0x1, %ebx
cmpl $0x9, -0x110(%rbp)
leaq -0x68(%rbp), %rdx
movl -0x58(%rbp), %r14d
jb 0x35660
movl $0x4, %ebx
movl %r14d, %eax
cmpl $0x63, %eax
jbe 0x35659
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3565e
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x35660
movl %eax, %ecx
imulq %r15, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3562b
addl $-0x3, %ebx
jmp 0x35660
addl $-0x2, %ebx
jmp 0x35660
decl %ebx
movl %ebx, %esi
movq %rdx, -0x78(%rbp)
movq %r12, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x78(%rbp), %rdi
movl %ebx, %esi
movl %r14d, %edx
callq 0x2a6a5
movl $0x2, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x42f24(%rip), %rcx     # 0x785b9
callq 0x3230
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x356be
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x356c4
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x48(%rbp), %rdi
leaq 0x43a90(%rip), %rsi     # 0x79176
callq 0x33d0
leaq -0xd0(%rbp), %rsi
movq %rsi, -0xe0(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3571b
movq %rdx, -0xe0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xd0(%rbp)
jmp 0x35721
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
leaq -0xa8(%rbp), %rdi
movq 0x8(%rax), %rdx
movq %rdx, -0xd8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x108(%rbp), %r14
movl %r14d, %r12d
negl %r12d
cmovsl %r14d, %r12d
movl $0x1, %ebx
cmpl $0xa, %r12d
jb 0x3579b
movl $0x4, %ebx
movl %r12d, %eax
cmpl $0x63, %eax
jbe 0x35794
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x35799
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3579b
movl %eax, %ecx
imulq %r15, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x35766
addl $-0x3, %ebx
jmp 0x3579b
addl $-0x2, %ebx
jmp 0x3579b
decl %ebx
shrl $0x1f, %r14d
leal (%rbx,%r14), %esi
movq %rdi, -0xb8(%rbp)
leaq -0xb8(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movl %r14d, %r13d
movq -0xb8(%rbp), %rdi
addq %r13, %rdi
movl %ebx, %esi
movl %r12d, %edx
callq 0x2a6a5
movq -0xe0(%rbp), %rcx
movl $0xf, %edi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rcx
je 0x357f1
movq -0xd0(%rbp), %rdi
movq -0xd8(%rbp), %r8
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x3582c
movl $0xf, %edi
leaq -0xa8(%rbp), %r9
cmpq %r9, %rsi
je 0x35827
movq -0xa8(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x3583a
leaq -0xe0(%rbp), %rdi
callq 0x30a0
jmp 0x3584a
leaq -0xb8(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x88(%rbp), %rsi
movq %rsi, -0x98(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x35877
movq %rdx, -0x98(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x88(%rbp)
jmp 0x3587d
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x90(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x358b4
callq 0x31d0
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x358cc
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x358de
callq 0x31d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x358f0
callq 0x31d0
movl $0x1, %ebx
cmpl $0x9, -0x110(%rbp)
leaq -0xa8(%rbp), %rdx
jb 0x35942
movl $0x4, %ebx
movl -0x58(%rbp), %eax
cmpl $0x63, %eax
jbe 0x3593b
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x35940
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x35942
movl %eax, %ecx
imulq %r15, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3590d
addl $-0x3, %ebx
jmp 0x35942
addl $-0x2, %ebx
jmp 0x35942
decl %ebx
movl %ebx, %esi
movq %rdx, -0xb8(%rbp)
leaq -0xb8(%rbp), %r15
movq %r15, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0xb8(%rbp), %rdi
movl %ebx, %esi
movl -0x58(%rbp), %edx
callq 0x2a6a5
movl $0x2, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x4331e(%rip), %rcx     # 0x78ca2
callq 0x3230
leaq -0x68(%rbp), %rsi
movq %rsi, -0x78(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x359ad
movq %rdx, -0x78(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x68(%rbp)
jmp 0x359b3
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movl $0xd1b71759, %r15d      # imm = 0xD1B71759
movq 0x8(%rax), %rdx
movq %rdx, -0x70(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x78(%rbp), %rdi
leaq 0x4379b(%rip), %rsi     # 0x79176
callq 0x33d0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x35a04
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x35a0a
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
leaq -0xf0(%rbp), %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %ebx
cmpl $0xa, %r12d
jb 0x35a70
movl $0x4, %ebx
movl %r12d, %eax
cmpl $0x63, %eax
jbe 0x35a69
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x35a6e
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x35a70
movl %eax, %ecx
imulq %r15, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x35a3b
addl $-0x3, %ebx
jmp 0x35a70
addl $-0x2, %ebx
jmp 0x35a70
decl %ebx
addl %ebx, %r14d
movq %rsi, -0x100(%rbp)
leaq -0x100(%rbp), %rdi
movq %r14, %rsi
movl $0x2d, %edx
callq 0x3250
addq -0x100(%rbp), %r13
movq %r13, %rdi
movl %ebx, %esi
movl %r12d, %edx
callq 0x2a6a5
movq -0x48(%rbp), %rcx
movl $0xf, %edi
leaq -0x38(%rbp), %rax
cmpq %rax, %rcx
je 0x35ab8
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %r8
movq -0x100(%rbp), %rsi
movq -0xf8(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
movq -0x138(%rbp), %r15
movq -0x158(%rbp), %r14
leaq -0x98(%rbp), %rbx
leaq -0x78(%rbp), %r12
jbe 0x35b09
movl $0xf, %edi
leaq -0xf0(%rbp), %r9
cmpq %r9, %rsi
je 0x35b04
movq -0xf0(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x35b14
leaq -0x48(%rbp), %rdi
callq 0x30a0
jmp 0x35b24
leaq -0x100(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0xd0(%rbp), %rsi
movq %rsi, -0xe0(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x35b51
movq %rdx, -0xe0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xd0(%rbp)
jmp 0x35b57
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0xd8(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x35b8e
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x35ba0
callq 0x31d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x35bb2
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x35bca
callq 0x31d0
movq %r12, %rdi
leaq 0x430b5(%rip), %rsi     # 0x78c89
movq %rbx, %rdx
callq 0x2a567
movq %r12, %rdi
leaq 0x43b2b(%rip), %rsi     # 0x79711
callq 0x33d0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x35c0f
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x35c15
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0x2a942
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x35c4a
callq 0x31d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x35c5c
callq 0x31d0
movq %r12, %rdi
leaq 0x43023(%rip), %rsi     # 0x78c89
leaq -0xe0(%rbp), %rdx
callq 0x2a567
movq %r12, %rdi
leaq 0x43a95(%rip), %rsi     # 0x79711
callq 0x33d0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x35ca5
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x35cab
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0x2a942
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x35ce0
callq 0x31d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x35cf2
callq 0x31d0
leaq -0x1a0(%rbp), %r12
movq %r12, %rdi
leaq 0x428ac(%rip), %rsi     # 0x785af
movq %rbx, %rdx
callq 0x2a567
movq %r12, %rdi
leaq 0x4253e(%rip), %rsi     # 0x78253
callq 0x33d0
leaq -0x120(%rbp), %rsi
movq %rsi, -0x130(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x35d4a
movq %rdx, -0x130(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x120(%rbp)
jmp 0x35d50
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x128(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x108(%rbp), %r12
shlq $0x5, %r12
movq (%r14,%r12), %rsi
movq 0x8(%r14,%r12), %rdx
leaq -0x130(%rbp), %rdi
callq 0x30a0
leaq -0xf0(%rbp), %rsi
movq %rsi, -0x100(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x35dba
movq %rdx, -0x100(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xf0(%rbp)
jmp 0x35dc0
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xf8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x100(%rbp), %rdi
leaq 0x433cd(%rip), %rsi     # 0x791b5
callq 0x33d0
leaq -0xa8(%rbp), %rsi
movq %rsi, -0xb8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x35e1d
movq %rdx, -0xb8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa8(%rbp)
jmp 0x35e23
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xb0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x108(%rbp), %rbx
subq -0x1a8(%rbp), %rbx
shlq $0x5, %rbx
movq (%r14,%rbx), %rsi
movq 0x8(%r14,%rbx), %rdx
leaq -0xb8(%rbp), %rdi
callq 0x30a0
leaq -0x68(%rbp), %rsi
movq %rsi, -0x78(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x35e88
movq %rdx, -0x78(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x68(%rbp)
jmp 0x35e8e
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x70(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x78(%rbp), %rdi
leaq 0x43861(%rip), %rsi     # 0x79711
callq 0x33d0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x35ed9
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x35edf
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0x2a942
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x35f14
callq 0x31d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x35f26
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x35f3e
callq 0x31d0
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x35f56
callq 0x31d0
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x35f6e
callq 0x31d0
movq -0x1a0(%rbp), %rdi
leaq -0x190(%rbp), %rax
cmpq %rax, %rdi
je 0x35f86
callq 0x31d0
leaq -0x1e8(%rbp), %r13
movq %r13, %rdi
leaq 0x42618(%rip), %rsi     # 0x785af
leaq -0xe0(%rbp), %rdx
callq 0x2a567
movq %r13, %rdi
leaq 0x424fa(%rip), %rsi     # 0x784a7
callq 0x33d0
leaq -0x170(%rbp), %rsi
movq %rsi, -0x180(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x35fe2
movq %rdx, -0x180(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x170(%rbp)
jmp 0x35fe8
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
leaq (%r14,%r12), %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x178(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rdx), %rsi
movq 0x8(%rdx), %rdx
leaq -0x180(%rbp), %rdi
callq 0x30a0
leaq -0x190(%rbp), %rsi
movq %rsi, -0x1a0(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x36049
movq %rdx, -0x1a0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x190(%rbp)
jmp 0x3604f
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
leaq -0x120(%rbp), %r14
movq 0x8(%rax), %rdx
movq %rdx, -0x198(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x1a0(%rbp), %rdi
leaq 0x43137(%rip), %rsi     # 0x791b5
callq 0x33d0
movq %r14, -0x130(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x360ac
movq %rdx, -0x130(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x120(%rbp)
jmp 0x360b3
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, -0x128(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x148(%rbp), %r14
movq (%r14,%rbx), %rsi
movq 0x8(%r14,%rbx), %rdx
leaq -0x130(%rbp), %rdi
callq 0x30a0
leaq -0xf0(%rbp), %rsi
movq %rsi, -0x100(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x36119
movq %rdx, -0x100(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xf0(%rbp)
jmp 0x3611f
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xf8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x100(%rbp), %rdi
leaq 0x42f51(%rip), %rsi     # 0x79098
callq 0x33d0
leaq -0xa8(%rbp), %rsi
movq %rsi, -0xb8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3617c
movq %rdx, -0xb8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa8(%rbp)
jmp 0x36182
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xb0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%r14,%r12), %rsi
movq 0x8(%r14,%r12), %rdx
leaq -0xb8(%rbp), %rdi
callq 0x30a0
leaq -0x68(%rbp), %rsi
movq %rsi, -0x78(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x120(%rbp), %r14
je 0x361dc
movq %rdx, -0x78(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x68(%rbp)
jmp 0x361e2
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x70(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x78(%rbp), %rdi
leaq 0x4350d(%rip), %rsi     # 0x79711
callq 0x33d0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3622d
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x36233
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0x2a942
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
leaq -0x170(%rbp), %rbx
je 0x3626f
callq 0x31d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
movl $0xd1b71759, %r15d      # imm = 0xD1B71759
je 0x36287
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x3629f
callq 0x31d0
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x362b7
callq 0x31d0
movq -0x130(%rbp), %rdi
cmpq %r14, %rdi
je 0x362c8
callq 0x31d0
movq -0x1a0(%rbp), %rdi
leaq -0x190(%rbp), %rax
cmpq %rax, %rdi
je 0x362e0
callq 0x31d0
movq -0x180(%rbp), %rdi
cmpq %rbx, %rdi
je 0x362f1
callq 0x31d0
movq -0x1e8(%rbp), %rdi
leaq -0x1d8(%rbp), %rax
cmpq %rax, %rdi
leaq -0x98(%rbp), %rbx
je 0x36310
callq 0x31d0
movq -0x140(%rbp), %rdi
addq %r12, %rdi
leaq -0xe0(%rbp), %rsi
callq 0x3120
addq -0x160(%rbp), %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x3120
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x36350
callq 0x31d0
movq -0x98(%rbp), %rdi
leaq -0x88(%rbp), %r13
cmpq %r13, %rdi
leaq -0x78(%rbp), %r12
je 0x3636c
callq 0x31d0
movq -0x108(%rbp), %rax
incq %rax
movq %rax, -0x108(%rbp)
cmpl -0x4c(%rbp), %eax
jne 0x3560d
movq -0x140(%rbp), %rbx
movq -0x148(%rbp), %r14
movq -0x150(%rbp), %r15
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3120
addq $0x20, %r14
addq $0x20, %rbx
decq %r15
jne 0x3639b
movq -0x160(%rbp), %rbx
movq -0x158(%rbp), %r14
movq -0x150(%rbp), %r15
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3120
addq $0x20, %r14
addq $0x20, %rbx
decq %r15
jne 0x363c8
movl -0xbc(%rbp), %eax
addl %eax, %eax
movl -0x58(%rbp), %ecx
movq %rcx, -0x110(%rbp)
movl %eax, -0xbc(%rbp)
cmpl -0x4c(%rbp), %eax
movq -0x138(%rbp), %r14
leaq -0x98(%rbp), %rbx
movq %r13, %rax
movl $0xd1b71759, %r15d      # imm = 0xD1B71759
jl 0x35476
leaq -0x98(%rbp), %rdi
movq %rax, %r15
movq %rax, (%rdi)
leaq 0x431d5(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x98(%rbp), %rsi
movq %r14, %rdi
callq 0x2a942
movq -0x98(%rbp), %rdi
movq %r15, %rax
cmpq %r15, %rdi
je 0x3645a
callq 0x31d0
movq %r15, %rax
leaq -0x98(%rbp), %rdi
movq %rax, (%rdi)
leaq 0x428ad(%rip), %rsi     # 0x78d18
leaq 0x428b8(%rip), %rdx     # 0x78d2a
callq 0x2ac04
leaq -0x98(%rbp), %rsi
movq %r14, %rdi
callq 0x2a942
movq -0x98(%rbp), %rdi
cmpq %r15, %rdi
je 0x36497
callq 0x31d0
leaq -0x148(%rbp), %rdx
movl -0x4c(%rbp), %edi
movq %r14, %r8
callq 0x2f814
movq -0x158(%rbp), %rax
leaq -0x8(%rax), %rbx
movq -0x8(%rax), %r14
testq %r14, %r14
je 0x364e4
shlq $0x5, %r14
leaq (%r14,%rax), %r15
addq $-0x10, %r15
negq %r14
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x364da
callq 0x31d0
addq $-0x20, %r15
addq $0x20, %r14
jne 0x364cc
movq %rbx, %rdi
callq 0x3280
movq -0x148(%rbp), %rax
testq %rax, %rax
je 0x36534
leaq -0x8(%rax), %rbx
movq -0x8(%rax), %r14
testq %r14, %r14
je 0x3652c
shlq $0x5, %r14
leaq (%r14,%rax), %r15
addq $-0x10, %r15
negq %r14
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x36522
callq 0x31d0
addq $-0x20, %r15
addq $0x20, %r14
jne 0x36514
movq %rbx, %rdi
callq 0x3280
movq -0x160(%rbp), %rax
testq %rax, %rax
je 0x3657c
leaq -0x8(%rax), %rbx
movq -0x8(%rax), %r14
testq %r14, %r14
je 0x36574
shlq $0x5, %r14
leaq (%r14,%rax), %r15
addq $-0x10, %r15
negq %r14
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x3656a
callq 0x31d0
addq $-0x20, %r15
addq $0x20, %r14
jne 0x3655c
movq %rbx, %rdi
callq 0x3280
movq -0x140(%rbp), %rax
testq %rax, %rax
je 0x365c4
leaq -0x8(%rax), %rbx
movq -0x8(%rax), %r14
testq %r14, %r14
je 0x365bc
shlq $0x5, %r14
leaq (%r14,%rax), %r15
addq $-0x10, %r15
negq %r14
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x365b2
callq 0x31d0
addq $-0x20, %r15
addq $0x20, %r14
jne 0x365a4
movq %rbx, %rdi
callq 0x3280
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x365de
jmp 0x3660e
jmp 0x365de
jmp 0x3660e
movq %rax, %rbx
movq -0x98(%rbp), %rdi
cmpq %r15, %rdi
jne 0x36957
jmp 0x3695c
jmp 0x3660e
movq %rax, %rbx
movq -0x1c8(%rbp), %rdi
leaq -0x1b8(%rbp), %rax
jmp 0x368f2
movq %rax, %rbx
jmp 0x3695c
movq %rax, %rbx
jmp 0x3694b
movq %rax, %rbx
jmp 0x36637
movq %rax, %rbx
movq -0x98(%rbp), %rdi
cmpq %r13, %rdi
je 0x36637
callq 0x31d0
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
jmp 0x368f2
movq %rax, %rbx
leaq -0x170(%rbp), %r15
jmp 0x367ca
movq %rax, %rbx
jmp 0x367f3
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x366a7
callq 0x31d0
jmp 0x366a7
movq %rax, %rbx
leaq -0x120(%rbp), %r14
jmp 0x366c0
movq %rax, %rbx
leaq -0x170(%rbp), %r15
jmp 0x367e2
jmp 0x36929
movq %rax, %rbx
leaq -0x120(%rbp), %r14
jmp 0x366fc
movq %rax, %rbx
leaq -0x120(%rbp), %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x366c0
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x366e4
callq 0x31d0
jmp 0x366e4
movq %rax, %rbx
leaq -0x120(%rbp), %r14
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x366fc
callq 0x31d0
movq -0x130(%rbp), %rdi
cmpq %r14, %rdi
je 0x3682b
callq 0x31d0
jmp 0x3682b
movq %rax, %rbx
leaq -0x120(%rbp), %r14
leaq -0x170(%rbp), %r15
jmp 0x367a1
movq %rax, %rbx
leaq -0x170(%rbp), %r15
jmp 0x36777
movq %rax, %rbx
leaq -0x120(%rbp), %r14
leaq -0x170(%rbp), %r15
jmp 0x36789
movq %rax, %rbx
leaq -0x120(%rbp), %r14
leaq -0x170(%rbp), %r15
jmp 0x367b9
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
leaq -0x170(%rbp), %r15
je 0x36777
callq 0x31d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x36789
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x367a1
callq 0x31d0
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x367b9
callq 0x31d0
movq -0x130(%rbp), %rdi
cmpq %r14, %rdi
je 0x367ca
callq 0x31d0
movq -0x1a0(%rbp), %rdi
leaq -0x190(%rbp), %rax
cmpq %rax, %rdi
je 0x367e2
callq 0x31d0
movq -0x180(%rbp), %rdi
cmpq %r15, %rdi
je 0x367f3
callq 0x31d0
movq -0x1e8(%rbp), %rdi
leaq -0x1d8(%rbp), %rax
jmp 0x36916
movq %rax, %rbx
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x36867
callq 0x31d0
jmp 0x36867
jmp 0x36929
movq %rax, %rbx
movq -0x1a0(%rbp), %rdi
leaq -0x190(%rbp), %rax
jmp 0x36916
jmp 0x36929
jmp 0x3684f
movq %rax, %rbx
jmp 0x368b3
movq %rax, %rbx
jmp 0x368c5
movq %rax, %rbx
jmp 0x3690e
movq %rax, %rbx
jmp 0x368ea
jmp 0x368f9
movq %rax, %rbx
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x368d8
callq 0x31d0
jmp 0x368d8
movq %rax, %rbx
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x368a1
callq 0x31d0
jmp 0x368a1
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x368b3
callq 0x31d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x368c5
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
jmp 0x3693a
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x368ea
callq 0x31d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
jne 0x36957
jmp 0x3695c
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3690e
callq 0x31d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x3692c
callq 0x31d0
jmp 0x3692c
jmp 0x36929
movq %rax, %rbx
jmp 0x36944
movq %rax, %rbx
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x36944
callq 0x31d0
leaq -0x88(%rbp), %r13
movq -0x98(%rbp), %rdi
cmpq %r13, %rdi
je 0x3695c
callq 0x31d0
movq %rbx, %rdi
callq 0x33a0