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

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

  string mult_module_name;
  int to_be_ignored;

  if (in3_size < 1)
    in3_size = 1;

  module_name = "MAC_" + tree + "_" + pp_encoding + "_"
    + final_stage_adder + "_"
    + to_string(in1_size) + "x"
    + to_string(in2_size) + "_plus_"
    + to_string(in3_size) + (allowXes ? "" : "_noX")
    + "_" + to_string(out_size-1) + "to" + to_string(shift_amount);

  verilog.push ("");
  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 [" + to_string(in3_size-1) +  ":0] IN3,");
  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 = signed_mult ? "signed'" : "unsigned'";
  if (shift_amount>0){
    verilog.push("wire  ["  + to_string(out_size-1) +  ":0] tmp_res;");
    verilog.push("assign tmp_res = ("+signed_str+"(IN1) * "+signed_str+"(IN2) + "+signed_str+"(IN3));");
    verilog.push("assign spec_res["  + to_string(out_size-1) +  ":"+to_string(shift_amount)+"] = tmp_res["  + to_string(out_size-1) +  ":"+to_string(shift_amount)+"];");
  }else
    verilog.push("assign spec_res = "+signed_str+"(IN1) * "+signed_str+"(IN2) + "+signed_str+"(IN3);");

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

  int mult_out_size = min(out_size, max (in1_size+in2_size+1,in3_size+1));

  std::list<int> extra_ones_indices;

  bool** zeros_in_output = NULL;

  int retval = create_mult (in1_size,
                            in2_size,
                            mult_out_size,
			    0,
			    allowXes,
                            final_stage_adder,
                            pp_encoding,
                            tree,
                            false,
                            mult_module_name,
                            extra_ones_indices,
                            verilog,
                            to_be_ignored,
                            zeros_in_output);

  if (retval!=0){
    cout << "PROBLEM! create_mult returned " << retval << endl;
    return retval;
  }

  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," );
  verilog.push("input logic [" + to_string(in3_size - 1) + ":0] IN3," );
  verilog.push("output logic ["  + to_string(out_size-1) +  ":"+to_string(shift_amount)+"] result);" );
  verilog.push("outdent");

  verilog.push ("wire logic [" + to_string(mult_out_size-1) + ":0] m1_0;");
  verilog.push ("wire logic [" + to_string(mult_out_size-1) + ":0] m1_1;");

  verilog.push
    (mult_module_name + " m1 (IN1["+to_string (in1_size-1)+":0], " +
     "IN2["+to_string (in2_size-1)+":0], m1_0, m1_1);");

  verilog.push("");

  string** pp_matrix;
  int pp_dim1 = 0, pp_dim2 = 0;

  if (!signed_mult){

    pp_dim1 = 4;
    pp_dim2 = out_size;
    pp_matrix = new string*[pp_dim1];
    for (int i = 0; i < pp_dim1; i++)
      pp_matrix[i] = new string[pp_dim2];

    for (int i = 0;  i < pp_dim2; i++){
      if (i<mult_out_size){
        if(!zeros_in_output[0][i]) pp_matrix[0][i] = "m1_0[" + to_string(i) + "]";
        if(!zeros_in_output[1][i]) pp_matrix[1][i] = "m1_1[" + to_string(i) + "]";
      }
      if (i < in3_size ){
        pp_matrix[2][i] = "IN3[" + to_string(i) + "]";
      }
    }
  } else {
    pp_dim1 = 4;
    pp_dim2 = out_size;
    pp_matrix = new string*[pp_dim1];
    for (int i = 0; i < pp_dim1; i++)
      pp_matrix[i] = new string[pp_dim2];

    for (int i = 0;  i < pp_dim2; i++){

      if (i < mult_out_size){
        if(!zeros_in_output[0][i]) pp_matrix[0][i] = "m1_0[" + to_string(i) + "]";
        if(!zeros_in_output[1][i]) pp_matrix[1][i] = "m1_1[" + to_string(i) + "]";
      }
      if (i < in3_size-1){
        pp_matrix[2][i] = "IN3[" + to_string(i) + "]";
      } else if (i==in3_size-1){
        pp_matrix[2][i] = "~IN3[" + to_string(i) + "]";

      }
    }

    std::list<int> in3_extra_ones_indices;
    in3_extra_ones_indices.push_back(in3_size-1);
    extra_ones_indices =   merge_extra_ones_indices (extra_ones_indices,
                                                     in3_extra_ones_indices,
                                                     0);

  }

  add_extra_ones_to_pp_matrix (pp_matrix[3], out_size, extra_ones_indices);

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

  if (tree.compare("WT") == 0)
    create_wallacetree (pp_matrix,
                        final_stage_adder,
                        pp_dim1,
                        pp_dim2,
                        out_size, shift_amount,
                        true,
                        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,
                        true,
                        signed_mult,
                        verilog,
                        adder_size,
                        zeros_in_output);
  else
    create_daddatree (pp_matrix,
                      final_stage_adder,
                      pp_dim1,
                      pp_dim2,
                      out_size, shift_amount,
                      true,
                      signed_mult,
                      verilog,
                      adder_size,
                      zeros_in_output);

  //print_pp(pp_matrix, pp_dim1, pp_dim2);

  verilog.push("outdent");
  verilog.push("");
  verilog.push("endmodule");

  verilog.push("");

  verilog.push("");

  cout << endl;
  cout << "Multiply-Accumulate Module (" << module_name << ") is created." << endl;
  cout << "   Inputs: IN1[" << in1_size-1 << ":0], IN2[" << in2_size-1 << ":0], IN3[" << in3_size-1 << ":0]" << endl;
  cout << "   Output: result["  + to_string(out_size-1) +  ":"+to_string(shift_amount)+"]" << endl;
  if (signed_mult)
    cout << "   Function: result = signed'(IN1) * signed'(IN2) + signed'(IN3) " << endl;
  else
    cout << "   Function: result = IN1 * IN2 + IN3 (unsigned)"  << endl;
  return 0;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3d8, %rsp            # imm = 0x3D8
movl %r9d, -0x138(%rbp)
movl %r8d, %ebx
movq %rsi, -0x80(%rbp)
movl %edi, %r15d
movq 0x20(%rbp), %r8
movq 0x18(%rbp), %r13
movl %ecx, -0x54(%rbp)
movq (%r13), %rax
movb (%rax), %r14b
leaq -0x228(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
cmpl $0x2, %edx
pushq $0x1
popq %r12
cmovgel %edx, %r12d
leaq 0x26b6a(%rip), %rsi     # 0x3247f
leaq -0x318(%rbp), %rdi
movq %r8, %rdx
callq 0x11cd3
leaq 0x2781b(%rip), %rdx     # 0x33146
leaq -0x338(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x11ba1
leaq -0x358(%rbp), %rdi
leaq -0x338(%rbp), %rsi
movq %r13, %rdx
callq 0x11d77
leaq 0x277eb(%rip), %rdx     # 0x33146
leaq -0x1f0(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x11ba1
movq 0x10(%rbp), %rdx
leaq -0x210(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x11d77
leaq 0x277ba(%rip), %rdx     # 0x33146
leaq -0x178(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x11ba1
leaq -0x2f8(%rbp), %rdi
movl %r15d, %esi
callq 0x11c73
leaq -0x158(%rbp), %rdi
leaq -0x178(%rbp), %rsi
leaq -0x2f8(%rbp), %rdx
callq 0x11bca
leaq 0x25a24(%rip), %rdx     # 0x313f3
leaq -0x1b0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x11ba1
leaq -0x2d8(%rbp), %rdi
movq -0x80(%rbp), %rsi
callq 0x11c73
leaq -0x1d0(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
leaq -0x2d8(%rbp), %rdx
callq 0x11bca
leaq 0x267fb(%rip), %rdx     # 0x3220e
leaq -0x130(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x11ba1
leaq -0x2b8(%rbp), %rdi
movl %r12d, %esi
callq 0x11c73
leaq -0xe8(%rbp), %rdi
leaq -0x130(%rbp), %rsi
leaq -0x2b8(%rbp), %rdx
callq 0x11bca
leaq 0x27b7b(%rip), %rax     # 0x335d1
leaq 0x26404(%rip), %rdx     # 0x31e61
cmpb $0x0, -0x138(%rbp)
cmovneq %rax, %rdx
leaq -0x108(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x11ba1
leaq 0x276c4(%rip), %rdx     # 0x33146
leaq -0xa0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x11ba1
movl -0x54(%rbp), %esi
decl %esi
leaq -0x298(%rbp), %rdi
callq 0x11c73
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0x298(%rbp), %rdx
callq 0x11bca
leaq 0x263a2(%rip), %rdx     # 0x31e66
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x278(%rbp), %rdi
movl %ebx, %esi
callq 0x11c73
movl %ebx, -0xc4(%rbp)
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
leaq -0x278(%rbp), %rdx
callq 0x11bca
movq 0x28(%rbp), %rdi
leaq -0xc0(%rbp), %rbx
movq %rbx, %rsi
callq 0x2210
movq %rbx, %rdi
callq 0x20f0
leaq -0x278(%rbp), %rdi
callq 0x20f0
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0x298(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x2b8(%rbp), %rdi
callq 0x20f0
leaq -0x130(%rbp), %rdi
callq 0x20f0
leaq -0x1d0(%rbp), %rdi
callq 0x20f0
leaq -0x2d8(%rbp), %rdi
callq 0x20f0
leaq -0x1b0(%rbp), %rdi
callq 0x20f0
leaq -0x158(%rbp), %rdi
callq 0x20f0
leaq -0x2f8(%rbp), %rdi
callq 0x20f0
leaq -0x178(%rbp), %rdi
callq 0x20f0
leaq -0x210(%rbp), %rdi
callq 0x20f0
leaq -0x1f0(%rbp), %rdi
callq 0x20f0
leaq -0x358(%rbp), %rdi
callq 0x20f0
leaq -0x338(%rbp), %rdi
callq 0x20f0
leaq -0x318(%rbp), %rdi
callq 0x20f0
leaq 0x279c9(%rip), %rsi     # 0x335d1
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x20b0
movq 0x30(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq 0x2622e(%rip), %rsi     # 0x31e69
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x20b0
movl -0xc4(%rbp), %ebx
leaq -0xc0(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq 0x26034(%rip), %rsi     # 0x31ca8
leaq -0x50(%rbp), %rdi
movq 0x28(%rbp), %rdx
callq 0x11cd3
leaq 0x26028(%rip), %rdx     # 0x31cb0
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x11ba1
leaq -0xc0(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq 0x25ff4(%rip), %rsi     # 0x31cb8
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x20b0
leaq -0xc0(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq 0x25fc1(%rip), %rsi     # 0x31cb8
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x20b0
leaq -0xc0(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leal -0x1(%r15), %esi
leaq -0x78(%rbp), %rdi
movl %esi, -0x110(%rbp)
callq 0x11c73
leaq 0x25f97(%rip), %rsi     # 0x31cd4
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x11d49
leaq 0x25f91(%rip), %rdx     # 0x31ce2
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x11ba1
leaq -0xc0(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
movq -0x80(%rbp), %rax
leal -0x1(%rax), %esi
leaq -0x78(%rbp), %rdi
movl %esi, -0x10c(%rbp)
callq 0x11c73
leaq 0x25f28(%rip), %rsi     # 0x31cd4
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x11d49
leaq 0x25f2b(%rip), %rdx     # 0x31ceb
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x11ba1
leaq -0xc0(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leal -0x1(%r12), %esi
leaq -0x78(%rbp), %rdi
movl %esi, -0xc8(%rbp)
callq 0x11c73
leaq 0x25ebb(%rip), %rsi     # 0x31cd4
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x11d49
leaq 0x263e8(%rip), %rdx     # 0x32215
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x11ba1
leaq -0xc0(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq 0x26061(%rip), %rsi     # 0x31ed3
leaq -0x50(%rbp), %rdi
movq 0x28(%rbp), %rdx
callq 0x11cd3
leaq 0x26398(%rip), %rdx     # 0x3221e
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x11ba1
leaq -0xc0(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq -0x50(%rbp), %rdi
callq 0x20f0
movl -0x54(%rbp), %esi
decl %esi
leaq -0x108(%rbp), %rdi
callq 0x11c73
leaq 0x25e3d(%rip), %rsi     # 0x31d10
leaq -0xa0(%rbp), %rdi
leaq -0x108(%rbp), %rdx
callq 0x11d49
leaq 0x247bd(%rip), %rdx     # 0x306aa
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x11ba1
leaq -0xe8(%rbp), %rdi
movl %ebx, %esi
callq 0x11c73
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
callq 0x11bca
leaq 0x25fef(%rip), %rdx     # 0x31f15
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x11ba1
leaq -0xc0(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
movl -0x54(%rbp), %esi
decl %esi
leaq -0x108(%rbp), %rdi
callq 0x11c73
leaq 0x25d70(%rip), %rsi     # 0x31d10
leaq -0xa0(%rbp), %rdi
leaq -0x108(%rbp), %rdx
callq 0x11d49
leaq 0x246f0(%rip), %rdx     # 0x306aa
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x11ba1
leaq -0xe8(%rbp), %rdi
movl %ebx, %esi
callq 0x11c73
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
callq 0x11bca
leaq 0x25d2e(%rip), %rdx     # 0x31d21
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x11ba1
leaq -0xc0(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq 0x25cd2(%rip), %rsi     # 0x31d2e
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x20b0
leaq -0xc0(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq 0x27542(%rip), %rsi     # 0x335d1
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x20b0
leaq -0xc0(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0xc0(%rbp), %rdi
callq 0x20f0
cmpb $0x53, %r14b
leaq 0x25e5f(%rip), %rax     # 0x31f25
leaq 0x25e56(%rip), %rsi     # 0x31f23
cmoveq %rax, %rsi
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x20b0
testl %ebx, %ebx
jle 0xc3ce
movl -0x54(%rbp), %esi
decl %esi
leaq -0xa0(%rbp), %rdi
callq 0x11c73
leaq 0x26383(%rip), %rsi     # 0x32484
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
callq 0x11d49
leaq 0x26374(%rip), %rdx     # 0x3248c
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq 0x26342(%rip), %rsi     # 0x32499
leaq -0x130(%rbp), %rdi
leaq -0xc0(%rbp), %rdx
callq 0x11cd3
leaq 0x260e7(%rip), %rdx     # 0x32258
leaq -0xe8(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x11ba1
leaq -0x108(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
leaq -0xc0(%rbp), %rdx
callq 0x11d77
leaq 0x26307(%rip), %rdx     # 0x324ac
leaq -0xa0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x11ba1
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0xc0(%rbp), %rdx
callq 0x11d77
leaq 0x262df(%rip), %rdx     # 0x324b5
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x130(%rbp), %rdi
callq 0x20f0
movl -0x54(%rbp), %esi
decl %esi
leaq -0x158(%rbp), %rdi
callq 0x11c73
leaq 0x25d20(%rip), %rsi     # 0x31f6a
leaq -0x1b0(%rbp), %rdi
leaq -0x158(%rbp), %rdx
callq 0x11d49
leaq 0x24446(%rip), %rdx     # 0x306aa
leaq -0x1d0(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x11ba1
leaq -0x178(%rbp), %rdi
movl %ebx, %esi
callq 0x11c73
leaq -0x130(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
leaq -0x178(%rbp), %rdx
callq 0x11bca
leaq 0x26217(%rip), %rdx     # 0x324bd
leaq -0xe8(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x11ba1
movl -0x54(%rbp), %esi
decl %esi
leaq -0x210(%rbp), %rdi
callq 0x11c73
leaq -0x108(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
leaq -0x210(%rbp), %rdx
callq 0x11bca
leaq 0x243bf(%rip), %rdx     # 0x306aa
leaq -0xa0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x11ba1
leaq -0x1f0(%rbp), %rdi
movl %ebx, %esi
callq 0x11c73
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0x1f0(%rbp), %rdx
callq 0x11bca
leaq 0x26723(%rip), %rdx     # 0x32a4d
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0x1f0(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0x210(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x130(%rbp), %rdi
callq 0x20f0
leaq -0x178(%rbp), %rdi
callq 0x20f0
leaq -0x1d0(%rbp), %rdi
callq 0x20f0
leaq -0x1b0(%rbp), %rdi
callq 0x20f0
leaq -0x158(%rbp), %rdi
jmp 0xc4ab
leaq 0x25bb9(%rip), %rsi     # 0x31f8e
leaq -0x130(%rbp), %rdi
leaq -0xc0(%rbp), %rdx
callq 0x11cd3
leaq 0x25e69(%rip), %rdx     # 0x32258
leaq -0xe8(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x11ba1
leaq -0x108(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
leaq -0xc0(%rbp), %rdx
callq 0x11d77
leaq 0x26089(%rip), %rdx     # 0x324ac
leaq -0xa0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x11ba1
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0xc0(%rbp), %rdx
callq 0x11d77
leaq 0x26076(%rip), %rdx     # 0x324ca
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x130(%rbp), %rdi
callq 0x20f0
leaq 0x25dd1(%rip), %rdx     # 0x32288
leaq -0xa0(%rbp), %rdi
movq 0x28(%rbp), %rsi
callq 0x11c3b
leaq 0x25d4a(%rip), %rdx     # 0x32218
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x11ba1
leaq 0x25acb(%rip), %rdx     # 0x31fb0
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq 0x25a9a(%rip), %rsi     # 0x31fbe
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq 0x27083(%rip), %rsi     # 0x335d1
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq 0x257b6(%rip), %rsi     # 0x31d2e
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq 0x25834(%rip), %rsi     # 0x31dd6
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq 0x27005(%rip), %rsi     # 0x335d1
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
movb %r14b, -0x29(%rbp)
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
movq %r13, %r14
leaq -0x50(%rbp), %rdi
callq 0x20f0
movq -0x80(%rbp), %rax
leal (%rax,%r15), %ebx
cmpl %r12d, %ebx
cmovlel %r12d, %ebx
incl %ebx
movl -0x54(%rbp), %eax
cmpl %eax, %ebx
cmovgel %eax, %ebx
leaq -0x158(%rbp), %rax
movq %rax, -0x150(%rbp)
movq %rax, -0x158(%rbp)
andq $0x0, -0x148(%rbp)
andq $0x0, -0x178(%rbp)
leaq -0x258(%rbp), %rdi
movq 0x10(%rbp), %rsi
callq 0x2250
leaq -0x398(%rbp), %r13
movq %r13, %rdi
movq %r14, %rsi
callq 0x2250
leaq -0x378(%rbp), %r14
movq %r14, %rdi
movq 0x20(%rbp), %rsi
callq 0x2250
subq $0x40, %rsp
leaq -0x178(%rbp), %rax
movq %rax, 0x38(%rsp)
leaq -0x214(%rbp), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rbp), %rax
movq %rax, 0x28(%rsp)
leaq -0x158(%rbp), %rax
movq %rax, 0x20(%rsp)
leaq -0x238(%rbp), %rax
movq %rax, 0x18(%rsp)
movq %r14, 0x8(%rsp)
movq %r13, (%rsp)
andl $0x0, 0x10(%rsp)
movzbl -0x138(%rbp), %r8d
leaq -0x258(%rbp), %r9
movl %r15d, %edi
movq -0x80(%rbp), %rsi
movl %ebx, %edx
xorl %ecx, %ecx
callq 0x516a
addq $0x40, %rsp
movl %eax, %r14d
leaq -0x378(%rbp), %rdi
callq 0x20f0
leaq -0x398(%rbp), %rdi
callq 0x20f0
leaq -0x258(%rbp), %rdi
callq 0x20f0
testl %r14d, %r14d
je 0xc730
movq 0x328be(%rip), %rdi     # 0x3efc8
leaq 0x25dc0(%rip), %rsi     # 0x324d1
callq 0x21c0
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %esi
callq 0x2320
movq %rax, %rdi
callq 0x2110
jmp 0xd4df
leaq 0x25571(%rip), %rsi     # 0x31ca8
leaq -0x78(%rbp), %rdi
movq 0x28(%rbp), %rdx
callq 0x11cd3
leaq 0x26932(%rip), %rdx     # 0x3307d
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq 0x2553a(%rip), %rsi     # 0x31cb8
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq 0x25510(%rip), %rsi     # 0x31cb8
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
movl -0x110(%rbp), %esi
callq 0x11c73
leaq 0x254f0(%rip), %rsi     # 0x31cd4
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
callq 0x11d49
leaq 0x254e7(%rip), %rdx     # 0x31ce2
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
movl -0x10c(%rbp), %esi
callq 0x11c73
leaq 0x25488(%rip), %rsi     # 0x31cd4
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
callq 0x11d49
leaq 0x25488(%rip), %rdx     # 0x31ceb
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
movl -0xc8(%rbp), %esi
callq 0x11c73
leaq 0x25420(%rip), %rsi     # 0x31cd4
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
callq 0x11d49
leaq 0x2594a(%rip), %rdx     # 0x32215
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
movl -0x54(%rbp), %esi
decl %esi
leaq -0xe8(%rbp), %rdi
callq 0x11c73
leaq 0x253f5(%rip), %rsi     # 0x31d10
leaq -0x108(%rbp), %rdi
leaq -0xe8(%rbp), %rdx
callq 0x11d49
leaq 0x23d75(%rip), %rdx     # 0x306aa
leaq -0xa0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x11ba1
leaq -0x130(%rbp), %rdi
movl -0xc4(%rbp), %esi
callq 0x11c73
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0x130(%rbp), %rdx
callq 0x11bca
leaq 0x25685(%rip), %rdx     # 0x31ffd
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0x130(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq 0x25353(%rip), %rsi     # 0x31d2e
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leal -0x1(%rbx), %r14d
leaq -0xa0(%rbp), %rdi
movl %r14d, %esi
callq 0x11c73
leaq 0x25515(%rip), %rsi     # 0x31f2d
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
callq 0x11d49
leaq 0x25869(%rip), %rdx     # 0x32298
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
movl %r14d, %esi
callq 0x11c73
leaq 0x254b0(%rip), %rsi     # 0x31f2d
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
callq 0x11d49
movb -0x29(%rbp), %r14b
leaq 0x2580a(%rip), %rdx     # 0x322a2
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq 0x25811(%rip), %rdx     # 0x322e8
leaq -0x130(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x11c3b
leaq -0x1d0(%rbp), %rdi
movl -0x110(%rbp), %esi
callq 0x11c73
leaq -0xe8(%rbp), %rdi
leaq -0x130(%rbp), %rsi
leaq -0x1d0(%rbp), %rdx
callq 0x11bca
leaq 0x257d5(%rip), %rdx     # 0x322f2
leaq -0x108(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x11ba1
leaq 0x2604a(%rip), %rdx     # 0x32b81
leaq -0xa0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x11ba1
leaq -0x1b0(%rbp), %rdi
movl -0x10c(%rbp), %esi
callq 0x11c73
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0x1b0(%rbp), %rdx
callq 0x11bca
leaq 0x2577e(%rip), %rdx     # 0x322f8
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0x1b0(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x1d0(%rbp), %rdi
callq 0x20f0
leaq -0x130(%rbp), %rdi
callq 0x20f0
leaq 0x269dc(%rip), %rsi     # 0x335d1
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
movslq -0x54(%rbp), %r13
pushq $-0x1
popq %r15
movslq %ebx, %rax
movq %rax, -0x138(%rbp)
cmpb $0x53, %r14b
movq %r13, -0x190(%rbp)
jne 0xcca0
pushq $0x20
popq %rdi
callq 0x2030
movq %rax, -0x80(%rbp)
movq %r13, %rbx
shlq $0x5, %rbx
leaq 0x8(%rbx), %r14
testl %r13d, %r13d
cmovsq %r15, %r14
xorl %r15d, %r15d
cmpq $0x4, %r15
je 0xcd09
movq %r14, %rdi
callq 0x2030
movq %r13, (%rax)
testl %r13d, %r13d
je 0xcc8f
leaq 0x18(%rax), %rcx
movq %rbx, %rdx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
addq $0x20, %rcx
addq $-0x20, %rdx
jne 0xcc79
addq $0x8, %rax
movq -0x80(%rbp), %rcx
movq %rax, (%rcx,%r15,8)
incq %r15
jmp 0xcc58
pushq $0x20
popq %rdi
callq 0x2030
movq %rax, -0x80(%rbp)
movq %r13, %rbx
shlq $0x5, %rbx
leaq 0x8(%rbx), %r14
testl %r13d, %r13d
cmovsq %r15, %r14
xorl %r15d, %r15d
cmpq $0x4, %r15
je 0xceea
movq %r14, %rdi
callq 0x2030
movq %r13, (%rax)
testl %r13d, %r13d
je 0xccf8
leaq 0x18(%rax), %rcx
movq %rbx, %rdx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
addq $0x20, %rcx
addq $-0x20, %rdx
jne 0xcce2
addq $0x8, %rax
movq -0x80(%rbp), %rcx
movq %rax, (%rcx,%r15,8)
incq %r15
jmp 0xccc1
movl -0xc8(%rbp), %eax
xorl %r15d, %r15d
testl %r13d, %r13d
movl $0x0, %ecx
cmovgl %r13d, %ecx
movq %rcx, -0x188(%rbp)
leaq -0xa0(%rbp), %r13
leaq -0x78(%rbp), %r14
leaq -0x50(%rbp), %r12
movq %rax, %rbx
shlq $0x5, %rax
movq %rax, -0x180(%rbp)
cmpq -0x188(%rbp), %r15
je 0xd083
cmpq -0x138(%rbp), %r15
jge 0xce3a
movq -0x178(%rbp), %rax
movq (%rax), %rcx
cmpb $0x0, (%rcx,%r15)
jne 0xcdd1
movq %r13, %rdi
movl %r15d, %esi
callq 0x11c73
movq %r14, %rdi
leaq 0x25643(%rip), %rsi     # 0x323c5
movq %r13, %rdx
callq 0x11d49
movq %r12, %rdi
movq %r14, %rsi
leaq 0x25082(%rip), %rdx     # 0x31e19
callq 0x11ba1
movq %r15, %rdi
shlq $0x5, %rdi
movq -0x80(%rbp), %rax
addq (%rax), %rdi
movq %r12, %rsi
callq 0x2210
movq %r12, %rdi
callq 0x20f0
movq %r14, %rdi
callq 0x20f0
movq %r13, %rdi
callq 0x20f0
movq -0x178(%rbp), %rax
movq 0x8(%rax), %rax
cmpb $0x0, (%rax,%r15)
jne 0xce3a
movq %r13, %rdi
movl %r15d, %esi
callq 0x11c73
movq %r14, %rdi
leaq 0x255da(%rip), %rsi     # 0x323cb
movq %r13, %rdx
callq 0x11d49
movq %r12, %rdi
movq %r14, %rsi
leaq 0x25013(%rip), %rdx     # 0x31e19
callq 0x11ba1
movq %r15, %rdi
shlq $0x5, %rdi
movq -0x80(%rbp), %rax
addq 0x8(%rax), %rdi
movq %r12, %rsi
callq 0x2210
movq %r12, %rdi
callq 0x20f0
movq %r14, %rdi
callq 0x20f0
movq %r13, %rdi
callq 0x20f0
cmpq %rbx, %r15
jae 0xce7f
movq %r13, %rdi
movl %r15d, %esi
callq 0x11c73
movq %r14, %rdi
leaq 0x256be(%rip), %rsi     # 0x32512
movq %r13, %rdx
callq 0x11d49
movq %r12, %rdi
movq %r14, %rsi
leaq 0x24fb0(%rip), %rdx     # 0x31e19
callq 0x11ba1
movq %r15, %rdi
shlq $0x5, %rdi
movq -0x80(%rbp), %rax
addq 0x10(%rax), %rdi
jmp 0xcec2
jne 0xcee2
movq %r13, %rdi
movl -0xc8(%rbp), %esi
callq 0x11c73
movq %r14, %rdi
leaq 0x2555c(%rip), %rsi     # 0x323f5
movq %r13, %rdx
callq 0x11d49
movq %r12, %rdi
movq %r14, %rsi
leaq 0x24f6b(%rip), %rdx     # 0x31e19
callq 0x11ba1
movq -0x80(%rbp), %rax
movq 0x10(%rax), %rdi
addq -0x180(%rbp), %rdi
movq %r12, %rsi
callq 0x2210
movq %r12, %rdi
callq 0x20f0
movq %r14, %rdi
callq 0x20f0
movq %r13, %rdi
callq 0x20f0
incq %r15
jmp 0xcd42
movl %r12d, %eax
movq %rax, -0x180(%rbp)
xorl %ebx, %ebx
testl %r13d, %r13d
movl $0x0, %eax
cmovgl %r13d, %eax
movq %rax, -0x188(%rbp)
leaq -0xa0(%rbp), %r14
leaq -0x78(%rbp), %r12
leaq -0x50(%rbp), %r15
xorl %r13d, %r13d
cmpq %r13, -0x188(%rbp)
je 0xd07a
cmpq -0x138(%rbp), %r13
jge 0xd00b
movq -0x178(%rbp), %rax
movq (%rax), %rcx
cmpb $0x0, (%rcx,%r13)
jne 0xcfa6
movq %r14, %rdi
movl %r13d, %esi
callq 0x11c73
movq %r12, %rdi
leaq 0x2546a(%rip), %rsi     # 0x323c5
movq %r14, %rdx
callq 0x11d49
movq %r15, %rdi
movq %r12, %rsi
leaq 0x24ea9(%rip), %rdx     # 0x31e19
callq 0x11ba1
movq -0x80(%rbp), %rax
movq (%rax), %rdi
addq %rbx, %rdi
movq %r15, %rsi
callq 0x2210
movq %r15, %rdi
callq 0x20f0
movq %r12, %rdi
callq 0x20f0
movq %r14, %rdi
callq 0x20f0
movq -0x178(%rbp), %rax
movq 0x8(%rax), %rax
cmpb $0x0, (%rax,%r13)
jne 0xd00b
movq %r14, %rdi
movl %r13d, %esi
callq 0x11c73
movq %r12, %rdi
leaq 0x25405(%rip), %rsi     # 0x323cb
movq %r14, %rdx
callq 0x11d49
movq %r15, %rdi
movq %r12, %rsi
leaq 0x24e3e(%rip), %rdx     # 0x31e19
callq 0x11ba1
movq -0x80(%rbp), %rax
movq 0x8(%rax), %rdi
addq %rbx, %rdi
movq %r15, %rsi
callq 0x2210
movq %r15, %rdi
callq 0x20f0
movq %r12, %rdi
callq 0x20f0
movq %r14, %rdi
callq 0x20f0
cmpq -0x180(%rbp), %r13
jae 0xd06e
movq %r14, %rdi
movl %r13d, %esi
callq 0x11c73
movq %r12, %rdi
leaq 0x254e9(%rip), %rsi     # 0x32512
movq %r14, %rdx
callq 0x11d49
movq %r15, %rdi
movq %r12, %rsi
leaq 0x24ddb(%rip), %rdx     # 0x31e19
callq 0x11ba1
movq -0x80(%rbp), %rax
movq 0x10(%rax), %rdi
addq %rbx, %rdi
movq %r15, %rsi
callq 0x2210
movq %r15, %rdi
callq 0x20f0
movq %r12, %rdi
callq 0x20f0
movq %r14, %rdi
callq 0x20f0
incq %r13
addq $0x20, %rbx
jmp 0xcf1b
movq -0x190(%rbp), %r15
jmp 0xd0ed
movq %r12, -0x48(%rbp)
movq %r12, -0x50(%rbp)
andq $0x0, -0x40(%rbp)
leaq -0x78(%rbp), %rsi
movl -0xc8(%rbp), %eax
movl %eax, (%rsi)
movq %r12, %rdi
callq 0x11dc2
leaq -0xa0(%rbp), %rcx
andl $0x0, (%rcx)
leaq -0x78(%rbp), %rdi
leaq -0x158(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq 0x196ec
movq -0x190(%rbp), %r15
leaq -0x158(%rbp), %rdi
leaq -0x78(%rbp), %r14
movq %r14, %rsi
callq 0x123de
movq %r14, %rdi
callq 0x11f0c
leaq -0x50(%rbp), %rdi
callq 0x11f0c
movq -0x80(%rbp), %rax
leaq 0x18(%rax), %rdi
movl -0x54(%rbp), %esi
leaq -0x158(%rbp), %rdx
callq 0x19879
pushq $0x4
popq %rsi
pushq $0x1
popq %r8
movq -0x80(%rbp), %rdi
movl %r15d, %edx
movq 0x30(%rbp), %rcx
callq 0x199ab
movq 0x38(%rbp), %rbx
leaq 0x243e5(%rip), %rsi     # 0x3150b
movq 0x20(%rbp), %r14
movq %r14, %rdi
callq 0x2090
testl %eax, %eax
je 0xd1a3
leaq 0x243d1(%rip), %rsi     # 0x3150e
movq %r14, %rdi
callq 0x2090
testl %eax, %eax
je 0xd1f6
leaq -0x3b8(%rbp), %r14
movq %r14, %rdi
movq 0x10(%rbp), %rsi
callq 0x2250
xorl %eax, %eax
cmpb $0x53, -0x29(%rbp)
sete %al
subq $0x8, %rsp
pushq $0x4
popq %rdx
leaq -0x54(%rbp), %r8
movq -0x80(%rbp), %rdi
movq %r14, %rsi
movl %r15d, %ecx
movl -0xc4(%rbp), %r9d
leaq -0x178(%rbp), %r10
pushq %r10
pushq %rbx
pushq 0x30(%rbp)
pushq %rax
pushq $0x1
callq 0x27b05
addq $0x30, %rsp
jmp 0xd247
leaq -0x3f8(%rbp), %r14
movq %r14, %rdi
movq 0x10(%rbp), %rsi
callq 0x2250
xorl %eax, %eax
cmpb $0x53, -0x29(%rbp)
sete %al
movl -0x54(%rbp), %r8d
subq $0x8, %rsp
pushq $0x4
popq %rdx
movq -0x80(%rbp), %rdi
movq %r14, %rsi
movl %r15d, %ecx
movl -0xc4(%rbp), %r9d
leaq -0x178(%rbp), %r10
pushq %r10
pushq %rbx
pushq 0x30(%rbp)
pushq %rax
pushq $0x1
callq 0x2c773
addq $0x30, %rsp
jmp 0xd247
leaq -0x3d8(%rbp), %r14
movq %r14, %rdi
movq 0x10(%rbp), %rsi
callq 0x2250
xorl %eax, %eax
cmpb $0x53, -0x29(%rbp)
sete %al
movl -0x54(%rbp), %r8d
subq $0x8, %rsp
pushq $0x4
popq %rdx
movq -0x80(%rbp), %rdi
movq %r14, %rsi
movl %r15d, %ecx
movl -0xc4(%rbp), %r9d
leaq -0x178(%rbp), %r10
pushq %r10
pushq %rbx
pushq 0x30(%rbp)
pushq %rax
pushq $0x1
callq 0x2ddef
addq $0x30, %rsp
movq %r14, %rdi
callq 0x20f0
leaq 0x24ad8(%rip), %rsi     # 0x31d2e
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq 0x26351(%rip), %rsi     # 0x335d1
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq 0x24b2c(%rip), %rsi     # 0x31dd6
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq 0x262fd(%rip), %rsi     # 0x335d1
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq 0x262d3(%rip), %rsi     # 0x335d1
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rsi
movq 0x30(%rbp), %rdi
callq 0x120e4
leaq -0x50(%rbp), %rdi
callq 0x20f0
movq 0x31ca0(%rip), %rdi     # 0x3efc8
callq 0x2110
movq 0x31c94(%rip), %rdi     # 0x3efc8
leaq 0x251b5(%rip), %rsi     # 0x324f0
callq 0x21c0
movq %rax, %rdi
movq 0x28(%rbp), %rsi
callq 0x2190
leaq 0x24a9c(%rip), %rsi     # 0x31def
movq %rax, %rdi
callq 0x21c0
movq %rax, %rdi
callq 0x2110
movq 0x31c5e(%rip), %rdi     # 0x3efc8
leaq 0x24a8c(%rip), %rsi     # 0x31dfd
callq 0x21c0
movq %rax, %rdi
movl -0x110(%rbp), %esi
callq 0x2320
leaq 0x24a82(%rip), %rsi     # 0x31e0d
movq %rax, %rdi
callq 0x21c0
movq %rax, %rdi
movl -0x10c(%rbp), %esi
callq 0x2320
leaq 0x25165(%rip), %rsi     # 0x3250d
movq %rax, %rdi
callq 0x21c0
movq %rax, %rdi
movl -0xc8(%rbp), %esi
callq 0x2320
leaq 0x24a52(%rip), %rsi     # 0x31e17
movq %rax, %rdi
callq 0x21c0
movq %rax, %rdi
callq 0x2110
movl -0x54(%rbp), %esi
decl %esi
leaq -0xe8(%rbp), %rdi
callq 0x11c73
leaq 0x24a38(%rip), %rsi     # 0x31e25
leaq -0x108(%rbp), %rdi
leaq -0xe8(%rbp), %rdx
callq 0x11d49
movb -0x29(%rbp), %bl
leaq 0x232a0(%rip), %rdx     # 0x306aa
leaq -0xa0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x11ba1
leaq -0x130(%rbp), %rdi
movl -0xc4(%rbp), %esi
callq 0x11c73
leaq -0x78(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0x130(%rbp), %rdx
callq 0x11bca
leaq 0x249cc(%rip), %rdx     # 0x31e19
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11ba1
movq 0x31b67(%rip), %rdi     # 0x3efc8
leaq -0x50(%rbp), %rsi
callq 0x2190
movq %rax, %rdi
callq 0x2110
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0x130(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
cmpb $0x53, %bl
leaq 0x25059(%rip), %rax     # 0x32517
leaq 0x25094(%rip), %rsi     # 0x32559
cmoveq %rax, %rsi
movq 0x31af8(%rip), %rdi     # 0x3efc8
callq 0x21c0
xorl %ebx, %ebx
movq %rax, %rdi
callq 0x2110
leaq -0x158(%rbp), %rdi
callq 0x11f0c
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq -0x238(%rbp), %rdi
callq 0x20f0
movl %ebx, %eax
addq $0x3d8, %rsp            # imm = 0x3D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x3d8(%rbp), %rdi
jmp 0xdd76
movq %rax, %rbx
leaq -0x3f8(%rbp), %rdi
jmp 0xdd76
movq %rax, %rbx
leaq -0x3b8(%rbp), %rdi
jmp 0xdd76
jmp 0xd546
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x11f0c
jmp 0xdd84
movq %rax, %rbx
jmp 0xd94b
movq %rax, %rbx
jmp 0xd954
movq %rax, %rbx
jmp 0xd960
movq %rax, %rbx
jmp 0xd96c
movq %rax, %rbx
jmp 0xd978
jmp 0xdd81
jmp 0xd75b
jmp 0xdd81
jmp 0xd75b
jmp 0xdd81
jmp 0xd75b
jmp 0xdd81
jmp 0xd75b
jmp 0xdd81
jmp 0xd75b
jmp 0xdd81
jmp 0xd75b
jmp 0xdd81
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd5d1
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20f0
jmp 0xd5df
movq %rax, %rbx
leaq -0x1b0(%rbp), %rdi
callq 0x20f0
jmp 0xd5f0
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x20f0
jmp 0xd601
movq %rax, %rbx
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x1d0(%rbp), %rdi
callq 0x20f0
leaq -0x130(%rbp), %rdi
jmp 0xdd76
movq %rax, %rbx
jmp 0xd60d
movq %rax, %rbx
jmp 0xd619
movq %rax, %rbx
jmp 0xd625
jmp 0xdd81
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd656
movq %rax, %rbx
jmp 0xdd66
jmp 0xdd5c
jmp 0xdd81
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd676
movq %rax, %rbx
jmp 0xdd66
jmp 0xdd5c
jmp 0xdd81
jmp 0xd75b
jmp 0xdd81
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd6a0
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20f0
jmp 0xd6ae
movq %rax, %rbx
leaq -0x130(%rbp), %rdi
callq 0x20f0
jmp 0xd6bf
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x20f0
jmp 0xd6d0
movq %rax, %rbx
leaq -0x108(%rbp), %rdi
callq 0x20f0
jmp 0xd978
movq %rax, %rbx
jmp 0xd6dc
jmp 0xdd81
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd6fc
movq %rax, %rbx
jmp 0xdd66
jmp 0xdd5c
jmp 0xdd81
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd71c
movq %rax, %rbx
jmp 0xdd66
jmp 0xdd5c
jmp 0xdd81
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd73c
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20f0
jmp 0xd74a
movq %rax, %rbx
jmp 0xdd6f
jmp 0xdd81
jmp 0xd75b
jmp 0xdd81
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
jmp 0xdd76
jmp 0xdd81
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd77d
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
jmp 0xdd76
jmp 0xdd81
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd79c
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20f0
jmp 0xd7aa
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x20f0
jmp 0xd7bb
movq %rax, %rbx
leaq -0x108(%rbp), %rdi
callq 0x20f0
jmp 0xd7cc
movq %rax, %rbx
leaq -0xe8(%rbp), %rdi
callq 0x20f0
jmp 0xd900
movq %rax, %rbx
jmp 0xd900
jmp 0xda00
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd7fb
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20f0
jmp 0xd809
movq %rax, %rbx
leaq -0x1f0(%rbp), %rdi
callq 0x20f0
jmp 0xd81a
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x20f0
jmp 0xd82b
movq %rax, %rbx
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0x210(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x130(%rbp), %rdi
callq 0x20f0
leaq -0x178(%rbp), %rdi
callq 0x20f0
leaq -0x1d0(%rbp), %rdi
callq 0x20f0
leaq -0x1b0(%rbp), %rdi
callq 0x20f0
leaq -0x158(%rbp), %rdi
jmp 0xd9f6
movq %rax, %rbx
jmp 0xd837
movq %rax, %rbx
jmp 0xd843
movq %rax, %rbx
jmp 0xd84f
movq %rax, %rbx
jmp 0xd85b
movq %rax, %rbx
jmp 0xd867
movq %rax, %rbx
jmp 0xd873
movq %rax, %rbx
jmp 0xd87f
jmp 0xda00
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd8c4
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20f0
jmp 0xd8d2
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x20f0
jmp 0xd8e3
movq %rax, %rbx
leaq -0x108(%rbp), %rdi
callq 0x20f0
jmp 0xd8f4
movq %rax, %rbx
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x130(%rbp), %rdi
jmp 0xd9f6
movq %rax, %rbx
jmp 0xd900
jmp 0xda00
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd927
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20f0
jmp 0xd935
movq %rax, %rbx
jmp 0xd9ef
jmp 0xda00
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0x130(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
jmp 0xdd76
movq %rax, %rbx
leaq -0x378(%rbp), %rdi
callq 0x20f0
jmp 0xd998
movq %rax, %rbx
leaq -0x398(%rbp), %rdi
callq 0x20f0
jmp 0xd9a9
movq %rax, %rbx
leaq -0x258(%rbp), %rdi
jmp 0xdd76
jmp 0xd9c5
jmp 0xda00
jmp 0xd9c5
jmp 0xda00
jmp 0xd9c5
jmp 0xda00
jmp 0xd9c5
jmp 0xda00
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
jmp 0xd9f6
jmp 0xda00
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xd9e1
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20f0
jmp 0xd9ef
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x20f0
jmp 0xdd90
movq %rax, %rbx
jmp 0xdd90
jmp 0xdd31
jmp 0xdbab
jmp 0xdd31
jmp 0xdbab
jmp 0xdd31
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x20f0
jmp 0xda35
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xda43
movq %rax, %rbx
leaq -0xe8(%rbp), %rdi
callq 0x20f0
jmp 0xda54
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20f0
jmp 0xda62
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x20f0
jmp 0xdac7
movq %rax, %rbx
jmp 0xdac7
jmp 0xdd31
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x20f0
jmp 0xda8e
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xda9c
movq %rax, %rbx
leaq -0xe8(%rbp), %rdi
callq 0x20f0
jmp 0xdaad
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20f0
jmp 0xdabb
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
jmp 0xdd97
movq %rax, %rbx
jmp 0xdac7
jmp 0xdd31
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x20f0
jmp 0xdb96
movq %rax, %rbx
jmp 0xdb96
jmp 0xdd31
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x20f0
jmp 0xdb12
movq %rax, %rbx
jmp 0xdb2f
jmp 0xdb3a
jmp 0xdd31
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x20f0
jmp 0xdb2f
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xdb66
movq %rax, %rbx
jmp 0xdb66
jmp 0xdd31
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x20f0
jmp 0xdb58
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xdb66
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
jmp 0xdd97
jmp 0xdd31
jmp 0xdbab
jmp 0xdd31
jmp 0xdbab
jmp 0xdd31
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x20f0
jmp 0xdb96
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
jmp 0xdd97
jmp 0xdd31
jmp 0xdbab
jmp 0xdd31
movq %rax, %rbx
jmp 0xdd90
jmp 0xdd31
movq %rax, %rbx
leaq -0x278(%rbp), %rdi
callq 0x20f0
jmp 0xdbcc
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20f0
jmp 0xdbda
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20f0
jmp 0xdbe8
movq %rax, %rbx
leaq -0x298(%rbp), %rdi
callq 0x20f0
jmp 0xdbf9
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x2b8(%rbp), %rdi
callq 0x20f0
leaq -0x130(%rbp), %rdi
callq 0x20f0
leaq -0x1d0(%rbp), %rdi
callq 0x20f0
leaq -0x2d8(%rbp), %rdi
callq 0x20f0
leaq -0x1b0(%rbp), %rdi
callq 0x20f0
leaq -0x158(%rbp), %rdi
callq 0x20f0
leaq -0x2f8(%rbp), %rdi
callq 0x20f0
leaq -0x178(%rbp), %rdi
callq 0x20f0
leaq -0x210(%rbp), %rdi
callq 0x20f0
leaq -0x1f0(%rbp), %rdi
callq 0x20f0
leaq -0x358(%rbp), %rdi
callq 0x20f0
leaq -0x338(%rbp), %rdi
callq 0x20f0
leaq -0x318(%rbp), %rdi
jmp 0xdd97
movq %rax, %rbx
jmp 0xdc05
movq %rax, %rbx
jmp 0xdc11
movq %rax, %rbx
jmp 0xdc1d
movq %rax, %rbx
jmp 0xdc29
movq %rax, %rbx
jmp 0xdc35
movq %rax, %rbx
jmp 0xdc41
movq %rax, %rbx
jmp 0xdc4d
movq %rax, %rbx
jmp 0xdc59
movq %rax, %rbx
jmp 0xdc65
movq %rax, %rbx
jmp 0xdc71
movq %rax, %rbx
jmp 0xdc7d
movq %rax, %rbx
jmp 0xdc89
movq %rax, %rbx
jmp 0xdc95
movq %rax, %rbx
jmp 0xdca1
movq %rax, %rbx
jmp 0xdcad
movq %rax, %rbx
jmp 0xdd9c
jmp 0xdd63
jmp 0xdd5c
jmp 0xdd81
jmp 0xdd63
jmp 0xdd5c
jmp 0xdd81
jmp 0xdd63
jmp 0xdd63
jmp 0xdd5c
jmp 0xdd5c
jmp 0xdd81
jmp 0xdd81
jmp 0xdd63
jmp 0xdd5c
jmp 0xdd81
jmp 0xdd81
jmp 0xdd5c
jmp 0xdd81
jmp 0xdd63
movq %rax, %rbx
jmp 0xdd6f
jmp 0xdd81
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x20f0
jmp 0xdd84
jmp 0xdd81
jmp 0xdd81
movq %rax, %rbx
leaq -0x158(%rbp), %rdi
callq 0x11f0c
leaq -0xc0(%rbp), %rdi
callq 0x20f0
leaq -0x238(%rbp), %rdi
callq 0x20f0
movq %rbx, %rdi
callq 0x2330