// File: 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 %r14
pushq %rbx
subq $0x1470, %rsp           # imm = 0x1470
movq %r9, -0x1058(%rbp)
movl %r8d, %eax
movl %ecx, -0x1050(%rbp)
movl %edx, %ecx
movl -0x1050(%rbp), %edx
movl %ecx, -0x104c(%rbp)
movl %esi, %r8d
movl %edi, %r10d
movl -0x104c(%rbp), %edi
movb %al, %cl
movq 0x48(%rbp), %rax
movq 0x40(%rbp), %rax
movq 0x38(%rbp), %rax
movq 0x30(%rbp), %rax
movq 0x28(%rbp), %rax
movb 0x20(%rbp), %al
movq 0x18(%rbp), %rsi
movq %rsi, -0x1048(%rbp)
movq 0x10(%rbp), %r11
movq %r11, -0x1038(%rbp)
movl %r10d, -0x18(%rbp)
movl %r8d, -0x1c(%rbp)
movl %edi, -0x20(%rbp)
movl %edx, -0x24(%rbp)
andb $0x1, %cl
movb %cl, -0x25(%rbp)
movq %r9, -0x30(%rbp)
andb $0x1, %al
movb %al, -0x31(%rbp)
leaq 0x5026b(%rip), %rdx     # 0x59156
leaq -0x148(%rbp), %rdi
movq %rdi, -0x1040(%rbp)
callq 0x1e680
movq -0x1040(%rbp), %rsi
movq -0x1038(%rbp), %rdx
leaq -0x128(%rbp), %rdi
callq 0x1e980
jmp 0x8f1a
leaq 0x50235(%rip), %rdx     # 0x59156
leaq -0x108(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x1e560
jmp 0x8f36
movb -0x31(%rbp), %al
movb $0x0, -0x17a(%rbp)
testb $0x1, %al
je 0x8f62
movq -0x1058(%rbp), %rsi
leaq 0x50204(%rip), %rdx     # 0x59156
leaq -0x178(%rbp), %rdi
callq 0x1e680
jmp 0x8f60
jmp 0x8f9a
leaq -0x179(%rbp), %rdi
movq %rdi, -0x1060(%rbp)
callq 0x3430
movq -0x1060(%rbp), %rdx
movb $0x1, -0x17a(%rbp)
leaq 0x50657(%rip), %rsi     # 0x595e1
leaq -0x178(%rbp), %rdi
callq 0x3320
jmp 0x8f98
jmp 0x8f9a
leaq -0xe8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
leaq -0x178(%rbp), %rdx
callq 0x1e5b0
jmp 0x8fb6
movl -0x18(%rbp), %esi
leaq -0x1a0(%rbp), %rdi
callq 0x1e700
jmp 0x8fc7
leaq -0xc8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
leaq -0x1a0(%rbp), %rdx
callq 0x1e5b0
jmp 0x8fe3
leaq 0x4e40c(%rip), %rdx     # 0x573f6
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x1e560
jmp 0x8fff
movl -0x1c(%rbp), %esi
leaq -0x1c0(%rbp), %rdi
callq 0x1e700
jmp 0x9010
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
leaq -0x1c0(%rbp), %rdx
callq 0x1e5b0
jmp 0x902c
movb -0x25(%rbp), %cl
leaq 0x505ab(%rip), %rax     # 0x595e1
leaq 0x4ee27(%rip), %rdx     # 0x57e64
testb $0x1, %cl
cmovneq %rax, %rdx
leaq -0x68(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x1e560
jmp 0x9056
movq 0x28(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x32b0
leaq -0x68(%rbp), %rdi
callq 0x31a0
leaq -0x88(%rbp), %rdi
callq 0x31a0
leaq -0x1c0(%rbp), %rdi
callq 0x31a0
leaq -0xa8(%rbp), %rdi
callq 0x31a0
leaq -0xc8(%rbp), %rdi
callq 0x31a0
leaq -0x1a0(%rbp), %rdi
callq 0x31a0
leaq -0xe8(%rbp), %rdi
callq 0x31a0
leaq -0x178(%rbp), %rdi
callq 0x31a0
testb $0x1, -0x17a(%rbp)
jne 0x90cb
jmp 0x90d7
leaq -0x179(%rbp), %rdi
callq 0x32a0
leaq -0x108(%rbp), %rdi
callq 0x31a0
leaq -0x128(%rbp), %rdi
callq 0x31a0
leaq -0x148(%rbp), %rdi
callq 0x31a0
testb $0x1, -0x31(%rbp)
je 0xab0c
cmpl $0x0, -0x24(%rbp)
jg 0x911c
movl -0x20(%rbp), %eax
movl -0x18(%rbp), %ecx
addl -0x1c(%rbp), %ecx
cmpl %ecx, %eax
je 0x9411
movl -0x20(%rbp), %esi
decl %esi
leaq -0x240(%rbp), %rdi
movq %rdi, -0x1068(%rbp)
callq 0x1e700
movq -0x1068(%rbp), %rdx
leaq 0x50014(%rip), %rsi     # 0x59156
leaq -0x220(%rbp), %rdi
callq 0x1e930
jmp 0x9150
leaq 0x4ed12(%rip), %rdx     # 0x57e69
leaq -0x200(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x1e560
jmp 0x916c
movl -0x24(%rbp), %esi
leaq -0x260(%rbp), %rdi
callq 0x1e700
jmp 0x917d
leaq -0x1e0(%rbp), %rdi
leaq -0x200(%rbp), %rsi
leaq -0x260(%rbp), %rdx
callq 0x1e5b0
jmp 0x9199
movq 0x28(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x32e0
jmp 0x91ab
leaq -0x1e0(%rbp), %rdi
callq 0x31a0
leaq -0x260(%rbp), %rdi
callq 0x31a0
leaq -0x200(%rbp), %rdi
callq 0x31a0
leaq -0x220(%rbp), %rdi
callq 0x31a0
leaq -0x240(%rbp), %rdi
callq 0x31a0
jmp 0x9411
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x935d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9351
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9345
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x932c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9320
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9314
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9308
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x92fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x92f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x92e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x31a0
leaq -0x1c0(%rbp), %rdi
callq 0x31a0
leaq -0xa8(%rbp), %rdi
callq 0x31a0
leaq -0xc8(%rbp), %rdi
callq 0x31a0
leaq -0x1a0(%rbp), %rdi
callq 0x31a0
leaq -0xe8(%rbp), %rdi
callq 0x31a0
leaq -0x178(%rbp), %rdi
callq 0x31a0
testb $0x1, -0x17a(%rbp)
jne 0x9337
jmp 0x9343
leaq -0x179(%rbp), %rdi
callq 0x32a0
jmp 0x9345
leaq -0x108(%rbp), %rdi
callq 0x31a0
leaq -0x128(%rbp), %rdi
callq 0x31a0
leaq -0x148(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9400
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x93f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x93e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x93dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x31a0
leaq -0x260(%rbp), %rdi
callq 0x31a0
leaq -0x200(%rbp), %rdi
callq 0x31a0
leaq -0x220(%rbp), %rdi
callq 0x31a0
leaq -0x240(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq 0x38(%rbp), %rax
movq %rax, -0x1078(%rbp)
leaq -0x281(%rbp), %rdi
movq %rdi, -0x1070(%rbp)
callq 0x3430
movq -0x1070(%rbp), %rdx
leaq 0x4ea2f(%rip), %rsi     # 0x57e6c
leaq -0x280(%rbp), %rdi
callq 0x3320
jmp 0x944b
movq -0x1078(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x1e3c0
jmp 0x9460
leaq -0x280(%rbp), %rdi
callq 0x31a0
leaq -0x281(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x1088(%rbp)
movq 0x28(%rbp), %rdx
leaq 0x4e81d(%rip), %rsi     # 0x57cab
leaq -0x2c8(%rbp), %rdi
movq %rdi, -0x1080(%rbp)
callq 0x1e820
movq -0x1080(%rbp), %rsi
leaq 0x4e804(%rip), %rdx     # 0x57cb3
leaq -0x2a8(%rbp), %rdi
callq 0x1e560
jmp 0x94bd
movq -0x1088(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x1e3c0
jmp 0x94d2
leaq -0x2a8(%rbp), %rdi
callq 0x31a0
leaq -0x2c8(%rbp), %rdi
callq 0x31a0
movq 0x38(%rbp), %rax
movq %rax, -0x1098(%rbp)
leaq -0x2e9(%rbp), %rdi
movq %rdi, -0x1090(%rbp)
callq 0x3430
movq -0x1090(%rbp), %rdx
leaq 0x4e7a5(%rip), %rsi     # 0x57cbb
leaq -0x2e8(%rbp), %rdi
callq 0x3320
jmp 0x9524
movq -0x1098(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x1e3c0
jmp 0x9539
leaq -0x2e8(%rbp), %rdi
callq 0x31a0
leaq -0x2e9(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x10a8(%rbp)
leaq -0x311(%rbp), %rdi
movq %rdi, -0x10a0(%rbp)
callq 0x3430
movq -0x10a0(%rbp), %rdx
leaq 0x4e73e(%rip), %rsi     # 0x57cbb
leaq -0x310(%rbp), %rdi
callq 0x3320
jmp 0x958b
movq -0x10a8(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0x1e3c0
jmp 0x95a0
leaq -0x310(%rbp), %rdi
callq 0x31a0
leaq -0x311(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x10b8(%rbp)
movl -0x18(%rbp), %esi
decl %esi
leaq -0x378(%rbp), %rdi
movq %rdi, -0x10b0(%rbp)
callq 0x1e700
movq -0x10b0(%rbp), %rdx
leaq 0x4e6ee(%rip), %rsi     # 0x57cd7
leaq -0x358(%rbp), %rdi
callq 0x1e930
jmp 0x95f7
leaq 0x4e6e7(%rip), %rdx     # 0x57ce5
leaq -0x338(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x1e560
jmp 0x9613
movq -0x10b8(%rbp), %rdi
leaq -0x338(%rbp), %rsi
callq 0x1e3c0
jmp 0x9628
leaq -0x338(%rbp), %rdi
callq 0x31a0
leaq -0x358(%rbp), %rdi
callq 0x31a0
leaq -0x378(%rbp), %rdi
callq 0x31a0
movq 0x38(%rbp), %rax
movq %rax, -0x10c8(%rbp)
movl -0x1c(%rbp), %esi
decl %esi
leaq -0x3d8(%rbp), %rdi
movq %rdi, -0x10c0(%rbp)
callq 0x1e700
movq -0x10c0(%rbp), %rdx
leaq 0x4e65a(%rip), %rsi     # 0x57cd7
leaq -0x3b8(%rbp), %rdi
callq 0x1e930
jmp 0x968b
leaq 0x4e65c(%rip), %rdx     # 0x57cee
leaq -0x398(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
callq 0x1e560
jmp 0x96a7
movq -0x10c8(%rbp), %rdi
leaq -0x398(%rbp), %rsi
callq 0x1e3c0
jmp 0x96bc
leaq -0x398(%rbp), %rdi
callq 0x31a0
leaq -0x3b8(%rbp), %rdi
callq 0x31a0
leaq -0x3d8(%rbp), %rdi
callq 0x31a0
movq 0x38(%rbp), %rax
movq %rax, -0x10d8(%rbp)
leaq -0x3f9(%rbp), %rdi
movq %rdi, -0x10d0(%rbp)
callq 0x3430
movq -0x10d0(%rbp), %rdx
leaq 0x4e7a7(%rip), %rsi     # 0x57eb3
leaq -0x3f8(%rbp), %rdi
callq 0x3320
jmp 0x971a
movq -0x10d8(%rbp), %rdi
leaq -0x3f8(%rbp), %rsi
callq 0x1e3c0
jmp 0x972f
leaq -0x3f8(%rbp), %rdi
callq 0x31a0
leaq -0x3f9(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x10e8(%rbp)
movq 0x28(%rbp), %rdx
leaq 0x4e779(%rip), %rsi     # 0x57ed6
leaq -0x440(%rbp), %rdi
movq %rdi, -0x10e0(%rbp)
callq 0x1e820
movq -0x10e0(%rbp), %rsi
leaq 0x4eaa4(%rip), %rdx     # 0x58222
leaq -0x420(%rbp), %rdi
callq 0x1e560
jmp 0x978c
movq -0x10e8(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0x1e3c0
jmp 0x97a1
leaq -0x420(%rbp), %rdi
callq 0x31a0
leaq -0x440(%rbp), %rdi
callq 0x31a0
movq 0x38(%rbp), %rax
movq %rax, -0x10f8(%rbp)
movl -0x20(%rbp), %esi
decl %esi
leaq -0x4e0(%rbp), %rdi
movq %rdi, -0x10f0(%rbp)
callq 0x1e700
movq -0x10f0(%rbp), %rdx
leaq 0x4e529(%rip), %rsi     # 0x57d13
leaq -0x4c0(%rbp), %rdi
callq 0x1e930
jmp 0x97f8
leaq 0x4ceab(%rip), %rdx     # 0x566aa
leaq -0x4a0(%rbp), %rdi
leaq -0x4c0(%rbp), %rsi
callq 0x1e560
jmp 0x9814
movl -0x24(%rbp), %esi
leaq -0x500(%rbp), %rdi
callq 0x1e700
jmp 0x9825
leaq -0x480(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
leaq -0x500(%rbp), %rdx
callq 0x1e5b0
jmp 0x9841
leaq 0x4e6d0(%rip), %rdx     # 0x57f18
leaq -0x460(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x1e560
jmp 0x985d
movq -0x10f8(%rbp), %rdi
leaq -0x460(%rbp), %rsi
callq 0x1e3c0
jmp 0x9872
leaq -0x460(%rbp), %rdi
callq 0x31a0
leaq -0x480(%rbp), %rdi
callq 0x31a0
leaq -0x500(%rbp), %rdi
callq 0x31a0
leaq -0x4a0(%rbp), %rdi
callq 0x31a0
leaq -0x4c0(%rbp), %rdi
callq 0x31a0
leaq -0x4e0(%rbp), %rdi
callq 0x31a0
movq 0x38(%rbp), %rax
movq %rax, -0x1108(%rbp)
movl -0x20(%rbp), %esi
decl %esi
leaq -0x5a0(%rbp), %rdi
movq %rdi, -0x1100(%rbp)
callq 0x1e700
movq -0x1100(%rbp), %rdx
leaq 0x4e428(%rip), %rsi     # 0x57d13
leaq -0x580(%rbp), %rdi
callq 0x1e930
jmp 0x98f9
leaq 0x4cdaa(%rip), %rdx     # 0x566aa
leaq -0x560(%rbp), %rdi
leaq -0x580(%rbp), %rsi
callq 0x1e560
jmp 0x9915
movl -0x24(%rbp), %esi
leaq -0x5c0(%rbp), %rdi
callq 0x1e700
jmp 0x9926
leaq -0x540(%rbp), %rdi
leaq -0x560(%rbp), %rsi
leaq -0x5c0(%rbp), %rdx
callq 0x1e5b0
jmp 0x9942
leaq 0x4e3db(%rip), %rdx     # 0x57d24
leaq -0x520(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0x1e560
jmp 0x995e
movq -0x1108(%rbp), %rdi
leaq -0x520(%rbp), %rsi
callq 0x1e3c0
jmp 0x9973
leaq -0x520(%rbp), %rdi
callq 0x31a0
leaq -0x540(%rbp), %rdi
callq 0x31a0
leaq -0x5c0(%rbp), %rdi
callq 0x31a0
leaq -0x560(%rbp), %rdi
callq 0x31a0
leaq -0x580(%rbp), %rdi
callq 0x31a0
leaq -0x5a0(%rbp), %rdi
callq 0x31a0
movq 0x38(%rbp), %rax
movq %rax, -0x1118(%rbp)
leaq -0x5e1(%rbp), %rdi
movq %rdi, -0x1110(%rbp)
callq 0x3430
movq -0x1110(%rbp), %rdx
leaq 0x4e34a(%rip), %rsi     # 0x57d31
leaq -0x5e0(%rbp), %rdi
callq 0x3320
jmp 0x99f5
movq -0x1118(%rbp), %rdi
leaq -0x5e0(%rbp), %rsi
callq 0x1e3c0
jmp 0x9a0a
leaq -0x5e0(%rbp), %rdi
callq 0x31a0
leaq -0x5e1(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x1128(%rbp)
leaq -0x609(%rbp), %rdi
movq %rdi, -0x1120(%rbp)
callq 0x3430
movq -0x1120(%rbp), %rdx
leaq 0x4fb93(%rip), %rsi     # 0x595e1
leaq -0x608(%rbp), %rdi
callq 0x3320
jmp 0x9a5c
movq -0x1128(%rbp), %rdi
leaq -0x608(%rbp), %rsi
callq 0x1e3c0
jmp 0x9a71
leaq -0x608(%rbp), %rdi
callq 0x31a0
leaq -0x609(%rbp), %rdi
callq 0x32a0
movq -0x1038(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3470
movb (%rax), %al
subb $0x53, %al
leaq 0x4e484(%rip), %rcx     # 0x57f28
leaq 0x4e47b(%rip), %rax     # 0x57f26
cmoveq %rcx, %rax
movq %rax, -0x1138(%rbp)
leaq -0x631(%rbp), %rdi
movq %rdi, -0x1130(%rbp)
callq 0x3430
movq -0x1138(%rbp), %rsi
movq -0x1130(%rbp), %rdx
leaq -0x630(%rbp), %rdi
callq 0x3320
jmp 0x9ae5
leaq -0x631(%rbp), %rdi
callq 0x32a0
cmpl $0x0, -0x24(%rbp)
jle 0xa549
movq 0x38(%rbp), %rax
movq %rax, -0x1140(%rbp)
movl -0x20(%rbp), %esi
decl %esi
leaq -0x698(%rbp), %rdi
callq 0x1e700
jmp 0x9b19
leaq 0x4e410(%rip), %rsi     # 0x57f30
leaq -0x678(%rbp), %rdi
leaq -0x698(%rbp), %rdx
callq 0x1e930
jmp 0x9b35
leaq 0x4e401(%rip), %rdx     # 0x57f3d
leaq -0x658(%rbp), %rdi
leaq -0x678(%rbp), %rsi
callq 0x1e560
jmp 0x9b51
movq -0x1140(%rbp), %rdi
leaq -0x658(%rbp), %rsi
callq 0x1e3c0
jmp 0x9b66
leaq -0x658(%rbp), %rdi
callq 0x31a0
leaq -0x678(%rbp), %rdi
callq 0x31a0
leaq -0x698(%rbp), %rdi
callq 0x31a0
movq 0x38(%rbp), %rax
movq %rax, -0x1148(%rbp)
leaq 0x4e3b3(%rip), %rsi     # 0x57f4f
leaq -0x718(%rbp), %rdi
leaq -0x630(%rbp), %rdx
callq 0x1e820
jmp 0x9bb1
leaq 0x4e6a3(%rip), %rdx     # 0x5825b
leaq -0x6f8(%rbp), %rdi
leaq -0x718(%rbp), %rsi
callq 0x1e560
jmp 0x9bcd
leaq -0x6d8(%rbp), %rdi
leaq -0x6f8(%rbp), %rsi
leaq -0x630(%rbp), %rdx
callq 0x1e980
jmp 0x9be9
leaq 0x4e376(%rip), %rdx     # 0x57f66
leaq -0x6b8(%rbp), %rdi
leaq -0x6d8(%rbp), %rsi
callq 0x1e560
jmp 0x9c05
movq -0x1148(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
callq 0x1e3c0
jmp 0x9c1a
leaq -0x6b8(%rbp), %rdi
callq 0x31a0
leaq -0x6d8(%rbp), %rdi
callq 0x31a0
leaq -0x6f8(%rbp), %rdi
callq 0x31a0
leaq -0x718(%rbp), %rdi
callq 0x31a0
movq 0x38(%rbp), %rax
movq %rax, -0x1150(%rbp)
movl -0x20(%rbp), %esi
decl %esi
leaq -0x838(%rbp), %rdi
callq 0x1e700
jmp 0x9c68
leaq 0x4e2fe(%rip), %rsi     # 0x57f6d
leaq -0x818(%rbp), %rdi
leaq -0x838(%rbp), %rdx
callq 0x1e930
jmp 0x9c84
leaq 0x4ca1f(%rip), %rdx     # 0x566aa
leaq -0x7f8(%rbp), %rdi
leaq -0x818(%rbp), %rsi
callq 0x1e560
jmp 0x9ca0
movl -0x24(%rbp), %esi
leaq -0x858(%rbp), %rdi
callq 0x1e700
jmp 0x9cb1
leaq -0x7d8(%rbp), %rdi
leaq -0x7f8(%rbp), %rsi
leaq -0x858(%rbp), %rdx
callq 0x1e5b0
jmp 0x9ccd
leaq 0x4e2aa(%rip), %rdx     # 0x57f7e
leaq -0x7b8(%rbp), %rdi
leaq -0x7d8(%rbp), %rsi
callq 0x1e560
jmp 0x9ce9
movl -0x20(%rbp), %esi
decl %esi
leaq -0x878(%rbp), %rdi
callq 0x1e700
jmp 0x9cfc
leaq -0x798(%rbp), %rdi
leaq -0x7b8(%rbp), %rsi
leaq -0x878(%rbp), %rdx
callq 0x1e5b0
jmp 0x9d18
leaq 0x4c98b(%rip), %rdx     # 0x566aa
leaq -0x778(%rbp), %rdi
leaq -0x798(%rbp), %rsi
callq 0x1e560
jmp 0x9d34
movl -0x24(%rbp), %esi
leaq -0x898(%rbp), %rdi
callq 0x1e700
jmp 0x9d45
leaq -0x758(%rbp), %rdi
leaq -0x778(%rbp), %rsi
leaq -0x898(%rbp), %rdx
callq 0x1e5b0
jmp 0x9d61
leaq 0x4ecf5(%rip), %rdx     # 0x58a5d
leaq -0x738(%rbp), %rdi
leaq -0x758(%rbp), %rsi
callq 0x1e560
jmp 0x9d7d
movq -0x1150(%rbp), %rdi
leaq -0x738(%rbp), %rsi
callq 0x1e3c0
jmp 0x9d92
leaq -0x738(%rbp), %rdi
callq 0x31a0
leaq -0x758(%rbp), %rdi
callq 0x31a0
leaq -0x898(%rbp), %rdi
callq 0x31a0
leaq -0x778(%rbp), %rdi
callq 0x31a0
leaq -0x798(%rbp), %rdi
callq 0x31a0
leaq -0x878(%rbp), %rdi
callq 0x31a0
leaq -0x7b8(%rbp), %rdi
callq 0x31a0
leaq -0x7d8(%rbp), %rdi
callq 0x31a0
leaq -0x858(%rbp), %rdi
callq 0x31a0
leaq -0x7f8(%rbp), %rdi
callq 0x31a0
leaq -0x818(%rbp), %rdi
callq 0x31a0
leaq -0x838(%rbp), %rdi
callq 0x31a0
jmp 0xa691
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9e59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x31a0
leaq -0x281(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9e9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x31a0
leaq -0x2c8(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9edf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0x31a0
leaq -0x2e9(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9f22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x31a0
leaq -0x311(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9f85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9f79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x31a0
leaq -0x358(%rbp), %rdi
callq 0x31a0
leaq -0x378(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9fe8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x9fdc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x398(%rbp), %rdi
callq 0x31a0
leaq -0x3b8(%rbp), %rdi
callq 0x31a0
leaq -0x3d8(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa02b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x3f8(%rbp), %rdi
callq 0x31a0
leaq -0x3f9(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa06e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x420(%rbp), %rdi
callq 0x31a0
leaq -0x440(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa134
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa128
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa11c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa110
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa104
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x460(%rbp), %rdi
callq 0x31a0
leaq -0x480(%rbp), %rdi
callq 0x31a0
leaq -0x500(%rbp), %rdi
callq 0x31a0
leaq -0x4a0(%rbp), %rdi
callq 0x31a0
leaq -0x4c0(%rbp), %rdi
callq 0x31a0
leaq -0x4e0(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa1fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa1ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa1e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa1d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa1ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x520(%rbp), %rdi
callq 0x31a0
leaq -0x540(%rbp), %rdi
callq 0x31a0
leaq -0x5c0(%rbp), %rdi
callq 0x31a0
leaq -0x560(%rbp), %rdi
callq 0x31a0
leaq -0x580(%rbp), %rdi
callq 0x31a0
leaq -0x5a0(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa23d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x5e0(%rbp), %rdi
callq 0x31a0
leaq -0x5e1(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa280
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x608(%rbp), %rdi
callq 0x31a0
leaq -0x609(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x631(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xaafb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa31d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa311
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x658(%rbp), %rdi
callq 0x31a0
leaq -0x678(%rbp), %rdi
callq 0x31a0
leaq -0x698(%rbp), %rdi
callq 0x31a0
jmp 0xaafb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa3a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa394
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa388
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x6b8(%rbp), %rdi
callq 0x31a0
leaq -0x6d8(%rbp), %rdi
callq 0x31a0
leaq -0x6f8(%rbp), %rdi
callq 0x31a0
leaq -0x718(%rbp), %rdi
callq 0x31a0
jmp 0xaafb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa538
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa52c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa520
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa514
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa508
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa4fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa4f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa4e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa4d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa4cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa4c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x738(%rbp), %rdi
callq 0x31a0
leaq -0x758(%rbp), %rdi
callq 0x31a0
leaq -0x898(%rbp), %rdi
callq 0x31a0
leaq -0x778(%rbp), %rdi
callq 0x31a0
leaq -0x798(%rbp), %rdi
callq 0x31a0
leaq -0x878(%rbp), %rdi
callq 0x31a0
leaq -0x7b8(%rbp), %rdi
callq 0x31a0
leaq -0x7d8(%rbp), %rdi
callq 0x31a0
leaq -0x858(%rbp), %rdi
callq 0x31a0
leaq -0x7f8(%rbp), %rdi
callq 0x31a0
leaq -0x818(%rbp), %rdi
callq 0x31a0
leaq -0x838(%rbp), %rdi
callq 0x31a0
jmp 0xaafb
movq 0x38(%rbp), %rax
movq %rax, -0x1158(%rbp)
leaq 0x4da36(%rip), %rsi     # 0x57f91
leaq -0x918(%rbp), %rdi
leaq -0x630(%rbp), %rdx
callq 0x1e820
jmp 0xa570
leaq 0x4dce4(%rip), %rdx     # 0x5825b
leaq -0x8f8(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x1e560
jmp 0xa58c
leaq -0x8d8(%rbp), %rdi
leaq -0x8f8(%rbp), %rsi
leaq -0x630(%rbp), %rdx
callq 0x1e980
jmp 0xa5a8
leaq 0x4d9b7(%rip), %rdx     # 0x57f66
leaq -0x8b8(%rbp), %rdi
leaq -0x8d8(%rbp), %rsi
callq 0x1e560
jmp 0xa5c4
movq -0x1158(%rbp), %rdi
leaq -0x8b8(%rbp), %rsi
callq 0x1e3c0
jmp 0xa5d9
leaq -0x8b8(%rbp), %rdi
callq 0x31a0
leaq -0x8d8(%rbp), %rdi
callq 0x31a0
leaq -0x8f8(%rbp), %rdi
callq 0x31a0
leaq -0x918(%rbp), %rdi
callq 0x31a0
jmp 0xa691
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa680
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa674
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa668
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x8b8(%rbp), %rdi
callq 0x31a0
leaq -0x8d8(%rbp), %rdi
callq 0x31a0
leaq -0x8f8(%rbp), %rdi
callq 0x31a0
leaq -0x918(%rbp), %rdi
callq 0x31a0
jmp 0xaafb
movq 0x38(%rbp), %rax
movq %rax, -0x1160(%rbp)
movq 0x28(%rbp), %rsi
leaq 0x4d8fd(%rip), %rdx     # 0x57fa4
leaq -0x938(%rbp), %rdi
callq 0x1e680
jmp 0xa6b5
movq -0x1160(%rbp), %rdi
leaq -0x938(%rbp), %rsi
callq 0x1e3c0
jmp 0xa6ca
leaq -0x938(%rbp), %rdi
callq 0x31a0
movq 0x38(%rbp), %rax
movq %rax, -0x1170(%rbp)
leaq -0x959(%rbp), %rdi
movq %rdi, -0x1168(%rbp)
callq 0x3430
movq -0x1168(%rbp), %rdx
leaq 0x4d8bf(%rip), %rsi     # 0x57fc1
leaq -0x958(%rbp), %rdi
callq 0x3320
jmp 0xa710
movq -0x1170(%rbp), %rdi
leaq -0x958(%rbp), %rsi
callq 0x1e3c0
jmp 0xa725
leaq -0x958(%rbp), %rdi
callq 0x31a0
leaq -0x959(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x1180(%rbp)
leaq -0x981(%rbp), %rdi
movq %rdi, -0x1178(%rbp)
callq 0x3430
movq -0x1178(%rbp), %rdx
leaq 0x4ee78(%rip), %rsi     # 0x595e1
leaq -0x980(%rbp), %rdi
callq 0x3320
jmp 0xa777
movq -0x1180(%rbp), %rdi
leaq -0x980(%rbp), %rsi
callq 0x1e3c0
jmp 0xa78c
leaq -0x980(%rbp), %rdi
callq 0x31a0
leaq -0x981(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x1190(%rbp)
leaq -0x9a9(%rbp), %rdi
movq %rdi, -0x1188(%rbp)
callq 0x3430
movq -0x1188(%rbp), %rdx
leaq 0x4d561(%rip), %rsi     # 0x57d31
leaq -0x9a8(%rbp), %rdi
callq 0x3320
jmp 0xa7de
movq -0x1190(%rbp), %rdi
leaq -0x9a8(%rbp), %rsi
callq 0x1e3c0
jmp 0xa7f3
leaq -0x9a8(%rbp), %rdi
callq 0x31a0
leaq -0x9a9(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x11a0(%rbp)
leaq -0x9d1(%rbp), %rdi
movq %rdi, -0x1198(%rbp)
callq 0x3430
movq -0x1198(%rbp), %rdx
leaq 0x4d5a2(%rip), %rsi     # 0x57dd9
leaq -0x9d0(%rbp), %rdi
callq 0x3320
jmp 0xa845
movq -0x11a0(%rbp), %rdi
leaq -0x9d0(%rbp), %rsi
callq 0x1e3c0
jmp 0xa85a
leaq -0x9d0(%rbp), %rdi
callq 0x31a0
leaq -0x9d1(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x11b0(%rbp)
leaq -0x9f9(%rbp), %rdi
movq %rdi, -0x11a8(%rbp)
callq 0x3430
movq -0x11a8(%rbp), %rdx
leaq 0x4ed43(%rip), %rsi     # 0x595e1
leaq -0x9f8(%rbp), %rdi
callq 0x3320
jmp 0xa8ac
movq -0x11b0(%rbp), %rdi
leaq -0x9f8(%rbp), %rsi
callq 0x1e3c0
jmp 0xa8c1
leaq -0x9f8(%rbp), %rdi
callq 0x31a0
leaq -0x9f9(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x11c0(%rbp)
leaq -0xa21(%rbp), %rdi
movq %rdi, -0x11b8(%rbp)
callq 0x3430
movq -0x11b8(%rbp), %rdx
leaq 0x4bf75(%rip), %rsi     # 0x5687a
leaq -0xa20(%rbp), %rdi
callq 0x3320
jmp 0xa913
movq -0x11c0(%rbp), %rdi
leaq -0xa20(%rbp), %rsi
callq 0x1e3c0
jmp 0xa928
leaq -0xa20(%rbp), %rdi
callq 0x31a0
leaq -0xa21(%rbp), %rdi
callq 0x32a0
leaq -0x630(%rbp), %rdi
callq 0x31a0
jmp 0xab0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x938(%rbp), %rdi
callq 0x31a0
jmp 0xaafb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa9a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x958(%rbp), %rdi
callq 0x31a0
leaq -0x959(%rbp), %rdi
callq 0x32a0
jmp 0xaafb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xa9e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x980(%rbp), %rdi
callq 0x31a0
leaq -0x981(%rbp), %rdi
callq 0x32a0
jmp 0xaafb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xaa2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x9a8(%rbp), %rdi
callq 0x31a0
leaq -0x9a9(%rbp), %rdi
callq 0x32a0
jmp 0xaafb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xaa6f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x9d0(%rbp), %rdi
callq 0x31a0
leaq -0x9d1(%rbp), %rdi
callq 0x32a0
jmp 0xaafb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xaaaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x9f8(%rbp), %rdi
callq 0x31a0
leaq -0x9f9(%rbp), %rdi
callq 0x32a0
jmp 0xaafb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xaaef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xa20(%rbp), %rdi
callq 0x31a0
leaq -0xa21(%rbp), %rdi
callq 0x32a0
leaq -0x630(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq 0x38(%rbp), %rax
movq %rax, -0x11d0(%rbp)
movq 0x28(%rbp), %rdx
leaq 0x4d189(%rip), %rsi     # 0x57cab
leaq -0xa68(%rbp), %rdi
movq %rdi, -0x11c8(%rbp)
callq 0x1e820
movq -0x11c8(%rbp), %rsi
leaq 0x4e54a(%rip), %rdx     # 0x5908d
leaq -0xa48(%rbp), %rdi
callq 0x1e560
jmp 0xab51
movq -0x11d0(%rbp), %rdi
leaq -0xa48(%rbp), %rsi
callq 0x1e3c0
jmp 0xab66
leaq -0xa48(%rbp), %rdi
callq 0x31a0
leaq -0xa68(%rbp), %rdi
callq 0x31a0
movq 0x38(%rbp), %rax
movq %rax, -0x11e0(%rbp)
leaq -0xa89(%rbp), %rdi
movq %rdi, -0x11d8(%rbp)
callq 0x3430
movq -0x11d8(%rbp), %rdx
leaq 0x4d111(%rip), %rsi     # 0x57cbb
leaq -0xa88(%rbp), %rdi
callq 0x3320
jmp 0xabb8
movq -0x11e0(%rbp), %rdi
leaq -0xa88(%rbp), %rsi
callq 0x1e3c0
jmp 0xabcd
leaq -0xa88(%rbp), %rdi
callq 0x31a0
leaq -0xa89(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x11f0(%rbp)
leaq -0xab1(%rbp), %rdi
movq %rdi, -0x11e8(%rbp)
callq 0x3430
movq -0x11e8(%rbp), %rdx
leaq 0x4d0aa(%rip), %rsi     # 0x57cbb
leaq -0xab0(%rbp), %rdi
callq 0x3320
jmp 0xac1f
movq -0x11f0(%rbp), %rdi
leaq -0xab0(%rbp), %rsi
callq 0x1e3c0
jmp 0xac34
leaq -0xab0(%rbp), %rdi
callq 0x31a0
leaq -0xab1(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x1200(%rbp)
movl -0x18(%rbp), %esi
decl %esi
leaq -0xb18(%rbp), %rdi
movq %rdi, -0x11f8(%rbp)
callq 0x1e700
movq -0x11f8(%rbp), %rdx
leaq 0x4d05a(%rip), %rsi     # 0x57cd7
leaq -0xaf8(%rbp), %rdi
callq 0x1e930
jmp 0xac8b
leaq 0x4d053(%rip), %rdx     # 0x57ce5
leaq -0xad8(%rbp), %rdi
leaq -0xaf8(%rbp), %rsi
callq 0x1e560
jmp 0xaca7
movq -0x1200(%rbp), %rdi
leaq -0xad8(%rbp), %rsi
callq 0x1e3c0
jmp 0xacbc
leaq -0xad8(%rbp), %rdi
callq 0x31a0
leaq -0xaf8(%rbp), %rdi
callq 0x31a0
leaq -0xb18(%rbp), %rdi
callq 0x31a0
movq 0x38(%rbp), %rax
movq %rax, -0x1210(%rbp)
movl -0x1c(%rbp), %esi
decl %esi
leaq -0xb78(%rbp), %rdi
movq %rdi, -0x1208(%rbp)
callq 0x1e700
movq -0x1208(%rbp), %rdx
leaq 0x4cfc6(%rip), %rsi     # 0x57cd7
leaq -0xb58(%rbp), %rdi
callq 0x1e930
jmp 0xad1f
leaq 0x4cfc8(%rip), %rdx     # 0x57cee
leaq -0xb38(%rbp), %rdi
leaq -0xb58(%rbp), %rsi
callq 0x1e560
jmp 0xad3b
movq -0x1210(%rbp), %rdi
leaq -0xb38(%rbp), %rsi
callq 0x1e3c0
jmp 0xad50
leaq -0xb38(%rbp), %rdi
callq 0x31a0
leaq -0xb58(%rbp), %rdi
callq 0x31a0
leaq -0xb78(%rbp), %rdi
callq 0x31a0
testb $0x1, -0x31(%rbp)
je 0xb0d9
movq 0x38(%rbp), %rax
movq %rax, -0x1220(%rbp)
movl -0x20(%rbp), %esi
decl %esi
leaq -0xc18(%rbp), %rdi
movq %rdi, -0x1218(%rbp)
callq 0x1e700
movq -0x1218(%rbp), %rdx
leaq 0x4cf64(%rip), %rsi     # 0x57d13
leaq -0xbf8(%rbp), %rdi
callq 0x1e930
jmp 0xadbd
leaq 0x4b8e6(%rip), %rdx     # 0x566aa
leaq -0xbd8(%rbp), %rdi
leaq -0xbf8(%rbp), %rsi
callq 0x1e560
jmp 0xadd9
movl -0x24(%rbp), %esi
leaq -0xc38(%rbp), %rdi
callq 0x1e700
jmp 0xadea
leaq -0xbb8(%rbp), %rdi
leaq -0xbd8(%rbp), %rsi
leaq -0xc38(%rbp), %rdx
callq 0x1e5b0
jmp 0xae06
leaq 0x4d1f3(%rip), %rdx     # 0x58000
leaq -0xb98(%rbp), %rdi
leaq -0xbb8(%rbp), %rsi
callq 0x1e560
jmp 0xae22
movq -0x1220(%rbp), %rdi
leaq -0xb98(%rbp), %rsi
callq 0x1e3c0
jmp 0xae37
leaq -0xb98(%rbp), %rdi
callq 0x31a0
leaq -0xbb8(%rbp), %rdi
callq 0x31a0
leaq -0xc38(%rbp), %rdi
callq 0x31a0
leaq -0xbd8(%rbp), %rdi
callq 0x31a0
leaq -0xbf8(%rbp), %rdi
callq 0x31a0
leaq -0xc18(%rbp), %rdi
callq 0x31a0
jmp 0xb2cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xaeb6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xa48(%rbp), %rdi
callq 0x31a0
leaq -0xa68(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xaef9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xa88(%rbp), %rdi
callq 0x31a0
leaq -0xa89(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xaf3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xab0(%rbp), %rdi
callq 0x31a0
leaq -0xab1(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xaf9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xaf93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xad8(%rbp), %rdi
callq 0x31a0
leaq -0xaf8(%rbp), %rdi
callq 0x31a0
leaq -0xb18(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb002
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xaff6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xb38(%rbp), %rdi
callq 0x31a0
leaq -0xb58(%rbp), %rdi
callq 0x31a0
leaq -0xb78(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb0c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb0bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb0b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb0a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb098
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xb98(%rbp), %rdi
callq 0x31a0
leaq -0xbb8(%rbp), %rdi
callq 0x31a0
leaq -0xc38(%rbp), %rdi
callq 0x31a0
leaq -0xbd8(%rbp), %rdi
callq 0x31a0
leaq -0xbf8(%rbp), %rdi
callq 0x31a0
leaq -0xc18(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq 0x38(%rbp), %rax
movq %rax, -0x1230(%rbp)
movl -0x20(%rbp), %esi
decl %esi
leaq -0xc98(%rbp), %rdi
movq %rdi, -0x1228(%rbp)
callq 0x1e700
movq -0x1228(%rbp), %rdx
leaq 0x4cc09(%rip), %rsi     # 0x57d13
leaq -0xc78(%rbp), %rdi
callq 0x1e930
jmp 0xb118
leaq 0x4ceec(%rip), %rdx     # 0x5800b
leaq -0xc58(%rbp), %rdi
leaq -0xc78(%rbp), %rsi
callq 0x1e560
jmp 0xb134
movq -0x1230(%rbp), %rdi
leaq -0xc58(%rbp), %rsi
callq 0x1e3c0
jmp 0xb149
leaq -0xc58(%rbp), %rdi
callq 0x31a0
leaq -0xc78(%rbp), %rdi
callq 0x31a0
leaq -0xc98(%rbp), %rdi
callq 0x31a0
movq 0x38(%rbp), %rax
movq %rax, -0x1240(%rbp)
movl -0x20(%rbp), %esi
decl %esi
leaq -0xcf8(%rbp), %rdi
movq %rdi, -0x1238(%rbp)
callq 0x1e700
movq -0x1238(%rbp), %rdx
leaq 0x4cb75(%rip), %rsi     # 0x57d13
leaq -0xcd8(%rbp), %rdi
callq 0x1e930
jmp 0xb1ac
leaq 0x4ce65(%rip), %rdx     # 0x58018
leaq -0xcb8(%rbp), %rdi
leaq -0xcd8(%rbp), %rsi
callq 0x1e560
jmp 0xb1c8
movq -0x1240(%rbp), %rdi
leaq -0xcb8(%rbp), %rsi
callq 0x1e3c0
jmp 0xb1dd
leaq -0xcb8(%rbp), %rdi
callq 0x31a0
leaq -0xcd8(%rbp), %rdi
callq 0x31a0
leaq -0xcf8(%rbp), %rdi
callq 0x31a0
jmp 0xb2cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb258
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb24c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xc58(%rbp), %rdi
callq 0x31a0
leaq -0xc78(%rbp), %rdi
callq 0x31a0
leaq -0xc98(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb2bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb2af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xcb8(%rbp), %rdi
callq 0x31a0
leaq -0xcd8(%rbp), %rdi
callq 0x31a0
leaq -0xcf8(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq 0x38(%rbp), %rax
movq %rax, -0x1250(%rbp)
leaq -0xd19(%rbp), %rdi
movq %rdi, -0x1248(%rbp)
callq 0x3430
movq -0x1248(%rbp), %rdx
leaq 0x4ca39(%rip), %rsi     # 0x57d31
leaq -0xd18(%rbp), %rdi
callq 0x3320
jmp 0xb306
movq -0x1250(%rbp), %rdi
leaq -0xd18(%rbp), %rsi
callq 0x1e3c0
jmp 0xb31b
leaq -0xd18(%rbp), %rdi
callq 0x31a0
leaq -0xd19(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x1260(%rbp)
leaq -0xd41(%rbp), %rdi
movq %rdi, -0x1258(%rbp)
callq 0x3430
movq -0x1258(%rbp), %rdx
leaq 0x4e282(%rip), %rsi     # 0x595e1
leaq -0xd40(%rbp), %rdi
callq 0x3320
jmp 0xb36d
movq -0x1260(%rbp), %rdi
leaq -0xd40(%rbp), %rsi
callq 0x1e3c0
jmp 0xb382
leaq -0xd40(%rbp), %rdi
callq 0x31a0
leaq -0xd41(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x1270(%rbp)
leaq -0xd69(%rbp), %rdi
movq %rdi, -0x1268(%rbp)
callq 0x3430
movq -0x1268(%rbp), %rdx
leaq 0x4cc60(%rip), %rsi     # 0x58026
leaq -0xd68(%rbp), %rdi
callq 0x3320
jmp 0xb3d4
movq -0x1270(%rbp), %rdi
leaq -0xd68(%rbp), %rsi
callq 0x1e3c0
jmp 0xb3e9
leaq -0xd68(%rbp), %rdi
callq 0x31a0
leaq -0xd69(%rbp), %rdi
callq 0x32a0
movq -0x1038(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3470
movq -0x1038(%rbp), %rdi
movsbl (%rax), %eax
cmpl $0x53, %eax
sete %al
andb $0x1, %al
movb %al, -0xd6a(%rbp)
movl $0x0, -0xd70(%rbp)
leaq 0x4c176(%rip), %rsi     # 0x575b0
callq 0x30b0
cmpl $0x0, %eax
jne 0xb531
movl -0x18(%rbp), %edi
movl -0x1c(%rbp), %esi
movq 0x38(%rbp), %r9
leaq -0x48(%rbp), %rdx
leaq -0x38(%rbp), %rcx
leaq -0x3c(%rbp), %r8
callq 0x2ef50
jmp 0xbaa9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb49a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xd18(%rbp), %rdi
callq 0x31a0
leaq -0xd19(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb4dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xd40(%rbp), %rdi
callq 0x31a0
leaq -0xd41(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xb520
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xd68(%rbp), %rdi
callq 0x31a0
leaq -0xd69(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq -0x1038(%rbp), %rdi
leaq 0x4c06d(%rip), %rsi     # 0x575ac
callq 0x30b0
cmpl $0x0, %eax
jne 0xb571
movl -0x18(%rbp), %edi
movl -0x1c(%rbp), %esi
movq 0x30(%rbp), %r9
movq 0x38(%rbp), %rax
leaq -0x48(%rbp), %rdx
leaq -0x38(%rbp), %rcx
leaq -0x3c(%rbp), %r8
movq %rax, (%rsp)
callq 0x2f830
jmp 0xbaa7
movq -0x1038(%rbp), %rdi
leaq 0x4c03d(%rip), %rsi     # 0x575bc
callq 0x30b0
cmpl $0x0, %eax
jne 0xb5cc
movl -0x18(%rbp), %edi
movl -0x1c(%rbp), %esi
movq 0x30(%rbp), %r11
movb -0x25(%rbp), %r10b
movq 0x38(%rbp), %rax
movl $0x1, %edx
leaq -0x48(%rbp), %rcx
leaq -0x38(%rbp), %r8
leaq -0x3c(%rbp), %r9
andb $0x1, %r10b
movq %r11, (%rsp)
movzbl %r10b, %r10d
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x32550
jmp 0xbaa5
movq -0x1038(%rbp), %rdi
leaq 0x4bfea(%rip), %rsi     # 0x575c4
callq 0x30b0
cmpl $0x0, %eax
jne 0xb6af
movq -0x1058(%rbp), %rsi
movl -0x18(%rbp), %eax
movl %eax, -0x1278(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x1274(%rbp)
movq 0x30(%rbp), %rax
movq %rax, -0x1280(%rbp)
leaq -0xd90(%rbp), %rdi
movq %rdi, -0x1288(%rbp)
callq 0x3100
movq -0x1288(%rbp), %rdx
movq -0x1280(%rbp), %rcx
movl -0x1278(%rbp), %edi
movl -0x1274(%rbp), %esi
movq 0x38(%rbp), %r9
movzbl -0x25(%rbp), %r8d
movq %rsp, %rax
movq %r9, 0x20(%rax)
andl $0x1, %r8d
movl %r8d, 0x18(%rax)
leaq -0xd70(%rbp), %r8
movq %r8, 0x10(%rax)
movq %rdx, 0x8(%rax)
movq %rcx, (%rax)
movl $0x1, %edx
leaq -0x48(%rbp), %rcx
leaq -0x38(%rbp), %r8
leaq -0x3c(%rbp), %r9
callq 0x36400
jmp 0xb67b
leaq -0xd90(%rbp), %rdi
callq 0x31a0
jmp 0xbaa3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xd90(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq -0x1038(%rbp), %rdi
leaq 0x4bf0b(%rip), %rsi     # 0x575c8
callq 0x30b0
cmpl $0x0, %eax
jne 0xb78f
movq -0x1058(%rbp), %rsi
movl -0x18(%rbp), %eax
movl %eax, -0x1290(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x128c(%rbp)
movq 0x30(%rbp), %rax
movq %rax, -0x1298(%rbp)
leaq -0xdb0(%rbp), %rdi
movq %rdi, -0x12a0(%rbp)
callq 0x3100
movq -0x12a0(%rbp), %rdx
movq -0x1298(%rbp), %rcx
movl -0x1290(%rbp), %edi
movl -0x128c(%rbp), %esi
movq 0x38(%rbp), %r9
movzbl -0x25(%rbp), %r8d
movq %rsp, %rax
movq %r9, 0x20(%rax)
andl $0x1, %r8d
movl %r8d, 0x18(%rax)
leaq -0xd70(%rbp), %r8
movq %r8, 0x10(%rax)
movq %rdx, 0x8(%rax)
movq %rcx, (%rax)
xorl %edx, %edx
leaq -0x48(%rbp), %rcx
leaq -0x38(%rbp), %r8
leaq -0x3c(%rbp), %r9
callq 0x36400
jmp 0xb75b
leaq -0xdb0(%rbp), %rdi
callq 0x31a0
jmp 0xbaa1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xdb0(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq -0x1038(%rbp), %rdi
leaq 0x4bb87(%rip), %rsi     # 0x57324
callq 0x30b0
cmpl $0x0, %eax
jne 0xb872
movq -0x1058(%rbp), %rsi
movl -0x18(%rbp), %eax
movl %eax, -0x12a8(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x12a4(%rbp)
movq 0x30(%rbp), %rax
movq %rax, -0x12b0(%rbp)
leaq -0xdd0(%rbp), %rdi
movq %rdi, -0x12b8(%rbp)
callq 0x3100
movq -0x12b8(%rbp), %rdx
movq -0x12b0(%rbp), %rcx
movl -0x12a8(%rbp), %edi
movl -0x12a4(%rbp), %esi
movq 0x38(%rbp), %r9
movzbl -0x25(%rbp), %r8d
movq %rsp, %rax
movq %r9, 0x20(%rax)
andl $0x1, %r8d
movl %r8d, 0x18(%rax)
leaq -0xd70(%rbp), %r8
movq %r8, 0x10(%rax)
movq %rdx, 0x8(%rax)
movq %rcx, (%rax)
movl $0x1, %edx
leaq -0x48(%rbp), %rcx
leaq -0x38(%rbp), %r8
leaq -0x3c(%rbp), %r9
callq 0x3c270
jmp 0xb83e
leaq -0xdd0(%rbp), %rdi
callq 0x31a0
jmp 0xba9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xdd0(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq -0x1038(%rbp), %rdi
leaq 0x4bd4c(%rip), %rsi     # 0x575cc
callq 0x30b0
cmpl $0x0, %eax
jne 0xb952
movq -0x1058(%rbp), %rsi
movl -0x18(%rbp), %eax
movl %eax, -0x12c0(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x12bc(%rbp)
movq 0x30(%rbp), %rax
movq %rax, -0x12c8(%rbp)
leaq -0xdf0(%rbp), %rdi
movq %rdi, -0x12d0(%rbp)
callq 0x3100
movq -0x12d0(%rbp), %rdx
movq -0x12c8(%rbp), %rcx
movl -0x12c0(%rbp), %edi
movl -0x12bc(%rbp), %esi
movq 0x38(%rbp), %r9
movzbl -0x25(%rbp), %r8d
movq %rsp, %rax
movq %r9, 0x20(%rax)
andl $0x1, %r8d
movl %r8d, 0x18(%rax)
leaq -0xd70(%rbp), %r8
movq %r8, 0x10(%rax)
movq %rdx, 0x8(%rax)
movq %rcx, (%rax)
xorl %edx, %edx
leaq -0x48(%rbp), %rcx
leaq -0x38(%rbp), %r8
leaq -0x3c(%rbp), %r9
callq 0x3c270
jmp 0xb91e
leaq -0xdf0(%rbp), %rdi
callq 0x31a0
jmp 0xba9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xdf0(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movq -0x1038(%rbp), %rdi
leaq 0x4bc54(%rip), %rsi     # 0x575b4
callq 0x30b0
cmpl $0x0, %eax
jne 0xb9ad
movl -0x18(%rbp), %edi
movl -0x1c(%rbp), %esi
movq 0x30(%rbp), %r11
movb -0x25(%rbp), %r10b
movq 0x38(%rbp), %rax
movl $0x1, %edx
leaq -0x48(%rbp), %rcx
leaq -0x38(%rbp), %r8
leaq -0x3c(%rbp), %r9
andb $0x1, %r10b
movq %r11, (%rsp)
movzbl %r10b, %r10d
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x30800
jmp 0xba9b
movq -0x1038(%rbp), %rdi
leaq 0x4bbfd(%rip), %rsi     # 0x575b8
callq 0x30b0
cmpl $0x0, %eax
jne 0xba05
movl -0x18(%rbp), %edi
movl -0x1c(%rbp), %esi
movq 0x30(%rbp), %r11
movb -0x25(%rbp), %r10b
movq 0x38(%rbp), %rax
xorl %edx, %edx
leaq -0x48(%rbp), %rcx
leaq -0x38(%rbp), %r8
leaq -0x3c(%rbp), %r9
andb $0x1, %r10b
movq %r11, (%rsp)
movzbl %r10b, %r10d
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x30800
jmp 0xba99
movq -0x1038(%rbp), %rdi
leaq 0x4bbad(%rip), %rsi     # 0x575c0
callq 0x30b0
cmpl $0x0, %eax
jne 0xba5a
movl -0x18(%rbp), %edi
movl -0x1c(%rbp), %esi
movq 0x30(%rbp), %r11
movb -0x25(%rbp), %r10b
movq 0x38(%rbp), %rax
xorl %edx, %edx
leaq -0x48(%rbp), %rcx
leaq -0x38(%rbp), %r8
leaq -0x3c(%rbp), %r9
andb $0x1, %r10b
movq %r11, (%rsp)
movzbl %r10b, %r10d
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x32550
jmp 0xba97
movq 0x5a567(%rip), %rdi     # 0x65fc8
leaq 0x4c5de(%rip), %rsi     # 0x58046
callq 0x3250
movq -0x1038(%rbp), %rsi
movq %rax, %rdi
callq 0x3210
movq %rax, %rdi
movq 0x5a532(%rip), %rsi     # 0x65fb8
callq 0x3280
movl $0x1, -0x14(%rbp)
jmp 0xc918
jmp 0xba99
jmp 0xba9b
jmp 0xba9d
jmp 0xba9f
jmp 0xbaa1
jmp 0xbaa3
jmp 0xbaa5
jmp 0xbaa7
jmp 0xbaa9
testb $0x1, -0x31(%rbp)
je 0xbae4
movq 0x30(%rbp), %rdi
callq 0x1e9d0
testb $0x1, %al
jne 0xbae4
movq -0x48(%rbp), %rdi
movl -0x38(%rbp), %eax
subl $0x1, %eax
cltq
shlq $0x3, %rax
addq %rax, %rdi
movl -0x3c(%rbp), %esi
movq 0x30(%rbp), %rdx
callq 0x2e880
movq 0x30(%rbp), %rdi
callq 0x1e9f0
movq -0x48(%rbp), %rdi
movl -0x38(%rbp), %esi
movl -0x3c(%rbp), %edx
movq 0x38(%rbp), %rcx
movl $0x1, %r8d
callq 0x2eac0
leaq -0xe11(%rbp), %rdi
movq %rdi, -0x12d8(%rbp)
callq 0x3430
movq -0x12d8(%rbp), %rdx
leaq 0x4dac3(%rip), %rsi     # 0x595e1
leaq -0xe10(%rbp), %rdi
callq 0x3320
jmp 0xbb2c
leaq -0xe11(%rbp), %rdi
callq 0x32a0
movq 0x30(%rbp), %rdi
callq 0x1e9d0
testb $0x1, %al
jne 0xbe3d
movl -0x3c(%rbp), %esi
movq 0x30(%rbp), %rdx
leaq -0xe20(%rbp), %rdi
callq 0x2e880
jmp 0xbb5e
movl -0x3c(%rbp), %eax
subl $0x1, %eax
movl %eax, -0xe24(%rbp)
cmpl $0x0, -0xe24(%rbp)
jl 0xbc31
movq -0xe20(%rbp), %rdi
movslq -0xe24(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rdi
leaq 0x4c4cd(%rip), %rsi     # 0x58060
callq 0x1e4a0
movb %al, -0x12d9(%rbp)
jmp 0xbba0
movb -0x12d9(%rbp), %al
testb $0x1, %al
jne 0xbbac
jmp 0xbbbc
leaq 0x4d0aa(%rip), %rax     # 0x58c5d
movq %rax, -0x12e8(%rbp)
jmp 0xbbcc
leaq 0x4d414(%rip), %rax     # 0x58fd7
movq %rax, -0x12e8(%rbp)
jmp 0xbbcc
movq -0x12e8(%rbp), %rsi
leaq -0xe10(%rbp), %rdi
callq 0x3230
jmp 0xbbe1
jmp 0xbbe3
movl -0xe24(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xe24(%rbp)
jmp 0xbb6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xe11(%rbp), %rdi
callq 0x32a0
jmp 0xc927
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xc90a
movq 0x38(%rbp), %rax
movq %rax, -0x12f8(%rbp)
leaq -0xe49(%rbp), %rdi
movq %rdi, -0x12f0(%rbp)
callq 0x3430
movq -0x12f0(%rbp), %rdx
leaq 0x4d984(%rip), %rsi     # 0x595e1
leaq -0xe48(%rbp), %rdi
callq 0x3320
jmp 0xbc6b
movq -0x12f8(%rbp), %rdi
leaq -0xe48(%rbp), %rsi
callq 0x1e3c0
jmp 0xbc80
leaq -0xe48(%rbp), %rdi
callq 0x31a0
leaq -0xe49(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x1308(%rbp)
leaq -0xe71(%rbp), %rdi
movq %rdi, -0x1300(%rbp)
callq 0x3430
movq -0x1300(%rbp), %rdx
leaq 0x4c3a1(%rip), %rsi     # 0x58065
leaq -0xe70(%rbp), %rdi
callq 0x3320
jmp 0xbcd2
movq -0x1308(%rbp), %rdi
leaq -0xe70(%rbp), %rsi
callq 0x1e3c0
jmp 0xbce7
leaq -0xe70(%rbp), %rdi
callq 0x31a0
leaq -0xe71(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x1310(%rbp)
leaq 0x4c3a8(%rip), %rsi     # 0x580b9
leaq -0xeb8(%rbp), %rdi
leaq -0xe10(%rbp), %rdx
callq 0x1e820
jmp 0xbd26
leaq 0x4c3ca(%rip), %rdx     # 0x580f7
leaq -0xe98(%rbp), %rdi
leaq -0xeb8(%rbp), %rsi
callq 0x1e560
jmp 0xbd42
movq -0x1310(%rbp), %rdi
leaq -0xe98(%rbp), %rsi
callq 0x1e3c0
jmp 0xbd57
leaq -0xe98(%rbp), %rdi
callq 0x31a0
leaq -0xeb8(%rbp), %rdi
callq 0x31a0
jmp 0xbe3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xbda6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xe48(%rbp), %rdi
callq 0x31a0
leaq -0xe49(%rbp), %rdi
callq 0x32a0
jmp 0xc90a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xbde9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xe70(%rbp), %rdi
callq 0x31a0
leaq -0xe71(%rbp), %rdi
callq 0x32a0
jmp 0xc90a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xbe2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xe98(%rbp), %rdi
callq 0x31a0
leaq -0xeb8(%rbp), %rdi
callq 0x31a0
jmp 0xc90a
movq 0x38(%rbp), %rax
movq %rax, -0x1320(%rbp)
leaq -0xed9(%rbp), %rdi
movq %rdi, -0x1318(%rbp)
callq 0x3430
movq -0x1318(%rbp), %rdx
leaq 0x4c2a1(%rip), %rsi     # 0x5810a
leaq -0xed8(%rbp), %rdi
callq 0x3320
jmp 0xbe77
movq -0x1320(%rbp), %rdi
leaq -0xed8(%rbp), %rsi
callq 0x1e3c0
jmp 0xbe8c
leaq -0xed8(%rbp), %rdi
callq 0x31a0
leaq -0xed9(%rbp), %rdi
callq 0x32a0
movq -0x1048(%rbp), %rdi
leaq 0x4b65c(%rip), %rsi     # 0x5750e
callq 0x30b0
cmpl $0x0, %eax
jne 0xbfae
movq -0x1058(%rbp), %rsi
movq -0x48(%rbp), %rax
movq %rax, -0x1328(%rbp)
leaq -0xf00(%rbp), %rdi
callq 0x3100
jmp 0xbee0
movq -0x1328(%rbp), %rdi
movl -0x38(%rbp), %edx
movl -0x3c(%rbp), %ecx
movl -0x20(%rbp), %r8d
movl -0x24(%rbp), %r9d
movq 0x38(%rbp), %r11
movq 0x40(%rbp), %rbx
movq 0x48(%rbp), %r14
movzbl -0x31(%rbp), %esi
movzbl -0xd6a(%rbp), %r10d
movq %rsp, %rax
movq %r14, 0x20(%rax)
movq %rbx, 0x18(%rax)
movq %r11, 0x10(%rax)
andl $0x1, %r10d
movl %r10d, 0x8(%rax)
andl $0x1, %esi
movl %esi, (%rax)
leaq -0xf00(%rbp), %rsi
callq 0x4ef50
jmp 0xbf37
leaq -0xf00(%rbp), %rdi
callq 0x31a0
jmp 0xc184
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xbf7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xed8(%rbp), %rdi
callq 0x31a0
leaq -0xed9(%rbp), %rdi
callq 0x32a0
jmp 0xc90a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xf00(%rbp), %rdi
callq 0x31a0
jmp 0xc90a
movq -0x1048(%rbp), %rdi
leaq 0x4b555(%rip), %rsi     # 0x57511
callq 0x30b0
cmpl $0x0, %eax
jne 0xc075
movq -0x1058(%rbp), %rsi
movq -0x48(%rbp), %rax
movq %rax, -0x1330(%rbp)
leaq -0xf20(%rbp), %rdi
callq 0x3100
jmp 0xbfea
movq -0x1330(%rbp), %rdi
movl -0x38(%rbp), %edx
movl -0x3c(%rbp), %ecx
movl -0x20(%rbp), %r8d
movl -0x24(%rbp), %r9d
movq 0x38(%rbp), %r11
movq 0x40(%rbp), %rbx
movq 0x48(%rbp), %r14
movzbl -0x31(%rbp), %esi
movzbl -0xd6a(%rbp), %r10d
movq %rsp, %rax
movq %r14, 0x20(%rax)
movq %rbx, 0x18(%rax)
movq %r11, 0x10(%rax)
andl $0x1, %r10d
movl %r10d, 0x8(%rax)
andl $0x1, %esi
movl %esi, (%rax)
leaq -0xf20(%rbp), %rsi
callq 0x511e0
jmp 0xc041
leaq -0xf20(%rbp), %rdi
callq 0x31a0
jmp 0xc182
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xf20(%rbp), %rdi
callq 0x31a0
jmp 0xc90a
movq -0x1048(%rbp), %rdi
leaq 0x4b2a6(%rip), %rsi     # 0x57329
callq 0x30b0
cmpl $0x0, %eax
jne 0xc139
movq -0x1058(%rbp), %rsi
movq -0x48(%rbp), %rax
movq %rax, -0x1338(%rbp)
leaq -0xf40(%rbp), %rdi
callq 0x3100
jmp 0xc0b1
movq -0x1338(%rbp), %rdi
movl -0x38(%rbp), %edx
movl -0x3c(%rbp), %ecx
movl -0x24(%rbp), %r9d
movq 0x38(%rbp), %r10
movq 0x40(%rbp), %r11
movq 0x48(%rbp), %rbx
movzbl -0x31(%rbp), %esi
movzbl -0xd6a(%rbp), %r8d
movq %rsp, %rax
movq %rbx, 0x20(%rax)
movq %r11, 0x18(%rax)
movq %r10, 0x10(%rax)
andl $0x1, %r8d
movl %r8d, 0x8(%rax)
andl $0x1, %esi
movl %esi, (%rax)
leaq -0xf40(%rbp), %rsi
leaq -0x20(%rbp), %r8
callq 0x47040
jmp 0xc108
leaq -0xf40(%rbp), %rdi
callq 0x31a0
jmp 0xc180
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xf40(%rbp), %rdi
callq 0x31a0
jmp 0xc90a
movq 0x59e88(%rip), %rdi     # 0x65fc8
leaq 0x4bfe1(%rip), %rsi     # 0x58128
callq 0x3250
movq %rax, -0x1340(%rbp)
jmp 0xc155
movq -0x1340(%rbp), %rdi
movq 0x59e55(%rip), %rsi     # 0x65fb8
callq 0x3280
jmp 0xc16a
movl $0x1, -0x14(%rbp)
movl $0x1, -0xf44(%rbp)
jmp 0xc8fc
jmp 0xc182
jmp 0xc184
movq 0x38(%rbp), %rax
movq %rax, -0x1350(%rbp)
leaq -0xf69(%rbp), %rdi
movq %rdi, -0x1348(%rbp)
callq 0x3430
movq -0x1348(%rbp), %rdx
leaq 0x4bb81(%rip), %rsi     # 0x57d31
leaq -0xf68(%rbp), %rdi
callq 0x3320
jmp 0xc1be
movq -0x1350(%rbp), %rdi
leaq -0xf68(%rbp), %rsi
callq 0x1e3c0
jmp 0xc1d3
leaq -0xf68(%rbp), %rdi
callq 0x31a0
leaq -0xf69(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x1360(%rbp)
leaq -0xf91(%rbp), %rdi
movq %rdi, -0x1358(%rbp)
callq 0x3430
movq -0x1358(%rbp), %rdx
leaq 0x4bf2f(%rip), %rsi     # 0x58146
leaq -0xf90(%rbp), %rdi
callq 0x3320
jmp 0xc225
movq -0x1360(%rbp), %rdi
leaq -0xf90(%rbp), %rsi
callq 0x1e3c0
jmp 0xc23a
leaq -0xf90(%rbp), %rdi
callq 0x31a0
leaq -0xf91(%rbp), %rdi
callq 0x32a0
movq 0x38(%rbp), %rax
movq %rax, -0x1370(%rbp)
leaq -0xfb9(%rbp), %rdi
movq %rdi, -0x1368(%rbp)
callq 0x3430
movq -0x1368(%rbp), %rdx
leaq 0x4d363(%rip), %rsi     # 0x595e1
leaq -0xfb8(%rbp), %rdi
callq 0x3320
jmp 0xc28c
movq -0x1370(%rbp), %rdi
leaq -0xfb8(%rbp), %rsi
callq 0x1e3c0
jmp 0xc2a1
leaq -0xfb8(%rbp), %rdi
callq 0x31a0
leaq -0xfb9(%rbp), %rdi
callq 0x32a0
movq 0x59d08(%rip), %rdi     # 0x65fc8
movq 0x59cf1(%rip), %rsi     # 0x65fb8
callq 0x3280
jmp 0xc2ce
movq 0x59cf3(%rip), %rdi     # 0x65fc8
leaq 0x4c129(%rip), %rsi     # 0x58405
callq 0x3250
movq %rax, -0x1378(%rbp)
jmp 0xc2ea
movq -0x1378(%rbp), %rdi
movq 0x28(%rbp), %rsi
callq 0x3210
movq %rax, -0x1380(%rbp)
jmp 0xc303
movq -0x1380(%rbp), %rdi
leaq 0x4bae1(%rip), %rsi     # 0x57df2
callq 0x3250
movq %rax, -0x1388(%rbp)
jmp 0xc31f
movq -0x1388(%rbp), %rdi
movq 0x59c8b(%rip), %rsi     # 0x65fb8
callq 0x3280
jmp 0xc334
movq 0x59c8d(%rip), %rdi     # 0x65fc8
leaq 0x4babe(%rip), %rsi     # 0x57e00
callq 0x3250
movq %rax, -0x1390(%rbp)
jmp 0xc350
movq -0x1390(%rbp), %rdi
movl -0x18(%rbp), %esi
decl %esi
callq 0x3410
movq %rax, -0x1398(%rbp)
jmp 0xc36a
movq -0x1398(%rbp), %rdi
leaq 0x4ba98(%rip), %rsi     # 0x57e10
callq 0x3250
movq %rax, -0x13a0(%rbp)
jmp 0xc386
movq -0x13a0(%rbp), %rdi
movl -0x1c(%rbp), %esi
decl %esi
callq 0x3410
movq %rax, -0x13a8(%rbp)
jmp 0xc3a0
movq -0x13a8(%rbp), %rdi
leaq 0x4ba6c(%rip), %rsi     # 0x57e1a
callq 0x3250
movq %rax, -0x13b0(%rbp)
jmp 0xc3bc
movq -0x13b0(%rbp), %rdi
movq 0x59bee(%rip), %rsi     # 0x65fb8
callq 0x3280
jmp 0xc3d1
testb $0x1, -0x31(%rbp)
je 0xc6fa
movq 0x59be6(%rip), %rdi     # 0x65fc8
leaq 0x4ba3f(%rip), %rsi     # 0x57e28
callq 0x3250
movq %rax, -0x13b8(%rbp)
jmp 0xc3f7
movq -0x13b8(%rbp), %rdi
movl -0x20(%rbp), %esi
decl %esi
callq 0x3410
movq %rax, -0x13c0(%rbp)
jmp 0xc411
movq -0x13c0(%rbp), %rdi
leaq 0x4a28b(%rip), %rsi     # 0x566aa
callq 0x3250
movq %rax, -0x13c8(%rbp)
jmp 0xc42d
movq -0x13c8(%rbp), %rdi
movl -0x24(%rbp), %esi
callq 0x3410
movq %rax, -0x13d0(%rbp)
jmp 0xc445
movq -0x13d0(%rbp), %rdi
leaq 0x4b9c9(%rip), %rsi     # 0x57e1c
callq 0x3250
movq %rax, -0x13d8(%rbp)
jmp 0xc461
movq -0x13d8(%rbp), %rdi
movq 0x59b49(%rip), %rsi     # 0x65fb8
callq 0x3280
jmp 0xc476
movq 0x59b4b(%rip), %rdi     # 0x65fc8
leaq 0x4bcce(%rip), %rsi     # 0x58152
callq 0x3250
movq %rax, -0x13e0(%rbp)
jmp 0xc492
movl -0x24(%rbp), %eax
movb $0x0, -0xfe2(%rbp)
movb $0x0, -0x1009(%rbp)
cmpl $0x0, %eax
jne 0xc4e0
leaq -0xfe1(%rbp), %rdi
movq %rdi, -0x13e8(%rbp)
callq 0x3430
movq -0x13e8(%rbp), %rdx
movb $0x1, -0xfe2(%rbp)
leaq 0x4d111(%rip), %rsi     # 0x595e1
leaq -0xfe0(%rbp), %rdi
callq 0x3320
jmp 0xc4de
jmp 0xc516
movl -0x24(%rbp), %esi
leaq -0x1008(%rbp), %rdi
callq 0x1e700
jmp 0xc4f1
movb $0x1, -0x1009(%rbp)
leaq 0x4bc73(%rip), %rsi     # 0x58172
leaq -0xfe0(%rbp), %rdi
leaq -0x1008(%rbp), %rdx
callq 0x1e930
jmp 0xc514
jmp 0xc516
movq -0x13e0(%rbp), %rdi
leaq -0xfe0(%rbp), %rsi
callq 0x3210
movq %rax, -0x13f0(%rbp)
jmp 0xc532
movq -0x13f0(%rbp), %rdi
movb -0xd6a(%rbp), %cl
leaq 0x4bc31(%rip), %rax     # 0x58177
leaq 0x4c034(%rip), %rsi     # 0x58581
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x3250
movq %rax, -0x13f8(%rbp)
jmp 0xc562
movq -0x13f8(%rbp), %rdi
movq 0x59a48(%rip), %rsi     # 0x65fb8
callq 0x3280
jmp 0xc577
leaq -0xfe0(%rbp), %rdi
callq 0x31a0
testb $0x1, -0x1009(%rbp)
jne 0xc58e
jmp 0xc59a
leaq -0x1008(%rbp), %rdi
callq 0x31a0
testb $0x1, -0xfe2(%rbp)
jne 0xc5a5
jmp 0xc5b1
leaq -0xfe1(%rbp), %rdi
callq 0x32a0
jmp 0xc882
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xc5e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xf68(%rbp), %rdi
callq 0x31a0
leaq -0xf69(%rbp), %rdi
callq 0x32a0
jmp 0xc90a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xc62b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xf90(%rbp), %rdi
callq 0x31a0
leaq -0xf91(%rbp), %rdi
callq 0x32a0
jmp 0xc90a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xc66e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xfb8(%rbp), %rdi
callq 0x31a0
leaq -0xfb9(%rbp), %rdi
callq 0x32a0
jmp 0xc90a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xc6de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0xc6c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xfe0(%rbp), %rdi
callq 0x31a0
testb $0x1, -0x1009(%rbp)
jne 0xc6d0
jmp 0xc6dc
leaq -0x1008(%rbp), %rdi
callq 0x31a0
jmp 0xc6de
testb $0x1, -0xfe2(%rbp)
jne 0xc6e9
jmp 0xc6f5
leaq -0xfe1(%rbp), %rdi
callq 0x32a0
jmp 0xc90a
movq 0x598c7(%rip), %rdi     # 0x65fc8
leaq 0x4ba79(%rip), %rsi     # 0x58181
callq 0x3250
movq %rax, -0x1400(%rbp)
jmp 0xc716
movq -0x1400(%rbp), %rdi
movl -0x20(%rbp), %esi
decl %esi
callq 0x3410
movq %rax, -0x1408(%rbp)
jmp 0xc730
movq -0x1408(%rbp), %rdi
leaq 0x4ba58(%rip), %rsi     # 0x58196
callq 0x3250
movq %rax, -0x1410(%rbp)
jmp 0xc74c
movq -0x1410(%rbp), %rdi
movl -0x20(%rbp), %esi
decl %esi
callq 0x3410
movq %rax, -0x1418(%rbp)
jmp 0xc766
movq -0x1418(%rbp), %rdi
leaq 0x4b6a6(%rip), %rsi     # 0x57e1a
callq 0x3250
movq %rax, -0x1420(%rbp)
jmp 0xc782
movq -0x1420(%rbp), %rdi
movq 0x59828(%rip), %rsi     # 0x65fb8
callq 0x3280
jmp 0xc797
movq 0x5982a(%rip), %rdi     # 0x65fc8
leaq 0x4b9ff(%rip), %rsi     # 0x581a4
callq 0x3250
movq %rax, -0x1428(%rbp)
jmp 0xc7b3
movq -0x1428(%rbp), %rdi
movb -0xd6a(%rbp), %cl
leaq 0x4b9b1(%rip), %rax     # 0x58178
leaq 0x4bdb4(%rip), %rsi     # 0x58582
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x3250
movq %rax, -0x1430(%rbp)
jmp 0xc7e3
movq -0x1430(%rbp), %rdi
leaq 0x4b9cb(%rip), %rsi     # 0x581bc
callq 0x3250
movq %rax, -0x1438(%rbp)
jmp 0xc7ff
movq -0x1438(%rbp), %rdi
movl -0x3c(%rbp), %esi
callq 0x3410
movq %rax, -0x1440(%rbp)
jmp 0xc817
movq -0x1440(%rbp), %rdi
leaq 0x4b9af(%rip), %rsi     # 0x581d4
callq 0x3250
movq %rax, -0x1448(%rbp)
jmp 0xc833
movq -0x1448(%rbp), %rdi
leaq -0xe10(%rbp), %rsi
callq 0x3210
movq %rax, -0x1450(%rbp)
jmp 0xc84f
movq -0x1450(%rbp), %rdi
leaq 0x4b97a(%rip), %rsi     # 0x581d7
callq 0x3250
movq %rax, -0x1458(%rbp)
jmp 0xc86b
movq -0x1458(%rbp), %rdi
movq 0x5973f(%rip), %rsi     # 0x65fb8
callq 0x3280
jmp 0xc880
jmp 0xc882
cmpl $0x0, -0xd70(%rbp)
jle 0xc8eb
movq -0x1058(%rbp), %rsi
leaq -0x1030(%rbp), %rdi
callq 0x3100
jmp 0xc8a0
movl -0xd70(%rbp), %edx
movq 0x38(%rbp), %rcx
leaq -0x1030(%rbp), %rdi
movl $0x1, %esi
callq 0x7ab0
jmp 0xc8bd
leaq -0x1030(%rbp), %rdi
callq 0x31a0
jmp 0xc8eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x1030(%rbp), %rdi
callq 0x31a0
jmp 0xc90a
movl $0x0, -0x14(%rbp)
movl $0x1, -0xf44(%rbp)
leaq -0xe10(%rbp), %rdi
callq 0x31a0
jmp 0xc918
leaq -0xe10(%rbp), %rdi
callq 0x31a0
jmp 0xc927
movl -0x14(%rbp), %eax
addq $0x1470, %rsp           # imm = 0x1470
popq %rbx
popq %r14
popq %rbp
retq
movq -0x150(%rbp), %rdi
callq 0x3420
nopw %cs:(%rax,%rax)