Function at 0x647250
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1c8
vmovups xmmword [rsp + 0x120], xmm6
vmovups xmmword [rsp + 0x130], xmm7
vmovups xmmword [rsp + 0x140], xmm8
vmovups xmmword [rsp + 0x150], xmm9
vmovups xmmword [rsp + 0x160], xmm10
vmovups xmmword [rsp + 0x170], xmm11
vmovups xmmword [rsp + 0x180], xmm12
vmovups xmmword [rsp + 0x190], xmm13
vmovups xmmword [rsp + 0x1a0], xmm14
vmovups xmmword [rsp + 0x1b0], xmm15
mov r14, qword [rsp + 0x238]
mov r12, qword [rsp + 0x230]
mov eax, r8d
mov r15, rdx
mov edx, 0xaaaaaaab
mov r13, rcx
add eax, 2
mov dword [rsp + 0x220], r8d
mov qword [rsp + 0x228], r9
imul rax, rdx
mov dword [rsp + 0xb4], 0
shr rax, 0x21
lea edx, [rax + 1]
and edx, 0xfffffffe
cmp dword [r14], 5
mov dword [rsp + 0xb0], edx
jne 0x647329
and eax, 0xfffffffe
mov edi, edx
sub edi, eax
mov dword [rsp + 0xb0], eax
mov dword [rsp + 0xb4], edi
mov eax, dword [r13]
mov rbp, qword [r14 + 0x18]
mov edx, dword [r14 + 0x10]
mov dword [r12], eax
mov ecx, dword [r13 + 0x14]
mov qword [rsp + 0x48], rbp
mov ebx, edx
shr ebx, 7
mov dword [r12 + 4], ecx
mov ecx, dword [r13 + 0x28]
mov dword [r12 + 8], ecx
mov ecx, dword [r13 + 0x3c]
mov dword [r12 + 0xc], ecx
mov ecx, dword [r13 + 0x10]
mov dword [r12 + 0x10], ecx
mov ecx, dword [r13 + 0x24]
mov dword [r12 + 0x14], ecx
mov ecx, dword [r13 + 0x38]
mov dword [r12 + 0x18], ecx
mov ecx, dword [r13 + 0xc]
mov dword [r12 + 0x1c], ecx
mov ecx, dword [r13 + 0x20]
mov dword [r12 + 0x20], ecx
mov ecx, dword [r13 + 0x34]
mov dword [r12 + 0x24], ecx
mov ecx, dword [r13 + 8]
mov dword [r12 + 0x28], ecx
mov ecx, dword [r13 + 0x1c]
mov dword [r12 + 0x2c], ecx
mov ecx, dword [r13 + 0x30]
mov dword [r12 + 0x30], ecx
mov ecx, dword [r13 + 4]
mov dword [r12 + 0x34], ecx
mov ecx, dword [r13 + 0x18]
mov dword [r12 + 0x38], ecx
mov ecx, dword [r13 + 0x2c]
mov dword [r12 + 0x3c], ecx
mov ecx, dword [r13 + 0x40]
mov dword [r12 + 0x40], ecx
mov ecx, dword [r13 + 0x54]
mov dword [r12 + 0x44], ecx
mov ecx, dword [r13 + 0x68]
mov dword [r12 + 0x48], ecx
mov ecx, dword [r13 + 0x7c]
mov dword [r12 + 0x4c], ecx
mov ecx, dword [r13 + 0x50]
mov dword [r12 + 0x50], ecx
mov ecx, dword [r13 + 0x64]
mov dword [r12 + 0x54], ecx
mov ecx, dword [r13 + 0x78]
mov dword [r12 + 0x58], ecx
mov ecx, dword [r13 + 0x4c]
mov dword [r12 + 0x5c], ecx
mov ecx, dword [r13 + 0x60]
mov dword [r12 + 0x60], ecx
mov ecx, dword [r13 + 0x74]
mov dword [r12 + 0x64], ecx
mov ecx, dword [r13 + 0x48]
mov dword [r12 + 0x68], ecx
mov ecx, dword [r13 + 0x5c]
mov dword [r12 + 0x6c], ecx
mov ecx, dword [r13 + 0x70]
mov dword [r12 + 0x70], ecx
mov ecx, dword [r13 + 0x44]
mov dword [r12 + 0x74], ecx
mov ecx, dword [r13 + 0x58]
mov dword [r12 + 0x78], ecx
mov ecx, dword [r13 + 0x6c]
mov dword [rsp + 0xa4], ebx
mov dword [r12 + 0x7c], ecx
je 0x6479ac
dec ebx
mov eax, 1
mov dword [rsp + 0xa0], 0
mov qword [rsp + 0x210], r13
mov esi, ebx
mov qword [rsp + 0x218], r15
cmovne esi, eax
lea rax, [r12 + 0x10]
mov qword [rsp + 0x50], rax
lea rax, [r12 + 0x80]
lea edi, [rsi + 1]
mov dword [rsp + 0xc0], esi
mov qword [rsp + 0xa8], rax
lea rax, [rsp + 0xe0]
mov dword [rsp + 0xc8], edi
mov qword [rsp + 0xb8], rax
jmp 0x6474fd
mov rdx, r14
mov rcx, r12
call fcn.00647000
mov ebx, dword [rsp + 0xa0]
sub rbp, 0xffffffffffffff80
lea eax, [rbx + 1]
cmp dword [rsp + 0xc0], ebx
je 0x6477b0
mov dword [rsp + 0xa0], eax
lea rax, [rbp + 0x10]
cmp r12, rax
jae 0x647511
cmp qword [rsp + 0x50], rbp
ja 0x648e30
vmovups xmm6, xmmword [r12]
vmovups xmmword [rbp], xmm6
vmovups xmm6, xmmword [r12 + 0x10]
vmovups xmmword [rbp + 0x10], xmm6
vmovups xmm6, xmmword [r12 + 0x20]
vmovups xmmword [rbp + 0x20], xmm6
vmovups xmm4, xmmword [r12 + 0x30]
vmovups xmmword [rbp + 0x30], xmm4
vmovups xmm6, xmmword [r12 + 0x40]
vmovups xmmword [rbp + 0x40], xmm6
vmovups xmm4, xmmword [r12 + 0x50]
vmovups xmmword [rbp + 0x50], xmm4
vmovups xmm6, xmmword [r12 + 0x60]
vmovups xmmword [rbp + 0x60], xmm6
vmovups xmm4, xmmword [r12 + 0x70]
vmovups xmmword [rbp + 0x70], xmm4
mov rax, qword [rsp + 0x48]
cmp rax, qword [r14 + 0x18]
jne 0x6474d0
mov eax, dword [r12 + 0x40]
mov ebx, dword [r12 + 0x78]
mov edi, dword [r14 + 4]
mov esi, dword [r12 + 0x44]
mov r11d, dword [r12 + 0x4c]
mov ecx, dword [r12 + 0x54]
mov r15d, dword [r12 + 0x58]
mov r10d, dword [r12 + 0x5c]
mov dword [rsp + 0x60], eax
mov eax, dword [r12 + 0x48]
mov r13d, dword [r12 + 0x60]
mov dword [rsp + 0x9c], ebx
mov rbx, r12
mov edx, dword [r12 + 0x64]
mov r9d, dword [r12 + 0x6c]
mov r8d, dword [r12 + 0x7c]
mov dword [rsp + 0x70], eax
mov eax, dword [r12 + 0x50]
mov dword [rsp + 0x80], eax
mov eax, dword [r12 + 0x68]
mov dword [rsp + 0x90], eax
mov eax, dword [r12 + 0x70]
mov dword [rsp + 0x98], eax
mov eax, dword [r12 + 0x74]
vmovd xmm6, r15d
vmovd xmm4, dword [rsp + 0x80]
vpinsrd xmm0, xmm6, r10d, 1
vpinsrd xmm2, xmm4, ecx, 1
vmovd xmm5, dword [rsp + 0x90]
vmovd xmm6, r13d
vpunpcklqdq xmm2, xmm2, xmm0
vpinsrd xmm1, xmm6, edx, 1
vpinsrd xmm0, xmm5, r9d, 1
vmovd xmm4, dword [rsp + 0x9c]
vmovd xmm5, dword [rsp + 0x98]
vpinsrd xmm3, xmm4, r8d, 1
vpunpcklqdq xmm1, xmm1, xmm0
vpinsrd xmm0, xmm5, eax, 1
vmovd xmm6, dword [rsp + 0x70]
vmovd xmm5, dword [rsp + 0x60]
vpinsrd xmm4, xmm6, r11d, 1
vpunpcklqdq xmm0, xmm0, xmm3
vpinsrd xmm3, xmm5, esi, 1
vxorps xmm2, xmm2, xmmword [rbx + 0x10]
vxorps xmm1, xmm1, xmmword [rbx + 0x20]
vxorps xmm0, xmm0, xmmword [rbx + 0x30]
vpunpcklqdq xmm3, xmm3, xmm4
mov edx, edi
vxorps xmm3, xmm3, xmmword [rbx]
mov rcx, qword [rsp + 0xb8]
add rbx, 0x40
vmovups xmmword [rsp + 0xf0], xmm2
vmovups xmmword [rsp + 0x100], xmm1
vmovups xmmword [rsp + 0x110], xmm0
vmovups xmmword [rsp + 0xe0], xmm3
call fcn.00645480
mov eax, dword [rsp + 0xe0]
vmovups xmm4, xmmword [rsp + 0xe0]
vmovups xmm6, xmmword [rsp + 0xf0]
vmovups xmm3, xmmword [rsp + 0x100]
mov r8d, dword [rsp + 0x118]
mov esi, dword [rsp + 0xe4]
mov r11d, dword [rsp + 0xec]
mov ecx, dword [rsp + 0xf4]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0xe8]
mov r15d, dword [rsp + 0xf8]
mov r10d, dword [rsp + 0xfc]
mov dword [rsp + 0x9c], r8d
mov r13d, dword [rsp + 0x100]
mov edx, dword [rsp + 0x104]
mov r9d, dword [rsp + 0x10c]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0xf0]
vmovups xmmword [rbx - 0x40], xmm4
vmovups xmm4, xmmword [rsp + 0x110]
vmovups xmmword [rbx - 0x30], xmm6
vmovups xmmword [rbx - 0x20], xmm3
mov r8d, dword [rsp + 0x11c]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x108]
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x110]
vmovups xmmword [rbx - 0x10], xmm4
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x114]
cmp qword [rsp + 0xa8], rbx
jne 0x6475fa
jmp 0x6474db
mov eax, dword [rsp + 0xc8]
mov rsi, qword [rsp + 0x48]
mov r13, qword [rsp + 0x210]
mov r15, qword [rsp + 0x218]
mov rdi, rax
shl rax, 7
lea rbp, [rsi + rax]
lea rax, [r12 + 0x80]
mov qword [rsp + 0xa8], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0xb8], rax
cmp dword [rsp + 0xa4], edi
jbe 0x6479a8
mov esi, edi
mov qword [rsp + 0x210], r13
mov qword [rsp + 0x218], r15
mov rdi, r14
nop dword [rax]
lea rax, [rbp + 0x10]
cmp r12, rax
jae 0x647834
cmp qword [rsp + 0x50], rbp
ja 0x6490a0
vmovups xmm5, xmmword [r12]
vmovups xmmword [rbp], xmm5
vmovups xmm7, xmmword [r12 + 0x10]
vmovups xmmword [rbp + 0x10], xmm7
vmovups xmm1, xmmword [r12 + 0x20]
vmovups xmmword [rbp + 0x20], xmm1
vmovups xmm6, xmmword [r12 + 0x30]
vmovups xmmword [rbp + 0x30], xmm6
vmovups xmm3, xmmword [r12 + 0x40]
vmovups xmmword [rbp + 0x40], xmm3
vmovups xmm4, xmmword [r12 + 0x50]
vmovups xmmword [rbp + 0x50], xmm4
vmovups xmm5, xmmword [r12 + 0x60]
vmovups xmmword [rbp + 0x60], xmm5
vmovups xmm7, xmmword [r12 + 0x70]
vmovups xmmword [rbp + 0x70], xmm7
mov eax, dword [r12 + 0x40]
mov edx, esi
nop word [rax + rax]
lea r8d, [rdx - 1]
mov ecx, edx
and edx, r8d
jne 0x6478a0
mov rbx, qword [rsp + 0x48]
and eax, r8d
sub eax, ecx
add eax, esi
shl rax, 7
lea rdx, [rbx + rax]
lea rax, [rbx + rax + 0x10]
cmp r12, rax
jae 0x6478d4
cmp qword [rsp + 0x50], rdx
ja 0x6490d0
vmovups xmm1, xmmword [rdx]
vxorps xmm0, xmm1, xmmword [r12]
vmovups xmmword [r12], xmm0
vmovups xmm6, xmmword [rax]
vxorps xmm0, xmm6, xmmword [r12 + 0x10]
vmovups xmmword [r12 + 0x10], xmm0
vmovups xmm3, xmmword [rax + 0x10]
vxorps xmm0, xmm3, xmmword [r12 + 0x20]
vmovups xmmword [r12 + 0x20], xmm0
vmovups xmm4, xmmword [rax + 0x20]
vxorps xmm0, xmm4, xmmword [r12 + 0x30]
vmovups xmmword [r12 + 0x30], xmm0
vmovups xmm5, xmmword [rax + 0x30]
vxorps xmm0, xmm5, xmmword [r12 + 0x40]
vmovups xmmword [r12 + 0x40], xmm0
vmovups xmm7, xmmword [rax + 0x40]
vxorps xmm0, xmm7, xmmword [r12 + 0x50]
vmovups xmmword [r12 + 0x50], xmm0
vmovups xmm1, xmmword [rax + 0x50]
vxorps xmm0, xmm1, xmmword [r12 + 0x60]
vmovups xmmword [r12 + 0x60], xmm0
vmovups xmm6, xmmword [rax + 0x60]
vxorps xmm0, xmm6, xmmword [r12 + 0x70]
vmovups xmmword [r12 + 0x70], xmm0
mov rax, qword [rsp + 0x48]
cmp rax, qword [rdi + 0x18]
je 0x648e60
mov rdx, rdi
mov rcx, r12
call fcn.00647000
inc esi
sub rbp, 0xffffffffffffff80
cmp dword [rsp + 0xa4], esi
jne 0x647820
mov r13, qword [rsp + 0x210]
mov r15, qword [rsp + 0x218]
mov r14, rdi
mov eax, dword [r12]
mov dword [r13], eax
mov eax, dword [r12 + 4]
lea rdi, [r15 + r15]
mov dword [r13 + 0x14], eax
mov eax, dword [r12 + 8]
mov dword [r13 + 0x28], eax
mov eax, dword [r12 + 0xc]
mov dword [r13 + 0x3c], eax
mov eax, dword [r12 + 0x10]
mov dword [r13 + 0x10], eax
mov eax, dword [r12 + 0x14]
mov dword [r13 + 0x24], eax
mov eax, dword [r12 + 0x18]
mov dword [r13 + 0x38], eax
mov eax, dword [r12 + 0x1c]
mov dword [r13 + 0xc], eax
mov eax, dword [r12 + 0x20]
mov dword [r13 + 0x20], eax
mov eax, dword [r12 + 0x24]
mov dword [r13 + 0x34], eax
mov eax, dword [r12 + 0x28]
mov dword [r13 + 8], eax
mov eax, dword [r12 + 0x2c]
mov dword [r13 + 0x1c], eax
mov eax, dword [r12 + 0x30]
mov dword [r13 + 0x30], eax
mov eax, dword [r12 + 0x34]
mov dword [r13 + 4], eax
mov eax, dword [r12 + 0x38]
mov dword [r13 + 0x18], eax
mov eax, dword [r12 + 0x3c]
mov dword [r13 + 0x2c], eax
mov eax, dword [r12 + 0x40]
mov dword [r13 + 0x40], eax
mov eax, dword [r12 + 0x44]
mov qword [rsp + 0x48], rdi
mov dword [r13 + 0x54], eax
mov eax, dword [r12 + 0x48]
mov dword [r13 + 0x68], eax
mov eax, dword [r12 + 0x4c]
mov dword [r13 + 0x7c], eax
mov eax, dword [r12 + 0x50]
mov dword [r13 + 0x50], eax
mov eax, dword [r12 + 0x54]
mov dword [r13 + 0x64], eax
mov eax, dword [r12 + 0x58]
mov dword [r13 + 0x78], eax
mov eax, dword [r12 + 0x5c]
mov dword [r13 + 0x4c], eax
mov eax, dword [r12 + 0x60]
mov dword [r13 + 0x60], eax
mov eax, dword [r12 + 0x64]
mov dword [r13 + 0x74], eax
mov eax, dword [r12 + 0x68]
mov dword [r13 + 0x48], eax
mov eax, dword [r12 + 0x6c]
mov dword [r13 + 0x5c], eax
mov eax, dword [r12 + 0x70]
mov dword [r13 + 0x70], eax
mov eax, dword [r12 + 0x74]
mov dword [r13 + 0x44], eax
mov eax, dword [r12 + 0x78]
mov dword [r13 + 0x58], eax
mov eax, dword [r12 + 0x7c]
mov dword [r13 + 0x6c], eax
mov rax, r15
shl rax, 5
mov qword [rsp + 0x90], rax
lea rax, [r13 + 0xff]
sub rax, r12
mov qword [rsp + 0xc0], rax
cmp rax, 0x1fe
jbe 0x649100
shr rdi, 2
mov rax, r12
mov rdx, r13
mov rcx, rdi
shl rcx, 8
add rcx, r12
nop word cs:[rax + rax]
nop dword [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 + 0x60], xmm15
vshufps xmm15, xmm11, xmm10, 0x88
vmovups xmmword [rsp + 0x70], 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 + 0x60]
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 + 0x60], xmm6
vshufps xmm12, xmm12, xmm9, 0xdd
vshufps xmm9, xmm11, xmm2, 0xdd
vmovups xmmword [rsp + 0x80], xmm9
vmovups xmm2, xmmword [rsp + 0x70]
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 + 0x60]
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 + 0x50], 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 + 0x60], 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 + 0x60]
vpunpckldq xmm10, xmm3, xmm2
vpunpckhdq xmm2, xmm3, xmm2
vmovups xmm3, xmmword [rsp + 0x50]
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 + 0x60], 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 + 0x50], 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 + 0x60]
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 + 0x60], xmm5
vmovups xmm5, xmmword [rsp + 0x50]
vpunpckhdq xmm2, xmm2, xmm14
vpunpckldq xmm14, xmm5, xmm10
vpunpckhdq xmm5, xmm5, xmm10
vpunpckldq xmm10, xmm1, xmm9
vpunpckhdq xmm1, xmm1, xmm9
vmovups xmmword [rsp + 0x50], xmm14
vpunpckldq xmm14, xmm13, xmm7
vpunpckhdq xmm7, xmm13, xmm7
vpunpckldq xmm13, xmm15, xmm3
vpunpckhdq xmm3, xmm15, xmm3
vmovups xmm15, xmmword [rsp + 0x60]
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 + 0x60], xmm11
vpunpckldq xmm11, xmm12, xmm2
vpunpckhdq xmm2, xmm12, xmm2
vmovups xmm12, xmmword [rsp + 0x50]
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 + 0x60]
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 0x647b20
mov rax, qword [rsp + 0x48]
mov rdx, rax
and rdx, 0xfffffffffffffffc
test al, 3
je 0x6481be
mov rsi, rdx
mov qword [rsp + 0x50], rdx
shl rsi, 6
mov ecx, dword [r13 + rsi]
mov dword [r12 + rsi], ecx
mov rsi, rdx
shl rsi, 4
lea rax, [rsi*4 + 0x14]
mov ecx, dword [r13 + rax]
lea r11, [rax - 0x10]
lea rsi, [rax + 0x18]
mov dword [r12 + rax - 0x10], ecx
mov ecx, dword [r13 + rax + 0x14]
mov dword [r12 + rax - 0xc], ecx
mov r8d, dword [r13 + rax + 0x28]
lea rcx, [rax + 0x28]
mov dword [r12 + rax - 8], r8d
mov r9d, dword [r13 + rax - 4]
mov dword [r12 + rax - 4], r9d
mov r8d, dword [r13 + rax + 0x10]
lea r9, [rax + 4]
mov dword [r12 + rax], r8d
mov ebx, dword [r13 + rax + 0x24]
lea r8, [rax + 0x24]
mov dword [r12 + rax + 4], ebx
mov r10d, dword [r13 + rax - 8]
mov dword [r12 + rax + 8], r10d
mov edx, dword [r13 + rax + 0xc]
lea r10, [rax + 0x20]
mov dword [r12 + rax + 0xc], edx
mov edx, dword [r13 + rax + 0x20]
mov dword [r12 + rax + 0x10], edx
mov edi, dword [r13 + rax - 0xc]
mov dword [r12 + rax + 0x14], edi
mov ebx, dword [r13 + rax + 8]
mov dword [r12 + rax + 0x18], ebx
mov ebx, dword [r13 + rax + 0x1c]
mov dword [r12 + rax + 0x1c], ebx
mov eax, dword [r13 + r11]
mov dword [r12 + r10], eax
mov eax, dword [r13 + r9]
mov dword [r12 + r8], eax
mov eax, dword [r13 + rsi]
mov dword [r12 + rcx], eax
mov rdx, qword [rsp + 0x50]
lea rax, [rdx + 1]
cmp rax, qword [rsp + 0x48]
jae 0x6481be
mov rcx, rax
shl rax, 4
shl rcx, 6
lea rax, [rax*4 + 0x14]
mov r8d, dword [r13 + rcx]
lea r11, [rax - 0x10]
lea rsi, [rax + 0x18]
mov dword [r12 + rcx], r8d
mov ecx, dword [r13 + rax]
mov dword [r12 + rax - 0x10], ecx
mov ecx, dword [r13 + rax + 0x14]
mov dword [r12 + rax - 0xc], ecx
mov r8d, dword [r13 + rax + 0x28]
lea rcx, [rax + 0x28]
mov dword [r12 + rax - 8], r8d
mov r9d, dword [r13 + rax - 4]
mov dword [r12 + rax - 4], r9d
mov r8d, dword [r13 + rax + 0x10]
lea r9, [rax + 4]
mov dword [r12 + rax], r8d
mov ebx, dword [r13 + rax + 0x24]
lea r8, [rax + 0x24]
mov dword [r12 + rax + 4], ebx
mov r10d, dword [r13 + rax - 8]
mov dword [r12 + rax + 8], r10d
mov edx, dword [r13 + rax + 0xc]
lea r10, [rax + 0x20]
mov dword [r12 + rax + 0xc], edx
mov edx, dword [r13 + rax + 0x20]
mov dword [r12 + rax + 0x10], edx
mov edi, dword [r13 + rax - 0xc]
mov dword [r12 + rax + 0x14], edi
mov ebx, dword [r13 + rax + 8]
mov dword [r12 + rax + 0x18], ebx
mov ebx, dword [r13 + rax + 0x1c]
mov dword [r12 + rax + 0x1c], ebx
mov eax, dword [r13 + r11]
mov dword [r12 + r10], eax
mov eax, dword [r13 + r9]
mov dword [r12 + r8], eax
mov eax, dword [r13 + rsi]
mov dword [r12 + rcx], eax
mov rdx, qword [rsp + 0x50]
add rdx, 2
cmp rdx, qword [rsp + 0x48]
jae 0x6481be
mov rax, rdx
shl rdx, 4
shl rax, 6
mov ecx, dword [r13 + rax]
mov dword [r12 + rax], ecx
lea rax, [rdx*4 + 0x14]
mov edx, dword [r13 + rax]
lea r10, [rax - 0x10]
lea rbx, [rax + 0x18]
mov dword [r12 + rax - 0x10], edx
mov edx, dword [r13 + rax + 0x14]
mov dword [r12 + rax - 0xc], edx
mov ecx, dword [r13 + rax + 0x28]
lea rdx, [rax + 0x28]
mov dword [r12 + rax - 8], ecx
mov r8d, dword [r13 + rax - 4]
mov dword [r12 + rax - 4], r8d
mov ecx, dword [r13 + rax + 0x10]
lea r8, [rax + 4]
mov dword [r12 + rax], ecx
mov r11d, dword [r13 + rax + 0x24]
lea rcx, [rax + 0x24]
mov dword [r12 + rax + 4], r11d
mov r9d, dword [r13 + rax - 8]
mov dword [r12 + rax + 8], r9d
mov ebp, dword [r13 + rax + 0xc]
lea r9, [rax + 0x20]
mov dword [r12 + rax + 0xc], ebp
mov ebp, dword [r13 + rax + 0x20]
mov dword [r12 + rax + 0x10], ebp
mov esi, dword [r13 + rax - 0xc]
mov dword [r12 + rax + 0x14], esi
mov r11d, dword [r13 + rax + 8]
mov dword [r12 + rax + 0x18], r11d
mov r11d, dword [r13 + rax + 0x1c]
mov dword [r12 + rax + 0x1c], r11d
mov eax, dword [r13 + r10]
mov dword [r12 + r9], eax
mov eax, dword [r13 + r8]
mov dword [r12 + rcx], eax
mov eax, dword [r13 + rbx]
mov dword [r12 + rdx], eax
cmp dword [r14], 5
je 0x648250
mov rbx, r15
lea rsi, [r12 + 0x80]
shl rbx, 7
add rbx, r12
nop word [rax + rax]
vmovups xmm3, xmmword [rsi - 0x80]
vmovups xmm4, xmmword [rsi - 0x70]
mov rcx, rsi
mov rdx, r14
vmovups xmm5, xmmword [rsi - 0x60]
vmovups xmm7, xmmword [rsi - 0x50]
sub rsi, 0xffffffffffffff80
vmovups xmm1, xmmword [rsi - 0xc0]
vmovups xmm6, xmmword [rsi - 0xb0]
vmovups xmmword [rsi - 0x80], xmm3
vmovups xmmword [rsi - 0x70], xmm4
vmovups xmm3, xmmword [rsi - 0xa0]
vmovups xmm4, xmmword [rsi - 0x90]
vmovups xmmword [rsi - 0x60], xmm5
vmovups xmmword [rsi - 0x50], xmm7
vmovups xmmword [rsi - 0x40], xmm1
vmovups xmmword [rsi - 0x30], xmm6
vmovups xmmword [rsi - 0x20], xmm3
vmovups xmmword [rsi - 0x10], xmm4
call fcn.00647000
cmp rbx, rsi
jne 0x6481e0
mov eax, dword [rsp + 0x220]
test eax, eax
je 0x6483ec
mov rsi, r15
mov rdi, qword [rsp + 0x228]
mov qword [rsp + 0x238], r14
mov r14, r15
shl rsi, 7
mov r15, qword [rsp + 0x238]
xor ebp, ebp
mov qword [rsp + 0x210], r13
lea rax, [r12 + rsi - 0x40]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0x90]
mov r13, rdi
mov edi, ebp
mov rbp, rsi
shl rax, 2
mov qword [rsp + 0xa8], rax
lea rax, [r12 + 0x10]
mov qword [rsp + 0x50], rax
lea rax, [r12 + 0x80]
mov qword [rsp + 0xd0], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0xd8], rax
nop
lea rax, [r13 + 0x10]
cmp r12, rax
mov eax, 0
jae 0x648300
cmp qword [rsp + 0x50], r13
ja 0x648b70
nop dword [rax]
vmovups xmm5, xmmword [r12 + rax]
vmovups xmmword [r13 + rax], xmm5
add rax, 0x10
cmp qword [rsp + 0xa8], rax
jne 0x648300
cmp edi, 1
jbe 0x64839f
mov rax, qword [rsp + 0xc8]
mov edx, edi
mov eax, dword [rax]
nop dword [rax]
lea ecx, [rdx - 1]
mov r8d, edx
and edx, ecx
jne 0x648330
and eax, ecx
mov rsi, qword [rsp + 0x228]
sub eax, r8d
lea edx, [rax + rdi]
mov rax, qword [rsp + 0x228]
imul rdx, r14
shl rdx, 7
add rax, rdx
lea rdx, [rsi + rdx + 0x10]
cmp r12, rdx
jae 0x648372
cmp rax, qword [rsp + 0x50]
jb 0x648b90
xor edx, edx
nop word cs:[rax + rax]
nop
vmovups xmm7, xmmword [rax + rdx]
vxorps xmm0, xmm7, xmmword [r12 + rdx]
vmovups xmmword [r12 + rdx], xmm0
add rdx, 0x10
cmp rdx, qword [rsp + 0xa8]
jne 0x648380
mov rax, qword [r15 + 0x18]
cmp qword [rsp + 0x228], rax
je 0x648bd0
mov r8, r14
mov rdx, r15
mov rcx, r12
call fcn.00645bc0
inc edi
add r13, rbp
cmp dword [rsp + 0x220], edi
jne 0x6482e0
mov qword [rsp + 0x238], r15
mov r13, qword [rsp + 0x210]
mov r15, r14
mov r14, qword [rsp + 0x238]
cmp qword [rsp + 0xc0], 0x1fe
jbe 0x649190
mov rcx, qword [rsp + 0x48]
mov rax, r13
mov rdx, r12
shr rcx, 2
shl rcx, 8
add rcx, r13
nop word cs:[rax + rax]
nop
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]
vshufps xmm15, xmm7, xmmword [rdx - 0xf0], 0x88
vshufps xmm12, xmm0, xmmword [rdx - 0x90], 0x88
vshufps xmm7, xmm7, xmmword [rdx - 0xf0], 0xdd
vshufps xmm14, xmm3, xmmword [rdx - 0xd0], 0x88
vshufps xmm13, xmm6, xmmword [rdx - 0xb0], 0x88
vshufps xmm3, xmm3, xmmword [rdx - 0xd0], 0xdd
vshufps xmm0, xmm0, xmmword [rdx - 0x90], 0xdd
vmovups xmm5, xmmword [rdx - 0x80]
vmovups xmm2, xmmword [rdx - 0x60]
vmovups xmm4, xmmword [rdx - 0x40]
vmovups xmm1, xmmword [rdx - 0x20]
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 xmm8, xmm1, xmmword [rdx - 0x10], 0x88
vshufps xmm2, xmm2, xmmword [rdx - 0x50], 0xdd
vshufps xmm4, xmm4, xmmword [rdx - 0x30], 0xdd
vshufps xmm5, xmm5, xmmword [rdx - 0x70], 0xdd
vshufps xmm1, xmm1, xmmword [rdx - 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 + 0x60], xmm13
vmovups xmm5, xmmword [rsp + 0x60]
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 + 0x50], xmm12
vshufps xmm6, xmm2, xmm5, 0x88
vshufps xmm5, xmm2, xmm5, 0xdd
vmovups xmm2, xmmword [rsp + 0x70]
vmovups xmmword [rsp + 0x60], 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 + 0x50]
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 + 0x60]
vmovups xmmword [rsp + 0x70], xmm4
vpunpckldq xmm4, xmm6, xmm10
vmovups xmmword [rsp + 0x50], 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 + 0x50]
vpunpckldq xmm13, xmm8, xmm10
vpunpckldq xmm10, xmm7, xmm9
vpunpckhdq xmm9, xmm7, xmm9
vmovups xmm7, xmmword [rsp + 0x70]
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 [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 rax, rcx
jne 0x648420
mov rax, qword [rsp + 0x48]
mov rdx, rax
and rdx, 0xfffffffffffffffc
test al, 3
je 0x648a90
mov rdi, rdx
shl rdi, 6
mov ecx, dword [r12 + rdi]
mov dword [r13 + rdi], ecx
mov rdi, rdx
shl rdi, 4
lea rax, [rdi*4 + 4]
mov ecx, dword [r12 + rax]
lea rbx, [rax + 0x28]
mov dword [r13 + rax + 0x10], ecx
mov ecx, dword [r12 + rax + 4]
mov dword [r13 + rax + 0x24], ecx
mov r9d, dword [r12 + rax + 8]
lea rcx, [rax + 0x38]
mov dword [r13 + rax + 0x38], r9d
mov r11d, dword [r12 + rax + 0xc]
mov dword [r13 + rax + 0xc], r11d
mov r8d, dword [r12 + rax + 0x10]
mov dword [r13 + rax + 0x20], r8d
mov r11d, dword [r12 + rax + 0x14]
lea r8, [rax + 0x14]
mov dword [r13 + rax + 0x34], r11d
mov ebp, dword [r12 + rax + 0x18]
mov dword [r13 + rax + 8], ebp
mov ebp, dword [r12 + rax + 0x1c]
mov dword [r13 + rax + 0x1c], ebp
mov edi, dword [r12 + rax + 0x20]
mov dword [r13 + rax + 0x30], edi
mov esi, dword [r12 + rax + 0x24]
mov dword [r13 + rax + 4], esi
mov esi, dword [r12 + rax + 0x28]
mov dword [r13 + rax + 0x18], esi
mov esi, dword [r12 + rax + 0x2c]
mov dword [r13 + rax + 0x2c], esi
mov r10d, dword [r12 + rax + 0x30]
mov dword [r13 + rax], r10d
mov eax, dword [r12 + rax + 0x34]
mov dword [r13 + r8], eax
mov eax, dword [r12 + rcx]
mov dword [r13 + rbx], eax
lea rax, [rdx + 1]
cmp rax, qword [rsp + 0x48]
jae 0x648a90
mov rcx, rax
shl rax, 4
add rdx, 2
shl rcx, 6
lea rax, [rax*4 + 4]
mov r8d, dword [r12 + rcx]
lea rbx, [rax + 0x28]
mov dword [r13 + rcx], r8d
mov ecx, dword [r12 + rax]
mov dword [r13 + rax + 0x10], ecx
mov ecx, dword [r12 + rax + 4]
mov dword [r13 + rax + 0x24], ecx
mov r9d, dword [r12 + rax + 8]
lea rcx, [rax + 0x38]
mov dword [r13 + rax + 0x38], r9d
mov r11d, dword [r12 + rax + 0xc]
mov dword [r13 + rax + 0xc], r11d
mov r8d, dword [r12 + rax + 0x10]
mov dword [r13 + rax + 0x20], r8d
mov r11d, dword [r12 + rax + 0x14]
lea r8, [rax + 0x14]
mov dword [r13 + rax + 0x34], r11d
mov ebp, dword [r12 + rax + 0x18]
mov dword [r13 + rax + 8], ebp
mov ebp, dword [r12 + rax + 0x1c]
mov dword [r13 + rax + 0x1c], ebp
mov edi, dword [r12 + rax + 0x20]
mov dword [r13 + rax + 0x30], edi
mov esi, dword [r12 + rax + 0x24]
mov dword [r13 + rax + 4], esi
mov esi, dword [r12 + rax + 0x28]
mov dword [r13 + rax + 0x18], esi
mov esi, dword [r12 + rax + 0x2c]
mov dword [r13 + rax + 0x2c], esi
mov r10d, dword [r12 + rax + 0x30]
mov dword [r13 + rax], r10d
mov eax, dword [r12 + rax + 0x34]
mov dword [r13 + r8], eax
mov eax, dword [r12 + rcx]
mov dword [r13 + rbx], eax
cmp qword [rsp + 0x48], rdx
jbe 0x648a90
mov rax, rdx
shl rdx, 4
shl rax, 6
mov ecx, dword [r12 + rax]
mov dword [r13 + rax], ecx
lea rax, [rdx*4 + 4]
mov edx, dword [r12 + rax]
lea r11, [rax + 0x28]
mov dword [r13 + rax + 0x10], edx
mov edx, dword [r12 + rax + 4]
mov dword [r13 + rax + 0x24], edx
mov r8d, dword [r12 + rax + 8]
lea rdx, [rax + 0x38]
mov dword [r13 + rax + 0x38], r8d
mov r10d, dword [r12 + rax + 0xc]
mov dword [r13 + rax + 0xc], r10d
mov ecx, dword [r12 + rax + 0x10]
mov dword [r13 + rax + 0x20], ecx
mov r10d, dword [r12 + rax + 0x14]
lea rcx, [rax + 0x14]
mov dword [r13 + rax + 0x34], r10d
mov edi, dword [r12 + rax + 0x18]
mov dword [r13 + rax + 8], edi
mov edi, dword [r12 + rax + 0x1c]
mov dword [r13 + rax + 0x1c], edi
mov esi, dword [r12 + rax + 0x20]
mov dword [r13 + rax + 0x30], esi
mov ebx, dword [r12 + rax + 0x24]
mov dword [r13 + rax + 4], ebx
mov ebx, dword [r12 + rax + 0x28]
mov dword [r13 + rax + 0x18], ebx
mov ebx, dword [r12 + rax + 0x2c]
mov dword [r13 + rax + 0x2c], ebx
mov r9d, dword [r12 + rax + 0x30]
mov dword [r13 + rax], r9d
mov eax, dword [r12 + rax + 0x34]
mov dword [r13 + rcx], eax
mov eax, dword [r12 + rdx]
mov dword [r13 + r11], eax
mov rax, qword [rsp + 0x228]
mov rdx, r15
mov rcx, r13
mov qword [rsp + 0x30], r14
mov r9d, dword [rsp + 0xb0]
mov qword [rsp + 0x28], r12
mov r8d, dword [rsp + 0x220]
mov qword [rsp + 0x20], rax
call fcn.00645f10
mov rax, qword [rsp + 0x228]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r12
mov rdx, r15
mov rcx, r13
mov r9d, dword [rsp + 0xb4]
mov r8d, dword [rsp + 0x220]
mov qword [rsp + 0x20], rax
call fcn.00645f10
nop
vmovups xmm6, xmmword [rsp + 0x120]
vmovups xmm7, xmmword [rsp + 0x130]
vmovups xmm8, xmmword [rsp + 0x140]
vmovups xmm9, xmmword [rsp + 0x150]
vmovups xmm10, xmmword [rsp + 0x160]
vmovups xmm11, xmmword [rsp + 0x170]
vmovups xmm12, xmmword [rsp + 0x180]
vmovups xmm13, xmmword [rsp + 0x190]
vmovups xmm14, xmmword [rsp + 0x1a0]
vmovups xmm15, xmmword [rsp + 0x1b0]
add rsp, 0x1c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [r12 + rax]
mov dword [r13 + rax], edx
add rax, 4
cmp rax, rbp
jne 0x648b70
jmp 0x64831b
lea r8, [rax + rbp]
mov rdx, r12
nop word [rax + rax]
add rax, 4
add rdx, 4
mov ecx, dword [rax - 4]
xor dword [rdx - 4], ecx
cmp rax, r8
jne 0x648ba0
mov rax, qword [r15 + 0x18]
cmp qword [rsp + 0x228], rax
jne 0x6483b1
nop word cs:[rax + rax]
mov eax, dword [r15 + 4]
mov ebx, dword [r12 + 0x78]
mov r8d, dword [r12 + 0x44]
mov esi, dword [r12 + 0x4c]
mov ecx, dword [r12 + 0x54]
mov r11d, dword [r12 + 0x5c]
mov edx, dword [r12 + 0x64]
mov dword [rsp + 0xb8], eax
mov eax, dword [r12 + 0x40]
mov r10d, dword [r12 + 0x6c]
mov r9d, dword [r12 + 0x7c]
mov dword [rsp + 0xa4], ebx
mov rbx, r12
mov dword [rsp + 0x60], eax
mov eax, dword [r12 + 0x48]
mov dword [rsp + 0x70], eax
mov eax, dword [r12 + 0x50]
mov dword [rsp + 0x80], eax
mov eax, dword [r12 + 0x58]
mov dword [rsp + 0x90], eax
mov eax, dword [r12 + 0x60]
mov dword [rsp + 0x98], eax
mov eax, dword [r12 + 0x68]
mov dword [rsp + 0x9c], eax
mov eax, dword [r12 + 0x70]
mov dword [rsp + 0xa0], eax
mov eax, dword [r12 + 0x74]
vmovd xmm1, dword [rsp + 0x90]
vmovd xmm6, dword [rsp + 0x80]
vpinsrd xmm0, xmm1, r11d, 1
vpinsrd xmm2, xmm6, ecx, 1
vmovd xmm3, dword [rsp + 0x9c]
vmovd xmm4, dword [rsp + 0x98]
vpunpcklqdq xmm2, xmm2, xmm0
vpinsrd xmm1, xmm4, edx, 1
vpinsrd xmm0, xmm3, r10d, 1
vmovd xmm5, dword [rsp + 0xa4]
vmovd xmm7, dword [rsp + 0xa0]
vpinsrd xmm3, xmm5, r9d, 1
vpunpcklqdq xmm1, xmm1, xmm0
vpinsrd xmm0, xmm7, eax, 1
vmovd xmm6, dword [rsp + 0x70]
vpinsrd xmm4, xmm6, 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
add rbx, 0x40
vxorps xmm3, xmm3, xmmword [rbx - 0x40]
mov edx, dword [rsp + 0xb8]
mov rcx, qword [rsp + 0xd8]
vmovups xmmword [rsp + 0x100], xmm1
vmovups xmmword [rsp + 0xf0], xmm2
vmovups xmmword [rsp + 0x110], xmm0
vmovups xmmword [rsp + 0xe0], xmm3
call fcn.00645480
mov eax, dword [rsp + 0xe0]
vmovups xmm1, xmmword [rsp + 0xe0]
vmovups xmm4, xmmword [rsp + 0xf0]
vmovups xmm5, xmmword [rsp + 0x100]
vmovups xmm7, xmmword [rsp + 0x110]
mov r9d, dword [rsp + 0x118]
mov r8d, dword [rsp + 0xe4]
mov esi, dword [rsp + 0xec]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0xe8]
mov ecx, dword [rsp + 0xf4]
mov r11d, dword [rsp + 0xfc]
mov dword [rsp + 0xa4], r9d
mov edx, dword [rsp + 0x104]
mov r10d, dword [rsp + 0x10c]
mov r9d, dword [rsp + 0x11c]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0xf0]
vmovups xmmword [rbx - 0x40], xmm1
vmovups xmmword [rbx - 0x30], xmm4
vmovups xmmword [rbx - 0x20], xmm5
vmovups xmmword [rbx - 0x10], xmm7
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0xf8]
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x100]
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x108]
mov dword [rsp + 0x9c], eax
mov eax, dword [rsp + 0x110]
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0x114]
cmp qword [rsp + 0xd0], rbx
jne 0x648c60
jmp 0x6483bf
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax]
mov edx, dword [r12 + rax]
mov dword [rbp + rax], edx
add rax, 4
cmp rax, 0x80
jne 0x648e40
jmp 0x647570
mov eax, dword [r12 + 0x40]
mov ebx, dword [r12 + 0x78]
mov r14d, dword [rdi + 4]
mov r13d, dword [r12 + 0x44]
mov r11d, dword [r12 + 0x4c]
mov ecx, dword [r12 + 0x54]
mov r15d, dword [r12 + 0x58]
mov r10d, dword [r12 + 0x5c]
mov dword [rsp + 0xa0], eax
mov eax, dword [r12 + 0x48]
mov edx, dword [r12 + 0x64]
mov dword [rsp + 0x60], ebx
mov rbx, r12
mov r9d, dword [r12 + 0x6c]
mov r8d, dword [r12 + 0x7c]
mov dword [rsp + 0x9c], eax
mov eax, dword [r12 + 0x50]
mov dword [rsp + 0x98], eax
mov eax, dword [r12 + 0x60]
mov dword [rsp + 0x90], eax
mov eax, dword [r12 + 0x68]
mov dword [rsp + 0x80], eax
mov eax, dword [r12 + 0x70]
mov dword [rsp + 0x70], eax
mov eax, dword [r12 + 0x74]
vmovd xmm3, r15d
vmovd xmm4, dword [rsp + 0x98]
vpinsrd xmm0, xmm3, r10d, 1
vpinsrd xmm2, xmm4, ecx, 1
vmovd xmm5, dword [rsp + 0x80]
vmovd xmm7, dword [rsp + 0x90]
vpunpcklqdq xmm2, xmm2, xmm0
vpinsrd xmm1, xmm7, edx, 1
vpinsrd xmm0, xmm5, r9d, 1
vmovd xmm6, dword [rsp + 0x60]
vmovd xmm4, dword [rsp + 0x70]
vpinsrd xmm3, xmm6, r8d, 1
vpunpcklqdq xmm1, xmm1, xmm0
vpinsrd xmm0, xmm4, eax, 1
vmovd xmm5, dword [rsp + 0xa0]
vxorps xmm1, xmm1, xmmword [rbx + 0x20]
vpunpcklqdq xmm0, xmm0, xmm3
vmovd xmm3, dword [rsp + 0x9c]
vpinsrd xmm4, xmm3, r11d, 1
vpinsrd xmm3, xmm5, r13d, 1
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 + 0xb8]
add rbx, 0x40
vmovups xmmword [rsp + 0x100], xmm1
vmovups xmmword [rsp + 0xf0], xmm2
vmovups xmmword [rsp + 0x110], xmm0
vmovups xmmword [rsp + 0xe0], xmm3
call fcn.00645480
mov eax, dword [rsp + 0xe0]
vmovups xmm1, xmmword [rsp + 0xe0]
vmovups xmm7, xmmword [rsp + 0xf0]
vmovups xmm6, xmmword [rsp + 0x110]
mov r8d, dword [rsp + 0x118]
mov r13d, dword [rsp + 0xe4]
mov r11d, dword [rsp + 0xec]
mov ecx, dword [rsp + 0xf4]
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0xe8]
mov r15d, dword [rsp + 0xf8]
mov r10d, dword [rsp + 0xfc]
mov dword [rsp + 0x60], r8d
mov edx, dword [rsp + 0x104]
mov r9d, dword [rsp + 0x10c]
mov r8d, dword [rsp + 0x11c]
mov dword [rsp + 0x9c], eax
mov eax, dword [rsp + 0xf0]
vmovups xmmword [rbx - 0x40], xmm1
vmovups xmm1, xmmword [rsp + 0x100]
vmovups xmmword [rbx - 0x30], xmm7
vmovups xmmword [rbx - 0x10], xmm6
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x100]
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x108]
vmovups xmmword [rbx - 0x20], xmm1
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x110]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x114]
cmp rbx, qword [rsp + 0xa8]
jne 0x648ee2
jmp 0x647982
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax]
mov edx, dword [r12 + rax]
mov dword [rbp + rax], edx
add rax, 4
cmp rax, 0x80
jne 0x6490b0
jmp 0x647893
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax]
mov ecx, dword [rdx + rax]
xor dword [r12 + rax], ecx
add rax, 4
cmp rax, 0x80
jne 0x6490e0
jmp 0x647968
mov r8, r15
mov rax, r13
mov rdx, r12
shl r8, 7
add r8, r13
mov ecx, dword [rax]
add rax, 0x40
add rdx, 0x40
mov dword [rdx - 0x40], ecx
mov ecx, dword [rax - 0x2c]
mov dword [rdx - 0x3c], ecx
mov ecx, dword [rax - 0x18]
mov dword [rdx - 0x38], ecx
mov ecx, dword [rax - 4]
mov dword [rdx - 0x34], ecx
mov ecx, dword [rax - 0x30]
mov dword [rdx - 0x30], ecx
mov ecx, dword [rax - 0x1c]
mov dword [rdx - 0x2c], ecx
mov ecx, dword [rax - 8]
mov dword [rdx - 0x28], ecx
mov ecx, dword [rax - 0x34]
mov dword [rdx - 0x24], ecx
mov ecx, dword [rax - 0x20]
mov dword [rdx - 0x20], ecx
mov ecx, dword [rax - 0xc]
mov dword [rdx - 0x1c], ecx
mov ecx, dword [rax - 0x38]
mov dword [rdx - 0x18], ecx
mov ecx, dword [rax - 0x24]
mov dword [rdx - 0x14], ecx
mov ecx, dword [rax - 0x10]
mov dword [rdx - 0x10], ecx
mov ecx, dword [rax - 0x3c]
mov dword [rdx - 0xc], ecx
mov ecx, dword [rax - 0x28]
mov dword [rdx - 8], ecx
mov ecx, dword [rax - 0x14]
mov dword [rdx - 4], ecx
cmp r8, rax
jne 0x649110
jmp 0x6481be
mov r8, r15
mov rax, r12
mov rdx, r13
shl r8, 7
add r8, r12
mov ecx, dword [rax]
add rax, 0x40
add rdx, 0x40
mov dword [rdx - 0x40], ecx
mov ecx, dword [rax - 0x3c]
mov dword [rdx - 0x2c], ecx
mov ecx, dword [rax - 0x38]
mov dword [rdx - 0x18], ecx
mov ecx, dword [rax - 0x34]
mov dword [rdx - 4], ecx
mov ecx, dword [rax - 0x30]
mov dword [rdx - 0x30], ecx
mov ecx, dword [rax - 0x2c]
mov dword [rdx - 0x1c], ecx
mov ecx, dword [rax - 0x28]
mov dword [rdx - 8], ecx
mov ecx, dword [rax - 0x24]
mov dword [rdx - 0x34], ecx
mov ecx, dword [rax - 0x20]
mov dword [rdx - 0x20], ecx
mov ecx, dword [rax - 0x1c]
mov dword [rdx - 0xc], ecx
mov ecx, dword [rax - 0x18]
mov dword [rdx - 0x38], ecx
mov ecx, dword [rax - 0x14]
mov dword [rdx - 0x24], ecx
mov ecx, dword [rax - 0x10]
mov dword [rdx - 0x10], ecx
mov ecx, dword [rax - 0xc]
mov dword [rdx - 0x3c], ecx
mov ecx, dword [rax - 8]
mov dword [rdx - 0x28], ecx
mov ecx, dword [rax - 4]
mov dword [rdx - 0x14], ecx
cmp r8, rax
jne 0x6491a0
jmp 0x648a90