// File: /workspace/github_cpp_makefile_star2_O3/temelmertcan[P]multgen/src/multgen.cpp
// Function: create_mult(int, int, int, int, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::list<int, std::allocator<int>>&, 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>>>>>&, int&, bool**&)
int create_mult ( int  in1_size,
                  int  in2_size,
                  int  out_size,
		  int  shift_amount,
		  bool allowXes,
                  string final_stage_adder,
                  string pp_encoding,
                  string tree,
                  bool create_fin_adder,
                  string& module_name,
                  std::list<int>& extra_ones_indices,
                  queue<string>& verilog,
                  int& adder_size,
                  bool**& zeros_in_output){

  int pp_dim1, pp_dim2;
  string** pp_matrix;

  module_name = tree + "_" + pp_encoding + "_"
    + (create_fin_adder?final_stage_adder + "_" : "")
    + to_string(in1_size) + "x"
    + to_string(in2_size) + (allowXes ? "" : "_noX");
    
  if (create_fin_adder){

    if (shift_amount>0 || out_size!=(in1_size + in2_size))
      module_name += "_" + to_string(out_size-1) + "to" + to_string(shift_amount);

    verilog.push ("// Specification module to help understand what the design implements.");
    verilog.push ("module "+module_name+"_spec (");
    verilog.push("indent");
    verilog.push("indent");
    verilog.push ("input logic [" + to_string(in1_size-1) + ":0] IN1,");
    verilog.push ("input logic [" + to_string(in2_size-1) +  ":0] IN2,");
    verilog.push ("input logic [0:0] IN3, //redundant");
    verilog.push ("output logic design_is_correct, // is set to 1 iff the output of " + module_name + " matches its spec.");
    verilog.push ("output logic ["  + to_string(out_size-1) +  ":"+to_string(shift_amount)+"] design_res,");
    verilog.push ("output logic ["  + to_string(out_size-1) +  ":"+to_string(shift_amount)+"] spec_res);");
    verilog.push("outdent");
    verilog.push("");

    string signed_str = (pp_encoding[0] == 'S')?"signed'":"unsigned'";

    if (shift_amount>0){
      verilog.push("wire logic [" + to_string(out_size-1) + ":0] tmp_spec_res;");
      verilog.push("assign tmp_spec_res = "+signed_str+"(IN1) * "+signed_str+"(IN2);");
      verilog.push("assign spec_res["  + to_string(out_size-1) +  ":"+to_string(shift_amount)
		   +"] =  tmp_spec_res["  + to_string(out_size-1) +  ":"+to_string(shift_amount)
		   +"];");
    }else
      verilog.push("assign spec_res = "+signed_str+"(IN1) * "+signed_str+"(IN2);");

    verilog.push(module_name + " mult(IN1, IN2, design_res);");
    verilog.push("assign design_is_correct = ((spec_res == design_res) ? 1 : 0);");
    verilog.push("");
    verilog.push("outdent");
    verilog.push ("endmodule");
    verilog.push("");

    verilog.push ("\n");
  }

  verilog.push ("module " + module_name + "(");
  verilog.push("indent");
  verilog.push("indent");
  verilog.push ("input logic [" + to_string(in1_size - 1) + ":0] IN1," );
  verilog.push ("input logic [" + to_string(in2_size - 1) + ":0] IN2," );
  if (create_fin_adder)
    verilog.push ("output logic ["  + to_string(out_size-1) +  ":"+to_string(shift_amount)+"] result);" );
  else
    {
      verilog.push ("output logic [" + to_string(out_size - 1) + ":0] result0," );
      verilog.push ("output logic [" + to_string(out_size - 1) + ":0] result1);" );
    }
  verilog.push("outdent");
  verilog.push("");

  verilog.push("\n// Creating Partial Products \n");

  bool signed_mult = (pp_encoding[0] == 'S');
  int pp_adder_size = 0;

  if (pp_encoding.compare ("USP") == 0) {
    create_unsignedpp (in1_size, in2_size, pp_matrix,
                       pp_dim1, pp_dim2, verilog);

  } else if (pp_encoding.compare ("SSP") == 0) {
    create_signedpp (in1_size, in2_size, pp_matrix,
                     pp_dim1, pp_dim2, extra_ones_indices,
		     verilog);
  } else if (pp_encoding.compare ("SB4") == 0) {
    create_br4pp (in1_size, in2_size, true, pp_matrix,
                  pp_dim1, pp_dim2, extra_ones_indices,
		  allowXes, verilog);
    // create_signedbr4pp (in1_size, in2_size, pp_matrix,
    //                     pp_dim1, pp_dim2, verilog);
  } else if (pp_encoding.compare ("SB8") == 0) {
    create_br8pp (in1_size, in2_size, true, pp_matrix,
                  pp_dim1, pp_dim2, extra_ones_indices,
		  final_stage_adder, pp_adder_size,
		  allowXes, verilog);
  } else if (pp_encoding.compare ("UB8") == 0) {
    create_br8pp (in1_size, in2_size, false, pp_matrix,
                  pp_dim1, pp_dim2, extra_ones_indices,
		  final_stage_adder, pp_adder_size,
		  allowXes, verilog);
  } else if (pp_encoding.compare ("SB16") == 0) {
    create_br16pp (in1_size, in2_size, true, pp_matrix,
                   pp_dim1, pp_dim2, extra_ones_indices,
		   final_stage_adder, pp_adder_size,
		   allowXes, verilog);
  }  else if (pp_encoding.compare ("UB16") == 0) {
    create_br16pp (in1_size, in2_size, false, pp_matrix,
                   pp_dim1, pp_dim2, extra_ones_indices,
		   final_stage_adder, pp_adder_size, allowXes, verilog);
  } else if (pp_encoding.compare ("SB2") == 0) {
    create_br2pp (in1_size, in2_size, true, pp_matrix,
                  pp_dim1, pp_dim2, extra_ones_indices, allowXes, verilog);
    // create_signedbr2pp (in1_size, in2_size, pp_matrix,
    //                     pp_dim1, pp_dim2, verilog);
  } else if (pp_encoding.compare ("UB2") == 0) {
    create_br2pp (in1_size, in2_size, false, pp_matrix,
                  pp_dim1, pp_dim2, extra_ones_indices, allowXes, verilog);
    // create_unsignedbr2pp (in1_size, in2_size, pp_matrix,
    //                       pp_dim1, pp_dim2, verilog);
  } else if (pp_encoding.compare ("UB4") == 0) {
    create_br4pp (in1_size, in2_size, false, pp_matrix,
                  pp_dim1, pp_dim2, extra_ones_indices, allowXes, verilog);
    // create_unsignedbr4pp (in1_size, in2_size, pp_matrix,
    //                       pp_dim1, pp_dim2, verilog);
  } else {
    cout << "Bad PP Selection! Given: " << pp_encoding << endl;
    return 1;
  }

  if (create_fin_adder && !extra_ones_indices.empty()){

    // cout << "pp_dim2: " << pp_dim2 << endl;
    // for (auto e : extra_ones_indices)
    //   cout << e << " ";
    // cout << endl;

    add_extra_ones_to_pp_matrix (pp_matrix[pp_dim1-1], pp_dim2, extra_ones_indices);
    extra_ones_indices.clear();
  }

  print_pp (pp_matrix, pp_dim1, pp_dim2, verilog, true);

  // if (!extra_ones_indices.empty()){
  //   cout << "extra_ones_indices ";
  //   for (auto e : extra_ones_indices)
  //     cout << e << " ";
  //   cout << endl;
  // }

  // For information printing purposes only:
  string extra_ones_for_partial_mult = ""; // for partial mults, the extra ones may not be included.
  if (!extra_ones_indices.empty()){
    //verilog.push("\n// Extra_ones: \n");
    // cout << "extra_ones_indices: ";
    // for (auto i : extra_ones_indices)
    //   cout << i << " ";
    // cout << endl;
    string * extra_ones;
    add_extra_ones_to_pp_matrix (extra_ones, pp_dim2, extra_ones_indices);
    for (int i = pp_dim2-1; i>=0; i--)
      extra_ones_for_partial_mult += (extra_ones[i]=="1'b1"?"1":"0");
    //verilog.push("indent");
    verilog.push("");
    verilog.push ("// Extra ones that help with sign extension are not included in the multiplication.");
    verilog.push ("// To get the full multiplication result, you'd need to add b" + extra_ones_for_partial_mult + " to the tree above");
    //verilog.push("outdent");
  }
 
    

  verilog.push("\n// Creating Summation Tree \n");

  if (tree.compare ("WT") == 0) {
    create_wallacetree (pp_matrix, final_stage_adder, pp_dim1, pp_dim2,
                        out_size, shift_amount,
                        create_fin_adder,
                        signed_mult,
                        verilog,
                        adder_size,
                        zeros_in_output);

  } else if (tree.compare ("c42") == 0) {
    create_4to2tree (pp_matrix, final_stage_adder, pp_dim1, pp_dim2,
		     out_size, shift_amount,
		     create_fin_adder,
		     signed_mult,
		     verilog,
		     adder_size,
		     zeros_in_output);
  } else if (tree.compare ("DT") == 0){
    create_daddatree (pp_matrix, final_stage_adder, pp_dim1, pp_dim2,
                      out_size, shift_amount,
                      create_fin_adder,
                      signed_mult,
                      verilog,
                      adder_size,
                      zeros_in_output);
  } else {
    cout << "Bad Summation tree Selection!" << endl;
    return 1;
  }

  verilog.push("outdent");

  verilog.push ("endmodule\n\n");

  verilog.push("");

  

  cout << endl;
  cout << "Multiplier Module (" << module_name << ") is created." << endl;
  cout << "   Inputs: IN1[" << in1_size-1 << ":0], IN2[" << in2_size-1 << ":0]" << endl;
  if (create_fin_adder){
    cout << "   Output: result[" << out_size-1 << ":"<< shift_amount <<"]" << endl;
    cout << "   Function: result = IN1 * IN2" << (shift_amount==0?"":" >> "+to_string(shift_amount)) << (signed_mult?" (signed)":" (unsigned)") << endl;
  }else{
    cout << "   Outputs: result0[" << out_size-1 << ":0], result1[" << out_size-1 << ":0]" << endl;
    cout << "   Function: IN1 * IN2 " << (signed_mult?"(signed)":"(unsigned)") << " = result0 + result1 + "<< pp_dim2 << "'b" << extra_ones_for_partial_mult << " (Extra ones are to complete the sign extension)." << endl;
  }


  if (pp_adder_size>0)
    create_adder (final_stage_adder, true, pp_adder_size, verilog);
    
  return 0;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2f8, %rsp            # imm = 0x2F8
movq %r9, -0x128(%rbp)
movl %r8d, -0xc4(%rbp)
movl %ecx, %r12d
movq %rsi, -0xf0(%rbp)
movq %rdi, -0xf8(%rbp)
movq 0x18(%rbp), %rax
movl %edx, -0x94(%rbp)
leaq -0x180(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x190(%rbp), %rbx
movq %rbx, %rdi
callq 0x2a8a4
leaq 0x718e5(%rip), %rsi     # 0x79176
movq %rbx, %rdi
callq 0x33d0
movq 0x10(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq -0x190(%rbp), %rdi
callq 0x30a0
leaq -0x1a0(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x78dd
movq %rdx, -0x1b0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x1a0(%rbp)
jmp 0x78e3
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x1b0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x7186e(%rip), %rsi     # 0x79176
callq 0x33d0
leaq -0x108(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x793a
movq %rdx, -0x118(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x108(%rbp)
jmp 0x7940
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, -0x110(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x160(%rbp), %r14
leaq -0x170(%rbp), %rdi
cmpb $0x0, 0x20(%rbp)
je 0x799c
movq %r14, (%rdi)
movq -0x128(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x2a8a4
leaq 0x717e8(%rip), %rsi     # 0x79176
leaq -0x170(%rbp), %rdi
callq 0x33d0
jmp 0x79ae
movq %r14, (%rdi)
leaq 0x71c5b(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
movq -0x118(%rbp), %rcx
movq -0x110(%rbp), %r8
movq -0x168(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %rbx, %rcx
je 0x79d8
movq -0x108(%rbp), %rdi
movq -0x170(%rbp), %rsi
cmpq %rdi, %rax
jbe 0x79fa
movl $0xf, %edi
cmpq %r14, %rsi
je 0x79f5
movq -0x160(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x7a08
leaq -0x118(%rbp), %rdi
callq 0x30a0
jmp 0x7a18
leaq -0x170(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0xd8(%rbp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x7a42
movq %rsi, -0xe8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xd8(%rbp)
jmp 0x7a48
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0xe0(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq -0xf8(%rbp), %rax
movl %eax, %ebx
negl %ebx
cmovsl %eax, %ebx
movl $0x1, %r14d
cmpl $0xa, %ebx
jb 0x7ac9
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x7ac0
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x7ac6
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x7ac9
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x7a8d
addl $-0x3, %r14d
jmp 0x7ac9
addl $-0x2, %r14d
jmp 0x7ac9
decl %r14d
movq -0xf8(%rbp), %r15
shrl $0x1f, %r15d
leal (%r14,%r15), %esi
leaq -0x1c0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x1d0(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movl %r15d, %edi
addq -0x1d0(%rbp), %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x2a6a5
leaq -0xd8(%rbp), %rsi
movq -0x10(%rsi), %rcx
movq -0x8(%rsi), %r8
movq -0x1c8(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %rsi, %rcx
je 0x7b33
movq -0xd8(%rbp), %rdi
movq -0x1d0(%rbp), %rsi
cmpq %rdi, %rax
jbe 0x7b5c
movl $0xf, %edi
leaq -0x1c0(%rbp), %r9
cmpq %r9, %rsi
je 0x7b57
movq -0x1c0(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x7b6a
leaq -0xe8(%rbp), %rdi
callq 0x30a0
jmp 0x7b7a
leaq -0x1d0(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0xb0(%rbp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x7ba4
movq %rsi, -0xc0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb0(%rbp)
jmp 0x7baa
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0xb8(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x6f823(%rip), %rsi     # 0x773f3
leaq -0xc0(%rbp), %rdi
callq 0x33d0
leaq -0x80(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x7c03
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x7c0b
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0xf0(%rbp), %rax
movl %eax, %ebx
negl %ebx
cmovsl %eax, %ebx
movl $0x1, %r14d
cmpl $0xa, %ebx
jb 0x7c87
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x7c7e
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x7c84
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x7c87
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x7c4b
addl $-0x3, %r14d
jmp 0x7c87
addl $-0x2, %r14d
jmp 0x7c87
decl %r14d
movq -0xf0(%rbp), %r15
shrl $0x1f, %r15d
leal (%r14,%r15), %esi
leaq -0x140(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x150(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movl %r15d, %edi
addq -0x150(%rbp), %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x2a6a5
movq -0x90(%rbp), %rcx
movq -0x88(%rbp), %r8
movq -0x148(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r13, %rcx
je 0x7ced
movq -0x80(%rbp), %rdi
movq -0x150(%rbp), %rsi
cmpq %rdi, %rax
jbe 0x7d16
movl $0xf, %edi
leaq -0x140(%rbp), %r9
cmpq %r9, %rsi
je 0x7d11
movq -0x140(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x7d24
leaq -0x90(%rbp), %rdi
callq 0x30a0
jmp 0x7d34
leaq -0x150(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x7d55
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x7d5b
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x71883(%rip), %rax     # 0x79601
leaq 0x700dc(%rip), %rsi     # 0x77e61
cmpb $0x0, -0xc4(%rbp)
cmovneq %rax, %rsi
leaq -0x48(%rbp), %rdi
callq 0x33d0
leaq -0x58(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x7dbd
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x7dc4
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x28(%rbp), %rdi
movq %rbx, %rsi
callq 0x3260
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x7df8
callq 0x31d0
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7e0a
callq 0x31d0
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x7e22
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r13, %rdi
je 0x7e33
callq 0x31d0
leaq -0xb0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7e48
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x7e60
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x7e78
callq 0x31d0
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x7e90
callq 0x31d0
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
cmpq %rax, %rdi
je 0x7ea8
callq 0x31d0
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x7ec0
callq 0x31d0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x7ed8
callq 0x31d0
movq 0x38(%rbp), %r15
cmpb $0x0, 0x20(%rbp)
movl %r12d, -0x98(%rbp)
je 0x9c7e
testl %r12d, %r12d
setle %al
movl -0x94(%rbp), %ebx
movq -0xf0(%rbp), %rcx
movq -0xf8(%rbp), %rdx
addl %edx, %ecx
cmpl %ecx, %ebx
sete %cl
testb %cl, %al
jne 0x8218
decl %ebx
movl %ebx, %r14d
negl %r14d
cmovsl %ebx, %r14d
movl $0x1, %r12d
cmpl $0xa, %r14d
jb 0x7f78
movl $0x4, %r12d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r14d, %ecx
cmpl $0x63, %ecx
jbe 0x7f6f
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x7f75
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x7f78
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r12d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x7f3c
addl $-0x3, %r12d
jmp 0x7f78
addl $-0x2, %r12d
jmp 0x7f78
decl %r12d
shrl $0x1f, %ebx
leal (%r12,%rbx), %esi
leaq -0xc0(%rbp), %r15
leaq -0xb0(%rbp), %rax
movq %rax, (%r15)
movq %r15, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%r15), %rbx
movq %rbx, %rdi
movl %r12d, %esi
movl %r14d, %edx
callq 0x2a6a5
leaq 0x711c1(%rip), %rcx     # 0x79176
movl $0x1, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r13, -0x90(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movl -0x98(%rbp), %r15d
leaq -0x38(%rbp), %r12
je 0x7ff8
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x8000
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq -0x90(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6fe41(%rip), %rsi     # 0x77e66
callq 0x33d0
movq %r12, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x804a
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x8052
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)
movl %r15d, %ebx
negl %ebx
cmovsl %r15d, %ebx
movl $0x1, %r14d
cmpl $0xa, %ebx
jb 0x80c6
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x80bd
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x80c3
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x80c6
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x808a
addl $-0x3, %r14d
jmp 0x80c6
addl $-0x2, %r14d
jmp 0x80c6
decl %r14d
shrl $0x1f, %r15d
leal (%r14,%r15), %esi
leaq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0x3250
movl %r15d, %edi
addq -0xe8(%rbp), %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x2a6a5
movq -0x48(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0xe0(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r12, %rcx
je 0x811e
movq -0x38(%rbp), %rdi
movq -0xe8(%rbp), %rsi
cmpq %rdi, %rax
leaq -0x58(%rbp), %r14
movq 0x38(%rbp), %r15
jbe 0x814f
movl $0xf, %edi
leaq -0xd8(%rbp), %r9
cmpq %r9, %rsi
je 0x814a
movq -0xd8(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x815a
leaq -0x48(%rbp), %rdi
callq 0x30a0
jmp 0x816a
leaq -0xe8(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x8187
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x818e
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
movq 0x28(%rbp), %rdi
callq 0x30a0
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x81c9
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x81e1
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x81ef
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r13, %rdi
leaq -0xb0(%rbp), %rbx
je 0x8207
callq 0x31d0
movq -0xc0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8218
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6fc43(%rip), %rsi     # 0x77e69
leaq 0x6fc82(%rip), %rdx     # 0x77eaf
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
leaq -0x38(%rbp), %r15
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x8250
callq 0x31d0
leaq 0x6fa51(%rip), %rsi     # 0x77ca8
leaq -0x48(%rbp), %rbx
movq %rbx, %rdi
movq 0x28(%rbp), %rdx
callq 0x2a567
leaq 0x6fa42(%rip), %rsi     # 0x77cb0
movq %rbx, %rdi
callq 0x33d0
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8296
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x829d
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x38(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x82cf
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x82dd
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6f9cd(%rip), %rsi     # 0x77cb8
leaq 0x6f9cc(%rip), %rdx     # 0x77cbe
callq 0x2ac04
movq 0x38(%rbp), %rbx
leaq -0x68(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x8315
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6f995(%rip), %rsi     # 0x77cb8
leaq 0x6f994(%rip), %rdx     # 0x77cbe
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x8349
callq 0x31d0
movq -0xf8(%rbp), %rax
leal -0x1(%rax), %r14d
movl %r14d, %ebx
negl %ebx
cmovsl %r14d, %ebx
movl $0x1, %r12d
cmpl $0xa, %ebx
jb 0x83b1
movl $0x4, %r12d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x83a8
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x83ae
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x83b1
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r12d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x8375
addl $-0x3, %r12d
jmp 0x83b1
addl $-0x2, %r12d
jmp 0x83b1
decl %r12d
shrl $0x1f, %r14d
leal (%r12,%r14), %esi
leaq -0x90(%rbp), %r15
movq %r13, (%r15)
movq %r15, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%r15), %r14
movq %r14, %rdi
movl %r12d, %esi
movl %ebx, %edx
callq 0x2a6a5
leaq 0x6f8ed(%rip), %rcx     # 0x77cd4
movl $0xd, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %rbx
movq %rbx, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x58(%rbp), %r14
je 0x8421
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x8427
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x38(%rbp), %r15
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6f895(%rip), %rsi     # 0x77ce2
callq 0x33d0
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8472
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x8479
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x84aa
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x84b8
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r13, %rdi
je 0x84c9
callq 0x31d0
movq -0xf0(%rbp), %rax
leal -0x1(%rax), %r14d
movl %r14d, %ebx
negl %ebx
cmovsl %r14d, %ebx
movl $0x1, %r12d
cmpl $0xa, %ebx
jb 0x8531
movl $0x4, %r12d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x8528
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x852e
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x8531
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r12d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x84f5
addl $-0x3, %r12d
jmp 0x8531
addl $-0x2, %r12d
jmp 0x8531
decl %r12d
shrl $0x1f, %r14d
leal (%r12,%r14), %esi
leaq -0x90(%rbp), %r15
movq %r13, (%r15)
movq %r15, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%r15), %r14
movq %r14, %rdi
movl %r12d, %esi
movl %ebx, %edx
callq 0x2a6a5
leaq 0x6f76d(%rip), %rcx     # 0x77cd4
movl $0xd, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %r15
movq %r15, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x58(%rbp), %r14
je 0x85a1
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x85a8
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6f721(%rip), %rsi     # 0x77ceb
callq 0x33d0
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x85ef
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x85f6
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x38(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x8628
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x8636
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r13, %rdi
je 0x8647
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6f85b(%rip), %rsi     # 0x77eb0
leaq 0x6f876(%rip), %rdx     # 0x77ed2
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq 0x38(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x867c
callq 0x31d0
leaq 0x6f850(%rip), %rsi     # 0x77ed3
leaq -0x48(%rbp), %rbx
movq %rbx, %rdi
movq 0x28(%rbp), %rdx
callq 0x2a567
leaq 0x6fb85(%rip), %rsi     # 0x7821f
movq %rbx, %rdi
callq 0x33d0
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x86c2
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x86c9
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x38(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x86fb
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x8709
callq 0x31d0
movl -0x94(%rbp), %ebx
decl %ebx
movl %ebx, %r14d
negl %r14d
cmovsl %ebx, %r14d
movl $0x1, %r12d
cmpl $0xa, %r14d
jb 0x8771
movl $0x4, %r12d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r14d, %ecx
cmpl $0x63, %ecx
jbe 0x8768
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x876e
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x8771
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r12d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x8735
addl $-0x3, %r12d
jmp 0x8771
addl $-0x2, %r12d
jmp 0x8771
decl %r12d
shrl $0x1f, %ebx
leal (%r12,%rbx), %esi
leaq -0xe8(%rbp), %r15
leaq -0xd8(%rbp), %rax
movq %rax, (%r15)
movq %r15, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%r15), %rbx
movq %rbx, %rdi
movl %r12d, %esi
movl %r14d, %edx
callq 0x2a6a5
leaq 0x6f562(%rip), %rcx     # 0x77d10
movl $0xe, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0xb0(%rbp), %rsi
movq %rsi, -0xc0(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movl -0x98(%rbp), %ebx
movq 0x38(%rbp), %r15
je 0x87fa
movq %rdx, -0xc0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb0(%rbp)
jmp 0x8800
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0xc0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6de85(%rip), %rsi     # 0x766aa
callq 0x33d0
movq %r13, -0x90(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8850
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x8858
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl %ebx, %eax
negl %eax
cmovsl %ebx, %eax
movl $0x1, %r14d
movl %eax, -0x6c(%rbp)
cmpl $0xa, %eax
jb 0x88d1
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl -0x6c(%rbp), %ecx
cmpl $0x63, %ecx
jbe 0x88c8
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x88ce
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x88d1
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x8895
addl $-0x3, %r14d
jmp 0x88d1
addl $-0x2, %r14d
jmp 0x88d1
decl %r14d
movl %ebx, %r12d
shrl $0x1f, %r12d
leal (%r14,%r12), %esi
leaq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0x3250
movl %r12d, %eax
movq -0x118(%rbp), %rdi
movq %rax, -0x130(%rbp)
addq %rax, %rdi
movl %r14d, %esi
movl -0x6c(%rbp), %edx
callq 0x2a6a5
movq -0x90(%rbp), %rcx
movq -0x88(%rbp), %r8
movq -0x110(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r13, %rcx
je 0x893d
movq -0x80(%rbp), %rdi
movq -0x118(%rbp), %rsi
cmpq %rdi, %rax
leaq -0x58(%rbp), %r14
jbe 0x896a
movl $0xf, %edi
leaq -0x108(%rbp), %r9
cmpq %r9, %rsi
je 0x8965
movq -0x108(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x8978
leaq -0x90(%rbp), %rdi
callq 0x30a0
jmp 0x8988
leaq -0x118(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x89a9
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x89af
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x6f543(%rip), %rsi     # 0x77f15
leaq -0x48(%rbp), %rdi
callq 0x33d0
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x89fb
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x8a02
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x8a33
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
leaq -0x108(%rbp), %rbx
leaq -0xd8(%rbp), %r14
je 0x8a53
callq 0x31d0
movq -0x118(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8a64
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r13, %rdi
je 0x8a75
callq 0x31d0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x8a8d
callq 0x31d0
movq -0xe8(%rbp), %rdi
cmpq %r14, %rdi
je 0x8a9e
callq 0x31d0
movl -0x94(%rbp), %r13d
decl %r13d
movl %r13d, %r14d
negl %r14d
cmovsl %r13d, %r14d
movl $0x1, %r15d
cmpl $0xa, %r14d
jb 0x8b08
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r14d, %ecx
cmpl $0x63, %ecx
jbe 0x8aff
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x8b05
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x8b08
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x8acc
addl $-0x3, %r15d
jmp 0x8b08
addl $-0x2, %r15d
jmp 0x8b08
decl %r15d
shrl $0x1f, %r13d
leal (%r15,%r13), %esi
leaq -0xe8(%rbp), %rbx
leaq -0xd8(%rbp), %rax
movq %rax, (%rbx)
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%rbx), %r13
movq %r13, %rdi
movl %r15d, %esi
movl %r14d, %edx
callq 0x2a6a5
leaq 0x6f1ca(%rip), %rcx     # 0x77d10
movl $0xe, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0xb0(%rbp), %rsi
movq %rsi, -0xc0(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x80(%rbp), %r13
movq 0x38(%rbp), %r15
je 0x8b90
movq %rdx, -0xc0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb0(%rbp)
jmp 0x8b96
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0xc0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6daef(%rip), %rsi     # 0x766aa
callq 0x33d0
movq %r13, -0x90(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8be6
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x8bee
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r14d
cmpl $0xa, -0x6c(%rbp)
jb 0x8c5e
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl -0x6c(%rbp), %ecx
cmpl $0x63, %ecx
jbe 0x8c55
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x8c5b
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x8c5e
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x8c22
addl $-0x3, %r14d
jmp 0x8c5e
addl $-0x2, %r14d
jmp 0x8c5e
decl %r14d
addl %r14d, %r12d
leaq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
movq %rax, (%rdi)
movq %r12, %rsi
movl $0x2d, %edx
callq 0x3250
movq -0x118(%rbp), %rdi
addq -0x130(%rbp), %rdi
movl %r14d, %esi
movl -0x6c(%rbp), %edx
callq 0x2a6a5
movq -0x90(%rbp), %rcx
movq -0x88(%rbp), %r8
movq -0x110(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r13, %rcx
movl -0x98(%rbp), %ebx
leaq -0x38(%rbp), %r12
je 0x8cc9
movq -0x80(%rbp), %rdi
movq -0x118(%rbp), %rsi
cmpq %rdi, %rax
leaq -0x58(%rbp), %r14
jbe 0x8cf6
movl $0xf, %edi
leaq -0x108(%rbp), %r9
cmpq %r9, %rsi
je 0x8cf1
movq -0x108(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x8d04
leaq -0x90(%rbp), %rdi
callq 0x30a0
jmp 0x8d14
leaq -0x118(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r12, -0x48(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x8d31
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x8d39
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x6efc5(%rip), %rsi     # 0x77d21
leaq -0x48(%rbp), %rdi
callq 0x33d0
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8d85
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x8d8c
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x8dbd
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x8dcb
callq 0x31d0
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
cmpq %rax, %rdi
je 0x8de3
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r13, %rdi
je 0x8df4
callq 0x31d0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x8e0c
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x8e24
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6eefc(%rip), %rsi     # 0x77d2e
leaq 0x6eefc(%rip), %rdx     # 0x77d35
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x8e58
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7079b(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x8e88
callq 0x31d0
movq 0x10(%rbp), %rax
movq (%rax), %rax
xorl %ecx, %ecx
cmpb $0x53, (%rax)
leaq 0x6f08a(%rip), %rax     # 0x77f25
leaq 0x6f081(%rip), %rsi     # 0x77f23
cmoveq %rax, %rsi
setne %cl
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq (%rsi,%rcx,2), %rdx
addq $0x7, %rdx
callq 0x2ac04
testl %ebx, %ebx
jle 0x8f33
movl -0x94(%rbp), %ebx
decl %ebx
movl %ebx, %r12d
negl %r12d
cmovsl %ebx, %r12d
movl $0x1, %r14d
cmpl $0xa, %r12d
jb 0x90bd
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0x90b4
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x90ba
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x90bd
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x8ef1
addl $-0x3, %r14d
jmp 0x90bd
leaq 0x6f054(%rip), %rsi     # 0x77f8e
leaq -0xe8(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0x2a567
leaq 0x6f307(%rip), %rsi     # 0x78258
leaq -0xe8(%rbp), %rdi
callq 0x33d0
leaq -0xb0(%rbp), %rsi
movq %rsi, -0xc0(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8f8d
movq %rdx, -0xc0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb0(%rbp)
jmp 0x8f93
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0xc0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
callq 0x30a0
movq %r13, -0x90(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8fe4
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x8fec
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq -0x90(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6ef52(%rip), %rsi     # 0x77f63
callq 0x33d0
movq %r12, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9036
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x903e
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 %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x906f
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r13, %rdi
je 0x9080
callq 0x31d0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x9098
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x9afc
jmp 0x9af7
addl $-0x2, %r14d
jmp 0x90bd
decl %r14d
shrl $0x1f, %ebx
leal (%r14,%rbx), %esi
leaq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0x3250
movl %ebx, %edi
leaq -0xc0(%rbp), %rbx
addq (%rbx), %rdi
movl %r14d, %esi
movl %r12d, %edx
callq 0x2a6a5
leaq 0x6ee30(%rip), %rcx     # 0x77f2d
movl $0xc, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r13, -0x90(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x38(%rbp), %r14
leaq -0xb0(%rbp), %r12
je 0x9140
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x9148
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq -0x90(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6edcd(%rip), %rsi     # 0x77f3a
callq 0x33d0
movq %r14, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9192
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x9199
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x91ca
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r13, %rdi
je 0x91db
callq 0x31d0
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x91ec
callq 0x31d0
leaq 0x6ed59(%rip), %rsi     # 0x77f4c
leaq -0xe8(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0x2a567
leaq 0x6f04e(%rip), %rsi     # 0x78258
leaq -0xe8(%rbp), %rdi
callq 0x33d0
movq %r12, -0xc0(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x923f
movq %rdx, -0xc0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb0(%rbp)
jmp 0x9247
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq -0xc0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
callq 0x30a0
movq %r13, -0x90(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9298
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x92a0
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq -0x90(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6ec9e(%rip), %rsi     # 0x77f63
callq 0x33d0
movq %r14, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x92ea
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x92f1
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x9322
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r13, %rdi
leaq -0xd8(%rbp), %rbx
je 0x933a
callq 0x31d0
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x934b
callq 0x31d0
movq -0xe8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x935c
callq 0x31d0
movl -0x94(%rbp), %ebx
decl %ebx
movl %ebx, %r12d
negl %r12d
cmovsl %ebx, %r12d
movl $0x1, %r14d
cmpl $0xa, %r12d
jb 0x93c4
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0x93bb
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x93c1
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x93c4
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x9388
addl $-0x3, %r14d
jmp 0x93c4
addl $-0x2, %r14d
jmp 0x93c4
decl %r14d
shrl $0x1f, %ebx
leal (%r14,%rbx), %esi
leaq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0x3250
movl %ebx, %edi
leaq -0x1d0(%rbp), %rbx
addq (%rbx), %rdi
movl %r14d, %esi
movl %r12d, %edx
callq 0x2a6a5
leaq 0x6eb66(%rip), %rcx     # 0x77f6a
movl $0x10, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x160(%rbp), %rsi
movq %rsi, -0x170(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x180(%rbp), %rbx
je 0x944d
movq %rdx, -0x170(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x160(%rbp)
jmp 0x9453
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x170(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6d232(%rip), %rsi     # 0x766aa
callq 0x33d0
movq %rbx, -0x190(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x94a6
movq %rdx, -0x190(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x180(%rbp)
jmp 0x94ac
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, -0x188(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r14d
cmpl $0xa, -0x6c(%rbp)
jb 0x951c
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl -0x6c(%rbp), %ecx
cmpl $0x63, %ecx
jbe 0x9513
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x9519
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x951c
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x94e0
addl $-0x3, %r14d
jmp 0x951c
addl $-0x2, %r14d
jmp 0x951c
decl %r14d
movl %r14d, %esi
leaq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0x3250
movq -0x150(%rbp), %rdi
addq -0x130(%rbp), %rdi
movl %r14d, %esi
movl -0x6c(%rbp), %edx
callq 0x2a6a5
movq -0x190(%rbp), %rcx
movq -0x188(%rbp), %r8
movq -0x148(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %rbx, %rcx
je 0x957d
movq -0x180(%rbp), %rdi
movq -0x150(%rbp), %rsi
cmpq %rdi, %rax
leaq -0x108(%rbp), %rbx
leaq -0x1a0(%rbp), %r14
jbe 0x95b4
movl $0xf, %edi
leaq -0x140(%rbp), %r9
cmpq %r9, %rsi
je 0x95af
movq -0x140(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x95c2
leaq -0x190(%rbp), %rdi
callq 0x30a0
jmp 0x95d2
leaq -0x150(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r14, -0x1b0(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x95f8
movq %rdx, -0x1b0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x1a0(%rbp)
jmp 0x95ff
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x1a8(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x6e956(%rip), %rsi     # 0x77f7b
leaq -0x1b0(%rbp), %rdi
callq 0x33d0
movq %rbx, -0x118(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x965a
movq %rdx, -0x118(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x108(%rbp)
jmp 0x9660
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, -0x110(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl -0x94(%rbp), %ebx
decl %ebx
movl %ebx, %r12d
negl %r12d
cmovsl %ebx, %r12d
movl $0x1, %r14d
cmpl $0xa, %r12d
jb 0x96e2
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0x96d9
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x96df
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x96e2
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x96a6
addl $-0x3, %r14d
jmp 0x96e2
addl $-0x2, %r14d
jmp 0x96e2
decl %r14d
shrl $0x1f, %ebx
leal (%r14,%rbx), %esi
leaq -0x208(%rbp), %r15
movq %r15, -0x10(%r15)
leaq -0x218(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movl %ebx, %edi
addq -0x218(%rbp), %rdi
movl %r14d, %esi
movl %r12d, %edx
callq 0x2a6a5
movq -0x118(%rbp), %rcx
movq -0x110(%rbp), %r8
movq -0x210(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
leaq -0x108(%rbp), %rsi
cmpq %rsi, %rcx
je 0x974a
movq -0x108(%rbp), %rdi
movq -0x218(%rbp), %rsi
cmpq %rdi, %rax
leaq -0xd8(%rbp), %rbx
leaq -0xb0(%rbp), %r14
jbe 0x977a
movl $0xf, %edi
cmpq %r15, %rsi
je 0x9775
movq -0x208(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x9788
leaq -0x118(%rbp), %rdi
callq 0x30a0
jmp 0x9798
leaq -0x218(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %rbx, -0xe8(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x97be
movq %rdx, -0xe8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xd8(%rbp)
jmp 0x97c4
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0xe0(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x6cec0(%rip), %rsi     # 0x766aa
leaq -0xe8(%rbp), %rdi
callq 0x33d0
movq %r14, -0xc0(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x981f
movq %rdx, -0xc0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb0(%rbp)
jmp 0x9826
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, -0xb8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r14d
cmpl $0xa, -0x6c(%rbp)
jb 0x9896
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl -0x6c(%rbp), %ecx
cmpl $0x63, %ecx
jbe 0x988d
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x9893
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x9896
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x985a
addl $-0x3, %r14d
jmp 0x9896
addl $-0x2, %r14d
jmp 0x9896
decl %r14d
movl %r14d, %esi
leaq -0x1e8(%rbp), %r12
movq %r12, -0x10(%r12)
leaq -0x1f8(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x130(%rbp), %rdi
addq -0x1f8(%rbp), %rdi
movl %r14d, %esi
movl -0x6c(%rbp), %edx
callq 0x2a6a5
movq -0xc0(%rbp), %rcx
movq -0xb8(%rbp), %r8
movq -0x1f0(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
leaq -0xb0(%rbp), %rsi
cmpq %rsi, %rcx
je 0x9900
movq -0xb0(%rbp), %rdi
movq -0x1f8(%rbp), %rsi
cmpq %rdi, %rax
leaq -0x58(%rbp), %r14
jbe 0x9926
movl $0xf, %edi
cmpq %r12, %rsi
je 0x9921
movq -0x1e8(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x9934
leaq -0xc0(%rbp), %rdi
callq 0x30a0
jmp 0x9944
leaq -0x1f8(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r13, -0x90(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x9967
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x996f
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x6f0e8(%rip), %rsi     # 0x78a7d
leaq -0x90(%rbp), %rdi
callq 0x33d0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x99c5
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x99cb
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 0x38(%rbp), %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x9a01
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r13, %rdi
je 0x9a12
callq 0x31d0
movq -0x1f8(%rbp), %rdi
cmpq %r12, %rdi
je 0x9a23
callq 0x31d0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
leaq -0x38(%rbp), %r12
je 0x9a3f
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x9a57
callq 0x31d0
movq -0x218(%rbp), %rdi
cmpq %r15, %rdi
je 0x9a68
callq 0x31d0
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
cmpq %rax, %rdi
movq 0x38(%rbp), %r15
je 0x9a84
callq 0x31d0
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x9a9c
callq 0x31d0
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x9ab4
callq 0x31d0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x9acc
callq 0x31d0
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x9ae4
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x9afc
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r12, (%rdi)
movq 0x28(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x2a8a4
leaq 0x6e484(%rip), %rsi     # 0x77fa1
leaq -0x48(%rbp), %rdi
callq 0x33d0
leaq -0x48(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x9b40
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x6e470(%rip), %rsi     # 0x77fbe
leaq 0x6e4a7(%rip), %rdx     # 0x77ffc
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x9b74
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x6fa7f(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x9ba4
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x6e17c(%rip), %rsi     # 0x77d2e
leaq 0x6e17c(%rip), %rdx     # 0x77d35
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x9bd8
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x6e1f0(%rip), %rsi     # 0x77dd6
leaq 0x6e1f2(%rip), %rdx     # 0x77ddf
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x9c0c
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x6f9e7(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x9c3c
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x6cc2d(%rip), %rsi     # 0x76877
leaq 0x6cc27(%rip), %rdx     # 0x76878
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x9c70
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x9c7e
callq 0x31d0
leaq 0x6e023(%rip), %rsi     # 0x77ca8
leaq -0x48(%rbp), %rbx
movq %rbx, %rdi
movq 0x28(%rbp), %rdx
callq 0x2a567
leaq 0x6f411(%rip), %rsi     # 0x790ad
movq %rbx, %rdi
callq 0x33d0
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9cc4
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x9ccb
movups (%rcx), %xmm0
movups %xmm0, (%r14)
leaq -0x38(%rbp), %rbx
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x9d00
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x9d0e
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6df9c(%rip), %rsi     # 0x77cb8
leaq 0x6df9b(%rip), %rdx     # 0x77cbe
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x9d42
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6df68(%rip), %rsi     # 0x77cb8
leaq 0x6df67(%rip), %rdx     # 0x77cbe
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x9d76
callq 0x31d0
movq -0xf8(%rbp), %rax
leal -0x1(%rax), %ebx
movl %ebx, %r14d
negl %r14d
cmovsl %ebx, %r14d
movl $0x1, %r15d
cmpl $0xa, %r14d
jb 0x9de0
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r14d, %ecx
cmpl $0x63, %ecx
jbe 0x9dd7
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x9ddd
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x9de0
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x9da4
addl $-0x3, %r15d
jmp 0x9de0
addl $-0x2, %r15d
jmp 0x9de0
decl %r15d
movl %ebx, %r12d
shrl $0x1f, %r12d
leal (%r15,%r12), %esi
leaq -0x90(%rbp), %r13
leaq -0x80(%rbp), %rax
movq %rax, (%r13)
movq %r13, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%r13), %r12
movq %r12, %rdi
movl %r15d, %esi
movl %r14d, %edx
callq 0x2a6a5
leaq 0x6deb4(%rip), %rcx     # 0x77cd4
movl $0xd, %r8d
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movl %ebx, -0x130(%rbp)
leaq -0x38(%rbp), %r15
movq %r15, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x58(%rbp), %r14
je 0x9e60
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x9e67
movups (%rcx), %xmm0
movups %xmm0, (%r15)
leaq -0x80(%rbp), %rbx
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6de55(%rip), %rsi     # 0x77ce2
callq 0x33d0
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9eb2
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x9eb9
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x38(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x9eeb
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x9ef9
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0x9f0a
callq 0x31d0
movq -0xf0(%rbp), %rax
leal -0x1(%rax), %esi
movl %esi, %r12d
negl %r12d
cmovsl %esi, %r12d
movl $0x1, %r15d
cmpl $0xa, %r12d
jb 0x9f74
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0x9f6b
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x9f71
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x9f74
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x9f38
addl $-0x3, %r15d
jmp 0x9f74
addl $-0x2, %r15d
jmp 0x9f74
decl %r15d
movl %esi, -0x1d4(%rbp)
movl %esi, %r13d
shrl $0x1f, %r13d
leal (%r15,%r13), %esi
leaq -0x90(%rbp), %rbx
leaq -0x80(%rbp), %rax
movq %rax, (%rbx)
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%rbx), %r13
movq %r13, %rdi
movl %r15d, %esi
movl %r12d, %edx
callq 0x2a6a5
leaq 0x6dd1c(%rip), %rcx     # 0x77cd4
movl $0xd, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %r15
movq %r15, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9fee
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x9ff5
movups (%rcx), %xmm0
movups %xmm0, (%r15)
leaq -0x80(%rbp), %rbx
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6dcd0(%rip), %rsi     # 0x77ceb
callq 0x33d0
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xa040
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0xa047
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x38(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xa079
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0xa087
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0xa098
callq 0x31d0
cmpb $0x0, 0x20(%rbp)
je 0xa112
movl -0x94(%rbp), %r12d
decl %r12d
movl %r12d, %r13d
negl %r13d
cmovsl %r12d, %r13d
movl $0x1, %r15d
cmpl $0xa, %r13d
jb 0xa194
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0xa182
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xa191
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xa194
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xa0d0
addl $-0x3, %r15d
jmp 0xa194
movl -0x94(%rbp), %r12d
decl %r12d
movl %r12d, %r13d
negl %r13d
cmovsl %r12d, %r13d
movl $0x1, %r15d
cmpl $0xa, %r13d
jb 0xa307
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0xa188
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xa304
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xa307
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xa144
addl $-0x3, %r15d
jmp 0xa307
addl $-0x2, %r15d
jmp 0xa194
addl $-0x2, %r15d
jmp 0xa307
decl %r15d
shrl $0x1f, %r12d
leal (%r15,%r12), %esi
leaq -0xe8(%rbp), %rbx
leaq -0xd8(%rbp), %rax
movq %rax, (%rbx)
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%rbx), %r12
movq %r12, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x2a6a5
leaq 0x6db3e(%rip), %rcx     # 0x77d10
movl $0xe, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0xb0(%rbp), %rsi
movq %rsi, -0xc0(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x80(%rbp), %rbx
movl -0x98(%rbp), %r15d
je 0xa21f
movq %rdx, -0xc0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb0(%rbp)
jmp 0xa225
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0xc0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6c460(%rip), %rsi     # 0x766aa
callq 0x33d0
movq %rbx, -0x90(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xa275
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0xa27b
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl %r15d, %r12d
negl %r12d
cmovsl %r15d, %r12d
movl $0x1, %r13d
cmpl $0xa, %r12d
jb 0xa49e
movl $0x4, %r13d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0xa2fb
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xa49b
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xa49e
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r13d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xa2bd
addl $-0x3, %r13d
jmp 0xa49e
addl $-0x2, %r13d
jmp 0xa49e
decl %r15d
shrl $0x1f, %r12d
leal (%r15,%r12), %esi
leaq -0x90(%rbp), %rbx
leaq -0x80(%rbp), %rax
movq %rax, (%rbx)
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%rbx), %r12
movq %r12, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x2a6a5
leaq 0x6d9ce(%rip), %rcx     # 0x77d10
movl $0xe, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %r15
movq %r15, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xa378
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0xa37f
movups (%rcx), %xmm0
movups %xmm0, (%r15)
leaq -0x80(%rbp), %rbx
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6dc63(%rip), %rsi     # 0x78008
callq 0x33d0
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xa3ca
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0xa3d1
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x38(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xa403
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0xa411
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0xa422
callq 0x31d0
movl -0x94(%rbp), %r12d
decl %r12d
movl %r12d, %r13d
negl %r13d
cmovsl %r12d, %r13d
movl $0x1, %r15d
cmpl $0xa, %r13d
jb 0xa671
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0xa492
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xa66e
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xa671
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xa454
addl $-0x3, %r15d
jmp 0xa671
addl $-0x2, %r15d
jmp 0xa671
decl %r13d
movl -0x98(%rbp), %eax
movl %eax, %ebx
shrl $0x1f, %ebx
leal (%rbx,%r13), %esi
leaq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0x3250
movl %ebx, %edi
addq -0x118(%rbp), %rdi
movl %r13d, %esi
movl %r12d, %edx
callq 0x2a6a5
movq -0x90(%rbp), %rcx
movq -0x88(%rbp), %r8
movq -0x110(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
leaq -0x80(%rbp), %rbx
cmpq %rbx, %rcx
je 0xa507
movq -0x80(%rbp), %rdi
movq -0x118(%rbp), %rsi
cmpq %rdi, %rax
leaq -0x38(%rbp), %r15
movq 0x10(%rbp), %r13
leaq -0xb0(%rbp), %r12
jbe 0xa53f
movl $0xf, %edi
leaq -0x108(%rbp), %r9
cmpq %r9, %rsi
je 0xa53a
movq -0x108(%rbp), %rdi
cmpq %rdi, %rax
jbe 0xa54d
leaq -0x90(%rbp), %rdi
callq 0x30a0
jmp 0xa55d
leaq -0x118(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r15, -0x48(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xa57a
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0xa581
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x6da59(%rip), %rsi     # 0x77ffd
leaq -0x48(%rbp), %rdi
callq 0x33d0
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xa5cd
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0xa5d4
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x38(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xa606
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0xa614
callq 0x31d0
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
cmpq %rax, %rdi
movq 0x38(%rbp), %r15
je 0xa630
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0xa641
callq 0x31d0
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0xa652
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0xa794
jmp 0xa78f
decl %r15d
shrl $0x1f, %r12d
leal (%r15,%r12), %esi
leaq -0x90(%rbp), %rbx
leaq -0x80(%rbp), %rax
movq %rax, (%rbx)
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x3250
addq (%rbx), %r12
movq %r12, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x2a6a5
leaq 0x6d664(%rip), %rcx     # 0x77d10
movl $0xe, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %r15
movq %r15, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq 0x10(%rbp), %r13
je 0xa6e6
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0xa6ed
movups (%rcx), %xmm0
movups %xmm0, (%r15)
leaq -0x80(%rbp), %rbx
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6d902(%rip), %rsi     # 0x78015
callq 0x33d0
movq %r14, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xa738
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0xa73f
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x38(%rbp), %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xa771
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0xa77f
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
movq 0x38(%rbp), %r15
je 0xa794
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6d58c(%rip), %rsi     # 0x77d2e
leaq 0x6d58c(%rip), %rdx     # 0x77d35
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xa7c8
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6ee2b(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xa7f8
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6d81d(%rip), %rsi     # 0x78023
leaq 0x6d835(%rip), %rdx     # 0x78042
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xa82c
callq 0x31d0
movq 0x30(%rbp), %r12
movq (%r13), %rax
movb (%rax), %al
movb %al, -0x6c(%rbp)
movl $0x0, -0xe8(%rbp)
leaq 0x6cd63(%rip), %rsi     # 0x775ad
movq %r13, %rdi
callq 0x3090
testl %eax, %eax
je 0xa966
leaq 0x6cd48(%rip), %rsi     # 0x775a9
movq %r13, %rdi
callq 0x3090
testl %eax, %eax
je 0xa993
leaq 0x6cd41(%rip), %rsi     # 0x775b9
movq %r13, %rdi
callq 0x3090
testl %eax, %eax
je 0xa9ca
leaq 0x6cd32(%rip), %rsi     # 0x775c1
movq %r13, %rdi
callq 0x3090
testl %eax, %eax
je 0xaa0d
leaq 0x6cd1f(%rip), %rsi     # 0x775c5
movq %r13, %rdi
callq 0x3090
testl %eax, %eax
je 0xaa9c
leaq 0x6ca64(%rip), %rsi     # 0x77321
movq %r13, %rdi
callq 0x3090
testl %eax, %eax
je 0xab28
leaq 0x6ccf5(%rip), %rsi     # 0x775c9
movq %r13, %rdi
callq 0x3090
testl %eax, %eax
je 0xabb7
leaq 0x6ccc6(%rip), %rsi     # 0x775b1
movq %r13, %rdi
callq 0x3090
testl %eax, %eax
je 0xb6c6
leaq 0x6ccb3(%rip), %rsi     # 0x775b5
movq %r13, %rdi
callq 0x3090
testl %eax, %eax
je 0xb6f8
leaq 0x6cca4(%rip), %rsi     # 0x775bd
movq %r13, %rdi
callq 0x3090
testl %eax, %eax
je 0xb734
movq 0x7b6a0(%rip), %rbx     # 0x85fd0
leaq 0x6d70c(%rip), %rsi     # 0x78043
movl $0x19, %edx
movq %rbx, %rdi
callq 0x3240
movq (%r13), %rsi
movq 0x8(%r13), %rdx
movq %rbx, %rdi
callq 0x3240
movq %rax, %rdi
callq 0x3100
movl $0x1, %ebx
jmp 0xb6b2
leaq -0x120(%rbp), %rdx
leaq -0x9c(%rbp), %rcx
leaq -0x70(%rbp), %r8
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq %r15, %r9
callq 0x3bdb8
jmp 0xac3f
subq $0x8, %rsp
leaq -0x120(%rbp), %rdx
leaq -0x9c(%rbp), %rcx
leaq -0x70(%rbp), %r8
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq %r12, %r9
pushq %r15
callq 0x3cf29
addq $0x10, %rsp
jmp 0xac3f
subq $0x8, %rsp
movzbl -0xc4(%rbp), %eax
leaq -0x120(%rbp), %rcx
leaq -0x9c(%rbp), %r8
leaq -0x70(%rbp), %r9
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movl $0x1, %edx
pushq %r15
pushq %rax
pushq %r12
callq 0x41c01
addq $0x20, %rsp
jmp 0xac3f
movq %r15, %r13
leaq -0x308(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x128(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x318(%rbp), %rbx
movq %rbx, %rdi
callq 0x2a8a4
subq $0x8, %rsp
movzbl -0xc4(%rbp), %eax
leaq -0xe8(%rbp), %r10
leaq -0x120(%rbp), %rcx
leaq -0x9c(%rbp), %r8
leaq -0x70(%rbp), %r9
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movl $0x1, %edx
pushq %r13
pushq %rax
pushq %r10
pushq %rbx
pushq %r12
callq 0x4852c
addq $0x30, %rsp
movq -0x318(%rbp), %rdi
cmpq %r15, %rdi
movq 0x38(%rbp), %r15
je 0xac3f
jmp 0xac3a
movq %r15, %r13
leaq -0x2e8(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x128(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x2f8(%rbp), %rbx
movq %rbx, %rdi
callq 0x2a8a4
subq $0x8, %rsp
movzbl -0xc4(%rbp), %eax
leaq -0xe8(%rbp), %r10
leaq -0x120(%rbp), %rcx
leaq -0x9c(%rbp), %r8
leaq -0x70(%rbp), %r9
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
xorl %edx, %edx
pushq %r13
pushq %rax
pushq %r10
pushq %rbx
pushq %r12
callq 0x4852c
addq $0x30, %rsp
movq -0x2f8(%rbp), %rdi
cmpq %r15, %rdi
movq 0x38(%rbp), %r15
je 0xac3f
jmp 0xac3a
movq %r15, %r13
leaq -0x2c8(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x128(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x2d8(%rbp), %rbx
movq %rbx, %rdi
callq 0x2a8a4
subq $0x8, %rsp
movzbl -0xc4(%rbp), %eax
leaq -0xe8(%rbp), %r10
leaq -0x120(%rbp), %rcx
leaq -0x9c(%rbp), %r8
leaq -0x70(%rbp), %r9
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movl $0x1, %edx
pushq %r13
pushq %rax
pushq %r10
pushq %rbx
pushq %r12
callq 0x53111
addq $0x30, %rsp
movq -0x2d8(%rbp), %rdi
cmpq %r15, %rdi
movq 0x38(%rbp), %r15
je 0xac3f
jmp 0xac3a
movq %r15, %r13
leaq -0x2a8(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x128(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x2b8(%rbp), %rbx
movq %rbx, %rdi
callq 0x2a8a4
subq $0x8, %rsp
movzbl -0xc4(%rbp), %eax
leaq -0xe8(%rbp), %r10
leaq -0x120(%rbp), %rcx
leaq -0x9c(%rbp), %r8
leaq -0x70(%rbp), %r9
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
xorl %edx, %edx
pushq %r13
pushq %rax
pushq %r10
pushq %rbx
pushq %r12
callq 0x53111
addq $0x30, %rsp
movq -0x2b8(%rbp), %rdi
cmpq %r15, %rdi
movq 0x38(%rbp), %r15
je 0xac3f
callq 0x31d0
cmpb $0x0, 0x20(%rbp)
je 0xac97
cmpq %r12, (%r12)
je 0xac97
movq -0x120(%rbp), %rax
movslq -0x9c(%rbp), %rcx
leaq (%rax,%rcx,8), %rdi
addq $-0x8, %rdi
movl -0x70(%rbp), %esi
movq %r12, %rdx
callq 0x3b976
movq (%r12), %rdi
cmpq %r12, %rdi
je 0xac85
movq (%rdi), %rbx
callq 0x31d0
movq %rbx, %rdi
cmpq %r12, %rbx
jne 0xac75
movq %r12, 0x8(%r12)
movq %r12, (%r12)
movq $0x0, 0x10(%r12)
movq -0x120(%rbp), %rdi
movl -0x9c(%rbp), %esi
movl -0x70(%rbp), %edx
movq %r15, %rcx
movl $0x1, %r8d
callq 0x3baeb
leaq -0x68(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6e93e(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
cmpq %r12, (%r12)
je 0xae3d
movl -0x70(%rbp), %esi
leaq -0xc0(%rbp), %rdi
movq %r12, %rdx
callq 0x3b976
movl -0x70(%rbp), %edi
leal 0x1(%rdi), %ebx
shlq $0x5, %rdi
addq $-0x20, %rdi
leaq 0x6df81(%rip), %r13     # 0x78c7d
leaq 0x6e2f4(%rip), %r14     # 0x78ff7
leaq -0x68(%rbp), %r12
decl %ebx
testl %ebx, %ebx
jle 0xad3a
leaq -0x20(%rdi), %r15
addq -0xc0(%rbp), %rdi
leaq 0x6d33e(%rip), %rsi     # 0x7805d
callq 0x3090
testl %eax, %eax
movq %r14, %rsi
cmoveq %r13, %rsi
movq %r12, %rdi
callq 0x33d0
movq %r15, %rdi
jmp 0xad07
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %r14
movq %r14, (%rdi)
leaq 0x6e8b5(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq 0x38(%rbp), %r15
movq %r15, %rdi
callq 0x2a942
leaq -0x80(%rbp), %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xad76
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6d2de(%rip), %rsi     # 0x78062
leaq 0x6d32a(%rip), %rdx     # 0x780b5
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xadaa
callq 0x31d0
leaq 0x6d305(%rip), %rsi     # 0x780b6
leaq -0x90(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0x2a567
leaq 0x6d32c(%rip), %rsi     # 0x780f4
leaq -0x90(%rbp), %rdi
callq 0x33d0
movq %r14, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xadf4
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0xadfb
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xae2c
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0xae3d
callq 0x31d0
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %r14
movq %r14, (%rdi)
leaq 0x6d2b8(%rip), %rsi     # 0x78107
leaq 0x6d2ce(%rip), %rdx     # 0x78124
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %r15, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xae75
callq 0x31d0
movq 0x48(%rbp), %r12
movq 0x40(%rbp), %rbx
leaq 0x6c687(%rip), %rsi     # 0x7750b
movq 0x18(%rbp), %r14
movq %r14, %rdi
callq 0x3090
testl %eax, %eax
je 0xaf12
leaq 0x6c673(%rip), %rsi     # 0x7750e
movq %r14, %rdi
callq 0x3090
testl %eax, %eax
je 0xaf94
leaq 0x6c474(%rip), %rsi     # 0x77326
movq %r14, %rdi
callq 0x3090
testl %eax, %eax
je 0xb013
movq 0x7b107(%rip), %rbx     # 0x85fd0
leaq 0x6d255(%rip), %rsi     # 0x78125
movl $0x1d, %edx
movq %rbx, %rdi
callq 0x3240
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x31e0
movsbl %al, %esi
movq 0x7b0d5(%rip), %rdi     # 0x85fd0
callq 0x3040
movl $0x1, %ebx
movq %rax, %rdi
callq 0x3160
jmp 0xb6a0
movq -0x120(%rbp), %r15
leaq -0x288(%rbp), %r13
movq %r13, -0x10(%r13)
movq -0x128(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x298(%rbp), %rdi
callq 0x2a8a4
xorl %eax, %eax
cmpb $0x53, -0x6c(%rbp)
sete %al
movl -0x9c(%rbp), %edx
movl -0x70(%rbp), %ecx
movl -0x94(%rbp), %r8d
subq $0x8, %rsp
movzbl 0x20(%rbp), %r10d
leaq -0x298(%rbp), %rsi
movq %r15, %rdi
movl -0x98(%rbp), %r9d
pushq %r12
pushq %rbx
movq 0x38(%rbp), %rbx
pushq %rbx
pushq %rax
pushq %r10
callq 0x6e63b
addq $0x30, %rsp
movq -0x298(%rbp), %rdi
jmp 0xb090
movq -0x120(%rbp), %r15
leaq -0x268(%rbp), %r13
movq %r13, -0x10(%r13)
movq -0x128(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x278(%rbp), %rdi
callq 0x2a8a4
xorl %eax, %eax
cmpb $0x53, -0x6c(%rbp)
sete %al
movl -0x9c(%rbp), %edx
movl -0x70(%rbp), %ecx
movl -0x94(%rbp), %r8d
subq $0x8, %rsp
movzbl 0x20(%rbp), %r10d
leaq -0x278(%rbp), %rsi
movq %r15, %rdi
movl -0x98(%rbp), %r9d
pushq %r12
pushq %rbx
movq 0x38(%rbp), %rbx
pushq %rbx
pushq %rax
pushq %r10
callq 0x7217d
addq $0x30, %rsp
movq -0x278(%rbp), %rdi
jmp 0xb090
movq -0x120(%rbp), %r15
leaq -0x248(%rbp), %r13
movq %r13, -0x10(%r13)
movq -0x128(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x258(%rbp), %rdi
callq 0x2a8a4
xorl %eax, %eax
cmpb $0x53, -0x6c(%rbp)
sete %al
movl -0x9c(%rbp), %edx
movl -0x70(%rbp), %ecx
subq $0x8, %rsp
movzbl 0x20(%rbp), %r10d
leaq -0x258(%rbp), %rsi
leaq -0x94(%rbp), %r8
movq %r15, %rdi
movl -0x98(%rbp), %r9d
pushq %r12
pushq %rbx
movq 0x38(%rbp), %rbx
pushq %rbx
pushq %rax
pushq %r10
callq 0x65df0
addq $0x30, %rsp
movq -0x258(%rbp), %rdi
cmpq %r13, %rdi
leaq -0x38(%rbp), %r14
je 0xb09e
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6cc82(%rip), %rsi     # 0x77d2e
leaq 0x6cc82(%rip), %rdx     # 0x77d35
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xb0d2
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6d063(%rip), %rsi     # 0x78143
leaq 0x6d067(%rip), %rdx     # 0x7814e
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xb106
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6e4ed(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xb136
callq 0x31d0
movq 0x7ae93(%rip), %rdi     # 0x85fd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x31e0
movsbl %al, %esi
movq 0x7ae78(%rip), %rdi     # 0x85fd0
callq 0x3040
movq %rax, %rdi
callq 0x3160
movq 0x7ae64(%rip), %rdi     # 0x85fd0
leaq 0x6d28f(%rip), %rsi     # 0x78402
movl $0x13, %edx
callq 0x3240
movq 0x28(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq 0x7ae41(%rip), %rdi     # 0x85fd0
callq 0x3240
movq %rax, %r15
leaq 0x6cc51(%rip), %rsi     # 0x77def
movl $0xd, %edx
movq %rax, %rdi
callq 0x3240
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31e0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3160
movq 0x7adf7(%rip), %rdi     # 0x85fd0
leaq 0x6cc1d(%rip), %rsi     # 0x77dfd
movl $0xf, %edx
callq 0x3240
movq 0x7addf(%rip), %rdi     # 0x85fd0
movl -0x130(%rbp), %esi
callq 0x3380
movq %rax, %rbx
leaq 0x6cc07(%rip), %rsi     # 0x77e0d
movl $0x9, %edx
movq %rax, %rdi
callq 0x3240
movq %rbx, %rdi
movl -0x1d4(%rbp), %esi
callq 0x3380
movq %rax, %rbx
leaq 0x6cbec(%rip), %rsi     # 0x77e17
movl $0x3, %edx
movq %rax, %rdi
callq 0x3240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3160
cmpb $0x0, 0x20(%rbp)
je 0xb387
movq 0x7ad60(%rip), %rdi     # 0x85fd0
leaq 0x6cbae(%rip), %rsi     # 0x77e25
movl $0x12, %edx
callq 0x3240
movl -0x94(%rbp), %esi
decl %esi
movq 0x7ad40(%rip), %rdi     # 0x85fd0
callq 0x3380
movq %rax, %rbx
leaq 0x6b40b(%rip), %rsi     # 0x766aa
movl $0x1, %edx
movq %rax, %rdi
callq 0x3240
movq %rbx, %rdi
movl -0x98(%rbp), %esi
callq 0x3380
movq %rax, %rbx
leaq 0x6cb55(%rip), %rsi     # 0x77e19
movl $0x1, %edx
movq %rax, %rdi
callq 0x3240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3160
movq 0x7acd1(%rip), %rdi     # 0x85fd0
leaq 0x6ce49(%rip), %rsi     # 0x7814f
movl $0x1f, %edx
callq 0x3240
movl -0x98(%rbp), %eax
testl %eax, %eax
je 0xb4ed
movl %eax, %ebx
negl %ebx
cmovsl %eax, %ebx
movl $0x1, %r14d
cmpl $0xa, %ebx
leaq -0x80(%rbp), %r12
jb 0xb519
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0xb510
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xb516
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xb519
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xb345
addl $-0x3, %r14d
jmp 0xb519
movq 0x7ac42(%rip), %rdi     # 0x85fd0
leaq 0x6cde9(%rip), %rsi     # 0x7817e
movl $0x14, %edx
callq 0x3240
movl -0x94(%rbp), %esi
decl %esi
movq 0x7ac22(%rip), %rdi     # 0x85fd0
callq 0x3380
movq %rax, %rbx
leaq 0x6cdd6(%rip), %rsi     # 0x78193
movl $0xd, %edx
movq %rax, %rdi
callq 0x3240
movl -0x94(%rbp), %esi
decl %esi
movq %rbx, %rdi
callq 0x3380
movq %rax, %rbx
leaq 0x6ca33(%rip), %rsi     # 0x77e17
movl $0x3, %edx
movq %rax, %rdi
callq 0x3240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3160
movq 0x7abb1(%rip), %rdi     # 0x85fd0
leaq 0x6cd7b(%rip), %rsi     # 0x781a1
movl $0x17, %edx
callq 0x3240
xorl %eax, %eax
cmpb $0x53, -0x6c(%rbp)
setne %al
leaq 0x6cd35(%rip), %rcx     # 0x78175
leaq 0x6d138(%rip), %rsi     # 0x7857f
cmoveq %rcx, %rsi
leaq 0x8(%rax,%rax), %rdx
movq 0x7ab79(%rip), %rdi     # 0x85fd0
callq 0x3240
movq 0x7ab6d(%rip), %rdi     # 0x85fd0
leaq 0x6cd4f(%rip), %rsi     # 0x781b9
movl $0x17, %edx
callq 0x3240
movl -0x70(%rbp), %esi
movq 0x7ab52(%rip), %rdi     # 0x85fd0
callq 0x3380
movq %rax, %rbx
leaq 0x6cd44(%rip), %rsi     # 0x781d1
movl $0x2, %edx
movq %rax, %rdi
callq 0x3240
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
movq %rbx, %rdi
callq 0x3240
movq %rax, %rbx
leaq 0x6cd20(%rip), %rsi     # 0x781d4
movl $0x31, %edx
movq %rax, %rdi
callq 0x3240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3160
jmp 0xb641
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x6e102(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x80(%rbp), %r12
jmp 0xb5af
addl $-0x2, %r14d
jmp 0xb519
decl %r14d
movl -0x98(%rbp), %eax
movl %eax, %r15d
shrl $0x1f, %r15d
leal (%r14,%r15), %esi
leaq -0x90(%rbp), %rdi
movq %r12, (%rdi)
movl $0x2d, %edx
callq 0x3250
movl %r15d, %edi
leaq -0x90(%rbp), %r15
addq (%r15), %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x2a6a5
leaq 0x6cc13(%rip), %rcx     # 0x7816f
movl $0x4, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb592
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0xb598
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 -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x7aa12(%rip), %rdi     # 0x85fd0
callq 0x3240
movq %rax, %rbx
xorl %eax, %eax
cmpb $0x53, -0x6c(%rbp)
setne %al
leaq 0x6cb9e(%rip), %rcx     # 0x78174
leaq 0x6cfa1(%rip), %rsi     # 0x7857e
cmoveq %rcx, %rsi
leaq 0x9(%rax,%rax), %rdx
movq %rbx, %rdi
callq 0x3240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3160
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb627
callq 0x31d0
cmpl $0x0, -0x98(%rbp)
je 0xb641
movq -0x90(%rbp), %rdi
cmpq %r12, %rdi
je 0xb641
callq 0x31d0
xorl %ebx, %ebx
cmpl $0x0, -0xe8(%rbp)
jle 0xb6a0
leaq -0x228(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x128(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x238(%rbp), %rdi
callq 0x2a8a4
movl -0xe8(%rbp), %edx
leaq -0x238(%rbp), %rdi
movl $0x1, %esi
movq 0x38(%rbp), %rcx
callq 0x64ff
movq -0x238(%rbp), %rdi
cmpq %r14, %rdi
je 0xb6a0
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xb6b2
callq 0x31d0
movl %ebx, %eax
addq $0x2f8, %rsp            # imm = 0x2F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
subq $0x8, %rsp
movzbl -0xc4(%rbp), %eax
leaq -0x120(%rbp), %rcx
leaq -0x9c(%rbp), %r8
leaq -0x70(%rbp), %r9
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movl $0x1, %edx
jmp 0xb725
subq $0x8, %rsp
movzbl -0xc4(%rbp), %eax
leaq -0x120(%rbp), %rcx
leaq -0x9c(%rbp), %r8
leaq -0x70(%rbp), %r9
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
xorl %edx, %edx
pushq %r15
pushq %rax
pushq %r12
callq 0x3ed35
jmp 0xaa04
subq $0x8, %rsp
movzbl -0xc4(%rbp), %eax
leaq -0x120(%rbp), %rcx
leaq -0x9c(%rbp), %r8
leaq -0x70(%rbp), %r9
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
xorl %edx, %edx
jmp 0xa9fa
movq %rax, %rbx
movq -0x2b8(%rbp), %rdi
cmpq %r15, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x2d8(%rbp), %rdi
cmpq %r15, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x2f8(%rbp), %rdi
cmpq %r15, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x318(%rbp), %rdi
cmpq %r15, %rdi
je 0xc366
jmp 0xc361
jmp 0xc351
movq %rax, %rbx
movq -0x258(%rbp), %rdi
cmpq %r13, %rdi
je 0xc354
jmp 0xc348
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0xb7f9
callq 0x31d0
jmp 0xb7f9
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xb813
callq 0x31d0
jmp 0xb813
movq %rax, %rbx
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0xb830
callq 0x31d0
jmp 0xb830
movq %rax, %rbx
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0xbbc5
jmp 0xbbbb
jmp 0xbbc2
movq %rax, %rbx
movq -0x278(%rbp), %rdi
cmpq %r13, %rdi
je 0xc354
jmp 0xc348
movq %rax, %rbx
movq -0x90(%rbp), %rdi
cmpq %r12, %rdi
je 0xc354
jmp 0xc348
jmp 0xc351
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xb89c
callq 0x31d0
jmp 0xb89c
movq %rax, %rbx
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0xb8b9
callq 0x31d0
jmp 0xb8b9
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb8d0
callq 0x31d0
jmp 0xb8d0
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xb8ea
callq 0x31d0
jmp 0xb8ea
movq %rax, %rbx
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb920
callq 0x31d0
jmp 0xb920
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xb93a
callq 0x31d0
jmp 0xb93a
movq %rax, %rbx
movq -0x1f8(%rbp), %rdi
cmpq %r12, %rdi
je 0xb950
callq 0x31d0
jmp 0xb950
movq %rax, %rbx
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0xb96d
callq 0x31d0
jmp 0xb96d
movq %rax, %rbx
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0xb98a
callq 0x31d0
jmp 0xb98a
movq %rax, %rbx
movq -0x218(%rbp), %rdi
cmpq %r15, %rdi
je 0xb9a0
callq 0x31d0
jmp 0xb9a0
movq %rax, %rbx
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
cmpq %rax, %rdi
je 0xb9bd
callq 0x31d0
jmp 0xb9bd
movq %rax, %rbx
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0xb9da
callq 0x31d0
jmp 0xb9da
movq %rax, %rbx
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0xb9f2
callq 0x31d0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0xba0a
callq 0x31d0
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0xba22
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0xbbc5
jmp 0xbbbb
movq %rax, %rbx
jmp 0xb9f2
movq %rax, %rbx
jmp 0xba0a
movq %rax, %rbx
jmp 0xba22
jmp 0xbbc2
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xba68
callq 0x31d0
jmp 0xba68
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xba82
callq 0x31d0
jmp 0xba82
movq %rax, %rbx
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0xba9f
callq 0x31d0
jmp 0xba9f
movq %rax, %rbx
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0xbbc5
jmp 0xbbbb
jmp 0xbbc2
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xbad6
callq 0x31d0
jmp 0xbad6
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xbaf0
callq 0x31d0
jmp 0xbaf0
movq %rax, %rbx
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0xbbc5
jmp 0xbbbb
jmp 0xbbc2
movq %rax, %rbx
movq -0x298(%rbp), %rdi
cmpq %r13, %rdi
je 0xc354
jmp 0xc348
movq %rax, %rbx
movq -0x238(%rbp), %rdi
cmpq %r14, %rdi
je 0xc354
jmp 0xc348
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0xbbc5
jmp 0xbbbb
jmp 0xbbc2
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0xbbc5
jmp 0xbbbb
jmp 0xbbc2
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0xbbc5
jmp 0xbbbb
jmp 0xbbc2
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0xbbc5
jmp 0xbbbb
jmp 0xbbc2
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0xbbc5
jmp 0xbbbb
jmp 0xbbc2
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0xbbc5
jmp 0xbbbb
jmp 0xbbc2
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0xbbc5
jmp 0xbbbb
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0xbbc5
callq 0x31d0
jmp 0xbbc5
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xbc04
callq 0x31d0
jmp 0xbc04
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xbc1b
callq 0x31d0
jmp 0xbc1b
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbc32
callq 0x31d0
jmp 0xbc32
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbc4e
callq 0x31d0
jmp 0xbc4e
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
cmpq %rax, %rdi
je 0xbc6b
callq 0x31d0
jmp 0xbc6b
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xbcaf
callq 0x31d0
jmp 0xbcaf
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xbc98
callq 0x31d0
jmp 0xbc98
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbccc
callq 0x31d0
jmp 0xbccc
movq %rax, %rbx
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0xbce8
callq 0x31d0
jmp 0xbce8
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
jmp 0xc1c5
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc366
jmp 0xc361
jmp 0xc1c5
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc366
jmp 0xc361
jmp 0xc1c5
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xbd53
callq 0x31d0
jmp 0xbd53
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbd6a
callq 0x31d0
jmp 0xbd6a
movq %rax, %rbx
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
cmpq %rax, %rdi
je 0xbd87
callq 0x31d0
jmp 0xbd87
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xbda1
callq 0x31d0
jmp 0xbda1
movq %rax, %rbx
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0xbdbe
callq 0x31d0
jmp 0xbdbe
movq %rax, %rbx
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xbdf0
callq 0x31d0
jmp 0xbdf0
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbe07
callq 0x31d0
jmp 0xbe07
movq %rax, %rbx
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
cmpq %rax, %rdi
je 0xbe24
callq 0x31d0
jmp 0xbe24
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xbe3e
callq 0x31d0
jmp 0xbe3e
movq %rax, %rbx
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0xbe5b
callq 0x31d0
jmp 0xbe5b
movq %rax, %rbx
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xbe8d
callq 0x31d0
jmp 0xbe8d
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc366
jmp 0xc361
jmp 0xc1c5
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xbed3
callq 0x31d0
jmp 0xbed3
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbeea
callq 0x31d0
jmp 0xbeea
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xbf19
callq 0x31d0
jmp 0xbf19
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbf30
callq 0x31d0
jmp 0xbf30
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc366
jmp 0xc361
jmp 0xc1c5
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc366
jmp 0xc361
jmp 0xc1c5
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xbf93
callq 0x31d0
jmp 0xbf93
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc366
jmp 0xc361
jmp 0xc1c5
movq %rax, %rbx
movq -0x170(%rbp), %rdi
cmpq %r14, %rdi
je 0xc2b3
jmp 0xc2ae
jmp 0xbfdd
movq %rax, %rbx
jmp 0xc2b3
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xbffb
callq 0x31d0
jmp 0xbffb
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xc354
jmp 0xc348
jmp 0xc351
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xc354
jmp 0xc348
jmp 0xc351
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xc354
jmp 0xc348
jmp 0xc351
jmp 0xc351
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xc354
jmp 0xc348
jmp 0xc351
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xc354
jmp 0xc348
jmp 0xc351
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xc354
jmp 0xc348
jmp 0xc351
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0xc354
jmp 0xc348
jmp 0xc351
jmp 0xc1c5
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc366
jmp 0xc361
jmp 0xc1c5
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc366
jmp 0xc361
jmp 0xc1c5
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc366
jmp 0xc361
jmp 0xc1c5
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc123
callq 0x31d0
jmp 0xc123
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc13a
callq 0x31d0
jmp 0xc13a
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc169
callq 0x31d0
jmp 0xc169
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc180
callq 0x31d0
jmp 0xc180
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc366
jmp 0xc361
jmp 0xc1c5
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
jmp 0xc366
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0xc1e3
callq 0x31d0
jmp 0xc1e3
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc213
callq 0x31d0
jmp 0xc213
movq %rax, %rbx
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0xc230
callq 0x31d0
jmp 0xc230
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xc24a
callq 0x31d0
jmp 0xc24a
movq %rax, %rbx
leaq -0xb0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc264
callq 0x31d0
jmp 0xc264
movq %rax, %rbx
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0xc281
callq 0x31d0
jmp 0xc281
movq %rax, %rbx
leaq -0xd8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc29b
callq 0x31d0
jmp 0xc29b
movq %rax, %rbx
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0xc2b3
callq 0x31d0
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
cmpq %rax, %rdi
je 0xc2cb
callq 0x31d0
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0xc2e3
callq 0x31d0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
jmp 0xc2cb
movq %rax, %rbx
jmp 0xc2e3
movq %rax, %rbx
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
jmp 0xc361
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc32f
callq 0x31d0
cmpl $0x0, -0x98(%rbp)
je 0xc354
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xc354
callq 0x31d0
jmp 0xc354
jmp 0xc351
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xc366
callq 0x31d0
movq %rbx, %rdi
callq 0x33a0