// File: /workspace/github_cpp_makefile_star2_O3/temelmertcan[P]multgen/src/adders.cpp
// Function: create_JSkCond_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_JSkCond_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, "JSkCond", gtmp, ptmp, verilog);
  pgtmp_to_pg(size, gtmp, g);
  pgtmp_to_pg(size, ptmp, p);

  verilog.push("");
  verilog.push("// J. Sklansky – Conditional Adder \n");

  int stage=0;

  
  unsigned long long coef;
  for (coef = 1; coef < size; coef *= 2){
    verilog.push("");
    verilog.push("// Stage " + to_string(++stage)+ " - prop from 1 to " + to_string(coef) + " per group.");

    for (int i=coef; i < size; i++){
      //verilog.push("i:" + to_string(i));

      if((i)/coef % 2 == 0)
        continue;
      int prev = i - (i % coef) - 1;

      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[prev] + ";");
      verilog.push ("assign "+ new_g + " = (" + p[i] + " & " + g[prev] + ") | " + 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("// JSkCondA 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, -0x98(%rbp)
movl %esi, %r12d
movl %edi, -0x6c(%rbp)
movslq %edi, %r13
movq %r13, %r14
shlq $0x5, %r14
leaq 0x8(%r14), %r15
testl %r13d, %r13d
movq $-0x1, %rdi
cmovnsq %r15, %rdi
movq %rdi, -0x100(%rbp)
callq 0x3030
leaq 0x8(%rax), %rbx
movq %r13, (%rax)
testl %r13d, %r13d
movq %r13, -0x158(%rbp)
movl %r12d, -0x70(%rbp)
je 0x39b74
addq $0x18, %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
addq $0x20, %rax
addq $-0x20, %r14
jne 0x39a6f
movq %rbx, -0x138(%rbp)
movq -0x100(%rbp), %rdi
callq 0x3030
movq %rax, %r14
movq %r13, (%rax)
addq $0x8, %rax
movq %rax, -0x128(%rbp)
movq %r13, %r15
shlq $0x5, %r15
movq %r15, %r13
negq %r13
movl $0x18, %eax
leaq (%r14,%rax), %rcx
movq %rcx, -0x10(%r14,%rax)
movq $0x0, -0x8(%r14,%rax)
movb $0x0, (%r14,%rax)
leaq (%rax,%r13), %rcx
addq $0x20, %rcx
addq $0x20, %rax
cmpq $0x18, %rcx
jne 0x39abe
movq -0x100(%rbp), %rdi
callq 0x3030
movq %rax, %r12
movq -0x158(%rbp), %rax
movq %rax, (%r12)
leaq 0x8(%r12), %rax
movl $0x18, %ecx
leaq (%r12,%rcx), %rdx
movq %rdx, -0x10(%r12,%rcx)
movq $0x0, -0x8(%r12,%rcx)
movb $0x0, (%r12,%rcx)
leaq (%rcx,%r13), %rdx
addq $0x20, %rdx
addq $0x20, %rcx
cmpq $0x18, %rdx
jne 0x39b0b
movq %rax, -0x130(%rbp)
movq -0x100(%rbp), %rdi
callq 0x3030
movq -0x158(%rbp), %rcx
movq %rcx, (%rax)
leaq 0x8(%rax), %r13
addq $0x18, %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
addq $0x20, %rax
addq $-0x20, %r15
jne 0x39b59
jmp 0x39bc2
movq %rbx, -0x138(%rbp)
movq %r15, %rdi
callq 0x3030
movq %rax, %r14
movq %r13, (%rax)
addq $0x8, %rax
movq %rax, -0x128(%rbp)
movq %r15, %rdi
callq 0x3030
movq %rax, %r12
movq %r13, (%rax)
addq $0x8, %rax
movq %rax, -0x130(%rbp)
movq %r15, %rdi
callq 0x3030
movq %r13, %rcx
movq %rax, %r13
movq %rcx, (%rax)
addq $0x8, %r13
leaq -0x150(%rbp), %rax
movq %r13, (%rax)
leaq -0x1b8(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x3db07(%rip), %rsi     # 0x776e5
leaq 0x3db07(%rip), %rdx     # 0x776ec
leaq -0x1c8(%rbp), %r15
movq %r15, %rdi
callq 0x2ac04
movq -0x98(%rbp), %rax
movq %rax, (%rsp)
movzbl -0x70(%rbp), %esi
leaq -0x130(%rbp), %r8
movl -0x6c(%rbp), %edi
movq %r15, %rcx
leaq -0x150(%rbp), %r9
callq 0x2daef
movq -0x1c8(%rbp), %rdi
leaq -0x1b8(%rbp), %rax
cmpq %rax, %rdi
je 0x39c34
callq 0x31d0
movl -0x6c(%rbp), %eax
movl %eax, %ecx
movq %rcx, -0x140(%rbp)
testl %eax, %eax
jle 0x39c8a
addq $0x8, %r12
movq -0x140(%rbp), %r15
movq %rbx, %rdi
movq %r12, %rsi
callq 0x3120
addq $0x20, %rbx
addq $0x20, %r12
decq %r15
jne 0x39c4f
addq $0x8, %r14
movq -0x140(%rbp), %rbx
movq %r14, %rdi
movq %r13, %rsi
callq 0x3120
addq $0x20, %r14
addq $0x20, %r13
decq %rbx
jne 0x39c72
leaq -0x58(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x3f968(%rip), %rdx     # 0x79601
leaq -0x68(%rbp), %rdi
movq %rdx, %rsi
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq -0x98(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x39cc3
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x3f109(%rip), %rsi     # 0x78dda
leaq 0x3f128(%rip), %rdx     # 0x78e00
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq -0x98(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x39cfb
callq 0x31d0
cmpl $0x2, -0x6c(%rbp)
jb 0x3af66
leaq -0xe8(%rbp), %r14
movq $0x0, -0x148(%rbp)
movl $0x1, %r15d
leaq -0x68(%rbp), %rbx
leaq -0xb8(%rbp), %r12
leaq -0x58(%rbp), %rax
movq %rax, -0x68(%rbp)
movq %rbx, %rdi
leaq 0x3f8c7(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
movq -0x98(%rbp), %rdi
movq %rbx, %rsi
callq 0x2a942
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x39d63
callq 0x31d0
movq -0x148(%rbp), %rax
leal 0x1(%rax), %r13d
movl $0x1, %ebx
cmpl $0x9, %eax
leaq -0xa8(%rbp), %rdx
jb 0x39dc1
movl $0x4, %ebx
movl %r13d, %eax
cmpl $0x63, %eax
jbe 0x39dba
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x39dbf
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x39dc1
movl %eax, %ecx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x39d87
addl $-0x3, %ebx
jmp 0x39dc1
addl $-0x2, %ebx
jmp 0x39dc1
decl %ebx
movl %ebx, %esi
movq %rdx, -0xb8(%rbp)
movq %r12, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0xb8(%rbp), %rdi
movl %ebx, %esi
movl %r13d, -0x70(%rbp)
movl %r13d, %edx
callq 0x2a6a5
movl $0x9, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x3ef6f(%rip), %rcx     # 0x78d6f
callq 0x3230
leaq -0x80(%rbp), %rsi
movq %rsi, -0x90(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x68(%rbp), %rbx
leaq -0x90(%rbp), %r12
je 0x39e3a
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x39e40
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r12, %rdi
leaq 0x3ef9d(%rip), %rsi     # 0x78e01
callq 0x33d0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0xc8(%rbp), %rdi
movabsq $0x346dc5d63886594b, %r8 # imm = 0x346DC5D63886594B
je 0x39e9e
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x39ea4
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)
movl $0x1, %esi
cmpq $0xa, %r15
jb 0x39f0b
movl $0x4, %esi
movq %r15, %rcx
cmpq $0x63, %rcx
jbe 0x39f04
cmpq $0x3e7, %rcx            # imm = 0x3E7
jbe 0x39f09
cmpq $0x2710, %rcx           # imm = 0x2710
jb 0x39f0b
movq %rcx, %rax
mulq %r8
shrq $0xb, %rdx
addl $0x4, %esi
cmpq $0x1869f, %rcx          # imm = 0x1869F
movq %rdx, %rcx
ja 0x39ece
addl $-0x3, %esi
jmp 0x39f0b
addl $-0x2, %esi
jmp 0x39f0b
decl %esi
movl %esi, %esi
movq %rdi, -0xd8(%rbp)
leaq -0xd8(%rbp), %rdi
xorl %edx, %edx
callq 0x3250
movq -0xd8(%rbp), %rdi
movl -0xd0(%rbp), %esi
movq %r15, %rdx
callq 0x3b5a3
movq -0x48(%rbp), %rcx
movl $0xf, %edi
leaq -0x38(%rbp), %rax
cmpq %rax, %rcx
je 0x39f4d
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %r8
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x39f85
movl $0xf, %edi
leaq -0xc8(%rbp), %r9
cmpq %r9, %rsi
je 0x39f80
movq -0xc8(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x39f90
leaq -0x48(%rbp), %rdi
callq 0x30a0
jmp 0x39fa0
leaq -0xd8(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r14, -0xf8(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x39fc6
movq %rdx, -0xf8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xe8(%rbp)
jmp 0x39fcd
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0xf0(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0xf8(%rbp), %rdi
leaq 0x3ee1a(%rip), %rsi     # 0x78e14
callq 0x33d0
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3a023
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x3a029
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x98(%rbp), %rdi
movq %rbx, %rsi
callq 0x2a942
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x3a061
callq 0x31d0
movq -0xf8(%rbp), %rdi
cmpq %r14, %rdi
je 0x3a072
callq 0x31d0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
leaq -0x80(%rbp), %r14
je 0x3a08e
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3a0a0
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
je 0x3a0b1
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x3a0c9
callq 0x31d0
cmpl -0x6c(%rbp), %r15d
movq %r15, -0x1a0(%rbp)
jge 0x3aed3
movq %r15, %rax
negq %rax
movq %rax, -0x1a8(%rbp)
movslq %r15d, %rbx
movq %rbx, %rax
xorl %edx, %edx
divq %r15
testb $0x1, %al
je 0x3aec7
movq %rbx, -0x100(%rbp)
movl $0x1, %ebx
cmpl $0x9, -0x148(%rbp)
leaq -0x38(%rbp), %r15
jb 0x3a155
movl $0x4, %ebx
movl -0x70(%rbp), %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x3a14e
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3a153
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3a155
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3a120
addl $-0x3, %ebx
jmp 0x3a155
addl $-0x2, %ebx
jmp 0x3a155
decl %ebx
movl %ebx, %esi
movq %r14, -0x90(%rbp)
movq %r12, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x90(%rbp), %rdi
movl %ebx, %esi
movl -0x70(%rbp), %edx
callq 0x2a6a5
movl $0x2, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x3e429(%rip), %rcx     # 0x785b9
callq 0x3230
movq %r15, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0xe8(%rbp), %rbx
je 0x3a1bc
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3a1c3
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x48(%rbp), %rdi
leaq 0x3ef91(%rip), %rsi     # 0x79176
callq 0x33d0
movq %rbx, -0xf8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0xa8(%rbp), %rdi
je 0x3a21a
movq %rdx, -0xf8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xe8(%rbp)
jmp 0x3a220
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq -0x100(%rbp), %r15
movq 0x8(%rax), %rdx
movq %rdx, -0xf0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl %r15d, %r14d
negl %r14d
cmovsl %r15d, %r14d
movl $0x1, %r13d
cmpl $0xa, %r14d
jb 0x3a29e
movl $0x4, %r13d
movl %r14d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x3a295
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3a29b
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3a29e
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r13d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3a265
addl $-0x3, %r13d
jmp 0x3a29e
addl $-0x2, %r13d
jmp 0x3a29e
decl %r13d
shrl $0x1f, %r15d
leal (%r15,%r13), %esi
movq %rdi, -0xb8(%rbp)
leaq -0xb8(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movl %r15d, %ebx
movq -0xb8(%rbp), %rdi
addq %rbx, %rdi
movl %r13d, %esi
movl %r14d, %edx
callq 0x2a6a5
movq -0xf8(%rbp), %rcx
movl $0xf, %edi
leaq -0xe8(%rbp), %rax
cmpq %rax, %rcx
je 0x3a2f5
movq -0xe8(%rbp), %rdi
movq -0xf0(%rbp), %r8
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
leaq -0x58(%rbp), %r13
jbe 0x3a334
movl $0xf, %edi
leaq -0xa8(%rbp), %r9
cmpq %r9, %rsi
je 0x3a32f
movq -0xa8(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x3a342
leaq -0xf8(%rbp), %rdi
callq 0x30a0
jmp 0x3a352
leaq -0xb8(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r13, -0x68(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x3a36f
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x3a377
movups (%rcx), %xmm0
movups %xmm0, (%r13)
leaq -0x38(%rbp), %r13
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x3a3af
callq 0x31d0
movq -0xf8(%rbp), %rdi
leaq -0xe8(%rbp), %rax
cmpq %rax, %rdi
je 0x3a3c7
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x3a3d5
callq 0x31d0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x3a3ea
callq 0x31d0
movl $0x1, %r13d
cmpl $0x9, -0x148(%rbp)
leaq -0xa8(%rbp), %rdx
jb 0x3a447
movl $0x4, %r13d
movl -0x70(%rbp), %eax
cmpl $0x63, %eax
jbe 0x3a43e
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3a444
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3a447
movl %eax, %ecx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rcx
shrq $0x2d, %rcx
addl $0x4, %r13d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3a409
addl $-0x3, %r13d
jmp 0x3a447
addl $-0x2, %r13d
jmp 0x3a447
decl %r13d
movl %r13d, %esi
movq %rdx, -0xb8(%rbp)
leaq -0xb8(%rbp), %r12
movq %r12, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0xb8(%rbp), %rdi
movl %r13d, %esi
movl -0x70(%rbp), %edx
callq 0x2a6a5
movl $0x2, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x3e817(%rip), %rcx     # 0x78ca2
callq 0x3230
leaq -0x80(%rbp), %rsi
movq %rsi, -0x90(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x38(%rbp), %r13
leaq -0x90(%rbp), %r12
je 0x3a4c5
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x3a4cb
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r12, %rdi
leaq 0x3ec87(%rip), %rsi     # 0x79176
callq 0x33d0
movq %r13, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0xc8(%rbp), %rsi
je 0x3a51b
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3a523
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r13d
cmpl $0xa, %r14d
jb 0x3a58d
movl $0x4, %r13d
movl %r14d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x3a584
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3a58a
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3a58d
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r13d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3a554
addl $-0x3, %r13d
jmp 0x3a58d
addl $-0x2, %r13d
jmp 0x3a58d
decl %r13d
addl %r13d, %r15d
movq %rsi, -0xd8(%rbp)
leaq -0xd8(%rbp), %rdi
movq %r15, %rsi
movl $0x2d, %edx
callq 0x3250
addq -0xd8(%rbp), %rbx
movq %rbx, %rdi
movl %r13d, %esi
movl %r14d, %edx
callq 0x2a6a5
movq -0x48(%rbp), %rcx
movl $0xf, %edi
leaq -0x38(%rbp), %rax
cmpq %rax, %rcx
leaq -0xe8(%rbp), %r15
je 0x3a5dd
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %r8
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
leaq -0x80(%rbp), %r14
leaq -0x68(%rbp), %rbx
jbe 0x3a61d
movl $0xf, %edi
leaq -0xc8(%rbp), %r9
cmpq %r9, %rsi
je 0x3a618
movq -0xc8(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x3a628
leaq -0x48(%rbp), %rdi
callq 0x30a0
jmp 0x3a638
leaq -0xd8(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r15, -0xf8(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x3a65e
movq %rdx, -0xf8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xe8(%rbp)
jmp 0x3a665
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0xf0(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x3a69c
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3a6ae
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
je 0x3a6bf
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x3a6d7
callq 0x31d0
movq %r12, %rdi
leaq 0x3e5a8(%rip), %rsi     # 0x78c89
movq %rbx, %rdx
callq 0x2a567
movq %r12, %rdi
leaq 0x3f01e(%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 0x3a71c
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3a722
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 -0x98(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x2a942
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3a75b
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
je 0x3a76c
callq 0x31d0
movq %r12, %rdi
leaq 0x3e513(%rip), %rsi     # 0x78c89
leaq -0xf8(%rbp), %rdx
callq 0x2a567
movq %r12, %rdi
leaq 0x3ef85(%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 0x3a7b5
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3a7bb
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 -0x98(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x2a942
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3a7f4
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
je 0x3a805
callq 0x31d0
leaq -0x178(%rbp), %r14
movq %r14, %rdi
leaq 0x3dd99(%rip), %rsi     # 0x785af
movq %rbx, %rdx
callq 0x2a567
leaq -0x110(%rbp), %rbx
movq %r14, %rdi
leaq 0x3da24(%rip), %rsi     # 0x78253
callq 0x33d0
movq %rbx, -0x120(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3a85d
movq %rdx, -0x120(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x110(%rbp)
jmp 0x3a863
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, -0x118(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x100(%rbp), %rbx
movq %rbx, %r14
shlq $0x5, %r14
movq -0x128(%rbp), %rax
movq (%rax,%r14), %rsi
movq 0x8(%rax,%r14), %rdx
leaq -0x120(%rbp), %rdi
callq 0x30a0
leaq -0xc8(%rbp), %rsi
movq %rsi, -0xd8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3a8d7
movq %rdx, -0xd8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xc8(%rbp)
jmp 0x3a8dd
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xd0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0xd8(%rbp), %rdi
leaq 0x3e8b0(%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 0x3a93a
movq %rdx, -0xb8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa8(%rbp)
jmp 0x3a940
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
andq -0x1a8(%rbp), %rbx
movq 0x8(%rax), %rdx
movq %rdx, -0xb0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
shlq $0x20, %rbx
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
addq %rax, %rbx
movq %rbx, %rax
sarq $0x1b, %rax
movq -0x128(%rbp), %rcx
movq (%rcx,%rax), %rsi
movq 0x8(%rcx,%rax), %rdx
leaq -0xb8(%rbp), %rdi
callq 0x30a0
leaq -0x80(%rbp), %rsi
movq %rsi, -0x90(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3a9bf
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x3a9c5
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r12, %rdi
leaq 0x3ed28(%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 0x3aa12
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3aa18
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 -0x98(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x2a942
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3aa51
callq 0x31d0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x3aa66
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x3aa7e
callq 0x31d0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x3aa96
callq 0x31d0
movq -0x120(%rbp), %rdi
leaq -0x110(%rbp), %rax
cmpq %rax, %rdi
je 0x3aaae
callq 0x31d0
movq -0x178(%rbp), %rdi
leaq -0x168(%rbp), %rax
cmpq %rax, %rdi
je 0x3aac6
callq 0x31d0
leaq -0x1e8(%rbp), %r13
movq %r13, %rdi
leaq 0x3dad8(%rip), %rsi     # 0x785af
leaq -0xf8(%rbp), %rdx
callq 0x2a567
movq %r13, %rdi
leaq 0x3d9ba(%rip), %rsi     # 0x784a7
callq 0x33d0
leaq -0x188(%rbp), %rsi
movq %rsi, -0x198(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3ab22
movq %rdx, -0x198(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x188(%rbp)
jmp 0x3ab28
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq -0x128(%rbp), %rdx
addq %r14, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x190(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rdx), %rsi
movq 0x8(%rdx), %rdx
leaq -0x198(%rbp), %rdi
callq 0x30a0
leaq -0x168(%rbp), %rsi
movq %rsi, -0x178(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3ab8f
movq %rdx, -0x178(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x168(%rbp)
jmp 0x3ab95
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x170(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x178(%rbp), %rdi
leaq 0x3e5f8(%rip), %rsi     # 0x791b5
callq 0x33d0
leaq -0x110(%rbp), %rsi
movq %rsi, -0x120(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3abf2
movq %rdx, -0x120(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x110(%rbp)
jmp 0x3abf8
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
sarq $0x20, %rbx
movq 0x8(%rax), %rdx
movq %rdx, -0x118(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x138(%rbp), %r15
shlq $0x5, %rbx
movq (%r15,%rbx), %rsi
movq 0x8(%r15,%rbx), %rdx
leaq -0x120(%rbp), %rdi
callq 0x30a0
leaq -0xc8(%rbp), %rsi
movq %rsi, -0xd8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x68(%rbp), %rbx
je 0x3ac6a
movq %rdx, -0xd8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xc8(%rbp)
jmp 0x3ac70
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xd0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0xd8(%rbp), %rdi
leaq 0x3e400(%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 0x3accd
movq %rdx, -0xb8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa8(%rbp)
jmp 0x3acd3
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 (%r15,%r14), %rsi
movq 0x8(%r15,%r14), %rdx
leaq -0xb8(%rbp), %rdi
callq 0x30a0
leaq -0x80(%rbp), %rsi
movq %rsi, -0x90(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0xe8(%rbp), %r15
je 0x3ad33
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x3ad39
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r12, %rdi
leaq 0x3e9b4(%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 0x3ad86
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3ad8c
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 -0x98(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x2a942
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3adc5
callq 0x31d0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x3adda
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x3adf2
callq 0x31d0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x3ae0a
callq 0x31d0
movq -0x120(%rbp), %rdi
leaq -0x110(%rbp), %rax
cmpq %rax, %rdi
je 0x3ae22
callq 0x31d0
movq -0x178(%rbp), %rdi
leaq -0x168(%rbp), %rax
cmpq %rax, %rdi
je 0x3ae3a
callq 0x31d0
movq -0x198(%rbp), %rdi
leaq -0x188(%rbp), %rax
cmpq %rax, %rdi
je 0x3ae52
callq 0x31d0
movq -0x1e8(%rbp), %rdi
leaq -0x1d8(%rbp), %rax
cmpq %rax, %rdi
je 0x3ae6a
callq 0x31d0
movq -0x130(%rbp), %rdi
addq %r14, %rdi
leaq -0xf8(%rbp), %rsi
callq 0x3120
addq -0x150(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3120
movq -0xf8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3aea3
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
leaq -0x80(%rbp), %r14
movq -0x1a0(%rbp), %r15
movq -0x100(%rbp), %rbx
je 0x3aec7
callq 0x31d0
incq %rbx
cmpl -0x6c(%rbp), %ebx
jne 0x3a0ea
cmpl $0x0, -0x6c(%rbp)
leaq -0xb8(%rbp), %r12
jle 0x3af3a
movq -0x130(%rbp), %rbx
movq -0x138(%rbp), %r14
movq -0x140(%rbp), %r15
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3120
addq $0x20, %r14
addq $0x20, %rbx
decq %r15
jne 0x3aef5
movq -0x150(%rbp), %rbx
movq -0x128(%rbp), %r14
movq -0x140(%rbp), %r15
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3120
addq $0x20, %r14
addq $0x20, %rbx
decq %r15
jne 0x3af22
movq -0x1a0(%rbp), %r15
addq %r15, %r15
movl -0x70(%rbp), %eax
movq %rax, -0x148(%rbp)
cmpq -0x158(%rbp), %r15
leaq -0xe8(%rbp), %r14
leaq -0x68(%rbp), %rbx
jb 0x39d28
leaq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %r14
movq %r14, (%rdi)
leaq 0x3e689(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq -0x98(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x3af9e
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x3de74(%rip), %rsi     # 0x78e20
leaq 0x3de85(%rip), %rdx     # 0x78e38
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq -0x98(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x3afd6
callq 0x31d0
leaq -0x138(%rbp), %rdx
movl -0x6c(%rbp), %edi
movq -0x98(%rbp), %r8
callq 0x2f814
movq -0x128(%rbp), %rax
leaq -0x8(%rax), %rbx
movq -0x8(%rax), %r14
testq %r14, %r14
je 0x3b027
shlq $0x5, %r14
leaq (%r14,%rax), %r15
addq $-0x10, %r15
negq %r14
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x3b01d
callq 0x31d0
addq $-0x20, %r15
addq $0x20, %r14
jne 0x3b00f
movq %rbx, %rdi
callq 0x3280
movq -0x138(%rbp), %rax
testq %rax, %rax
je 0x3b077
leaq -0x8(%rax), %rbx
movq -0x8(%rax), %r14
testq %r14, %r14
je 0x3b06f
shlq $0x5, %r14
leaq (%r14,%rax), %r15
addq $-0x10, %r15
negq %r14
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x3b065
callq 0x31d0
addq $-0x20, %r15
addq $0x20, %r14
jne 0x3b057
movq %rbx, %rdi
callq 0x3280
movq -0x150(%rbp), %rax
testq %rax, %rax
je 0x3b0bf
leaq -0x8(%rax), %rbx
movq -0x8(%rax), %r14
testq %r14, %r14
je 0x3b0b7
shlq $0x5, %r14
leaq (%r14,%rax), %r15
addq $-0x10, %r15
negq %r14
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x3b0ad
callq 0x31d0
addq $-0x20, %r15
addq $0x20, %r14
jne 0x3b09f
movq %rbx, %rdi
callq 0x3280
movq -0x130(%rbp), %rax
testq %rax, %rax
je 0x3b107
leaq -0x8(%rax), %rbx
movq -0x8(%rax), %r14
testq %r14, %r14
je 0x3b0ff
shlq $0x5, %r14
leaq (%r14,%rax), %r15
addq $-0x10, %r15
negq %r14
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x3b0f5
callq 0x31d0
addq $-0x20, %r15
addq $0x20, %r14
jne 0x3b0e7
movq %rbx, %rdi
callq 0x3280
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3b125
jmp 0x3b149
jmp 0x3b125
jmp 0x3b149
jmp 0x3b125
jmp 0x3b149
movq %rax, %rbx
movq -0x68(%rbp), %rdi
jmp 0x3b56e
jmp 0x3b149
movq %rax, %rbx
movq -0x1c8(%rbp), %rdi
leaq -0x1b8(%rbp), %rax
jmp 0x3b1f7
movq %rax, %rbx
jmp 0x3b59b
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
jmp 0x3b1f7
movq %rax, %rbx
jmp 0x3b1e9
movq %rax, %rbx
jmp 0x3b1d4
movq %rax, %rbx
jmp 0x3b1c2
movq %rax, %rbx
jmp 0x3b1aa
movq %rax, %rbx
jmp 0x3b192
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x3b192
callq 0x31d0
movq -0xf8(%rbp), %rdi
leaq -0xe8(%rbp), %rax
cmpq %rax, %rdi
je 0x3b1aa
callq 0x31d0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x3b1c2
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3b1d4
callq 0x31d0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x3b1e9
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
jne 0x3b596
jmp 0x3b59b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3b46a
callq 0x31d0
jmp 0x3b46a
jmp 0x3b575
jmp 0x3b363
movq %rax, %rbx
leaq -0x58(%rbp), %r13
leaq -0x80(%rbp), %r14
jmp 0x3b31c
movq %rax, %rbx
leaq -0xe8(%rbp), %r15
leaq -0x110(%rbp), %r14
leaq -0x58(%rbp), %r13
jmp 0x3b48a
movq %rax, %rbx
leaq -0x188(%rbp), %r14
leaq -0x58(%rbp), %r13
jmp 0x3b4ea
movq %rax, %rbx
jmp 0x3b3ab
movq %rax, %rbx
leaq -0x58(%rbp), %r13
jmp 0x3b454
jmp 0x3b575
movq %rax, %rbx
leaq -0xe8(%rbp), %r15
leaq -0x110(%rbp), %r14
leaq -0x58(%rbp), %r13
jmp 0x3b4ba
movq %rax, %rbx
leaq -0x110(%rbp), %r14
leaq -0x58(%rbp), %r13
jmp 0x3b41b
movq %rax, %rbx
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x3b2cb
callq 0x31d0
leaq -0x58(%rbp), %r13
jmp 0x3b30a
movq %rax, %rbx
leaq -0x58(%rbp), %r13
jmp 0x3b58d
jmp 0x3b2ef
movq %rax, %rbx
jmp 0x3b567
movq %rax, %rbx
jmp 0x3b539
movq %rax, %rbx
jmp 0x3b378
movq %rax, %rbx
jmp 0x3b559
movq %rax, %rbx
leaq -0x58(%rbp), %r13
leaq -0x80(%rbp), %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3b31c
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
je 0x3b3d9
callq 0x31d0
jmp 0x3b3d9
movq %rax, %rbx
leaq -0xe8(%rbp), %r15
leaq -0x110(%rbp), %r14
leaq -0x58(%rbp), %r13
jmp 0x3b4a2
movq %rax, %rbx
leaq -0x188(%rbp), %r14
leaq -0x58(%rbp), %r13
jmp 0x3b4d2
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3b378
callq 0x31d0
leaq -0x58(%rbp), %r13
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
jne 0x3b517
jmp 0x3b57c
jmp 0x3b575
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3b3ab
callq 0x31d0
leaq -0x80(%rbp), %rax
leaq -0x110(%rbp), %r14
leaq -0x58(%rbp), %r13
movq -0x90(%rbp), %rdi
cmpq %rax, %rdi
je 0x3b403
callq 0x31d0
jmp 0x3b403
jmp 0x3b575
movq %rax, %rbx
leaq -0x58(%rbp), %r13
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
jne 0x3b588
jmp 0x3b58d
movq %rax, %rbx
leaq -0x110(%rbp), %r14
leaq -0x58(%rbp), %r13
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x3b41b
callq 0x31d0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x3b443
callq 0x31d0
jmp 0x3b443
movq %rax, %rbx
leaq -0x110(%rbp), %r14
leaq -0x58(%rbp), %r13
movq -0x120(%rbp), %rdi
cmpq %r14, %rdi
je 0x3b454
callq 0x31d0
movq -0x178(%rbp), %rdi
leaq -0x168(%rbp), %rax
jmp 0x3b512
movq %rax, %rbx
leaq -0x80(%rbp), %rax
leaq -0x110(%rbp), %r14
leaq -0x58(%rbp), %r13
movq -0x90(%rbp), %rdi
cmpq %rax, %rdi
je 0x3b48a
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x3b4a2
callq 0x31d0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x3b4ba
callq 0x31d0
movq -0x120(%rbp), %rdi
cmpq %r14, %rdi
je 0x3b4cb
callq 0x31d0
leaq -0x188(%rbp), %r14
movq -0x178(%rbp), %rdi
leaq -0x168(%rbp), %rax
cmpq %rax, %rdi
je 0x3b4ea
callq 0x31d0
movq -0x198(%rbp), %rdi
cmpq %r14, %rdi
je 0x3b504
callq 0x31d0
jmp 0x3b504
movq %rax, %rbx
leaq -0x58(%rbp), %r13
movq -0x1e8(%rbp), %rdi
leaq -0x1d8(%rbp), %rax
cmpq %rax, %rdi
je 0x3b57c
callq 0x31d0
jmp 0x3b57c
movq %rax, %rbx
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x3b539
callq 0x31d0
leaq -0x80(%rbp), %r14
leaq -0x38(%rbp), %r15
movq -0xf8(%rbp), %rdi
leaq -0xe8(%rbp), %rax
cmpq %rax, %rdi
je 0x3b559
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x3b567
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
jne 0x3b596
jmp 0x3b59b
movq %rax, %rbx
leaq -0x58(%rbp), %r13
movq -0xf8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3b58d
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x3b59b
callq 0x31d0
movq %rbx, %rdi
callq 0x33a0