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

  string module_name = addertype+"_"+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("");

  verilog.push ( "wire logic ["+ to_string(size-1) + ":0] p_0;");
  verilog.push ( "wire logic ["+ to_string(size-1) + ":0] g_0;");

  if(carryin){
    verilog.push ( "assign g_0["+ to_string(size-1) + ":1] = IN1["+ to_string(size-1) + ":1] & IN2["+ to_string(size-1) + ":1];");
    verilog.push ( "assign p_0["+ to_string(size-1) + ":1] = IN1["+ to_string(size-1) + ":1] ^ IN2["+ to_string(size-1) + ":1];");
    verilog.push ("fa m0 (carryin, IN1[0], IN2[0], p_0[0], g_0[0]);");
  }else{
    verilog.push ( "assign g_0 = IN1 & IN2;");
    verilog.push ( "assign p_0 = IN1 ^ IN2;");
  }
    
  for (int i = 0; i<size; i++){
    g[i] = "g_0[" + to_string(i) + "]";
    p[i] = "p_0[" + to_string(i) + "]";
  }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
movq %r9, -0x198(%rbp)
movq %r8, -0x1a0(%rbp)
movl %esi, -0x94(%rbp)
movl %edi, %r13d
leaq -0x58(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rcx), %rsi
movq 0x8(%rcx), %rdx
addq %rsi, %rdx
leaq -0x68(%rbp), %rbx
movq %rbx, %rdi
callq 0x2acc6
leaq 0x4c207(%rip), %rsi     # 0x7a176
movq %rbx, %rdi
callq 0x33d0
movl %r13d, %r12d
negl %r12d
cmovsl %r13d, %r12d
movl $0x1, %r14d
cmpl $0xa, %r12d
jb 0x2dfd7
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0x2dfce
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2dfd4
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2dfd7
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2df9b
addl $-0x3, %r14d
jmp 0x2dfd7
addl $-0x2, %r14d
jmp 0x2dfd7
decl %r14d
movl %r13d, %ebx
shrl $0x1f, %ebx
leal (%r14,%rbx), %esi
leaq -0x78(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x88(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movl %ebx, %eax
movq -0x88(%rbp), %rdi
movq %rax, -0x190(%rbp)
addq %rax, %rdi
movl %r14d, %esi
movl %r12d, %edx
callq 0x2aad9
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %r8
movq -0x80(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r15, %rcx
je 0x2e036
movq -0x58(%rbp), %rsi
cmpq %rsi, %rax
leaq -0x78(%rbp), %rdi
jbe 0x2e056
movl $0xf, %esi
cmpq %rdi, -0x88(%rbp)
je 0x2e051
movq -0x78(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x2e068
movq -0x88(%rbp), %rsi
leaq -0x68(%rbp), %rdi
callq 0x30a0
jmp 0x2e078
leaq -0x88(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x2e099
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2e09f
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x4abe2(%rip), %rax     # 0x78ca4
leaq 0x4c538(%rip), %rsi     # 0x7a601
cmpb $0x0, -0x94(%rbp)
cmovneq %rax, %rsi
leaq -0x48(%rbp), %rdi
callq 0x33d0
leaq -0x110(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2e10a
movq %rdx, -0x120(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x110(%rbp)
jmp 0x2e111
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, -0x118(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2e13d
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x2e152
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2e160
callq 0x31d0
leaq 0x4ab44(%rip), %rsi     # 0x78cab
leaq -0x68(%rbp), %rdi
leaq -0x120(%rbp), %rdx
callq 0x2a99b
leaq 0x4b982(%rip), %rsi     # 0x79b00
leaq -0x68(%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 0x2e1ab
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2e1b1
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 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2e1e7
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2e1f5
callq 0x31d0
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x4aab4(%rip), %rsi     # 0x78cbb
leaq 0x4aab3(%rip), %rdx     # 0x78cc1
callq 0x2b022
leaq -0x48(%rbp), %rsi
movq 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2e232
callq 0x31d0
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x4aa77(%rip), %rsi     # 0x78cbb
leaq 0x4aa76(%rip), %rdx     # 0x78cc1
callq 0x2b022
leaq -0x48(%rbp), %rsi
movq 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2e26f
callq 0x31d0
cmpb $0x0, -0x94(%rbp)
je 0x2e2b5
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x4aa38(%rip), %rsi     # 0x78cc2
leaq 0x4aa45(%rip), %rdx     # 0x78cd6
callq 0x2b022
leaq -0x48(%rbp), %rsi
movq 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2e2b5
callq 0x31d0
movq %r13, -0x188(%rbp)
leal -0x1(%r13), %eax
movl %eax, %r13d
negl %r13d
movq %rax, %rsi
cmovsl %eax, %r13d
movl $0x1, %r14d
cmpl $0xa, %r13d
jb 0x2e323
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0x2e31a
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2e320
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2e323
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2e2e7
addl $-0x3, %r14d
jmp 0x2e323
addl $-0x2, %r14d
jmp 0x2e323
decl %r14d
movq %rsi, %r15
shrl $0x1f, %r15d
leal (%r14,%r15), %esi
leaq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0x3250
movq %r15, -0xe0(%rbp)
movl %r15d, %eax
leaq -0x88(%rbp), %r15
movq (%r15), %rdi
movq %rax, -0x90(%rbp)
addq %rax, %rdi
movl %r14d, %esi
movl %r13d, %edx
callq 0x2aad9
leaq 0x4a961(%rip), %rcx     # 0x78cd7
movl $0xd, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x58(%rbp), %r15
movq %r15, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x78(%rbp), %r14
je 0x2e3b0
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2e3b7
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4a90c(%rip), %rsi     # 0x78ce5
callq 0x33d0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2e402
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2e408
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 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2e43e
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2e44c
callq 0x31d0
movq -0x88(%rbp), %rdi
cmpq %r14, %rdi
je 0x2e45d
callq 0x31d0
movl $0x1, %r14d
cmpl $0xa, %r13d
jb 0x2e4b3
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0x2e4aa
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2e4b0
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2e4b3
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2e477
addl $-0x3, %r14d
jmp 0x2e4b3
addl $-0x2, %r14d
jmp 0x2e4b3
decl %r14d
movq -0xe0(%rbp), %rax
leal (%r14,%rax), %esi
leaq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0x3250
leaq -0x88(%rbp), %r15
movq (%r15), %rdi
addq -0x90(%rbp), %rdi
movl %r14d, %esi
movl %r13d, %edx
callq 0x2aad9
leaq 0x4a7de(%rip), %rcx     # 0x78cd7
movl $0xd, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x58(%rbp), %r15
movq %r15, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x78(%rbp), %r14
je 0x2e533
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2e53a
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4a792(%rip), %rsi     # 0x78cee
callq 0x33d0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2e585
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2e58b
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 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2e5c1
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2e5cf
callq 0x31d0
movq -0x88(%rbp), %rdi
cmpq %r14, %rdi
je 0x2e5e0
callq 0x31d0
movl $0x1, %r14d
cmpl $0xa, %r12d
jb 0x2e636
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0x2e62d
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2e633
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2e636
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2e5fa
addl $-0x3, %r14d
jmp 0x2e636
addl $-0x2, %r14d
jmp 0x2e636
decl %r14d
addl %r14d, %ebx
leaq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
movq %rax, (%rdi)
movq %rbx, %rsi
movl $0x2d, %edx
callq 0x3250
leaq -0x88(%rbp), %rbx
movq -0x190(%rbp), %rdi
addq (%rbx), %rdi
movl %r14d, %esi
movl %r12d, %edx
callq 0x2aad9
leaq 0x4a69c(%rip), %rcx     # 0x78d13
movl $0xe, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r15, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x78(%rbp), %r14
leaq -0x38(%rbp), %rbx
movq -0xe0(%rbp), %r12
je 0x2e6b8
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2e6bf
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4b423(%rip), %rsi     # 0x79b04
callq 0x33d0
movq %rbx, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2e706
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2e70c
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2e73e
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2e74c
callq 0x31d0
movq -0x88(%rbp), %rdi
cmpq %r14, %rdi
je 0x2e75d
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %rbx, (%rdi)
leaq 0x4a5c6(%rip), %rsi     # 0x78d31
leaq 0x4a5c6(%rip), %rdx     # 0x78d38
callq 0x2b022
leaq -0x48(%rbp), %rsi
movq 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2e792
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %rbx, (%rdi)
leaq 0x4be61(%rip), %rdx     # 0x7a601
movq %rdx, %rsi
callq 0x2b022
leaq -0x48(%rbp), %rsi
movq 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2e7c3
callq 0x31d0
movl $0x1, %ebx
cmpl $0xa, %r13d
jb 0x2e813
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0x2e80c
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2e811
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2e813
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2e7db
addl $-0x3, %ebx
jmp 0x2e813
addl $-0x2, %ebx
jmp 0x2e813
decl %ebx
leal (%rbx,%r12), %esi
leaq -0x88(%rbp), %rdi
movq %r14, (%rdi)
movl $0x2d, %edx
callq 0x3250
leaq -0x88(%rbp), %r14
movq (%r14), %rdi
addq -0x90(%rbp), %rdi
movl %ebx, %esi
movl %r13d, %edx
callq 0x2aad9
leaq 0x4a6e3(%rip), %rcx     # 0x78f30
movl $0xc, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r15, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x38(%rbp), %rbx
je 0x2e883
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2e88a
movups (%rcx), %xmm0
movups %xmm0, (%r15)
leaq -0x78(%rbp), %r14
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4b2d2(%rip), %rsi     # 0x79b82
callq 0x33d0
movq %rbx, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2e8d5
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2e8db
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2e90d
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2e91b
callq 0x31d0
movq -0x88(%rbp), %rdi
cmpq %r14, %rdi
je 0x2e92c
callq 0x31d0
movl $0x1, %ebx
cmpl $0xa, %r13d
jb 0x2e97c
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0x2e975
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2e97a
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2e97c
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2e944
addl $-0x3, %ebx
jmp 0x2e97c
addl $-0x2, %ebx
jmp 0x2e97c
decl %ebx
leal (%rbx,%r12), %esi
leaq -0x88(%rbp), %rdi
movq %r14, (%rdi)
movl $0x2d, %edx
callq 0x3250
leaq -0x88(%rbp), %r14
movq (%r14), %rdi
addq -0x90(%rbp), %rdi
movl %ebx, %esi
movl %r13d, %edx
callq 0x2aad9
leaq 0x4a57a(%rip), %rcx     # 0x78f30
movl $0xc, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r15, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x38(%rbp), %rbx
je 0x2e9ec
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2e9f3
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4b176(%rip), %rsi     # 0x79b8b
callq 0x33d0
movq %rbx, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2ea3a
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2ea40
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2ea72
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2ea80
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x2ea95
callq 0x31d0
cmpb $0x0, -0x94(%rbp)
je 0x2eaf7
movl $0x1, %ebx
cmpl $0xa, %r13d
jb 0x2eb66
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0x2eb5f
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2eb64
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2eb66
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2eaba
addl $-0x3, %ebx
jmp 0x2eb66
leaq -0x48(%rbp), %rdi
movq %rbx, (%rdi)
leaq 0x4b0fe(%rip), %rsi     # 0x79c03
leaq 0x4b10e(%rip), %rdx     # 0x79c1a
callq 0x2b022
leaq -0x48(%rbp), %rsi
movq 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x188(%rbp), %r14
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2eb33
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %rbx, (%rdi)
leaq 0x4b0da(%rip), %rsi     # 0x79c1b
leaq 0x4b0ea(%rip), %rdx     # 0x79c32
callq 0x2b022
leaq -0x48(%rbp), %rsi
movq 0x10(%rbp), %rdi
callq 0x2ad60
jmp 0x2f5c9
addl $-0x2, %ebx
jmp 0x2eb66
decl %ebx
leal (%rbx,%r12), %esi
leaq -0x170(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x180(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
leaq -0x180(%rbp), %r14
movq (%r14), %rdi
addq -0x90(%rbp), %rdi
movl %ebx, %esi
movl %r13d, %edx
callq 0x2aad9
leaq 0x4afec(%rip), %rcx     # 0x79b94
movl $0xb, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x150(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2ebe7
movq %rdx, -0x160(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x150(%rbp)
jmp 0x2ebed
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
leaq -0x78(%rbp), %r14
movq 0x8(%rax), %rdx
leaq -0x160(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4af8a(%rip), %rsi     # 0x79ba0
callq 0x33d0
leaq -0xc8(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2ec48
movq %rdx, -0xd8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xc8(%rbp)
jmp 0x2ec4e
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xd0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %ebx
cmpl $0xa, %r13d
jb 0x2ecb8
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0x2ecb1
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2ecb6
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2ecb8
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2ec80
addl $-0x3, %ebx
jmp 0x2ecb8
addl $-0x2, %ebx
jmp 0x2ecb8
decl %ebx
leal (%rbx,%r12), %esi
leaq -0xa8(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0xb8(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movq -0xb8(%rbp), %rdi
addq -0x90(%rbp), %rdi
movl %ebx, %esi
movl %r13d, %edx
callq 0x2aad9
movq -0xd8(%rbp), %rcx
movq -0xd0(%rbp), %r8
movq -0xb0(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
leaq -0xc8(%rbp), %rdi
cmpq %rdi, %rcx
je 0x2ed21
movq -0xc8(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x2ed47
movl $0xf, %esi
leaq -0xa8(%rbp), %rdi
cmpq %rdi, -0xb8(%rbp)
je 0x2ed42
movq -0xa8(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x2ed5c
movq -0xb8(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
callq 0x30a0
jmp 0x2ed6c
leaq -0xb8(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0xf0(%rbp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x2ed96
movq %rsi, -0x100(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xf0(%rbp)
jmp 0x2ed9c
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0xf8(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x4ade9(%rip), %rsi     # 0x79bab
leaq -0x100(%rbp), %rdi
callq 0x33d0
movq %r14, -0x88(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2edf4
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x2edfb
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %ebx
cmpl $0xa, %r13d
jb 0x2ee62
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0x2ee5b
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2ee60
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2ee62
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2ee2a
addl $-0x3, %ebx
jmp 0x2ee62
addl $-0x2, %ebx
jmp 0x2ee62
decl %ebx
leal (%rbx,%r12), %esi
leaq -0x130(%rbp), %r12
movq %r12, -0x10(%r12)
leaq -0x140(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x140(%rbp), %rdi
addq -0x90(%rbp), %rdi
movl %ebx, %esi
movl %r13d, %edx
callq 0x2aad9
movq -0x88(%rbp), %rcx
movq -0x80(%rbp), %r8
movq -0x138(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r14, %rcx
je 0x2eebf
movq -0x78(%rbp), %rsi
cmpq %rsi, %rax
leaq -0x38(%rbp), %rbx
jbe 0x2eee2
movl $0xf, %esi
cmpq %r12, -0x140(%rbp)
je 0x2eedd
movq -0x130(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x2eef7
movq -0x140(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x30a0
jmp 0x2ef07
leaq -0x140(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r15, -0x68(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2ef24
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2ef2b
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x4ac68(%rip), %rsi     # 0x79bb6
leaq -0x68(%rbp), %rdi
callq 0x33d0
movq %rbx, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2ef77
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2ef7d
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2efaf
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2efbd
callq 0x31d0
movq -0x140(%rbp), %rdi
cmpq %r12, %rdi
je 0x2efce
callq 0x31d0
movq -0x88(%rbp), %rdi
cmpq %r14, %rdi
je 0x2efdf
callq 0x31d0
leaq -0xf0(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
leaq -0xc8(%rbp), %rbx
je 0x2effb
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x2f013
callq 0x31d0
movq -0xd8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2f024
callq 0x31d0
movq -0x160(%rbp), %rdi
leaq -0x150(%rbp), %rax
cmpq %rax, %rdi
je 0x2f03c
callq 0x31d0
movq -0x180(%rbp), %rdi
leaq -0x170(%rbp), %rax
cmpq %rax, %rdi
je 0x2f054
callq 0x31d0
movl $0x1, %ebx
cmpl $0xa, %r13d
jb 0x2f0a4
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0x2f09d
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2f0a2
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2f0a4
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2f06c
addl $-0x3, %ebx
jmp 0x2f0a4
addl $-0x2, %ebx
jmp 0x2f0a4
decl %ebx
movq -0xe0(%rbp), %rax
leal (%rbx,%rax), %esi
leaq -0x180(%rbp), %rdi
leaq -0x170(%rbp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0x3250
leaq -0x180(%rbp), %r14
movq (%r14), %rdi
addq -0x90(%rbp), %rdi
movl %ebx, %esi
movl %r13d, %edx
callq 0x2aad9
leaq 0x4aad0(%rip), %rcx     # 0x79bbb
movl $0xb, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x150(%rbp), %rsi
movq %rsi, -0x160(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2f12d
movq %rdx, -0x160(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x150(%rbp)
jmp 0x2f133
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x160(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4aa48(%rip), %rsi     # 0x79ba0
callq 0x33d0
leaq -0xc8(%rbp), %r14
movq %r14, -0xd8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2f18d
movq %rdx, -0xd8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xc8(%rbp)
jmp 0x2f194
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, -0xd0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %ebx
cmpl $0xa, %r13d
jb 0x2f1fe
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0x2f1f7
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2f1fc
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2f1fe
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2f1c6
addl $-0x3, %ebx
jmp 0x2f1fe
addl $-0x2, %ebx
jmp 0x2f1fe
decl %ebx
movq -0xe0(%rbp), %rax
leal (%rbx,%rax), %esi
leaq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0x3250
movq -0xb8(%rbp), %rdi
addq -0x90(%rbp), %rdi
movl %ebx, %esi
movl %r13d, %edx
callq 0x2aad9
movq -0xd8(%rbp), %rcx
movq -0xd0(%rbp), %r8
movq -0xb0(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r14, %rcx
je 0x2f265
movq -0xc8(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x2f28b
movl $0xf, %esi
leaq -0xa8(%rbp), %rdi
cmpq %rdi, -0xb8(%rbp)
je 0x2f286
movq -0xa8(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x2f2a0
movq -0xb8(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
callq 0x30a0
jmp 0x2f2b0
leaq -0xb8(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r15, -0x100(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2f2d6
movq %rdx, -0x100(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xf0(%rbp)
jmp 0x2f2dd
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0xf8(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x4a8c4(%rip), %rsi     # 0x79bc7
leaq -0x100(%rbp), %rdi
callq 0x33d0
leaq -0x78(%rbp), %rsi
movq %rsi, -0x88(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2f339
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x2f33f
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %ebx
cmpl $0xa, %r13d
jb 0x2f3a6
movl $0x4, %ebx
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r13d, %ecx
cmpl $0x63, %ecx
jbe 0x2f39f
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x2f3a4
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x2f3a6
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x2f36e
addl $-0x3, %ebx
jmp 0x2f3a6
addl $-0x2, %ebx
jmp 0x2f3a6
decl %ebx
movq -0xe0(%rbp), %rsi
addl %ebx, %esi
leaq -0x140(%rbp), %rdi
movq %r12, (%rdi)
movl $0x2d, %edx
callq 0x3250
movq -0x90(%rbp), %rdi
addq -0x140(%rbp), %rdi
movl %ebx, %esi
movl %r13d, %edx
callq 0x2aad9
movq -0x88(%rbp), %rcx
movq -0x80(%rbp), %r8
movq -0x138(%rbp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
leaq -0x78(%rbp), %r13
cmpq %r13, %rcx
je 0x2f403
movq -0x78(%rbp), %rsi
cmpq %rsi, %rax
leaq -0x38(%rbp), %rbx
movq -0x188(%rbp), %r14
jbe 0x2f42d
movl $0xf, %esi
cmpq %r12, -0x140(%rbp)
je 0x2f428
movq -0x130(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x2f442
movq -0x140(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x30a0
jmp 0x2f452
leaq -0x140(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2f473
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2f479
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x4a71a(%rip), %rsi     # 0x79bb6
leaq -0x68(%rbp), %rdi
callq 0x33d0
movq %rbx, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2f4c5
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2f4cb
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2f4fd
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x2f50f
callq 0x31d0
movq -0x140(%rbp), %rdi
cmpq %r12, %rdi
je 0x2f520
callq 0x31d0
movq -0x88(%rbp), %rdi
cmpq %r13, %rdi
je 0x2f531
callq 0x31d0
movq -0x100(%rbp), %rdi
cmpq %r15, %rdi
je 0x2f542
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x2f55a
callq 0x31d0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x2f572
callq 0x31d0
movq -0x160(%rbp), %rdi
leaq -0x150(%rbp), %rax
cmpq %rax, %rdi
je 0x2f58a
callq 0x31d0
movq -0x180(%rbp), %rdi
leaq -0x170(%rbp), %rax
cmpq %rax, %rdi
je 0x2f5a2
callq 0x31d0
leaq -0x48(%rbp), %rdi
movq %rbx, (%rdi)
leaq 0x4a622(%rip), %rsi     # 0x79bd2
leaq 0x4a64b(%rip), %rdx     # 0x79c02
callq 0x2b022
leaq -0x48(%rbp), %rsi
movq 0x10(%rbp), %rdi
callq 0x2ad60
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2f5d7
callq 0x31d0
testl %r14d, %r14d
jle 0x2f8ef
movl %r14d, %eax
movq %rax, -0x90(%rbp)
xorl %r13d, %r13d
leaq -0x88(%rbp), %r15
movl $0xd1b71759, %r12d      # imm = 0xD1B71759
movl $0x1, %ebx
cmpq $0xa, %r13
jb 0x2f642
movl $0x4, %ebx
movl %r13d, %eax
cmpl $0x63, %eax
jbe 0x2f63b
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x2f640
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x2f642
movl %eax, %ecx
imulq %r12, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebx
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x2f60d
addl $-0x3, %ebx
jmp 0x2f642
addl $-0x2, %ebx
jmp 0x2f642
decl %ebx
movl %ebx, %esi
leaq -0x78(%rbp), %rax
movq %rax, -0x88(%rbp)
movq %r15, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x88(%rbp), %rdi
movl %ebx, %esi
movl %r13d, %edx
callq 0x2aad9
movl $0x4, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x4a51a(%rip), %rcx     # 0x79b9b
callq 0x3230
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x38(%rbp), %rbx
je 0x2f6ae
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2f6b4
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x68(%rbp), %rdi
leaq 0x49746(%rip), %rsi     # 0x78e1c
callq 0x33d0
movq %rbx, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2f6fb
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2f701
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq %rbx, %r14
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r13, %rbx
shlq $0x5, %rbx
movq -0x1a0(%rbp), %rax
movq (%rax), %rdi
addq %rbx, %rdi
leaq -0x48(%rbp), %rsi
callq 0x3260
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x2f746
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x2f758
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x2f76d
callq 0x31d0
movl $0x1, %r14d
cmpq $0xa, %r13
jb 0x2f7bb
movl $0x4, %r14d
movl %r13d, %eax
cmpl $0x63, %eax
jbe 0x2f7b2
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x2f7b8
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x2f7bb
movl %eax, %ecx
imulq %r12, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x2f782
addl $-0x3, %r14d
jmp 0x2f7bb
addl $-0x2, %r14d
jmp 0x2f7bb
decl %r14d
movl %r14d, %esi
leaq -0x78(%rbp), %rax
movq %rax, -0x88(%rbp)
movq %r15, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x88(%rbp), %rdi
movl %r14d, %esi
movl %r13d, %edx
callq 0x2aad9
movl $0x4, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x4a453(%rip), %rcx     # 0x79c4f
callq 0x3230
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2f825
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2f82b
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x68(%rbp), %rdi
leaq 0x495cf(%rip), %rsi     # 0x78e1c
callq 0x33d0
leaq -0x38(%rbp), %r14
movq %r14, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2f876
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2f87d
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x198(%rbp), %rax
addq (%rax), %rbx
movq %rbx, %rdi
leaq -0x48(%rbp), %rsi
callq 0x3260
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x2f8b8
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x2f8ca
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x2f8df
callq 0x31d0
incq %r13
cmpq -0x90(%rbp), %r13
jne 0x2f5fa
movq -0x120(%rbp), %rdi
leaq -0x110(%rbp), %rax
cmpq %rax, %rdi
je 0x2f907
callq 0x31d0
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2fadb
jmp 0x2fc00
movq %rbx, %rcx
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %rcx, %rdi
je 0x2f93c
callq 0x31d0
jmp 0x2f93c
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x2f953
callq 0x31d0
jmp 0x2f953
movq %rax, %rbx
movq -0x140(%rbp), %rdi
cmpq %r12, %rdi
je 0x2f969
callq 0x31d0
jmp 0x2f969
movq %rax, %rbx
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x2f983
callq 0x31d0
jmp 0x2f983
movq %rax, %rbx
movq -0x100(%rbp), %rdi
cmpq %r15, %rdi
jne 0x2fa21
jmp 0x2fa2b
jmp 0x2fa28
jmp 0x2fa45
jmp 0x2fa64
jmp 0x2fa86
jmp 0x2fc00
movq %rbx, %rcx
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %rcx, %rdi
je 0x2f9ca
callq 0x31d0
jmp 0x2f9ca
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x2f9e1
callq 0x31d0
jmp 0x2f9e1
movq %rax, %rbx
movq -0x140(%rbp), %rdi
cmpq %r12, %rdi
je 0x2f9f7
callq 0x31d0
jmp 0x2f9f7
movq %rax, %rbx
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x2fa11
callq 0x31d0
jmp 0x2fa11
movq %rax, %rbx
leaq -0xf0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2fa2b
callq 0x31d0
jmp 0x2fa2b
movq %rax, %rbx
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x2fa48
callq 0x31d0
jmp 0x2fa48
movq %rax, %rbx
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x2fa67
callq 0x31d0
jmp 0x2fa67
jmp 0x2fadb
movq %rax, %rbx
movq -0x160(%rbp), %rdi
leaq -0x150(%rbp), %rax
cmpq %rax, %rdi
je 0x2fa89
callq 0x31d0
jmp 0x2fa89
jmp 0x2fc00
movq %rax, %rbx
movq -0x180(%rbp), %rdi
leaq -0x170(%rbp), %rax
jmp 0x2fc2a
jmp 0x2fadb
jmp 0x2fc00
jmp 0x2fc00
jmp 0x2fb5d
jmp 0x2fba1
jmp 0x2faf8
jmp 0x2fc0a
jmp 0x2fc05
jmp 0x2fc00
jmp 0x2faf8
jmp 0x2fc0a
jmp 0x2fc05
jmp 0x2fc00
jmp 0x2fadb
jmp 0x2fc00
movq %rbx, %rcx
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %rcx, %rdi
jne 0x2fc2f
jmp 0x2fc34
jmp 0x2fc00
movq %rbx, %rcx
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %rcx, %rdi
jne 0x2fb40
jmp 0x2fc0d
jmp 0x2fc0a
jmp 0x2fc05
jmp 0x2fc00
jmp 0x2fb2c
jmp 0x2fc0a
jmp 0x2fc05
jmp 0x2fc00
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2fc0d
callq 0x31d0
jmp 0x2fc0d
jmp 0x2fc0a
jmp 0x2fc05
jmp 0x2fc00
jmp 0x2fb5d
jmp 0x2fba1
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
jmp 0x2fb8e
jmp 0x2fba1
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2fb86
callq 0x31d0
jmp 0x2fb86
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x2fc3b
callq 0x31d0
jmp 0x2fc3b
movq %rax, %rbx
jmp 0x2fc3b
movq %rax, %rbx
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2fbc3
callq 0x31d0
jmp 0x2fbc3
movq %rax, %rbx
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x2fbdd
callq 0x31d0
jmp 0x2fbdd
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
jne 0x2fc47
jmp 0x2fc4c
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
jne 0x2fc47
jmp 0x2fc4c
jmp 0x2fc00
jmp 0x2fc05
jmp 0x2fc0a
movq %rax, %rbx
jmp 0x2fc34
movq %rax, %rbx
jmp 0x2fc1f
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x2fc1f
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x2fc34
callq 0x31d0
leaq -0x110(%rbp), %r14
movq -0x120(%rbp), %rdi
cmpq %r14, %rdi
je 0x2fc4c
callq 0x31d0
movq %rbx, %rdi
callq 0x33a0