// File: /workspace/github_cpp_makefile_star2_O1/temelmertcan[P]multgen/src/pp_gen.cpp
// Function: create_br2pp(int, int, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>**&, int&, int&, std::__cxx11::list<int, std::allocator<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_br2pp (int m, int n, bool signed_mul,
                   string**& pp_matrix,
                   int& pp_dim1,
                   int& pp_dim2,
                   std::list<int>& extra_ones_indices,
		   bool allowXes,
                   std::queue<string>& verilog){

  // m multiplier size,
  // n multiplicand size,

  if (signed_mul) {
    verilog.push ("wire [" + to_string(m-1) + ":0] mult = IN1;");
    verilog.push ("wire [" + to_string(n-1) + ":0] mcand = IN2;");
  } else {
    verilog.push ("wire [" + to_string(m) + ":0] mult = {1'b0, IN1};");
    verilog.push ("wire [" + to_string(n) + ":0] mcand = {1'b0, IN2};");
    m++;
    n++;
  }

  int pp_msb = n-1;
  pp_dim1 = m+2; // number of rows
  int size_to_fit_all_pp = pp_msb + m;
  pp_dim2 = max(n+m, size_to_fit_all_pp); // number of columns

  pp_matrix = new string*[pp_dim1];
  // make sure it starts empty.
  for (int i = 0; i < pp_dim1; i++){
    pp_matrix[i] = new string[pp_dim2];
    for (int j = 0; j < pp_dim2; j++)
      pp_matrix[i][j] = "";
  }

  /////
  // verilog.push ("wire [" + to_string(pp_msb) + ":0] mcand_1x;");
  // verilog.push ("assign mcand_1x = {{"+to_string(pp_msb - n + 1)+"{mcand["+ to_string(n-1) +"]}},  mcand};");

  /////

  for (int i = 0; i < m; i++){
    verilog.push ("");
    string m0 = (i == 0 ? "1'b0" : "mult[" + to_string(i-1) + "]");
    string m1 = "mult[" + to_string(i) + "]";

    verilog.push ("// Booth Radix-2 Partial Products. Multiplier selectors: " + m1 + " " + m0);

    string select_e = "select_e_" + to_string(i);
    string select_ne = "select_ne_" + to_string(i);
    string cmp = "tcomp" + to_string(i);

    verilog.push ( "wire logic " + select_e
                   + ", " + cmp
                   + ", " + select_ne
                   + ";");

    verilog.push ("assign " + select_e +
                  " = ~" + m1 + " & " + m0 + ";");// +
    //" | ((~ " + m2 + ") & (~ " + m0 + ") & " + m1 + ");");

    verilog.push ("assign " + select_ne +
                  " = " + m1 + " & ~" + m0 + ";");// +

    //////
    string cur_pp = "pp_" + to_string(i);
    verilog.push ("wire ["+ to_string(pp_msb) +":0] " + cur_pp + ";");
    verilog.push ("assign " + cur_pp + " = (1<<" + to_string(pp_msb) + ") ^ // flip the MSB ");
    verilog.push ("               ((" +  select_e   + " ? mcand : 0) | ");
    verilog.push ("                (" +  select_ne  + " ? (~ mcand) : 0)); " );

    verilog.push ("assign " + cmp + " = " + select_ne + ";");

  }

  for (int i = 0; i < pp_dim1-2; i++){
    pp_matrix[i] = new string[pp_dim2];
    for (int j = 0; j < i; j++){
      pp_matrix[i][j] = "";
    }
    for (int j = 0; j <= pp_msb && j+i < pp_dim2 ; j++){
      string cur;
      cur = "pp_" + to_string(i) + "[" + to_string(j) + "]";
      pp_matrix[i][j+i] = cur;
    }
  }

  // add tcomps for the extra 1 needed for twos complemented partial products
  pp_matrix[pp_dim1-2] = new string[pp_dim2];
  for (int j = 0; j < m; j+=1){
    pp_matrix[pp_dim1-2][j] = "tcomp"  + to_string(j);
  }

  for (int j = pp_msb; j < size_to_fit_all_pp; j += 1){
    extra_ones_indices.push_back(j);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1e8, %rsp            # imm = 0x1E8
movq %r9, -0x168(%rbp)
movq %r8, -0x200(%rbp)
movq %rcx, -0x1b0(%rbp)
movq %rsi, -0xf0(%rbp)
testl %edx, %edx
movq %rdi, -0x138(%rbp)
je 0x3ef95
leal -0x1(%rdi), %r14d
movl %r14d, %ebx
negl %ebx
cmovsl %r14d, %ebx
movl $0x1, %r15d
cmpl $0xa, %ebx
jb 0x3f008
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x3eff6
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x3f005
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x3f008
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x3ef56
addl $-0x3, %r15d
jmp 0x3f008
movl %edi, %ebx
negl %ebx
cmovsl %edi, %ebx
movl $0x1, %r14d
cmpl $0xa, %ebx
jb 0x3f1bb
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x3effc
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x3f1b8
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x3f1bb
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x3efb8
addl $-0x3, %r14d
jmp 0x3f1bb
addl $-0x2, %r15d
jmp 0x3f008
addl $-0x2, %r14d
jmp 0x3f1bb
decl %r15d
shrl $0x1f, %r14d
leal (%r15,%r14), %esi
leaq -0x1c0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x1d0(%rbp), %r12
movq %r12, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%r12), %r14
movq %r14, %rdi
movl %r15d, %esi
movl %ebx, %edx
callq 0x2aad9
leaq 0x39d1a(%rip), %rcx     # 0x78d61
movl $0x6, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x178(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq -0xf0(%rbp), %rbx
movq 0x20(%rbp), %r14
je 0x3f091
movq %rdx, -0x188(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x178(%rbp)
jmp 0x3f098
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x188(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x3aee5(%rip), %rsi     # 0x79fa2
callq 0x33d0
leaq -0x38(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3f0e6
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3f0ee
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r14, %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x3f11f
callq 0x31d0
movq -0x188(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f130
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x3f148
callq 0x31d0
leal -0x1(%rbx), %r14d
movl %r14d, %ebx
negl %ebx
cmovsl %r14d, %ebx
movl $0x1, %r15d
cmpl $0xa, %ebx
jb 0x3f377
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x3f1af
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x3f374
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x3f377
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x3f171
addl $-0x3, %r15d
jmp 0x3f377
addl $-0x2, %r15d
jmp 0x3f377
decl %r14d
movq -0x138(%rbp), %r15
shrl $0x1f, %r15d
leal (%r14,%r15), %esi
leaq -0x1c0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x1d0(%rbp), %r12
movq %r12, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%r12), %r15
movq %r15, %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x2aad9
leaq 0x39b60(%rip), %rcx     # 0x78d61
movl $0x6, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x178(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq 0x20(%rbp), %rbx
je 0x3f247
movq %rsi, %r13
movq %rdx, -0x188(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x178(%rbp)
jmp 0x3f250
movups (%rcx), %xmm0
movq %rsi, %r13
movups %xmm0, (%rsi)
movq -0xf0(%rbp), %r15
movq 0x8(%rax), %rdx
leaq -0x188(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x3ad47(%rip), %rsi     # 0x79fc3
callq 0x33d0
leaq -0x38(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3f2a6
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3f2ae
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x3f2df
callq 0x31d0
movq -0x188(%rbp), %rdi
cmpq %r13, %rdi
je 0x3f2f0
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x3f308
callq 0x31d0
movl %r15d, %ebx
negl %ebx
cmovsl %r15d, %ebx
movl $0x1, %r14d
cmpl $0xa, %ebx
jb 0x3f4cc
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x3f36b
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x3f4c9
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x3f4cc
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x3f32d
addl $-0x3, %r14d
jmp 0x3f4cc
addl $-0x2, %r14d
jmp 0x3f4cc
decl %r15d
shrl $0x1f, %r14d
leal (%r15,%r14), %esi
leaq -0x1d0(%rbp), %r12
leaq -0x1c0(%rbp), %rax
movq %rax, (%r12)
movq %r12, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%r12), %r14
movq %r14, %rdi
movl %r15d, %esi
movl %ebx, %edx
callq 0x2aad9
leaq 0x399ab(%rip), %rcx     # 0x78d61
movl $0x6, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x178(%rbp), %r15
movq %r15, -0x188(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq -0xf0(%rbp), %rbx
movq -0x1b0(%rbp), %r12
movq 0x20(%rbp), %r14
je 0x3f40a
movq %rdx, -0x188(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x178(%rbp)
jmp 0x3f411
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x188(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x3ab7c(%rip), %rsi     # 0x79fb2
callq 0x33d0
movq %r13, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3f45b
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3f463
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r14, %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x3f494
callq 0x31d0
movq -0x188(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f4a5
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x3f4bd
callq 0x31d0
movq -0x138(%rbp), %rcx
jmp 0x3f61d
decl %r14d
shrl $0x1f, %r15d
leal (%r14,%r15), %esi
leaq -0x1d0(%rbp), %r12
leaq -0x1c0(%rbp), %rax
movq %rax, (%r12)
movq %r12, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%r12), %r15
movq %r15, %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x2aad9
leaq 0x39856(%rip), %rcx     # 0x78d61
movl $0x6, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r13, -0x188(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq -0x1b0(%rbp), %r12
movq 0x20(%rbp), %r14
je 0x3f551
movq %rdx, -0x188(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x178(%rbp)
jmp 0x3f559
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq -0xf0(%rbp), %rbx
movq 0x8(%rax), %rdx
leaq -0x188(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x3aa56(%rip), %rsi     # 0x79fdb
callq 0x33d0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3f5ae
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3f5b4
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r14, %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3f5e9
callq 0x31d0
movq -0x188(%rbp), %rdi
cmpq %r13, %rdi
je 0x3f5fa
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x3f612
callq 0x31d0
movq -0x138(%rbp), %rcx
incl %ecx
incl %ebx
leal 0x2(%rcx), %eax
movq -0x200(%rbp), %r15
movl %eax, (%r15)
movq %rbx, -0xf0(%rbp)
movq %rcx, -0x138(%rbp)
leal (%rcx,%rbx), %eax
movq -0x168(%rbp), %rbx
movl %eax, (%rbx)
movslq (%r15), %rax
leaq (,%rax,8), %rdi
testq %rax, %rax
movq $-0x1, %rax
cmovsq %rax, %rdi
callq 0x3030
movq %rax, (%r12)
cmpl $0x0, (%r15)
jle 0x3f730
movq %rbx, %rcx
xorl %r15d, %r15d
leaq 0x3af84(%rip), %rbx     # 0x7a601
movq -0x1b0(%rbp), %r14
movslq (%rcx), %r13
movq %r13, %r12
shlq $0x5, %r12
leaq 0x8(%r12), %rdi
testq %r13, %r13
movq $-0x1, %rax
cmovsq %rax, %rdi
callq 0x3030
movq %r13, (%rax)
testq %r13, %r13
je 0x3f6cb
leaq 0x18(%rax), %rcx
movq %rcx, -0x10(%rcx)
movq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
addq $0x20, %rcx
addq $-0x20, %r12
jne 0x3f6b2
addq $0x8, %rax
movq (%r14), %rcx
movq %rax, (%rcx,%r15,8)
movq -0x168(%rbp), %rcx
cmpl $0x0, (%rcx)
jle 0x3f71a
xorl %r12d, %r12d
xorl %r13d, %r13d
movq (%r14), %rax
movq (%rax,%r15,8), %rdi
movq 0x8(%rdi,%r12), %rdx
addq %r12, %rdi
xorl %esi, %esi
movq %rbx, %rcx
xorl %r8d, %r8d
callq 0x3310
movq -0x168(%rbp), %rcx
incq %r13
movslq (%rcx), %rax
addq $0x20, %r12
cmpq %rax, %r13
jl 0x3f6e8
incq %r15
movq -0x200(%rbp), %rax
movslq (%rax), %rax
cmpq %rax, %r15
jl 0x3f684
movq -0xf0(%rbp), %rax
decl %eax
movl %eax, -0x204(%rbp)
cmpl $0x0, -0x138(%rbp)
movq 0x20(%rbp), %r14
jle 0x41065
leaq -0x38(%rbp), %r12
leaq -0x1c0(%rbp), %rax
movq %rax, -0x210(%rbp)
movl -0x204(%rbp), %eax
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movl %ecx, -0x160(%rbp)
shrl $0x1f, %eax
movq %rax, -0x1f8(%rbp)
xorl %r15d, %r15d
leaq -0x48(%rbp), %rbx
movq %r12, -0x48(%rbp)
movq %rbx, %rdi
leaq 0x3ae6d(%rip), %rdx     # 0x7a601
movq %rdx, %rsi
callq 0x2b022
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2ad60
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x3f7b5
callq 0x31d0
testl %r15d, %r15d
je 0x3f81c
movq %r15, %r14
leal -0x1(%r15), %ebx
movl %ebx, %r12d
negl %r12d
cmovsl %ebx, %r12d
movl $0x1, %r13d
cmpl $0xa, %r12d
leaq -0x1d0(%rbp), %r15
jb 0x3f84b
movl $0x4, %r13d
movl %r12d, %eax
cmpl $0x63, %eax
jbe 0x3f842
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3f848
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3f84b
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r13d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3f7e7
addl $-0x3, %r13d
jmp 0x3f84b
movq %r12, -0x48(%rbp)
movq %rbx, %rdi
leaq 0x3a7ca(%rip), %rsi     # 0x79ff4
leaq 0x3a7c7(%rip), %rdx     # 0x79ff8
callq 0x2b022
leaq -0xa8(%rbp), %rbx
jmp 0x3f94e
addl $-0x2, %r13d
jmp 0x3f84b
decl %r13d
shrl $0x1f, %ebx
leal (%rbx,%r13), %esi
leaq -0x1c0(%rbp), %rax
movq %rax, -0x1d0(%rbp)
movq %r15, %rdi
movl $0x2d, %edx
callq 0x3250
movl %ebx, %edi
addq -0x1d0(%rbp), %rdi
movl %r13d, %esi
movl %r12d, %edx
callq 0x2aad9
movl $0x5, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x3a764(%rip), %rcx     # 0x79ff9
callq 0x3230
leaq -0x178(%rbp), %rsi
movq %rsi, -0x188(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x38(%rbp), %r12
leaq -0xa8(%rbp), %rbx
movq %r14, %r15
je 0x3f8d8
movq %rdx, -0x188(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x178(%rbp)
jmp 0x3f8de
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x20(%rbp), %r14
movq 0x8(%rax), %rdx
movq %rdx, -0x180(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x188(%rbp), %rdi
leaq 0x39512(%rip), %rsi     # 0x78e1c
callq 0x33d0
movq %r12, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3f92f
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3f937
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
testl %r15d, %r15d
je 0x3f983
movq -0x188(%rbp), %rdi
leaq -0x178(%rbp), %rax
cmpq %rax, %rdi
je 0x3f96b
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x3f983
callq 0x31d0
movl $0x1, %r12d
cmpl $0xa, %r15d
jb 0x3f9d6
movl $0x4, %r12d
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x3f9cd
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3f9d3
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3f9d6
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r12d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3f998
addl $-0x3, %r12d
jmp 0x3f9d6
addl $-0x2, %r12d
jmp 0x3f9d6
decl %r12d
movl %r12d, %esi
leaq -0x98(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0xa8(%rbp), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x2aad9
movl $0x5, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x3a5df(%rip), %rcx     # 0x79ff9
callq 0x3230
leaq -0x120(%rbp), %rsi
movq %rsi, -0x130(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x98(%rbp), %r12
je 0x3fa56
movq %rdx, -0x130(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x120(%rbp)
jmp 0x3fa5c
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)
leaq -0x130(%rbp), %rdi
leaq 0x39398(%rip), %rsi     # 0x78e1c
callq 0x33d0
leaq -0x1e0(%rbp), %rsi
movq %rsi, -0x1f0(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3fab9
movq %rdx, -0x1f0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x1e0(%rbp)
jmp 0x3fabf
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x1e8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x3faf1
callq 0x31d0
movq -0xa8(%rbp), %rdi
cmpq %r12, %rdi
je 0x3fb02
callq 0x31d0
leaq -0x158(%rbp), %r13
movq %r13, %rdi
leaq 0x3a4ec(%rip), %rsi     # 0x79fff
leaq -0x1f0(%rbp), %rdx
callq 0x2a99b
movq %r13, %rdi
leaq 0x380ee(%rip), %rsi     # 0x77c17
callq 0x33d0
movq %r12, -0xa8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3fb57
movq %rdx, -0xa8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x98(%rbp)
jmp 0x3fb5f
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0xa0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30a0
leaq -0x120(%rbp), %rsi
movq %rsi, -0x130(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3fbb9
movq %rdx, -0x130(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x120(%rbp)
jmp 0x3fbbf
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 %r14, %rdi
leaq -0x130(%rbp), %rsi
callq 0x2ad60
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x3fc00
callq 0x31d0
movq -0xa8(%rbp), %rdi
cmpq %r12, %rdi
je 0x3fc11
callq 0x31d0
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
cmpq %rax, %rdi
je 0x3fc29
callq 0x31d0
movl $0x1, %r12d
cmpl $0xa, %r15d
jb 0x3fc7c
movl $0x4, %r12d
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x3fc73
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3fc79
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3fc7c
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r12d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3fc3e
addl $-0x3, %r12d
jmp 0x3fc7c
addl $-0x2, %r12d
jmp 0x3fc7c
decl %r12d
movl %r12d, %esi
leaq -0x98(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0xa8(%rbp), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x2aad9
movl $0x9, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x3a379(%rip), %rcx     # 0x7a039
callq 0x3230
leaq -0x120(%rbp), %rdi
movq %rdi, -0x130(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x98(%rbp), %rsi
je 0x3fcfc
movq %rdx, -0x130(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x120(%rbp)
jmp 0x3fd02
movups (%rcx), %xmm0
movups %xmm0, (%rdi)
movq 0x8(%rax), %rdx
movq %rdx, -0x128(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0xa8(%rbp), %rdi
cmpq %rsi, %rdi
je 0x3fd2d
callq 0x31d0
movl $0x1, %r12d
cmpl $0xa, %r15d
leaq -0x148(%rbp), %rdx
leaq -0x158(%rbp), %r13
jb 0x3fd8e
movl $0x4, %r12d
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x3fd85
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3fd8b
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3fd8e
movl %eax, %ecx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rcx
shrq $0x2d, %rcx
addl $0x4, %r12d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3fd50
addl $-0x3, %r12d
jmp 0x3fd8e
addl $-0x2, %r12d
jmp 0x3fd8e
decl %r12d
movl %r12d, %esi
movq %rdx, -0x158(%rbp)
movq %r13, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x158(%rbp), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x2aad9
movl $0xa, %r8d
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x3a278(%rip), %rcx     # 0x7a043
callq 0x3230
leaq -0x98(%rbp), %rsi
movq %rsi, -0xa8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3fe00
movq %rdx, -0xa8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x98(%rbp)
jmp 0x3fe06
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xa0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
cmpq %rax, %rdi
je 0x3fe38
callq 0x31d0
movl $0x1, %r12d
cmpl $0xa, %r15d
leaq -0xd8(%rbp), %rdx
leaq -0xe8(%rbp), %r13
jb 0x3fe99
movl $0x4, %r12d
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x3fe90
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3fe96
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3fe99
movl %eax, %ecx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rcx
shrq $0x2d, %rcx
addl $0x4, %r12d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3fe5b
addl $-0x3, %r12d
jmp 0x3fe99
addl $-0x2, %r12d
jmp 0x3fe99
decl %r12d
movl %r12d, %esi
movq %rdx, -0xe8(%rbp)
movq %r13, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0xe8(%rbp), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x2aad9
movl $0x5, %r8d
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x3a178(%rip), %rcx     # 0x7a04e
callq 0x3230
leaq -0x148(%rbp), %rsi
movq %rsi, -0x158(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x100(%rbp), %r12
je 0x3ff12
movq %rdx, -0x158(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x148(%rbp)
jmp 0x3ff18
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x150(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x3ff4a
callq 0x31d0
leaq -0x1a8(%rbp), %r13
movq %r13, %rdi
leaq 0x39d2e(%rip), %rsi     # 0x79c89
leaq -0x130(%rbp), %rdx
callq 0x2a99b
movq %r13, %rdi
leaq 0x39688(%rip), %rsi     # 0x795f9
callq 0x33d0
movq %r12, -0x110(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3ff9f
movq %rdx, -0x110(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x100(%rbp)
jmp 0x3ffa7
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x108(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x158(%rbp), %rsi
movq -0x150(%rbp), %rdx
leaq -0x110(%rbp), %rdi
callq 0x30a0
leaq -0xb8(%rbp), %rsi
movq %rsi, -0xc8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4000b
movq %rdx, -0xc8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb8(%rbp)
jmp 0x40011
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xc0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0xc8(%rbp), %rdi
leaq 0x395c0(%rip), %rsi     # 0x795f9
callq 0x33d0
leaq -0x78(%rbp), %rsi
movq %rsi, -0x88(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40068
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x4006e
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x30a0
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x400c3
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x400c9
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)
leaq -0x68(%rbp), %rdi
leaq 0x3a626(%rip), %rsi     # 0x7a711
callq 0x33d0
leaq -0xd8(%rbp), %rsi
movq %rsi, -0xe8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40120
movq %rdx, -0xe8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xd8(%rbp)
jmp 0x40126
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xe0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r14, %rdi
leaq -0xe8(%rbp), %rsi
callq 0x2ad60
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x40167
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x40179
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x4018e
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x401a6
callq 0x31d0
movq -0x110(%rbp), %rdi
cmpq %r12, %rdi
je 0x401b7
callq 0x31d0
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
cmpq %rax, %rdi
je 0x401cf
callq 0x31d0
movq %r13, %rdi
leaq 0x393d9(%rip), %rsi     # 0x795b2
leaq -0x130(%rbp), %rdx
callq 0x2a99b
movq %r13, %rdi
leaq 0x3a065(%rip), %rsi     # 0x7a254
callq 0x33d0
movq %r12, -0x110(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4021d
movq %rdx, -0x110(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x100(%rbp)
jmp 0x40225
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x108(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x1f0(%rbp), %rsi
movq -0x1e8(%rbp), %rdx
leaq -0x110(%rbp), %rdi
callq 0x30a0
leaq -0xb8(%rbp), %rsi
movq %rsi, -0xc8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40289
movq %rdx, -0xc8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb8(%rbp)
jmp 0x4028f
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xc0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0xc8(%rbp), %rdi
leaq 0x39efe(%rip), %rsi     # 0x7a1b5
callq 0x33d0
leaq -0x78(%rbp), %rsi
movq %rsi, -0x88(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x402e6
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x402ec
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x30a0
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4033b
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x40341
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)
leaq -0x68(%rbp), %rdi
leaq 0x3a3ae(%rip), %rsi     # 0x7a711
callq 0x33d0
leaq -0xd8(%rbp), %rsi
movq %rsi, -0xe8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40398
movq %rdx, -0xe8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xd8(%rbp)
jmp 0x4039e
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xe0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r14, %rdi
leaq -0xe8(%rbp), %rsi
callq 0x2ad60
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x403df
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x403f1
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x40406
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x4041e
callq 0x31d0
movq -0x110(%rbp), %rdi
cmpq %r12, %rdi
je 0x4042f
callq 0x31d0
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
cmpq %rax, %rdi
je 0x40447
callq 0x31d0
movq %r13, %rdi
leaq 0x39161(%rip), %rsi     # 0x795b2
movq %rbx, %rdx
callq 0x2a99b
movq %r13, %rdi
leaq 0x38df3(%rip), %rsi     # 0x79256
callq 0x33d0
movq %r13, %rbx
movq %r12, -0x110(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40494
movq %rdx, -0x110(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x100(%rbp)
jmp 0x4049c
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x108(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x1f0(%rbp), %rsi
movq -0x1e8(%rbp), %rdx
leaq -0x110(%rbp), %rdi
callq 0x30a0
leaq -0xb8(%rbp), %rsi
movq %rsi, -0xc8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40500
movq %rdx, -0xc8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb8(%rbp)
jmp 0x40506
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xc0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0xc8(%rbp), %rdi
leaq 0x39b26(%rip), %rsi     # 0x7a054
callq 0x33d0
leaq -0x78(%rbp), %rsi
movq %rsi, -0x88(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4055d
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x40563
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x30a0
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x405b2
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x405b8
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)
leaq -0x68(%rbp), %rdi
leaq 0x3a137(%rip), %rsi     # 0x7a711
callq 0x33d0
leaq -0xd8(%rbp), %rsi
movq %rsi, -0xe8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4060f
movq %rdx, -0xe8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xd8(%rbp)
jmp 0x40615
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xe0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r14, %rdi
leaq -0xe8(%rbp), %rsi
callq 0x2ad60
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x40656
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x40668
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x4067d
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x40695
callq 0x31d0
movq -0x110(%rbp), %rdi
cmpq %r12, %rdi
je 0x406a6
callq 0x31d0
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
cmpq %rax, %rdi
je 0x406be
callq 0x31d0
movl $0x1, %r12d
cmpl $0xa, %r15d
jb 0x40711
movl $0x4, %r12d
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x40708
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x4070e
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x40711
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r12d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x406d3
addl $-0x3, %r12d
jmp 0x40711
addl $-0x2, %r12d
jmp 0x40711
decl %r12d
movl %r12d, %esi
leaq -0x58(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq -0x68(%rbp), %r13
movq %r13, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x68(%rbp), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x2aad9
movl $0x3, %r8d
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x39909(%rip), %rcx     # 0x7a059
callq 0x3230
leaq -0xd8(%rbp), %rsi
movq %rsi, -0xe8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x58(%rbp), %r8
je 0x40789
movq %rdx, -0xe8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xd8(%rbp)
jmp 0x4078f
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xe0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x68(%rbp), %rdi
cmpq %r8, %rdi
je 0x407b7
callq 0x31d0
movl $0x1, %r12d
cmpl $0xa, -0x160(%rbp)
movq -0x1f8(%rbp), %rdx
jb 0x40817
movl $0x4, %r12d
movl -0x160(%rbp), %eax
cmpl $0x63, %eax
jbe 0x4080e
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x40814
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x40817
movl %eax, %ecx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rcx
shrq $0x2d, %rcx
addl $0x4, %r12d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x407d9
addl $-0x3, %r12d
jmp 0x40817
addl $-0x2, %r12d
jmp 0x40817
decl %r12d
leal (%rdx,%r12), %esi
leaq -0x198(%rbp), %rax
movq %rax, -0x1a8(%rbp)
movq %rbx, %rdi
movq %rbx, %r13
movq %rdx, %rbx
movl $0x2d, %edx
callq 0x3250
movq -0x1a8(%rbp), %rdi
addq %rbx, %rdi
movl %r12d, %esi
movl -0x160(%rbp), %edx
callq 0x2aad9
movl $0x6, %r8d
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x384f9(%rip), %rcx     # 0x78d61
callq 0x3230
movq %r13, %rbx
leaq -0x100(%rbp), %r12
movq %r12, -0x110(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x110(%rbp), %rdi
je 0x408a7
movq %rdx, -0x110(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x100(%rbp)
jmp 0x408af
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x108(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x38d22(%rip), %rsi     # 0x795f2
callq 0x33d0
leaq -0xb8(%rbp), %rsi
movq %rsi, -0xc8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40905
movq %rdx, -0xc8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb8(%rbp)
jmp 0x4090b
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xc0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0xe8(%rbp), %rsi
movq -0xe0(%rbp), %rdx
leaq -0xc8(%rbp), %rdi
callq 0x30a0
leaq -0x78(%rbp), %rsi
movq %rsi, -0x88(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40969
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x4096f
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x88(%rbp), %rdi
leaq 0x39d7d(%rip), %rsi     # 0x7a711
callq 0x33d0
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x409bd
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x409c3
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 %r14, %rdi
leaq -0x68(%rbp), %rsi
callq 0x2ad60
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x409f8
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x40a0d
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x40a25
callq 0x31d0
movq -0x110(%rbp), %rdi
cmpq %r12, %rdi
je 0x40a36
callq 0x31d0
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
cmpq %rax, %rdi
leaq -0xb8(%rbp), %r12
je 0x40a55
callq 0x31d0
leaq -0x110(%rbp), %r13
movq %r13, %rdi
leaq 0x38b4c(%rip), %rsi     # 0x795b2
leaq -0xe8(%rbp), %rdx
callq 0x2a99b
movq %r13, %rdi
leaq 0x395e1(%rip), %rsi     # 0x7a05d
callq 0x33d0
movq %r12, -0xc8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40aaa
movq %rdx, -0xc8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb8(%rbp)
jmp 0x40ab2
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0xc0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r12d
cmpl $0xa, -0x160(%rbp)
movq -0x1f8(%rbp), %rdx
jb 0x40b2c
movl $0x4, %r12d
movl -0x160(%rbp), %eax
cmpl $0x63, %eax
jbe 0x40b23
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x40b29
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x40b2c
movl %eax, %ecx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rcx
shrq $0x2d, %rcx
addl $0x4, %r12d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x40aee
addl $-0x3, %r12d
jmp 0x40b2c
addl $-0x2, %r12d
jmp 0x40b2c
decl %r12d
leal (%rdx,%r12), %esi
leaq -0x198(%rbp), %rax
movq %rax, -0x1a8(%rbp)
movq %rbx, %rdi
movq %rdx, %rbx
movl $0x2d, %edx
callq 0x3250
movq -0x1a8(%rbp), %rdi
addq %rbx, %rdi
movl %r12d, %esi
movl -0x160(%rbp), %edx
callq 0x2aad9
movq -0xc8(%rbp), %rcx
movl $0xf, %esi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rcx
je 0x40b85
movq -0xb8(%rbp), %rsi
movq -0xc0(%rbp), %r8
movq -0x1a0(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
leaq -0x98(%rbp), %r12
leaq -0x48(%rbp), %rbx
jbe 0x40bc8
movl $0xf, %esi
leaq -0x198(%rbp), %rdi
cmpq %rdi, -0x1a8(%rbp)
je 0x40bc3
movq -0x198(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x40bdd
movq -0x1a8(%rbp), %rsi
leaq -0xc8(%rbp), %rdi
callq 0x30a0
jmp 0x40bed
leaq -0x1a8(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x78(%rbp), %rsi
movq %rsi, -0x88(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x40c14
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x40c1a
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0x88(%rbp), %rdi
leaq 0x39421(%rip), %rsi     # 0x7a065
callq 0x33d0
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40c6d
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x40c73
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 %r14, %rdi
leaq -0x68(%rbp), %rsi
callq 0x2ad60
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x40ca8
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x40cbd
callq 0x31d0
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
cmpq %rax, %rdi
je 0x40cd5
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x40ced
callq 0x31d0
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x40d05
callq 0x31d0
leaq -0x88(%rbp), %r13
movq %r13, %rdi
leaq 0x39364(%rip), %rsi     # 0x7a07a
leaq -0x130(%rbp), %rdx
callq 0x2a99b
movq %r13, %rdi
leaq 0x39360(%rip), %rsi     # 0x7a08c
callq 0x33d0
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40d55
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x40d5b
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 %r14, %rdi
leaq -0x68(%rbp), %rsi
callq 0x2ad60
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x40d90
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x40da5
callq 0x31d0
movq %r13, %rdi
leaq 0x392ee(%rip), %rsi     # 0x7a09d
leaq -0xa8(%rbp), %rdx
callq 0x2a99b
movq %r13, %rdi
leaq 0x392ea(%rip), %rsi     # 0x7a0af
callq 0x33d0
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40dee
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x40df4
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 %r14, %rdi
leaq -0x68(%rbp), %rsi
callq 0x2ad60
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x40e29
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x40e3e
callq 0x31d0
leaq -0x110(%rbp), %r13
movq %r13, %rdi
leaq 0x38763(%rip), %rsi     # 0x795b2
leaq -0x158(%rbp), %rdx
callq 0x2a99b
movq %r13, %rdi
leaq 0x383f1(%rip), %rsi     # 0x79256
callq 0x33d0
leaq -0xb8(%rbp), %rsi
movq %rsi, -0xc8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40e9a
movq %rdx, -0xc8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb8(%rbp)
jmp 0x40ea0
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xc0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
leaq -0xc8(%rbp), %rdi
callq 0x30a0
leaq -0x78(%rbp), %rsi
movq %rsi, -0x88(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40efe
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x40f04
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x88(%rbp), %rdi
leaq 0x397e8(%rip), %rsi     # 0x7a711
callq 0x33d0
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40f52
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x40f58
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 %r14, %rdi
leaq -0x68(%rbp), %rsi
callq 0x2ad60
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x40f8d
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x40fa2
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x40fba
callq 0x31d0
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x40fd2
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x40fea
callq 0x31d0
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
cmpq %rax, %rdi
je 0x41002
callq 0x31d0
movq -0xa8(%rbp), %rdi
cmpq %r12, %rdi
je 0x41013
callq 0x31d0
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
leaq -0x38(%rbp), %r12
je 0x4102f
callq 0x31d0
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x41047
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x41055
callq 0x31d0
incl %r15d
cmpl -0x138(%rbp), %r15d
jne 0x3f786
movq -0x200(%rbp), %rax
movl (%rax), %ebx
cmpl $0x3, %ebx
movq -0x1b0(%rbp), %r12
movq -0x168(%rbp), %rcx
jl 0x4157c
movl -0xf0(%rbp), %eax
movq %rax, -0x210(%rbp)
xorl %r13d, %r13d
movq $0x0, -0x1f8(%rbp)
movslq (%rcx), %r14
movq %r14, %rbx
shlq $0x5, %rbx
leaq 0x8(%rbx), %rdi
testq %r14, %r14
movq $-0x1, %rax
cmovsq %rax, %rdi
callq 0x3030
movq %r14, (%rax)
testq %r14, %r14
je 0x410e6
leaq 0x18(%rax), %rcx
movq %rcx, -0x10(%rcx)
movq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
addq $0x20, %rcx
addq $-0x20, %rbx
jne 0x410cd
addq $0x8, %rax
movq (%r12), %rcx
movq -0x1f8(%rbp), %r15
movq %rax, (%rcx,%r15,8)
testq %r15, %r15
leaq 0x394fe(%rip), %r14     # 0x7a601
je 0x4112d
xorl %ebx, %ebx
movq (%r12), %rax
movq (%rax,%r15,8), %rdi
movq 0x8(%rdi,%rbx), %rdx
addq %rbx, %rdi
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x3310
addq $0x20, %rbx
cmpq %rbx, %r13
jne 0x41107
cmpl $0x0, -0xf0(%rbp)
movq -0x168(%rbp), %rcx
movq %r15, %rbx
leaq -0xe8(%rbp), %r15
jle 0x4154d
xorl %r12d, %r12d
leaq (%r12,%rbx), %rsi
movslq (%rcx), %rax
cmpq %rax, %rsi
jge 0x4154d
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movq $0x0, -0x40(%rbp)
movb $0x0, -0x38(%rbp)
movl $0x1, %r14d
cmpq $0xa, %rbx
jb 0x411c4
movl $0x4, %r14d
movl %ebx, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x411bb
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x411c1
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x411c4
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x4118b
addl $-0x3, %r14d
jmp 0x411c4
addl $-0x2, %r14d
jmp 0x411c4
decl %r14d
movq %rsi, -0x160(%rbp)
movl %r14d, %esi
leaq -0xd8(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq %r15, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0xe8(%rbp), %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x2aad9
movl $0x3, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x38e4b(%rip), %rcx     # 0x7a059
callq 0x3230
leaq -0x148(%rbp), %rsi
movq %rsi, -0x158(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x41243
movq %rdx, -0x158(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x148(%rbp)
jmp 0x41249
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x150(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x158(%rbp), %rdi
leaq 0x3821c(%rip), %rsi     # 0x7948d
callq 0x33d0
leaq -0x98(%rbp), %rsi
movq %rsi, -0xa8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x412a6
movq %rdx, -0xa8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x98(%rbp)
jmp 0x412ac
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xa0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r14d
cmpq $0xa, %r12
jb 0x41319
movl $0x4, %r14d
movl %r12d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x41310
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x41316
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x41319
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x412e0
addl $-0x3, %r14d
jmp 0x41319
addl $-0x2, %r14d
jmp 0x41319
decl %r14d
movl %r14d, %esi
leaq -0x58(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq -0x68(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x68(%rbp), %rdi
movl %r14d, %esi
movl %r12d, %edx
callq 0x2aad9
movq -0xa8(%rbp), %rcx
movl $0xf, %esi
leaq -0x98(%rbp), %rax
cmpq %rax, %rcx
je 0x41360
movq -0x98(%rbp), %rsi
movq -0xa0(%rbp), %r8
movq -0x60(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
leaq -0x120(%rbp), %r14
jbe 0x41393
movl $0xf, %esi
leaq -0x58(%rbp), %rdi
cmpq %rdi, -0x68(%rbp)
je 0x4138e
movq -0x58(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x413a5
movq -0x68(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x30a0
jmp 0x413b2
leaq -0x68(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r14, -0x130(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x413d8
movq %rdx, -0x130(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x120(%rbp)
jmp 0x413df
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x128(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0x130(%rbp), %rdi
leaq 0x37a10(%rip), %rsi     # 0x78e1c
callq 0x33d0
movq %r15, %rbx
movq %r13, %r15
leaq -0x1e0(%rbp), %r13
movq %r13, -0x1f0(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x41447
movq %rdx, -0x1f0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x1e0(%rbp)
jmp 0x4144f
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0x1e8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x48(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x3260
movq -0x1f0(%rbp), %rdi
cmpq %r13, %rdi
je 0x4148a
callq 0x31d0
movq -0x130(%rbp), %rdi
cmpq %r14, %rdi
movq %r15, %r13
je 0x4149e
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
movq %rbx, %r15
je 0x414b3
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
movq -0x1f8(%rbp), %rbx
je 0x414d2
callq 0x31d0
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
cmpq %rax, %rdi
je 0x414ea
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x41502
callq 0x31d0
movq -0x1b0(%rbp), %rax
movq (%rax), %rax
movq -0x160(%rbp), %rdi
shlq $0x5, %rdi
addq (%rax,%rbx,8), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3120
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x41536
callq 0x31d0
incq %r12
cmpq -0x210(%rbp), %r12
movq -0x168(%rbp), %rcx
jne 0x4114e
incq %rbx
movq -0x200(%rbp), %rax
movq %rbx, %rsi
movslq (%rax), %rbx
leaq -0x2(%rbx), %rax
addq $0x20, %r13
movq %rsi, -0x1f8(%rbp)
cmpq %rax, %rsi
movq -0x1b0(%rbp), %r12
jl 0x410a0
movslq (%rcx), %r15
movq %r15, %r14
shlq $0x5, %r14
leaq 0x8(%r14), %rax
testq %r15, %r15
movq $-0x1, %rdi
cmovnsq %rax, %rdi
callq 0x3030
leaq 0x8(%rax), %rcx
movq %r15, (%rax)
testq %r15, %r15
je 0x415c6
addq $0x18, %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
addq $0x20, %rax
addq $-0x20, %r14
jne 0x415ad
movq (%r12), %rax
movslq %ebx, %rdx
movq %rcx, -0x10(%rax,%rdx,8)
cmpl $0x0, -0x138(%rbp)
jle 0x41732
leaq -0x38(%rbp), %r12
movl -0x138(%rbp), %eax
movq %rax, -0x168(%rbp)
xorl %ebx, %ebx
leaq -0x1f0(%rbp), %r14
movl $0xd1b71759, %r15d      # imm = 0xD1B71759
movl $0x1, %r13d
cmpq $0xa, %rbx
jb 0x4164c
movl $0x4, %r13d
movl %ebx, %eax
cmpl $0x63, %eax
jbe 0x41643
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x41649
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x4164c
movl %eax, %ecx
imulq %r15, %rcx
shrq $0x2d, %rcx
addl $0x4, %r13d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x41613
addl $-0x3, %r13d
jmp 0x4164c
addl $-0x2, %r13d
jmp 0x4164c
decl %r13d
movl %r13d, %esi
leaq -0x1e0(%rbp), %rax
movq %rax, -0x1f0(%rbp)
movq %r14, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x1f0(%rbp), %rdi
movl %r13d, %esi
movl %ebx, %edx
callq 0x2aad9
movl $0x5, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x389bf(%rip), %rcx     # 0x7a04e
callq 0x3230
movq %r12, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x416b4
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x416bc
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x1b0(%rbp), %rax
movq (%rax), %rax
movq -0x200(%rbp), %rcx
movslq (%rcx), %rcx
movq %rbx, %rdi
shlq $0x5, %rdi
addq -0x10(%rax,%rcx,8), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3260
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x4170a
callq 0x31d0
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x41722
callq 0x31d0
incq %rbx
cmpq -0x168(%rbp), %rbx
jne 0x415ff
movq -0x138(%rbp), %rax
testl %eax, %eax
movl -0x204(%rbp), %r15d
jle 0x41785
movq %rax, %rcx
movq 0x10(%rbp), %rbx
movq -0xf0(%rbp), %rax
leal (%rax,%rcx), %r14d
decl %r14d
cmpl %r14d, %eax
cmovgl %eax, %r14d
movl $0x18, %edi
callq 0x3200
movl %r15d, 0x10(%rax)
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3060
incq 0x10(%rbx)
incl %r15d
cmpl %r15d, %r14d
jne 0x41760
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
jne 0x417e6
jmp 0x41803
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x417c1
callq 0x31d0
jmp 0x417c1
jmp 0x41800
movq %rax, %r14
movq -0x188(%rbp), %rdi
leaq -0x178(%rbp), %rax
cmpq %rax, %rdi
jne 0x41820
jmp 0x4182c
jmp 0x41829
jmp 0x41829
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x41803
callq 0x31d0
jmp 0x41803
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x41814
callq 0x31d0
jmp 0x41814
movq %rax, %r14
movq -0x188(%rbp), %rdi
cmpq %r13, %rdi
jne 0x41820
jmp 0x4182c
movq %rax, %r14
movq -0x188(%rbp), %rdi
cmpq %r15, %rdi
je 0x4182c
callq 0x31d0
jmp 0x4182c
jmp 0x41829
movq %rax, %r14
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
jmp 0x41dd8
jmp 0x41d27
jmp 0x41d27
movq %rax, %r14
jmp 0x41869
movq %rax, %r14
movq -0x188(%rbp), %rdi
leaq -0x178(%rbp), %rax
cmpq %rax, %rdi
je 0x41869
callq 0x31d0
movq -0x1d0(%rbp), %rdi
cmpq -0x210(%rbp), %rdi
jne 0x41ddd
jmp 0x41de2
movq %rax, %r14
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
jmp 0x41dd8
jmp 0x4193b
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x418dd
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x418c8
leaq -0x38(%rbp), %r13
movq %rax, %r14
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x418c8
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x418dd
callq 0x31d0
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
jmp 0x41971
jmp 0x4192a
jmp 0x418f8
jmp 0x41901
jmp 0x4192a
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x4191a
leaq -0x38(%rbp), %r13
movq %rax, %r14
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x4191a
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
jmp 0x41b8c
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41b96
jmp 0x41b77
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x4197b
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41966
leaq -0x38(%rbp), %r13
movq %rax, %r14
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x41966
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x4197b
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x41b7e
callq 0x31d0
jmp 0x41b7e
leaq -0x38(%rbp), %r13
movq %rax, %r14
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x41d1b
callq 0x31d0
jmp 0x41d1b
jmp 0x419e0
jmp 0x419f3
jmp 0x419ff
jmp 0x41a08
jmp 0x41a11
jmp 0x41a1a
jmp 0x41a23
jmp 0x419e0
jmp 0x419f3
jmp 0x419ff
jmp 0x41a08
jmp 0x41a11
jmp 0x41a1a
jmp 0x41a23
movq %rax, %r14
leaq -0x98(%rbp), %rbx
leaq -0x38(%rbp), %r13
jmp 0x41bb5
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41a99
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41a81
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41a69
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41a54
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41a42
leaq -0x38(%rbp), %r13
movq %rax, %r14
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x41a42
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x41a54
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x41a69
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x41a81
callq 0x31d0
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x41a99
callq 0x31d0
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
cmpq %rax, %rdi
je 0x41ab1
callq 0x31d0
leaq -0x98(%rbp), %rbx
jmp 0x41bb5
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41ab1
leaq -0x38(%rbp), %r13
movq %rax, %r14
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
jmp 0x41aa7
jmp 0x41b6e
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41b5e
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41b46
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41b2e
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41b19
leaq -0x38(%rbp), %r13
movq %rax, %r14
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x41b19
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x41b2e
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x41b46
callq 0x31d0
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x41b5e
callq 0x31d0
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
jmp 0x41b8c
movq %rax, %r14
leaq -0x38(%rbp), %r13
jmp 0x41b96
leaq -0x38(%rbp), %r13
movq %rax, %r14
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x41b96
callq 0x31d0
leaq -0x98(%rbp), %rbx
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x41bb5
callq 0x31d0
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
cmpq %rax, %rdi
je 0x41bcd
callq 0x31d0
movq -0xa8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x41bde
callq 0x31d0
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x41bf6
callq 0x31d0
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x41c0e
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
jne 0x41ddd
jmp 0x41de2
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41c0e
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41c51
leaq -0x38(%rbp), %r13
movq %rax, %r14
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x41c51
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
jmp 0x41c04
jmp 0x41cbf
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41cac
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41c94
leaq -0x38(%rbp), %r13
movq %rax, %r14
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x41c94
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x41cac
callq 0x31d0
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
jmp 0x41bec
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41bf6
leaq -0x38(%rbp), %r13
movq %rax, %r14
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
jmp 0x41bec
leaq -0x38(%rbp), %r13
movq %rax, %r14
jmp 0x41bde
leaq -0x38(%rbp), %r13
movq %rax, %r14
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
cmpq %rax, %rdi
jne 0x41bd9
jmp 0x41bde
leaq -0x38(%rbp), %r13
movq %rax, %r14
leaq -0x98(%rbp), %rbx
jmp 0x41bcd
movq %rax, %r14
jmp 0x41de2
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
jne 0x41ddd
jmp 0x41de2
jmp 0x41d69
movq %rax, %r14
jmp 0x41db8
movq %rax, %r14
jmp 0x41d88
movq %r14, %rcx
movq %rax, %r14
movq -0x130(%rbp), %rdi
cmpq %rcx, %rdi
je 0x41d76
callq 0x31d0
jmp 0x41d76
movq %rax, %r14
jmp 0x41dd0
movq %rax, %r14
jmp 0x41da0
movq %rax, %r14
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x41d88
callq 0x31d0
leaq -0x98(%rbp), %rax
movq -0xa8(%rbp), %rdi
cmpq %rax, %rdi
je 0x41da0
callq 0x31d0
leaq -0x148(%rbp), %rax
movq -0x158(%rbp), %rdi
cmpq %rax, %rdi
je 0x41db8
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x41dd0
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x41de2
callq 0x31d0
movq %r14, %rdi
callq 0x33a0