// File: /workspace/github_cpp_makefile_star2_O3/temelmertcan[P]multgen/src/adders.cpp
// Function: create_ha_fa(bool, std::queue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>&)
void create_ha_fa (bool ha_fa_with_gates, std::queue<string>& verilog){

  verilog.push ("module ha (");
  verilog.push("indent");
  verilog.push("indent");
  verilog.push ("input logic a,");
  verilog.push ("input logic b,");
  verilog.push ("output logic s,");
  verilog.push ("output logic c);");
  verilog.push("outdent");
  verilog.push("");
  if (ha_fa_with_gates){
    verilog.push ("assign s = a ^ b;");
    verilog.push ("assign c = a & b;");
  }else{
    verilog.push ("assign {c,s} = a + b;");
  }
  verilog.push("outdent");
  verilog.push ("endmodule");
  verilog.push("");

  verilog.push ("\n");

  verilog.push ("module fa (");
  verilog.push("indent");
  verilog.push("indent");
  verilog.push ("input logic x,");
  verilog.push ("input logic y,");
  verilog.push ("input logic z,");
  verilog.push ("output logic s,");
  verilog.push ("output logic c);");
  verilog.push("outdent");
  verilog.push("");
  if (ha_fa_with_gates){
    verilog.push ("assign s = x ^ y ^ z;");
    verilog.push ("assign c = (x & y) | (x & z) | (y & z);");
  }else{
    verilog.push ("assign {c,s} = x + y + z;");
  }
  verilog.push("outdent");
  verilog.push ("endmodule");

  verilog.push("");

  verilog.push ("module Four2Two ");
  verilog.push("indent");
  verilog.push("indent");
  verilog.push("#(parameter WIDTH=1) (");
  verilog.push ("input logic [WIDTH-1:0] in1,");
  verilog.push ("input logic [WIDTH-1:0] in2,");
  verilog.push ("input logic [WIDTH-1:0] in3,");
  verilog.push ("input logic [WIDTH-1:0] in4,");
  verilog.push ("input logic cin,");
  verilog.push ("output logic [WIDTH-1:0] sum,");
  verilog.push ("output logic [WIDTH-1:0] carry,");
  verilog.push ("output logic cout);");
  verilog.push("outdent");
  verilog.push("");

  verilog.push ("wire logic [WIDTH:0] temp1;");
  verilog.push ("assign temp1 = {((in1 ^ in2)&in3 | in1 & ~(in1^in2)),cin};");
 
  verilog.push ("assign sum = ((in1 ^ in2) ^ in3 ^ in4) ^ temp1[WIDTH-1:0];");
  verilog.push ("assign carry = ((in1 ^ in2) ^ in3 ^ in4) & temp1[WIDTH-1:0] | in4 & ~((in1 ^ in2) ^ in3 ^ in4);");

  verilog.push ("assign cout = temp1[WIDTH];");

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

  verilog.push ("\n");

  verilog.push ("");



  

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %rbx
movl %edi, %r14d
leaq -0x28(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x4d8cb(%rip), %rsi     # 0x787d9
leaq 0x4d8cf(%rip), %rdx     # 0x787e4
leaq -0x38(%rbp), %rdi
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2af38
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4cd72(%rip), %rsi     # 0x77cb8
leaq 0x4cd71(%rip), %rdx     # 0x77cbe
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2af6c
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4cd3e(%rip), %rsi     # 0x77cb8
leaq 0x4cd3d(%rip), %rdx     # 0x77cbe
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2afa0
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d837(%rip), %rsi     # 0x787e5
leaq 0x4d83e(%rip), %rdx     # 0x787f3
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2afd4
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d812(%rip), %rsi     # 0x787f4
leaq 0x4d819(%rip), %rdx     # 0x78802
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b008
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d7ed(%rip), %rsi     # 0x78803
leaq 0x4d7f5(%rip), %rdx     # 0x78812
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b03c
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d7c9(%rip), %rsi     # 0x78813
leaq 0x4d7d2(%rip), %rdx     # 0x78823
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b070
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4ccb0(%rip), %rsi     # 0x77d2e
leaq 0x4ccb0(%rip), %rdx     # 0x77d35
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b0a4
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4e54f(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b0d4
callq 0x31d0
leaq -0x38(%rbp), %rdi
testb %r14b, %r14b
je 0x2b135
movq %r15, (%rdi)
leaq 0x4d73d(%rip), %rsi     # 0x78824
leaq 0x4d747(%rip), %rdx     # 0x78835
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b10d
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d71b(%rip), %rsi     # 0x78836
leaq 0x4d725(%rip), %rdx     # 0x78847
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
jmp 0x2b157
movq %r15, (%rdi)
leaq 0x4d709(%rip), %rsi     # 0x78848
leaq 0x4d717(%rip), %rdx     # 0x7885d
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b165
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4cbbb(%rip), %rsi     # 0x77d2e
leaq 0x4cbbb(%rip), %rdx     # 0x77d35
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b199
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4cc2f(%rip), %rsi     # 0x77dd6
leaq 0x4cc31(%rip), %rdx     # 0x77ddf
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b1cd
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4e426(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b1fd
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4b66c(%rip), %rsi     # 0x76877
leaq 0x4b666(%rip), %rdx     # 0x76878
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b231
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d61f(%rip), %rsi     # 0x7885e
leaq 0x4d623(%rip), %rdx     # 0x78869
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b265
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4ca45(%rip), %rsi     # 0x77cb8
leaq 0x4ca44(%rip), %rdx     # 0x77cbe
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b299
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4ca11(%rip), %rsi     # 0x77cb8
leaq 0x4ca10(%rip), %rdx     # 0x77cbe
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b2cd
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d58f(%rip), %rsi     # 0x7886a
leaq 0x4d596(%rip), %rdx     # 0x78878
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b301
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d56a(%rip), %rsi     # 0x78879
leaq 0x4d571(%rip), %rdx     # 0x78887
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b335
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d545(%rip), %rsi     # 0x78888
leaq 0x4d54c(%rip), %rdx     # 0x78896
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b369
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d48c(%rip), %rsi     # 0x78803
leaq 0x4d494(%rip), %rdx     # 0x78812
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b39d
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d468(%rip), %rsi     # 0x78813
leaq 0x4d471(%rip), %rdx     # 0x78823
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b3d1
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4c94f(%rip), %rsi     # 0x77d2e
leaq 0x4c94f(%rip), %rdx     # 0x77d35
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b405
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4e1ee(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b435
callq 0x31d0
leaq -0x38(%rbp), %rdi
testb %r14b, %r14b
je 0x2b496
movq %r15, (%rdi)
leaq 0x4d44f(%rip), %rsi     # 0x78897
leaq 0x4d45d(%rip), %rdx     # 0x788ac
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b46e
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d431(%rip), %rsi     # 0x788ad
leaq 0x4d451(%rip), %rdx     # 0x788d4
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
jmp 0x2b4b8
movq %r15, (%rdi)
leaq 0x4d435(%rip), %rsi     # 0x788d5
leaq 0x4d447(%rip), %rdx     # 0x788ee
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b4c6
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4c85a(%rip), %rsi     # 0x77d2e
leaq 0x4c85a(%rip), %rdx     # 0x77d35
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b4fa
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4c8ce(%rip), %rsi     # 0x77dd6
leaq 0x4c8d0(%rip), %rdx     # 0x77ddf
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b52e
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4e0c5(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b55e
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d383(%rip), %rsi     # 0x788ef
leaq 0x4d38c(%rip), %rdx     # 0x788ff
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b592
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4c718(%rip), %rsi     # 0x77cb8
leaq 0x4c717(%rip), %rdx     # 0x77cbe
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b5c6
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4c6e4(%rip), %rsi     # 0x77cb8
leaq 0x4c6e3(%rip), %rdx     # 0x77cbe
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b5fa
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d2f8(%rip), %rsi     # 0x78900
leaq 0x4d307(%rip), %rdx     # 0x78916
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b62e
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d2db(%rip), %rsi     # 0x78917
leaq 0x4d2f0(%rip), %rdx     # 0x78933
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b662
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d2c4(%rip), %rsi     # 0x78934
leaq 0x4d2d9(%rip), %rdx     # 0x78950
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b696
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d2ad(%rip), %rsi     # 0x78951
leaq 0x4d2c2(%rip), %rdx     # 0x7896d
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b6ca
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d296(%rip), %rsi     # 0x7896e
leaq 0x4d2ab(%rip), %rdx     # 0x7898a
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b6fe
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d27f(%rip), %rsi     # 0x7898b
leaq 0x4d288(%rip), %rdx     # 0x7899b
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b732
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d25c(%rip), %rsi     # 0x7899c
leaq 0x4d272(%rip), %rdx     # 0x789b9
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b766
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d246(%rip), %rsi     # 0x789ba
leaq 0x4d25e(%rip), %rdx     # 0x789d9
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b79a
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d232(%rip), %rsi     # 0x789da
leaq 0x4d23e(%rip), %rdx     # 0x789ed
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b7ce
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4c552(%rip), %rsi     # 0x77d2e
leaq 0x4c552(%rip), %rdx     # 0x77d35
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b802
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4ddf1(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b832
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d1ae(%rip), %rsi     # 0x789ee
leaq 0x4d1c2(%rip), %rdx     # 0x78a09
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b866
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d196(%rip), %rsi     # 0x78a0a
leaq 0x4d1c9(%rip), %rdx     # 0x78a44
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b89a
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d19d(%rip), %rsi     # 0x78a45
leaq 0x4d1d0(%rip), %rdx     # 0x78a7f
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b8ce
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d1a4(%rip), %rsi     # 0x78a80
leaq 0x4d1fc(%rip), %rdx     # 0x78adf
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b902
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d1d0(%rip), %rsi     # 0x78ae0
leaq 0x4d1e4(%rip), %rdx     # 0x78afb
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b936
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4c3ea(%rip), %rsi     # 0x77d2e
leaq 0x4c3ea(%rip), %rdx     # 0x77d35
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b96a
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4c45e(%rip), %rsi     # 0x77dd6
leaq 0x4c460(%rip), %rdx     # 0x77ddf
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b99e
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4dc55(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b9ce
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4ae9b(%rip), %rsi     # 0x76877
leaq 0x4ae95(%rip), %rdx     # 0x76878
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2ba02
callq 0x31d0
leaq -0x38(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4dbf1(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x2a942
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2ba32
callq 0x31d0
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
jmp 0x2bbb5
jmp 0x2bbc8
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x2bbcb
callq 0x31d0
jmp 0x2bbcb
movq %rax, %rbx
movq %rbx, %rdi
callq 0x33a0