Function at 0x641c80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x388
vmovups xmmword [rsp + 0x2e0], xmm6
vmovups xmmword [rsp + 0x2f0], xmm7
vmovups xmmword [rsp + 0x300], xmm8
vmovups xmmword [rsp + 0x310], xmm9
vmovups xmmword [rsp + 0x320], xmm10
vmovups xmmword [rsp + 0x330], xmm11
vmovups xmmword [rsp + 0x340], xmm12
vmovups xmmword [rsp + 0x350], xmm13
vmovups xmmword [rsp + 0x360], xmm14
vmovups xmmword [rsp + 0x370], xmm15
mov r14d, dword [r9]
lea r13, [rsp + 0x20f]
mov rbx, rdx
mov rsi, r8
mov rbp, r13
and rbp, 0xffffffffffffffc0
cmp r14d, 5
je 0x641d15
cmp r14d, 0xa
jne 0x642440
mov edi, dword [r9 + 4]
lea eax, [rdi - 0x400]
mov dword [rsp + 0x4c], edi
cmp eax, 0x7fc00
ja 0x642440
mov eax, dword [r9 + 8]
lea edx, [rax - 8]
cmp edx, 0x18
ja 0x642440
blsr ecx, edi
mov dword [rsp + 0xc8], ecx
jne 0x642440
mov rcx, qword [r9 + 0x18]
mov rdi, qword [r9 + 0x10]
mov r12, rcx
test rdi, rdi
jne 0x641d69
test rcx, rcx
jne 0x642440
mov ecx, dword [rsp + 0x4c]
mov r15d, eax
mov qword [rsp + 0xc0], r15
shl r15, 7
mov qword [rsp + 0xe0], r15
mov r13, r15
imul rcx, r15
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x90], rax
test rax, rax
je 0x643ed8
mov rcx, r15
call sub.msvcrt.dll_malloc
mov r15, rax
test rax, rax
je 0x643ecf
mov rcx, r13
call sub.msvcrt.dll_malloc
mov r13, rax
test rax, rax
je 0x643ec6
mov dword [rsp + 0x150], r14d
cmp r14d, 5
je 0x643e60
vmovups xmm0, xmmword [0x0070ec50]
mov dword [rsp + 0x60], 0x7ff0
mov edx, 0x8000
mov ecx, 0x18000
vmovups xmmword [rsp + 0x154], xmm0
mov qword [rsp + 0x50], rdx
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x128], rax
test rax, rax
je 0x643ebd
mov rdx, qword [rsp + 0x50]
vmovq xmm4, rax
xor r9d, r9d
vpunpcklqdq xmm0, xmm4, xmm4
xor r8d, r8d
mov rcx, rbp
vmovups xmmword [rsp + 0x168], xmm0
mov qword [rsp + 0x188], 0
add rax, rdx
mov qword [rsp + 0x178], rax
add rax, rdx
mov edx, 0x20
mov qword [rsp + 0x180], rax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x164], eax
call fcn.00452460
mov rdx, rbx
mov rcx, rbp
mov r8, rsi
call fcn.00452690
lea rax, [rsp + 0x130]
mov rcx, rbp
mov rdx, rax
mov qword [rsp + 0xf0], rax
call fcn.00452720
cmp r14d, 5
je 0x643e90
test rdi, rdi
je 0x643ea0
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xf0]
mov edx, 0x20
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], 1
mov r9, r12
mov r8, rdi
mov qword [rsp + 0x30], rax
call fcn.00634620
mov edx, 0xaaaaaaab
mov dword [rsp + 0x124], 0
mov eax, dword [rsp + 0x4c]
vmovups xmm6, xmmword [r15]
vmovups xmm3, xmmword [r15 + 0x10]
mov ebx, dword [rsp + 0x150]
add eax, 2
imul rax, rdx
mov dword [rsp + 0xa0], ebx
shr rax, 0x21
lea edx, [rax + 1]
vmovups xmmword [rsp + 0x130], xmm6
vmovups xmmword [rsp + 0x140], xmm3
and edx, 0xfffffffe
mov dword [rsp + 0x120], edx
cmp ebx, 5
jne 0x641f50
and eax, 0xfffffffe
mov ecx, edx
sub ecx, eax
mov dword [rsp + 0x120], eax
mov dword [rsp + 0x124], ecx
mov rax, qword [rsp + 0x168]
mov ecx, dword [r15 + 0x3c]
mov edx, dword [r15 + 0x34]
mov qword [rsp + 0xa8], rax
mov eax, dword [r15]
mov dword [r13 + 0xc], ecx
mov dword [r13 + 0x24], edx
mov dword [r13], eax
mov r12d, eax
mov eax, dword [r15 + 0x14]
mov dword [rsp + 0x80], eax
mov dword [r13 + 4], eax
mov eax, dword [r15 + 0x28]
mov dword [rsp + 0x98], eax
mov dword [r13 + 8], eax
mov eax, dword [r15 + 0x10]
mov dword [rsp + 0xa4], eax
mov dword [r13 + 0x10], eax
mov eax, dword [r15 + 0x24]
mov dword [rsp + 0xb0], eax
mov dword [r13 + 0x14], eax
mov eax, dword [r15 + 0x38]
mov dword [rsp + 0x70], eax
mov dword [r13 + 0x18], eax
mov eax, dword [r15 + 0xc]
mov dword [rsp + 0x60], eax
mov dword [r13 + 0x1c], eax
mov eax, dword [r15 + 0x20]
mov dword [rsp + 0x114], eax
mov dword [r13 + 0x20], eax
mov eax, dword [r15 + 8]
mov dword [rsp + 0x50], eax
mov dword [r13 + 0x28], eax
mov eax, dword [r15 + 0x1c]
mov ebx, dword [r15 + 0x78]
mov edi, dword [r15 + 0x50]
mov ebp, dword [r15 + 0x2c]
mov r11d, dword [r15 + 0x54]
mov r9d, dword [r15 + 0x64]
mov dword [rsp + 0x11c], eax
mov dword [r13 + 0x2c], eax
mov eax, dword [r15 + 0x30]
mov dword [rsp + 0xf8], ebx
mov dword [r13 + 0x58], ebx
mov dword [r13 + 0x3c], ebp
mov dword [rsp + 0xe8], edi
mov dword [r13 + 0x44], r11d
mov dword [r13 + 0x50], edi
mov dword [rsp + 0x110], eax
mov dword [r13 + 0x30], eax
mov dword [r13 + 0x54], r9d
mov eax, dword [r15 + 4]
mov dword [rsp + 0x118], eax
mov dword [r13 + 0x34], eax
mov eax, dword [r15 + 0x18]
mov dword [rsp + 0xb8], eax
mov dword [r13 + 0x38], eax
mov eax, dword [r15 + 0x40]
mov dword [rsp + 0xd0], eax
mov dword [r13 + 0x40], eax
mov eax, dword [r15 + 0x68]
mov dword [rsp + 0xd8], eax
mov dword [r13 + 0x48], eax
mov eax, dword [r15 + 0x7c]
mov dword [r13 + 0x4c], eax
mov edi, dword [r15 + 0x4c]
mov ebx, dword [r15 + 0x60]
mov esi, dword [r15 + 0x70]
mov r10d, dword [r15 + 0x58]
mov r14d, dword [rsp + 0x160]
mov r8d, dword [r15 + 0x74]
mov dword [rsp + 0x100], ebx
mov dword [r13 + 0x60], ebx
mov ebx, dword [r15 + 0x48]
mov dword [rsp + 0x108], esi
mov dword [r13 + 0x70], esi
mov dword [rsp + 0x10c], r10d
mov dword [r13 + 0x78], r10d
shr r14d, 7
mov dword [r13 + 0x5c], edi
mov dword [r13 + 0x64], r8d
mov dword [rsp + 0x104], ebx
mov dword [r13 + 0x68], ebx
mov dword [rsp + 0xb4], r14d
mov ebx, dword [r15 + 0x5c]
mov esi, dword [r15 + 0x44]
mov r10d, dword [r15 + 0x6c]
mov dword [r13 + 0x6c], ebx
mov dword [r13 + 0x74], esi
mov dword [r13 + 0x7c], r10d
je 0x643eb0
mov ecx, r14d
mov eax, 1
lea r14, [rsp + 0x150]
mov qword [rsp + 0xe8], r15
dec ecx
mov rdi, qword [rsp + 0xa8]
mov r12, r14
cmove eax, ecx
xor esi, esi
lea ebp, [rax + 1]
mov dword [rsp + 0xb8], eax
lea rax, [r13 + 0x10]
mov qword [rsp + 0x50], rax
lea rax, [r13 + 0x80]
mov dword [rsp + 0xf8], ebp
mov ebp, esi
mov qword [rsp + 0xd0], rax
lea rax, [rsp + 0x190]
mov qword [rsp + 0xd8], rax
jmp 0x642191
mov rdx, r12
mov rcx, r13
call fcn.00641a30
lea eax, [rbp + 1]
sub rdi, 0xffffffffffffff80
cmp ebp, dword [rsp + 0xb8]
je 0x642500
mov ebp, eax
lea rax, [rdi + 0x10]
cmp r13, rax
jae 0x6421a5
cmp qword [rsp + 0x50], rdi
ja 0x6424d0
vmovups xmm6, xmmword [r13]
vmovups xmmword [rdi], xmm6
vmovups xmm4, xmmword [r13 + 0x10]
vmovups xmmword [rdi + 0x10], xmm4
vmovups xmm6, xmmword [r13 + 0x20]
vmovups xmmword [rdi + 0x20], xmm6
vmovups xmm4, xmmword [r13 + 0x30]
vmovups xmmword [rdi + 0x30], xmm4
vmovups xmm6, xmmword [r13 + 0x40]
vmovups xmmword [rdi + 0x40], xmm6
vmovups xmm4, xmmword [r13 + 0x50]
vmovups xmmword [rdi + 0x50], xmm4
vmovups xmm6, xmmword [r13 + 0x60]
vmovups xmmword [rdi + 0x60], xmm6
vmovups xmm5, xmmword [r13 + 0x70]
vmovups xmmword [rdi + 0x70], xmm5
mov rax, qword [rsp + 0xa8]
cmp rax, qword [rsp + 0x168]
jne 0x642170
mov eax, dword [r13 + 0x40]
mov ebx, dword [r13 + 0x78]
mov r14d, dword [rsp + 0x154]
mov r8d, dword [r13 + 0x44]
mov esi, dword [r13 + 0x4c]
mov ecx, dword [r13 + 0x54]
mov r15d, dword [r13 + 0x58]
mov r11d, dword [r13 + 0x5c]
mov dword [rsp + 0x60], eax
mov eax, dword [r13 + 0x48]
mov edx, dword [r13 + 0x64]
mov dword [rsp + 0xb0], ebx
mov rbx, r13
mov r10d, dword [r13 + 0x6c]
mov r9d, dword [r13 + 0x7c]
mov dword [rsp + 0x70], eax
mov eax, dword [r13 + 0x50]
mov dword [rsp + 0x80], eax
mov eax, dword [r13 + 0x60]
mov dword [rsp + 0xa0], eax
mov eax, dword [r13 + 0x68]
mov dword [rsp + 0x98], eax
mov eax, dword [r13 + 0x70]
mov dword [rsp + 0xa4], eax
mov eax, dword [r13 + 0x74]
vmovd xmm6, r15d
vmovd xmm5, dword [rsp + 0x80]
vpinsrd xmm0, xmm6, r11d, 1
vpinsrd xmm2, xmm5, ecx, 1
vmovd xmm4, dword [rsp + 0x98]
vmovd xmm3, dword [rsp + 0xa0]
vpunpcklqdq xmm2, xmm2, xmm0
vpinsrd xmm1, xmm3, edx, 1
vpinsrd xmm0, xmm4, r10d, 1
vmovd xmm7, dword [rsp + 0xb0]
vmovd xmm6, dword [rsp + 0xa4]
vpinsrd xmm3, xmm7, r9d, 1
vpunpcklqdq xmm1, xmm1, xmm0
vpinsrd xmm0, xmm6, eax, 1
vmovd xmm5, dword [rsp + 0x70]
vpinsrd xmm4, xmm5, esi, 1
vpunpcklqdq xmm0, xmm0, xmm3
vmovd xmm3, dword [rsp + 0x60]
vpinsrd xmm3, xmm3, r8d, 1
vxorps xmm1, xmm1, xmmword [rbx + 0x20]
vxorps xmm2, xmm2, xmmword [rbx + 0x10]
vxorps xmm0, xmm0, xmmword [rbx + 0x30]
vpunpcklqdq xmm3, xmm3, xmm4
mov edx, r14d
vxorps xmm3, xmm3, xmmword [rbx]
mov rcx, qword [rsp + 0xd8]
add rbx, 0x40
vmovups xmmword [rsp + 0x1b0], xmm1
vmovups xmmword [rsp + 0x1a0], xmm2
vmovups xmmword [rsp + 0x1c0], xmm0
vmovups xmmword [rsp + 0x190], xmm3
call fcn.0063feb0
mov eax, dword [rsp + 0x190]
vmovups xmm1, xmmword [rsp + 0x190]
vmovups xmm4, xmmword [rsp + 0x1a0]
vmovups xmm7, xmmword [rsp + 0x1b0]
mov r9d, dword [rsp + 0x1c8]
mov r8d, dword [rsp + 0x194]
mov esi, dword [rsp + 0x19c]
mov ecx, dword [rsp + 0x1a4]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x198]
mov r15d, dword [rsp + 0x1a8]
mov r11d, dword [rsp + 0x1ac]
mov dword [rsp + 0xb0], r9d
mov edx, dword [rsp + 0x1b4]
mov r10d, dword [rsp + 0x1bc]
mov r9d, dword [rsp + 0x1cc]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x1a0]
vmovups xmmword [rbx - 0x40], xmm1
vmovups xmm1, xmmword [rsp + 0x1c0]
vmovups xmmword [rbx - 0x30], xmm4
vmovups xmmword [rbx - 0x20], xmm7
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x1b0]
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0x1b8]
vmovups xmmword [rbx - 0x10], xmm1
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x1c0]
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0x1c4]
cmp rbx, qword [rsp + 0xd0]
jne 0x642288
jmp 0x64217b
call qword [sym.imp.msvcrt.dll__errno]
mov r12d, 0xffffffff
mov dword [rax], 0x16
vmovups xmm6, xmmword [rsp + 0x2e0]
mov eax, r12d
vmovups xmm7, xmmword [rsp + 0x2f0]
vmovups xmm8, xmmword [rsp + 0x300]
vmovups xmm9, xmmword [rsp + 0x310]
vmovups xmm10, xmmword [rsp + 0x320]
vmovups xmm11, xmmword [rsp + 0x330]
vmovups xmm12, xmmword [rsp + 0x340]
vmovups xmm13, xmmword [rsp + 0x350]
vmovups xmm14, xmmword [rsp + 0x360]
vmovups xmm15, xmmword [rsp + 0x370]
add rsp, 0x388
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax]
mov edx, dword [r13 + rax]
mov dword [rdi + rax], edx
add rax, 4
cmp rax, 0x80
jne 0x6424e0
jmp 0x6421fc
mov eax, dword [rsp + 0xf8]
mov rcx, qword [rsp + 0xa8]
mov r14, r12
mov r15, qword [rsp + 0xe8]
mov rbp, rax
shl rax, 7
lea rsi, [rcx + rax]
lea rax, [r13 + 0x80]
mov qword [rsp + 0xb8], rax
lea rax, [rsp + 0x190]
mov qword [rsp + 0xd0], rax
cmp dword [rsp + 0xb4], ebp
jbe 0x6426dc
mov r12d, ebp
mov rbp, qword [rsp + 0xa8]
mov qword [rsp + 0xd8], r15
nop word cs:[rax + rax]
nop
lea rax, [rsi + 0x10]
cmp r13, rax
jae 0x642584
cmp qword [rsp + 0x50], rsi
ja 0x643e00
vmovups xmm4, xmmword [r13]
vmovups xmmword [rsi], xmm4
vmovups xmm6, xmmword [r13 + 0x10]
vmovups xmmword [rsi + 0x10], xmm6
vmovups xmm5, xmmword [r13 + 0x20]
vmovups xmmword [rsi + 0x20], xmm5
vmovups xmm4, xmmword [r13 + 0x30]
vmovups xmmword [rsi + 0x30], xmm4
vmovups xmm3, xmmword [r13 + 0x40]
vmovups xmmword [rsi + 0x40], xmm3
vmovups xmm6, xmmword [r13 + 0x50]
vmovups xmmword [rsi + 0x50], xmm6
vmovups xmm5, xmmword [r13 + 0x60]
vmovups xmmword [rsi + 0x60], xmm5
vmovups xmm4, xmmword [r13 + 0x70]
vmovups xmmword [rsi + 0x70], xmm4
mov r8d, dword [r13 + 0x40]
mov eax, r12d
nop word cs:[rax + rax]
nop dword [rax]
lea edx, [rax - 1]
mov ecx, eax
and eax, edx
jne 0x6425f0
and edx, r8d
sub edx, ecx
lea eax, [rdx + r12]
shl rax, 7
lea rdx, [rbp + rax]
lea rax, [rbp + rax + 0x10]
cmp r13, rax
jae 0x642620
cmp qword [rsp + 0x50], rdx
ja 0x643e30
vmovups xmm6, xmmword [rdx]
vxorps xmm0, xmm6, xmmword [r13]
vmovups xmmword [r13], xmm0
vmovups xmm5, xmmword [rax]
vxorps xmm0, xmm5, xmmword [r13 + 0x10]
vmovups xmmword [r13 + 0x10], xmm0
vmovups xmm4, xmmword [rax + 0x10]
vxorps xmm0, xmm4, xmmword [r13 + 0x20]
vmovups xmmword [r13 + 0x20], xmm0
vmovups xmm6, xmmword [rax + 0x20]
vxorps xmm0, xmm6, xmmword [r13 + 0x30]
vmovups xmmword [r13 + 0x30], xmm0
vmovups xmm3, xmmword [rax + 0x30]
vxorps xmm0, xmm3, xmmword [r13 + 0x40]
vmovups xmmword [r13 + 0x40], xmm0
vmovups xmm7, xmmword [rax + 0x40]
vxorps xmm0, xmm7, xmmword [r13 + 0x50]
vmovups xmmword [r13 + 0x50], xmm0
vmovups xmm1, xmmword [rax + 0x50]
vxorps xmm0, xmm1, xmmword [r13 + 0x60]
vmovups xmmword [r13 + 0x60], xmm0
vmovups xmm5, xmmword [rax + 0x60]
vxorps xmm0, xmm5, xmmword [r13 + 0x70]
vmovups xmmword [r13 + 0x70], xmm0
cmp rbp, qword [rsp + 0x168]
je 0x643bc0
mov rdx, r14
mov rcx, r13
call fcn.00641a30
inc r12d
sub rsi, 0xffffffffffffff80
cmp dword [rsp + 0xb4], r12d
jne 0x642570
mov r15, qword [rsp + 0xd8]
mov eax, dword [r13]
mov ecx, dword [r13 + 0xc]
mov edx, dword [r13 + 0x24]
mov ebp, dword [r13 + 0x3c]
mov r12d, eax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0xa0], eax
mov eax, dword [r13 + 4]
mov dword [rsp + 0x80], eax
mov eax, dword [r13 + 8]
mov dword [rsp + 0x98], eax
mov eax, dword [r13 + 0x10]
mov dword [rsp + 0xa4], eax
mov eax, dword [r13 + 0x14]
mov dword [rsp + 0xb0], eax
mov eax, dword [r13 + 0x18]
mov dword [rsp + 0x70], eax
mov eax, dword [r13 + 0x1c]
mov dword [rsp + 0x60], eax
mov eax, dword [r13 + 0x20]
mov dword [rsp + 0x114], eax
mov eax, dword [r13 + 0x28]
mov dword [rsp + 0x50], eax
mov eax, dword [r13 + 0x2c]
mov dword [rsp + 0x11c], eax
mov eax, dword [r13 + 0x30]
mov dword [rsp + 0x110], eax
mov eax, dword [r13 + 0x34]
mov dword [rsp + 0x118], eax
mov eax, dword [r13 + 0x38]
mov dword [rsp + 0xb8], eax
mov eax, dword [r13 + 0x40]
mov dword [rsp + 0xd0], eax
mov r11d, dword [r13 + 0x44]
mov ebx, dword [r13 + 0x58]
mov eax, dword [r13 + 0x48]
mov edi, dword [r13 + 0x50]
mov esi, dword [r13 + 0x70]
mov r10d, dword [r13 + 0x78]
mov r9d, dword [r13 + 0x54]
mov dword [rsp + 0xf8], ebx
mov ebx, dword [r13 + 0x60]
mov r8d, dword [r13 + 0x64]
mov dword [rsp + 0xd8], eax
mov eax, dword [r13 + 0x4c]
mov dword [rsp + 0xe8], edi
mov dword [rsp + 0x108], esi
mov edi, dword [r13 + 0x5c]
mov dword [rsp + 0x10c], r10d
mov dword [rsp + 0x100], ebx
mov ebx, dword [r13 + 0x68]
mov esi, dword [r13 + 0x74]
mov r10d, dword [r13 + 0x7c]
mov dword [rsp + 0x104], ebx
mov ebx, dword [r13 + 0x6c]
vmovd xmm4, r12d
vmovd xmm7, dword [rsp + 0x50]
vpinsrd xmm0, xmm4, dword [rsp + 0x118], 1
vmovd xmm6, dword [rsp + 0xa4]
vpinsrd xmm1, xmm7, dword [rsp + 0x60], 1
vmovd xmm7, dword [rsp + 0x114]
vmovd xmm3, dword [rsp + 0x98]
vmovd xmm5, dword [rsp + 0x70]
vmovd xmm4, dword [rsp + 0x110]
mov r12d, dword [rsp + 0xc8]
vpunpcklqdq xmm0, xmm0, xmm1
vmovd xmm1, dword [rsp + 0xb8]
vpinsrd xmm1, xmm1, dword [rsp + 0x11c], 1
vmovups xmmword [r15], xmm0
vpinsrd xmm0, xmm6, dword [rsp + 0x80], 1
vmovd xmm6, dword [rsp + 0xd0]
vpunpcklqdq xmm0, xmm0, xmm1
vpinsrd xmm1, xmm3, ebp, 1
vmovd xmm3, dword [rsp + 0x10c]
vmovups xmmword [r15 + 0x10], xmm0
vpinsrd xmm0, xmm7, dword [rsp + 0xb0], 1
vmovd xmm7, dword [rsp + 0xe8]
vpunpcklqdq xmm0, xmm0, xmm1
vpinsrd xmm1, xmm5, ecx, 1
mov rcx, qword [rsp + 0xc0]
vmovd xmm5, dword [rsp + 0xd8]
vmovups xmmword [r15 + 0x20], xmm0
vpinsrd xmm0, xmm4, edx, 1
vmovd xmm4, dword [rsp + 0x100]
mov rdx, r15
vpunpcklqdq xmm0, xmm0, xmm1
vmovd xmm1, dword [rsp + 0x104]
vpinsrd xmm1, xmm1, edi, 1
vmovups xmmword [r15 + 0x30], xmm0
vpinsrd xmm0, xmm6, esi, 1
vmovd xmm6, dword [rsp + 0x108]
vpunpcklqdq xmm0, xmm0, xmm1
vpinsrd xmm1, xmm3, ebx, 1
vmovups xmmword [r15 + 0x40], xmm0
vpinsrd xmm0, xmm7, r11d, 1
vpunpcklqdq xmm0, xmm0, xmm1
vpinsrd xmm1, xmm5, r10d, 1
vmovups xmmword [r15 + 0x50], xmm0
vpinsrd xmm0, xmm4, r9d, 1
vpunpcklqdq xmm0, xmm0, xmm1
vmovd xmm1, dword [rsp + 0xf8]
vpinsrd xmm1, xmm1, eax, 1
mov rax, rcx
shl rax, 5
vmovups xmmword [r15 + 0x60], xmm0
vpinsrd xmm0, xmm6, r8d, 1
mov qword [rsp + 0x98], rax
lea rax, [rcx + rcx]
shr rcx, 1
vpunpcklqdq xmm0, xmm0, xmm1
shl rcx, 8
mov qword [rsp + 0xd0], rax
vmovups xmmword [r15 + 0x70], xmm0
mov rax, r13
add rcx, r13
nop word [rax + rax]
vmovups xmm7, xmmword [rdx]
vmovups xmm3, xmmword [rdx + 0x20]
add rax, 0x100
add rdx, 0x100
vmovups xmm6, xmmword [rdx - 0xc0]
vmovups xmm0, xmmword [rdx - 0xa0]
vmovups xmm1, xmmword [rdx - 0x20]
vshufps xmm15, xmm7, xmmword [rdx - 0xf0], 0x88
vshufps xmm12, xmm0, xmmword [rdx - 0x90], 0x88
vshufps xmm14, xmm3, xmmword [rdx - 0xd0], 0x88
vshufps xmm13, xmm6, xmmword [rdx - 0xb0], 0x88
vshufps xmm8, xmm1, xmmword [rdx - 0x10], 0x88
vmovups xmm5, xmmword [rdx - 0x80]
vmovups xmm2, xmmword [rdx - 0x60]
vmovups xmm4, xmmword [rdx - 0x40]
vshufps xmm11, xmm5, xmmword [rdx - 0x70], 0x88
vshufps xmm10, xmm2, xmmword [rdx - 0x50], 0x88
vshufps xmm9, xmm4, xmmword [rdx - 0x30], 0x88
vshufps xmm6, xmm6, xmmword [rdx - 0xb0], 0xdd
vshufps xmm0, xmm0, xmmword [rdx - 0x90], 0xdd
vshufps xmm7, xmm7, xmmword [rdx - 0xf0], 0xdd
vshufps xmm2, xmm2, xmmword [rdx - 0x50], 0xdd
vshufps xmm4, xmm4, xmmword [rdx - 0x30], 0xdd
vshufps xmm3, xmm3, xmmword [rdx - 0xd0], 0xdd
vshufps xmm5, xmm5, xmmword [rdx - 0x70], 0xdd
vshufps xmm1, xmm1, xmmword [rdx - 0x10], 0xdd
vmovups xmmword [rsp + 0x50], xmm8
vshufps xmm8, xmm15, xmm14, 0x88
vshufps xmm14, xmm15, xmm14, 0xdd
vshufps xmm15, xmm13, xmm12, 0x88
vshufps xmm13, xmm13, xmm12, 0xdd
vmovups xmm12, xmmword [rsp + 0x50]
vmovups xmmword [rsp + 0x70], xmm15
vshufps xmm15, xmm11, xmm10, 0x88
vmovups xmmword [rsp + 0x60], xmm13
vshufps xmm13, xmm11, xmm10, 0xdd
vshufps xmm10, xmm9, xmm12, 0x88
vshufps xmm11, xmm9, xmm12, 0xdd
vshufps xmm9, xmm6, xmm0, 0x88
vshufps xmm0, xmm6, xmm0, 0xdd
vmovups xmm6, xmmword [rsp + 0x70]
vmovups xmmword [rsp + 0x50], xmm11
vshufps xmm12, xmm7, xmm3, 0x88
vshufps xmm11, xmm5, xmm2, 0x88
vshufps xmm5, xmm5, xmm2, 0xdd
vshufps xmm2, xmm4, xmm1, 0x88
vshufps xmm3, xmm7, xmm3, 0xdd
vshufps xmm1, xmm4, xmm1, 0xdd
vshufps xmm7, xmm8, xmm6, 0x88
vshufps xmm4, xmm8, xmm6, 0xdd
vshufps xmm8, xmm15, xmm10, 0x88
vshufps xmm6, xmm11, xmm2, 0x88
vshufps xmm10, xmm15, xmm10, 0xdd
vshufps xmm15, xmm12, xmm9, 0x88
vmovups xmmword [rsp + 0x70], xmm6
vshufps xmm12, xmm12, xmm9, 0xdd
vshufps xmm9, xmm11, xmm2, 0xdd
vmovups xmmword [rsp + 0x80], xmm9
vmovups xmm2, xmmword [rsp + 0x60]
vshufps xmm6, xmm14, xmm2, 0x88
vshufps xmm14, xmm14, xmm2, 0xdd
vmovups xmm2, xmmword [rsp + 0x50]
vshufps xmm9, xmm13, xmm2, 0x88
vshufps xmm11, xmm13, xmm2, 0xdd
vshufps xmm13, xmm7, xmm8, 0x88
vshufps xmm8, xmm7, xmm8, 0xdd
vmovups xmm7, xmmword [rsp + 0x70]
vshufps xmm2, xmm3, xmm0, 0x88
vshufps xmm3, xmm3, xmm0, 0xdd
vshufps xmm0, xmm5, xmm1, 0x88
vshufps xmm1, xmm5, xmm1, 0xdd
vshufps xmm5, xmm15, xmm7, 0x88
vshufps xmm7, xmm15, xmm7, 0xdd
vmovups xmmword [rsp + 0x60], xmm5
vshufps xmm5, xmm2, xmm0, 0x88
vshufps xmm0, xmm2, xmm0, 0xdd
vmovups xmm2, xmmword [rsp + 0x80]
vshufps xmm15, xmm6, xmm9, 0x88
vshufps xmm9, xmm6, xmm9, 0xdd
vmovups xmmword [rsp + 0x70], xmm0
vmovups xmmword [rsp + 0x50], xmm15
vshufps xmm6, xmm4, xmm10, 0x88
vshufps xmm15, xmm4, xmm10, 0xdd
vshufps xmm0, xmm14, xmm11, 0x88
vshufps xmm11, xmm14, xmm11, 0xdd
vshufps xmm4, xmm12, xmm2, 0x88
vshufps xmm12, xmm12, xmm2, 0xdd
vshufps xmm2, xmm3, xmm1, 0x88
vshufps xmm3, xmm3, xmm1, 0xdd
vpunpckldq xmm1, xmm13, xmm8
vpunpckhdq xmm13, xmm13, xmm8
vpunpckldq xmm8, xmm4, xmm12
vpunpckhdq xmm12, xmm4, xmm12
vmovups xmm4, xmmword [rsp + 0x50]
vpunpckldq xmm10, xmm3, xmm2
vpunpckhdq xmm2, xmm3, xmm2
vmovups xmm3, xmmword [rsp + 0x60]
vmovups xmmword [rsp + 0x80], xmm10
vpunpckldq xmm14, xmm9, xmm4
vpunpckhdq xmm4, xmm9, xmm4
vpunpckldq xmm9, xmm11, xmm0
vpunpckhdq xmm11, xmm11, xmm0
vmovups xmm0, xmmword [rsp + 0x70]
vmovups xmmword [rsp + 0x50], xmm4
vpunpckldq xmm4, xmm6, xmm15
vpunpckldq xmm10, xmm7, xmm3
vpunpckhdq xmm6, xmm6, xmm15
vpunpckhdq xmm7, xmm7, xmm3
vpunpckhdq xmm15, xmm8, xmm10
vpunpckldq xmm3, xmm5, xmm0
vpunpckhdq xmm5, xmm5, xmm0
vpunpckldq xmm0, xmm1, xmm4
vpunpckhdq xmm1, xmm1, xmm4
vmovups xmmword [rsp + 0x60], xmm0
vpunpckldq xmm4, xmm13, xmm6
vpunpckhdq xmm0, xmm13, xmm6
vpunpckldq xmm13, xmm8, xmm10
vpunpckldq xmm6, xmm12, xmm7
vpunpckldq xmm10, xmm14, xmm9
vpunpckhdq xmm12, xmm12, xmm7
vpunpckhdq xmm9, xmm14, xmm9
vmovups xmm7, xmmword [rsp + 0x50]
vmovups xmm14, xmmword [rsp + 0x80]
vpunpckldq xmm8, xmm7, xmm11
vpunpckhdq xmm11, xmm7, xmm11
vpunpckldq xmm7, xmm14, xmm3
vpunpckhdq xmm3, xmm14, xmm3
vmovups xmm14, xmm5
vpunpckldq xmm5, xmm2, xmm5
vmovups xmmword [rsp + 0x50], xmm5
vmovups xmm5, xmmword [rsp + 0x60]
vpunpckhdq xmm2, xmm2, xmm14
vpunpckldq xmm14, xmm5, xmm10
vpunpckhdq xmm5, xmm5, xmm10
vpunpckldq xmm10, xmm1, xmm9
vpunpckhdq xmm1, xmm1, xmm9
vmovups xmmword [rsp + 0x60], xmm14
vpunpckldq xmm14, xmm13, xmm7
vpunpckhdq xmm7, xmm13, xmm7
vpunpckldq xmm13, xmm15, xmm3
vpunpckhdq xmm3, xmm15, xmm3
vmovups xmm15, xmmword [rsp + 0x50]
vpunpckldq xmm9, xmm4, xmm8
vpunpckhdq xmm4, xmm4, xmm8
vpunpckldq xmm8, xmm0, xmm11
vpunpckhdq xmm0, xmm0, xmm11
vpunpckldq xmm11, xmm6, xmm15
vpunpckhdq xmm6, xmm6, xmm15
vmovups xmmword [rsp + 0x50], xmm11
vpunpckldq xmm11, xmm12, xmm2
vpunpckhdq xmm2, xmm12, xmm2
vmovups xmm12, xmmword [rsp + 0x60]
vpunpckldq xmm15, xmm12, xmm14
vpunpckhdq xmm14, xmm12, xmm14
vmovups xmmword [rax - 0xf0], xmm14
vpunpckldq xmm14, xmm5, xmm7
vpunpckhdq xmm5, xmm5, xmm7
vmovups xmmword [rax - 0x100], xmm15
vmovups xmmword [rax - 0xd0], xmm5
vpunpckldq xmm5, xmm10, xmm13
vpunpckhdq xmm10, xmm10, xmm13
vmovups xmmword [rax - 0xe0], xmm14
vmovups xmmword [rax - 0xc0], xmm5
vpunpckldq xmm5, xmm1, xmm3
vpunpckhdq xmm1, xmm1, xmm3
vmovups xmmword [rax - 0xb0], xmm10
vmovups xmmword [rax - 0xa0], xmm5
vmovups xmmword [rax - 0x90], xmm1
vmovups xmm5, xmmword [rsp + 0x50]
vpunpckldq xmm1, xmm9, xmm5
vpunpckhdq xmm9, xmm9, xmm5
vmovups xmmword [rax - 0x80], xmm1
vpunpckldq xmm1, xmm4, xmm6
vmovups xmmword [rax - 0x70], xmm9
vpunpckhdq xmm4, xmm4, xmm6
vmovups xmmword [rax - 0x60], xmm1
vpunpckldq xmm1, xmm8, xmm11
vpunpckhdq xmm8, xmm8, xmm11
vmovups xmmword [rax - 0x50], xmm4
vmovups xmmword [rax - 0x40], xmm1
vpunpckldq xmm1, xmm0, xmm2
vpunpckhdq xmm0, xmm0, xmm2
vmovups xmmword [rax - 0x30], xmm8
vmovups xmmword [rax - 0x20], xmm1
vmovups xmmword [rax - 0x10], xmm0
cmp rcx, rax
jne 0x642980
mov dword [rsp + 0xc8], r12d
mov rax, qword [rsp + 0xd0]
mov rdx, rax
and rdx, 0xfffffffffffffffc
cmp rdx, rax
je 0x643024
mov rcx, rdx
shl rcx, 6
mov rax, rcx
mov ecx, dword [r15 + rcx]
mov dword [r13 + rax], ecx
mov rcx, rdx
shl rcx, 4
lea rax, [rcx*4 + 0x14]
mov ebx, dword [r15 + rax + 0x24]
mov ecx, dword [r15 + rax]
lea r11, [rax - 0x10]
lea rsi, [rax + 0x18]
mov r8d, dword [r15 + rax + 0x28]
mov r12d, dword [r15 + rax + 0xc]
mov r9d, dword [r15 + rax - 4]
mov r10d, dword [r15 + rax - 8]
mov edi, dword [r15 + rax - 0xc]
mov dword [r13 + rax + 4], ebx
mov ebx, dword [r15 + rax + 8]
mov dword [r13 + rax - 0x10], ecx
mov ecx, dword [r15 + rax + 0x14]
mov dword [r13 + rax - 8], r8d
mov dword [r13 + rax + 0xc], r12d
mov dword [r13 + rax - 4], r9d
mov dword [r13 + rax + 8], r10d
lea r9, [rax + 4]
lea r10, [rax + 0x20]
mov dword [r13 + rax + 0x14], edi
mov dword [r13 + rax + 0x18], ebx
mov r8d, dword [r15 + rax + 0x10]
mov dword [r13 + rax - 0xc], ecx
lea rcx, [rax + 0x28]
mov r12d, dword [r15 + rax + 0x20]
mov ebx, dword [r15 + rax + 0x1c]
mov dword [r13 + rax], r8d
lea r8, [rax + 0x24]
mov dword [r13 + rax + 0x10], r12d
mov dword [r13 + rax + 0x1c], ebx
mov eax, dword [r15 + r11]
mov dword [r13 + r10], eax
mov eax, dword [r15 + r9]
mov dword [r13 + r8], eax
mov eax, dword [r15 + rsi]
mov dword [r13 + rcx], eax
lea rax, [rdx + 1]
cmp rax, qword [rsp + 0xd0]
jae 0x643024
mov rcx, rax
shl rax, 4
add rdx, 2
lea rax, [rax*4 + 0x14]
shl rcx, 6
mov r8d, dword [r15 + rcx]
mov ebx, dword [r15 + rax + 0x24]
lea r11, [rax - 0x10]
lea rsi, [rax + 0x18]
mov r12d, dword [r15 + rax + 0xc]
mov r9d, dword [r15 + rax - 4]
mov r10d, dword [r15 + rax - 8]
mov edi, dword [r15 + rax - 0xc]
mov dword [r13 + rcx], r8d
mov dword [r13 + rax + 4], ebx
mov ecx, dword [r15 + rax]
mov r8d, dword [r15 + rax + 0x28]
mov dword [r13 + rax + 0xc], r12d
mov dword [r13 + rax - 4], r9d
lea r9, [rax + 4]
mov dword [r13 + rax + 8], r10d
mov dword [r13 + rax + 0x14], edi
lea r10, [rax + 0x20]
mov ebx, dword [r15 + rax + 8]
mov dword [r13 + rax - 0x10], ecx
mov dword [r13 + rax - 8], r8d
mov ecx, dword [r15 + rax + 0x14]
mov r8d, dword [r15 + rax + 0x10]
mov r12d, dword [r15 + rax + 0x20]
mov dword [r13 + rax + 0x18], ebx
mov ebx, dword [r15 + rax + 0x1c]
mov dword [r13 + rax - 0xc], ecx
lea rcx, [rax + 0x28]
mov dword [r13 + rax], r8d
mov dword [r13 + rax + 0x10], r12d
lea r8, [rax + 0x24]
mov dword [r13 + rax + 0x1c], ebx
mov eax, dword [r15 + r11]
mov dword [r13 + r10], eax
mov eax, dword [r15 + r9]
mov dword [r13 + r8], eax
mov eax, dword [r15 + rsi]
mov dword [r13 + rcx], eax
cmp rdx, qword [rsp + 0xd0]
jae 0x643024
mov rax, rdx
shl rdx, 4
shl rax, 6
mov ecx, dword [r15 + rax]
mov dword [r13 + rax], ecx
lea rax, [rdx*4 + 0x14]
mov r11d, dword [r15 + rax + 0x24]
lea r10, [rax - 0x10]
lea rbx, [rax + 0x18]
mov edx, dword [r15 + rax]
mov ecx, dword [r15 + rax + 0x28]
mov ebp, dword [r15 + rax + 0xc]
mov r8d, dword [r15 + rax - 4]
mov r9d, dword [r15 + rax - 8]
mov esi, dword [r15 + rax - 0xc]
mov dword [r13 + rax + 4], r11d
mov r11d, dword [r15 + rax + 8]
mov dword [r13 + rax - 0x10], edx
mov dword [r13 + rax - 8], ecx
mov edx, dword [r15 + rax + 0x14]
mov dword [r13 + rax + 0xc], ebp
mov dword [r13 + rax - 4], r8d
lea r8, [rax + 4]
mov dword [r13 + rax + 8], r9d
mov dword [r13 + rax + 0x14], esi
lea r9, [rax + 0x20]
mov dword [r13 + rax + 0x18], r11d
mov ecx, dword [r15 + rax + 0x10]
mov dword [r13 + rax - 0xc], edx
lea rdx, [rax + 0x28]
mov ebp, dword [r15 + rax + 0x20]
mov r11d, dword [r15 + rax + 0x1c]
mov dword [r13 + rax], ecx
lea rcx, [rax + 0x24]
mov dword [r13 + rax + 0x10], ebp
mov dword [r13 + rax + 0x1c], r11d
mov eax, dword [r15 + r10]
mov dword [r13 + r9], eax
mov eax, dword [r15 + r8]
mov dword [r13 + rcx], eax
mov eax, dword [r15 + rbx]
mov dword [r13 + rdx], eax
cmp dword [rsp + 0xa0], 5
lea rsi, [r13 + 0x80]
mov rax, qword [rsp + 0xe0]
mov r12d, dword [rsp + 0xc8]
lea rbx, [r13 + rax]
je 0x6430c8
nop word [rax + rax]
vmovups xmm3, xmmword [rsi - 0x80]
vmovups xmm7, xmmword [rsi - 0x70]
mov rcx, rsi
mov rdx, r14
vmovups xmm6, xmmword [rsi - 0x60]
vmovups xmm5, xmmword [rsi - 0x50]
sub rsi, 0xffffffffffffff80
vmovups xmm4, xmmword [rsi - 0xc0]
vmovups xmm1, xmmword [rsi - 0x90]
vmovups xmmword [rsi - 0x80], xmm3
vmovups xmmword [rsi - 0x70], xmm7
vmovups xmm3, xmmword [rsi - 0xb0]
vmovups xmm7, xmmword [rsi - 0xa0]
vmovups xmmword [rsi - 0x60], xmm6
vmovups xmmword [rsi - 0x50], xmm5
vmovups xmmword [rsi - 0x40], xmm4
vmovups xmmword [rsi - 0x10], xmm1
vmovups xmmword [rsi - 0x30], xmm3
vmovups xmmword [rsi - 0x20], xmm7
call fcn.00641a30
cmp rsi, rbx
jne 0x643050
mov dword [rsp + 0xc8], r12d
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xf8], r15
mov rcx, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0x90]
mov r12d, dword [rsp + 0xc8]
mov qword [rsp + 0xc8], r14
shl rax, 2
mov qword [rsp + 0xa8], rax
lea eax, [rcx - 1]
mov edi, ecx
mov r14, rcx
shr eax, 3
mov qword [rsp + 0xb8], rdi
add rdi, r13
mov dword [rsp + 0xb4], eax
lea rax, [r13 + 0x80]
mov r15, rdi
mov qword [rsp + 0xd8], rax
nop word cs:[rax + rax]
nop
mov rdi, qword [rsp + 0xb8]
mov rsi, r13
mov rax, qword [r15 - 8]
mov qword [rbp + rdi - 8], rax
mov rdi, rbp
mov ecx, dword [rsp + 0xb4]
rep movsq qword [rdi], qword [rsi]
cmp r12d, 1
jbe 0x6431b1
mov ecx, dword [r13 + r14 - 0x40]
mov eax, r12d
nop
lea edx, [rax - 1]
mov r8d, eax
and eax, edx
jne 0x643170
and edx, ecx
xor eax, eax
sub edx, r8d
add edx, r12d
imul rdx, r14
add rdx, qword [rsp + 0x90]
vmovups xmm6, xmmword [rdx + rax]
vxorps xmm0, xmm6, xmmword [r13 + rax]
vmovups xmmword [r13 + rax], xmm0
add rax, 0x10
cmp qword [rsp + 0xa8], rax
jne 0x643190
mov rax, qword [rsp + 0x90]
cmp rax, qword [rsp + 0x168]
je 0x643960
mov r8, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xc8]
mov rcx, r13
call fcn.006405f0
inc r12d
add rbp, r14
cmp dword [rsp + 0x4c], r12d
jne 0x643140
mov rcx, qword [rsp + 0xd0]
mov r15, qword [rsp + 0xf8]
mov rax, r13
mov r14, qword [rsp + 0xc8]
shr rcx, 2
mov rdx, r15
shl rcx, 8
add rcx, r13
nop dword [rax]
vmovups xmm7, xmmword [rax]
vmovups xmm3, xmmword [rax + 0x20]
add rax, 0x100
add rdx, 0x100
vmovups xmm6, xmmword [rax - 0xc0]
vmovups xmm0, xmmword [rax - 0xa0]
vshufps xmm15, xmm7, xmmword [rax - 0xf0], 0x88
vshufps xmm12, xmm0, xmmword [rax - 0x90], 0x88
vshufps xmm7, xmm7, xmmword [rax - 0xf0], 0xdd
vshufps xmm14, xmm3, xmmword [rax - 0xd0], 0x88
vshufps xmm13, xmm6, xmmword [rax - 0xb0], 0x88
vshufps xmm3, xmm3, xmmword [rax - 0xd0], 0xdd
vshufps xmm0, xmm0, xmmword [rax - 0x90], 0xdd
vmovups xmm5, xmmword [rax - 0x80]
vmovups xmm2, xmmword [rax - 0x60]
vmovups xmm4, xmmword [rax - 0x40]
vmovups xmm1, xmmword [rax - 0x20]
vshufps xmm11, xmm5, xmmword [rax - 0x70], 0x88
vshufps xmm10, xmm2, xmmword [rax - 0x50], 0x88
vshufps xmm9, xmm4, xmmword [rax - 0x30], 0x88
vshufps xmm6, xmm6, xmmword [rax - 0xb0], 0xdd
vshufps xmm8, xmm1, xmmword [rax - 0x10], 0x88
vshufps xmm2, xmm2, xmmword [rax - 0x50], 0xdd
vshufps xmm4, xmm4, xmmword [rax - 0x30], 0xdd
vshufps xmm5, xmm5, xmmword [rax - 0x70], 0xdd
vshufps xmm1, xmm1, xmmword [rax - 0x10], 0xdd
vmovups xmmword [rsp + 0x50], xmm0
vshufps xmm0, xmm15, xmm14, 0x88
vshufps xmm14, xmm15, xmm14, 0xdd
vshufps xmm15, xmm13, xmm12, 0x88
vshufps xmm13, xmm13, xmm12, 0xdd
vshufps xmm12, xmm7, xmm3, 0x88
vshufps xmm3, xmm7, xmm3, 0xdd
vmovups xmm7, xmmword [rsp + 0x50]
vmovups xmmword [rsp + 0x70], xmm15
vmovups xmmword [rsp + 0x80], xmm13
vshufps xmm15, xmm11, xmm10, 0x88
vshufps xmm13, xmm11, xmm10, 0xdd
vshufps xmm10, xmm9, xmm8, 0x88
vshufps xmm8, xmm9, xmm8, 0xdd
vshufps xmm11, xmm5, xmm2, 0x88
vshufps xmm5, xmm5, xmm2, 0xdd
vmovups xmmword [rsp + 0x60], xmm8
vshufps xmm2, xmm4, xmm1, 0x88
vshufps xmm8, xmm15, xmm10, 0x88
vshufps xmm1, xmm4, xmm1, 0xdd
vshufps xmm10, xmm15, xmm10, 0xdd
vshufps xmm9, xmm6, xmm7, 0x88
vshufps xmm7, xmm6, xmm7, 0xdd
vmovups xmm6, xmmword [rsp + 0x70]
vshufps xmm4, xmm12, xmm9, 0xdd
vshufps xmm15, xmm12, xmm9, 0x88
vmovups xmmword [rsp + 0x50], xmm7
vshufps xmm12, xmm11, xmm2, 0x88
vshufps xmm7, xmm0, xmm6, 0x88
vshufps xmm0, xmm0, xmm6, 0xdd
vshufps xmm6, xmm11, xmm2, 0xdd
vmovups xmmword [rsp + 0x70], xmm6
vmovups xmm2, xmmword [rsp + 0x80]
vshufps xmm6, xmm14, xmm2, 0x88
vshufps xmm14, xmm14, xmm2, 0xdd
vmovups xmm2, xmmword [rsp + 0x60]
vshufps xmm9, xmm13, xmm2, 0x88
vshufps xmm11, xmm13, xmm2, 0xdd
vmovups xmm13, xmmword [rsp + 0x50]
vshufps xmm2, xmm3, xmm13, 0x88
vshufps xmm3, xmm3, xmm13, 0xdd
vshufps xmm13, xmm5, xmm1, 0x88
vshufps xmm1, xmm5, xmm1, 0xdd
vmovups xmmword [rsp + 0x50], xmm13
vmovups xmm5, xmmword [rsp + 0x50]
vshufps xmm13, xmm7, xmm8, 0x88
vshufps xmm8, xmm7, xmm8, 0xdd
vshufps xmm7, xmm15, xmm12, 0x88
vshufps xmm15, xmm15, xmm12, 0xdd
vshufps xmm12, xmm6, xmm9, 0x88
vshufps xmm9, xmm6, xmm9, 0xdd
vmovups xmmword [rsp + 0x60], xmm12
vshufps xmm6, xmm2, xmm5, 0x88
vshufps xmm5, xmm2, xmm5, 0xdd
vmovups xmm2, xmmword [rsp + 0x70]
vmovups xmmword [rsp + 0x50], xmm6
vshufps xmm6, xmm0, xmm10, 0x88
vshufps xmm10, xmm0, xmm10, 0xdd
vshufps xmm0, xmm14, xmm11, 0x88
vshufps xmm11, xmm14, xmm11, 0xdd
vshufps xmm14, xmm3, xmm1, 0x88
vshufps xmm3, xmm3, xmm1, 0xdd
vpunpckldq xmm1, xmm13, xmm8
vpunpckhdq xmm13, xmm13, xmm8
vshufps xmm12, xmm4, xmm2, 0x88
vshufps xmm2, xmm4, xmm2, 0xdd
vmovups xmm4, xmmword [rsp + 0x60]
vpunpckldq xmm8, xmm2, xmm12
vpunpckhdq xmm12, xmm2, xmm12
vpunpckldq xmm2, xmm9, xmm4
vpunpckhdq xmm4, xmm9, xmm4
vpunpckldq xmm9, xmm11, xmm0
vpunpckhdq xmm11, xmm11, xmm0
vmovups xmm0, xmmword [rsp + 0x50]
vmovups xmmword [rsp + 0x80], xmm4
vpunpckldq xmm4, xmm6, xmm10
vmovups xmmword [rsp + 0x70], xmm2
vpunpckhdq xmm6, xmm6, xmm10
vpunpckldq xmm2, xmm14, xmm3
vpunpckldq xmm10, xmm7, xmm15
vpunpckhdq xmm14, xmm14, xmm3
vpunpckhdq xmm7, xmm7, xmm15
vpunpckhdq xmm15, xmm8, xmm10
vpunpckldq xmm3, xmm5, xmm0
vpunpckhdq xmm5, xmm5, xmm0
vpunpckldq xmm0, xmm1, xmm4
vpunpckhdq xmm1, xmm1, xmm4
vmovups xmmword [rsp + 0x60], xmm0
vpunpckldq xmm4, xmm13, xmm6
vpunpckhdq xmm0, xmm13, xmm6
vpunpckldq xmm6, xmm12, xmm7
vpunpckhdq xmm12, xmm12, xmm7
vmovups xmm7, xmmword [rsp + 0x70]
vpunpckldq xmm13, xmm8, xmm10
vpunpckldq xmm10, xmm7, xmm9
vpunpckhdq xmm9, xmm7, xmm9
vmovups xmm7, xmmword [rsp + 0x80]
vpunpckldq xmm8, xmm7, xmm11
vpunpckhdq xmm11, xmm7, xmm11
vpunpckldq xmm7, xmm2, xmm3
vpunpckhdq xmm3, xmm2, xmm3
vmovups xmm2, xmm5
vpunpckldq xmm5, xmm14, xmm5
vmovups xmmword [rsp + 0x50], xmm5
vmovups xmm5, xmmword [rsp + 0x60]
vpunpckhdq xmm2, xmm14, xmm2
vpunpckldq xmm14, xmm5, xmm10
vpunpckhdq xmm5, xmm5, xmm10
vpunpckldq xmm10, xmm1, xmm9
vpunpckhdq xmm1, xmm1, xmm9
vpunpckldq xmm9, xmm4, xmm8
vpunpckhdq xmm4, xmm4, xmm8
vpunpckldq xmm8, xmm0, xmm11
vpunpckhdq xmm0, xmm0, xmm11
vmovups xmm11, xmmword [rsp + 0x50]
vmovups xmmword [rsp + 0x60], xmm14
vpunpckldq xmm14, xmm13, xmm7
vpunpckhdq xmm7, xmm13, xmm7
vpunpckldq xmm13, xmm15, xmm3
vpunpckhdq xmm3, xmm15, xmm3
vpunpckldq xmm15, xmm6, xmm11
vpunpckhdq xmm6, xmm6, xmm11
vpunpckldq xmm11, xmm12, xmm2
vpunpckhdq xmm2, xmm12, xmm2
vmovups xmm12, xmmword [rsp + 0x60]
vmovups xmmword [rsp + 0x50], xmm15
vpunpckldq xmm15, xmm12, xmm14
vpunpckhdq xmm14, xmm12, xmm14
vmovups xmmword [rdx - 0xf0], xmm14
vpunpckldq xmm14, xmm5, xmm7
vpunpckhdq xmm5, xmm5, xmm7
vmovups xmmword [rdx - 0x100], xmm15
vmovups xmmword [rdx - 0xd0], xmm5
vpunpckldq xmm5, xmm10, xmm13
vpunpckhdq xmm10, xmm10, xmm13
vmovups xmmword [rdx - 0xe0], xmm14
vmovups xmmword [rdx - 0xc0], xmm5
vpunpckldq xmm5, xmm1, xmm3
vpunpckhdq xmm1, xmm1, xmm3
vmovups xmmword [rdx - 0xb0], xmm10
vmovups xmmword [rdx - 0xa0], xmm5
vmovups xmmword [rdx - 0x90], xmm1
vmovups xmm5, xmmword [rsp + 0x50]
vpunpckldq xmm1, xmm9, xmm5
vpunpckhdq xmm9, xmm9, xmm5
vmovups xmmword [rdx - 0x80], xmm1
vpunpckldq xmm1, xmm4, xmm6
vmovups xmmword [rdx - 0x70], xmm9
vpunpckhdq xmm4, xmm4, xmm6
vmovups xmmword [rdx - 0x60], xmm1
vpunpckldq xmm1, xmm8, xmm11
vpunpckhdq xmm8, xmm8, xmm11
vmovups xmmword [rdx - 0x50], xmm4
vmovups xmmword [rdx - 0x40], xmm1
vpunpckldq xmm1, xmm0, xmm2
vpunpckhdq xmm0, xmm0, xmm2
vmovups xmmword [rdx - 0x30], xmm8
vmovups xmmword [rdx - 0x20], xmm1
vmovups xmmword [rdx - 0x10], xmm0
cmp rcx, rax
jne 0x643220
mov r12, qword [rsp + 0xd0]
mov rdx, r12
and rdx, 0xfffffffffffffffc
cmp rdx, r12
je 0x643893
mov rax, rdx
shl rax, 6
mov ecx, dword [r13 + rax]
mov dword [r15 + rax], ecx
mov rax, rdx
shl rax, 4
lea rax, [rax*4 + 4]
mov esi, dword [r13 + rax + 0x24]
mov ecx, dword [r13 + rax]
lea rbx, [rax + 0x28]
mov r11d, dword [r13 + rax + 0xc]
mov ebp, dword [r13 + rax + 0x18]
mov r8d, dword [r13 + rax + 0x10]
mov r9d, dword [r13 + rax + 8]
mov edi, dword [r13 + rax + 0x20]
mov r10d, dword [r13 + rax + 0x30]
mov dword [r15 + rax + 4], esi
mov esi, dword [r13 + rax + 0x28]
mov dword [r15 + rax + 0x10], ecx
mov ecx, dword [r13 + rax + 4]
mov dword [r15 + rax + 0xc], r11d
mov dword [r15 + rax + 8], ebp
mov dword [r15 + rax + 0x20], r8d
mov dword [r15 + rax + 0x38], r9d
lea r8, [rax + 0x14]
mov dword [r15 + rax + 0x30], edi
mov dword [r15 + rax], r10d
mov dword [r15 + rax + 0x18], esi
mov dword [r15 + rax + 0x24], ecx
lea rcx, [rax + 0x38]
mov r11d, dword [r13 + rax + 0x14]
mov ebp, dword [r13 + rax + 0x1c]
mov esi, dword [r13 + rax + 0x2c]
mov dword [r15 + rax + 0x34], r11d
mov dword [r15 + rax + 0x1c], ebp
mov dword [r15 + rax + 0x2c], esi
mov eax, dword [r13 + rax + 0x34]
mov dword [r15 + r8], eax
mov eax, dword [r13 + rcx]
mov dword [r15 + rbx], eax
lea rax, [rdx + 1]
cmp rax, r12
jae 0x643893
mov rcx, rax
shl rax, 4
add rdx, 2
lea rax, [rax*4 + 4]
shl rcx, 6
mov r8d, dword [r13 + rcx]
mov esi, dword [r13 + rax + 0x24]
lea rbx, [rax + 0x28]
mov r11d, dword [r13 + rax + 0xc]
mov ebp, dword [r13 + rax + 0x18]
mov r9d, dword [r13 + rax + 8]
mov edi, dword [r13 + rax + 0x20]
mov r10d, dword [r13 + rax + 0x30]
mov dword [r15 + rcx], r8d
mov dword [r15 + rax + 4], esi
mov ecx, dword [r13 + rax]
mov esi, dword [r13 + rax + 0x28]
mov dword [r15 + rax + 0xc], r11d
mov dword [r15 + rax + 8], ebp
mov dword [r15 + rax + 0x38], r9d
mov dword [r15 + rax + 0x30], edi
mov dword [r15 + rax], r10d
mov dword [r15 + rax + 0x10], ecx
mov dword [r15 + rax + 0x18], esi
mov ecx, dword [r13 + rax + 4]
mov r8d, dword [r13 + rax + 0x10]
mov r11d, dword [r13 + rax + 0x14]
mov ebp, dword [r13 + rax + 0x1c]
mov esi, dword [r13 + rax + 0x2c]
mov dword [r15 + rax + 0x24], ecx
lea rcx, [rax + 0x38]
mov dword [r15 + rax + 0x20], r8d
mov dword [r15 + rax + 0x34], r11d
lea r8, [rax + 0x14]
mov dword [r15 + rax + 0x1c], ebp
mov dword [r15 + rax + 0x2c], esi
mov eax, dword [r13 + rax + 0x34]
mov dword [r15 + r8], eax
mov eax, dword [r13 + rcx]
mov dword [r15 + rbx], eax
cmp rdx, r12
jae 0x643893
mov rax, rdx
shl rdx, 4
shl rax, 6
mov ecx, dword [r13 + rax]
mov dword [r15 + rax], ecx
lea rax, [rdx*4 + 4]
mov ebx, dword [r13 + rax + 0x24]
lea r11, [rax + 0x28]
mov edx, dword [r13 + rax]
mov r10d, dword [r13 + rax + 0xc]
mov edi, dword [r13 + rax + 0x18]
mov ecx, dword [r13 + rax + 0x10]
mov r8d, dword [r13 + rax + 8]
mov esi, dword [r13 + rax + 0x20]
mov dword [r15 + rax + 4], ebx
mov ebx, dword [r13 + rax + 0x28]
mov r9d, dword [r13 + rax + 0x30]
mov dword [r15 + rax + 0x10], edx
mov dword [r15 + rax + 0xc], r10d
mov edx, dword [r13 + rax + 4]
mov dword [r15 + rax + 8], edi
mov dword [r15 + rax + 0x20], ecx
lea rcx, [rax + 0x14]
mov dword [r15 + rax + 0x38], r8d
mov dword [r15 + rax + 0x30], esi
mov dword [r15 + rax + 0x18], ebx
mov dword [r15 + rax], r9d
mov dword [r15 + rax + 0x24], edx
lea rdx, [rax + 0x38]
mov r10d, dword [r13 + rax + 0x14]
mov edi, dword [r13 + rax + 0x1c]
mov ebx, dword [r13 + rax + 0x2c]
mov dword [r15 + rax + 0x34], r10d
mov dword [r15 + rax + 0x1c], edi
mov dword [r15 + rax + 0x2c], ebx
mov eax, dword [r13 + rax + 0x34]
mov dword [r15 + rcx], eax
mov eax, dword [r13 + rdx]
mov dword [r15 + r11], eax
mov rbx, qword [rsp + 0xc0]
mov rcx, r15
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r13
mov r12d, 1
mov rdi, qword [rsp + 0x90]
mov esi, dword [rsp + 0x4c]
mov r9d, dword [rsp + 0x120]
mov rdx, rbx
mov r8d, esi
mov qword [rsp + 0x20], rdi
call fcn.00640940
mov r8d, esi
mov rdx, rbx
mov rcx, r15
mov r9d, dword [rsp + 0x124]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rdi
call fcn.00640940
mov r9, qword [rsp + 0xf0]
mov rax, rbx
mov r8d, 0x40
mov rcx, qword [rsp + 0x3f0]
shl rax, 9
mov qword [rsp + 0x20], 0x20
lea rdx, [r15 + rax - 0x100]
call fcn.006345a0
mov rcx, qword [rsp + 0x128]
call sub.msvcrt.dll_free
mov rcx, r13
call sub.msvcrt.dll_free
mov rcx, r15
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x90]
call sub.msvcrt.dll_free
jmp 0x642452
mov edi, dword [r13 + 0x40]
mov ebx, dword [r13 + 0x50]
mov qword [rsp + 0xe8], rbp
mov eax, dword [rsp + 0x154]
mov r8d, dword [r13 + 0x44]
mov esi, dword [r13 + 0x4c]
mov ecx, dword [r13 + 0x54]
mov r11d, dword [r13 + 0x5c]
mov dword [rsp + 0x50], edi
mov edi, dword [r13 + 0x48]
mov dword [rsp + 0x70], ebx
mov ebx, dword [r13 + 0x60]
mov dword [rsp + 0xe0], eax
mov edx, dword [r13 + 0x64]
mov r10d, dword [r13 + 0x6c]
mov eax, dword [r13 + 0x74]
mov dword [rsp + 0x60], edi
mov edi, dword [r13 + 0x58]
mov dword [rsp + 0xa0], ebx
mov ebx, dword [r13 + 0x70]
mov r9d, dword [r13 + 0x7c]
mov ebp, dword [rsp + 0xe0]
mov dword [rsp + 0x80], edi
mov edi, dword [r13 + 0x68]
mov dword [rsp + 0xa4], ebx
mov rbx, r13
mov dword [rsp + 0x98], edi
mov edi, dword [r13 + 0x78]
mov dword [rsp + 0xb0], edi
lea rdi, [rsp + 0x190]
vmovd xmm6, dword [rsp + 0x80]
vmovd xmm5, dword [rsp + 0x70]
vpinsrd xmm0, xmm6, r11d, 1
vpinsrd xmm2, xmm5, ecx, 1
vmovd xmm4, dword [rsp + 0x98]
vmovd xmm3, dword [rsp + 0xa0]
vpunpcklqdq xmm2, xmm2, xmm0
vpinsrd xmm1, xmm3, edx, 1
vpinsrd xmm0, xmm4, r10d, 1
vmovd xmm7, dword [rsp + 0xb0]
vmovd xmm6, dword [rsp + 0xa4]
vpinsrd xmm3, xmm7, r9d, 1
vpunpcklqdq xmm1, xmm1, xmm0
vpinsrd xmm0, xmm6, eax, 1
vmovd xmm5, dword [rsp + 0x60]
vpinsrd xmm4, xmm5, esi, 1
vpunpcklqdq xmm0, xmm0, xmm3
vmovd xmm3, dword [rsp + 0x50]
vpinsrd xmm3, xmm3, r8d, 1
vxorps xmm1, xmm1, xmmword [rbx + 0x20]
vxorps xmm2, xmm2, xmmword [rbx + 0x10]
vxorps xmm0, xmm0, xmmword [rbx + 0x30]
vpunpcklqdq xmm3, xmm3, xmm4
mov edx, ebp
vxorps xmm3, xmm3, xmmword [rbx]
mov rcx, rdi
add rbx, 0x40
vmovups xmmword [rsp + 0x1b0], xmm1
vmovups xmmword [rsp + 0x1a0], xmm2
vmovups xmmword [rsp + 0x1c0], xmm0
vmovups xmmword [rsp + 0x190], xmm3
call fcn.0063feb0
mov eax, dword [rsp + 0x190]
vmovups xmm1, xmmword [rsp + 0x190]
vmovups xmm4, xmmword [rsp + 0x1a0]
vmovups xmm7, xmmword [rsp + 0x1b0]
mov r9d, dword [rsp + 0x1c8]
mov r8d, dword [rsp + 0x194]
mov esi, dword [rsp + 0x19c]
mov ecx, dword [rsp + 0x1a4]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x198]
mov r11d, dword [rsp + 0x1ac]
mov edx, dword [rsp + 0x1b4]
mov dword [rsp + 0xb0], r9d
mov r10d, dword [rsp + 0x1bc]
mov r9d, dword [rsp + 0x1cc]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x1a0]
vmovups xmmword [rbx - 0x40], xmm1
vmovups xmm1, xmmword [rsp + 0x1c0]
vmovups xmmword [rbx - 0x30], xmm4
vmovups xmmword [rbx - 0x20], xmm7
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x1a8]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x1b0]
vmovups xmmword [rbx - 0x10], xmm1
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0x1b8]
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x1c0]
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0x1c4]
cmp rbx, qword [rsp + 0xd8]
jne 0x6439f7
mov rbp, qword [rsp + 0xe8]
jmp 0x6431df
mov eax, dword [r13 + 0x40]
mov ebx, dword [r13 + 0x78]
mov r15d, dword [rsp + 0x154]
mov r8d, dword [r13 + 0x44]
mov edi, dword [r13 + 0x4c]
mov ecx, dword [r13 + 0x54]
mov r11d, dword [r13 + 0x5c]
mov edx, dword [r13 + 0x64]
mov dword [rsp + 0xa8], eax
mov eax, dword [r13 + 0x48]
mov r10d, dword [r13 + 0x6c]
mov dword [rsp + 0x60], ebx
mov rbx, r13
mov r9d, dword [r13 + 0x7c]
mov dword [rsp + 0xb0], eax
mov eax, dword [r13 + 0x50]
mov dword [rsp + 0xa4], eax
mov eax, dword [r13 + 0x58]
mov dword [rsp + 0x98], eax
mov eax, dword [r13 + 0x60]
mov dword [rsp + 0xa0], eax
mov eax, dword [r13 + 0x68]
mov dword [rsp + 0x80], eax
mov eax, dword [r13 + 0x70]
mov dword [rsp + 0x70], eax
mov eax, dword [r13 + 0x74]
vmovd xmm6, dword [rsp + 0x98]
vmovd xmm5, dword [rsp + 0xa4]
vpinsrd xmm0, xmm6, r11d, 1
vpinsrd xmm2, xmm5, ecx, 1
vmovd xmm4, dword [rsp + 0x80]
vmovd xmm3, dword [rsp + 0xa0]
vpunpcklqdq xmm2, xmm2, xmm0
vpinsrd xmm1, xmm3, edx, 1
vpinsrd xmm0, xmm4, r10d, 1
vmovd xmm7, dword [rsp + 0x60]
vmovd xmm6, dword [rsp + 0x70]
vpinsrd xmm3, xmm7, r9d, 1
vpunpcklqdq xmm1, xmm1, xmm0
vpinsrd xmm0, xmm6, eax, 1
vmovd xmm5, dword [rsp + 0xb0]
vpinsrd xmm4, xmm5, edi, 1
vpunpcklqdq xmm0, xmm0, xmm3
vmovd xmm3, dword [rsp + 0xa8]
vpinsrd xmm3, xmm3, r8d, 1
vxorps xmm1, xmm1, xmmword [rbx + 0x20]
vxorps xmm2, xmm2, xmmword [rbx + 0x10]
vxorps xmm0, xmm0, xmmword [rbx + 0x30]
vpunpcklqdq xmm3, xmm3, xmm4
mov edx, r15d
vxorps xmm3, xmm3, xmmword [rbx]
mov rcx, qword [rsp + 0xd0]
add rbx, 0x40
vmovups xmmword [rsp + 0x1b0], xmm1
vmovups xmmword [rsp + 0x1a0], xmm2
vmovups xmmword [rsp + 0x1c0], xmm0
vmovups xmmword [rsp + 0x190], xmm3
call fcn.0063feb0
mov eax, dword [rsp + 0x190]
vmovups xmm1, xmmword [rsp + 0x190]
vmovups xmm4, xmmword [rsp + 0x1a0]
vmovups xmm7, xmmword [rsp + 0x1b0]
mov r9d, dword [rsp + 0x1c8]
mov r8d, dword [rsp + 0x194]
mov edi, dword [rsp + 0x19c]
mov ecx, dword [rsp + 0x1a4]
mov dword [rsp + 0xa8], eax
mov eax, dword [rsp + 0x198]
mov r11d, dword [rsp + 0x1ac]
mov edx, dword [rsp + 0x1b4]
mov dword [rsp + 0x60], r9d
mov r10d, dword [rsp + 0x1bc]
mov r9d, dword [rsp + 0x1cc]
mov dword [rsp + 0xb0], eax
mov eax, dword [rsp + 0x1a0]
vmovups xmmword [rbx - 0x40], xmm1
vmovups xmm1, xmmword [rsp + 0x1c0]
vmovups xmmword [rbx - 0x30], xmm4
vmovups xmmword [rbx - 0x20], xmm7
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0x1a8]
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x1b0]
vmovups xmmword [rbx - 0x10], xmm1
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0x1b8]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x1c0]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x1c4]
cmp rbx, qword [rsp + 0xb8]
jne 0x643c3d
jmp 0x6426bf
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax]
mov edx, dword [r13 + rax]
mov dword [rsi + rax], edx
add rax, 4
cmp rax, 0x80
jne 0x643e10
jmp 0x6425db
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax]
mov ecx, dword [rdx + rax]
xor dword [r13 + rax], ecx
add rax, 4
cmp rax, 0x80
jne 0x643e40
jmp 0x6426a6
vmovups xmm0, xmmword [0x0070ec40]
mov dword [rsp + 0x60], 0xff0
mov edx, 0x1000
mov ecx, 0x2000
vmovups xmmword [rsp + 0x154], xmm0
jmp 0x641dfe
mov r12, rsi
mov rdi, rbx
jmp 0x641eac
mov rdi, rbx
xor r12d, r12d
jmp 0x641eac
lea r14, [rsp + 0x150]
jmp 0x6427f1
or r12d, 0xffffffff
jmp 0x643937
or r12d, 0xffffffff
jmp 0x64393f
or r12d, 0xffffffff
jmp 0x643947
or r12d, 0xffffffff
jmp 0x642452