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

  string module_name = (string)"RP_"+to_string(size)+ (carryin?"_carry":"");

  verilog.push ("module " + module_name + " ( ");
  verilog.push("indent");
  verilog.push("indent");
  if(carryin)
    verilog.push ("input logic carryin,");
  verilog.push ("input logic [" + to_string(size-1) + ":0] IN1,");
  verilog.push ("input logic [" + to_string(size-1) + ":0] IN2,");
  verilog.push ("output logic [" + to_string(size) + ":0] OUT);");
  verilog.push("outdent");
  verilog.push("");

  string carry_decs = "logic ";
  for (int i=0; i < size+1; i++){
    carry_decs+= "C" + to_string(i);
    if (i == size)
      carry_decs += ";";
    else
      carry_decs += ", ";
  }

  verilog.push (carry_decs);

  for (int i=0; i < size; i++){
    if (i == 0)
      if (carryin)
	verilog.push ("fa m0 (carryin, IN1[0], IN2[0], OUT[0], C0);");
      else
	verilog.push ("ha m0 (IN1[0], IN2[0], OUT[0], C0);");
    else
      verilog.push ("fa m" + to_string(i) + " (IN1[" +  to_string(i) + "], IN2["
                    + to_string(i) + "], C" + to_string(i-1) + ", OUT[" + to_string(i) + "], C"
                    + to_string(i) + ");");
  }

  verilog.push ("assign OUT[" + to_string(size) + "] = C" + to_string(size-1) + ";");

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

  verilog.push("");

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2c8, %rsp            # imm = 0x2C8
movq %rdx, %r13
movl %esi, -0xa0(%rbp)
movl %edi, %ebx
leaq -0x38(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x4cefb(%rip), %rsi     # 0x78afc
leaq 0x4cef7(%rip), %rdx     # 0x78aff
leaq -0x48(%rbp), %rdi
callq 0x2ac04
movl %ebx, %eax
negl %eax
movq %rbx, -0x98(%rbp)
cmovsl %ebx, %eax
movl $0x1, %ebx
movl %eax, -0x6c(%rbp)
cmpl $0xa, %eax
jb 0x2bc71
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl -0x6c(%rbp), %ecx
cmpl $0x63, %ecx
jbe 0x2bc6a
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2bc6f
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2bc71
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2bc39
addl $-0x3, %ebx
jmp 0x2bc71
addl $-0x2, %ebx
jmp 0x2bc71
decl %ebx
movq -0x98(%rbp), %rax
movl %eax, %r15d
shrl $0x1f, %r15d
leal (%rbx,%r15), %esi
leaq -0x80(%rbp), %r12
movq %r12, -0x10(%r12)
leaq -0x90(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movl %r15d, %eax
movq -0x90(%rbp), %rdi
movq %rax, -0x280(%rbp)
addq %rax, %rdi
movl %ebx, %esi
movl -0x6c(%rbp), %edx
callq 0x2a6a5
movq -0x48(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x88(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r14, %rcx
je 0x2bcdc
movq -0x38(%rbp), %rdi
movq -0x90(%rbp), %rsi
cmpq %rdi, %rax
movq -0x98(%rbp), %rbx
jbe 0x2bd02
movl $0xf, %edi
cmpq %r12, %rsi
je 0x2bcfd
movq -0x80(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x2bd0d
leaq -0x48(%rbp), %rdi
callq 0x30a0
jmp 0x2bd1d
leaq -0x90(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x58(%rbp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x2bd3e
movq %rsi, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2bd44
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x4bf3a(%rip), %rax     # 0x77ca1
leaq 0x4d893(%rip), %rsi     # 0x79601
cmpb $0x0, -0xa0(%rbp)
cmovneq %rax, %rsi
leaq -0x68(%rbp), %rdi
callq 0x33d0
leaq -0x2b8(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq %r15, -0x288(%rbp)
je 0x2bdb6
movq %rdx, -0x2c8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x2b8(%rbp)
jmp 0x2bdbc
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x2c0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x58(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x2bde8
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r12, %rdi
je 0x2bdf9
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x2be07
callq 0x31d0
leaq 0x4be9a(%rip), %rsi     # 0x77ca8
leaq -0x48(%rbp), %rdi
leaq -0x2c8(%rbp), %rdx
callq 0x2a567
leaq 0x4ccdb(%rip), %rsi     # 0x78b00
leaq -0x48(%rbp), %rdi
callq 0x33d0
movq %r15, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2be4e
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2be55
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r13, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2be86
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x2be94
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4be16(%rip), %rsi     # 0x77cb8
leaq 0x4be15(%rip), %rdx     # 0x77cbe
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %r13, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2bec8
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4bde2(%rip), %rsi     # 0x77cb8
leaq 0x4bde1(%rip), %rdx     # 0x77cbe
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %r13, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2befc
callq 0x31d0
cmpb $0x0, -0xa0(%rbp)
je 0x2bf39
leaq -0x68(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4bdac(%rip), %rsi     # 0x77cbf
leaq 0x4bdb9(%rip), %rdx     # 0x77cd3
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %r13, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2bf39
callq 0x31d0
movq %r12, %r8
leal -0x1(%rbx), %r14d
movl %r14d, %r12d
negl %r12d
cmovsl %r14d, %r12d
movl $0x1, %ebx
cmpl $0xa, %r12d
jb 0x2bf9a
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0x2bf93
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2bf98
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2bf9a
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2bf62
addl $-0x3, %ebx
jmp 0x2bf9a
addl $-0x2, %ebx
jmp 0x2bf9a
decl %ebx
shrl $0x1f, %r14d
leal (%rbx,%r14), %esi
leaq -0x90(%rbp), %rdi
movq %r8, (%rdi)
movl $0x2d, %edx
callq 0x3250
movq %r14, -0x278(%rbp)
movl %r14d, %eax
leaq -0x90(%rbp), %r14
movq (%r14), %rdi
movq %rax, -0x270(%rbp)
addq %rax, %rdi
movl %ebx, %esi
movl %r12d, %edx
callq 0x2a6a5
leaq 0x4bcef(%rip), %rcx     # 0x77cd4
movl $0xd, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2c01b
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2c021
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
leaq -0x80(%rbp), %r14
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4bc9b(%rip), %rsi     # 0x77ce2
callq 0x33d0
movq %r15, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2c06c
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2c073
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r13, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2c0a4
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2c0b6
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
je 0x2c0c7
callq 0x31d0
movl $0x1, %ebx
cmpl $0xa, %r12d
movq -0x278(%rbp), %rsi
jb 0x2c11e
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0x2c117
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2c11c
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2c11e
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2c0e6
addl $-0x3, %ebx
jmp 0x2c11e
addl $-0x2, %ebx
jmp 0x2c11e
decl %ebx
addl %ebx, %esi
leaq -0x90(%rbp), %rdi
movq %r14, (%rdi)
movl $0x2d, %edx
callq 0x3250
leaq -0x90(%rbp), %r14
movq (%r14), %rdi
addq -0x270(%rbp), %rdi
movl %ebx, %esi
movl %r12d, %edx
callq 0x2a6a5
leaq 0x4bb7e(%rip), %rcx     # 0x77cd4
movl $0xd, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2c18c
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2c192
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
leaq -0x80(%rbp), %r14
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4bb33(%rip), %rsi     # 0x77ceb
callq 0x33d0
movq %r15, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2c1dd
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2c1e4
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r13, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2c215
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2c227
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
je 0x2c238
callq 0x31d0
movl $0x1, %ebx
cmpl $0xa, -0x6c(%rbp)
jb 0x2c288
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl -0x6c(%rbp), %ecx
cmpl $0x63, %ecx
jbe 0x2c281
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2c286
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2c288
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2c250
addl $-0x3, %ebx
jmp 0x2c288
addl $-0x2, %ebx
jmp 0x2c288
decl %ebx
movq -0x288(%rbp), %rax
leal (%rbx,%rax), %esi
leaq -0x90(%rbp), %rdi
movq %r14, (%rdi)
movl $0x2d, %edx
callq 0x3250
leaq -0x90(%rbp), %r14
movq (%r14), %rdi
addq -0x280(%rbp), %rdi
movl %ebx, %esi
movl -0x6c(%rbp), %edx
callq 0x2a6a5
leaq 0x4ba48(%rip), %rcx     # 0x77d10
movl $0xe, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2c2fe
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2c304
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
leaq -0x80(%rbp), %rbx
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4c7da(%rip), %rsi     # 0x78b04
callq 0x33d0
movq %r15, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2c34f
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2c356
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r13, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2c387
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2c399
callq 0x31d0
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2c3aa
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4b976(%rip), %rsi     # 0x77d2e
leaq 0x4b976(%rip), %rdx     # 0x77d35
callq 0x2ac04
movq -0x98(%rbp), %rbx
leaq -0x68(%rbp), %rsi
movq %r13, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2c3e5
callq 0x31d0
leaq -0x68(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4d20e(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x68(%rbp), %rsi
movq %r13, %rdi
callq 0x2a942
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2c415
callq 0x31d0
movl %r12d, -0x9c(%rbp)
movq %r13, -0x108(%rbp)
leaq -0x68(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x4c85d(%rip), %rsi     # 0x78c8e
leaq 0x4c85c(%rip), %rdx     # 0x78c94
callq 0x2ac04
testl %ebx, %ebx
js 0x2c590
xorl %r15d, %r15d
leaq -0x68(%rbp), %rbx
movl $0xd1b71759, %r13d      # imm = 0xD1B71759
movl $0x1, %r12d
cmpl $0xa, %r15d
jb 0x2c4a0
movl $0x4, %r12d
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x2c497
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x2c49d
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x2c4a0
movl %eax, %ecx
imulq %r13, %rcx
shrq $0x2d, %rcx
addl $0x4, %r12d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x2c467
addl $-0x3, %r12d
jmp 0x2c4a0
addl $-0x2, %r12d
jmp 0x2c4a0
decl %r12d
movl %r12d, %esi
leaq -0x80(%rbp), %rax
movq %rax, -0x90(%rbp)
movq %r14, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x90(%rbp), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x2a6a5
movl $0x1, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x4c686(%rip), %rcx     # 0x78b67
callq 0x3230
leaq -0x38(%rbp), %r12
movq %r12, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2c50a
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2c512
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30a0
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x2c547
callq 0x31d0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x2c55c
callq 0x31d0
movq -0x98(%rbp), %r12
cmpl %r12d, %r15d
leaq 0x4c089(%rip), %rsi     # 0x785f6
leaq 0x4d19d(%rip), %rax     # 0x79711
cmoveq %rax, %rsi
movq %rbx, %rdi
callq 0x33d0
leal 0x1(%r15), %eax
cmpl %r12d, %r15d
movl %eax, %r15d
jne 0x2c452
leaq -0x68(%rbp), %rsi
movq -0x108(%rbp), %r13
movq %r13, %rdi
callq 0x3b624
movq -0x98(%rbp), %rbx
testl %ebx, %ebx
leaq -0x38(%rbp), %r12
jle 0x2d1bc
xorl %r15d, %r15d
leaq -0x48(%rbp), %rdi
movl $0xd1b71759, %r14d      # imm = 0xD1B71759
testl %r15d, %r15d
je 0x2c627
movl $0x1, %ebx
cmpl $0xa, %r15d
leaq -0x298(%rbp), %r12
leaq -0x178(%rbp), %r13
jb 0x2c6a3
movl $0x4, %ebx
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x2c69c
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x2c6a1
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x2c6a3
movl %eax, %ecx
imulq %r14, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x2c5ed
addl $-0x3, %ebx
jmp 0x2c6a3
movq %r13, %rbx
cmpb $0x0, -0xa0(%rbp)
je 0x2c65a
movq %r12, -0x48(%rbp)
movq %rdi, %r13
leaq 0x4c4cd(%rip), %rsi     # 0x78b0e
leaq 0x4c4f2(%rip), %rdx     # 0x78b3a
callq 0x2ac04
movq %rbx, %rdi
movq %r13, %rsi
callq 0x2a942
jmp 0x2c67f
movq %r12, -0x48(%rbp)
movq %rdi, %r13
leaq 0x4c4d3(%rip), %rsi     # 0x78b3b
leaq 0x4c4ef(%rip), %rdx     # 0x78b5e
callq 0x2ac04
movq %rbx, %rdi
movq %r13, %rsi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x2c68d
callq 0x31d0
movq %rbx, %r13
movq -0x98(%rbp), %rbx
jmp 0x2d1ac
addl $-0x2, %ebx
jmp 0x2c6a3
decl %ebx
movq %r13, %r14
movq %r12, %r13
movl %ebx, %esi
leaq -0x2d8(%rbp), %rax
movq %rax, -0x2e8(%rbp)
leaq -0x2e8(%rbp), %r12
movq %r12, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x2e8(%rbp), %rdi
movl %ebx, %esi
movl %r15d, %edx
callq 0x2a6a5
movl $0x4, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x4c46d(%rip), %rcx     # 0x78b5f
callq 0x3230
movq %r13, %r12
movq %r13, -0x2a8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2c723
movq %rdx, -0x2a8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x298(%rbp)
jmp 0x2c72b
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq %r14, %r13
movq 0x8(%rax), %rdx
movq %rdx, -0x2a0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x2a8(%rbp), %rdi
leaq 0x4bb95(%rip), %rsi     # 0x782eb
callq 0x33d0
movl $0xd1b71759, %r14d      # imm = 0xD1B71759
movq %r13, -0x188(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2c78a
movq %rdx, -0x188(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x178(%rbp)
jmp 0x2c792
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0x180(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %ebx
cmpl $0xa, %r15d
jb 0x2c7f4
movl $0x4, %ebx
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x2c7ed
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x2c7f2
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x2c7f4
movl %eax, %ecx
imulq %r14, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x2c7bf
addl $-0x3, %ebx
jmp 0x2c7f4
addl $-0x2, %ebx
jmp 0x2c7f4
decl %ebx
movl %ebx, %esi
leaq -0x258(%rbp), %rax
movq %rax, -0x268(%rbp)
leaq -0x268(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x268(%rbp), %rdi
movl %ebx, %esi
movl %r15d, %edx
callq 0x2a6a5
movq -0x188(%rbp), %rcx
movl $0xf, %edi
cmpq %r13, %rcx
je 0x2c83e
movq -0x178(%rbp), %rdi
movq -0x180(%rbp), %r8
movq -0x268(%rbp), %rsi
movq -0x260(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x2c879
movl $0xf, %edi
leaq -0x258(%rbp), %r9
cmpq %r9, %rsi
je 0x2c874
movq -0x258(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x2c887
leaq -0x188(%rbp), %rdi
callq 0x30a0
jmp 0x2c897
leaq -0x268(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x118(%rbp), %rsi
movq %rsi, -0x128(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2c8c4
movq %rdx, -0x128(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x118(%rbp)
jmp 0x2c8ca
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x120(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0x128(%rbp), %rdi
leaq 0x4b518(%rip), %rsi     # 0x77e0f
callq 0x33d0
leaq -0x198(%rbp), %rsi
movq %rsi, -0x1a8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2c92c
movq %rdx, -0x1a8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x198(%rbp)
jmp 0x2c932
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x1a0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %ebx
cmpl $0xa, %r15d
jb 0x2c994
movl $0x4, %ebx
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x2c98d
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x2c992
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x2c994
movl %eax, %ecx
imulq %r14, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x2c95f
addl $-0x3, %ebx
jmp 0x2c994
addl $-0x2, %ebx
jmp 0x2c994
decl %ebx
movl %ebx, %esi
leaq -0x238(%rbp), %rax
movq %rax, -0x248(%rbp)
leaq -0x248(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x248(%rbp), %rdi
movl %ebx, %esi
movl %r15d, %edx
callq 0x2a6a5
movq -0x1a8(%rbp), %rcx
movl $0xf, %edi
leaq -0x198(%rbp), %rax
cmpq %rax, %rcx
je 0x2c9e5
movq -0x198(%rbp), %rdi
movq -0x1a0(%rbp), %r8
movq -0x248(%rbp), %rsi
movq -0x240(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x2ca20
movl $0xf, %edi
leaq -0x238(%rbp), %r9
cmpq %r9, %rsi
je 0x2ca1b
movq -0x238(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x2ca2e
leaq -0x1a8(%rbp), %rdi
callq 0x30a0
jmp 0x2ca3e
leaq -0x248(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x158(%rbp), %rsi
movq %rsi, -0x168(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2ca6b
movq %rdx, -0x168(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x158(%rbp)
jmp 0x2ca71
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x160(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0x168(%rbp), %rdi
leaq 0x4c0c6(%rip), %rsi     # 0x78b64
callq 0x33d0
leaq -0x1b8(%rbp), %rsi
movq %rsi, -0x1c8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2cad3
movq %rdx, -0x1c8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x1b8(%rbp)
jmp 0x2cad9
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x1c0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leal -0x1(%r15), %r12d
movl %r12d, %ebx
negl %ebx
cmovsl %r12d, %ebx
movl $0x1, %r13d
cmpl $0xa, %ebx
jb 0x2cb4c
movl $0x4, %r13d
movl %ebx, %eax
cmpl $0x63, %eax
jbe 0x2cb43
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x2cb49
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x2cb4c
movl %eax, %ecx
imulq %r14, %rcx
shrq $0x2d, %rcx
addl $0x4, %r13d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x2cb13
addl $-0x3, %r13d
jmp 0x2cb4c
addl $-0x2, %r13d
jmp 0x2cb4c
decl %r13d
shrl $0x1f, %r12d
leal (%r12,%r13), %esi
leaq -0x218(%rbp), %rax
movq %rax, -0x228(%rbp)
leaq -0x228(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movl %r12d, %edi
addq -0x228(%rbp), %rdi
movl %r13d, %esi
movl %ebx, %edx
callq 0x2a6a5
movq -0x1c8(%rbp), %rcx
movl $0xf, %edi
leaq -0x1b8(%rbp), %rax
cmpq %rax, %rcx
je 0x2cba6
movq -0x1b8(%rbp), %rdi
movq -0x1c0(%rbp), %r8
movq -0x228(%rbp), %rsi
movq -0x220(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
leaq -0x38(%rbp), %r12
movq -0x108(%rbp), %r13
jbe 0x2cbec
movl $0xf, %edi
leaq -0x218(%rbp), %r9
cmpq %r9, %rsi
je 0x2cbe7
movq -0x218(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x2cbfa
leaq -0x1c8(%rbp), %rdi
callq 0x30a0
jmp 0x2cc0a
leaq -0x228(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0xb0(%rbp), %rsi
movq %rsi, -0xc0(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2cc37
movq %rdx, -0xc0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb0(%rbp)
jmp 0x2cc3d
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0xb8(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0xc0(%rbp), %rdi
leaq 0x4beff(%rip), %rsi     # 0x78b69
callq 0x33d0
leaq -0x138(%rbp), %rsi
movq %rsi, -0x148(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2cc9f
movq %rdx, -0x148(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x138(%rbp)
jmp 0x2cca5
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x140(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %ebx
cmpl $0xa, %r15d
jb 0x2cd07
movl $0x4, %ebx
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x2cd00
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x2cd05
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x2cd07
movl %eax, %ecx
imulq %r14, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x2ccd2
addl $-0x3, %ebx
jmp 0x2cd07
addl $-0x2, %ebx
jmp 0x2cd07
decl %ebx
movl %ebx, %esi
leaq -0x1f8(%rbp), %rax
movq %rax, -0x208(%rbp)
leaq -0x208(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x208(%rbp), %rdi
movl %ebx, %esi
movl %r15d, %edx
callq 0x2a6a5
movq -0x148(%rbp), %rcx
movl $0xf, %edi
leaq -0x138(%rbp), %rax
cmpq %rax, %rcx
je 0x2cd58
movq -0x138(%rbp), %rdi
movq -0x140(%rbp), %r8
movq -0x208(%rbp), %rsi
movq -0x200(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
leaq -0xd0(%rbp), %rbx
jbe 0x2cd9a
movl $0xf, %edi
leaq -0x1f8(%rbp), %r9
cmpq %r9, %rsi
je 0x2cd95
movq -0x1f8(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x2cda8
leaq -0x148(%rbp), %rdi
callq 0x30a0
jmp 0x2cdb8
leaq -0x208(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0xf0(%rbp), %rsi
movq %rsi, -0x100(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2cde5
movq %rdx, -0x100(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xf0(%rbp)
jmp 0x2cdeb
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0xf8(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0x100(%rbp), %rdi
leaq 0x4bd4c(%rip), %rsi     # 0x78b64
callq 0x33d0
movq %rbx, -0xe0(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2ce46
movq %rdx, -0xe0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xd0(%rbp)
jmp 0x2ce4c
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, -0xd8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %ebx
cmpl $0xa, %r15d
jb 0x2ceae
movl $0x4, %ebx
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x2cea7
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x2ceac
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x2ceae
movl %eax, %ecx
imulq %r14, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x2ce79
addl $-0x3, %ebx
jmp 0x2ceae
addl $-0x2, %ebx
jmp 0x2ceae
decl %ebx
movl %ebx, %esi
leaq -0x1d8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq -0x1e8(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x1e8(%rbp), %rdi
movl %ebx, %esi
movl %r15d, %edx
callq 0x2a6a5
movq -0xe0(%rbp), %rcx
movl $0xf, %edi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rcx
je 0x2ceff
movq -0xd0(%rbp), %rdi
movq -0xd8(%rbp), %r8
movq -0x1e8(%rbp), %rsi
movq -0x1e0(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
movq -0x98(%rbp), %rbx
jbe 0x2cf41
movl $0xf, %edi
leaq -0x1d8(%rbp), %r9
cmpq %r9, %rsi
je 0x2cf3c
movq -0x1d8(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x2cf4f
leaq -0xe0(%rbp), %rdi
callq 0x30a0
jmp 0x2cf5f
leaq -0x1e8(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x80(%rbp), %rsi
movq %rsi, -0x90(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2cf86
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x2cf8c
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0x90(%rbp), %rdi
leaq 0x4c757(%rip), %rsi     # 0x79710
callq 0x33d0
movq %r12, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x48(%rbp), %rsi
je 0x2cfe2
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2cfea
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r13, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x2d017
callq 0x31d0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x2d02c
callq 0x31d0
movq -0x1e8(%rbp), %rdi
leaq -0x1d8(%rbp), %rax
cmpq %rax, %rdi
je 0x2d044
callq 0x31d0
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x2d05c
callq 0x31d0
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x2d074
callq 0x31d0
movq -0x208(%rbp), %rdi
leaq -0x1f8(%rbp), %rax
cmpq %rax, %rdi
je 0x2d08c
callq 0x31d0
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x2d0a4
callq 0x31d0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x2d0bc
callq 0x31d0
movq -0x228(%rbp), %rdi
leaq -0x218(%rbp), %rax
cmpq %rax, %rdi
je 0x2d0d4
callq 0x31d0
movq -0x1c8(%rbp), %rdi
leaq -0x1b8(%rbp), %rax
cmpq %rax, %rdi
je 0x2d0ec
callq 0x31d0
movq -0x168(%rbp), %rdi
leaq -0x158(%rbp), %rax
cmpq %rax, %rdi
je 0x2d104
callq 0x31d0
movq -0x248(%rbp), %rdi
leaq -0x238(%rbp), %rax
cmpq %rax, %rdi
je 0x2d11c
callq 0x31d0
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
cmpq %rax, %rdi
je 0x2d134
callq 0x31d0
movq -0x128(%rbp), %rdi
leaq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0x2d14c
callq 0x31d0
movq -0x268(%rbp), %rdi
leaq -0x258(%rbp), %rax
cmpq %rax, %rdi
je 0x2d164
callq 0x31d0
movq -0x188(%rbp), %rdi
leaq -0x178(%rbp), %rax
cmpq %rax, %rdi
je 0x2d17c
callq 0x31d0
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
cmpq %rax, %rdi
je 0x2d194
callq 0x31d0
movq -0x2e8(%rbp), %rdi
leaq -0x2d8(%rbp), %rax
cmpq %rax, %rdi
je 0x2d1ac
callq 0x31d0
incl %r15d
cmpl %ebx, %r15d
leaq -0x48(%rbp), %rdi
jne 0x2c5c3
movl $0x1, %ebx
cmpl $0xa, -0x6c(%rbp)
movq -0x288(%rbp), %rsi
jb 0x2d213
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl -0x6c(%rbp), %ecx
cmpl $0x63, %ecx
jbe 0x2d20c
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2d211
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2d213
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2d1db
addl $-0x3, %ebx
jmp 0x2d213
addl $-0x2, %ebx
jmp 0x2d213
decl %ebx
addl %ebx, %esi
leaq -0x138(%rbp), %r15
movq %r15, -0x10(%r15)
leaq -0x148(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
leaq -0x148(%rbp), %r14
movq -0x280(%rbp), %rdi
addq (%r14), %rdi
movl %ebx, %esi
movl -0x6c(%rbp), %edx
callq 0x2a6a5
leaq 0x4b91d(%rip), %rcx     # 0x78b70
movl $0xb, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0xf0(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2d292
movq %rdx, -0x100(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xf0(%rbp)
jmp 0x2d299
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x100(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4b8be(%rip), %rsi     # 0x78b7c
callq 0x33d0
leaq -0xd0(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq -0x278(%rbp), %rsi
je 0x2d2f8
movq %rdx, -0xe0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xd0(%rbp)
jmp 0x2d300
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0xd8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %ebx
cmpl $0xa, -0x9c(%rbp)
jb 0x2d370
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl -0x9c(%rbp), %ecx
cmpl $0x63, %ecx
jbe 0x2d369
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2d36e
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2d370
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2d338
addl $-0x3, %ebx
jmp 0x2d370
addl $-0x2, %ebx
jmp 0x2d370
decl %ebx
addl %ebx, %esi
leaq -0xb0(%rbp), %r13
movq %r13, -0x10(%r13)
leaq -0xc0(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x270(%rbp), %rdi
addq -0xc0(%rbp), %rdi
movl %ebx, %esi
movl -0x9c(%rbp), %edx
callq 0x2a6a5
movq -0xe0(%rbp), %rcx
movq -0xd8(%rbp), %r8
movq -0xb8(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r12, %rcx
je 0x2d3d3
movq -0xd0(%rbp), %rdi
movq -0xc0(%rbp), %rsi
cmpq %rdi, %rax
jbe 0x2d3f5
movl $0xf, %edi
cmpq %r13, %rsi
je 0x2d3f0
movq -0xb0(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x2d403
leaq -0xe0(%rbp), %rdi
callq 0x30a0
jmp 0x2d413
leaq -0xc0(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x80(%rbp), %rsi
movq %rsi, -0x90(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2d43a
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x2d440
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x4c2ab(%rip), %rsi     # 0x79711
leaq -0x90(%rbp), %rdi
callq 0x33d0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2d496
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2d49c
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x108(%rbp), %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2d4d5
callq 0x31d0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x2d4ea
callq 0x31d0
movq -0xc0(%rbp), %rdi
cmpq %r13, %rdi
je 0x2d4fb
callq 0x31d0
movq -0xe0(%rbp), %rdi
cmpq %r12, %rdi
movq -0x108(%rbp), %r12
je 0x2d513
callq 0x31d0
movq -0x100(%rbp), %rdi
cmpq %r14, %rdi
leaq -0x38(%rbp), %r14
je 0x2d528
callq 0x31d0
movq -0x148(%rbp), %rdi
cmpq %r15, %rdi
je 0x2d539
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x4a7e7(%rip), %rsi     # 0x77d2e
leaq 0x4a7e7(%rip), %rdx     # 0x77d35
leaq -0x58(%rbp), %rbx
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %r12, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x2d571
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x4c082(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %r12, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x2d5a1
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x4a827(%rip), %rsi     # 0x77dd6
leaq 0x4a829(%rip), %rdx     # 0x77ddf
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %r12, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x2d5d5
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x4c01e(%rip), %rdx     # 0x79601
movq %rdx, %rsi
callq 0x2ac04
leaq -0x48(%rbp), %rsi
movq %r12, %rdi
callq 0x2a942
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x2d605
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2d613
callq 0x31d0
movq -0x2c8(%rbp), %rdi
leaq -0x2b8(%rbp), %rax
cmpq %rax, %rdi
je 0x2d62b
callq 0x31d0
addq $0x2c8, %rsp            # imm = 0x2C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2d780
jmp 0x2d7b7
jmp 0x2d65c
jmp 0x2daba
jmp 0x2d65c
jmp 0x2daba
jmp 0x2d65c
jmp 0x2daba
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
jne 0x2dab3
jmp 0x2dabd
jmp 0x2daba
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2d690
callq 0x31d0
jmp 0x2d690
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x2d6aa
callq 0x31d0
jmp 0x2d6aa
movq %rax, %rbx
movq -0xc0(%rbp), %rdi
cmpq %r13, %rdi
je 0x2d6c0
callq 0x31d0
jmp 0x2d6c0
movq %rax, %rbx
movq -0xe0(%rbp), %rdi
cmpq %r12, %rdi
je 0x2d6d6
callq 0x31d0
jmp 0x2d6d6
movq %rax, %rbx
movq -0x100(%rbp), %rdi
cmpq %r14, %rdi
je 0x2d6ec
callq 0x31d0
jmp 0x2d6ec
movq %rax, %rbx
movq -0x148(%rbp), %rdi
cmpq %r15, %rdi
jne 0x2dab3
jmp 0x2dabd
jmp 0x2daba
jmp 0x2daba
jmp 0x2d7b7
jmp 0x2d780
jmp 0x2d7b7
jmp 0x2d780
jmp 0x2d7b7
jmp 0x2d734
jmp 0x2d747
jmp 0x2d75e
jmp 0x2d7b7
jmp 0x2d734
jmp 0x2d747
jmp 0x2d75e
jmp 0x2d7b7
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2d74a
callq 0x31d0
jmp 0x2d74a
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2d761
callq 0x31d0
jmp 0x2d761
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
jne 0x2daca
jmp 0x2dacf
jmp 0x2d7b7
jmp 0x2d780
jmp 0x2d7b7
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
jne 0x2daca
jmp 0x2dacf
jmp 0x2d7b7
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2d7ad
callq 0x31d0
jmp 0x2d7ad
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
jmp 0x2d76c
movq %rax, %rbx
jmp 0x2dacf
movq %rax, %rbx
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2d7d9
callq 0x31d0
jmp 0x2d7d9
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x2d7f3
callq 0x31d0
jmp 0x2d7f3
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
jmp 0x2dadd
movq %rax, %rbx
jmp 0x2dae7
jmp 0x2d80f
jmp 0x2daba
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
jne 0x2dab3
jmp 0x2dabd
jmp 0x2daba
movq %rax, %rbx
leaq -0x58(%rbp), %r14
jmp 0x2da71
movq %rax, %rbx
jmp 0x2d8f3
movq %rax, %rbx
leaq -0x58(%rbp), %r14
leaq -0x118(%rbp), %r15
jmp 0x2da0e
movq %rax, %rbx
jmp 0x2d965
movq %rax, %rbx
leaq -0x58(%rbp), %r14
jmp 0x2da60
movq %rax, %rbx
jmp 0x2d8db
movq %rax, %rbx
leaq -0x58(%rbp), %r14
leaq -0x118(%rbp), %r15
jmp 0x2d9f6
movq %rax, %rbx
jmp 0x2d94d
movq %rax, %rbx
leaq -0x58(%rbp), %r14
jmp 0x2da4f
movq %rax, %rbx
jmp 0x2d8c6
movq %rax, %rbx
leaq -0x58(%rbp), %r14
jmp 0x2d9d7
movq %rax, %rbx
jmp 0x2d935
movq %rax, %rbx
leaq -0x58(%rbp), %r14
jmp 0x2da37
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x2d8c6
callq 0x31d0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x2d8db
callq 0x31d0
movq -0x1e8(%rbp), %rdi
leaq -0x1d8(%rbp), %rax
cmpq %rax, %rdi
je 0x2d8f3
callq 0x31d0
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x2d91d
callq 0x31d0
jmp 0x2d91d
movq %rax, %rbx
jmp 0x2d9ad
jmp 0x2daba
movq %rax, %rbx
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x2d935
callq 0x31d0
movq -0x208(%rbp), %rdi
leaq -0x1f8(%rbp), %rax
cmpq %rax, %rdi
je 0x2d94d
callq 0x31d0
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x2d965
callq 0x31d0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x2d995
callq 0x31d0
jmp 0x2d995
movq %rax, %rbx
leaq -0x58(%rbp), %r14
leaq -0x118(%rbp), %r15
jmp 0x2da26
movq %rax, %rbx
movq -0x228(%rbp), %rdi
leaq -0x218(%rbp), %rax
cmpq %rax, %rdi
je 0x2d9ad
callq 0x31d0
movq -0x1c8(%rbp), %rdi
leaq -0x1b8(%rbp), %rax
cmpq %rax, %rdi
je 0x2d9c5
callq 0x31d0
leaq -0x58(%rbp), %r14
leaq -0x298(%rbp), %r12
leaq -0x178(%rbp), %r13
leaq -0x118(%rbp), %r15
movq -0x168(%rbp), %rdi
leaq -0x158(%rbp), %rax
cmpq %rax, %rdi
je 0x2d9f6
callq 0x31d0
movq -0x248(%rbp), %rdi
leaq -0x238(%rbp), %rax
cmpq %rax, %rdi
je 0x2da0e
callq 0x31d0
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
cmpq %rax, %rdi
je 0x2da26
callq 0x31d0
movq -0x128(%rbp), %rdi
cmpq %r15, %rdi
je 0x2da37
callq 0x31d0
movq -0x268(%rbp), %rdi
leaq -0x258(%rbp), %rax
cmpq %rax, %rdi
je 0x2da4f
callq 0x31d0
movq -0x188(%rbp), %rdi
cmpq %r13, %rdi
je 0x2da60
callq 0x31d0
movq -0x2a8(%rbp), %rdi
cmpq %r12, %rdi
je 0x2da71
callq 0x31d0
movq -0x2e8(%rbp), %rdi
leaq -0x2d8(%rbp), %rax
cmpq %rax, %rdi
je 0x2dac1
callq 0x31d0
jmp 0x2dac1
jmp 0x2daba
movq %rax, %rbx
jmp 0x2daa3
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x2daa3
callq 0x31d0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x2dabd
callq 0x31d0
jmp 0x2dabd
movq %rax, %rbx
leaq -0x58(%rbp), %r14
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x2dacf
callq 0x31d0
movq -0x2c8(%rbp), %rdi
leaq -0x2b8(%rbp), %rax
cmpq %rax, %rdi
je 0x2dae7
callq 0x31d0
movq %rbx, %rdi
callq 0x33a0