Function at 0x3a1214a60
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 rax, rcx
mov qword [rsp + 0x1d0], rcx
sub rax, 0xffffffffffffff80
mov qword [rsp + 0x1d8], rdx
mov edx, 3
mov qword [rsp + 0xa8], rax
mov rax, rbx
add rax, r9
mov qword [rsp + 0x1e0], r8
mov qword [rsp + 0xa0], rax
sub rax, 8
mov qword [rsp + 0x98], rax
mov eax, dword [rcx + 0x18]
add rax, qword [rcx + 8]
lea rcx, [0x3a121a6a0]
mov qword [rsp + 0x1e8], r9
mov rsi, rax
lea rax, [0x3a1219880]
movq xmm0, rcx
movq xmm3, rax
lea rcx, [0x3a1219180]
lea rax, [0x3a1219fa0]
punpcklqdq xmm0, xmm3
movq xmm3, rax
lea rax, [0x3a121cbb0]
movaps xmmword [rsp + 0x110], xmm0
movq xmm0, rcx
lea rcx, [0x3a1220b90]
punpcklqdq xmm0, xmm3
movq xmm3, rax
lea rax, [0x3a121aff0]
movaps xmmword [rsp + 0x120], xmm0
movq xmm0, rcx
movq xmm5, rax
lea rcx, [0x3a121bdd0]
punpcklqdq xmm0, xmm3
lea rax, [0x3a121faf0]
movaps xmmword [rsp + 0x130], xmm0
movq xmm3, rax
movq xmm0, rcx
lea rax, [0x3a121d990]
punpcklqdq xmm0, xmm5
movq xmm5, rax
mov eax, 6
cmp edi, eax
lea rcx, [0x3a1221d90]
movaps xmmword [rsp + 0x140], xmm0
cmovbe eax, edi
movq xmm0, rcx
lea rcx, [0x3a121ea40]
punpcklqdq xmm0, xmm3
cmp eax, edx
movaps xmmword [rsp + 0x150], xmm0
movq xmm0, rcx
cmovb eax, edx
movsxd rdx, dword [rsp + 0x1f8]
punpcklqdq xmm0, xmm5
movaps xmmword [rsp + 0x160], xmm0
sub eax, 3
lea rax, [rax + rdx*4]
mov rax, qword [rsp + rax*8 + 0x110]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x1d0]
mov edx, dword [rax + 0x104]
mov eax, 0xfff
cmp edx, eax
cmovbe eax, edx
mov dword [rsp + 0xd4], eax
xor eax, eax
cmp edi, 3
setne al
add eax, 3
mov dword [rsp + 0x7c], eax
mov rax, qword [rsp + 0x1d0]
mov eax, dword [rax + 0x2c]
mov dword [rsp + 0xf4], eax
mov rax, qword [rsp + 0x1d0]
mov r12, qword [rax + 0xa8]
mov rax, qword [rax + 0xa0]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x1d0]
mov rax, qword [rax + 0x110]
test rax, rax
je 0x3a1215d74
movdqu xmm3, xmmword [rax]
movdqu xmm4, xmmword [rax + 0x10]
mov rax, qword [rax + 0x20]
movaps xmmword [rsp + 0x110], xmm3
mov qword [rsp + 0x130], rax
movaps xmmword [rsp + 0x120], xmm4
lea rax, [rsp + 0x110]
xor edx, edx
mov r8d, ebx
mov dword [rsp + 0x140], 0
mov rcx, rax
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0x138], 0
call fcn.3a12147c0
mov rdx, qword [rsp + 0x1e8]
mov rcx, qword [rsp + 0xa8]
mov r8, rbx
mov r9d, 2
call fcn.3a1213b90
xor eax, eax
mov rdi, qword [rsp + 0x98]
cmp qword [rsp + 0x1e8], rsi
sete al
add rax, qword [rsp + 0x1e8]
mov qword [rsp + 0x80], rax
cmp rax, rdi
jae 0x3a1215d16
mov rax, qword [rsp + 0x128]
mov rbp, qword [rsp + 0x1e0]
mov r15, r12
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x1e8]
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0xf4]
mov qword [rsp + 0xc8], rax
lea rax, [r12 + 0x1c]
mov qword [rsp + 0x50], rax
jmp 0x3a1214d68
add qword [rsp + 0x80], 1
mov rdi, qword [rsp + 0x98]
cmp qword [rsp + 0x80], rdi
jae 0x3a1215d26
mov rdi, qword [rsp + 0x80]
xor esi, esi
mov qword [rsp + 0x28], rbp
mov rax, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xa0]
mov rbx, rdi
mov r13, qword [rsp + 0x90]
mov r9, rdi
mov r8, qword [rsp + 0xc8]
sub rbx, rax
mov eax, dword [rsp + 0x7c]
mov qword [rsp + 0x20], r14
test ebx, ebx
mov dword [rsp + 0x78], ebx
mov rdx, qword [rsp + 0x1d0]
mov rcx, r13
sete sil
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0xb8]
mov dword [rsp + 0x30], esi
call rax
mov dword [rsp + 0x104], eax
mov r10d, eax
mov rax, qword [rsp + 0xc0]
test rax, rax
je 0x3a1214e26
cmp qword [rsp + 0x118], rax
jae 0x3a1214e26
mov rax, r14
mov r9d, edi
mov rdx, r13
mov rcx, qword [rsp + 0xe0]
sub rax, rdi
sub r9d, dword [rsp + 0x1e8]
lea r8, [rsp + 0x104]
mov dword [rsp + 0x20], eax
call fcn.3a1214960
mov r10d, dword [rsp + 0x104]
test r10d, r10d
je 0x3a1214d49
mov r14d, dword [rbp]
mov ecx, dword [rsp + 0x78]
mov dword [r15 + 0x10], r14d
mov eax, dword [rbp + 4]
mov dword [r15 + 0x14], eax
mov edi, dword [rbp + 8]
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x1d0]
mov dword [r15 + 0xc], ebx
mov dword [r15 + 0x18], edi
mov rdx, qword [rax + 0x88]
mov dword [r15 + 8], 0
mov r9d, dword [rax + 0xd0]
mov r8d, dword [rax + 0xc4]
mov qword [rsp + 0x48], rdx
call fcn.3a1213ae0
mov rbx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x48]
mov dword [r15], eax
mov r13d, eax
lea eax, [r10 - 1]
lea rax, [rbx + rax*8]
mov r9d, dword [rax + 4]
cmp dword [rsp + 0xd4], r9d
mov r11d, dword [rax]
jae 0x3a1215433
mov rcx, r15
mov r8d, 0x1c
mov r13d, 1
xor r12d, r12d
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0xf8], rax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x100], eax
cmp r11d, 2
jbe 0x3a12153d8
movd xmm4, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xfc]
mov dword [rsp + 0x100], eax
lea eax, [r11 - 2]
movd xmm0, eax
punpckldq xmm0, xmm4
movq qword [rsp + 0xf8], xmm0
mov rax, qword [rsp + 0xf8]
mov edx, dword [rsp + 0x100]
mov qword [rsp + 0x104], rax
mov dword [rsp + 0x10c], edx
mov qword [rbp], rax
mov dword [rbp + 8], edx
mov edi, dword [rsp + 0xd0]
lea rax, [r15 + r8]
movd xmm1, dword [rsp + 0x78]
movd xmm0, r11d
movd xmm3, r9d
mov dword [rax], edi
mov edi, dword [rsp + 0xdc]
punpckldq xmm1, xmm6
punpckldq xmm0, xmm3
punpcklqdq xmm0, xmm1
mov dword [rax + 0x14], edi
mov edi, dword [rsp + 0xd8]
movups xmmword [rax + 4], xmm0
mov dword [rax + 0x18], edi
test r12d, r12d
je 0x3a1215d55
mov edx, r12d
lea rax, [rdx*8]
sub rax, rdx
lea rcx, [r15 + rax*4]
lea eax, [r13 - 1]
mov edx, dword [rcx + 8]
add edx, dword [rcx + 0xc]
nop dword [rax]
lea r8, [rax*8]
movdqu xmm4, xmmword [rcx]
mov rbx, rax
sub r8, rax
lea r8, [r15 + r8*4]
movups xmmword [r8], xmm4
movdqu xmm5, xmmword [rcx + 0xc]
movups xmmword [r8 + 0xc], xmm5
cmp edx, r12d
jb 0x3a1215198
cmp r13d, eax
jb 0x3a12151f6
mov rdi, qword [rsp + 0xa0]
mov qword [rsp + 0x1e0], rbp
mov dword [rsp + 0x48], r13d
mov rbp, qword [rsp + 0xb0]
sub rdi, 0x20
mov qword [rsp + 0x58], rdi
mov rdi, qword [rsp + 0x1d8]
jmp 0x3a121507b
mov rax, qword [rdi + 0x18]
movdqu xmm5, xmmword [rbp]
movups xmmword [rax], xmm5
cmp r14, 0x10
ja 0x3a1215392
add qword [rdi + 0x18], r14
mov rax, qword [rdi + 8]
mov r9d, dword [rsp + 0x78]
lea rdx, [r11 - 3]
mov word [rax + 4], r12w
add r9d, 1
mov dword [rax], r9d
cmp rdx, 0xffff
jbe 0x3a1215056
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 0x3a12151de
mov eax, ebx
lea rdx, [rax*8]
sub rdx, rax
lea rax, [r15 + rdx*4]
mov r14d, dword [rax + 0xc]
mov r13d, dword [rax + 8]
mov r12, r14
lea rsi, [rbp + r14]
test r13d, r13d
je 0x3a121506c
mov eax, dword [rax + 4]
mov dword [rsp + 0x20], r13d
mov r8, rbp
mov edx, r14d
mov rcx, qword [rsp + 0xa8]
mov r9d, eax
mov dword [rsp + 0x78], eax
call fcn.3a1213a30
mov rax, qword [rsp + 0x58]
mov r11d, r13d
mov rcx, rax
cmp rax, rsi
jae 0x3a1215006
mov rdx, rax
mov rax, qword [rdi + 0x18]
cmp rcx, rbp
jb 0x3a12151bb
sub rdx, rbp
movdqu xmm4, xmmword [rbp]
lea r8, [rbp + 0x10]
mov r10, rdx
lea rdx, [rax + rdx]
add rax, 0x10
movups xmmword [rax - 0x10], xmm4
cmp r10, 0x10
jle 0x3a1215126
movdqu xmm4, xmmword [r8]
add rax, 0x20
add r8, 0x20
movups xmmword [rax - 0x20], xmm4
movdqu xmm5, xmmword [r8 - 0x10]
movups xmmword [rax - 0x10], xmm5
cmp rax, rdx
jb 0x3a1215106
mov r8, rsi
mov rax, rdx
sub r8, rcx
lea r10, [r8 - 1]
cmp r10, 6
jbe 0x3a12151d7
lea rdx, [rcx + 1]
mov r9, rax
sub r9, rdx
xor edx, edx
cmp r9, 0xe
ja 0x3a1215297
nop dword [rax + rax]
movzx r9d, byte [rcx + rdx]
mov byte [rax + rdx], r9b
add rdx, 1
cmp r8, rdx
jne 0x3a1215158
add qword [rdi + 0x18], r14
mov rax, qword [rdi + 8]
cmp r14, 0xffff
jbe 0x3a1215024
mov rdx, rax
sub rdx, qword [rdi]
mov dword [rdi + 0x48], 1
sar rdx, 3
mov dword [rdi + 0x4c], edx
jmp 0x3a1215024
sub r12d, edx
mov edx, r12d
lea rax, [rdx*8]
sub rax, rdx
lea rcx, [r15 + rax*4]
lea eax, [rbx - 1]
mov edx, dword [rcx + 8]
add edx, dword [rcx + 0xc]
jmp 0x3a1214fa0
mov rcx, rbp
cmp rbp, rsi
jae 0x3a121516a
mov r8, rsi
sub r8, rcx
lea r10, [r8 - 1]
cmp r10, 6
ja 0x3a121513d
xor edx, edx
jmp 0x3a1215158
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0xb0], rbp
mov rbp, qword [rsp + 0x1e0]
mov rax, qword [rsp + 0x1d0]
cmp dword [rax + 0xe0], 2
je 0x3a121522a
mov rdi, rax
mov eax, dword [rax + 0xb0]
mov dword [rsp + 0x48], eax
add eax, 1
bsr ecx, eax
shl eax, 8
shr eax, cl
shl ecx, 8
add eax, ecx
mov dword [rdi + 0xc0], eax
mov rax, qword [rsp + 0x1d0]
mov rdi, qword [rsp + 0x1d0]
mov eax, dword [rax + 0xb4]
add eax, 1
bsr ecx, eax
shl eax, 8
shr eax, cl
shl ecx, 8
add eax, ecx
mov dword [rdi + 0xc4], eax
mov eax, dword [rdi + 0xb8]
add eax, 1
bsr ecx, eax
shl eax, 8
shr eax, cl
shl ecx, 8
add eax, ecx
mov dword [rdi + 0xc8], eax
mov eax, dword [rdi + 0xbc]
mov dword [rsp + 0x48], eax
add eax, 1
bsr ecx, eax
shl eax, 8
shr eax, cl
shl ecx, 8
add eax, ecx
mov dword [rdi + 0xcc], eax
jmp 0x3a1214d52
cmp r10, 0xe
jbe 0x3a1215d60
mov r10, r8
and r10, 0xfffffffffffffff0
movdqu xmm3, xmmword [rcx + rdx]
movups xmmword [rax + rdx], xmm3
add rdx, 0x10
cmp rdx, r10
jne 0x3a12152a8
mov r10, r8
and r10, 0xfffffffffffffff0
mov qword [rsp + 0x60], r10
lea rdx, [rcx + r10]
lea r9, [rax + r10]
test r8b, 0xf
je 0x3a121516a
sub r8, r10
lea r10, [r8 - 1]
cmp r10, 6
jbe 0x3a1215309
mov r10, qword [rsp + 0x60]
mov rcx, qword [rcx + r10]
mov qword [rax + r10], rcx
mov rax, r8
and rax, 0xfffffffffffffff8
add rdx, rax
add r9, rax
and r8d, 7
je 0x3a121516a
movzx eax, byte [rdx]
mov byte [r9], al
lea rax, [rdx + 1]
cmp rax, rsi
jae 0x3a121516a
movzx eax, byte [rdx + 1]
mov byte [r9 + 1], al
lea rax, [rdx + 2]
cmp rax, rsi
jae 0x3a121516a
movzx eax, byte [rdx + 2]
mov byte [r9 + 2], al
lea rax, [rdx + 3]
cmp rax, rsi
jae 0x3a121516a
movzx eax, byte [rdx + 3]
mov byte [r9 + 3], al
lea rax, [rdx + 4]
cmp rax, rsi
jae 0x3a121516a
movzx eax, byte [rdx + 4]
mov byte [r9 + 4], al
lea rax, [rdx + 5]
cmp rax, rsi
jae 0x3a121516a
movzx eax, byte [rdx + 5]
mov byte [r9 + 5], al
lea rax, [rdx + 6]
cmp rax, rsi
jae 0x3a121516a
movzx eax, byte [rdx + 6]
mov byte [r9 + 6], al
jmp 0x3a121516a
mov rax, qword [rdi + 0x18]
movdqu xmm3, xmmword [rbp + 0x10]
movups xmmword [rax + 0x10], xmm3
cmp r14d, 0x20
jbe 0x3a121516a
lea rcx, [rax + r14]
lea rdx, [rbp + 0x20]
add rax, 0x20
movdqu xmm4, xmmword [rdx]
add rax, 0x20
add rdx, 0x20
movups xmmword [rax - 0x20], xmm4
movdqu xmm5, xmmword [rdx - 0x10]
movups xmmword [rax - 0x10], xmm5
cmp rax, rcx
jb 0x3a12153b5
jmp 0x3a121516a
mov eax, esi
add eax, r11d
je 0x3a1214f0e
mov r10d, dword [rsp + 0xf8]
lea ecx, [r10 - 1]
cmp eax, 3
je 0x3a1215e0e
mov edx, eax
mov ecx, dword [rsp + rdx*4 + 0xf8]
mov edx, dword [rsp + 0x100]
cmp eax, 1
jne 0x3a1215e0e
movd xmm0, ecx
movd xmm5, r10d
mov dword [rsp + 0x100], edx
punpckldq xmm0, xmm5
movq qword [rsp + 0xf8], xmm0
jmp 0x3a1214f0e
mov rax, qword [rsp + 0x1d0]
xor ecx, ecx
mov qword [rsp + 0x58], rdx
mov eax, dword [rax + 0xd0]
mov dword [rsp + 0x48], eax
mov r9d, eax
mov rax, qword [rsp + 0x1d0]
mov r8d, dword [rax + 0xc4]
call fcn.3a1213ae0
cmp dword [rsp + 0x7c], 4
mov rdx, qword [rsp + 0x58]
mov dword [r15 + 0x1c], 0x40000000
mov dword [r15 + 0x38], 0x40000000
jne 0x3a1215487
mov dword [r15 + 0x54], 0x40000000
mov rbx, qword [rsp + 0x90]
add r13d, eax
mov dword [rsp + 0x70], r14d
mov eax, r10d
mov dword [rsp + 0x88], edi
mov r12d, dword [rsp + 0x7c]
mov qword [rsp + 0xe8], rdx
mov r9, rbx
lea r11, [rbx + rax*8]
mov rbx, qword [rsp + 0x1d0]
mov qword [rsp + 0x1e0], rbp
mov r14d, dword [r9 + 4]
movd xmm1, dword [r9]
cmp r14d, r12d
jb 0x3a12155e6
movd eax, xmm1
add eax, 1
bsr eax, eax
mov edi, eax
shl edi, 8
mov r8d, edi
movsxd rdi, eax
shl rdi, 2
cmp dword [rsp + 0x48], 1
je 0x3a1215c9f
mov qword [rsp + 0x58], r9
mov rbp, qword [rbx + 0x90]
lea r10d, [r12 - 3]
mov qword [rsp + 0x60], r11
add rdi, qword [rbx + 0x98]
jmp 0x3a1215598
bsr r9d, r10d
add r9d, 0x24
mov edx, dword [rbp + r9*4]
add edx, 1
bsr ecx, edx
add r11d, dword [rbx + 0xc8]
shl edx, 8
add r10d, 1
lea r11d, [r13 + r11 + 0x33]
shr edx, cl
add r11d, r8d
sub r11d, esi
mov esi, dword [rsp + 0x78]
sub r11d, eax
lea rax, [0x3a1264340]
movzx eax, byte [rax + r9]
mov r9d, ecx
mov ecx, r12d
add r12d, 1
shl r9d, 8
shl eax, 8
add eax, r11d
sub eax, r9d
sub eax, edx
lea rdx, [rcx*8]
sub rdx, rcx
lea rdx, [r15 + rdx*4]
mov dword [rdx + 0xc], esi
mov dword [rdx], eax
movq qword [rdx + 4], xmm0
cmp r14d, r12d
jb 0x3a12155dc
mov eax, dword [rdi]
movdqa xmm0, xmm1
movd xmm3, r12d
mov r11d, dword [rbx + 0xcc]
punpckldq xmm0, xmm3
add eax, 1
bsr ecx, eax
shl eax, 8
mov esi, ecx
shr eax, cl
shl esi, 8
cmp r10d, 0x7f
ja 0x3a1215520
mov edx, r10d
lea rcx, [0x3a1264280]
movzx r9d, byte [rcx + rdx]
jmp 0x3a1215528
mov r9, qword [rsp + 0x58]
mov r11, qword [rsp + 0x60]
add r9, 8
cmp r9, r11
jne 0x3a12154c5
mov r14d, dword [rsp + 0x70]
mov edi, dword [rsp + 0x88]
mov rdx, qword [rsp + 0xe8]
mov rbp, qword [rsp + 0x1e0]
mov eax, dword [r15]
mov r9d, dword [r15 + 8]
sub r12d, 1
je 0x3a1215e8f
mov dword [rsp + 0x60], 1
mov rbp, rdx
mov eax, dword [rsp + 0x60]
mov r14, r15
mov rbx, qword [rsp + 0x1d0]
mov edx, dword [rsp + 0x48]
mov r13d, r12d
jmp 0x3a121581c
mov r10d, dword [rdi + 0xc]
lea eax, [r10 + 1]
mov dword [rsp + 0x48], eax
cmp dword [rbx + 0xe0], 2
mov esi, dword [rdi]
mov eax, 0x800
je 0x3a121569d
mov eax, 0x600
cmp edx, 1
je 0x3a121569d
mov rax, qword [rsp + 0x80]
movzx edx, byte [rax + r11 - 1]
mov rax, qword [rbx + 0x80]
mov eax, dword [rax + rdx*4]
add eax, 1
bsr ecx, eax
shl eax, 8
shr eax, cl
shl ecx, 8
lea edx, [rax + rcx]
mov eax, dword [rbx + 0xc0]
sub eax, edx
mov r12d, dword [rbx + 0xc4]
mov ecx, dword [rsp + 0x48]
mov rdx, rbp
add esi, eax
mov r9d, dword [rbx + 0xd0]
mov r8d, r12d
mov dword [rsp + 0x78], r9d
call fcn.3a1213ae0
mov r9d, dword [rsp + 0x78]
mov rdx, rbp
mov ecx, r10d
mov r8d, r12d
add esi, eax
call fcn.3a1213ae0
sub esi, eax
lea rax, [r11*8]
sub rax, r11
mov r10d, esi
lea rsi, [r14 + rax*4]
mov ebp, dword [rsi]
cmp r10d, ebp
jg 0x3a1215858
mov eax, dword [rsp + 0x48]
mov qword [rsi + 4], 0
mov dword [rsi], r10d
mov dword [rsi + 0xc], eax
mov rax, qword [rdi + 0x10]
lea r10, [rsi + 0x10]
mov qword [rsi + 0x10], rax
mov eax, dword [rdi + 0x18]
mov dword [r10 + 8], eax
cmp qword [rsp + 0x98], r15
jb 0x3a12157fd
mov eax, dword [rsi + 0xc]
mov ebp, dword [rsi]
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x60]
cmp r13d, eax
je 0x3a1215e4e
xor r11d, r11d
mov rdx, qword [rbx + 0x88]
mov r9d, dword [rbx + 0xd0]
xor ecx, ecx
mov r8d, dword [rbx + 0xc4]
call fcn.3a1213ae0
mov qword [rsp + 0x28], r10
mov r9, r15
mov rdx, rbx
mov r12, qword [rsp + 0xa0]
mov edi, eax
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x30], r11d
mov r8, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x90]
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x20], r12
call rax
mov r10, qword [rsp + 0xc0]
mov dword [rsp + 0x104], eax
test r10, r10
je 0x3a12157f5
cmp qword [rsp + 0x118], r10
jae 0x3a12157f5
mov rax, r12
mov rdx, qword [rsp + 0x90]
mov r9d, r15d
mov rcx, qword [rsp + 0xe0]
sub rax, r15
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 0x3a121592a
add dword [rsp + 0x60], 1
mov eax, dword [rsp + 0x60]
cmp r13d, eax
jb 0x3a1215b64
mov rbp, qword [rbx + 0x88]
mov edx, dword [rbx + 0xd0]
lea ecx, [rax - 1]
mov rdi, qword [rsp + 0x80]
mov r11d, eax
lea rax, [rcx*8]
sub rax, rcx
lea r15, [rdi + r11]
lea rdi, [r14 + rax*4]
mov ecx, dword [rdi + 8]
test ecx, ecx
je 0x3a1215646
mov dword [rsp + 0x48], 1
xor r10d, r10d
jmp 0x3a1215652
mov r9d, dword [rsi + 8]
test r9d, r9d
je 0x3a1215707
mov edx, dword [rsp + 0x60]
mov eax, dword [rsi + 0xc]
mov r11d, dword [rsi + 4]
sub edx, r9d
mov dword [rsp + 0x78], eax
lea rax, [rdx*8]
sub rax, rdx
lea rax, [r14 + rax*4]
mov rdx, qword [rax + 0x10]
mov eax, dword [rax + 0x18]
mov qword [rsp + 0xf8], rdx
mov dword [rsp + 0x100], eax
cmp r11d, 2
jbe 0x3a1215c3c
movd xmm5, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xfc]
mov dword [rsp + 0x100], eax
lea eax, [r11 - 2]
movd xmm0, eax
punpckldq xmm0, xmm5
movq qword [rsp + 0xf8], xmm0
mov rdx, qword [rsp + 0xf8]
mov eax, dword [rsp + 0x100]
lea r10, [rsi + 0x10]
mov qword [rsi + 0x10], rdx
mov qword [rsp + 0x104], rdx
mov dword [rsp + 0x10c], eax
mov dword [r10 + 8], eax
cmp qword [rsp + 0x98], r15
jb 0x3a12157fd
mov eax, dword [rsp + 0x60]
cmp r13d, eax
je 0x3a1215e31
mov dword [rsp + 0x78], 0
mov r11d, 1
jmp 0x3a1215741
mov rcx, qword [rsp + 0x90]
lea edx, [rax - 1]
lea rdx, [rcx + rdx*8]
mov r9d, dword [rdx + 4]
cmp dword [rsp + 0xd4], r9d
jb 0x3a1215d99
mov ecx, dword [rsp + 0x60]
add ecx, r9d
cmp ecx, 0xfff
ja 0x3a1215d99
mov eax, eax
add ebp, edi
xor r11d, r11d
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x90]
nop dword [rax]
movd xmm1, dword [rax + r11*8]
mov r9d, dword [rax + r11*8 + 4]
mov r15d, dword [rsp + 0x7c]
test r11, r11
je 0x3a121599a
lea ecx, [r11 - 1]
mov r15d, dword [rax + rcx*8 + 4]
add r15d, 1
cmp r9d, r15d
jb 0x3a1215b40
movd edi, xmm1
mov esi, dword [rsp + 0x60]
mov qword [rsp + 0x68], rax
lea ecx, [rdi + 1]
mov qword [rsp + 0x70], r11
bsr ecx, ecx
movsxd r10, ecx
mov r12d, ecx
lea rdi, [r10*4]
shl r12d, 8
lea r10d, [r9 + rsi]
mov qword [rsp + 0x48], rdi
lea edi, [rcx + 0x10]
mov dword [rsp + 0x58], edi
mov edi, dword [rbx + 0xd0]
jmp 0x3a1215a6d
bsr eax, eax
add eax, 0x24
mov rdx, qword [rbx + 0x90]
mov edx, dword [rdx + rax*4]
add edx, 1
bsr ecx, edx
add r11d, dword [rbx + 0xc8]
shl edx, 8
lea r11d, [r12 + r11 + 0x33]
shr edx, cl
sub r11d, esi
lea rsi, [0x3a1264340]
movzx eax, byte [rsi + rax]
sub r11d, r8d
mov r8d, ecx
shl r8d, 8
shl eax, 8
add eax, r11d
sub eax, r8d
sub eax, edx
mov ecx, r10d
lea edx, [rax + rbp]
lea rax, [rcx*8]
sub rax, rcx
lea rcx, [r14 + rax*4]
cmp r13d, r10d
jb 0x3a1215ac0
cmp edx, dword [rcx]
jl 0x3a1215b0a
sub r9d, 1
sub r10d, 1
cmp r9d, r15d
jb 0x3a1215b36
lea eax, [r9 - 3]
cmp edi, 1
je 0x3a1215c18
mov rsi, qword [rsp + 0x48]
mov rdx, qword [rbx + 0x98]
mov r11d, dword [rbx + 0xcc]
mov r8d, dword [rdx + rsi]
add r8d, 1
bsr ecx, r8d
shl r8d, 8
mov esi, ecx
shr r8d, cl
shl esi, 8
cmp eax, 0x7f
ja 0x3a12159f0
lea rcx, [0x3a1264280]
movzx eax, byte [rcx + rax]
jmp 0x3a12159f6
mov r11d, r10d
lea r8d, [r13 + 1]
mov rsi, qword [rsp + 0x50]
sub r11d, r13d
lea rax, [r8*8]
sub r11d, 1
sub rax, r8
add r8, r11
lea rax, [r14 + rax*4]
lea r11, [r8*8]
sub r11, r8
lea r8, [rsi + r11*4]
nop dword [rax]
mov dword [rax], 0x40000000
add rax, 0x1c
cmp rax, r8
jne 0x3a1215af8
mov r13d, r10d
movd xmm2, r9d
mov eax, dword [rsp + 0x78]
movdqa xmm0, xmm1
mov dword [rcx], edx
punpckldq xmm0, xmm2
sub r9d, 1
sub r10d, 1
mov dword [rcx + 0xc], eax
movq qword [rcx + 4], xmm0
cmp r9d, r15d
jae 0x3a1215a6d
mov rax, qword [rsp + 0x68]
mov r11, qword [rsp + 0x70]
add r11, 1
cmp qword [rsp + 0x88], r11
jne 0x3a1215978
add dword [rsp + 0x60], 1
mov eax, dword [rsp + 0x60]
cmp r13d, eax
jae 0x3a121580f
mov edx, r13d
mov rbp, qword [rsp + 0x1e0]
mov r15, r14
lea rax, [rdx*8]
mov dword [rsp + 0x60], edx
mov edi, edx
sub rax, rdx
lea rsi, [r14 + rax*4]
mov eax, dword [rsi + 0xc]
mov r9d, dword [rsi + 8]
mov r11d, dword [rsi + 4]
mov dword [rsp + 0x78], eax
mov eax, dword [rsi]
mov dword [rsp + 0xd0], eax
mov eax, dword [rsi + 0x14]
movd xmm6, dword [rsi + 0x10]
mov dword [rsp + 0xdc], eax
mov eax, dword [rsi + 0x18]
mov dword [rsp + 0xd8], eax
mov eax, dword [rsp + 0x78]
add eax, r9d
cmp eax, edi
jae 0x3a1215e1a
sub edi, eax
mov edx, edi
lea rax, [rdx*8]
mov r12, rdx
sub rax, rdx
lea edx, [rdx + 1]
lea rcx, [r15 + rax*4]
lea rax, [rdx*8]
mov r13, rdx
sub rax, rdx
lea r8, [rax*4]
test r9d, r9d
jne 0x3a1215dfd
mov rax, qword [rcx + 0x10]
mov qword [rbp], rax
mov eax, dword [rcx + 0x18]
mov dword [rbp + 8], eax
jmp 0x3a1214f33
lea ecx, [r9 - 2]
mov eax, r9d
mov esi, dword [rsp + 0x58]
bsr ecx, ecx
shl eax, 8
sub eax, 0x200
shr eax, cl
add ecx, esi
shl ecx, 8
add eax, ecx
jmp 0x3a1215a3a
cmp dword [rsp + 0x78], 1
mov edx, r11d
adc edx, 0
test edx, edx
je 0x3a12158d2
mov r8d, dword [rsp + 0xf8]
lea eax, [r8 - 1]
cmp edx, 3
je 0x3a1215d0a
mov eax, edx
mov ecx, dword [rsp + 0x100]
mov eax, dword [rsp + rax*4 + 0xf8]
cmp edx, 1
jne 0x3a1215d0a
movd xmm0, eax
movd xmm3, r8d
mov dword [rsp + 0x100], ecx
punpckldq xmm0, xmm3
movq qword [rsp + 0xf8], xmm0
jmp 0x3a12158d2
mov edx, dword [rsp + 0x78]
lea edi, [rax + 0x10]
lea r10d, [r12 - 2]
mov ebp, r12d
movd xmm4, r12d
movdqa xmm0, xmm1
bsr ecx, r10d
lea rax, [rbp*8]
punpckldq xmm0, xmm4
add r12d, 1
sub rax, rbp
lea rbp, [r15 + rax*4]
mov eax, r10d
add r10d, 1
shl eax, 8
mov dword [rbp + 0xc], edx
shr eax, cl
add ecx, edi
movq qword [rbp + 4], xmm0
add eax, r13d
shl ecx, 8
add ecx, eax
mov dword [rbp], ecx
cmp r14d, r12d
jae 0x3a1215cab
add r9, 8
cmp r9, r11
jne 0x3a12154c5
jmp 0x3a12155f3
mov ecx, dword [rsp + 0xfc]
jmp 0x3a1215c7d
mov rax, qword [rsp + 0x1e8]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0xb0]
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
mov ebx, r13d
mov eax, r13d
jmp 0x3a1214fd6
mov qword [rsp + 0x60], 0
mov r9, rax
mov rdx, rcx
jmp 0x3a12152e5
mov qword [rsp + 0x110], 0
pxor xmm0, xmm0
movups xmmword [rsp + 0x118], xmm0
movups xmmword [rsp + 0x128], xmm0
jmp 0x3a1214c82
mov r11d, dword [rdx]
mov edx, dword [rsi + 8]
mov r15, r14
mov rbp, qword [rsp + 0x1e0]
test edx, edx
jne 0x3a1215db5
mov edi, dword [rsi + 0xc]
sub dword [rsp + 0x60], edi
mov edi, dword [rsp + 0x60]
cmp edi, 0x1000
ja 0x3a1215e73
mov edx, edi
lea rax, [rdx*8]
sub rax, rdx
lea edx, [rdi + 1]
lea rcx, [r15 + rax*4]
lea rax, [rdx*8]
mov r13, rdx
sub rax, rdx
lea r8, [rax*4]
mov r12d, dword [rsp + 0x60]
test r9d, r9d
je 0x3a1215bff
mov eax, dword [rsp + 0x78]
xor esi, esi
test eax, eax
sete sil
jmp 0x3a1214ec2
mov edx, dword [rsp + 0xfc]
jmp 0x3a1215411
mov rcx, r15
mov r8d, 0x1c
mov r13d, 1
xor r12d, r12d
jmp 0x3a1215bf6
mov r13d, ebp
mov r15, r14
mov rbp, qword [rsp + 0x1e0]
mov edi, eax
mov dword [rsp + 0xd0], r13d
jmp 0x3a1215b9f
mov r13d, ebp
mov r9d, dword [rsi + 8]
mov r11d, dword [rsi + 4]
mov r15, r14
mov dword [rsp + 0xd0], r13d
mov rbp, qword [rsp + 0x1e0]
mov edi, eax
jmp 0x3a1215b9f
mov rcx, r15
mov dword [rsp + 0x60], 0
mov r8d, 0x1c
mov r13d, 1
jmp 0x3a1215def
mov ebx, dword [r15 + 0xc]
mov r11d, dword [r15 + 4]
mov rcx, r15
movd xmm6, r14d
mov dword [rsp + 0xd8], edi
mov edi, dword [rsp + 0x68]
mov r8d, 0x1c
mov r13d, 1
mov dword [rsp + 0x78], ebx
mov dword [rsp + 0xdc], edi
mov dword [rsp + 0xd0], eax
jmp 0x3a1215bf6