// File: /workspace/github_cpp_makefile_star2_O1/temelmertcan[P]multgen/src/pp_gen.cpp
// Function: create_unsignedpp(int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>**&, int&, int&, std::queue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>&)
void create_unsignedpp (int m, int n,
                        string**& pp_matrix,
                        int& pp_dim1,
                        int& pp_dim2,
			
                        std::queue<string>& verilog){

  pp_dim1 = m;
  pp_dim2 = n+m-1;

  pp_matrix = new string*[pp_dim1];

  for (int i = 0; i<m; i++)
    verilog.push ( "wire logic [" + to_string(n-1) + ":0] pp" + to_string(i) + ";");

  for (int i = 0; i < m; i++){
    pp_matrix[i] = new string[pp_dim2];
    for (int j = 0; j < i; j++){
      pp_matrix[i][j] = "";
    }
    for (int j = 0; j < n; j++){
      string cur;
      cur = "pp" + to_string(i) + "[" + to_string(j) + "]";
      pp_matrix[i][j+i] = cur;
    }
    for (int j = n+i; j < n+m-1; j++){
      pp_matrix[i][j] = "";
    }

    verilog.push (
                  "assign pp" + to_string(i)  + " = {"
                  + to_string(n)
                  + "{IN1["
                  + to_string(i)
                  + "]}} & IN2;");
  }

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

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x188, %rsp            # imm = 0x188
movq %r9, -0x188(%rbp)
movq %rdx, %r14
movl %edi, %ebx
movl %edi, (%rcx)
movq %rsi, -0x130(%rbp)
leal -0x1(%rsi,%rbx), %eax
movq %r8, -0x1a8(%rbp)
movl %eax, -0x128(%rbp)
movl %eax, (%r8)
movslq (%rcx), %rax
leaq (,%rax,8), %rcx
testq %rax, %rax
movq $-0x1, %rdi
cmovnsq %rcx, %rdi
callq 0x3030
movq %r14, -0x140(%rbp)
movq %rax, (%r14)
movq %rbx, -0xb0(%rbp)
testl %ebx, %ebx
jle 0x3c42f
movq -0x130(%rbp), %rax
decl %eax
movl %eax, %ebx
negl %ebx
cmovsl %eax, %ebx
shrl $0x1f, %eax
movq %rax, -0x138(%rbp)
xorl %r14d, %r14d
movl $0xd1b71759, %r12d      # imm = 0xD1B71759
movl $0x1, %r13d
cmpl $0xa, %ebx
jb 0x3c0fa
movl $0x4, %r13d
movl %ebx, %eax
cmpl $0x63, %eax
jbe 0x3c0f1
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3c0f7
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3c0fa
movl %eax, %ecx
imulq %r12, %rcx
shrq $0x2d, %rcx
addl $0x4, %r13d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3c0c1
addl $-0x3, %r13d
jmp 0x3c0fa
addl $-0x2, %r13d
jmp 0x3c0fa
decl %r13d
movl %ebx, %r15d
movq -0x138(%rbp), %rbx
leal (%rbx,%r13), %esi
leaq -0xc8(%rbp), %rax
movq %rax, -0xd8(%rbp)
leaq -0xd8(%rbp), %r12
movq %r12, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0xd8(%rbp), %rdi
addq %rbx, %rdi
movl %r15d, %ebx
movl %r13d, %esi
movl %r15d, %edx
callq 0x2aad9
movl $0xc, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x3cdda(%rip), %rcx     # 0x78f30
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), %r13
je 0x3c183
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x3c189
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movl $0xd1b71759, %r12d      # imm = 0xD1B71759
movq 0x8(%rax), %rdx
movq %rdx, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x68(%rbp), %rdi
leaq 0x3ddac(%rip), %rsi     # 0x79f5d
callq 0x33d0
movq %r13, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3c1d6
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3c1de
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r13d
cmpl $0xa, %r14d
jb 0x3c243
movl $0x4, %r13d
movl %r14d, %eax
cmpl $0x63, %eax
jbe 0x3c23a
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3c240
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3c243
movl %eax, %ecx
imulq %r12, %rcx
shrq $0x2d, %rcx
addl $0x4, %r13d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3c20a
addl $-0x3, %r13d
jmp 0x3c243
addl $-0x2, %r13d
jmp 0x3c243
decl %r13d
movl %r13d, %esi
leaq -0x98(%rbp), %rax
movq %rax, -0xa8(%rbp)
leaq -0xa8(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movq -0xa8(%rbp), %rdi
movl %r13d, %esi
movl %r14d, %edx
callq 0x2aad9
movq -0x48(%rbp), %rcx
movl $0xf, %esi
leaq -0x38(%rbp), %rax
cmpq %rax, %rcx
je 0x3c28d
movq -0x38(%rbp), %rsi
movq -0x40(%rbp), %r8
movq -0xa0(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
leaq -0x58(%rbp), %r15
leaq -0xe8(%rbp), %r13
jbe 0x3c2cd
movl $0xf, %esi
leaq -0x98(%rbp), %rdi
cmpq %rdi, -0xa8(%rbp)
je 0x3c2c8
movq -0x98(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x3c2df
movq -0xa8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x30a0
jmp 0x3c2ef
leaq -0xa8(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x78(%rbp), %rsi
movq %rsi, -0x88(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x3c316
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x3c31c
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0x88(%rbp), %rdi
leaq 0x3e3cb(%rip), %rsi     # 0x7a711
callq 0x33d0
movq %r13, -0xf8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3c374
movq %rdx, -0xf8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xe8(%rbp)
jmp 0x3c37c
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0xf0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x188(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x2ad60
movq -0xf8(%rbp), %rdi
cmpq %r13, %rdi
je 0x3c3ba
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x3c3cf
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x3c3e7
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3c3f9
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x3c407
callq 0x31d0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x3c41f
callq 0x31d0
incl %r14d
cmpl -0xb0(%rbp), %r14d
jne 0x3c0ae
cmpl $0x0, -0xb0(%rbp)
jle 0x3cf17
movq -0x130(%rbp), %rcx
movl %ecx, %eax
negl %eax
cmovsl %ecx, %eax
movl %eax, -0xb4(%rbp)
movl %ecx, %eax
shrl $0x1f, %eax
movq %rax, -0x198(%rbp)
movslq %ecx, %rax
movslq -0x128(%rbp), %rdx
subq %rax, %rdx
movq %rdx, -0x1a0(%rbp)
movq -0xb0(%rbp), %rax
movl %eax, %edx
movq %rdx, -0x190(%rbp)
decl %eax
movq %rax, -0xb0(%rbp)
movl %ecx, %eax
movq %rax, -0x138(%rbp)
xorl %r12d, %r12d
xorl %ebx, %ebx
movl %ecx, -0xfc(%rbp)
movq %r12, -0x128(%rbp)
movq -0x1a8(%rbp), %rax
movslq (%rax), %r12
movq %r12, %r14
shlq $0x5, %r14
leaq 0x8(%r14), %rdi
testq %r12, %r12
movq $-0x1, %rax
cmovsq %rax, %rdi
callq 0x3030
movq %r12, (%rax)
testq %r12, %r12
je 0x3c4f1
leaq 0x18(%rax), %rcx
movq %rcx, -0x10(%rcx)
movq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
addq $0x20, %rcx
addq $-0x20, %r14
jne 0x3c4d8
addq $0x8, %rax
movq -0x140(%rbp), %r15
movq (%r15), %rcx
movq %rax, (%rcx,%rbx,8)
testq %rbx, %rbx
movq -0x128(%rbp), %r12
leaq 0x3e0ed(%rip), %r13     # 0x7a601
je 0x3c53e
xorl %r14d, %r14d
movq (%r15), %rax
movq (%rax,%rbx,8), %rdi
movq 0x8(%rdi,%r14), %rdx
addq %r14, %rdi
xorl %esi, %esi
movq %r13, %rcx
xorl %r8d, %r8d
callq 0x3310
addq $0x20, %r14
cmpq %r14, %r12
jne 0x3c519
cmpl $0x0, -0x130(%rbp)
leaq -0x110(%rbp), %r15
leaq -0xe8(%rbp), %r12
leaq -0xa8(%rbp), %r13
jle 0x3c928
xorl %r14d, %r14d
movq %r12, -0xf8(%rbp)
movq $0x0, -0xf0(%rbp)
movb $0x0, -0xe8(%rbp)
movl $0x1, %r12d
cmpq $0xa, %rbx
leaq -0x98(%rbp), %rdx
jb 0x3c5d5
movl $0x4, %r12d
movl %ebx, %eax
movl $0xd1b71759, %esi       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x3c5cc
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3c5d2
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3c5d5
movl %eax, %ecx
imulq %rsi, %rcx
shrq $0x2d, %rcx
addl $0x4, %r12d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3c59c
addl $-0x3, %r12d
jmp 0x3c5d5
addl $-0x2, %r12d
jmp 0x3c5d5
decl %r12d
movl %r12d, %esi
movq %rdx, -0xa8(%rbp)
movq %r13, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0xa8(%rbp), %rdi
movl %r12d, %esi
movl %ebx, %edx
callq 0x2aad9
movl $0x2, %r8d
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x3d950(%rip), %rcx     # 0x79f61
callq 0x3230
leaq -0xc8(%rbp), %r12
movq %r12, -0xd8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3c646
movq %rdx, -0xd8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xc8(%rbp)
jmp 0x3c64e
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0xd0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0xd8(%rbp), %rdi
leaq 0x3ce17(%rip), %rsi     # 0x7948d
callq 0x33d0
leaq -0x58(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3c69f
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x3c6a5
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movl $0xd1b71759, %esi       # imm = 0xD1B71759
movq 0x8(%rax), %rdx
movq %rdx, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r12d
cmpq $0xa, %r14
jb 0x3c70f
movl $0x4, %r12d
movl %r14d, %eax
cmpl $0x63, %eax
jbe 0x3c706
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3c70c
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3c70f
movl %eax, %ecx
imulq %rsi, %rcx
shrq $0x2d, %rcx
addl $0x4, %r12d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3c6d6
addl $-0x3, %r12d
jmp 0x3c70f
addl $-0x2, %r12d
jmp 0x3c70f
decl %r12d
movl %r12d, %esi
movq %r15, -0x120(%rbp)
leaq -0x120(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x120(%rbp), %rdi
movl %r12d, %esi
movl %r14d, %edx
callq 0x2aad9
movq -0x68(%rbp), %rcx
movl $0xf, %esi
leaq -0x58(%rbp), %rax
cmpq %rax, %rcx
je 0x3c752
movq -0x58(%rbp), %rsi
movq -0x60(%rbp), %r8
movq -0x118(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
leaq -0xc8(%rbp), %r12
jbe 0x3c787
movl $0xf, %esi
cmpq %r15, -0x120(%rbp)
je 0x3c782
movq -0x110(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x3c799
movq -0x120(%rbp), %rsi
leaq -0x68(%rbp), %rdi
callq 0x30a0
jmp 0x3c7a9
leaq -0x120(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x3c7ca
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3c7d0
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0x48(%rbp), %rdi
leaq 0x3c625(%rip), %rsi     # 0x78e1c
callq 0x33d0
leaq -0x78(%rbp), %r13
movq %r13, -0x88(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3c826
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x3c82e
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0xf8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x3260
movq -0x88(%rbp), %rdi
cmpq %r13, %rdi
je 0x3c869
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
leaq -0xa8(%rbp), %r13
je 0x3c882
callq 0x31d0
movq -0x120(%rbp), %rdi
cmpq %r15, %rdi
je 0x3c893
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x3c8a5
callq 0x31d0
movq -0xd8(%rbp), %rdi
cmpq %r12, %rdi
je 0x3c8b6
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
movq -0x140(%rbp), %r15
leaq -0xe8(%rbp), %r12
je 0x3c8dc
callq 0x31d0
movq (%r15), %rax
movq %r14, %rcx
shlq $0x5, %rcx
addq (%rax,%rbx,8), %rcx
movq %rbx, %rdi
shlq $0x5, %rdi
addq %rcx, %rdi
leaq -0xf8(%rbp), %rsi
callq 0x3120
movq -0xf8(%rbp), %rdi
cmpq %r12, %rdi
je 0x3c911
callq 0x31d0
incq %r14
cmpq -0x138(%rbp), %r14
leaq -0x110(%rbp), %r15
jne 0x3c563
cmpq -0x1a0(%rbp), %rbx
movq -0x140(%rbp), %r15
leaq 0x3dcc4(%rip), %r13     # 0x7a601
jge 0x3c979
movslq -0xfc(%rbp), %r14
shlq $0x5, %r14
movq -0xb0(%rbp), %rax
movl %eax, %r12d
movq (%r15), %rax
movq (%rax,%rbx,8), %rdi
movq 0x8(%rdi,%r14), %rdx
addq %r14, %rdi
xorl %esi, %esi
movq %r13, %rcx
xorl %r8d, %r8d
callq 0x3310
addq $0x20, %r14
decl %r12d
jne 0x3c954
movl $0x1, %r14d
cmpq $0xa, %rbx
leaq -0xc8(%rbp), %r15
leaq -0xa8(%rbp), %r13
jb 0x3c9d9
movl $0x4, %r14d
movl %ebx, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x3c9d0
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3c9d6
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3c9d9
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3c9a0
addl $-0x3, %r14d
jmp 0x3c9d9
addl $-0x2, %r14d
jmp 0x3c9d9
decl %r14d
movl %r14d, %esi
leaq -0x110(%rbp), %rax
movq %rax, -0x120(%rbp)
leaq -0x120(%rbp), %r12
movq %r12, %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x120(%rbp), %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x2aad9
movl $0x9, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x3d541(%rip), %rcx     # 0x79f64
callq 0x3230
leaq -0x98(%rbp), %rsi
movq %rsi, -0xa8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3ca58
movq %rdx, -0xa8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x98(%rbp)
jmp 0x3ca5e
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xa0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r13, %rdi
leaq 0x3d4ec(%rip), %rsi     # 0x79f6e
callq 0x33d0
movq %r15, -0xd8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
je 0x3cab5
movq %rdx, -0xd8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xc8(%rbp)
jmp 0x3cabc
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0xd0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r14d
cmpl $0xa, -0xb4(%rbp)
movq -0x198(%rbp), %rdx
jb 0x3cb31
movl $0x4, %r14d
movl -0xb4(%rbp), %eax
cmpl $0x63, %eax
jbe 0x3cb28
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3cb2e
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3cb31
movl %eax, %ecx
imulq %rsi, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3caf8
addl $-0x3, %r14d
jmp 0x3cb31
addl $-0x2, %r14d
jmp 0x3cb31
decl %r14d
leal (%rdx,%r14), %esi
leaq -0x170(%rbp), %rax
movq %rax, -0x180(%rbp)
leaq -0x180(%rbp), %rdi
movq %rdx, %r13
movl $0x2d, %edx
callq 0x3250
movq -0x180(%rbp), %rdi
addq %r13, %rdi
movl %r14d, %esi
movl -0xb4(%rbp), %edx
callq 0x2aad9
movq -0xd8(%rbp), %rcx
movl $0xf, %esi
cmpq %r15, %rcx
je 0x3cb87
movq -0xc8(%rbp), %rsi
movq -0xd0(%rbp), %r8
movq -0x178(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
leaq -0x38(%rbp), %r14
leaq -0x58(%rbp), %r12
jbe 0x3cbc7
movl $0xf, %esi
leaq -0x170(%rbp), %rdi
cmpq %rdi, -0x180(%rbp)
je 0x3cbc2
movq -0x170(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x3cbdc
movq -0x180(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
callq 0x30a0
jmp 0x3cbec
leaq -0x180(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
movq %r12, -0x68(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x3cc09
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x3cc11
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0x68(%rbp), %rdi
leaq 0x3c758(%rip), %rsi     # 0x79390
callq 0x33d0
movq %r14, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
je 0x3cc62
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3cc69
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)
movl $0x1, %r14d
cmpq $0xa, %rbx
jb 0x3cccd
movl $0x4, %r14d
movl %ebx, %eax
cmpl $0x63, %eax
jbe 0x3ccc4
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x3ccca
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x3cccd
movl %eax, %ecx
imulq %rsi, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x3cc94
addl $-0x3, %r14d
jmp 0x3cccd
addl $-0x2, %r14d
jmp 0x3cccd
decl %r14d
movl %r14d, %esi
leaq -0x150(%rbp), %rax
movq %rax, -0x160(%rbp)
leaq -0x160(%rbp), %rdi
movl $0x2d, %edx
callq 0x3250
movq -0x160(%rbp), %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x2aad9
movq -0x48(%rbp), %rcx
movl $0xf, %esi
leaq -0x38(%rbp), %r14
cmpq %r14, %rcx
je 0x3cd16
movq -0x38(%rbp), %rsi
movq -0x40(%rbp), %r8
movq -0x158(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x3cd4b
movl $0xf, %esi
leaq -0x150(%rbp), %rdi
cmpq %rdi, -0x160(%rbp)
je 0x3cd46
movq -0x150(%rbp), %rsi
cmpq %rsi, %rax
jbe 0x3cd5d
movq -0x160(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x30a0
jmp 0x3cd6d
leaq -0x160(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq -0x78(%rbp), %rsi
movq %rsi, -0x88(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x3cd94
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x3cd9a
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0x88(%rbp), %rdi
leaq 0x3d1af(%rip), %rsi     # 0x79f73
callq 0x33d0
leaq -0xe8(%rbp), %rsi
movq %rsi, -0xf8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3cdf9
movq %rdx, -0xf8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xe8(%rbp)
jmp 0x3cdff
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xf0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x188(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x2ad60
movq -0xf8(%rbp), %rdi
leaq -0xe8(%rbp), %rax
cmpq %rax, %rdi
je 0x3ce44
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x3ce59
callq 0x31d0
movq -0x160(%rbp), %rdi
leaq -0x150(%rbp), %rax
cmpq %rax, %rdi
je 0x3ce71
callq 0x31d0
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x3ce7f
callq 0x31d0
movq -0x68(%rbp), %rdi
cmpq %r12, %rdi
je 0x3ce8d
callq 0x31d0
movq -0x180(%rbp), %rdi
leaq -0x170(%rbp), %rax
cmpq %rax, %rdi
movq -0x128(%rbp), %r12
je 0x3ceac
callq 0x31d0
movq -0xd8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3cebd
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
leaq -0x110(%rbp), %r14
je 0x3cedc
callq 0x31d0
movq -0x120(%rbp), %rdi
cmpq %r14, %rdi
je 0x3ceed
callq 0x31d0
incq %rbx
incl -0xfc(%rbp)
addq $0x20, %r12
movq -0xb0(%rbp), %rax
decl %eax
movq %rax, -0xb0(%rbp)
cmpq -0x190(%rbp), %rbx
jne 0x3c49d
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x3cf80
movq %rax, %rbx
jmp 0x3cf68
movq %rax, %rbx
jmp 0x3cf53
movq %rax, %rbx
movq -0xf8(%rbp), %rdi
leaq -0xe8(%rbp), %rax
cmpq %rax, %rdi
je 0x3cf53
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x3cf68
callq 0x31d0
movq -0x160(%rbp), %rdi
leaq -0x150(%rbp), %rax
cmpq %rax, %rdi
je 0x3cf80
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3cfb2
callq 0x31d0
jmp 0x3cfb2
movq %rax, %rbx
leaq -0x110(%rbp), %r14
jmp 0x3d013
movq %rax, %rbx
jmp 0x3cff4
movq %rax, %rbx
jmp 0x3cfe3
movq %rax, %rbx
jmp 0x3cfc4
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x3cfc4
callq 0x31d0
movq -0x180(%rbp), %rdi
leaq -0x170(%rbp), %rax
cmpq %rax, %rdi
je 0x3cfdc
callq 0x31d0
leaq -0xc8(%rbp), %r15
movq -0xd8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3cff4
callq 0x31d0
leaq -0x110(%rbp), %r14
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x3d013
callq 0x31d0
movq -0x120(%rbp), %rdi
cmpq %r14, %rdi
jne 0x3d162
jmp 0x3d167
movq %rax, %rbx
jmp 0x3d0a6
movq %rax, %rbx
jmp 0x3d094
movq %rax, %rbx
jmp 0x3d082
movq %rax, %rbx
jmp 0x3d06a
movq %rax, %rbx
jmp 0x3d055
movq %rax, %rbx
movq -0xf8(%rbp), %rdi
cmpq %r13, %rdi
je 0x3d055
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x3d06a
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x3d082
callq 0x31d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3d094
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x3d0a6
callq 0x31d0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
jne 0x3d162
jmp 0x3d167
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3d0dc
callq 0x31d0
jmp 0x3d0dc
movq %rax, %rbx
movq -0x120(%rbp), %rdi
cmpq %r15, %rdi
je 0x3d0fe
callq 0x31d0
jmp 0x3d0fe
movq %rax, %rbx
jmp 0x3d156
movq %rax, %rbx
leaq -0xc8(%rbp), %r12
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x3d115
callq 0x31d0
jmp 0x3d115
movq %rax, %rbx
movq -0xd8(%rbp), %rdi
cmpq %r12, %rdi
je 0x3d12b
callq 0x31d0
jmp 0x3d12b
movq %rax, %rbx
leaq -0xe8(%rbp), %r12
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x3d156
callq 0x31d0
jmp 0x3d156
movq %rax, %rbx
leaq -0xe8(%rbp), %r12
movq -0xf8(%rbp), %rdi
cmpq %r12, %rdi
je 0x3d167
callq 0x31d0
movq %rbx, %rdi
callq 0x33a0