Function at 0x3a1215ed0
Capabilities:
Enumerate pe sections

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x188
movaps xmmword [rsp + 0x170], xmm6
mov rbx, qword [rsp + 0x1f0]
mov edi, dword [rcx + 0x100]
mov r15, qword [rcx + 0xa8]
mov rax, rcx
mov qword [rsp + 0x1d8], rdx
mov r13, r8
lea rdx, [0x3a121a6a0]
sub rax, 0xffffffffffffff80
movq xmm0, rdx
lea rdx, [0x3a1219180]
mov qword [rsp + 0x1d0], rcx
mov qword [rsp + 0x98], rax
mov rax, rbx
add rax, r9
mov qword [rsp + 0x1e8], r9
mov qword [rsp + 0x90], rax
sub rax, 8
mov qword [rsp + 0x70], rax
mov eax, dword [rcx + 0x18]
add rax, qword [rcx + 8]
mov rsi, rax
lea rax, [0x3a1219880]
movq xmm5, rax
lea rax, [0x3a1219fa0]
punpcklqdq xmm0, xmm5
movq xmm3, rax
lea rax, [0x3a121cbb0]
movaps xmmword [rsp + 0x110], xmm0
movq xmm0, rdx
lea rdx, [0x3a1220b90]
movq xmm4, rax
punpcklqdq xmm0, xmm3
lea rax, [0x3a121aff0]
movaps xmmword [rsp + 0x120], xmm0
movq xmm0, rdx
movq xmm5, rax
lea rdx, [0x3a121bdd0]
punpcklqdq xmm0, xmm4
lea rax, [0x3a121faf0]
movaps xmmword [rsp + 0x130], xmm0
movq xmm2, rax
movq xmm0, rdx
lea rax, [0x3a121d990]
punpcklqdq xmm0, xmm5
lea rdx, [0x3a1221d90]
movq xmm3, rax
mov eax, 6
movaps xmmword [rsp + 0x140], xmm0
cmp edi, eax
movq xmm0, rdx
lea rdx, [0x3a121ea40]
cmovbe eax, edi
punpcklqdq xmm0, xmm2
movaps xmmword [rsp + 0x150], xmm0
movq xmm0, rdx
mov edx, 3
cmp eax, edx
punpcklqdq xmm0, xmm3
cmovb eax, edx
movsxd rdx, dword [rsp + 0x1f8]
movaps xmmword [rsp + 0x160], xmm0
sub eax, 3
lea rax, [rax + rdx*4]
mov edx, dword [rcx + 0x104]
mov rax, qword [rsp + rax*8 + 0x110]
mov qword [rsp + 0xa8], rax
mov eax, 0xfff
cmp edx, eax
cmovbe eax, edx
mov dword [rsp + 0xe0], eax
xor eax, eax
cmp edi, 3
setne al
add eax, 3
mov dword [rsp + 0x80], eax
mov eax, dword [rcx + 0x2c]
mov dword [rsp + 0xf4], eax
mov rax, qword [rcx + 0xa0]
mov qword [rsp + 0xc0], rax
mov rax, qword [rcx + 0x110]
test rax, rax
je 0x3a121739d
movdqu xmm5, xmmword [rax]
movdqu xmm2, xmmword [rax + 0x10]
mov rax, qword [rax + 0x20]
movaps xmmword [rsp + 0x110], xmm5
mov qword [rsp + 0x130], rax
movaps xmmword [rsp + 0x120], xmm2
lea rax, [rsp + 0x110]
xor edx, edx
mov r8d, ebx
mov dword [rsp + 0x140], 0
mov rcx, rax
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x138], 0
call fcn.3a12147c0
mov rdx, qword [rsp + 0x1e8]
xor r9d, r9d
mov r8, rbx
mov rcx, qword [rsp + 0x98]
call fcn.3a1213b90
xor eax, eax
mov rdi, qword [rsp + 0x70]
cmp qword [rsp + 0x1e8], rsi
sete al
add rax, qword [rsp + 0x1e8]
mov qword [rsp + 0x50], rax
cmp rax, rdi
jae 0x3a12173ea
mov rax, qword [rsp + 0x128]
mov rdi, r13
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x1e8]
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0xf4]
mov qword [rsp + 0xb8], rax
jmp 0x3a1216196
add qword [rsp + 0x50], 1
mov rbx, qword [rsp + 0x70]
cmp qword [rsp + 0x50], rbx
jae 0x3a121671a
mov r14, qword [rsp + 0x50]
xor ebx, ebx
mov qword [rsp + 0x28], rdi
mov rax, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x90]
mov rsi, r14
mov r12, qword [rsp + 0xc0]
mov r9, r14
mov r8, qword [rsp + 0xb8]
sub rsi, rax
mov eax, dword [rsp + 0x80]
mov qword [rsp + 0x20], rbp
test esi, esi
mov dword [rsp + 0x60], esi
mov rdx, qword [rsp + 0x1d0]
mov rcx, r12
sete bl
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0xa8]
mov dword [rsp + 0x30], ebx
call rax
mov r10, qword [rsp + 0xb0]
mov dword [rsp + 0x104], eax
test r10, r10
je 0x3a121624f
cmp qword [rsp + 0x118], r10
jae 0x3a121624f
mov rax, rbp
mov r9d, r14d
mov rdx, r12
mov rcx, qword [rsp + 0xd0]
sub rax, r14
sub r9d, dword [rsp + 0x1e8]
lea r8, [rsp + 0x104]
mov dword [rsp + 0x20], eax
call fcn.3a1214960
mov eax, dword [rsp + 0x104]
test eax, eax
je 0x3a1216180
mov r12d, dword [rdi]
mov dword [r15 + 0x10], r12d
mov edx, dword [rdi + 4]
mov dword [r15 + 0x14], edx
mov r11d, dword [rdi + 8]
mov dword [rsp + 0x84], edx
mov rdx, qword [rsp + 0x1d0]
mov dword [r15 + 0x18], r11d
mov dword [r15 + 8], 0
mov r13, qword [rdx + 0x88]
mov dword [r15 + 0xc], esi
cmp dword [rdx + 0xd0], 1
mov r8d, dword [rdx + 0xc4]
je 0x3a12168a3
cmp esi, 0x20000
jne 0x3a1217447
mov edx, 0x8c
mov r9d, 0x1000
mov ecx, 0x100
mov edx, dword [r13 + rdx]
lea r10d, [rcx + r9]
add edx, 1
bsr edx, edx
add r10d, r8d
shl edx, 8
sub r10d, edx
mov rsi, qword [rsp + 0xc0]
lea edx, [rax - 1]
mov dword [r15], r10d
lea rcx, [rsi + rdx*8]
mov edx, dword [rcx + 4]
mov ecx, dword [rcx]
cmp dword [rsp + 0xe0], edx
jae 0x3a12168b3
mov dword [rsp + 0x48], 1
mov rax, r15
mov r8d, 0x1c
xor r14d, r14d
mov r9, qword [rax + 0x10]
mov eax, dword [rax + 0x18]
mov qword [rsp + 0xf8], r9
mov dword [rsp + 0x100], eax
cmp ecx, 2
jbe 0x3a12172e6
movd xmm4, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xfc]
mov dword [rsp + 0x100], eax
lea eax, [rcx - 2]
movd xmm0, eax
punpckldq xmm0, xmm4
movq qword [rsp + 0xf8], xmm0
mov r9, qword [rsp + 0xf8]
mov eax, dword [rsp + 0x100]
mov qword [rsp + 0x104], r9
mov dword [rsp + 0x10c], eax
mov qword [rdi], r9
mov dword [rdi + 8], eax
mov eax, dword [rsp + 0xe4]
add r8, r15
movd xmm0, ecx
movd xmm3, edx
movd xmm1, dword [rsp + 0x60]
punpckldq xmm0, xmm3
mov dword [r8], eax
mov eax, dword [rsp + 0xec]
punpckldq xmm1, xmm6
mov dword [r8 + 0x14], eax
mov eax, dword [rsp + 0xe8]
punpcklqdq xmm0, xmm1
movups xmmword [r8 + 4], xmm0
mov dword [r8 + 0x18], eax
test r14d, r14d
je 0x3a1217392
mov edx, r14d
lea rax, [rdx*8]
sub rax, rdx
lea rcx, [r15 + rax*4]
mov eax, dword [rsp + 0x48]
movdqu xmm4, xmmword [rcx]
mov edx, dword [rcx + 8]
sub eax, 1
add edx, dword [rcx + 0xc]
lea r8, [rax*8]
mov rbx, rax
sub r8, rax
lea r8, [r15 + r8*4]
movups xmmword [r8], xmm4
movdqu xmm2, xmmword [rcx + 0xc]
movups xmmword [r8 + 0xc], xmm2
cmp edx, r14d
jb 0x3a12165f0
nop dword [rax]
cmp dword [rsp + 0x48], ebx
jb 0x3a121668a
mov rsi, qword [rsp + 0x90]
mov qword [rsp + 0x1e0], rdi
mov qword [rsp + 0x50], r15
mov rbp, qword [rsp + 0xa0]
lea r14, [rsi - 0x20]
mov rdi, qword [rsp + 0x1d8]
mov qword [rsp + 0x58], r14
jmp 0x3a12164c7
mov rax, qword [rdi + 0x18]
movdqu xmm5, xmmword [rbp]
movups xmmword [rax], xmm5
cmp r14, 0x10
ja 0x3a1216858
add qword [rdi + 0x18], r14
mov rax, qword [rdi + 8]
lea edx, [r15 + 1]
mov word [rax + 4], r12w
mov dword [rax], edx
lea rdx, [r11 - 3]
cmp rdx, 0xffff
jbe 0x3a12164a2
mov rcx, rax
sub rcx, qword [rdi]
mov dword [rdi + 0x48], 2
sar rcx, 3
mov dword [rdi + 0x4c], ecx
mov word [rax + 6], dx
add rax, 8
lea esi, [r12 + r13]
mov qword [rdi + 8], rax
add rsi, rbp
mov rbp, rsi
add ebx, 1
cmp dword [rsp + 0x48], ebx
jb 0x3a1216670
mov eax, ebx
lea rdx, [rax*8]
sub rdx, rax
mov rax, qword [rsp + 0x50]
lea rax, [rax + rdx*4]
mov r14d, dword [rax + 0xc]
mov r13d, dword [rax + 8]
mov r12, r14
lea rsi, [rbp + r14]
test r13d, r13d
je 0x3a12164b8
mov r15d, dword [rax + 4]
mov dword [rsp + 0x20], r13d
mov edx, r14d
mov r8, rbp
mov rcx, qword [rsp + 0x98]
mov r9d, r15d
call fcn.3a1213a30
mov rax, qword [rsp + 0x58]
mov r11d, r13d
mov rdx, rax
cmp rax, rsi
jae 0x3a1216458
mov rcx, rax
mov rax, qword [rdi + 0x18]
cmp rdx, rbp
jb 0x3a1216640
sub rcx, rbp
movdqu xmm5, xmmword [rbp]
lea r9, [rbp + 0x10]
mov r8, rcx
lea rcx, [rax + rcx]
add rax, 0x10
movups xmmword [rax - 0x10], xmm5
cmp r8, 0x10
jle 0x3a1216578
nop dword [rax]
movdqu xmm4, xmmword [r9]
add rax, 0x20
add r9, 0x20
movups xmmword [rax - 0x20], xmm4
movdqu xmm5, xmmword [r9 - 0x10]
movups xmmword [rax - 0x10], xmm5
cmp rax, rcx
jb 0x3a1216558
mov rax, rcx
mov rcx, rsi
sub rcx, rdx
lea r9, [rcx - 1]
cmp r9, 6
jbe 0x3a1216660
nop
lea r8, [rdx + 1]
mov r10, rax
sub r10, r8
xor r8d, r8d
cmp r10, 0xe
ja 0x3a1216750
nop word [rax + rax]
movzx r9d, byte [rdx + r8]
mov byte [rax + r8], r9b
add r8, 1
cmp rcx, r8
jne 0x3a12165b0
add qword [rdi + 0x18], r14
mov rax, qword [rdi + 8]
cmp r14, 0xffff
jbe 0x3a1216476
mov rdx, rax
sub rdx, qword [rdi]
mov dword [rdi + 0x48], 1
sar rdx, 3
mov dword [rdi + 0x4c], edx
jmp 0x3a1216476
sub r14d, edx
mov edx, r14d
lea rax, [rdx*8]
sub rax, rdx
lea rcx, [r15 + rax*4]
lea eax, [rbx - 1]
lea r8, [rax*8]
movdqu xmm2, xmmword [rcx]
mov edx, dword [rcx + 0xc]
mov rbx, rax
sub r8, rax
add edx, dword [rcx + 8]
lea r8, [r15 + r8*4]
movups xmmword [r8], xmm2
movdqu xmm3, xmmword [rcx + 0xc]
movups xmmword [r8 + 0xc], xmm3
cmp edx, r14d
jb 0x3a12165f0
jmp 0x3a1216418
mov rdx, rbp
cmp rbp, rsi
jae 0x3a12165c2
mov rcx, rsi
sub rcx, rdx
lea r9, [rcx - 1]
cmp r9, 6
ja 0x3a1216590
xor r8d, r8d
jmp 0x3a12165b0
mov r15, qword [rsp + 0x50]
mov qword [rsp + 0xa0], rbp
mov qword [rsp + 0x50], rsi
mov rdi, qword [rsp + 0x1e0]
mov rax, qword [rsp + 0x1d0]
cmp dword [rax + 0xe0], 2
je 0x3a12166b7
mov rbx, rax
mov eax, dword [rax + 0xb0]
mov dword [rsp + 0x48], eax
add eax, 1
bsr eax, eax
shl eax, 8
mov dword [rbx + 0xc0], eax
mov rax, qword [rsp + 0x1d0]
mov rbx, qword [rsp + 0x1d0]
mov eax, dword [rax + 0xb4]
add eax, 1
bsr eax, eax
shl eax, 8
mov dword [rbx + 0xc4], eax
mov eax, dword [rbx + 0xb8]
add eax, 1
bsr eax, eax
shl eax, 8
mov dword [rbx + 0xc8], eax
mov eax, dword [rbx + 0xbc]
mov dword [rsp + 0x48], eax
add eax, 1
bsr eax, eax
shl eax, 8
mov dword [rbx + 0xcc], eax
mov rbx, qword [rsp + 0x70]
cmp qword [rsp + 0x50], rbx
jb 0x3a1216196
mov rax, qword [rsp + 0x90]
mov rdi, qword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0x170]
sub rax, rdi
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp r9, 0xe
jbe 0x3a12173c2
mov r9, rcx
and r9, 0xfffffffffffffff0
nop dword [rax]
movdqu xmm3, xmmword [rdx + r8]
movups xmmword [rax + r8], xmm3
add r8, 0x10
cmp r8, r9
jne 0x3a1216768
mov r10, rcx
and r10, 0xfffffffffffffff0
lea r9, [rax + r10]
lea r8, [rdx + r10]
mov qword [rsp + 0x60], r9
test cl, 0xf
je 0x3a12165c2
sub rcx, r10
lea r9, [rcx - 1]
cmp r9, 6
jbe 0x3a12167c6
mov rdx, qword [rdx + r10]
mov qword [rax + r10], rdx
mov rax, rcx
and rax, 0xfffffffffffffff8
add qword [rsp + 0x60], rax
add r8, rax
and ecx, 7
je 0x3a12165c2
movzx eax, byte [r8]
mov rdx, qword [rsp + 0x60]
mov byte [rdx], al
lea rax, [r8 + 1]
cmp rax, rsi
jae 0x3a12165c2
movzx eax, byte [r8 + 1]
mov byte [rdx + 1], al
lea rax, [r8 + 2]
cmp rax, rsi
jae 0x3a12165c2
movzx eax, byte [r8 + 2]
mov byte [rdx + 2], al
lea rax, [r8 + 3]
cmp rax, rsi
jae 0x3a12165c2
movzx eax, byte [r8 + 3]
mov byte [rdx + 3], al
lea rax, [r8 + 4]
cmp rax, rsi
jae 0x3a12165c2
movzx eax, byte [r8 + 4]
mov byte [rdx + 4], al
lea rax, [r8 + 5]
cmp rax, rsi
jae 0x3a12165c2
movzx eax, byte [r8 + 5]
mov byte [rdx + 5], al
lea rax, [r8 + 6]
cmp rax, rsi
jae 0x3a12165c2
movzx eax, byte [r8 + 6]
mov byte [rdx + 6], al
jmp 0x3a12165c2
mov rax, qword [rdi + 0x18]
movdqu xmm3, xmmword [rbp + 0x10]
movups xmmword [rax + 0x10], xmm3
cmp r14d, 0x20
jbe 0x3a12165c2
lea rcx, [rax + r14]
lea rdx, [rbp + 0x20]
add rax, 0x20
nop dword [rax + rax]
movdqu xmm3, xmmword [rdx]
add rax, 0x20
add rdx, 0x20
movups xmmword [rax - 0x20], xmm3
movdqu xmm2, xmmword [rdx - 0x10]
movups xmmword [rax - 0x10], xmm2
cmp rax, rcx
jb 0x3a1216880
jmp 0x3a12165c2
add esi, 1
bsr r10d, esi
shl r10d, 8
jmp 0x3a12162d7
mov rbx, qword [rsp + 0x1d0]
mov ebp, dword [rbx + 0xd0]
cmp ebp, 1
je 0x3a12168e5
mov ebx, dword [r13]
lea edx, [rbx + 1]
mov rbx, qword [rsp + 0x1d0]
bsr edx, edx
shl edx, 8
add r10d, dword [rbx + 0xc4]
sub r10d, edx
cmp dword [rsp + 0x80], 4
mov dword [r15 + 0x1c], 0x40000000
mov dword [r15 + 0x38], 0x40000000
jne 0x3a1216907
mov dword [r15 + 0x54], 0x40000000
mov rbx, qword [rsp + 0xc0]
mov eax, eax
mov qword [rsp + 0xd8], r13
lea r14, [0x3a1264340]
mov r13d, dword [rsp + 0x60]
mov dword [rsp + 0x88], r12d
mov dword [rsp + 0x60], ebp
lea r9, [rbx + rax*8]
mov eax, dword [rsp + 0x80]
mov r8, rbx
mov qword [rsp + 0x1e0], rdi
mov dword [rsp + 0xc8], r11d
mov r11, qword [rsp + 0x1d0]
nop word [rax + rax]
mov ebp, dword [r8 + 4]
movd xmm0, dword [r8]
cmp ebp, eax
jb 0x3a1216a62
movd edi, xmm0
lea ebx, [rdi + 1]
bsr ebx, ebx
mov r12d, ebx
movsxd rdi, ebx
shl r12d, 8
shl rdi, 2
cmp dword [rsp + 0x60], 1
je 0x3a121727c
cmp ebx, 0x13
jg 0x3a1217188
mov qword [rsp + 0x48], r8
mov rsi, qword [r11 + 0x90]
lea ebx, [rax - 3]
mov qword [rsp + 0x58], r9
add rdi, qword [r11 + 0x98]
jmp 0x3a1216a1b
bsr r9d, ebx
add r9d, 0x24
mov edx, dword [rsi + r9*4]
add edx, 1
bsr edx, edx
add r8d, dword [r11 + 0xc8]
add ebx, 1
lea r8d, [r10 + r8 + 0x33]
shl edx, 8
add r8d, r12d
sub r8d, ecx
movzx ecx, byte [r14 + r9]
shl ecx, 8
add ecx, r8d
mov r8d, eax
add eax, 1
sub ecx, edx
lea rdx, [r8*8]
sub rdx, r8
lea rdx, [r15 + rdx*4]
mov dword [rdx + 0xc], r13d
mov dword [rdx], ecx
movq qword [rdx + 4], xmm1
cmp ebp, eax
jb 0x3a1216a58
mov edx, dword [rdi]
movdqa xmm1, xmm0
movd xmm4, eax
mov r8d, dword [r11 + 0xcc]
punpckldq xmm1, xmm4
lea ecx, [rdx + 1]
bsr ecx, ecx
shl ecx, 8
cmp ebx, 0x7f
ja 0x3a12169c0
mov edx, ebx
lea r9, [0x3a1264280]
movzx r9d, byte [r9 + rdx]
jmp 0x3a12169c8
mov r8, qword [rsp + 0x48]
mov r9, qword [rsp + 0x58]
add r8, 8
cmp r8, r9
jne 0x3a1216960
mov r12d, dword [rsp + 0x88]
mov r11d, dword [rsp + 0xc8]
mov r13, qword [rsp + 0xd8]
mov ebp, dword [rsp + 0x60]
mov rdi, qword [rsp + 0x1e0]
mov edx, dword [r15 + 8]
mov r8d, dword [r15]
sub eax, 1
je 0x3a12173ff
mov rbx, qword [rsp + 0xc0]
mov r12, r15
mov r14d, 1
mov r15, r13
mov edi, eax
mov qword [rsp + 0x68], rbx
mov rbx, qword [rsp + 0x1d0]
nop word cs:[rax + rax]
mov rax, qword [rsp + 0x50]
lea edx, [r14 - 1]
mov r9d, r14d
lea r13, [rax + r9]
lea rax, [rdx*8]
sub rax, rdx
mov edx, 1
lea r10, [r12 + rax*4]
mov r11d, dword [r10 + 8]
test r11d, r11d
jne 0x3a1216b04
mov eax, dword [r10 + 0xc]
lea edx, [rax + 1]
cmp dword [rbx + 0xe0], 2
mov r11d, dword [r10]
mov ecx, 0x800
je 0x3a1216b45
mov ecx, 0x600
cmp ebp, 1
je 0x3a1216b45
mov rax, qword [rsp + 0x50]
movzx ecx, byte [rax + r9 - 1]
mov rax, qword [rbx + 0x80]
mov eax, dword [rax + rcx*4]
mov ecx, dword [rbx + 0xc0]
add eax, 1
bsr eax, eax
shl eax, 8
sub ecx, eax
lea eax, [r11 + rcx]
cmp dword [rbx + 0xd0], 1
mov r11d, dword [rbx + 0xc4]
mov dword [rsp + 0x48], eax
je 0x3a1216bd9
cmp edx, 0x20000
jne 0x3a121749c
mov r8d, 0x8c
mov esi, 0x1000
lea eax, [r11 + 0x100]
mov ebp, 0x1ffff
lea rcx, [0x3a1264380]
bsr ebp, ebp
add ebp, 0x13
movzx ecx, byte [rcx + rbp]
shl rbp, 2
shl ecx, 8
mov dword [rsp + 0x58], ecx
xor ecx, ecx
nop
mov r8d, dword [r15 + r8]
add r8d, 1
bsr r8d, r8d
add eax, esi
mov esi, dword [rsp + 0x48]
shl r8d, 8
sub eax, r8d
mov r8d, dword [r15 + rbp]
add eax, esi
mov esi, dword [rsp + 0x58]
add r8d, 1
bsr r8d, r8d
add ecx, esi
add ecx, r11d
shl r8d, 8
sub ecx, r8d
jmp 0x3a1216bec
mov esi, eax
lea eax, [rdx + 1]
bsr eax, eax
shl eax, 8
add eax, esi
bsr ecx, edx
shl ecx, 8
sub eax, ecx
lea rcx, [r9*8]
sub rcx, r9
lea rbp, [r12 + rcx*4]
cmp eax, dword [rbp]
jg 0x3a1216d70
mov qword [rbp + 4], 0
mov dword [rbp + 0xc], edx
mov dword [rbp], eax
mov rax, qword [r10 + 0x10]
lea rdx, [rbp + 0x10]
xor ecx, ecx
mov qword [rbp + 0x10], rax
mov eax, dword [r10 + 0x18]
mov dword [rdx + 8], eax
cmp qword [rsp + 0x70], r13
jb 0x3a1216e15
cmp edi, r14d
je 0x3a1216e22
lea r9d, [r14 + 1]
mov r8d, dword [rbp]
lea rax, [r9*8]
mov rsi, r9
sub rax, r9
lea r9d, [r8 + 0x80]
cmp dword [r12 + rax*4], r9d
jle 0x3a1216d51
test ecx, ecx
mov dword [rsp + 0x60], 0
setne cl
movzx ecx, cl
jne 0x3a1216c7d
mov eax, dword [rbp + 0xc]
mov dword [rsp + 0x60], eax
cmp dword [rbx + 0xd0], 1
mov dword [rsp + 0x58], r8d
mov r10d, r8d
mov eax, dword [rbx + 0xc4]
mov r8, qword [rbx + 0x88]
je 0x3a1216cb7
mov r8d, dword [r8]
add r8d, 1
bsr r8d, r8d
add r10d, eax
mov eax, r10d
shl r8d, 8
sub eax, r8d
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x80]
mov r15, qword [rsp + 0x90]
mov r9, r13
mov dword [rsp + 0x30], ecx
mov qword [rsp + 0x28], rdx
mov r8, qword [rsp + 0xb8]
mov rdx, rbx
mov dword [rsp + 0x38], eax
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x20], r15
mov rax, qword [rsp + 0xa8]
call rax
mov rdx, qword [rsp + 0xb0]
mov dword [rsp + 0x104], eax
test rdx, rdx
je 0x3a1216d49
cmp qword [rsp + 0x118], rdx
jae 0x3a1216d49
mov rax, r15
mov rdx, qword [rsp + 0x68]
mov r9d, r13d
mov rcx, qword [rsp + 0xd0]
sub rax, r13
sub r9d, dword [rsp + 0x1e8]
lea r8, [rsp + 0x104]
mov dword [rsp + 0x20], eax
call fcn.3a1214960
mov eax, dword [rsp + 0x104]
test eax, eax
jne 0x3a1216f28
mov r14d, esi
cmp edi, r14d
jb 0x3a1216e22
mov r15, qword [rbx + 0x88]
mov ebp, dword [rbx + 0xd0]
jmp 0x3a1216ad0
mov ecx, dword [rbp + 8]
test ecx, ecx
je 0x3a1216c14
mov r8d, r14d
mov eax, dword [rbp + 4]
mov r9d, dword [rbp + 0xc]
sub r8d, ecx
lea rdx, [r8*8]
sub rdx, r8
lea rdx, [r12 + rdx*4]
mov r8, qword [rdx + 0x10]
mov edx, dword [rdx + 0x18]
mov qword [rsp + 0xf8], r8
mov dword [rsp + 0x100], edx
cmp eax, 2
jbe 0x3a1216ed0
mov edx, dword [rsp + 0xfc]
sub eax, 2
movd xmm5, dword [rsp + 0xf8]
movd xmm0, eax
mov dword [rsp + 0x100], edx
punpckldq xmm0, xmm5
movq qword [rsp + 0xf8], xmm0
mov r8, qword [rsp + 0xf8]
mov eax, dword [rsp + 0x100]
lea rdx, [rbp + 0x10]
mov qword [rbp + 0x10], r8
mov qword [rsp + 0x104], r8
mov dword [rsp + 0x10c], eax
mov dword [rdx + 8], eax
cmp qword [rsp + 0x70], r13
jae 0x3a1216c34
add r14d, 1
cmp edi, r14d
jae 0x3a1216d5d
mov edx, edi
mov r15, r12
mov rdi, qword [rsp + 0x1e0]
lea rax, [rdx*8]
mov rbx, rdx
sub rax, rdx
lea rax, [r12 + rax*4]
mov esi, dword [rax]
mov edx, dword [rax + 8]
mov r10d, dword [rax + 0x14]
mov ecx, dword [rax + 4]
mov dword [rsp + 0xe4], esi
movd xmm6, dword [rax + 0x10]
mov esi, dword [rax + 0xc]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0xec], r10d
mov dword [rsp + 0xe8], eax
lea eax, [rsi + rdx]
mov dword [rsp + 0x60], esi
cmp eax, ebx
jae 0x3a1217364
sub ebx, eax
mov r8d, ebx
mov r14, r8
lea r9d, [r14 + 1]
lea rax, [r8*8]
sub rax, r8
mov dword [rsp + 0x48], r9d
lea r8, [r9*8]
sub r8, r9
lea rax, [r15 + rax*4]
shl r8, 2
test edx, edx
jne 0x3a1217380
mov r9, qword [rax + 0x10]
mov qword [rdi], r9
mov eax, dword [rax + 0x18]
mov dword [rdi + 8], eax
jmp 0x3a121637d
cmp r9d, 1
adc eax, 0
test eax, eax
je 0x3a1216de1
movd xmm1, dword [rsp + 0xf8]
cmp eax, 3
je 0x3a12172cf
mov edx, eax
movd xmm0, dword [rsp + rdx*4 + 0xf8]
mov edx, dword [rsp + 0x100]
cmp eax, 1
jne 0x3a12172da
punpckldq xmm0, xmm1
mov dword [rsp + 0x100], edx
movq qword [rsp + 0xf8], xmm0
jmp 0x3a1216de1
mov rcx, qword [rsp + 0x68]
lea edx, [rax - 1]
lea rcx, [rcx + rdx*8]
mov edx, dword [rcx + 4]
cmp dword [rsp + 0xe0], edx
jb 0x3a121733a
lea r8d, [rdx + r14]
cmp r8d, 0xfff
ja 0x3a121733a
mov edx, eax
lea rcx, [r12 + 0x1c]
xor eax, eax
mov dword [rsp + 0x84], r14d
mov qword [rsp + 0xc8], rcx
mov r15, qword [rsp + 0x68]
mov r11, rax
mov dword [rsp + 0xd8], esi
mov qword [rsp + 0x78], rdx
jmp 0x3a1216ffd
bsr ecx, ecx
add ecx, 0x24
mov rbp, qword [rbx + 0x90]
mov r13d, dword [rbx + 0xc8]
mov ebp, dword [rbp + rcx*4]
lea r13d, [rsi + r13 + 0x33]
lea rsi, [0x3a1264340]
movzx esi, byte [rsi + rcx]
add ebp, 1
bsr ebp, ebp
shl esi, 8
add esi, r13d
shl ebp, 8
sub esi, ebp
mov ecx, dword [rsp + 0x58]
mov ebp, r10d
add esi, ecx
lea rcx, [rbp*8]
sub rcx, rbp
lea rbp, [r12 + rcx*4]
cmp edi, r10d
jb 0x3a12170b8
cmp esi, dword [rbp]
jl 0x3a1217112
mov rax, qword [rsp + 0x78]
add r11, 1
cmp r11, rax
je 0x3a1217170
mov eax, dword [r15 + r11*8]
mov r8d, dword [r15 + r11*8 + 4]
mov esi, dword [rsp + 0x80]
mov dword [rsp + 0x48], eax
test r11, r11
je 0x3a1217022
lea ecx, [r11 - 1]
mov esi, dword [r15 + rcx*8 + 4]
add esi, 1
cmp r8d, esi
jb 0x3a1216feb
mov eax, dword [rsp + 0x48]
mov ebp, dword [rbx + 0xd0]
mov dword [rsp + 0x68], esi
lea r9d, [rax + 1]
mov eax, dword [rsp + 0x84]
mov edx, ebp
bsr r9d, r9d
movsxd rcx, r9d
mov r14d, r9d
lea r10d, [r8 + rax]
lea r13, [rcx*4]
shl r14d, 8
lea ecx, [r8 - 3]
mov rax, r13
cmp edx, 1
je 0x3a1217152
mov rsi, qword [rbx + 0x98]
mov ebp, dword [rsi + rax]
mov esi, dword [rbx + 0xcc]
add ebp, 1
bsr ebp, ebp
add esi, r14d
shl ebp, 8
sub esi, ebp
cmp r9d, 0x13
jle 0x3a1217099
lea ebp, [r9 - 0x13]
shl ebp, 9
add esi, ebp
cmp ecx, 0x7f
ja 0x3a1216f88
lea rbp, [0x3a1264280]
movzx ecx, byte [rbp + rcx]
jmp 0x3a1216f8e
lea r13d, [rdi + 1]
lea rcx, [r13*8]
sub rcx, r13
lea rcx, [r12 + rcx*4]
mov qword [rsp + 0x88], rcx
mov ecx, r10d
sub ecx, edi
lea edi, [rcx - 1]
mov rcx, qword [rsp + 0x88]
add rdi, r13
lea r13, [rdi*8]
sub r13, rdi
mov rdi, qword [rsp + 0xc8]
lea rdi, [rdi + r13*4]
nop dword [rax]
mov dword [rcx], 0x40000000
add rcx, 0x1c
cmp rcx, rdi
jne 0x3a1217100
mov edi, r10d
movd xmm2, r8d
mov dword [rbp], esi
mov ecx, dword [rsp + 0x60]
sub r8d, 1
movd xmm0, dword [rsp + 0x48]
mov esi, dword [rsp + 0x68]
sub r10d, 1
mov dword [rbp + 0xc], ecx
punpckldq xmm0, xmm2
movq qword [rbp + 4], xmm0
cmp r8d, esi
jb 0x3a1216feb
lea ecx, [r8 - 3]
cmp edx, 1
jne 0x3a121706c
lea ecx, [r8 - 2]
bsr ecx, ecx
lea esi, [r9 + rcx + 0x10]
shl esi, 8
jmp 0x3a1216fc1
mov qword [rsp + 0x68], r15
mov esi, dword [rsp + 0xd8]
jmp 0x3a1216d51
lea esi, [rbx - 0x13]
mov qword [rsp + 0x68], r8
lea ebx, [rax - 3]
add rdi, qword [r11 + 0x98]
shl esi, 9
mov qword [rsp + 0x78], r9
mov dword [rsp + 0x48], esi
mov rsi, qword [r11 + 0x90]
mov qword [rsp + 0x58], rsi
jmp 0x3a121721f
bsr r9d, ebx
add r9d, 0x24
mov rsi, qword [rsp + 0x58]
mov ecx, dword [rsi + r9*4]
mov esi, dword [rsp + 0x48]
add ecx, 1
bsr ecx, ecx
add r8d, dword [r11 + 0xc8]
add ebx, 1
lea r8d, [r10 + r8 + 0x33]
shl ecx, 8
add r8d, r12d
add r8d, esi
sub r8d, edx
movzx edx, byte [r14 + r9]
shl edx, 8
add edx, r8d
mov r8d, eax
add eax, 1
sub edx, ecx
lea rcx, [r8*8]
sub rcx, r8
lea rcx, [r15 + rcx*4]
mov dword [rcx + 0xc], r13d
mov dword [rcx], edx
movq qword [rcx + 4], xmm1
cmp ebp, eax
jb 0x3a1217260
mov edx, dword [rdi]
movdqa xmm1, xmm0
movd xmm5, eax
mov r8d, dword [r11 + 0xcc]
punpckldq xmm1, xmm5
add edx, 1
bsr edx, edx
shl edx, 8
cmp ebx, 0x7f
ja 0x3a12171b8
mov ecx, ebx
lea rsi, [0x3a1264280]
movzx r9d, byte [rsi + rcx]
jmp 0x3a12171c0
mov r8, qword [rsp + 0x68]
mov r9, qword [rsp + 0x78]
add r8, 8
cmp r8, r9
jne 0x3a1216960
jmp 0x3a1216a6f
add ebx, 0x10
nop
lea ecx, [rax - 2]
movd xmm4, eax
movdqa xmm1, xmm0
mov edi, eax
bsr ecx, ecx
lea rsi, [rdi*8]
punpckldq xmm1, xmm4
add eax, 1
add ecx, ebx
sub rsi, rdi
shl ecx, 8
lea rsi, [r15 + rsi*4]
add ecx, r10d
mov dword [rsi + 0xc], r13d
mov dword [rsi], ecx
movq qword [rsi + 4], xmm1
cmp ebp, eax
jae 0x3a1217280
add r8, 8
cmp r8, r9
jne 0x3a1216960
jmp 0x3a1216a6f
movd eax, xmm1
sub eax, 1
movd xmm0, eax
mov edx, dword [rsp + 0xfc]
jmp 0x3a1216f0c
mov eax, ebx
add eax, ecx
je 0x3a1216359
movd xmm1, dword [rsp + 0xf8]
cmp eax, 3
je 0x3a12173d2
mov r9d, eax
movd xmm0, dword [rsp + r9*4 + 0xf8]
mov r9d, dword [rsp + 0x100]
cmp eax, 1
jne 0x3a12173dd
punpckldq xmm0, xmm1
mov dword [rsp + 0x100], r9d
movq qword [rsp + 0xf8], xmm0
jmp 0x3a1216359
mov r10d, dword [rbp + 8]
mov rdi, qword [rsp + 0x1e0]
mov r15, r12
mov ecx, dword [rcx]
test r10d, r10d
jne 0x3a1217354
sub r14d, dword [rbp + 0xc]
mov r8d, r14d
cmp r14d, 0x1000
jbe 0x3a1216e85
mov dword [rsp + 0x48], 1
mov rax, r15
mov r8d, 0x1c
xor r14d, r14d
test edx, edx
je 0x3a1216eb4
mov r9d, dword [rsp + 0x60]
xor ebx, ebx
test r9d, r9d
sete bl
jmp 0x3a121630f
mov eax, dword [rsp + 0x48]
mov ebx, eax
jmp 0x3a1216422
mov qword [rsp + 0x110], 0
pxor xmm0, xmm0
movups xmmword [rsp + 0x118], xmm0
movups xmmword [rsp + 0x128], xmm0
jmp 0x3a12160cd
mov qword [rsp + 0x60], rax
mov r8, rdx
xor r10d, r10d
jmp 0x3a12167a6
movd eax, xmm1
sub eax, 1
movd xmm0, eax
mov r9d, dword [rsp + 0xfc]
jmp 0x3a1217320
mov rax, qword [rsp + 0x1e8]
mov qword [rsp + 0xa0], rax
jmp 0x3a121671a
mov eax, dword [r15 + 0xc]
mov ebx, dword [rsp + 0x84]
mov dword [rsp + 0xe4], r8d
movd xmm6, r12d
mov dword [rsp + 0xe8], r11d
mov ecx, dword [r15 + 4]
xor r14d, r14d
mov r8d, 0x1c
mov dword [rsp + 0x60], eax
mov rax, r15
mov dword [rsp + 0xec], ebx
mov dword [rsp + 0x48], 1
jmp 0x3a1216eac
cmp esi, 0x3f
jbe 0x3a1217470
bsr edx, dword [rsp + 0x60]
lea rcx, [0x3a1264380]
add edx, 0x13
movzx r9d, byte [rcx + rdx]
shl rdx, 2
xor ecx, ecx
shl r9d, 8
jmp 0x3a12162bf
lea rdx, [0x3a1264300]
mov esi, esi
lea rcx, [0x3a1264380]
movzx r9d, byte [rdx + rsi]
mov rdx, r9
movzx r9d, byte [rcx + r9]
xor ecx, ecx
shl rdx, 2
shl r9d, 8
jmp 0x3a12162bf
cmp edx, 0x3f
ja 0x3a12174d8
lea rsi, [0x3a1264300]
mov eax, edx
lea rcx, [0x3a1264380]
movzx eax, byte [rsi + rax]
lea ebp, [rdx - 1]
movzx esi, byte [rcx + rax]
mov r8, rax
shl r8, 2
shl esi, 8
cmp ebp, 0x3f
jbe 0x3a1217517
mov eax, r11d
jmp 0x3a1216b87
bsr eax, edx
lea rcx, [0x3a1264380]
lea ebp, [rdx - 1]
lea r8d, [rax + 0x13]
movzx esi, byte [rcx + r8]
shl r8, 2
shl esi, 8
cmp edx, 0x20001
jne 0x3a12174c6
mov dword [rsp + 0x58], 0x1000
mov eax, r11d
mov ebp, 0x8c
mov ecx, 0x100
jmp 0x3a1216ba0
lea rax, [0x3a1264300]
movzx eax, byte [rax + rbp]
mov rbp, rax
movzx eax, byte [rcx + rax]
xor ecx, ecx
shl rbp, 2
shl eax, 8
mov dword [rsp + 0x58], eax
mov eax, r11d
jmp 0x3a1216ba0