Function at 0x5abf70
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
movups xmmword [rsp + 0x2e0], xmm6
movups xmmword [rsp + 0x2f0], xmm7
movups xmmword [rsp + 0x300], xmm8
movups xmmword [rsp + 0x310], xmm9
movups xmmword [rsp + 0x320], xmm10
movups xmmword [rsp + 0x330], xmm11
movups xmmword [rsp + 0x340], xmm12
movups xmmword [rsp + 0x350], xmm13
movups xmmword [rsp + 0x360], xmm14
movups xmmword [rsp + 0x370], xmm15
mov r14d, dword [r9]
lea r13, [rsp + 0x20f]
mov rbx, rdx
mov r12, r8
and r13, 0xffffffffffffffc0
cmp r14d, 5
je 0x5ac000
cmp r14d, 0xa
jne 0x5ac6f8
mov edi, dword [r9 + 4]
lea eax, [rdi - 0x400]
mov dword [rsp + 0x64], edi
cmp eax, 0x7fc00
ja 0x5ac6f8
mov eax, dword [r9 + 8]
lea edx, [rax - 8]
cmp edx, 0x18
ja 0x5ac6f8
lea edx, [rdi - 1]
and edx, edi
mov dword [rsp + 0xdc], edx
jne 0x5ac6f8
mov rdi, qword [r9 + 0x10]
mov rbp, qword [r9 + 0x18]
test rdi, rdi
jne 0x5ac051
test rbp, rbp
jne 0x5ac6f8
mov ecx, dword [rsp + 0x64]
mov esi, eax
mov qword [rsp + 0xb8], rsi
shl rsi, 7
mov qword [rsp + 0xe0], rsi
imul rcx, rsi
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x68], rax
test rax, rax
je 0x5ae22d
mov rcx, rsi
call sub.msvcrt.dll_malloc
mov r15, rax
test rax, rax
je 0x5ae224
mov rcx, rsi
call sub.msvcrt.dll_malloc
mov rsi, rax
test rax, rax
je 0x5ae21b
mov dword [rsp + 0x150], r14d
cmp r14d, 5
je 0x5ae1b0
movdqu xmm0, xmmword [0x00646760]
mov edx, 0x8000
mov ecx, 0x18000
mov dword [rsp + 0x50], 0x7ff0
movups xmmword [rsp + 0x154], xmm0
mov qword [rsp + 0x48], rdx
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x128], rax
test rax, rax
je 0x5ae212
mov rdx, qword [rsp + 0x48]
movq xmm4, rax
xor r9d, r9d
xor r8d, r8d
mov rcx, r13
movddup xmm0, xmm4
mov qword [rsp + 0x188], 0
movups xmmword [rsp + 0x168], xmm0
add rax, rdx
mov qword [rsp + 0x178], rax
add rax, rdx
mov edx, 0x20
mov qword [rsp + 0x180], rax
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x164], eax
call fcn.0043ee70
mov rdx, rbx
mov rcx, r13
mov r8, r12
call fcn.0043f080
lea rax, [rsp + 0x130]
mov rcx, r13
mov rdx, rax
mov qword [rsp + 0xe8], rax
call fcn.0043f110
cmp r14d, 5
je 0x5ae1e0
test rdi, rdi
je 0x5ae1f0
mov edx, 0x20
mov qword [rsp + 0x28], r15
mov r9, rbp
mov r8, rdi
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x20], 1
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x30], rax
call fcn.0059d3a0
mov eax, dword [rsp + 0x64]
mov edx, 0xaaaaaaab
mov dword [rsp + 0x124], 0
mov ebx, dword [rsp + 0x150]
movdqu xmm6, xmmword [r15]
movdqu xmm4, xmmword [r15 + 0x10]
add eax, 2
movups xmmword [rsp + 0x130], xmm6
imul rax, rdx
movups xmmword [rsp + 0x140], xmm4
mov dword [rsp + 0xa0], ebx
shr rax, 0x21
lea edx, [rax + 1]
and edx, 0xfffffffe
mov dword [rsp + 0x120], edx
cmp ebx, 5
jne 0x5ac22d
and eax, 0xfffffffe
mov ebx, edx
sub ebx, eax
mov dword [rsp + 0x120], eax
mov dword [rsp + 0x124], ebx
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 [rsi + 0xc], ecx
mov dword [rsi + 0x24], edx
mov dword [rsp + 0x50], eax
mov dword [rsi], eax
mov eax, dword [r15 + 0x14]
mov dword [rsp + 0xa4], eax
mov dword [rsi + 4], eax
mov eax, dword [r15 + 0x28]
mov dword [rsp + 0xb0], eax
mov dword [rsi + 8], eax
mov eax, dword [r15 + 0x10]
mov dword [rsp + 0xc0], eax
mov dword [rsi + 0x10], eax
mov eax, dword [r15 + 0x24]
mov dword [rsp + 0xc8], eax
mov dword [rsi + 0x14], eax
mov eax, dword [r15 + 0x38]
mov dword [rsp + 0x90], eax
mov dword [rsi + 0x18], eax
mov eax, dword [r15 + 0xc]
mov dword [rsp + 0x80], eax
mov dword [rsi + 0x1c], eax
mov eax, dword [r15 + 0x20]
mov dword [rsp + 0x11c], eax
mov dword [rsi + 0x20], eax
mov eax, dword [r15 + 8]
mov dword [rsp + 0x70], eax
mov dword [rsi + 0x28], eax
mov eax, dword [r15 + 0x30]
mov r12d, dword [r15 + 0x1c]
mov r13d, dword [r15 + 4]
mov ebp, dword [r15 + 0x2c]
mov dword [rsp + 0x118], eax
mov r11d, dword [r15 + 0x54]
mov dword [rsi + 0x30], eax
mov eax, dword [r15 + 0x18]
mov r14d, dword [r15 + 0x7c]
mov dword [rsi + 0x2c], r12d
mov r9d, dword [r15 + 0x64]
mov dword [rsi + 0x34], r13d
mov edi, dword [r15 + 0x4c]
mov dword [rsi + 0x3c], ebp
mov dword [rsp + 0xd0], eax
mov dword [rsi + 0x38], eax
mov eax, dword [r15 + 0x40]
mov dword [rsi + 0x44], r11d
mov dword [rsi + 0x4c], r14d
mov dword [rsi + 0x54], r9d
mov dword [rsp + 0xf0], eax
mov dword [rsi + 0x40], eax
mov eax, dword [r15 + 0x68]
mov dword [rsi + 0x5c], edi
mov dword [rsp + 0xf8], eax
mov dword [rsi + 0x48], eax
mov eax, dword [r15 + 0x50]
mov dword [rsp + 0xfc], eax
mov dword [rsi + 0x50], eax
mov eax, dword [r15 + 0x78]
mov dword [rsp + 0x100], eax
mov dword [rsi + 0x58], eax
mov eax, dword [r15 + 0x60]
mov r10d, dword [r15 + 0x58]
mov r8d, dword [r15 + 0x74]
mov ebx, dword [r15 + 0x5c]
mov dword [rsp + 0x104], eax
mov dword [rsi + 0x60], eax
mov eax, dword [r15 + 0x48]
mov dword [rsp + 0x114], r10d
mov dword [rsi + 0x78], r10d
mov r10d, dword [r15 + 0x6c]
mov dword [rsi + 0x64], r8d
mov dword [rsp + 0x108], eax
mov dword [rsi + 0x68], eax
mov eax, dword [r15 + 0x70]
mov dword [rsi + 0x6c], ebx
mov dword [rsi + 0x7c], r10d
mov dword [rsp + 0x10c], eax
mov dword [rsi + 0x70], eax
mov eax, dword [r15 + 0x44]
mov dword [rsp + 0x110], eax
mov dword [rsi + 0x74], eax
mov eax, dword [rsp + 0x160]
shr eax, 7
mov dword [rsp + 0xd8], eax
je 0x5ae200
mov ecx, eax
mov eax, 1
mov r12, qword [rsp + 0xa8]
mov qword [rsp + 0xf0], r15
sub ecx, 1
cmove eax, ecx
xor ebp, ebp
lea edi, [rax + 1]
mov dword [rsp + 0xb0], eax
lea rax, [rsi + 0x10]
mov dword [rsp + 0xf8], edi
mov edi, ebp
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x150]
mov qword [rsp + 0x48], rax
lea rax, [rsi + 0x80]
mov qword [rsp + 0xc8], rax
lea rax, [rsp + 0x190]
mov qword [rsp + 0xd0], rax
jmp 0x5ac453
mov rdx, qword [rsp + 0x48]
mov rcx, rsi
call fcn.005abd10
lea eax, [rdi + 1]
sub r12, 0xffffffffffffff80
cmp edi, dword [rsp + 0xb0]
je 0x5ac7a0
mov edi, eax
lea rax, [r12 + 0x10]
cmp rsi, rax
jae 0x5ac468
cmp qword [rsp + 0x50], r12
ja 0x5ac780
movdqu xmm7, xmmword [rsi]
movups xmmword [r12], xmm7
movdqu xmm5, xmmword [rsi + 0x10]
movups xmmword [r12 + 0x10], xmm5
movdqu xmm7, xmmword [rsi + 0x20]
movups xmmword [r12 + 0x20], xmm7
movdqu xmm5, xmmword [rsi + 0x30]
movups xmmword [r12 + 0x30], xmm5
movdqu xmm7, xmmword [rsi + 0x40]
movups xmmword [r12 + 0x40], xmm7
movdqu xmm5, xmmword [rsi + 0x50]
movups xmmword [r12 + 0x50], xmm5
movdqu xmm7, xmmword [rsi + 0x60]
movups xmmword [r12 + 0x60], xmm7
movdqu xmm5, xmmword [rsi + 0x70]
movups xmmword [r12 + 0x70], xmm5
mov rax, qword [rsp + 0xa8]
cmp rax, qword [rsp + 0x168]
jne 0x5ac430
mov eax, dword [rsp + 0x154]
mov ebx, dword [rsi + 0x70]
mov r15d, dword [rsi + 0x44]
mov r14d, dword [rsi + 0x4c]
mov dword [rsp + 0xc0], eax
mov eax, dword [rsi + 0x40]
mov r13d, dword [rsi + 0x54]
mov dword [rsp + 0xa4], ebx
mov rbx, rsi
mov r8d, dword [rsi + 0x58]
mov ebp, dword [rsi + 0x5c]
mov dword [rsp + 0x70], eax
mov eax, dword [rsi + 0x48]
mov ecx, dword [rsi + 0x68]
mov r11d, dword [rsi + 0x6c]
mov r10d, dword [rsi + 0x74]
mov dword [rsp + 0x80], eax
mov eax, dword [rsi + 0x50]
mov edx, dword [rsi + 0x78]
mov r9d, dword [rsi + 0x7c]
mov dword [rsp + 0x90], eax
mov eax, dword [rsi + 0x60]
mov dword [rsp + 0xa0], eax
mov eax, dword [rsi + 0x64]
movd xmm0, r8d
movdqu xmm5, xmmword [rbx + 0x10]
movd xmm3, edx
add rbx, 0x40
movd xmm2, dword [rsp + 0x90]
pinsrd xmm0, ebp, 1
pinsrd xmm3, r9d, 1
movd xmm1, dword [rsp + 0xa0]
pinsrd xmm2, r13d, 1
punpcklqdq xmm2, xmm0
movd xmm0, ecx
movdqu xmm7, xmmword [rbx - 0x20]
pinsrd xmm0, r11d, 1
pinsrd xmm1, eax, 1
punpcklqdq xmm1, xmm0
mov edx, dword [rsp + 0xc0]
mov rcx, qword [rsp + 0xd0]
pxor xmm2, xmm5
pxor xmm1, xmm7
movups xmmword [rsp + 0x1a0], xmm2
movdqu xmm5, xmmword [rbx - 0x10]
movups xmmword [rsp + 0x1b0], xmm1
movd xmm0, dword [rsp + 0xa4]
movdqu xmm7, xmmword [rbx - 0x40]
movd xmm4, dword [rsp + 0x80]
pinsrd xmm0, r10d, 1
punpcklqdq xmm0, xmm3
pxor xmm0, xmm5
movd xmm3, dword [rsp + 0x70]
movups xmmword [rsp + 0x1c0], xmm0
pinsrd xmm4, r14d, 1
pinsrd xmm3, r15d, 1
punpcklqdq xmm3, xmm4
pxor xmm3, xmm7
movups xmmword [rsp + 0x190], xmm3
call fcn.005aa020
mov eax, dword [rsp + 0x190]
movdqu xmm2, xmmword [rsp + 0x190]
mov edx, dword [rsp + 0x1c0]
movups xmmword [rbx - 0x40], xmm2
mov r15d, dword [rsp + 0x194]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x198]
movdqu xmm2, xmmword [rsp + 0x1a0]
movdqu xmm5, xmmword [rsp + 0x1b0]
mov dword [rsp + 0xa4], edx
movups xmmword [rbx - 0x30], xmm2
mov r14d, dword [rsp + 0x19c]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x1a0]
movdqu xmm2, xmmword [rsp + 0x1c0]
movups xmmword [rbx - 0x20], xmm5
mov r13d, dword [rsp + 0x1a4]
movups xmmword [rbx - 0x10], xmm2
mov r8d, dword [rsp + 0x1a8]
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x1b0]
mov ebp, dword [rsp + 0x1ac]
mov ecx, dword [rsp + 0x1b8]
mov r11d, dword [rsp + 0x1bc]
mov dword [rsp + 0xa0], eax
mov r10d, dword [rsp + 0x1c4]
mov eax, dword [rsp + 0x1b4]
mov edx, dword [rsp + 0x1c8]
mov r9d, dword [rsp + 0x1cc]
cmp rbx, qword [rsp + 0xc8]
jne 0x5ac53c
jmp 0x5ac43d
call qword [sym.imp.msvcrt.dll__errno]
mov r12d, 0xffffffff
mov dword [rax], 0x16
movups xmm6, xmmword [rsp + 0x2e0]
mov eax, r12d
movups xmm7, xmmword [rsp + 0x2f0]
movups xmm8, xmmword [rsp + 0x300]
movups xmm9, xmmword [rsp + 0x310]
movups xmm10, xmmword [rsp + 0x320]
movups xmm11, xmmword [rsp + 0x330]
movups xmm12, xmmword [rsp + 0x340]
movups xmm13, xmmword [rsp + 0x350]
movups xmm14, xmmword [rsp + 0x360]
movups 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 [rax + rax]
mov edx, dword [rsi + rax]
mov dword [r12 + rax], edx
add rax, 4
cmp rax, 0x80
jne 0x5ac788
jmp 0x5ac4be
mov eax, dword [rsp + 0xf8]
mov rbx, qword [rsp + 0xa8]
mov r15, qword [rsp + 0xf0]
mov rdi, rax
shl rax, 7
lea rbp, [rbx + rax]
lea rax, [rsi + 0x80]
mov qword [rsp + 0xc0], rax
lea rax, [rsp + 0x190]
mov qword [rsp + 0xc8], rax
cmp dword [rsp + 0xd8], edi
jbe 0x5ac965
mov r12d, edi
mov rdi, qword [rsp + 0xa8]
mov qword [rsp + 0xd0], r15
nop dword [rax]
lea rax, [rbp + 0x10]
cmp rsi, rax
jae 0x5ac81c
cmp qword [rsp + 0x50], rbp
ja 0x5ae170
movdqu xmm7, xmmword [rsi]
movups xmmword [rbp], xmm7
movdqu xmm5, xmmword [rsi + 0x10]
movups xmmword [rbp + 0x10], xmm5
movdqu xmm2, xmmword [rsi + 0x20]
movups xmmword [rbp + 0x20], xmm2
movdqu xmm7, xmmword [rsi + 0x30]
movups xmmword [rbp + 0x30], xmm7
movdqu xmm5, xmmword [rsi + 0x40]
movups xmmword [rbp + 0x40], xmm5
movdqu xmm2, xmmword [rsi + 0x50]
movups xmmword [rbp + 0x50], xmm2
movdqu xmm7, xmmword [rsi + 0x60]
movups xmmword [rbp + 0x60], xmm7
movdqu xmm5, xmmword [rsi + 0x70]
movups xmmword [rbp + 0x70], xmm5
mov ecx, dword [rsi + 0x40]
mov eax, r12d
nop dword [rax]
lea edx, [rax - 1]
mov r8d, eax
and eax, edx
jne 0x5ac870
and edx, ecx
sub edx, r8d
lea eax, [rdx + r12]
shl rax, 7
lea rdx, [rdi + rax]
lea rax, [rdi + rax + 0x10]
cmp rsi, rax
jae 0x5ac8a0
cmp qword [rsp + 0x50], rdx
ja 0x5ae190
movdqu xmm0, xmmword [rdx]
movdqu xmm2, xmmword [rsi]
movdqu xmm7, xmmword [rsi + 0x10]
pxor xmm0, xmm2
movups xmmword [rsi], xmm0
movdqu xmm0, xmmword [rax]
movdqu xmm5, xmmword [rsi + 0x20]
pxor xmm0, xmm7
movups xmmword [rsi + 0x10], xmm0
movdqu xmm0, xmmword [rax + 0x10]
movdqu xmm4, xmmword [rsi + 0x30]
pxor xmm0, xmm5
movups xmmword [rsi + 0x20], xmm0
movdqu xmm0, xmmword [rax + 0x20]
movdqu xmm6, xmmword [rsi + 0x40]
pxor xmm0, xmm4
movups xmmword [rsi + 0x30], xmm0
movdqu xmm0, xmmword [rax + 0x30]
movdqu xmm2, xmmword [rsi + 0x50]
pxor xmm0, xmm6
movups xmmword [rsi + 0x40], xmm0
movdqu xmm0, xmmword [rax + 0x40]
movdqu xmm7, xmmword [rsi + 0x60]
pxor xmm0, xmm2
movups xmmword [rsi + 0x50], xmm0
movdqu xmm0, xmmword [rax + 0x50]
movdqu xmm5, xmmword [rsi + 0x70]
pxor xmm0, xmm7
movups xmmword [rsi + 0x60], xmm0
movdqu xmm0, xmmword [rax + 0x60]
pxor xmm0, xmm5
movups xmmword [rsi + 0x70], xmm0
cmp rdi, qword [rsp + 0x168]
je 0x5adf38
mov rdx, qword [rsp + 0x48]
mov rcx, rsi
call fcn.005abd10
add r12d, 1
sub rbp, 0xffffffffffffff80
cmp dword [rsp + 0xd8], r12d
jne 0x5ac808
mov r15, qword [rsp + 0xd0]
mov eax, dword [rsi]
mov ecx, dword [rsi + 0xc]
mov edx, dword [rsi + 0x24]
mov r12d, dword [rsi + 0x2c]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x150]
mov r13d, dword [rsi + 0x34]
mov ebp, dword [rsi + 0x3c]
mov r11d, dword [rsi + 0x44]
mov dword [rsp + 0xa0], eax
mov eax, dword [rsi + 4]
mov dword [rsp + 0xa4], eax
mov eax, dword [rsi + 8]
mov dword [rsp + 0xb0], eax
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0xc0], eax
mov eax, dword [rsi + 0x14]
mov dword [rsp + 0xc8], eax
mov eax, dword [rsi + 0x18]
mov dword [rsp + 0x90], eax
mov eax, dword [rsi + 0x1c]
mov dword [rsp + 0x80], eax
mov eax, dword [rsi + 0x20]
mov dword [rsp + 0x11c], eax
mov eax, dword [rsi + 0x28]
mov dword [rsp + 0x70], eax
mov eax, dword [rsi + 0x30]
mov dword [rsp + 0x118], eax
mov eax, dword [rsi + 0x38]
mov dword [rsp + 0xd0], eax
mov eax, dword [rsi + 0x40]
mov dword [rsp + 0xf0], eax
mov eax, dword [rsi + 0x48]
mov r14d, dword [rsi + 0x4c]
mov r9d, dword [rsi + 0x54]
mov edi, dword [rsi + 0x5c]
mov dword [rsp + 0xf8], eax
mov eax, dword [rsi + 0x50]
mov r8d, dword [rsi + 0x64]
mov ebx, dword [rsi + 0x6c]
mov r10d, dword [rsi + 0x7c]
mov dword [rsp + 0xfc], eax
mov eax, dword [rsi + 0x58]
mov dword [rsp + 0x100], eax
mov eax, dword [rsi + 0x60]
mov dword [rsp + 0x104], eax
mov eax, dword [rsi + 0x68]
mov dword [rsp + 0x108], eax
mov eax, dword [rsi + 0x70]
mov dword [rsp + 0x10c], eax
mov eax, dword [rsi + 0x74]
mov dword [rsp + 0x110], eax
mov eax, dword [rsi + 0x78]
mov dword [rsp + 0x114], eax
movd xmm0, dword [rsp + 0x50]
movd xmm1, dword [rsp + 0x70]
pinsrd xmm1, dword [rsp + 0x80], 1
pinsrd xmm0, r13d, 1
punpcklqdq xmm0, xmm1
movups xmmword [r15], xmm0
movd xmm1, dword [rsp + 0xd0]
movd xmm0, dword [rsp + 0xc0]
pinsrd xmm0, dword [rsp + 0xa4], 1
pinsrd xmm1, r12d, 1
punpcklqdq xmm0, xmm1
movups xmmword [r15 + 0x10], xmm0
movd xmm1, dword [rsp + 0xb0]
movd xmm0, dword [rsp + 0x11c]
pinsrd xmm0, dword [rsp + 0xc8], 1
pinsrd xmm1, ebp, 1
punpcklqdq xmm0, xmm1
movups xmmword [r15 + 0x20], xmm0
movd xmm1, dword [rsp + 0x90]
movd xmm0, dword [rsp + 0x118]
pinsrd xmm1, ecx, 1
pinsrd xmm0, edx, 1
punpcklqdq xmm0, xmm1
movups xmmword [r15 + 0x30], xmm0
mov rdx, r15
movd xmm1, dword [rsp + 0x108]
movd xmm0, dword [rsp + 0xf0]
pinsrd xmm0, dword [rsp + 0x110], 1
pinsrd xmm1, edi, 1
punpcklqdq xmm0, xmm1
movups xmmword [r15 + 0x40], xmm0
movd xmm1, dword [rsp + 0x114]
movd xmm0, dword [rsp + 0xfc]
pinsrd xmm1, ebx, 1
mov rbx, qword [rsp + 0xb8]
pinsrd xmm0, r11d, 1
punpcklqdq xmm0, xmm1
movups xmmword [r15 + 0x50], xmm0
movd xmm1, dword [rsp + 0xf8]
movd xmm0, dword [rsp + 0x104]
pinsrd xmm1, r10d, 1
lea rax, [rbx + rbx]
mov rbp, rbx
shr rbx, 1
pinsrd xmm0, r9d, 1
mov rcx, rbx
punpcklqdq xmm0, xmm1
movups xmmword [r15 + 0x60], xmm0
shl rbp, 5
movd xmm1, dword [rsp + 0x100]
shl rcx, 8
mov qword [rsp + 0xc8], rax
mov rax, rsi
movd xmm0, dword [rsp + 0x10c]
add rcx, rsi
pinsrd xmm1, r14d, 1
pinsrd xmm0, r8d, 1
punpcklqdq xmm0, xmm1
movups xmmword [r15 + 0x70], xmm0
nop dword [rax]
movdqu xmm3, xmmword [rdx]
add rax, 0x100
add rdx, 0x100
movdqu xmm6, xmmword [rdx - 0xf0]
movdqu xmm15, xmmword [rdx - 0xe0]
movdqu xmm4, xmm3
movdqu xmm5, xmmword [rdx - 0xc0]
shufps xmm4, xmm6, 0x88
shufps xmm3, xmm6, 0xdd
movdqu xmm13, xmmword [rdx - 0xd0]
movdqu xmm6, xmm15
movdqu xmm12, xmmword [rdx - 0xb0]
shufps xmm6, xmm13, 0x88
movdqu xmm1, xmmword [rdx - 0x80]
shufps xmm15, xmm13, 0xdd
movdqu xmm13, xmm5
movups xmmword [rsp + 0x50], xmm15
shufps xmm13, xmm12, 0x88
movdqu xmm15, xmm13
movdqu xmm14, xmmword [rdx - 0xa0]
movdqu xmm10, xmmword [rdx - 0x90]
shufps xmm5, xmm12, 0xdd
movdqu xmm8, xmmword [rdx - 0x70]
movdqu xmm13, xmm14
movdqu xmm11, xmmword [rdx - 0x60]
shufps xmm13, xmm10, 0x88
movdqu xmm12, xmm13
movdqu xmm13, xmm1
movdqu xmm7, xmmword [rdx - 0x50]
shufps xmm13, xmm8, 0x88
shufps xmm1, xmm8, 0xdd
shufps xmm14, xmm10, 0xdd
movdqu xmm0, xmmword [rdx - 0x40]
movdqu xmm8, xmm11
movdqu xmm9, xmmword [rdx - 0x30]
shufps xmm8, xmm7, 0x88
shufps xmm11, xmm7, 0xdd
movdqu xmm2, xmmword [rdx - 0x20]
movdqu xmm7, xmm0
movdqu xmm10, xmmword [rdx - 0x10]
shufps xmm7, xmm9, 0x88
shufps xmm0, xmm9, 0xdd
movdqu xmm9, xmm2
shufps xmm9, xmm10, 0x88
shufps xmm2, xmm10, 0xdd
movdqu xmm10, xmm4
shufps xmm4, xmm6, 0xdd
shufps xmm10, xmm6, 0x88
movdqu xmm6, xmm15
shufps xmm15, xmm12, 0xdd
movups xmmword [rsp + 0x70], xmm15
shufps xmm6, xmm12, 0x88
movdqu xmm12, xmm13
shufps xmm13, xmm8, 0xdd
shufps xmm12, xmm8, 0x88
movdqu xmm8, xmm7
movdqu xmm15, xmm12
movdqu xmm12, xmmword [rsp + 0x50]
shufps xmm8, xmm9, 0x88
shufps xmm7, xmm9, 0xdd
movdqu xmm9, xmm3
shufps xmm9, xmm12, 0x88
shufps xmm3, xmm12, 0xdd
movdqu xmm12, xmm5
shufps xmm5, xmm14, 0xdd
shufps xmm12, xmm14, 0x88
movdqu xmm14, xmm1
shufps xmm1, xmm11, 0xdd
shufps xmm14, xmm11, 0x88
movdqu xmm11, xmm0
shufps xmm0, xmm2, 0xdd
shufps xmm11, xmm2, 0x88
movdqu xmm2, xmm10
shufps xmm10, xmm6, 0xdd
shufps xmm2, xmm6, 0x88
movdqu xmm6, xmm15
shufps xmm15, xmm8, 0xdd
shufps xmm6, xmm8, 0x88
movdqu xmm8, xmm9
shufps xmm9, xmm12, 0xdd
movups xmmword [rsp + 0x80], xmm9
shufps xmm8, xmm12, 0x88
movdqu xmm9, xmmword [rsp + 0x70]
movdqu xmm12, xmm14
shufps xmm14, xmm11, 0xdd
shufps xmm12, xmm11, 0x88
movdqu xmm11, xmm4
shufps xmm11, xmm9, 0x88
shufps xmm4, xmm9, 0xdd
movdqu xmm9, xmm13
shufps xmm13, xmm7, 0xdd
shufps xmm9, xmm7, 0x88
movdqu xmm7, xmm3
shufps xmm3, xmm5, 0xdd
shufps xmm7, xmm5, 0x88
movdqu xmm5, xmm1
shufps xmm1, xmm0, 0xdd
shufps xmm5, xmm0, 0x88
movdqu xmm0, xmm2
shufps xmm2, xmm6, 0xdd
shufps xmm0, xmm6, 0x88
movdqu xmm6, xmm8
shufps xmm8, xmm12, 0xdd
shufps xmm6, xmm12, 0x88
movdqu xmm12, xmm11
shufps xmm11, xmm9, 0xdd
shufps xmm12, xmm9, 0x88
movdqu xmm9, xmm7
shufps xmm7, xmm5, 0xdd
movups xmmword [rsp + 0x50], xmm7
shufps xmm9, xmm5, 0x88
movdqu xmm5, xmm10
shufps xmm10, xmm15, 0xdd
movups xmmword [rsp + 0x70], xmm9
shufps xmm5, xmm15, 0x88
movdqu xmm7, xmm5
movdqu xmm15, xmmword [rsp + 0x80]
movdqu xmm5, xmm15
shufps xmm15, xmm14, 0xdd
shufps xmm5, xmm14, 0x88
movdqu xmm14, xmm4
shufps xmm4, xmm13, 0xdd
shufps xmm14, xmm13, 0x88
movdqu xmm13, xmm3
shufps xmm3, xmm1, 0xdd
shufps xmm13, xmm1, 0x88
movdqu xmm1, xmm0
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
movdqu xmm2, xmm5
punpckhdq xmm5, xmm15
punpckldq xmm2, xmm15
movdqu xmm15, xmm11
punpckhdq xmm11, xmm12
punpckldq xmm15, xmm12
movdqu xmm12, xmm3
movdqu xmm9, xmm15
punpckhdq xmm3, xmm13
movdqu xmm15, xmm3
movdqu xmm3, xmm7
punpckhdq xmm7, xmm10
punpckldq xmm12, xmm13
punpckldq xmm3, xmm10
movdqu xmm10, xmm8
movdqu xmm13, xmm4
punpckhdq xmm8, xmm6
punpckldq xmm10, xmm6
movdqu xmm6, xmm4
movdqu xmm4, xmmword [rsp + 0x70]
punpckldq xmm13, xmm14
punpckhdq xmm6, xmm14
movdqu xmm14, xmm4
punpckhdq xmm4, xmmword [rsp + 0x50]
punpckldq xmm14, xmmword [rsp + 0x50]
movups xmmword [rsp + 0x80], xmm14
movdqu xmm14, xmm4
movdqu xmm4, xmm1
punpckhdq xmm1, xmm3
punpckldq xmm4, xmm3
movdqu xmm3, xmm0
punpckhdq xmm0, xmm7
punpckldq xmm3, xmm7
movdqu xmm7, xmm2
punpckhdq xmm2, xmm10
punpckldq xmm7, xmm10
movdqu xmm10, xmm5
punpckhdq xmm5, xmm8
punpckldq xmm10, xmm8
movdqu xmm8, xmm9
movups xmmword [rsp + 0x70], xmm10
punpckhdq xmm9, xmm13
punpckldq xmm8, xmm13
movdqu xmm13, xmm11
movdqu xmm10, xmm8
movdqu xmm8, xmm11
movdqu xmm11, xmmword [rsp + 0x80]
punpckldq xmm8, xmm6
punpckhdq xmm13, xmm6
movdqu xmm6, xmm13
movdqu xmm13, xmm12
punpckldq xmm13, xmm11
punpckhdq xmm12, xmm11
movdqu xmm11, xmm15
punpckhdq xmm15, xmm14
punpckldq xmm11, xmm14
movdqu xmm14, xmm4
punpckhdq xmm4, xmm10
movups xmmword [rsp + 0x50], xmm15
punpckldq xmm14, xmm10
movdqu xmm10, xmm1
punpckhdq xmm1, xmm9
movdqu xmm15, xmm14
punpckldq xmm10, xmm9
movdqu xmm9, xmm3
punpckhdq xmm3, xmm8
movdqu xmm14, xmm7
punpckldq xmm9, xmm8
movdqu xmm8, xmm0
punpckhdq xmm0, xmm6
movups xmmword [rsp + 0x80], xmm0
punpckldq xmm8, xmm6
movdqu xmm6, xmmword [rsp + 0x70]
punpckldq xmm14, xmm13
movdqu xmm0, xmm5
punpckhdq xmm7, xmm13
movdqu xmm13, xmm2
punpckhdq xmm2, xmm12
punpckldq xmm0, xmmword [rsp + 0x50]
punpckldq xmm13, xmm12
movdqu xmm12, xmm6
punpckhdq xmm6, xmm11
punpckhdq xmm5, xmmword [rsp + 0x50]
punpckldq xmm12, xmm11
movdqu xmm11, xmm0
movdqu xmm0, xmm15
punpckhdq xmm15, xmm14
punpckldq xmm0, xmm14
movdqu xmm14, xmm4
punpckhdq xmm4, xmm7
movups xmmword [rax - 0xd0], xmm4
movdqu xmm4, xmm10
punpckldq xmm14, xmm7
punpckhdq xmm10, xmm13
movups xmmword [rax - 0x100], xmm0
punpckldq xmm4, xmm13
movups xmmword [rax - 0xc0], xmm4
movdqu xmm4, xmm1
punpckhdq xmm1, xmm2
movups xmmword [rax - 0x90], xmm1
movdqu xmm1, xmm9
punpckldq xmm4, xmm2
movdqu xmm2, xmmword [rsp + 0x80]
punpckldq xmm1, xmm12
movups xmmword [rax - 0x80], xmm1
movdqu xmm1, xmm3
punpckhdq xmm9, xmm12
punpckldq xmm1, xmm6
movups xmmword [rax - 0x60], xmm1
movdqu xmm1, xmm8
punpckhdq xmm3, xmm6
punpckldq xmm1, xmm11
movups xmmword [rax - 0x40], xmm1
movdqu xmm1, xmm2
punpckhdq xmm8, xmm11
punpckldq xmm1, xmm5
punpckhdq xmm2, xmm5
movups xmmword [rax - 0xf0], xmm15
movups xmmword [rax - 0xe0], xmm14
movups xmmword [rax - 0xb0], xmm10
movups xmmword [rax - 0xa0], xmm4
movups xmmword [rax - 0x70], xmm9
movups xmmword [rax - 0x50], xmm3
movups xmmword [rax - 0x30], xmm8
movups xmmword [rax - 0x20], xmm1
movups xmmword [rax - 0x10], xmm2
cmp rcx, rax
jne 0x5acbe0
mov rbx, qword [rsp + 0xc8]
mov rdx, rbx
and rdx, 0xfffffffffffffffc
cmp rdx, rbx
je 0x5ad337
mov rax, rdx
shl rax, 6
mov ecx, dword [r15 + rax]
mov dword [rsi + rax], ecx
mov rcx, rdx
shl rcx, 4
add rcx, 5
mov r8d, dword [r15 + rcx*4]
lea rax, [rcx*4]
mov dword [rsi + rax - 0x10], r8d
mov r8d, dword [r15 + rax + 0x14]
mov dword [rsi + rax - 0xc], r8d
mov r8d, dword [r15 + rax + 0x28]
mov dword [rsi + rax - 8], r8d
mov r8d, dword [r15 + rax - 4]
mov dword [rsi + rax - 4], r8d
mov r8d, dword [r15 + rax + 0x10]
mov dword [rsi + rcx*4], r8d
mov ecx, dword [r15 + rax + 0x24]
mov dword [rsi + rax + 4], ecx
mov ecx, dword [r15 + rax - 8]
mov dword [rsi + rax + 8], ecx
mov ecx, dword [r15 + rax + 0xc]
mov dword [rsi + rax + 0xc], ecx
mov ecx, dword [r15 + rax + 0x20]
mov dword [rsi + rax + 0x10], ecx
mov ecx, dword [r15 + rax - 0xc]
mov dword [rsi + rax + 0x14], ecx
mov ecx, dword [r15 + rax + 8]
mov dword [rsi + rax + 0x18], ecx
mov ecx, dword [r15 + rax + 0x1c]
mov dword [rsi + rax + 0x1c], ecx
mov ecx, dword [r15 + rax - 0x10]
mov dword [rsi + rax + 0x20], ecx
mov ecx, dword [r15 + rax + 4]
mov dword [rsi + rax + 0x24], ecx
mov ecx, dword [r15 + rax + 0x18]
mov dword [rsi + rax + 0x28], ecx
lea rax, [rdx + 1]
cmp rax, rbx
jae 0x5ad337
mov rcx, rax
shl rax, 4
add rdx, 2
shl rcx, 6
mov r8d, dword [r15 + rcx]
mov dword [rsi + rcx], r8d
lea rcx, [rax + 5]
mov r8d, dword [r15 + rcx*4]
lea rax, [rcx*4]
mov dword [rsi + rax - 0x10], r8d
mov r8d, dword [r15 + rax + 0x14]
mov dword [rsi + rax - 0xc], r8d
mov r8d, dword [r15 + rax + 0x28]
mov dword [rsi + rax - 8], r8d
mov r8d, dword [r15 + rax - 4]
mov dword [rsi + rax - 4], r8d
mov r8d, dword [r15 + rax + 0x10]
mov dword [rsi + rcx*4], r8d
mov ecx, dword [r15 + rax + 0x24]
mov dword [rsi + rax + 4], ecx
mov ecx, dword [r15 + rax - 8]
mov dword [rsi + rax + 8], ecx
mov ecx, dword [r15 + rax + 0xc]
mov dword [rsi + rax + 0xc], ecx
mov ecx, dword [r15 + rax + 0x20]
mov dword [rsi + rax + 0x10], ecx
mov ecx, dword [r15 + rax - 0xc]
mov dword [rsi + rax + 0x14], ecx
mov ecx, dword [r15 + rax + 8]
mov dword [rsi + rax + 0x18], ecx
mov ecx, dword [r15 + rax + 0x1c]
mov dword [rsi + rax + 0x1c], ecx
mov ecx, dword [r15 + rax - 0x10]
mov dword [rsi + rax + 0x20], ecx
mov ecx, dword [r15 + rax + 4]
mov dword [rsi + rax + 0x24], ecx
mov ecx, dword [r15 + rax + 0x18]
mov dword [rsi + rax + 0x28], ecx
cmp rdx, rbx
jae 0x5ad337
mov rax, rdx
shl rdx, 4
shl rax, 6
add rdx, 5
mov ecx, dword [r15 + rax]
mov dword [rsi + rax], ecx
mov ecx, dword [r15 + rdx*4]
lea rax, [rdx*4]
mov dword [rsi + rax - 0x10], ecx
mov ecx, dword [r15 + rax + 0x14]
mov dword [rsi + rax - 0xc], ecx
mov ecx, dword [r15 + rax + 0x28]
mov dword [rsi + rax - 8], ecx
mov ecx, dword [r15 + rax - 4]
mov dword [rsi + rax - 4], ecx
mov ecx, dword [r15 + rax + 0x10]
mov dword [rsi + rdx*4], ecx
mov edx, dword [r15 + rax + 0x24]
mov dword [rsi + rax + 4], edx
mov edx, dword [r15 + rax - 8]
mov dword [rsi + rax + 8], edx
mov edx, dword [r15 + rax + 0xc]
mov dword [rsi + rax + 0xc], edx
mov edx, dword [r15 + rax + 0x20]
mov dword [rsi + rax + 0x10], edx
mov edx, dword [r15 + rax - 0xc]
mov dword [rsi + rax + 0x14], edx
mov edx, dword [r15 + rax + 8]
mov dword [rsi + rax + 0x18], edx
mov edx, dword [r15 + rax + 0x1c]
mov dword [rsi + rax + 0x1c], edx
mov edx, dword [r15 + rax - 0x10]
mov dword [rsi + rax + 0x20], edx
mov edx, dword [r15 + rax + 4]
mov dword [rsi + rax + 0x24], edx
mov edx, dword [r15 + rax + 0x18]
mov dword [rsi + rax + 0x28], edx
mov rax, qword [rsp + 0xe0]
lea rdi, [rsi + 0x80]
cmp dword [rsp + 0xa0], 5
mov r12, qword [rsp + 0x48]
lea rbx, [rsi + rax]
je 0x5ad3d1
nop dword [rax]
movdqu xmm2, xmmword [rdi - 0x80]
mov rcx, rdi
mov rdx, r12
sub rdi, 0xffffffffffffff80
movdqu xmm7, xmmword [rdi - 0xf0]
movdqu xmm5, xmmword [rdi - 0xe0]
movups xmmword [rdi - 0x80], xmm2
movups xmmword [rdi - 0x70], xmm7
movdqu xmm2, xmmword [rdi - 0xd0]
movdqu xmm7, xmmword [rdi - 0xc0]
movups xmmword [rdi - 0x60], xmm5
movups xmmword [rdi - 0x50], xmm2
movdqu xmm5, xmmword [rdi - 0xb0]
movups xmmword [rdi - 0x40], xmm7
movdqu xmm2, xmmword [rdi - 0xa0]
movdqu xmm7, xmmword [rdi - 0x90]
movups xmmword [rdi - 0x30], xmm5
movups xmmword [rdi - 0x20], xmm2
movups xmmword [rdi - 0x10], xmm7
call fcn.005abd10
cmp rdi, rbx
jne 0x5ad360
lea rax, [rbp*4]
mov rdi, qword [rsp + 0x68]
mov qword [rsp + 0xd0], r15
mov r12, qword [rsp + 0xe0]
mov qword [rsp + 0xa8], rax
lea rax, [rsi + 0x80]
mov ebp, dword [rsp + 0xdc]
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0x190]
mov qword [rsp + 0xc0], rax
nop dword [rax]
mov r8, r12
mov rdx, rsi
mov rcx, rdi
call sub.msvcrt.dll_memcpy
cmp ebp, 1
jbe 0x5ad480
mov ecx, dword [rsi + r12 - 0x40]
mov eax, ebp
nop word [rax + rax]
lea edx, [rax - 1]
mov r8d, eax
and eax, edx
jne 0x5ad440
and edx, ecx
xor eax, eax
sub edx, r8d
add edx, ebp
imul rdx, r12
add rdx, qword [rsp + 0x68]
nop dword [rax]
movdqu xmm5, xmmword [rsi + rax]
movdqu xmm0, xmmword [rdx + rax]
pxor xmm0, xmm5
movups xmmword [rsi + rax], xmm0
add rax, 0x10
cmp qword [rsp + 0xa8], rax
jne 0x5ad460
mov rax, qword [rsp + 0x68]
cmp rax, qword [rsp + 0x168]
je 0x5add08
mov r8, qword [rsp + 0xb8]
mov rcx, rsi
mov rdx, qword [rsp + 0x48]
call fcn.005aa740
add ebp, 1
add rdi, r12
cmp dword [rsp + 0x64], ebp
jne 0x5ad420
mov rcx, qword [rsp + 0xc8]
mov rax, rsi
mov r15, qword [rsp + 0xd0]
shr rcx, 2
shl rcx, 8
mov rdx, r15
add rcx, rsi
nop dword [rax]
movdqu xmm3, xmmword [rax]
add rax, 0x100
add rdx, 0x100
movdqu xmm6, xmmword [rax - 0xf0]
movdqu xmm15, xmmword [rax - 0xe0]
movdqu xmm4, xmm3
movdqu xmm7, xmmword [rax - 0xc0]
shufps xmm4, xmm6, 0x88
shufps xmm3, xmm6, 0xdd
movdqu xmm14, xmmword [rax - 0xd0]
movdqu xmm6, xmm15
movdqu xmm13, xmmword [rax - 0xb0]
shufps xmm6, xmm14, 0x88
movdqu xmm1, xmmword [rax - 0x80]
shufps xmm15, xmm14, 0xdd
movdqu xmm14, xmm7
movdqu xmm9, xmmword [rax - 0x60]
shufps xmm14, xmm13, 0x88
shufps xmm7, xmm13, 0xdd
movups xmmword [rsp + 0x70], xmm15
movdqu xmm11, xmmword [rax - 0xa0]
movdqu xmm15, xmm14
movdqu xmm10, xmmword [rax - 0x90]
movdqu xmm14, xmm9
movdqu xmm12, xmmword [rax - 0x70]
movdqu xmm13, xmm11
movdqu xmm8, xmmword [rax - 0x50]
shufps xmm13, xmm10, 0x88
shufps xmm11, xmm10, 0xdd
movdqu xmm10, xmm1
movdqu xmm0, xmmword [rax - 0x40]
shufps xmm10, xmm12, 0x88
shufps xmm1, xmm12, 0xdd
movdqu xmm5, xmmword [rax - 0x30]
shufps xmm9, xmm8, 0xdd
shufps xmm14, xmm8, 0x88
movdqu xmm12, xmm14
movdqu xmm2, xmmword [rax - 0x20]
movdqu xmm14, xmm0
movdqu xmm8, xmmword [rax - 0x10]
shufps xmm14, xmm5, 0x88
shufps xmm0, xmm5, 0xdd
movdqu xmm5, xmm2
shufps xmm5, xmm8, 0x88
shufps xmm2, xmm8, 0xdd
movdqu xmm8, xmm4
shufps xmm4, xmm6, 0xdd
shufps xmm8, xmm6, 0x88
movdqu xmm6, xmm15
shufps xmm15, xmm13, 0xdd
movups xmmword [rsp + 0x50], xmm15
shufps xmm6, xmm13, 0x88
movdqu xmm13, xmm10
shufps xmm10, xmm12, 0xdd
shufps xmm13, xmm12, 0x88
movdqu xmm12, xmmword [rsp + 0x70]
movdqu xmm15, xmm13
movdqu xmm13, xmm14
shufps xmm13, xmm5, 0x88
shufps xmm14, xmm5, 0xdd
movdqu xmm5, xmm3
shufps xmm5, xmm12, 0x88
shufps xmm3, xmm12, 0xdd
movdqu xmm12, xmm7
shufps xmm7, xmm11, 0xdd
shufps xmm12, xmm11, 0x88
movdqu xmm11, xmm1
shufps xmm1, xmm9, 0xdd
shufps xmm11, xmm9, 0x88
movdqu xmm9, xmm0
shufps xmm0, xmm2, 0xdd
shufps xmm9, xmm2, 0x88
movdqu xmm2, xmm8
shufps xmm8, xmm6, 0xdd
shufps xmm2, xmm6, 0x88
movdqu xmm6, xmm15
shufps xmm15, xmm13, 0xdd
movups xmmword [rsp + 0x70], xmm15
shufps xmm6, xmm13, 0x88
movdqu xmm13, xmm5
shufps xmm5, xmm12, 0xdd
shufps xmm13, xmm12, 0x88
movdqu xmm12, xmm11
shufps xmm11, xmm9, 0xdd
movdqu xmm15, xmm13
shufps xmm12, xmm9, 0x88
movdqu xmm9, xmmword [rsp + 0x50]
movdqu xmm13, xmm4
shufps xmm13, xmm9, 0x88
shufps xmm4, xmm9, 0xdd
movdqu xmm9, xmm10
shufps xmm10, xmm14, 0xdd
shufps xmm9, xmm14, 0x88
movdqu xmm14, xmm3
shufps xmm3, xmm7, 0xdd
shufps xmm14, xmm7, 0x88
movdqu xmm7, xmm1
shufps xmm1, xmm0, 0xdd
shufps xmm7, xmm0, 0x88
movdqu xmm0, xmm2
shufps xmm2, xmm6, 0xdd
shufps xmm0, xmm6, 0x88
movdqu xmm6, xmm15
shufps xmm15, xmm12, 0xdd
shufps xmm6, xmm12, 0x88
movdqu xmm12, xmm13
shufps xmm13, xmm9, 0xdd
shufps xmm12, xmm9, 0x88
movdqu xmm9, xmm14
shufps xmm14, xmm7, 0xdd
shufps xmm9, xmm7, 0x88
movups xmmword [rsp + 0x50], xmm9
movdqu xmm7, xmm8
movdqu xmm9, xmmword [rsp + 0x70]
shufps xmm8, xmm9, 0xdd
shufps xmm7, xmm9, 0x88
movdqu xmm9, xmm5
shufps xmm5, xmm11, 0xdd
shufps xmm9, xmm11, 0x88
movdqu xmm11, xmm4
shufps xmm4, xmm10, 0xdd
shufps xmm11, xmm10, 0x88
movdqu xmm10, xmm3
shufps xmm3, xmm1, 0xdd
shufps xmm10, xmm1, 0x88
movdqu xmm1, xmm0
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
movdqu xmm2, xmm5
punpckhdq xmm5, xmm9
punpckldq xmm2, xmm9
movdqu xmm9, xmm13
punpckhdq xmm13, xmm12
punpckldq xmm9, xmm12
movdqu xmm12, xmm10
punpckhdq xmm10, xmm3
movups xmmword [rsp + 0x90], xmm10
punpckldq xmm12, xmm3
movdqu xmm3, xmm7
punpckhdq xmm7, xmm8
punpckldq xmm3, xmm8
movdqu xmm8, xmm6
punpckhdq xmm6, xmm15
movdqu xmm10, xmm6
movdqu xmm6, xmm4
punpckldq xmm8, xmm15
movups xmmword [rsp + 0x70], xmm8
movdqu xmm15, xmmword [rsp + 0x70]
punpckldq xmm6, xmm11
movdqu xmm8, xmm6
movdqu xmm6, xmm4
movdqu xmm4, xmmword [rsp + 0x50]
punpckhdq xmm6, xmm11
movdqu xmm11, xmm14
punpckldq xmm11, xmm4
punpckhdq xmm14, xmm4
movdqu xmm4, xmm1
punpckhdq xmm1, xmm3
punpckldq xmm4, xmm3
movdqu xmm3, xmm0
punpckhdq xmm0, xmm7
punpckldq xmm3, xmm7
movdqu xmm7, xmm2
punpckhdq xmm2, xmm15
punpckldq xmm7, xmm15
movdqu xmm15, xmm5
punpckhdq xmm5, xmm10
movups xmmword [rsp + 0x80], xmm5
movdqu xmm5, xmm9
punpckldq xmm15, xmm10
punpckhdq xmm9, xmm8
punpckldq xmm5, xmm8
movdqu xmm8, xmm13
movdqu xmm10, xmm5
movdqu xmm5, xmmword [rsp + 0x90]
punpckldq xmm8, xmm6
punpckhdq xmm13, xmm6
movdqu xmm6, xmm13
movdqu xmm13, xmm12
punpckldq xmm13, xmm11
punpckhdq xmm12, xmm11
movdqu xmm11, xmm5
punpckhdq xmm5, xmm14
punpckldq xmm11, xmm14
movdqu xmm14, xmm4
punpckhdq xmm4, xmm10
punpckldq xmm14, xmm10
movdqu xmm10, xmm1
punpckhdq xmm1, xmm9
punpckldq xmm10, xmm9
movdqu xmm9, xmm3
punpckhdq xmm3, xmm8
punpckldq xmm9, xmm8
movdqu xmm8, xmm0
punpckhdq xmm0, xmm6
movups xmmword [rsp + 0x70], xmm0
movdqu xmm0, xmmword [rsp + 0x80]
punpckldq xmm8, xmm6
movdqu xmm6, xmm7
punpckhdq xmm7, xmm13
punpckldq xmm6, xmm13
movdqu xmm13, xmm2
movups xmmword [rsp + 0x50], xmm6
punpckhdq xmm2, xmm12
punpckldq xmm13, xmm12
movdqu xmm6, xmm15
movdqu xmm12, xmm15
movdqu xmm15, xmm5
punpckhdq xmm6, xmm11
punpckldq xmm12, xmm11
movdqu xmm11, xmm0
punpckldq xmm11, xmm5
movdqu xmm5, xmm0
movdqu xmm0, xmm14
punpckldq xmm0, xmmword [rsp + 0x50]
punpckhdq xmm14, xmmword [rsp + 0x50]
movups xmmword [rdx - 0xf0], xmm14
movdqu xmm14, xmm4
punpckhdq xmm4, xmm7
movups xmmword [rdx - 0xd0], xmm4
movdqu xmm4, xmm10
punpckhdq xmm5, xmm15
punpckldq xmm14, xmm7
punpckldq xmm4, xmm13
movups xmmword [rdx - 0xc0], xmm4
movdqu xmm4, xmm1
punpckhdq xmm1, xmm2
movups xmmword [rdx - 0x90], xmm1
movdqu xmm1, xmm9
punpckhdq xmm10, xmm13
punpckldq xmm4, xmm2
punpckldq xmm1, xmm12
movups xmmword [rdx - 0x80], xmm1
movdqu xmm1, xmm3
punpckhdq xmm3, xmm6
punpckldq xmm1, xmm6
movdqu xmm6, xmmword [rsp + 0x70]
movups xmmword [rdx - 0x60], xmm1
movdqu xmm1, xmm8
punpckldq xmm1, xmm11
movups xmmword [rdx - 0x40], xmm1
punpckhdq xmm9, xmm12
punpckhdq xmm8, xmm11
movdqu xmm1, xmm6
movups xmmword [rdx - 0x100], xmm0
punpckhdq xmm6, xmm5
punpckldq xmm1, xmm5
movups xmmword [rdx - 0xe0], xmm14
movups xmmword [rdx - 0xb0], xmm10
movups xmmword [rdx - 0xa0], xmm4
movups xmmword [rdx - 0x70], xmm9
movups xmmword [rdx - 0x50], xmm3
movups xmmword [rdx - 0x30], xmm8
movups xmmword [rdx - 0x20], xmm1
movups xmmword [rdx - 0x10], xmm6
cmp rcx, rax
jne 0x5ad4e0
mov rbx, qword [rsp + 0xc8]
mov rdx, rbx
and rdx, 0xfffffffffffffffc
cmp rdx, rbx
je 0x5adc3f
mov rax, rdx
shl rax, 6
mov ecx, dword [rsi + rax]
mov dword [r15 + rax], ecx
mov rcx, rdx
shl rcx, 4
add rcx, 1
mov r8d, dword [rsi + rcx*4]
lea rax, [rcx*4]
mov dword [r15 + rax + 0x10], r8d
mov r8d, dword [rsi + rax + 4]
mov dword [r15 + rax + 0x24], r8d
mov r8d, dword [rsi + rax + 8]
mov dword [r15 + rax + 0x38], r8d
mov r8d, dword [rsi + rax + 0xc]
mov dword [r15 + rax + 0xc], r8d
mov r8d, dword [rsi + rax + 0x10]
mov dword [r15 + rax + 0x20], r8d
mov r8d, dword [rsi + rax + 0x14]
mov dword [r15 + rax + 0x34], r8d
mov r8d, dword [rsi + rax + 0x18]
mov dword [r15 + rax + 8], r8d
mov r8d, dword [rsi + rax + 0x1c]
mov dword [r15 + rax + 0x1c], r8d
mov r8d, dword [rsi + rax + 0x20]
mov dword [r15 + rax + 0x30], r8d
mov r8d, dword [rsi + rax + 0x24]
mov dword [r15 + rax + 4], r8d
mov r8d, dword [rsi + rax + 0x28]
mov dword [r15 + rax + 0x18], r8d
mov r8d, dword [rsi + rax + 0x2c]
mov dword [r15 + rax + 0x2c], r8d
mov r8d, dword [rsi + rax + 0x30]
mov dword [r15 + rcx*4], r8d
mov ecx, dword [rsi + rax + 0x34]
mov dword [r15 + rax + 0x14], ecx
mov ecx, dword [rsi + rax + 0x38]
mov dword [r15 + rax + 0x28], ecx
lea rax, [rdx + 1]
cmp rax, rbx
jae 0x5adc3f
mov rcx, rax
shl rax, 4
add rdx, 2
shl rcx, 6
mov r8d, dword [rsi + rcx]
mov dword [r15 + rcx], r8d
lea rcx, [rax + 1]
mov r8d, dword [rsi + rcx*4]
lea rax, [rcx*4]
mov dword [r15 + rax + 0x10], r8d
mov r8d, dword [rsi + rax + 4]
mov dword [r15 + rax + 0x24], r8d
mov r8d, dword [rsi + rax + 8]
mov dword [r15 + rax + 0x38], r8d
mov r8d, dword [rsi + rax + 0xc]
mov dword [r15 + rax + 0xc], r8d
mov r8d, dword [rsi + rax + 0x10]
mov dword [r15 + rax + 0x20], r8d
mov r8d, dword [rsi + rax + 0x14]
mov dword [r15 + rax + 0x34], r8d
mov r8d, dword [rsi + rax + 0x18]
mov dword [r15 + rax + 8], r8d
mov r8d, dword [rsi + rax + 0x1c]
mov dword [r15 + rax + 0x1c], r8d
mov r8d, dword [rsi + rax + 0x20]
mov dword [r15 + rax + 0x30], r8d
mov r8d, dword [rsi + rax + 0x24]
mov dword [r15 + rax + 4], r8d
mov r8d, dword [rsi + rax + 0x28]
mov dword [r15 + rax + 0x18], r8d
mov r8d, dword [rsi + rax + 0x2c]
mov dword [r15 + rax + 0x2c], r8d
mov r8d, dword [rsi + rax + 0x30]
mov dword [r15 + rcx*4], r8d
mov ecx, dword [rsi + rax + 0x34]
mov dword [r15 + rax + 0x14], ecx
mov ecx, dword [rsi + rax + 0x38]
mov dword [r15 + rax + 0x28], ecx
cmp rdx, rbx
jae 0x5adc3f
mov rax, rdx
shl rdx, 4
shl rax, 6
add rdx, 1
mov ecx, dword [rsi + rax]
mov dword [r15 + rax], ecx
mov ecx, dword [rsi + rdx*4]
lea rax, [rdx*4]
mov dword [r15 + rax + 0x10], ecx
mov ecx, dword [rsi + rax + 4]
mov dword [r15 + rax + 0x24], ecx
mov ecx, dword [rsi + rax + 8]
mov dword [r15 + rax + 0x38], ecx
mov ecx, dword [rsi + rax + 0xc]
mov dword [r15 + rax + 0xc], ecx
mov ecx, dword [rsi + rax + 0x10]
mov dword [r15 + rax + 0x20], ecx
mov ecx, dword [rsi + rax + 0x14]
mov dword [r15 + rax + 0x34], ecx
mov ecx, dword [rsi + rax + 0x18]
mov dword [r15 + rax + 8], ecx
mov ecx, dword [rsi + rax + 0x1c]
mov dword [r15 + rax + 0x1c], ecx
mov ecx, dword [rsi + rax + 0x20]
mov dword [r15 + rax + 0x30], ecx
mov ecx, dword [rsi + rax + 0x24]
mov dword [r15 + rax + 4], ecx
mov ecx, dword [rsi + rax + 0x28]
mov dword [r15 + rax + 0x18], ecx
mov ecx, dword [rsi + rax + 0x2c]
mov dword [r15 + rax + 0x2c], ecx
mov ecx, dword [rsi + rax + 0x30]
mov dword [r15 + rdx*4], ecx
mov edx, dword [rsi + rax + 0x34]
mov dword [r15 + rax + 0x14], edx
mov edx, dword [rsi + rax + 0x38]
mov dword [r15 + rax + 0x28], edx
mov rbx, qword [rsp + 0xb8]
mov rcx, r15
mov qword [rsp + 0x28], rsi
mov r12d, 1
mov rdi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x68]
mov ebp, dword [rsp + 0x64]
mov r9d, dword [rsp + 0x120]
mov rdx, rbx
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x20], r14
mov r8d, ebp
call fcn.005aaaa0
mov r8d, ebp
mov rdx, rbx
mov rcx, r15
mov r9d, dword [rsp + 0x124]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r14
call fcn.005aaaa0
mov r9, qword [rsp + 0xe8]
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.0059d320
mov rcx, qword [rsp + 0x128]
call sub.msvcrt.dll_free
mov rcx, rsi
call sub.msvcrt.dll_free
mov rcx, r15
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x68]
call sub.msvcrt.dll_free
jmp 0x5ac70a
mov eax, dword [rsp + 0x154]
mov ebx, dword [rsi + 0x70]
mov edx, dword [rsi + 0x44]
mov r15d, dword [rsi + 0x4c]
mov dword [rsp + 0xd8], eax
mov eax, dword [rsi + 0x40]
mov dword [rsp + 0xa0], ebx
mov ebx, dword [rsi + 0x78]
mov r14d, dword [rsi + 0x54]
mov r8d, dword [rsi + 0x58]
mov dword [rsp + 0x50], eax
mov eax, dword [rsi + 0x48]
mov r13d, dword [rsi + 0x5c]
mov dword [rsp + 0xa4], ebx
mov rbx, rsi
mov ecx, dword [rsi + 0x68]
mov r11d, dword [rsi + 0x6c]
mov dword [rsp + 0x70], eax
mov eax, dword [rsi + 0x50]
mov r10d, dword [rsi + 0x74]
mov r9d, dword [rsi + 0x7c]
mov dword [rsp + 0x80], eax
mov eax, dword [rsi + 0x60]
mov dword [rsp + 0x90], eax
mov eax, dword [rsi + 0x64]
movd xmm0, r8d
movdqu xmm7, xmmword [rbx + 0x10]
add rbx, 0x40
movd xmm2, dword [rsp + 0x80]
pinsrd xmm0, r13d, 1
movd xmm1, dword [rsp + 0x90]
pinsrd xmm2, r14d, 1
punpcklqdq xmm2, xmm0
movd xmm0, ecx
movd xmm3, dword [rsp + 0xa4]
pinsrd xmm0, r11d, 1
pinsrd xmm1, eax, 1
punpcklqdq xmm1, xmm0
movd xmm0, dword [rsp + 0xa0]
pinsrd xmm3, r9d, 1
pxor xmm2, xmm7
movdqu xmm5, xmmword [rbx - 0x20]
movups xmmword [rsp + 0x1a0], xmm2
pinsrd xmm0, r10d, 1
punpcklqdq xmm0, xmm3
movd xmm3, dword [rsp + 0x50]
mov rcx, qword [rsp + 0xc0]
pxor xmm1, xmm5
movups xmmword [rsp + 0x1b0], xmm1
pinsrd xmm3, edx, 1
mov edx, dword [rsp + 0xd8]
movdqu xmm6, xmmword [rbx - 0x10]
movdqu xmm7, xmmword [rbx - 0x40]
movd xmm4, dword [rsp + 0x70]
pxor xmm0, xmm6
movups xmmword [rsp + 0x1c0], xmm0
pinsrd xmm4, r15d, 1
punpcklqdq xmm3, xmm4
pxor xmm3, xmm7
movups xmmword [rsp + 0x190], xmm3
call fcn.005aa020
mov eax, dword [rsp + 0x190]
mov r10d, dword [rsp + 0x1c0]
mov r9d, dword [rsp + 0x1c8]
movdqu xmm2, xmmword [rsp + 0x190]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x198]
movdqu xmm5, xmmword [rsp + 0x1a0]
mov dword [rsp + 0xa0], r10d
movdqu xmm4, xmmword [rsp + 0x1b0]
mov dword [rsp + 0xa4], r9d
movdqu xmm6, xmmword [rsp + 0x1c0]
movups xmmword [rbx - 0x40], xmm2
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x1a0]
movups xmmword [rbx - 0x30], xmm5
mov edx, dword [rsp + 0x194]
movups xmmword [rbx - 0x20], xmm4
mov r15d, dword [rsp + 0x19c]
movups xmmword [rbx - 0x10], xmm6
mov r14d, dword [rsp + 0x1a4]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x1b0]
mov r8d, dword [rsp + 0x1a8]
mov r13d, dword [rsp + 0x1ac]
mov ecx, dword [rsp + 0x1b8]
mov dword [rsp + 0x90], eax
mov r11d, dword [rsp + 0x1bc]
mov eax, dword [rsp + 0x1b4]
mov r10d, dword [rsp + 0x1c4]
mov r9d, dword [rsp + 0x1cc]
cmp rbx, qword [rsp + 0xb0]
jne 0x5add74
jmp 0x5ad4a8
mov eax, dword [rsp + 0x154]
mov ebx, dword [rsi + 0x70]
mov r15d, dword [rsi + 0x44]
mov r14d, dword [rsi + 0x4c]
mov dword [rsp + 0xb0], eax
mov eax, dword [rsi + 0x40]
mov dword [rsp + 0x80], ebx
mov ebx, dword [rsi + 0x78]
mov r13d, dword [rsi + 0x54]
mov r8d, dword [rsi + 0x58]
mov dword [rsp + 0xa8], eax
mov eax, dword [rsi + 0x48]
mov edx, dword [rsi + 0x5c]
mov dword [rsp + 0x70], ebx
mov rbx, rsi
mov ecx, dword [rsi + 0x68]
mov r11d, dword [rsi + 0x6c]
mov dword [rsp + 0xa4], eax
mov eax, dword [rsi + 0x50]
mov r10d, dword [rsi + 0x74]
mov r9d, dword [rsi + 0x7c]
mov dword [rsp + 0xa0], eax
mov eax, dword [rsi + 0x60]
mov dword [rsp + 0x90], eax
mov eax, dword [rsi + 0x64]
movd xmm0, r8d
movdqu xmm7, xmmword [rbx + 0x10]
add rbx, 0x40
movd xmm2, dword [rsp + 0xa0]
pinsrd xmm0, edx, 1
movd xmm1, dword [rsp + 0x90]
pinsrd xmm2, r13d, 1
punpcklqdq xmm2, xmm0
movd xmm0, ecx
mov edx, dword [rsp + 0xb0]
pinsrd xmm0, r11d, 1
pinsrd xmm1, eax, 1
movd xmm3, dword [rsp + 0x70]
punpcklqdq xmm1, xmm0
mov rcx, qword [rsp + 0xc8]
pxor xmm2, xmm7
movups xmmword [rsp + 0x1a0], xmm2
movd xmm0, dword [rsp + 0x80]
pinsrd xmm3, r9d, 1
movdqu xmm5, xmmword [rbx - 0x20]
movdqu xmm6, xmmword [rbx - 0x10]
pinsrd xmm0, r10d, 1
punpcklqdq xmm0, xmm3
movdqu xmm7, xmmword [rbx - 0x40]
pxor xmm1, xmm5
movups xmmword [rsp + 0x1b0], xmm1
movd xmm4, dword [rsp + 0xa4]
pxor xmm0, xmm6
movups xmmword [rsp + 0x1c0], xmm0
movd xmm3, dword [rsp + 0xa8]
pinsrd xmm4, r14d, 1
pinsrd xmm3, r15d, 1
punpcklqdq xmm3, xmm4
pxor xmm3, xmm7
movups xmmword [rsp + 0x190], xmm3
call fcn.005aa020
mov eax, dword [rsp + 0x190]
mov r10d, dword [rsp + 0x1c0]
mov r9d, dword [rsp + 0x1c8]
movdqu xmm2, xmmword [rsp + 0x190]
mov dword [rsp + 0xa8], eax
mov eax, dword [rsp + 0x198]
movups xmmword [rbx - 0x40], xmm2
mov r15d, dword [rsp + 0x194]
movdqu xmm5, xmmword [rsp + 0x1a0]
mov dword [rsp + 0x80], r10d
movdqu xmm6, xmmword [rsp + 0x1b0]
mov dword [rsp + 0x70], r9d
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0x1a0]
movdqu xmm2, xmmword [rsp + 0x1c0]
movups xmmword [rbx - 0x30], xmm5
movups xmmword [rbx - 0x20], xmm6
mov r14d, dword [rsp + 0x19c]
movups xmmword [rbx - 0x10], xmm2
mov r13d, dword [rsp + 0x1a4]
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0x1b0]
mov r8d, dword [rsp + 0x1a8]
mov edx, dword [rsp + 0x1ac]
mov ecx, dword [rsp + 0x1b8]
mov dword [rsp + 0x90], eax
mov r11d, dword [rsp + 0x1bc]
mov eax, dword [rsp + 0x1b4]
mov r10d, dword [rsp + 0x1c4]
mov r9d, dword [rsp + 0x1cc]
cmp rbx, qword [rsp + 0xc0]
jne 0x5adfa7
jmp 0x5ac947
xor eax, eax
nop word [rax + rax]
mov edx, dword [rsi + rax]
mov dword [rbp + rax], edx
add rax, 4
cmp rax, 0x80
jne 0x5ae178
jmp 0x5ac863
xor eax, eax
nop word [rax + rax]
mov ecx, dword [rdx + rax]
xor dword [rsi + rax], ecx
add rax, 4
cmp rax, 0x80
jne 0x5ae198
jmp 0x5ac92c
movdqu xmm0, xmmword [0x00646750]
mov edx, 0x1000
mov ecx, 0x2000
mov dword [rsp + 0x50], 0xff0
movups xmmword [rsp + 0x154], xmm0
jmp 0x5ac0de
mov rbp, r12
mov rdi, rbx
jmp 0x5ac18b
mov rdi, rbx
xor ebp, ebp
jmp 0x5ac18b
lea rax, [rsp + 0x150]
mov qword [rsp + 0x48], rax
jmp 0x5aca5f
or r12d, 0xffffffff
jmp 0x5adce5
or r12d, 0xffffffff
jmp 0x5adced
or r12d, 0xffffffff
jmp 0x5adcf5
or r12d, 0xffffffff
jmp 0x5ac70a