Function at 0x2c508be60
Capabilities:
Enumerate pe sections

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
movzx esi, byte [r8 + 0x20]
mov eax, esi
mov edi, esi
shr al, 2
mov r11, rcx
mov rbx, rdx
and eax, 7
and edi, 0x20
je 0x2c508c1e8
lea rdx, [r8 + 0x30]
lea r12, [r8 + 0x48]
test sil, 0x40
cmovne r12, rdx
movzx edx, byte [r11 + 0x20]
mov r10d, edx
mov r13d, edx
shr r10b, 2
and r10d, 7
movzx ebp, r10b
and r13d, 0x20
je 0x2c508c1f8
lea r14, [r11 + 0x30]
lea rcx, [r11 + 0x48]
test dl, 0x40
cmovne rcx, r14
cmp eax, ebp
je 0x2c508c204
cmp eax, 1
sete cl
cmp ebp, 2
sete r10b
test cl, cl
je 0x2c508c228
test r10b, r10b
je 0x2c508c228
test r13b, r13b
jne 0x2c508c5c0
mov rbp, qword [r11 + 0x48]
lea r10, [rbp + rbx*2]
test dil, dil
je 0x2c508c5e0
lea rax, [r8 + 0x30]
lea rdx, [r8 + 0x48]
and esi, 0x40
cmovne rdx, rax
lea r8, [rdx + r9]
and r9, 0xfffffffffffffffc
lea rsi, [rdx + r9]
cmp rdx, rsi
jae 0x2c508d010
sub r9, 1
mov r11, r9
shr r11, 2
add r11, 1
lea rax, [r11*4]
lea rcx, [rdx + rax]
add rax, rbx
lea rax, [rbp + rax*2]
cmp rdx, rax
setae al
cmp r10, rcx
setae bl
or al, bl
je 0x2c508cb50
cmp r9, 0xb
jbe 0x2c508cb50
mov r9, r11
xor eax, eax
pxor xmm1, xmm1
shr r9, 2
shl r9, 4
nop
movdqu xmm0, xmmword [rdx + rax]
movdqa xmm2, xmm0
punpckhbw xmm0, xmm1
punpcklbw xmm2, xmm1
movups xmmword [r10 + rax*2 + 0x10], xmm0
movups xmmword [r10 + rax*2], xmm2
add rax, 0x10
cmp r9, rax
jne 0x2c508bf80
mov r9, r11
and r9, 0xfffffffffffffffc
lea rax, [rdx + r9*4]
lea rdx, [r10 + r9*8]
cmp r11, r9
je 0x2c508c043
movzx r9d, byte [rax]
mov word [rdx], r9w
movzx r9d, byte [rax + 1]
mov word [rdx + 2], r9w
movzx r9d, byte [rax + 2]
mov word [rdx + 4], r9w
movzx r9d, byte [rax + 3]
mov word [rdx + 6], r9w
lea r9, [rax + 4]
cmp rsi, r9
jbe 0x2c508c043
movzx r9d, byte [rax + 4]
mov word [rdx + 8], r9w
movzx r9d, byte [rax + 5]
mov word [rdx + 0xa], r9w
movzx r9d, byte [rax + 6]
mov word [rdx + 0xc], r9w
movzx r9d, byte [rax + 7]
mov word [rdx + 0xe], r9w
lea r9, [rax + 8]
cmp rsi, r9
jbe 0x2c508c043
movzx r9d, byte [rax + 8]
mov word [rdx + 0x10], r9w
movzx r9d, byte [rax + 9]
mov word [rdx + 0x12], r9w
movzx r9d, byte [rax + 0xa]
mov word [rdx + 0x14], r9w
movzx eax, byte [rax + 0xb]
mov word [rdx + 0x16], ax
lea r10, [r10 + r11*8]
cmp r8, rcx
jbe 0x2c508c1d8
mov rdx, r8
sub rdx, rcx
lea rax, [r10 + rdx*2]
cmp rcx, rax
setae al
cmp r8, r10
setbe r9b
or al, r9b
je 0x2c508cb30
lea rax, [rdx - 1]
cmp rax, 0xe
jbe 0x2c508cb30
mov r9, rdx
xor eax, eax
pxor xmm1, xmm1
and r9, 0xfffffffffffffff0
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx + rax]
movdqa xmm2, xmm0
punpckhbw xmm0, xmm1
punpcklbw xmm2, xmm1
movups xmmword [r10 + rax*2 + 0x10], xmm0
movups xmmword [r10 + rax*2], xmm2
add rax, 0x10
cmp r9, rax
jne 0x2c508c090
mov r9, rdx
and r9, 0xfffffffffffffff0
add rcx, r9
lea rax, [r10 + r9*2]
cmp rdx, r9
je 0x2c508c1d8
movzx edx, byte [rcx]
mov word [rax], dx
lea rdx, [rcx + 1]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 1]
mov word [rax + 2], dx
lea rdx, [rcx + 2]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 2]
mov word [rax + 4], dx
lea rdx, [rcx + 3]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 3]
mov word [rax + 6], dx
lea rdx, [rcx + 4]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 4]
mov word [rax + 8], dx
lea rdx, [rcx + 5]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 5]
mov word [rax + 0xa], dx
lea rdx, [rcx + 6]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 6]
mov word [rax + 0xc], dx
lea rdx, [rcx + 7]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 7]
mov word [rax + 0xe], dx
lea rdx, [rcx + 8]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 8]
mov word [rax + 0x10], dx
lea rdx, [rcx + 9]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 9]
mov word [rax + 0x12], dx
lea rdx, [rcx + 0xa]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 0xa]
mov word [rax + 0x14], dx
lea rdx, [rcx + 0xb]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 0xb]
mov word [rax + 0x16], dx
lea rdx, [rcx + 0xc]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 0xc]
mov word [rax + 0x18], dx
lea rdx, [rcx + 0xd]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 0xd]
mov word [rax + 0x1a], dx
lea rdx, [rcx + 0xe]
cmp r8, rdx
jbe 0x2c508c1d8
movzx edx, byte [rcx + 0xe]
mov word [rax + 0x1c], dx
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov r12, qword [r8 + 0x48]
jmp 0x2c508be98
mov rcx, qword [r11 + 0x48]
cmp eax, ebp
jne 0x2c508bed0
movzx r8d, r10b
mov rdx, r12
imul rbx, r8
imul r8, r9
add rcx, rbx
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp sub.msvcrt.dll_memcpy
cmp ebp, 4
sete r12b
test cl, cl
je 0x2c508c5f0
test r12b, r12b
je 0x2c508c5f0
test r13b, r13b
je 0x2c508c7f8
lea rax, [r11 + 0x30]
add r11, 0x48
and edx, 0x40
cmovne r11, rax
lea r10, [r11 + rbx*4]
test dil, dil
je 0x2c508c7e8
lea rax, [r8 + 0x30]
lea rdx, [r8 + 0x48]
and esi, 0x40
cmovne rdx, rax
lea rsi, [rdx + r9]
and r9, 0xfffffffffffffffc
lea rbp, [rdx + r9]
cmp rdx, rbp
jae 0x2c508d256
sub r9, 1
mov rcx, rdx
mov rdi, r9
shr rdi, 2
add rdi, 1
lea rax, [rdi*4]
lea r8, [rdx + rax]
add rax, rbx
lea rax, [r11 + rax*4]
cmp rdx, rax
setae al
cmp r10, r8
setae r11b
or al, r11b
mov rax, r10
je 0x2c508c590
cmp r9, 0xb
jbe 0x2c508c590
mov r9, rdi
pxor xmm3, xmm3
pxor xmm2, xmm2
shr r9, 2
shl r9, 4
add r9, rdx
nop word [rax + rax]
movdqu xmm0, xmmword [rcx]
add rcx, 0x10
add rax, 0x40
movdqa xmm1, xmm0
punpckhbw xmm0, xmm3
punpcklbw xmm1, xmm3
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
movups xmmword [rax - 0x30], xmm1
movdqa xmm1, xmm0
punpcklwd xmm4, xmm2
punpckhwd xmm0, xmm2
punpcklwd xmm1, xmm2
movups xmmword [rax - 0x40], xmm4
movups xmmword [rax - 0x20], xmm1
movups xmmword [rax - 0x10], xmm0
cmp r9, rcx
jne 0x2c508c2f0
mov rcx, rdi
and rcx, 0xfffffffffffffffc
mov rax, rcx
lea rdx, [rdx + rcx*4]
shl rax, 4
add rax, r10
cmp rdi, rcx
je 0x2c508c3b3
movzx ecx, byte [rdx]
mov dword [rax], ecx
movzx ecx, byte [rdx + 1]
mov dword [rax + 4], ecx
movzx ecx, byte [rdx + 2]
mov dword [rax + 8], ecx
movzx ecx, byte [rdx + 3]
mov dword [rax + 0xc], ecx
lea rcx, [rdx + 4]
cmp rbp, rcx
jbe 0x2c508c3b3
movzx ecx, byte [rdx + 4]
mov dword [rax + 0x10], ecx
movzx ecx, byte [rdx + 5]
mov dword [rax + 0x14], ecx
movzx ecx, byte [rdx + 6]
mov dword [rax + 0x18], ecx
movzx ecx, byte [rdx + 7]
mov dword [rax + 0x1c], ecx
lea rcx, [rdx + 8]
cmp rbp, rcx
jbe 0x2c508c3b3
movzx ecx, byte [rdx + 8]
mov dword [rax + 0x20], ecx
movzx ecx, byte [rdx + 9]
mov dword [rax + 0x24], ecx
movzx ecx, byte [rdx + 0xa]
mov dword [rax + 0x28], ecx
movzx edx, byte [rdx + 0xb]
mov dword [rax + 0x2c], edx
shl rdi, 4
add r10, rdi
cmp rsi, r8
jbe 0x2c508c1d8
mov r9, rsi
mov rdx, r8
sub r9, r8
lea rax, [r10 + r9*4]
cmp r8, rax
setae al
cmp rsi, r10
setbe cl
or al, cl
je 0x2c508d018
lea rax, [r9 - 1]
cmp rax, 0xe
jbe 0x2c508d018
mov rcx, r9
pxor xmm3, xmm3
pxor xmm2, xmm2
mov rax, r10
and rcx, 0xfffffffffffffff0
add rcx, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rdx]
add rdx, 0x10
add rax, 0x40
movdqa xmm1, xmm0
punpckhbw xmm0, xmm3
punpcklbw xmm1, xmm3
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
movups xmmword [rax - 0x30], xmm1
movdqa xmm1, xmm0
punpcklwd xmm4, xmm2
punpckhwd xmm0, xmm2
punpcklwd xmm1, xmm2
movups xmmword [rax - 0x40], xmm4
movups xmmword [rax - 0x20], xmm1
movups xmmword [rax - 0x10], xmm0
cmp rdx, rcx
jne 0x2c508c410
mov rcx, r9
and rcx, 0xfffffffffffffff0
lea rax, [r8 + rcx]
lea rdx, [r10 + rcx*4]
cmp r9, rcx
je 0x2c508c1d8
movzx ecx, byte [rax]
mov dword [rdx], ecx
lea rcx, [rax + 1]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 1]
mov dword [rdx + 4], ecx
lea rcx, [rax + 2]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 2]
mov dword [rdx + 8], ecx
lea rcx, [rax + 3]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 3]
mov dword [rdx + 0xc], ecx
lea rcx, [rax + 4]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 4]
mov dword [rdx + 0x10], ecx
lea rcx, [rax + 5]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 5]
mov dword [rdx + 0x14], ecx
lea rcx, [rax + 6]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 6]
mov dword [rdx + 0x18], ecx
lea rcx, [rax + 7]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 7]
mov dword [rdx + 0x1c], ecx
lea rcx, [rax + 8]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 8]
mov dword [rdx + 0x20], ecx
lea rcx, [rax + 9]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 9]
mov dword [rdx + 0x24], ecx
lea rcx, [rax + 0xa]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 0xa]
mov dword [rdx + 0x28], ecx
lea rcx, [rax + 0xb]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 0xb]
mov dword [rdx + 0x2c], ecx
lea rcx, [rax + 0xc]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 0xc]
mov dword [rdx + 0x30], ecx
lea rcx, [rax + 0xd]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx ecx, byte [rax + 0xd]
mov dword [rdx + 0x34], ecx
lea rcx, [rax + 0xe]
cmp rsi, rcx
jbe 0x2c508c1d8
movzx eax, byte [rax + 0xe]
mov dword [rdx + 0x38], eax
jmp 0x2c508c1d8
movzx ecx, byte [rdx]
add rdx, 4
add rax, 0x10
mov dword [rax - 0x10], ecx
movzx ecx, byte [rdx - 3]
mov dword [rax - 0xc], ecx
movzx ecx, byte [rdx - 2]
mov dword [rax - 8], ecx
movzx ecx, byte [rdx - 1]
mov dword [rax - 4], ecx
cmp rbp, rdx
ja 0x2c508c590
jmp 0x2c508c3b3
lea rax, [r11 + 0x30]
add r11, 0x48
and edx, 0x40
cmove rax, r11
mov rbp, rax
lea r10, [rbp + rbx*2]
test dil, dil
jne 0x2c508bf09
mov rdx, qword [r8 + 0x48]
jmp 0x2c508bf18
cmp eax, 2
sete cl
test r12b, r12b
je 0x2c508c808
test cl, cl
je 0x2c508c808
test r13b, r13b
jne 0x2c508cbd0
mov rax, qword [r11 + 0x48]
lea rdx, [rax + rbx*4]
test dil, dil
je 0x2c508d000
lea rax, [r8 + 0x30]
lea rcx, [r8 + 0x48]
and esi, 0x40
cmovne rcx, rax
add r9, r9
lea r10, [rcx + r9]
and r9, 0xfffffffffffffff8
lea rax, [rcx + r9]
cmp rcx, rax
jae 0x2c508c6f1
lea rax, [r9 - 1]
mov r9, rax
shr r9, 3
add r9, 1
cmp rax, 7
jbe 0x2c508d270
mov r8, r9
xor eax, eax
pxor xmm1, xmm1
shr r8, 1
shl r8, 4
nop dword [rax]
movdqu xmm0, xmmword [rcx + rax]
movdqa xmm2, xmm0
punpckhwd xmm0, xmm1
punpcklwd xmm2, xmm1
movups xmmword [rdx + rax*2 + 0x10], xmm0
movups xmmword [rdx + rax*2], xmm2
add rax, 0x10
cmp rax, r8
jne 0x2c508c678
mov r8, r9
and r8, 0xfffffffffffffffe
mov r11, r8
lea rax, [rcx + r8*8]
shl r11, 4
add r11, rdx
cmp r9, r8
je 0x2c508c6e6
movzx ebx, word [rax]
movzx r8d, word [rax + 2]
movd xmm0, ebx
movzx ebx, word [rax + 4]
movzx eax, word [rax + 6]
movd xmm1, ebx
movd xmm5, eax
punpckldq xmm1, xmm5
movd xmm5, r8d
punpckldq xmm0, xmm5
punpcklqdq xmm0, xmm1
movups xmmword [r11], xmm0
lea rcx, [rcx + r9*8]
shl r9, 4
add rdx, r9
cmp rcx, r10
jae 0x2c508c1d8
lea rax, [r10 - 1]
sub rax, rcx
mov r9, rax
shr r9, 1
add r9, 1
cmp rax, 0xd
jbe 0x2c508c763
mov r8, r9
xor eax, eax
pxor xmm1, xmm1
shr r8, 3
shl r8, 4
nop word [rax + rax]
movdqu xmm0, xmmword [rcx + rax]
movdqa xmm2, xmm0
punpckhwd xmm0, xmm1
punpcklwd xmm2, xmm1
movups xmmword [rdx + rax*2 + 0x10], xmm0
movups xmmword [rdx + rax*2], xmm2
add rax, 0x10
cmp rax, r8
jne 0x2c508c728
mov rax, r9
and rax, 0xfffffffffffffff8
lea rcx, [rcx + rax*2]
lea rdx, [rdx + rax*4]
cmp r9, rax
je 0x2c508c1d8
movzx eax, word [rcx]
mov dword [rdx], eax
lea rax, [rcx + 2]
cmp r10, rax
jbe 0x2c508c1d8
movzx eax, word [rcx + 2]
mov dword [rdx + 4], eax
lea rax, [rcx + 4]
cmp r10, rax
jbe 0x2c508c1d8
movzx eax, word [rcx + 4]
mov dword [rdx + 8], eax
lea rax, [rcx + 6]
cmp r10, rax
jbe 0x2c508c1d8
movzx eax, word [rcx + 6]
mov dword [rdx + 0xc], eax
lea rax, [rcx + 8]
cmp r10, rax
jbe 0x2c508c1d8
movzx eax, word [rcx + 8]
mov dword [rdx + 0x10], eax
lea rax, [rcx + 0xa]
cmp r10, rax
jbe 0x2c508c1d8
movzx eax, word [rcx + 0xa]
mov dword [rdx + 0x14], eax
lea rax, [rcx + 0xc]
cmp r10, rax
jbe 0x2c508c1d8
movzx eax, word [rcx + 0xc]
mov dword [rdx + 0x18], eax
jmp 0x2c508c1d8
mov rdx, qword [r8 + 0x48]
jmp 0x2c508c274
mov r11, qword [r11 + 0x48]
jmp 0x2c508c258
cmp ebp, 1
sete bpl
test cl, cl
je 0x2c508cc08
test bpl, bpl
je 0x2c508cc08
test r13b, r13b
je 0x2c508d040
lea rax, [r11 + 0x30]
lea rcx, [r11 + 0x48]
and edx, 0x40
cmovne rcx, rax
lea r10, [rcx + rbx]
test dil, dil
je 0x2c508d037
lea rdx, [r8 + 0x30]
lea rax, [r8 + 0x48]
and esi, 0x40
cmovne rax, rdx
add r9, r9
lea r11, [rax + r9]
and r9, 0xfffffffffffffff8
lea rdi, [rax + r9]
cmp rax, rdi
jae 0x2c508d28d
sub r9, 1
mov rsi, r9
shr rsi, 3
add rsi, 1
lea rdx, [rbx + rsi*4]
lea r8, [rax + rsi*8]
add rcx, rdx
cmp r10, r8
setae dl
cmp rax, rcx
setae bl
or dl, bl
je 0x2c508cb98
cmp r9, 0x17
jbe 0x2c508cb98
mov r9, rsi
movdqa xmm1, xmmword [0x2c50a2250]
xor edx, edx
shr r9, 2
shl r9, 4
nop dword [rax]
movdqu xmm0, xmmword [rax + rdx*2]
movdqu xmm2, xmmword [rax + rdx*2 + 0x10]
pand xmm0, xmm1
pand xmm2, xmm1
packuswb xmm0, xmm2
movups xmmword [r10 + rdx], xmm0
add rdx, 0x10
cmp rdx, r9
jne 0x2c508c8c0
mov r9, rsi
and r9, 0xfffffffffffffffc
lea rax, [rax + r9*8]
lea rdx, [r10 + r9*4]
cmp rsi, r9
je 0x2c508c973
movzx r9d, word [rax]
mov byte [rdx], r9b
movzx r9d, word [rax + 2]
mov byte [rdx + 1], r9b
movzx r9d, word [rax + 4]
mov byte [rdx + 2], r9b
movzx r9d, word [rax + 6]
mov byte [rdx + 3], r9b
lea r9, [rax + 8]
cmp rdi, r9
jbe 0x2c508c973
movzx r9d, word [rax + 8]
mov byte [rdx + 4], r9b
movzx r9d, word [rax + 0xa]
mov byte [rdx + 5], r9b
movzx r9d, word [rax + 0xc]
mov byte [rdx + 6], r9b
movzx r9d, word [rax + 0xe]
mov byte [rdx + 7], r9b
lea r9, [rax + 0x10]
cmp rdi, r9
jbe 0x2c508c973
movzx r9d, word [rax + 0x10]
mov byte [rdx + 8], r9b
movzx r9d, word [rax + 0x12]
mov byte [rdx + 9], r9b
movzx r9d, word [rax + 0x14]
mov byte [rdx + 0xa], r9b
movzx eax, word [rax + 0x16]
mov byte [rdx + 0xb], al
cmp r11, r8
jbe 0x2c508c1d8
lea rax, [r11 - 1]
sub rax, r8
mov rdx, rax
shr rdx, 1
add rdx, 1
lea r9, [r8 + rdx*2]
lea r10, [rcx + rdx]
cmp rcx, r9
setae r9b
cmp r8, r10
setae r10b
or r9b, r10b
je 0x2c508cbe8
cmp rax, 0x1d
jbe 0x2c508cbe8
mov r9, rdx
movdqa xmm1, xmmword [0x2c50a2250]
xor eax, eax
and r9, 0xfffffffffffffff0
nop word [rax + rax]
movdqu xmm0, xmmword [r8 + rax*2]
movdqu xmm2, xmmword [r8 + rax*2 + 0x10]
pand xmm0, xmm1
pand xmm2, xmm1
packuswb xmm0, xmm2
movups xmmword [rcx + rax], xmm0
add rax, 0x10
cmp rax, r9
jne 0x2c508c9d0
mov r9, rdx
and r9, 0xfffffffffffffff0
lea rax, [r8 + r9*2]
add rcx, r9
cmp rdx, r9
je 0x2c508c1d8
movzx edx, word [rax]
mov byte [rcx], dl
lea rdx, [rax + 2]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 2]
mov byte [rcx + 1], dl
lea rdx, [rax + 4]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 4]
mov byte [rcx + 2], dl
lea rdx, [rax + 6]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 6]
mov byte [rcx + 3], dl
lea rdx, [rax + 8]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 8]
mov byte [rcx + 4], dl
lea rdx, [rax + 0xa]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 0xa]
mov byte [rcx + 5], dl
lea rdx, [rax + 0xc]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 0xc]
mov byte [rcx + 6], dl
lea rdx, [rax + 0xe]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 0xe]
mov byte [rcx + 7], dl
lea rdx, [rax + 0x10]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 0x10]
mov byte [rcx + 8], dl
lea rdx, [rax + 0x12]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 0x12]
mov byte [rcx + 9], dl
lea rdx, [rax + 0x14]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 0x14]
mov byte [rcx + 0xa], dl
lea rdx, [rax + 0x16]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 0x16]
mov byte [rcx + 0xb], dl
lea rdx, [rax + 0x18]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 0x18]
mov byte [rcx + 0xc], dl
lea rdx, [rax + 0x1a]
cmp r11, rdx
jbe 0x2c508c1d8
movzx edx, word [rax + 0x1a]
mov byte [rcx + 0xd], dl
lea rdx, [rax + 0x1c]
cmp r11, rdx
jbe 0x2c508c1d8
movzx eax, word [rax + 0x1c]
mov byte [rcx + 0xe], al
jmp 0x2c508c1d8
xor eax, eax
nop word [rax + rax]
movzx r8d, byte [rcx + rax]
mov word [r10 + rax*2], r8w
add rax, 1
cmp rdx, rax
jne 0x2c508cb38
jmp 0x2c508c1d8
mov rax, r10
nop dword [rax + rax]
movzx r9d, byte [rdx]
add rdx, 4
add rax, 8
mov word [rax - 8], r9w
movzx r9d, byte [rdx - 3]
mov word [rax - 6], r9w
movzx r9d, byte [rdx - 2]
mov word [rax - 4], r9w
movzx r9d, byte [rdx - 1]
mov word [rax - 2], r9w
cmp rsi, rdx
ja 0x2c508cb58
jmp 0x2c508c043
movzx edx, word [rax]
add rax, 8
add r10, 4
mov byte [r10 - 4], dl
movzx edx, word [rax - 6]
mov byte [r10 - 3], dl
movzx edx, word [rax - 4]
mov byte [r10 - 2], dl
movzx edx, word [rax - 2]
mov byte [r10 - 1], dl
cmp rdi, rax
ja 0x2c508cb98
jmp 0x2c508c973
lea rcx, [r11 + 0x30]
lea rax, [r11 + 0x48]
and edx, 0x40
cmovne rax, rcx
jmp 0x2c508c614
movzx eax, word [r8]
add r8, 2
add rcx, 1
mov byte [rcx - 1], al
cmp r11, r8
ja 0x2c508cbe8
jmp 0x2c508c1d8
cmp eax, 4
sete al
test bpl, bpl
je 0x2c508d049
test al, al
je 0x2c508d049
test r13b, r13b
je 0x2c508d267
lea rax, [r11 + 0x30]
lea rcx, [r11 + 0x48]
and edx, 0x40
cmovne rcx, rax
lea r10, [rcx + rbx]
test dil, dil
je 0x2c508d25e
lea rax, [r8 + 0x30]
lea rdx, [r8 + 0x48]
and esi, 0x40
cmovne rdx, rax
shl r9, 2
lea r11, [rdx + r9]
and r9, 0xfffffffffffffff0
lea rsi, [rdx + r9]
cmp rdx, rsi
jae 0x2c508d298
sub r9, 1
mov rax, rdx
mov rdi, r9
shr rdi, 4
add rdi, 1
mov r8, rdi
lea rbx, [rbx + rdi*4]
shl r8, 4
add rcx, rbx
add r8, rdx
cmp r10, r8
setae bl
cmp rdx, rcx
setae bpl
or bl, bpl
je 0x2c508cfb8
cmp r9, 0x2f
jbe 0x2c508cfb8
mov rbx, rdi
movdqa xmm1, xmmword [0x2c50a2250]
mov r9, r10
shr rbx, 2
shl rbx, 6
add rbx, rdx
nop dword [rax + rax]
movdqu xmm5, xmmword [rax + 0x10]
movdqu xmm0, xmmword [rax]
add rax, 0x40
add r9, 0x10
movdqa xmm2, xmm0
punpcklwd xmm0, xmm5
punpckhwd xmm2, xmm5
movdqa xmm3, xmm0
movdqu xmm5, xmmword [rax - 0x10]
punpckhwd xmm3, xmm2
punpcklwd xmm0, xmm2
movdqu xmm2, xmmword [rax - 0x20]
punpcklwd xmm0, xmm3
movdqa xmm3, xmm2
punpcklwd xmm2, xmm5
pand xmm0, xmm1
punpckhwd xmm3, xmm5
movdqa xmm4, xmm2
punpckhwd xmm4, xmm3
punpcklwd xmm2, xmm3
punpcklwd xmm2, xmm4
pand xmm2, xmm1
packuswb xmm0, xmm2
movups xmmword [r9 - 0x10], xmm0
cmp rax, rbx
jne 0x2c508ccd0
mov r9, rdi
and r9, 0xfffffffffffffffc
mov rax, r9
shl rax, 4
add rax, rdx
lea rdx, [r10 + r9*4]
cmp rdi, r9
je 0x2c508cdc1
mov r9d, dword [rax]
mov byte [rdx], r9b
mov r9d, dword [rax + 4]
mov byte [rdx + 1], r9b
mov r9d, dword [rax + 8]
mov byte [rdx + 2], r9b
mov r9d, dword [rax + 0xc]
mov byte [rdx + 3], r9b
lea r9, [rax + 0x10]
cmp rsi, r9
jbe 0x2c508cdc1
mov r9d, dword [rax + 0x10]
mov byte [rdx + 4], r9b
mov r9d, dword [rax + 0x14]
mov byte [rdx + 5], r9b
mov r9d, dword [rax + 0x18]
mov byte [rdx + 6], r9b
mov r9d, dword [rax + 0x1c]
mov byte [rdx + 7], r9b
lea r9, [rax + 0x20]
cmp rsi, r9
jbe 0x2c508cdc1
mov r9d, dword [rax + 0x20]
mov byte [rdx + 8], r9b
mov r9d, dword [rax + 0x24]
mov byte [rdx + 9], r9b
mov r9d, dword [rax + 0x28]
mov byte [rdx + 0xa], r9b
mov eax, dword [rax + 0x2c]
mov byte [rdx + 0xb], al
cmp r11, r8
jbe 0x2c508c1d8
lea rdx, [r11 - 1]
mov rax, r8
sub rdx, r8
mov r10, rdx
shr r10, 2
add r10, 1
lea r9, [r8 + r10*4]
lea rbx, [rcx + r10]
cmp rcx, r9
setae r9b
cmp r8, rbx
setae bl
or r9b, bl
je 0x2c508cfe8
cmp rdx, 0x3b
jbe 0x2c508cfe8
mov r9, r10
movdqa xmm1, xmmword [0x2c50a2250]
mov rdx, rcx
shr r9, 4
shl r9, 6
add r9, r8
movdqu xmm5, xmmword [rax + 0x10]
movdqu xmm0, xmmword [rax]
add rax, 0x40
add rdx, 0x10
movdqa xmm2, xmm0
punpcklwd xmm0, xmm5
punpckhwd xmm2, xmm5
movdqa xmm3, xmm0
movdqu xmm5, xmmword [rax - 0x10]
punpckhwd xmm3, xmm2
punpcklwd xmm0, xmm2
movdqu xmm2, xmmword [rax - 0x20]
punpcklwd xmm0, xmm3
movdqa xmm3, xmm2
punpcklwd xmm2, xmm5
pand xmm0, xmm1
punpckhwd xmm3, xmm5
movdqa xmm4, xmm2
punpckhwd xmm4, xmm3
punpcklwd xmm2, xmm3
punpcklwd xmm2, xmm4
pand xmm2, xmm1
packuswb xmm0, xmm2
movups xmmword [rdx - 0x10], xmm0
cmp r9, rax
jne 0x2c508ce20
mov rdx, r10
and rdx, 0xfffffffffffffff0
lea rax, [r8 + rdx*4]
add rcx, rdx
cmp r10, rdx
je 0x2c508c1d8
mov edx, dword [rax]
mov byte [rcx], dl
lea rdx, [rax + 4]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 4]
mov byte [rcx + 1], dl
lea rdx, [rax + 8]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 8]
mov byte [rcx + 2], dl
lea rdx, [rax + 0xc]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 0xc]
mov byte [rcx + 3], dl
lea rdx, [rax + 0x10]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 0x10]
mov byte [rcx + 4], dl
lea rdx, [rax + 0x14]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 0x14]
mov byte [rcx + 5], dl
lea rdx, [rax + 0x18]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 0x18]
mov byte [rcx + 6], dl
lea rdx, [rax + 0x1c]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 0x1c]
mov byte [rcx + 7], dl
lea rdx, [rax + 0x20]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 0x20]
mov byte [rcx + 8], dl
lea rdx, [rax + 0x24]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 0x24]
mov byte [rcx + 9], dl
lea rdx, [rax + 0x28]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 0x28]
mov byte [rcx + 0xa], dl
lea rdx, [rax + 0x2c]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 0x2c]
mov byte [rcx + 0xb], dl
lea rdx, [rax + 0x30]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 0x30]
mov byte [rcx + 0xc], dl
lea rdx, [rax + 0x34]
cmp r11, rdx
jbe 0x2c508c1d8
mov edx, dword [rax + 0x34]
mov byte [rcx + 0xd], dl
lea rdx, [rax + 0x38]
cmp r11, rdx
jbe 0x2c508c1d8
mov eax, dword [rax + 0x38]
mov byte [rcx + 0xe], al
jmp 0x2c508c1d8
mov eax, dword [rdx]
add rdx, 0x10
add r10, 4
mov byte [r10 - 4], al
mov eax, dword [rdx - 0xc]
mov byte [r10 - 3], al
mov eax, dword [rdx - 8]
mov byte [r10 - 2], al
mov eax, dword [rdx - 4]
mov byte [r10 - 1], al
cmp rsi, rdx
ja 0x2c508cfb8
jmp 0x2c508cdc1
mov eax, dword [r8]
add r8, 4
add rcx, 1
mov byte [rcx - 1], al
cmp r11, r8
ja 0x2c508cfe8
jmp 0x2c508c1d8
mov rcx, qword [r8 + 0x48]
jmp 0x2c508c630
mov rcx, rdx
jmp 0x2c508c047
xor eax, eax
nop word [rax + rax]
movzx edx, byte [r8 + rax]
mov dword [r10 + rax*4], edx
add rax, 1
cmp r9, rax
jne 0x2c508d020
jmp 0x2c508c1d8
mov rax, qword [r8 + 0x48]
jmp 0x2c508c854
mov rcx, qword [r11 + 0x48]
jmp 0x2c508c838
test r10b, r10b
je 0x2c508c1d8
test al, al
je 0x2c508c1d8
test r13b, r13b
je 0x2c508d284
lea rcx, [r11 + 0x30]
lea rax, [r11 + 0x48]
and edx, 0x40
cmovne rax, rcx
lea rdx, [rax + rbx*2]
test dil, dil
je 0x2c508d27b
lea rax, [r8 + 0x30]
lea rcx, [r8 + 0x48]
and esi, 0x40
cmovne rcx, rax
lea rax, [r9*4]
lea r8, [rcx + rax]
and rax, 0xfffffffffffffff0
lea r9, [rcx + rax]
cmp rcx, r9
jae 0x2c508d157
sub rax, 1
mov r10, rax
shr r10, 4
add r10, 1
cmp rax, 0xf
jbe 0x2c508d2a3
mov r9, r10
xor eax, eax
shr r9, 1
shl r9, 4
movdqu xmm0, xmmword [rcx + rax*2]
movdqu xmm5, xmmword [rcx + rax*2 + 0x10]
movdqa xmm1, xmm0
punpcklwd xmm0, xmm5
punpckhwd xmm1, xmm5
movdqa xmm2, xmm0
punpckhwd xmm2, xmm1
punpcklwd xmm0, xmm1
punpcklwd xmm0, xmm2
movups xmmword [rdx + rax], xmm0
add rax, 0x10
cmp rax, r9
jne 0x2c508d0d0
mov rax, r10
and rax, 0xfffffffffffffffe
mov r9, rax
lea rbx, [rdx + rax*8]
shl r9, 4
add r9, rcx
cmp r10, rax
je 0x2c508d149
movzx eax, word [r9 + 0xc]
movzx r11d, word [r9 + 8]
shl rax, 0x10
or rax, r11
movzx r11d, word [r9 + 4]
movzx r9d, word [r9]
shl rax, 0x10
or rax, r11
shl rax, 0x10
or rax, r9
mov qword [rbx], rax
mov rax, r10
lea rdx, [rdx + r10*8]
shl rax, 4
add rcx, rax
cmp r8, rcx
jbe 0x2c508c1d8
lea rax, [r8 - 1]
sub rax, rcx
mov r10, rax
shr r10, 2
add r10, 1
cmp rax, 0x1b
jbe 0x2c508d1d4
mov r9, r10
xor eax, eax
shr r9, 3
shl r9, 4
nop dword [rax]
movdqu xmm0, xmmword [rcx + rax*2]
movdqu xmm5, xmmword [rcx + rax*2 + 0x10]
movdqa xmm1, xmm0
punpcklwd xmm0, xmm5
punpckhwd xmm1, xmm5
movdqa xmm2, xmm0
punpckhwd xmm2, xmm1
punpcklwd xmm0, xmm1
punpcklwd xmm0, xmm2
movups xmmword [rdx + rax], xmm0
add rax, 0x10
cmp rax, r9
jne 0x2c508d188
mov rax, r10
and rax, 0xfffffffffffffff8
lea rcx, [rcx + rax*4]
lea rdx, [rdx + rax*2]
cmp r10, rax
je 0x2c508c1d8
mov eax, dword [rcx]
mov word [rdx], ax
lea rax, [rcx + 4]
cmp r8, rax
jbe 0x2c508c1d8
mov eax, dword [rcx + 4]
mov word [rdx + 2], ax
lea rax, [rcx + 8]
cmp r8, rax
jbe 0x2c508c1d8
mov eax, dword [rcx + 8]
mov word [rdx + 4], ax
lea rax, [rcx + 0xc]
cmp r8, rax
jbe 0x2c508c1d8
mov eax, dword [rcx + 0xc]
mov word [rdx + 6], ax
lea rax, [rcx + 0x10]
cmp r8, rax
jbe 0x2c508c1d8
mov eax, dword [rcx + 0x10]
mov word [rdx + 8], ax
lea rax, [rcx + 0x14]
cmp r8, rax
jbe 0x2c508c1d8
mov eax, dword [rcx + 0x14]
mov word [rdx + 0xa], ax
lea rax, [rcx + 0x18]
cmp r8, rax
jbe 0x2c508c1d8
mov eax, dword [rcx + 0x18]
mov word [rdx + 0xc], ax
jmp 0x2c508c1d8
mov r8, rdx
jmp 0x2c508c3ba
mov rdx, qword [r8 + 0x48]
jmp 0x2c508cc53
mov rcx, qword [r11 + 0x48]
jmp 0x2c508cc37
mov r11, rdx
mov rax, rcx
jmp 0x2c508c6b5
mov rcx, qword [r8 + 0x48]
jmp 0x2c508d08e
mov rax, qword [r11 + 0x48]
jmp 0x2c508d072
mov rcx, r10
mov r8, rax
jmp 0x2c508c973
mov rcx, r10
mov r8, rdx
jmp 0x2c508cdc1
mov rbx, rdx
mov r9, rcx
jmp 0x2c508d11e