Function at 0x587ce0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1b8
vmovups xmmword [rsp + 0x110], xmm6
vmovups xmmword [rsp + 0x120], xmm7
vmovups xmmword [rsp + 0x130], xmm8
vmovups xmmword [rsp + 0x140], xmm9
vmovups xmmword [rsp + 0x150], xmm10
vmovups xmmword [rsp + 0x160], xmm11
vmovups xmmword [rsp + 0x170], xmm12
vmovups xmmword [rsp + 0x180], xmm13
vmovups xmmword [rsp + 0x190], xmm14
vmovups xmmword [rsp + 0x1a0], xmm15
mov r15, qword [rsp + 0x228]
mov rbp, qword [rsp + 0x220]
mov eax, r8d
mov r13, rdx
mov edx, 0xaaaaaaab
mov dword [rsp + 0x210], r8d
add eax, 2
mov r12, rcx
mov qword [rsp + 0x218], r9
mov dword [rsp + 0xa4], 0
imul rax, rdx
shr rax, 0x21
lea edx, [rax + 1]
and edx, 0xfffffffe
cmp dword [r15], 5
mov dword [rsp + 0xa0], edx
jne 0x587db9
and eax, 0xfffffffe
mov esi, edx
sub esi, eax
mov dword [rsp + 0xa0], eax
mov dword [rsp + 0xa4], esi
mov eax, dword [r12]
mov r14, qword [r15 + 0x18]
mov edx, dword [r15 + 0x10]
mov dword [rbp], eax
mov ecx, dword [r12 + 0x14]
mov qword [rsp + 0x50], r14
mov ebx, edx
shr ebx, 7
mov dword [rbp + 4], ecx
mov ecx, dword [r12 + 0x28]
mov dword [rbp + 8], ecx
mov ecx, dword [r12 + 0x3c]
mov dword [rbp + 0xc], ecx
mov ecx, dword [r12 + 0x10]
mov dword [rbp + 0x10], ecx
mov ecx, dword [r12 + 0x24]
mov dword [rbp + 0x14], ecx
mov ecx, dword [r12 + 0x38]
mov dword [rbp + 0x18], ecx
mov ecx, dword [r12 + 0xc]
mov dword [rbp + 0x1c], ecx
mov ecx, dword [r12 + 0x20]
mov dword [rbp + 0x20], ecx
mov ecx, dword [r12 + 0x34]
mov dword [rbp + 0x24], ecx
mov ecx, dword [r12 + 8]
mov dword [rbp + 0x28], ecx
mov ecx, dword [r12 + 0x1c]
mov dword [rbp + 0x2c], ecx
mov ecx, dword [r12 + 0x30]
mov dword [rbp + 0x30], ecx
mov ecx, dword [r12 + 4]
mov dword [rbp + 0x34], ecx
mov ecx, dword [r12 + 0x18]
mov dword [rbp + 0x38], ecx
mov ecx, dword [r12 + 0x2c]
mov dword [rbp + 0x3c], ecx
mov ecx, dword [r12 + 0x40]
mov dword [rbp + 0x40], ecx
mov ecx, dword [r12 + 0x54]
mov dword [rbp + 0x44], ecx
mov ecx, dword [r12 + 0x68]
mov dword [rbp + 0x48], ecx
mov ecx, dword [r12 + 0x7c]
mov dword [rbp + 0x4c], ecx
mov ecx, dword [r12 + 0x50]
mov dword [rbp + 0x50], ecx
mov ecx, dword [r12 + 0x64]
mov dword [rbp + 0x54], ecx
mov ecx, dword [r12 + 0x78]
mov dword [rbp + 0x58], ecx
mov ecx, dword [r12 + 0x4c]
mov dword [rbp + 0x5c], ecx
mov ecx, dword [r12 + 0x60]
mov dword [rbp + 0x60], ecx
mov ecx, dword [r12 + 0x74]
mov dword [rbp + 0x64], ecx
mov ecx, dword [r12 + 0x48]
mov dword [rbp + 0x68], ecx
mov ecx, dword [r12 + 0x5c]
mov dword [rbp + 0x6c], ecx
mov ecx, dword [r12 + 0x70]
mov dword [rbp + 0x70], ecx
mov ecx, dword [r12 + 0x44]
mov dword [rbp + 0x74], ecx
mov ecx, dword [r12 + 0x58]
mov dword [rbp + 0x78], ecx
mov ecx, dword [r12 + 0x6c]
mov dword [rsp + 0x94], ebx
mov dword [rbp + 0x7c], ecx
je 0x58843a
mov esi, ebx
mov eax, 1
mov dword [rsp + 0x90], 0
sub esi, 1
mov qword [rsp + 0x200], r12
cmovne esi, eax
mov qword [rsp + 0x208], r13
lea rax, [rbp + 0x20]
mov dword [rsp + 0xb0], esi
mov qword [rsp + 0x40], rax
lea rax, [rbp + 0x80]
lea edi, [rsi + 1]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0xd0]
mov dword [rsp + 0xb8], edi
mov qword [rsp + 0xa8], rax
jmp 0x587f70
mov rdx, r15
mov rcx, rbp
vzeroupper
call fcn.00587a60
mov esi, dword [rsp + 0x90]
sub r14, 0xffffffffffffff80
lea eax, [rsi + 1]
cmp dword [rsp + 0xb0], esi
je 0x588230
mov dword [rsp + 0x90], eax
lea rax, [r14 + 0x20]
cmp rbp, rax
jae 0x587f84
cmp qword [rsp + 0x40], r14
ja 0x589780
vmovdqu xmm7, xmmword [rbp]
vinsertf128 ymm0, ymm7, xmmword [rbp + 0x10], 1
vmovups xmmword [r14], xmm0
vextractf128 xmmword [r14 + 0x10], ymm0, 1
vmovdqu xmm7, xmmword [rbp + 0x20]
vinsertf128 ymm0, ymm7, xmmword [rbp + 0x30], 1
vmovups xmmword [r14 + 0x20], xmm0
vextractf128 xmmword [r14 + 0x30], ymm0, 1
vmovdqu xmm6, xmmword [rbp + 0x40]
vinsertf128 ymm0, ymm6, xmmword [rbp + 0x50], 1
vmovups xmmword [r14 + 0x40], xmm0
vextractf128 xmmword [r14 + 0x50], ymm0, 1
vmovdqu xmm7, xmmword [rbp + 0x60]
vinsertf128 ymm0, ymm7, xmmword [rbp + 0x70], 1
vmovups xmmword [r14 + 0x60], xmm0
vextractf128 xmmword [r14 + 0x70], ymm0, 1
mov rax, qword [rsp + 0x50]
cmp rax, qword [r15 + 0x18]
jne 0x587f40
mov eax, dword [rbp + 0x40]
mov ebx, dword [rbp + 0x70]
mov edi, dword [r15 + 4]
mov esi, dword [rbp + 0x44]
mov dword [rsp + 0x60], eax
mov eax, dword [rbp + 0x48]
mov dword [rsp + 0x88], ebx
mov ebx, dword [rbp + 0x78]
mov r11d, dword [rbp + 0x4c]
mov ecx, dword [rbp + 0x54]
mov dword [rsp + 0x70], eax
mov eax, dword [rbp + 0x50]
mov r10d, dword [rbp + 0x5c]
mov dword [rsp + 0x8c], ebx
mov rbx, rbp
mov r13d, dword [rbp + 0x60]
mov r12d, dword [rbp + 0x68]
mov dword [rsp + 0x80], eax
mov eax, dword [rbp + 0x58]
mov r9d, dword [rbp + 0x6c]
mov edx, dword [rbp + 0x74]
mov r8d, dword [rbp + 0x7c]
mov dword [rsp + 0x84], eax
mov eax, dword [rbp + 0x64]
vmovdqu xmm6, xmmword [rbx + 0x20]
vinsertf128 ymm1, ymm6, xmmword [rbx + 0x30], 1
vmovd xmm7, dword [rsp + 0x8c]
vmovd xmm6, dword [rsp + 0x88]
vpinsrd xmm3, xmm7, r8d, 1
vmovd xmm7, r12d
vpinsrd xmm2, xmm6, edx, 1
vmovd xmm6, r13d
vpinsrd xmm4, xmm7, r9d, 1
vpunpcklqdq xmm2, xmm2, xmm3
vmovdqu xmm7, xmmword [rbx]
vpinsrd xmm0, xmm6, eax, 1
vpunpcklqdq xmm0, xmm0, xmm4
mov edx, edi
vmovd xmm6, dword [rsp + 0x84]
vinsertf128 ymm0, ymm0, xmm2, 1
vinsertf128 ymm2, ymm7, xmmword [rbx + 0x10], 1
vxorps ymm0, ymm0, ymm1
vmovd xmm7, dword [rsp + 0x80]
vmovups xmmword [rsp + 0xf0], xmm0
vextractf128 xmmword [rsp + 0x100], ymm0, 1
vpinsrd xmm4, xmm6, r10d, 1
vmovd xmm6, dword [rsp + 0x70]
vpinsrd xmm3, xmm7, ecx, 1
vmovd xmm7, dword [rsp + 0x60]
vpunpcklqdq xmm3, xmm3, xmm4
mov rcx, qword [rsp + 0xa8]
vpinsrd xmm5, xmm6, r11d, 1
vpinsrd xmm1, xmm7, esi, 1
vpunpcklqdq xmm1, xmm1, xmm5
vinsertf128 ymm1, ymm1, xmm3, 1
vxorps ymm1, ymm1, ymm2
vmovups xmmword [rsp + 0xd0], xmm1
vextractf128 xmmword [rsp + 0xe0], ymm1, 1
vzeroupper
call fcn.00585fc0
mov eax, dword [rsp + 0xd0]
add rbx, 0x40
mov edx, dword [rsp + 0x100]
mov r8d, dword [rsp + 0x108]
vmovdqu xmm6, xmmword [rsp + 0xf0]
vinsertf128 ymm0, ymm6, xmmword [rsp + 0x100], 1
vmovups xmmword [rbx - 0x20], xmm0
vextractf128 xmmword [rbx - 0x10], ymm0, 1
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0xd8]
vmovdqu xmm7, xmmword [rsp + 0xd0]
mov dword [rsp + 0x88], edx
vinsertf128 ymm1, ymm7, xmmword [rsp + 0xe0], 1
vextractf128 xmmword [rbx - 0x30], ymm1, 1
mov dword [rsp + 0x8c], r8d
mov esi, dword [rsp + 0xd4]
vmovups xmmword [rbx - 0x40], xmm1
mov r11d, dword [rsp + 0xdc]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0xe0]
mov ecx, dword [rsp + 0xe4]
mov r10d, dword [rsp + 0xec]
mov r13d, dword [rsp + 0xf0]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0xe8]
mov r12d, dword [rsp + 0xf8]
mov r9d, dword [rsp + 0xfc]
mov edx, dword [rsp + 0x104]
mov dword [rsp + 0x84], eax
mov r8d, dword [rsp + 0x10c]
mov eax, dword [rsp + 0xf4]
cmp qword [rsp + 0x98], rbx
jne 0x588057
jmp 0x587f4e
mov eax, dword [rsp + 0xb8]
mov rsi, qword [rsp + 0x50]
mov r12, qword [rsp + 0x200]
mov r13, qword [rsp + 0x208]
mov rdi, rax
shl rax, 7
lea r14, [rsi + rax]
lea rax, [rbp + 0x80]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0xa8], rax
cmp dword [rsp + 0x94], edi
jbe 0x588437
mov qword [rsp + 0x200], r12
mov r12, r15
mov qword [rsp + 0x208], r13
nop word cs:[rax + rax]
lea rax, [r14 + 0x20]
cmp rbp, rax
jae 0x5882b4
cmp qword [rsp + 0x40], r14
ja 0x5899f0
vmovdqu xmm6, xmmword [rbp]
vinsertf128 ymm0, ymm6, xmmword [rbp + 0x10], 1
vmovups xmmword [r14], xmm0
vextractf128 xmmword [r14 + 0x10], ymm0, 1
vmovdqu xmm7, xmmword [rbp + 0x20]
vinsertf128 ymm0, ymm7, xmmword [rbp + 0x30], 1
vmovups xmmword [r14 + 0x20], xmm0
vextractf128 xmmword [r14 + 0x30], ymm0, 1
vmovdqu xmm6, xmmword [rbp + 0x40]
vinsertf128 ymm0, ymm6, xmmword [rbp + 0x50], 1
vmovups xmmword [r14 + 0x40], xmm0
vextractf128 xmmword [r14 + 0x50], ymm0, 1
vmovdqu xmm7, xmmword [rbp + 0x60]
vinsertf128 ymm0, ymm7, xmmword [rbp + 0x70], 1
vmovups xmmword [r14 + 0x60], xmm0
vextractf128 xmmword [r14 + 0x70], ymm0, 1
mov eax, dword [rbp + 0x40]
mov edx, edi
nop dword [rax]
lea r8d, [rdx - 1]
mov ecx, edx
and edx, r8d
jne 0x588320
mov rbx, qword [rsp + 0x50]
and eax, r8d
sub eax, ecx
add eax, edi
shl rax, 7
lea rdx, [rbx + rax]
lea rax, [rbx + rax + 0x20]
cmp rbp, rax
jae 0x588354
cmp qword [rsp + 0x40], rdx
ja 0x589a18
vmovdqu xmm4, xmmword [rdx]
vinsertf128 ymm1, ymm4, xmmword [rdx + 0x10], 1
vmovdqu xmm6, xmmword [rbp]
vinsertf128 ymm0, ymm6, xmmword [rbp + 0x10], 1
vxorps ymm0, ymm0, ymm1
vmovups xmmword [rbp], xmm0
vextractf128 xmmword [rbp + 0x10], ymm0, 1
vmovdqu xmm4, xmmword [rbp + 0x20]
vinsertf128 ymm0, ymm4, xmmword [rbp + 0x30], 1
vmovdqu xmm7, xmmword [rax]
vinsertf128 ymm1, ymm7, xmmword [rax + 0x10], 1
vxorps ymm0, ymm0, ymm1
vmovups xmmword [rbp + 0x20], xmm0
vextractf128 xmmword [rbp + 0x30], ymm0, 1
vmovdqu xmm7, xmmword [rbp + 0x40]
vinsertf128 ymm0, ymm7, xmmword [rbp + 0x50], 1
vmovdqu xmm6, xmmword [rax + 0x20]
vinsertf128 ymm1, ymm6, xmmword [rax + 0x30], 1
vxorps ymm0, ymm0, ymm1
vmovups xmmword [rbp + 0x40], xmm0
vextractf128 xmmword [rbp + 0x50], ymm0, 1
vmovdqu xmm5, xmmword [rbp + 0x60]
vinsertf128 ymm0, ymm5, xmmword [rbp + 0x70], 1
vmovdqu xmm4, xmmword [rax + 0x40]
vinsertf128 ymm1, ymm4, xmmword [rax + 0x50], 1
vxorps ymm0, ymm0, ymm1
vmovups xmmword [rbp + 0x60], xmm0
vextractf128 xmmword [rbp + 0x70], ymm0, 1
mov rax, qword [rsp + 0x50]
cmp rax, qword [r12 + 0x18]
je 0x5897a8
mov rdx, r12
mov rcx, rbp
vzeroupper
call fcn.00587a60
add edi, 1
sub r14, 0xffffffffffffff80
cmp dword [rsp + 0x94], edi
jne 0x5882a0
mov r15, r12
mov r13, qword [rsp + 0x208]
mov r12, qword [rsp + 0x200]
mov eax, dword [rbp]
mov dword [r12], eax
mov eax, dword [rbp + 4]
lea r14, [r13 + r13]
mov rbx, r13
shl rbx, 5
mov dword [r12 + 0x14], eax
mov eax, dword [rbp + 8]
mov dword [r12 + 0x28], eax
mov eax, dword [rbp + 0xc]
mov dword [r12 + 0x3c], eax
mov eax, dword [rbp + 0x10]
mov dword [r12 + 0x10], eax
mov eax, dword [rbp + 0x14]
mov dword [r12 + 0x24], eax
mov eax, dword [rbp + 0x18]
mov dword [r12 + 0x38], eax
mov eax, dword [rbp + 0x1c]
mov dword [r12 + 0xc], eax
mov eax, dword [rbp + 0x20]
mov dword [r12 + 0x20], eax
mov eax, dword [rbp + 0x24]
mov dword [r12 + 0x34], eax
mov eax, dword [rbp + 0x28]
mov dword [r12 + 8], eax
mov eax, dword [rbp + 0x2c]
mov dword [r12 + 0x1c], eax
mov eax, dword [rbp + 0x30]
mov dword [r12 + 0x30], eax
mov eax, dword [rbp + 0x34]
mov dword [r12 + 4], eax
mov eax, dword [rbp + 0x38]
mov dword [r12 + 0x18], eax
mov eax, dword [rbp + 0x3c]
mov dword [r12 + 0x2c], eax
mov eax, dword [rbp + 0x40]
mov dword [r12 + 0x40], eax
mov eax, dword [rbp + 0x44]
mov dword [r12 + 0x54], eax
mov eax, dword [rbp + 0x48]
mov dword [r12 + 0x68], eax
mov eax, dword [rbp + 0x4c]
mov dword [r12 + 0x7c], eax
mov eax, dword [rbp + 0x50]
mov dword [r12 + 0x50], eax
mov eax, dword [rbp + 0x54]
mov dword [r12 + 0x64], eax
mov eax, dword [rbp + 0x58]
mov dword [r12 + 0x78], eax
mov eax, dword [rbp + 0x5c]
mov dword [r12 + 0x4c], eax
mov eax, dword [rbp + 0x60]
mov dword [r12 + 0x60], eax
mov eax, dword [rbp + 0x64]
mov dword [r12 + 0x74], eax
mov eax, dword [rbp + 0x68]
mov dword [r12 + 0x48], eax
mov eax, dword [rbp + 0x6c]
mov dword [r12 + 0x5c], eax
mov eax, dword [rbp + 0x70]
mov dword [r12 + 0x70], eax
mov eax, dword [rbp + 0x74]
mov dword [r12 + 0x44], eax
mov eax, dword [rbp + 0x78]
mov dword [r12 + 0x58], eax
mov eax, dword [rbp + 0x7c]
mov dword [r12 + 0x6c], eax
lea rax, [r12 + 0xff]
sub rax, rbp
mov qword [rsp + 0xa8], rax
cmp rax, 0x1fe
jbe 0x589a40
mov rcx, r14
mov rax, rbp
mov rdx, r12
shr rcx, 2
shl rcx, 8
add rcx, rbp
nop dword [rax]
vmovdqu xmm6, xmmword [rdx]
add rax, 0x100
add rdx, 0x100
vmovdqu xmm15, xmmword [rdx - 0xd0]
vmovdqu xmm11, xmmword [rdx - 0xb0]
vmovdqu xmm14, xmmword [rdx - 0xa0]
vmovdqu xmm4, xmmword [rdx - 0x70]
vmovdqu xmm10, xmmword [rdx - 0x50]
vmovdqu xmm1, xmmword [rdx - 0x40]
vmovdqu xmm9, xmmword [rdx - 0x30]
vmovdqu xmm3, xmmword [rdx - 0xf0]
vmovdqu xmm2, xmmword [rdx - 0xe0]
vmovdqu xmm8, xmmword [rdx - 0xc0]
vshufps xmm7, xmm6, xmm3, 0x88
vshufps xmm3, xmm6, xmm3, 0xdd
vmovdqu xmm5, xmmword [rdx - 0x90]
vshufps xmm6, xmm2, xmm15, 0x88
vshufps xmm2, xmm2, xmm15, 0xdd
vmovups xmmword [rsp + 0x40], xmm2
vmovdqu xmm12, xmmword [rdx - 0x80]
vshufps xmm2, xmm1, xmm9, 0xdd
vshufps xmm15, xmm8, xmm11, 0x88
vshufps xmm8, xmm8, xmm11, 0xdd
vmovdqu xmm0, xmmword [rdx - 0x60]
vshufps xmm11, xmm14, xmm5, 0x88
vshufps xmm5, xmm14, xmm5, 0xdd
vmovdqu xmm13, xmmword [rdx - 0x20]
vshufps xmm14, xmm12, xmm4, 0x88
vshufps xmm12, xmm12, xmm4, 0xdd
vshufps xmm4, xmm0, xmm10, 0x88
vshufps xmm0, xmm0, xmm10, 0xdd
vshufps xmm10, xmm1, xmm9, 0x88
vshufps xmm9, xmm13, xmmword [rdx - 0x10], 0x88
vshufps xmm1, xmm13, xmmword [rdx - 0x10], 0xdd
vshufps xmm13, xmm7, xmm6, 0x88
vshufps xmm6, xmm7, xmm6, 0xdd
vshufps xmm7, xmm15, xmm11, 0x88
vshufps xmm15, xmm15, xmm11, 0xdd
vmovups xmmword [rsp + 0x50], xmm15
vshufps xmm15, xmm14, xmm4, 0x88
vshufps xmm14, xmm14, xmm4, 0xdd
vshufps xmm4, xmm10, xmm9, 0x88
vshufps xmm9, xmm10, xmm9, 0xdd
vmovdqu xmm10, xmmword [rsp + 0x40]
vshufps xmm11, xmm3, xmm10, 0x88
vshufps xmm3, xmm3, xmm10, 0xdd
vshufps xmm10, xmm8, xmm5, 0x88
vshufps xmm8, xmm8, xmm5, 0xdd
vshufps xmm5, xmm12, xmm0, 0x88
vshufps xmm0, xmm12, xmm0, 0xdd
vshufps xmm12, xmm2, xmm1, 0x88
vshufps xmm1, xmm2, xmm1, 0xdd
vshufps xmm2, xmm13, xmm7, 0x88
vshufps xmm7, xmm13, xmm7, 0xdd
vshufps xmm13, xmm15, xmm4, 0x88
vshufps xmm4, xmm15, xmm4, 0xdd
vmovups xmmword [rsp + 0x60], xmm4
vshufps xmm4, xmm11, xmm10, 0x88
vshufps xmm10, xmm11, xmm10, 0xdd
vshufps xmm11, xmm5, xmm12, 0x88
vshufps xmm5, xmm5, xmm12, 0xdd
vmovdqu xmm12, xmmword [rsp + 0x50]
vshufps xmm15, xmm6, xmm12, 0x88
vshufps xmm6, xmm6, xmm12, 0xdd
vshufps xmm12, xmm14, xmm9, 0x88
vshufps xmm14, xmm14, xmm9, 0xdd
vshufps xmm9, xmm3, xmm8, 0x88
vshufps xmm8, xmm3, xmm8, 0xdd
vshufps xmm3, xmm0, xmm1, 0x88
vshufps xmm1, xmm0, xmm1, 0xdd
vshufps xmm0, xmm2, xmm13, 0x88
vshufps xmm13, xmm2, xmm13, 0xdd
vshufps xmm2, xmm4, xmm11, 0x88
vshufps xmm4, xmm4, xmm11, 0xdd
vshufps xmm11, xmm15, xmm12, 0x88
vshufps xmm12, xmm15, xmm12, 0xdd
vshufps xmm15, xmm9, xmm3, 0x88
vshufps xmm9, xmm9, xmm3, 0xdd
vmovdqu xmm3, xmmword [rsp + 0x60]
vmovups xmmword [rsp + 0x40], xmm9
vmovups xmmword [rsp + 0x50], xmm2
vshufps xmm2, xmm8, xmm1, 0xdd
vshufps xmm9, xmm7, xmm3, 0x88
vshufps xmm3, xmm7, xmm3, 0xdd
vshufps xmm7, xmm8, xmm1, 0x88
vpunpckldq xmm1, xmm12, xmm11
vpunpckhdq xmm12, xmm12, xmm11
vmovdqu xmm11, xmmword [rsp + 0x50]
vpunpckldq xmm8, xmm9, xmm3
vmovups xmmword [rsp + 0x70], xmm15
vshufps xmm15, xmm10, xmm5, 0x88
vshufps xmm5, xmm10, xmm5, 0xdd
vshufps xmm10, xmm6, xmm14, 0x88
vshufps xmm6, xmm6, xmm14, 0xdd
vpunpckldq xmm14, xmm0, xmm13
vpunpckhdq xmm13, xmm0, xmm13
vpunpckldq xmm0, xmm15, xmm5
vpunpckhdq xmm5, xmm15, xmm5
vpunpckldq xmm15, xmm2, xmm7
vpunpckhdq xmm2, xmm2, xmm7
vpunpckhdq xmm7, xmm9, xmm3
vpunpckldq xmm3, xmm4, xmm11
vpunpckldq xmm9, xmm6, xmm10
vpunpckhdq xmm4, xmm4, xmm11
vpunpckhdq xmm6, xmm6, xmm10
vmovdqu xmm10, xmmword [rsp + 0x70]
vpunpckldq xmm11, xmm10, xmmword [rsp + 0x40]
vpunpckhdq xmm10, xmm10, xmmword [rsp + 0x40]
vmovups xmmword [rsp + 0x40], xmm10
vpunpckldq xmm10, xmm14, xmm8
vpunpckhdq xmm14, xmm14, xmm8
vpunpckldq xmm8, xmm13, xmm7
vpunpckhdq xmm13, xmm13, xmm7
vpunpckldq xmm7, xmm0, xmm3
vpunpckhdq xmm3, xmm0, xmm3
vpunpckldq xmm0, xmm5, xmm4
vpunpckhdq xmm4, xmm5, xmm4
vmovups xmmword [rsp + 0x50], xmm0
vpunpckldq xmm5, xmm1, xmm9
vmovups xmmword [rsp + 0x60], xmm4
vpunpckhdq xmm9, xmm1, xmm9
vpunpckldq xmm4, xmm12, xmm6
vmovdqu xmm1, xmmword [rsp + 0x40]
vpunpckhdq xmm0, xmm12, xmm6
vpunpckldq xmm12, xmm15, xmm11
vpunpckhdq xmm11, xmm15, xmm11
vpunpckldq xmm15, xmm10, xmm5
vpunpckhdq xmm5, xmm10, xmm5
vpunpckldq xmm10, xmm14, xmm9
vpunpckldq xmm6, xmm2, xmm1
vpunpckhdq xmm2, xmm2, xmm1
vpunpckhdq xmm1, xmm14, xmm9
vpunpckldq xmm9, xmm8, xmm4
vpunpckhdq xmm4, xmm8, xmm4
vpunpckldq xmm8, xmm13, xmm0
vpunpckhdq xmm0, xmm13, xmm0
vpunpckldq xmm13, xmm3, xmm11
vpunpckhdq xmm3, xmm3, xmm11
vmovdqu xmm11, xmmword [rsp + 0x50]
vpunpckldq xmm14, xmm7, xmm12
vpunpckhdq xmm7, xmm7, xmm12
vmovups xmmword [rsp + 0x40], xmm0
vpunpckldq xmm12, xmm11, xmm6
vpunpckhdq xmm6, xmm11, xmm6
vmovdqu xmm11, xmmword [rsp + 0x60]
vpunpckldq xmm0, xmm11, xmm2
vpunpckhdq xmm2, xmm11, xmm2
vpunpckldq xmm11, xmm15, xmm14
vpunpckhdq xmm14, xmm15, xmm14
vmovups xmmword [rax - 0xf0], xmm14
vpunpckldq xmm14, xmm5, xmm7
vpunpckhdq xmm5, xmm5, xmm7
vmovdqu xmm7, xmmword [rsp + 0x40]
vmovups xmmword [rax - 0xd0], xmm5
vpunpckldq xmm5, xmm10, xmm13
vpunpckhdq xmm10, xmm10, xmm13
vmovups xmmword [rax - 0xc0], xmm5
vpunpckldq xmm5, xmm1, xmm3
vpunpckhdq xmm1, xmm1, xmm3
vmovups xmmword [rax - 0x90], xmm1
vpunpckldq xmm1, xmm9, xmm12
vpunpckhdq xmm9, xmm9, xmm12
vmovups xmmword [rax - 0x80], xmm1
vpunpckldq xmm1, xmm4, xmm6
vpunpckhdq xmm4, xmm4, xmm6
vmovups xmmword [rax - 0x60], xmm1
vpunpckldq xmm1, xmm8, xmm0
vpunpckhdq xmm8, xmm8, xmm0
vpunpckhdq xmm0, xmm7, xmm2
vmovups xmmword [rax - 0x40], xmm1
vpunpckldq xmm1, xmm7, xmm2
vmovups xmmword [rax - 0x100], xmm11
vmovups xmmword [rax - 0xe0], xmm14
vmovups xmmword [rax - 0xb0], xmm10
vmovups xmmword [rax - 0xa0], xmm5
vmovups xmmword [rax - 0x70], xmm9
vmovups xmmword [rax - 0x50], xmm4
vmovups xmmword [rax - 0x30], xmm8
vmovups xmmword [rax - 0x20], xmm1
vmovups xmmword [rax - 0x10], xmm0
cmp rcx, rax
jne 0x588578
mov rdx, r14
and rdx, 0xfffffffffffffffc
test r14b, 3
je 0x588b6f
mov rax, rdx
shl rax, 6
mov ecx, dword [r12 + rax]
mov dword [rbp + rax], ecx
mov rcx, rdx
shl rcx, 4
add rcx, 5
mov r8d, dword [r12 + rcx*4]
lea rax, [rcx*4]
mov dword [rbp + rax - 0x10], r8d
mov r8d, dword [r12 + rax + 0x14]
mov dword [rbp + rax - 0xc], r8d
mov r8d, dword [r12 + rax + 0x28]
mov dword [rbp + rax - 8], r8d
mov r8d, dword [r12 + rax - 4]
mov dword [rbp + rax - 4], r8d
mov r8d, dword [r12 + rax + 0x10]
mov dword [rbp + rcx*4], r8d
mov ecx, dword [r12 + rax + 0x24]
mov dword [rbp + rax + 4], ecx
mov ecx, dword [r12 + rax - 8]
mov dword [rbp + rax + 8], ecx
mov ecx, dword [r12 + rax + 0xc]
mov dword [rbp + rax + 0xc], ecx
mov ecx, dword [r12 + rax + 0x20]
mov dword [rbp + rax + 0x10], ecx
mov ecx, dword [r12 + rax - 0xc]
mov dword [rbp + rax + 0x14], ecx
mov ecx, dword [r12 + rax + 8]
mov dword [rbp + rax + 0x18], ecx
mov ecx, dword [r12 + rax + 0x1c]
mov dword [rbp + rax + 0x1c], ecx
mov ecx, dword [r12 + rax - 0x10]
mov dword [rbp + rax + 0x20], ecx
mov ecx, dword [r12 + rax + 4]
mov dword [rbp + rax + 0x24], ecx
mov ecx, dword [r12 + rax + 0x18]
mov dword [rbp + rax + 0x28], ecx
lea rax, [rdx + 1]
cmp rax, r14
jae 0x588b6f
mov rcx, rax
shl rax, 4
add rdx, 2
shl rcx, 6
mov r8d, dword [r12 + rcx]
mov dword [rbp + rcx], r8d
lea rcx, [rax + 5]
mov r8d, dword [r12 + rcx*4]
lea rax, [rcx*4]
mov dword [rbp + rax - 0x10], r8d
mov r8d, dword [r12 + rax + 0x14]
mov dword [rbp + rax - 0xc], r8d
mov r8d, dword [r12 + rax + 0x28]
mov dword [rbp + rax - 8], r8d
mov r8d, dword [r12 + rax - 4]
mov dword [rbp + rax - 4], r8d
mov r8d, dword [r12 + rax + 0x10]
mov dword [rbp + rcx*4], r8d
mov ecx, dword [r12 + rax + 0x24]
mov dword [rbp + rax + 4], ecx
mov ecx, dword [r12 + rax - 8]
mov dword [rbp + rax + 8], ecx
mov ecx, dword [r12 + rax + 0xc]
mov dword [rbp + rax + 0xc], ecx
mov ecx, dword [r12 + rax + 0x20]
mov dword [rbp + rax + 0x10], ecx
mov ecx, dword [r12 + rax - 0xc]
mov dword [rbp + rax + 0x14], ecx
mov ecx, dword [r12 + rax + 8]
mov dword [rbp + rax + 0x18], ecx
mov ecx, dword [r12 + rax + 0x1c]
mov dword [rbp + rax + 0x1c], ecx
mov ecx, dword [r12 + rax - 0x10]
mov dword [rbp + rax + 0x20], ecx
mov ecx, dword [r12 + rax + 4]
mov dword [rbp + rax + 0x24], ecx
mov ecx, dword [r12 + rax + 0x18]
mov dword [rbp + rax + 0x28], ecx
cmp rdx, r14
jae 0x588b6f
mov rax, rdx
shl rdx, 4
shl rax, 6
add rdx, 5
mov ecx, dword [r12 + rax]
mov dword [rbp + rax], ecx
mov ecx, dword [r12 + rdx*4]
lea rax, [rdx*4]
mov dword [rbp + rax - 0x10], ecx
mov ecx, dword [r12 + rax + 0x14]
mov dword [rbp + rax - 0xc], ecx
mov ecx, dword [r12 + rax + 0x28]
mov dword [rbp + rax - 8], ecx
mov ecx, dword [r12 + rax - 4]
mov dword [rbp + rax - 4], ecx
mov ecx, dword [r12 + rax + 0x10]
mov dword [rbp + rdx*4], ecx
mov edx, dword [r12 + rax + 0x24]
mov dword [rbp + rax + 4], edx
mov edx, dword [r12 + rax - 8]
mov dword [rbp + rax + 8], edx
mov edx, dword [r12 + rax + 0xc]
mov dword [rbp + rax + 0xc], edx
mov edx, dword [r12 + rax + 0x20]
mov dword [rbp + rax + 0x10], edx
mov edx, dword [r12 + rax - 0xc]
mov dword [rbp + rax + 0x14], edx
mov edx, dword [r12 + rax + 8]
mov dword [rbp + rax + 0x18], edx
mov edx, dword [r12 + rax + 0x1c]
mov dword [rbp + rax + 0x1c], edx
mov edx, dword [r12 + rax - 0x10]
mov dword [rbp + rax + 0x20], edx
mov edx, dword [r12 + rax + 4]
mov dword [rbp + rax + 0x24], edx
mov edx, dword [r12 + rax + 0x18]
mov dword [rbp + rax + 0x28], edx
cmp dword [r15], 5
je 0x588c06
lea rdi, [rbp + 0x80]
mov rsi, r13
shl rsi, 7
add rsi, rbp
nop word [rax + rax]
vmovdqu xmm6, xmmword [rdi - 0x80]
mov rdx, r15
mov rcx, rdi
vinsertf128 ymm0, ymm6, xmmword [rdi - 0x70], 1
vmovdqu xmm7, xmmword [rdi - 0x60]
vmovups xmmword [rdi], xmm0
vextractf128 xmmword [rdi + 0x10], ymm0, 1
vinsertf128 ymm0, ymm7, xmmword [rdi - 0x50], 1
vmovdqu xmm2, xmmword [rdi - 0x40]
vmovups xmmword [rdi + 0x20], xmm0
vextractf128 xmmword [rdi + 0x30], ymm0, 1
vinsertf128 ymm0, ymm2, xmmword [rdi - 0x30], 1
vmovdqu xmm4, xmmword [rdi - 0x20]
vmovups xmmword [rdi + 0x40], xmm0
vextractf128 xmmword [rdi + 0x50], ymm0, 1
vinsertf128 ymm0, ymm4, xmmword [rdi - 0x10], 1
vmovups xmmword [rdi + 0x60], xmm0
vextractf128 xmmword [rdi + 0x70], ymm0, 1
vzeroupper
call fcn.00587a60
sub rdi, 0xffffffffffffff80
cmp rsi, rdi
jne 0x588b90
mov eax, dword [rsp + 0x210]
test eax, eax
je 0x588dc0
mov rax, r13
mov rsi, qword [rsp + 0x218]
xor edi, edi
mov qword [rsp + 0xc8], r14
shl rax, 7
mov qword [rsp + 0x200], r12
mov r14, r15
mov r12d, edi
mov qword [rsp + 0x50], rax
lea rax, [rbp + rax - 0x40]
mov qword [rsp + 0xb0], rax
lea rax, [rbx*4]
mov qword [rsp + 0x98], rax
lea rax, [rbp + 0x20]
mov qword [rsp + 0x40], rax
lea rax, [rbp + 0x80]
mov qword [rsp + 0xb8], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0xc0], rax
nop word cs:[rax + rax]
lea rax, [rsi + 0x20]
cmp rbp, rax
mov eax, 0
jae 0x588cb0
cmp qword [rsp + 0x40], rsi
ja 0x5894d8
nop dword [rax]
vmovdqu xmm5, xmmword [rbp + rax]
vinsertf128 ymm0, ymm5, xmmword [rbp + rax + 0x10], 1
vmovups xmmword [rsi + rax], xmm0
vextractf128 xmmword [rsi + rax + 0x10], ymm0, 1
add rax, 0x20
cmp qword [rsp + 0x98], rax
jne 0x588cb0
cmp r12d, 1
jbe 0x588d73
mov rax, qword [rsp + 0xb0]
mov edx, r12d
mov eax, dword [rax]
lea ecx, [rdx - 1]
mov r8d, edx
and edx, ecx
jne 0x588cf0
and eax, ecx
mov rdi, qword [rsp + 0x218]
sub eax, r8d
lea edx, [rax + r12]
mov rax, qword [rsp + 0x218]
imul rdx, r13
shl rdx, 7
add rax, rdx
lea rdx, [rdi + rdx + 0x20]
cmp rbp, rdx
jae 0x588d33
cmp rax, qword [rsp + 0x40]
jb 0x5894f0
xor edx, edx
nop dword [rax]
vmovdqu xmm6, xmmword [rax + rdx]
vinsertf128 ymm1, ymm6, xmmword [rax + rdx + 0x10], 1
vmovdqu xmm7, xmmword [rbp + rdx]
vinsertf128 ymm0, ymm7, xmmword [rbp + rdx + 0x10], 1
vxorps ymm0, ymm0, ymm1
vmovups xmmword [rbp + rdx], xmm0
vextractf128 xmmword [rbp + rdx + 0x10], ymm0, 1
add rdx, 0x20
cmp qword [rsp + 0x98], rdx
jne 0x588d38
mov rax, qword [r14 + 0x18]
cmp qword [rsp + 0x218], rax
je 0x589528
mov r8, r13
mov rdx, r14
mov rcx, rbp
vzeroupper
call fcn.005866f0
add rsi, qword [rsp + 0x50]
add r12d, 1
cmp dword [rsp + 0x210], r12d
jne 0x588c90
mov r15, r14
mov r12, qword [rsp + 0x200]
mov r14, qword [rsp + 0xc8]
cmp qword [rsp + 0xa8], 0x1fe
jbe 0x589ac8
mov rcx, r14
mov rax, r12
mov rdx, rbp
shr rcx, 2
shl rcx, 8
add rcx, r12
nop word cs:[rax + rax]
vmovdqu xmm1, xmmword [rdx + 0x10]
add rax, 0x100
add rdx, 0x100
vmovdqu xmm12, xmmword [rdx - 0xd0]
vmovdqu xmm11, xmmword [rdx - 0xb0]
vmovdqu xmm6, xmmword [rdx - 0x90]
vmovdqu xmm10, xmmword [rdx - 0x70]
vmovdqu xmm8, xmmword [rdx - 0x60]
vmovdqu xmm0, xmmword [rdx - 0x30]
vmovdqu xmm3, xmmword [rdx - 0x100]
vmovdqu xmm14, xmmword [rdx - 0xe0]
vmovdqu xmm4, xmmword [rdx - 0xc0]
vshufps xmm7, xmm3, xmm1, 0x88
vshufps xmm3, xmm3, xmm1, 0xdd
vmovdqu xmm9, xmmword [rdx - 0xa0]
vshufps xmm1, xmm14, xmm12, 0x88
vshufps xmm14, xmm14, xmm12, 0xdd
vmovups xmmword [rsp + 0x50], xmm14
vmovdqu xmm2, xmmword [rdx - 0x80]
vshufps xmm14, xmm7, xmm1, 0x88
vshufps xmm12, xmm4, xmm11, 0x88
vshufps xmm1, xmm7, xmm1, 0xdd
vmovdqu xmm5, xmmword [rdx - 0x50]
vshufps xmm4, xmm4, xmm11, 0xdd
vshufps xmm11, xmm9, xmm6, 0x88
vshufps xmm9, xmm9, xmm6, 0xdd
vmovdqu xmm15, xmmword [rdx - 0x40]
vshufps xmm6, xmm2, xmm10, 0x88
vshufps xmm7, xmm12, xmm11, 0x88
vshufps xmm2, xmm2, xmm10, 0xdd
vmovdqu xmm13, xmmword [rdx - 0x20]
vshufps xmm10, xmm8, xmm5, 0x88
vshufps xmm12, xmm12, xmm11, 0xdd
vshufps xmm5, xmm8, xmm5, 0xdd
vshufps xmm8, xmm15, xmm0, 0x88
vshufps xmm15, xmm15, xmm0, 0xdd
vshufps xmm0, xmm13, xmmword [rdx - 0x10], 0x88
vshufps xmm11, xmm8, xmm0, 0x88
vshufps xmm0, xmm8, xmm0, 0xdd
vmovdqu xmm8, xmmword [rsp + 0x50]
vmovups xmmword [rsp + 0x40], xmm12
vshufps xmm13, xmm13, xmmword [rdx - 0x10], 0xdd
vshufps xmm12, xmm6, xmm10, 0x88
vshufps xmm6, xmm6, xmm10, 0xdd
vshufps xmm10, xmm3, xmm8, 0x88
vshufps xmm3, xmm3, xmm8, 0xdd
vshufps xmm8, xmm4, xmm9, 0x88
vshufps xmm4, xmm4, xmm9, 0xdd
vshufps xmm9, xmm2, xmm5, 0x88
vshufps xmm2, xmm2, xmm5, 0xdd
vshufps xmm5, xmm15, xmm13, 0x88
vshufps xmm15, xmm15, xmm13, 0xdd
vshufps xmm13, xmm14, xmm7, 0x88
vshufps xmm7, xmm14, xmm7, 0xdd
vshufps xmm14, xmm12, xmm11, 0x88
vshufps xmm11, xmm12, xmm11, 0xdd
vmovups xmmword [rsp + 0x70], xmm11
vshufps xmm11, xmm10, xmm8, 0x88
vshufps xmm8, xmm10, xmm8, 0xdd
vshufps xmm10, xmm9, xmm5, 0x88
vshufps xmm5, xmm9, xmm5, 0xdd
vmovdqu xmm9, xmmword [rsp + 0x40]
vshufps xmm12, xmm1, xmm9, 0x88
vshufps xmm1, xmm1, xmm9, 0xdd
vshufps xmm9, xmm6, xmm0, 0x88
vshufps xmm6, xmm6, xmm0, 0xdd
vshufps xmm0, xmm3, xmm4, 0x88
vshufps xmm4, xmm3, xmm4, 0xdd
vshufps xmm3, xmm2, xmm15, 0x88
vshufps xmm2, xmm2, xmm15, 0xdd
vshufps xmm15, xmm13, xmm14, 0x88
vshufps xmm14, xmm13, xmm14, 0xdd
vshufps xmm13, xmm11, xmm10, 0x88
vshufps xmm10, xmm11, xmm10, 0xdd
vshufps xmm11, xmm0, xmm3, 0x88
vshufps xmm0, xmm0, xmm3, 0xdd
vmovdqu xmm3, xmmword [rsp + 0x70]
vmovups xmmword [rsp + 0x60], xmm13
vshufps xmm13, xmm12, xmm9, 0x88
vshufps xmm12, xmm12, xmm9, 0xdd
vmovups xmmword [rsp + 0x50], xmm13
vpunpckhdq xmm13, xmm15, xmm14
vshufps xmm9, xmm7, xmm3, 0x88
vshufps xmm3, xmm7, xmm3, 0xdd
vshufps xmm7, xmm4, xmm2, 0x88
vshufps xmm2, xmm4, xmm2, 0xdd
vpunpckldq xmm4, xmm15, xmm14
vmovdqu xmm14, xmmword [rsp + 0x50]
vmovups xmmword [rsp + 0x40], xmm11
vshufps xmm11, xmm8, xmm5, 0x88
vshufps xmm8, xmm8, xmm5, 0xdd
vshufps xmm5, xmm1, xmm6, 0x88
vshufps xmm6, xmm1, xmm6, 0xdd
vpunpckldq xmm1, xmm8, xmm11
vpunpckldq xmm15, xmm12, xmm14
vpunpckhdq xmm12, xmm12, xmm14
vpunpckldq xmm14, xmm7, xmm2
vpunpckhdq xmm7, xmm7, xmm2
vpunpckldq xmm2, xmm9, xmm3
vmovups xmmword [rsp + 0x70], xmm7
vpunpckhdq xmm7, xmm9, xmm3
vmovdqu xmm9, xmmword [rsp + 0x60]
vpunpckhdq xmm8, xmm8, xmm11
vpunpckldq xmm3, xmm9, xmm10
vpunpckhdq xmm10, xmm9, xmm10
vpunpckldq xmm9, xmm6, xmm5
vpunpckhdq xmm6, xmm6, xmm5
vmovdqu xmm5, xmmword [rsp + 0x40]
vpunpckldq xmm11, xmm0, xmm5
vpunpckhdq xmm0, xmm0, xmm5
vpunpckldq xmm5, xmm4, xmm2
vpunpckhdq xmm2, xmm4, xmm2
vpunpckldq xmm4, xmm13, xmm7
vpunpckhdq xmm13, xmm13, xmm7
vpunpckldq xmm7, xmm1, xmm3
vpunpckhdq xmm3, xmm1, xmm3
vpunpckldq xmm1, xmm8, xmm10
vpunpckhdq xmm8, xmm8, xmm10
vmovups xmmword [rsp + 0x60], xmm1
vpunpckldq xmm10, xmm15, xmm9
vmovups xmmword [rsp + 0x50], xmm8
vpunpckhdq xmm9, xmm15, xmm9
vmovdqu xmm15, xmmword [rsp + 0x70]
vpunpckldq xmm8, xmm12, xmm6
vpunpckhdq xmm1, xmm12, xmm6
vpunpckldq xmm12, xmm14, xmm11
vpunpckhdq xmm11, xmm14, xmm11
vpunpckldq xmm14, xmm7, xmm12
vpunpckldq xmm6, xmm15, xmm0
vpunpckhdq xmm0, xmm15, xmm0
vpunpckldq xmm15, xmm5, xmm10
vpunpckhdq xmm5, xmm5, xmm10
vpunpckldq xmm10, xmm2, xmm9
vpunpckhdq xmm2, xmm2, xmm9
vpunpckldq xmm9, xmm4, xmm8
vpunpckhdq xmm4, xmm4, xmm8
vpunpckldq xmm8, xmm13, xmm1
vpunpckhdq xmm1, xmm13, xmm1
vpunpckldq xmm13, xmm3, xmm11
vpunpckhdq xmm3, xmm3, xmm11
vmovdqu xmm11, xmmword [rsp + 0x60]
vpunpckhdq xmm7, xmm7, xmm12
vmovups xmmword [rsp + 0x40], xmm1
vpunpckldq xmm12, xmm11, xmm6
vpunpckhdq xmm6, xmm11, xmm6
vmovdqu xmm11, xmmword [rsp + 0x50]
vpunpckldq xmm1, xmm11, xmm0
vpunpckhdq xmm0, xmm11, xmm0
vpunpckldq xmm11, xmm15, xmm14
vpunpckhdq xmm14, xmm15, xmm14
vmovups xmmword [rax - 0xf0], xmm14
vpunpckldq xmm14, xmm5, xmm7
vpunpckhdq xmm5, xmm5, xmm7
vmovups xmmword [rax - 0xd0], xmm5
vpunpckldq xmm5, xmm10, xmm13
vpunpckhdq xmm10, xmm10, xmm13
vmovups xmmword [rax - 0xc0], xmm5
vpunpckldq xmm5, xmm2, xmm3
vpunpckhdq xmm2, xmm2, xmm3
vmovups xmmword [rax - 0xa0], xmm5
vmovdqu xmm5, xmmword [rsp + 0x40]
vmovups xmmword [rax - 0x90], xmm2
vpunpckldq xmm2, xmm9, xmm12
vpunpckhdq xmm9, xmm9, xmm12
vmovups xmmword [rax - 0x80], xmm2
vpunpckldq xmm2, xmm4, xmm6
vpunpckhdq xmm4, xmm4, xmm6
vmovups xmmword [rax - 0x60], xmm2
vpunpckldq xmm2, xmm8, xmm1
vpunpckhdq xmm8, xmm8, xmm1
vmovups xmmword [rax - 0x40], xmm2
vpunpckldq xmm2, xmm5, xmm0
vpunpckhdq xmm0, xmm5, xmm0
vmovups xmmword [rax - 0x100], xmm11
vmovups xmmword [rax - 0xe0], xmm14
vmovups xmmword [rax - 0xb0], xmm10
vmovups xmmword [rax - 0x70], xmm9
vmovups xmmword [rax - 0x50], xmm4
vmovups xmmword [rax - 0x30], xmm8
vmovups xmmword [rax - 0x20], xmm2
vmovups xmmword [rax - 0x10], xmm0
cmp rax, rcx
jne 0x588df0
mov rdx, r14
and rdx, 0xfffffffffffffffc
test r14b, 3
je 0x5893fc
mov rax, rdx
shl rax, 6
mov ecx, dword [rbp + rax]
mov dword [r12 + rax], ecx
mov rcx, rdx
shl rcx, 4
add rcx, 1
mov r8d, dword [rbp + rcx*4]
lea rax, [rcx*4]
mov dword [r12 + rax + 0x10], r8d
mov r8d, dword [rbp + rax + 4]
mov dword [r12 + rax + 0x24], r8d
mov r8d, dword [rbp + rax + 8]
mov dword [r12 + rax + 0x38], r8d
mov r8d, dword [rbp + rax + 0xc]
mov dword [r12 + rax + 0xc], r8d
mov r8d, dword [rbp + rax + 0x10]
mov dword [r12 + rax + 0x20], r8d
mov r8d, dword [rbp + rax + 0x14]
mov dword [r12 + rax + 0x34], r8d
mov r8d, dword [rbp + rax + 0x18]
mov dword [r12 + rax + 8], r8d
mov r8d, dword [rbp + rax + 0x1c]
mov dword [r12 + rax + 0x1c], r8d
mov r8d, dword [rbp + rax + 0x20]
mov dword [r12 + rax + 0x30], r8d
mov r8d, dword [rbp + rax + 0x24]
mov dword [r12 + rax + 4], r8d
mov r8d, dword [rbp + rax + 0x28]
mov dword [r12 + rax + 0x18], r8d
mov r8d, dword [rbp + rax + 0x2c]
mov dword [r12 + rax + 0x2c], r8d
mov r8d, dword [rbp + rax + 0x30]
mov dword [r12 + rcx*4], r8d
mov ecx, dword [rbp + rax + 0x34]
mov dword [r12 + rax + 0x14], ecx
mov ecx, dword [rbp + rax + 0x38]
mov dword [r12 + rax + 0x28], ecx
lea rax, [rdx + 1]
cmp rax, r14
jae 0x5893fc
mov rcx, rax
shl rax, 4
add rdx, 2
shl rcx, 6
mov r8d, dword [rbp + rcx]
mov dword [r12 + rcx], r8d
lea rcx, [rax + 1]
mov r8d, dword [rbp + rcx*4]
lea rax, [rcx*4]
mov dword [r12 + rax + 0x10], r8d
mov r8d, dword [rbp + rax + 4]
mov dword [r12 + rax + 0x24], r8d
mov r8d, dword [rbp + rax + 8]
mov dword [r12 + rax + 0x38], r8d
mov r8d, dword [rbp + rax + 0xc]
mov dword [r12 + rax + 0xc], r8d
mov r8d, dword [rbp + rax + 0x10]
mov dword [r12 + rax + 0x20], r8d
mov r8d, dword [rbp + rax + 0x14]
mov dword [r12 + rax + 0x34], r8d
mov r8d, dword [rbp + rax + 0x18]
mov dword [r12 + rax + 8], r8d
mov r8d, dword [rbp + rax + 0x1c]
mov dword [r12 + rax + 0x1c], r8d
mov r8d, dword [rbp + rax + 0x20]
mov dword [r12 + rax + 0x30], r8d
mov r8d, dword [rbp + rax + 0x24]
mov dword [r12 + rax + 4], r8d
mov r8d, dword [rbp + rax + 0x28]
mov dword [r12 + rax + 0x18], r8d
mov r8d, dword [rbp + rax + 0x2c]
mov dword [r12 + rax + 0x2c], r8d
mov r8d, dword [rbp + rax + 0x30]
mov dword [r12 + rcx*4], r8d
mov ecx, dword [rbp + rax + 0x34]
mov dword [r12 + rax + 0x14], ecx
mov ecx, dword [rbp + rax + 0x38]
mov dword [r12 + rax + 0x28], ecx
cmp r14, rdx
jbe 0x5893fc
mov rax, rdx
shl rdx, 4
shl rax, 6
add rdx, 1
mov ecx, dword [rbp + rax]
mov dword [r12 + rax], ecx
mov ecx, dword [rbp + rdx*4]
lea rax, [rdx*4]
mov dword [r12 + rax + 0x10], ecx
mov ecx, dword [rbp + rax + 4]
mov dword [r12 + rax + 0x24], ecx
mov ecx, dword [rbp + rax + 8]
mov dword [r12 + rax + 0x38], ecx
mov ecx, dword [rbp + rax + 0xc]
mov dword [r12 + rax + 0xc], ecx
mov ecx, dword [rbp + rax + 0x10]
mov dword [r12 + rax + 0x20], ecx
mov ecx, dword [rbp + rax + 0x14]
mov dword [r12 + rax + 0x34], ecx
mov ecx, dword [rbp + rax + 0x18]
mov dword [r12 + rax + 8], ecx
mov ecx, dword [rbp + rax + 0x1c]
mov dword [r12 + rax + 0x1c], ecx
mov ecx, dword [rbp + rax + 0x20]
mov dword [r12 + rax + 0x30], ecx
mov ecx, dword [rbp + rax + 0x24]
mov dword [r12 + rax + 4], ecx
mov ecx, dword [rbp + rax + 0x28]
mov dword [r12 + rax + 0x18], ecx
mov ecx, dword [rbp + rax + 0x2c]
mov dword [r12 + rax + 0x2c], ecx
mov ecx, dword [rbp + rax + 0x30]
mov dword [r12 + rdx*4], ecx
mov edx, dword [rbp + rax + 0x34]
mov dword [r12 + rax + 0x14], edx
mov edx, dword [rbp + rax + 0x38]
mov dword [r12 + rax + 0x28], edx
mov rax, qword [rsp + 0x218]
mov rdx, r13
mov rcx, r12
mov qword [rsp + 0x30], r15
mov r9d, dword [rsp + 0xa0]
mov qword [rsp + 0x28], rbp
mov r8d, dword [rsp + 0x210]
mov qword [rsp + 0x20], rax
vzeroupper
call fcn.00586a70
mov qword [rsp + 0x30], r15
mov rdx, r13
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x28], rbp
mov rcx, r12
mov r9d, dword [rsp + 0xa4]
mov r8d, dword [rsp + 0x210]
mov qword [rsp + 0x20], rax
call fcn.00586a70
nop
vmovups xmm6, xmmword [rsp + 0x110]
vmovups xmm7, xmmword [rsp + 0x120]
vmovups xmm8, xmmword [rsp + 0x130]
vmovups xmm9, xmmword [rsp + 0x140]
vmovups xmm10, xmmword [rsp + 0x150]
vmovups xmm11, xmmword [rsp + 0x160]
vmovups xmm12, xmmword [rsp + 0x170]
vmovups xmm13, xmmword [rsp + 0x180]
vmovups xmm14, xmmword [rsp + 0x190]
vmovups xmm15, xmmword [rsp + 0x1a0]
add rsp, 0x1b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [rbp + rax]
mov dword [rsi + rax], edx
add rax, 4
cmp rax, qword [rsp + 0x50]
jne 0x5894d8
jmp 0x588cd9
mov rdi, qword [rsp + 0x50]
mov rdx, rbp
lea r8, [rax + rdi]
nop dword [rax]
add rax, 4
add rdx, 4
mov ecx, dword [rax - 4]
xor dword [rdx - 4], ecx
cmp r8, rax
jne 0x589500
mov rax, qword [r14 + 0x18]
cmp qword [rsp + 0x218], rax
jne 0x588d85
nop dword [rax]
mov eax, dword [rbp + 0x40]
mov ebx, dword [rbp + 0x68]
mov r15d, dword [r14 + 4]
mov edx, dword [rbp + 0x44]
mov dword [rsp + 0x60], eax
mov eax, dword [rbp + 0x48]
mov dword [rsp + 0x8c], ebx
mov ebx, dword [rbp + 0x70]
mov edi, dword [rbp + 0x4c]
mov r8d, dword [rbp + 0x54]
mov dword [rsp + 0x70], eax
mov eax, dword [rbp + 0x50]
mov dword [rsp + 0x90], ebx
mov ebx, dword [rbp + 0x78]
mov r11d, dword [rbp + 0x5c]
mov r10d, dword [rbp + 0x6c]
mov dword [rsp + 0x80], eax
mov eax, dword [rbp + 0x58]
mov ecx, dword [rbp + 0x74]
mov dword [rsp + 0x94], ebx
mov rbx, rbp
mov r9d, dword [rbp + 0x7c]
mov dword [rsp + 0x84], eax
mov eax, dword [rbp + 0x60]
mov dword [rsp + 0x88], eax
mov eax, dword [rbp + 0x64]
vmovd xmm5, dword [rsp + 0x90]
vmovd xmm4, dword [rsp + 0x94]
vmovd xmm6, dword [rsp + 0x8c]
vmovdqu xmm2, xmmword [rbx + 0x20]
vinsertf128 ymm1, ymm2, xmmword [rbx + 0x30], 1
vpinsrd xmm2, xmm5, ecx, 1
vpinsrd xmm3, xmm4, r9d, 1
vpinsrd xmm4, xmm6, r10d, 1
vmovd xmm6, dword [rsp + 0x60]
vpunpcklqdq xmm2, xmm2, xmm3
vmovd xmm7, dword [rsp + 0x88]
mov rcx, qword [rsp + 0xc0]
vmovdqu xmm3, xmmword [rbx]
vpinsrd xmm0, xmm7, eax, 1
vpunpcklqdq xmm0, xmm0, xmm4
vinsertf128 ymm0, ymm0, xmm2, 1
vmovd xmm4, dword [rsp + 0x84]
vinsertf128 ymm2, ymm3, xmmword [rbx + 0x10], 1
vxorps ymm0, ymm0, ymm1
vpinsrd xmm1, xmm6, edx, 1
vmovd xmm3, dword [rsp + 0x80]
mov edx, r15d
vmovups xmmword [rsp + 0xf0], xmm0
vextractf128 xmmword [rsp + 0x100], ymm0, 1
vmovd xmm5, dword [rsp + 0x70]
vpinsrd xmm4, xmm4, r11d, 1
vpinsrd xmm3, xmm3, r8d, 1
vpunpcklqdq xmm3, xmm3, xmm4
vpinsrd xmm5, xmm5, edi, 1
vpunpcklqdq xmm1, xmm1, xmm5
vinsertf128 ymm1, ymm1, xmm3, 1
vxorps ymm1, ymm1, ymm2
vmovups xmmword [rsp + 0xd0], xmm1
vextractf128 xmmword [rsp + 0xe0], ymm1, 1
vzeroupper
add rbx, 0x40
call fcn.00585fc0
mov eax, dword [rsp + 0xd0]
mov ecx, dword [rsp + 0xf8]
mov r9d, dword [rsp + 0x108]
vmovdqu xmm2, xmmword [rsp + 0xf0]
vinsertf128 ymm0, ymm2, xmmword [rsp + 0x100], 1
vmovups xmmword [rbx - 0x20], xmm0
vextractf128 xmmword [rbx - 0x10], ymm0, 1
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x8c], ecx
mov ecx, dword [rsp + 0x100]
mov dword [rsp + 0x94], r9d
mov edx, dword [rsp + 0xd4]
vmovdqu xmm7, xmmword [rsp + 0xd0]
vinsertf128 ymm1, ymm7, xmmword [rsp + 0xe0], 1
vmovups xmmword [rbx - 0x40], xmm1
vextractf128 xmmword [rbx - 0x30], ymm1, 1
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0xe0]
mov dword [rsp + 0x90], ecx
mov edi, dword [rsp + 0xdc]
mov r8d, dword [rsp + 0xe4]
mov r11d, dword [rsp + 0xec]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0xe8]
mov r10d, dword [rsp + 0xfc]
mov ecx, dword [rsp + 0x104]
mov r9d, dword [rsp + 0x10c]
mov dword [rsp + 0x84], eax
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x88], eax
mov eax, dword [rsp + 0xf4]
cmp rbx, qword [rsp + 0xb8]
jne 0x589595
jmp 0x588d96
xor eax, eax
nop word [rax + rax]
mov edx, dword [rbp + rax]
mov dword [r14 + rax], edx
add rax, 4
cmp rax, 0x80
jne 0x589788
jmp 0x587fe7
mov eax, dword [rbp + 0x40]
mov ebx, dword [rbp + 0x68]
mov r13d, dword [r12 + 4]
mov edx, dword [rbp + 0x44]
mov dword [rsp + 0x90], eax
mov eax, dword [rbp + 0x48]
mov dword [rsp + 0x80], ebx
mov ebx, dword [rbp + 0x70]
mov esi, dword [rbp + 0x4c]
mov r8d, dword [rbp + 0x54]
mov dword [rsp + 0x8c], eax
mov eax, dword [rbp + 0x50]
mov dword [rsp + 0x70], ebx
mov ebx, dword [rbp + 0x78]
mov r11d, dword [rbp + 0x5c]
mov r15d, dword [rbp + 0x60]
mov dword [rsp + 0x88], eax
mov eax, dword [rbp + 0x58]
mov r10d, dword [rbp + 0x6c]
mov dword [rsp + 0x60], ebx
mov rbx, rbp
mov ecx, dword [rbp + 0x74]
mov r9d, dword [rbp + 0x7c]
mov dword [rsp + 0x84], eax
mov eax, dword [rbp + 0x64]
vmovd xmm4, dword [rsp + 0x70]
vmovd xmm7, dword [rsp + 0x60]
vmovd xmm5, dword [rsp + 0x80]
vpinsrd xmm2, xmm4, ecx, 1
vmovdqu xmm6, xmmword [rbx + 0x20]
vinsertf128 ymm1, ymm6, xmmword [rbx + 0x30], 1
vmovd xmm6, r15d
vpinsrd xmm3, xmm7, r9d, 1
vpinsrd xmm4, xmm5, r10d, 1
mov rcx, qword [rsp + 0xa8]
vpinsrd xmm0, xmm6, eax, 1
vpunpcklqdq xmm2, xmm2, xmm3
vmovdqu xmm7, xmmword [rbx]
vpunpcklqdq xmm0, xmm0, xmm4
vinsertf128 ymm0, ymm0, xmm2, 1
vinsertf128 ymm2, ymm7, xmmword [rbx + 0x10], 1
vmovd xmm7, dword [rsp + 0x90]
vxorps ymm0, ymm0, ymm1
vmovups xmmword [rsp + 0xf0], xmm0
vextractf128 xmmword [rsp + 0x100], ymm0, 1
vmovd xmm5, dword [rsp + 0x88]
vmovd xmm4, dword [rsp + 0x84]
vpinsrd xmm1, xmm7, edx, 1
mov edx, r13d
vmovd xmm6, dword [rsp + 0x8c]
vpinsrd xmm3, xmm5, r8d, 1
vpinsrd xmm4, xmm4, r11d, 1
vpunpcklqdq xmm3, xmm3, xmm4
vpinsrd xmm5, xmm6, esi, 1
vpunpcklqdq xmm1, xmm1, xmm5
vinsertf128 ymm1, ymm1, xmm3, 1
vxorps ymm1, ymm1, ymm2
vmovups xmmword [rsp + 0xd0], xmm1
vextractf128 xmmword [rsp + 0xe0], ymm1, 1
vzeroupper
add rbx, 0x40
call fcn.00585fc0
mov eax, dword [rsp + 0xd0]
mov ecx, dword [rsp + 0xf8]
mov r9d, dword [rsp + 0x108]
vmovdqu xmm4, xmmword [rsp + 0xf0]
vinsertf128 ymm0, ymm4, xmmword [rsp + 0x100], 1
vmovups xmmword [rbx - 0x20], xmm0
vextractf128 xmmword [rbx - 0x10], ymm0, 1
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x80], ecx
mov ecx, dword [rsp + 0x100]
vmovdqu xmm5, xmmword [rsp + 0xd0]
mov dword [rsp + 0x60], r9d
vinsertf128 ymm1, ymm5, xmmword [rsp + 0xe0], 1
vextractf128 xmmword [rbx - 0x30], ymm1, 1
vmovups xmmword [rbx - 0x40], xmm1
mov edx, dword [rsp + 0xd4]
mov dword [rsp + 0x8c], eax
mov eax, dword [rsp + 0xe0]
mov dword [rsp + 0x70], ecx
mov esi, dword [rsp + 0xdc]
mov r8d, dword [rsp + 0xe4]
mov r11d, dword [rsp + 0xec]
mov dword [rsp + 0x88], eax
mov eax, dword [rsp + 0xe8]
mov r15d, dword [rsp + 0xf0]
mov r10d, dword [rsp + 0xfc]
mov ecx, dword [rsp + 0x104]
mov dword [rsp + 0x84], eax
mov r9d, dword [rsp + 0x10c]
mov eax, dword [rsp + 0xf4]
cmp rbx, qword [rsp + 0x98]
jne 0x589810
jmp 0x588410
xor eax, eax
nop word [rax + rax]
mov edx, dword [rbp + rax]
mov dword [r14 + rax], edx
add rax, 4
cmp rax, 0x80
jne 0x5899f8
jmp 0x588317
xor eax, eax
nop word [rax + rax]
mov ecx, dword [rdx + rax]
xor dword [rbp + rax], ecx
add rax, 4
cmp rax, 0x80
jne 0x589a20
jmp 0x5883f2
mov r8, r13
mov rax, r12
mov rdx, rbp
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 - 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 0x589a50
jmp 0x588b6f
mov r8, r13
mov rax, rbp
mov rdx, r12
shl r8, 7
add r8, rbp
nop dword [rax + rax]
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 0x589ae0
jmp 0x5893fc