Function at 0x586a70
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x118
vmovups xmmword [rsp + 0x70], xmm6
vmovups xmmword [rsp + 0x80], xmm7
vmovups xmmword [rsp + 0x90], xmm8
vmovups xmmword [rsp + 0xa0], xmm9
vmovups xmmword [rsp + 0xb0], xmm10
vmovups xmmword [rsp + 0xc0], xmm11
vmovups xmmword [rsp + 0xd0], xmm12
vmovups xmmword [rsp + 0xe0], xmm13
vmovups xmmword [rsp + 0xf0], xmm14
vmovups xmmword [rsp + 0x100], xmm15
mov rbx, qword [rsp + 0x188]
mov rdi, qword [rsp + 0x180]
lea rax, [rdx + rdx]
mov r12, rdx
mov esi, r9d
mov r9, rdx
mov r15, rcx
mov qword [rsp + 0x60], rax
lea rdx, [rbx + 0xff]
shl r9, 5
sub rdx, rcx
mov qword [rsp + 0x68], rdx
cmp rdx, 0x1fe
jbe 0x58794d
lea r11, [r12 + r12]
mov rdx, rcx
mov rcx, rbx
shr r11, 2
shl r11, 8
add r11, r15
nop dword [rax]
vmovdqu xmm7, xmmword [rdx]
add rdx, 0x100
add rcx, 0x100
vmovdqu xmm14, xmmword [rdx - 0xe0]
vmovdqu xmm11, xmmword [rdx - 0xb0]
vmovdqu xmm6, xmmword [rdx - 0xa0]
vmovdqu xmm10, xmmword [rdx - 0x70]
vmovdqu xmm4, xmmword [rdx - 0x60]
vmovdqu xmm1, xmmword [rdx - 0x40]
vmovdqu xmm3, xmmword [rdx - 0xf0]
vmovdqu xmm12, xmmword [rdx - 0xd0]
vmovdqu xmm8, xmmword [rdx - 0xc0]
vshufps xmm9, xmm7, xmm3, 0x88
vshufps xmm3, xmm7, xmm3, 0xdd
vmovdqu xmm5, xmmword [rdx - 0x90]
vshufps xmm7, xmm14, xmm12, 0x88
vshufps xmm12, xmm14, xmm12, 0xdd
vmovups xmmword [rsp + 0x20], xmm12
vmovdqu xmm13, xmmword [rdx - 0x80]
vshufps xmm14, xmm8, xmm11, 0x88
vshufps xmm8, xmm8, xmm11, 0xdd
vmovdqu xmm0, xmmword [rdx - 0x50]
vshufps xmm12, xmm6, xmm5, 0x88
vshufps xmm5, xmm6, xmm5, 0xdd
vmovdqu xmm2, xmmword [rdx - 0x30]
vshufps xmm6, xmm13, xmm10, 0x88
vshufps xmm13, xmm13, xmm10, 0xdd
vmovdqu xmm15, xmmword [rdx - 0x20]
vshufps xmm10, xmm4, xmm0, 0x88
vshufps xmm0, xmm4, xmm0, 0xdd
vshufps xmm4, xmm15, xmmword [rdx - 0x10], 0x88
vshufps xmm11, xmm1, xmm2, 0x88
vshufps xmm2, xmm1, xmm2, 0xdd
vshufps xmm1, xmm15, xmmword [rdx - 0x10], 0xdd
vshufps xmm15, xmm9, xmm7, 0x88
vshufps xmm9, xmm9, xmm7, 0xdd
vshufps xmm7, xmm14, xmm12, 0x88
vshufps xmm14, xmm14, xmm12, 0xdd
vshufps xmm12, xmm11, xmm4, 0x88
vshufps xmm11, xmm11, xmm4, 0xdd
vmovdqu xmm4, xmmword [rsp + 0x20]
vmovups xmmword [rsp + 0x30], xmm14
vshufps xmm14, xmm6, xmm10, 0x88
vshufps xmm6, xmm6, xmm10, 0xdd
vshufps xmm10, xmm3, xmm4, 0x88
vshufps xmm3, xmm3, xmm4, 0xdd
vshufps xmm4, xmm8, xmm5, 0x88
vshufps xmm8, xmm8, xmm5, 0xdd
vshufps xmm5, xmm13, xmm0, 0x88
vshufps xmm13, xmm13, xmm0, 0xdd
vshufps xmm0, xmm2, xmm1, 0x88
vshufps xmm1, xmm2, xmm1, 0xdd
vshufps xmm2, xmm15, xmm7, 0x88
vshufps xmm7, xmm15, xmm7, 0xdd
vshufps xmm15, xmm14, xmm12, 0x88
vshufps xmm12, xmm14, xmm12, 0xdd
vmovups xmmword [rsp + 0x40], xmm12
vshufps xmm12, xmm10, xmm4, 0x88
vshufps xmm10, xmm10, xmm4, 0xdd
vshufps xmm4, xmm5, xmm0, 0x88
vshufps xmm5, xmm5, xmm0, 0xdd
vmovdqu xmm0, xmmword [rsp + 0x30]
vshufps xmm14, xmm9, xmm0, 0x88
vshufps xmm9, xmm9, xmm0, 0xdd
vshufps xmm0, xmm6, xmm11, 0x88
vshufps xmm6, xmm6, xmm11, 0xdd
vshufps xmm11, xmm3, xmm8, 0x88
vshufps xmm8, xmm3, xmm8, 0xdd
vshufps xmm3, xmm13, xmm1, 0x88
vshufps xmm1, xmm13, xmm1, 0xdd
vshufps xmm13, xmm2, xmm15, 0x88
vshufps xmm15, xmm2, xmm15, 0xdd
vshufps xmm2, xmm12, xmm4, 0x88
vmovups xmmword [rsp + 0x30], xmm2
vmovdqu xmm2, xmmword [rsp + 0x40]
vshufps xmm4, xmm12, xmm4, 0xdd
vshufps xmm12, xmm14, xmm0, 0x88
vshufps xmm0, xmm14, xmm0, 0xdd
vshufps xmm14, xmm11, xmm3, 0x88
vshufps xmm3, xmm11, xmm3, 0xdd
vmovups xmmword [rsp + 0x50], xmm14
vshufps xmm14, xmm10, xmm5, 0x88
vmovups xmmword [rsp + 0x20], xmm3
vshufps xmm11, xmm7, xmm2, 0x88
vshufps xmm3, xmm7, xmm2, 0xdd
vshufps xmm5, xmm10, xmm5, 0xdd
vshufps xmm7, xmm8, xmm1, 0x88
vshufps xmm10, xmm9, xmm6, 0x88
vshufps xmm2, xmm8, xmm1, 0xdd
vshufps xmm6, xmm9, xmm6, 0xdd
vpunpckldq xmm8, xmm11, xmm3
vpunpckldq xmm9, xmm13, xmm15
vpunpckhdq xmm13, xmm13, xmm15
vpunpckldq xmm15, xmm14, xmm5
vpunpckhdq xmm5, xmm14, xmm5
vpunpckldq xmm14, xmm2, xmm7
vpunpckhdq xmm2, xmm2, xmm7
vpunpckhdq xmm7, xmm11, xmm3
vmovdqu xmm11, xmmword [rsp + 0x30]
vpunpckldq xmm1, xmm0, xmm12
vpunpckhdq xmm0, xmm0, xmm12
vpunpckldq xmm12, xmm6, xmm10
vpunpckhdq xmm6, xmm6, xmm10
vmovdqu xmm10, xmmword [rsp + 0x50]
vpunpckldq xmm3, xmm4, xmm11
vpunpckhdq xmm4, xmm4, xmm11
vpunpckldq xmm11, xmm10, xmmword [rsp + 0x20]
vpunpckhdq xmm10, xmm10, xmmword [rsp + 0x20]
vmovups xmmword [rsp + 0x20], xmm10
vpunpckldq xmm10, xmm9, xmm8
vpunpckhdq xmm9, xmm9, xmm8
vpunpckldq xmm8, xmm13, xmm7
vpunpckhdq xmm13, xmm13, xmm7
vpunpckldq xmm7, xmm15, xmm3
vpunpckhdq xmm3, xmm15, xmm3
vpunpckldq xmm15, xmm5, xmm4
vpunpckhdq xmm4, xmm5, xmm4
vpunpckldq xmm5, xmm1, xmm12
vmovups xmmword [rsp + 0x30], xmm4
vpunpckhdq xmm1, xmm1, xmm12
vpunpckldq xmm12, xmm14, xmm11
vpunpckhdq xmm11, xmm14, xmm11
vmovdqu xmm14, xmmword [rsp + 0x20]
vpunpckldq xmm4, xmm0, xmm6
vpunpckhdq xmm0, xmm0, xmm6
vpunpckldq xmm6, xmm2, xmm14
vpunpckhdq xmm2, xmm2, xmm14
vpunpckldq xmm14, xmm10, xmm5
vpunpckhdq xmm5, xmm10, xmm5
vpunpckldq xmm10, xmm9, xmm1
vpunpckhdq xmm1, xmm9, xmm1
vpunpckldq xmm9, xmm8, xmm4
vpunpckhdq xmm4, xmm8, xmm4
vpunpckldq xmm8, xmm13, xmm0
vpunpckhdq xmm0, xmm13, xmm0
vpunpckldq xmm13, xmm7, xmm12
vpunpckhdq xmm7, xmm7, xmm12
vpunpckldq xmm12, xmm15, xmm6
vpunpckhdq xmm6, xmm15, xmm6
vmovdqu xmm15, xmmword [rsp + 0x30]
vmovups xmmword [rsp + 0x20], xmm13
vpunpckldq xmm13, xmm3, xmm11
vpunpckhdq xmm3, xmm3, xmm11
vpunpckldq xmm11, xmm15, xmm2
vpunpckhdq xmm2, xmm15, xmm2
vpunpckldq xmm15, xmm14, xmmword [rsp + 0x20]
vpunpckhdq xmm14, xmm14, xmmword [rsp + 0x20]
vmovups xmmword [rcx - 0x100], xmm15
vmovups xmmword [rcx - 0xf0], xmm14
vpunpckldq xmm14, xmm5, xmm7
vpunpckhdq xmm5, xmm5, xmm7
vmovups xmmword [rcx - 0xe0], xmm14
vmovups xmmword [rcx - 0xd0], xmm5
vpunpckldq xmm5, xmm10, xmm13
vpunpckhdq xmm10, xmm10, xmm13
vmovups xmmword [rcx - 0xc0], xmm5
vpunpckldq xmm5, xmm1, xmm3
vpunpckhdq xmm1, xmm1, xmm3
vmovups xmmword [rcx - 0xb0], xmm10
vmovups xmmword [rcx - 0x90], xmm1
vpunpckldq xmm1, xmm9, xmm12
vpunpckhdq xmm9, xmm9, xmm12
vmovups xmmword [rcx - 0x80], xmm1
vpunpckldq xmm1, xmm4, xmm6
vpunpckhdq xmm4, xmm4, xmm6
vmovups xmmword [rcx - 0x60], xmm1
vpunpckldq xmm1, xmm8, xmm11
vpunpckhdq xmm8, xmm8, xmm11
vmovups xmmword [rcx - 0x40], xmm1
vpunpckldq xmm1, xmm0, xmm2
vpunpckhdq xmm0, xmm0, xmm2
vmovups xmmword [rcx - 0xa0], xmm5
vmovups xmmword [rcx - 0x70], xmm9
vmovups xmmword [rcx - 0x50], xmm4
vmovups xmmword [rcx - 0x30], xmm8
vmovups xmmword [rcx - 0x20], xmm1
vmovups xmmword [rcx - 0x10], xmm0
cmp rdx, r11
jne 0x586b38
mov rax, qword [rsp + 0x60]
mov rcx, rax
and rcx, 0xfffffffffffffffc
test al, 3
je 0x587124
mov rdx, rcx
shl rdx, 6
mov r11d, dword [r15 + rdx]
mov dword [rbx + rdx], r11d
mov r11, rcx
shl r11, 4
add r11, 5
mov ebp, dword [r15 + r11*4]
lea rdx, [r11*4]
mov dword [rbx + rdx - 0x10], ebp
mov ebp, dword [r15 + rdx + 0x14]
mov dword [rbx + rdx - 0xc], ebp
mov ebp, dword [r15 + rdx + 0x28]
mov dword [rbx + rdx - 8], ebp
mov ebp, dword [r15 + rdx - 4]
mov dword [rbx + rdx - 4], ebp
mov ebp, dword [r15 + rdx + 0x10]
mov dword [rbx + r11*4], ebp
mov r11d, dword [r15 + rdx + 0x24]
mov dword [rbx + rdx + 4], r11d
mov r11d, dword [r15 + rdx - 8]
mov dword [rbx + rdx + 8], r11d
mov r11d, dword [r15 + rdx + 0xc]
mov dword [rbx + rdx + 0xc], r11d
mov r11d, dword [r15 + rdx + 0x20]
mov dword [rbx + rdx + 0x10], r11d
mov r11d, dword [r15 + rdx - 0xc]
mov dword [rbx + rdx + 0x14], r11d
mov r11d, dword [r15 + rdx + 8]
mov dword [rbx + rdx + 0x18], r11d
mov r11d, dword [r15 + rdx + 0x1c]
mov dword [rbx + rdx + 0x1c], r11d
mov r11d, dword [r15 + rdx - 0x10]
mov dword [rbx + rdx + 0x20], r11d
mov r11d, dword [r15 + rdx + 4]
mov dword [rbx + rdx + 0x24], r11d
mov r11d, dword [r15 + rdx + 0x18]
mov dword [rbx + rdx + 0x28], r11d
lea rdx, [rcx + 1]
cmp rax, rdx
jbe 0x587124
mov r11, rdx
shl rdx, 4
add rcx, 2
shl r11, 6
mov ebp, dword [r15 + r11]
mov dword [rbx + r11], ebp
lea r11, [rdx + 5]
mov ebp, dword [r15 + r11*4]
lea rdx, [r11*4]
mov dword [rbx + rdx - 0x10], ebp
mov ebp, dword [r15 + rdx + 0x14]
mov dword [rbx + rdx - 0xc], ebp
mov ebp, dword [r15 + rdx + 0x28]
mov dword [rbx + rdx - 8], ebp
mov ebp, dword [r15 + rdx - 4]
mov dword [rbx + rdx - 4], ebp
mov ebp, dword [r15 + rdx + 0x10]
mov dword [rbx + r11*4], ebp
mov r11d, dword [r15 + rdx + 0x24]
mov dword [rbx + rdx + 4], r11d
mov r11d, dword [r15 + rdx - 8]
mov dword [rbx + rdx + 8], r11d
mov r11d, dword [r15 + rdx + 0xc]
mov dword [rbx + rdx + 0xc], r11d
mov r11d, dword [r15 + rdx + 0x20]
mov dword [rbx + rdx + 0x10], r11d
mov r11d, dword [r15 + rdx - 0xc]
mov dword [rbx + rdx + 0x14], r11d
mov r11d, dword [r15 + rdx + 8]
mov dword [rbx + rdx + 0x18], r11d
mov r11d, dword [r15 + rdx + 0x1c]
mov dword [rbx + rdx + 0x1c], r11d
mov r11d, dword [r15 + rdx - 0x10]
mov dword [rbx + rdx + 0x20], r11d
mov r11d, dword [r15 + rdx + 4]
mov dword [rbx + rdx + 0x24], r11d
mov r11d, dword [r15 + rdx + 0x18]
mov dword [rbx + rdx + 0x28], r11d
cmp rax, rcx
jbe 0x587124
mov rdx, rcx
shl rcx, 4
shl rdx, 6
add rcx, 5
mov r11d, dword [r15 + rdx]
mov dword [rbx + rdx], r11d
mov r11d, dword [r15 + rcx*4]
lea rdx, [rcx*4]
mov dword [rbx + rdx - 0x10], r11d
mov r11d, dword [r15 + rdx + 0x14]
mov dword [rbx + rdx - 0xc], r11d
mov r11d, dword [r15 + rdx + 0x28]
mov dword [rbx + rdx - 8], r11d
mov r11d, dword [r15 + rdx - 4]
mov dword [rbx + rdx - 4], r11d
mov r11d, dword [r15 + rdx + 0x10]
mov dword [rbx + rcx*4], r11d
mov ecx, dword [r15 + rdx + 0x24]
mov dword [rbx + rdx + 4], ecx
mov ecx, dword [r15 + rdx - 8]
mov dword [rbx + rdx + 8], ecx
mov ecx, dword [r15 + rdx + 0xc]
mov dword [rbx + rdx + 0xc], ecx
mov ecx, dword [r15 + rdx + 0x20]
mov dword [rbx + rdx + 0x10], ecx
mov ecx, dword [r15 + rdx - 0xc]
mov dword [rbx + rdx + 0x14], ecx
mov ecx, dword [r15 + rdx + 8]
mov dword [rbx + rdx + 0x18], ecx
mov ecx, dword [r15 + rdx + 0x1c]
mov dword [rbx + rdx + 0x1c], ecx
mov ecx, dword [r15 + rdx - 0x10]
mov dword [rbx + rdx + 0x20], ecx
mov ecx, dword [r15 + rdx + 4]
mov dword [rbx + rdx + 0x24], ecx
mov ecx, dword [r15 + rdx + 0x18]
mov dword [rbx + rdx + 0x28], ecx
test esi, esi
je 0x58724a
mov rax, r12
xor r14d, r14d
mov qword [rsp + 0x168], r12
shl rax, 7
mov qword [rsp + 0x160], r15
mov r15d, r14d
mov r14, rbx
lea r13, [r9*4]
mov qword [rsp + 0x50], rax
lea rdx, [rbx + rax - 0x40]
mov r12, r13
mov r13, qword [rsp + 0x168]
lea rbp, [rbx + rax]
mov qword [rsp + 0x20], rdx
lea rax, [rbx + 0x20]
mov rbx, qword [rsp + 0x190]
lea edx, [r8 - 1]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x30], edx
nop dword [rax + rax]
mov rax, qword [rsp + 0x20]
mov ecx, dword [rsp + 0x30]
and ecx, dword [rax]
imul rcx, r13
shl rcx, 7
lea rdx, [rdi + rcx]
lea rcx, [rdi + rcx + 0x20]
cmp r14, rcx
setae r11b
cmp rdx, qword [rsp + 0x40]
setae cl
or r11b, cl
je 0x587908
xor ecx, ecx
nop word cs:[rax + rax]
vmovdqu xmm3, xmmword [rdx + rcx]
vinsertf128 ymm1, ymm3, xmmword [rdx + rcx + 0x10], 1
vmovdqu xmm6, xmmword [r14 + rcx]
vinsertf128 ymm0, ymm6, xmmword [r14 + rcx + 0x10], 1
vxorps ymm0, ymm0, ymm1
vmovups xmmword [r14 + rcx], xmm0
vextractf128 xmmword [r14 + rcx + 0x10], ymm0, 1
add rcx, 0x20
cmp rcx, r12
jne 0x5871d0
cmp esi, 2
jne 0x5878d0
vzeroupper
mov r8, r13
mov rdx, rbx
mov rcx, r14
call fcn.005866f0
add r15d, 1
cmp esi, r15d
jne 0x587190
cmp qword [rsp + 0x68], 0x1fe
mov r12, r13
mov rbx, r14
mov r15, qword [rsp + 0x160]
jbe 0x5879d4
mov r8, qword [rsp + 0x60]
mov rdx, rbx
mov rcx, r15
shr r8, 2
shl r8, 8
add r8, rbx
vmovdqu xmm7, xmmword [rdx]
add rdx, 0x100
add rcx, 0x100
vmovdqu xmm11, xmmword [rdx - 0xd0]
vmovdqu xmm10, xmmword [rdx - 0xc0]
vmovdqu xmm6, xmmword [rdx - 0x90]
vmovdqu xmm9, xmmword [rdx - 0x80]
vmovdqu xmm8, xmmword [rdx - 0x60]
vmovdqu xmm3, xmmword [rdx - 0x30]
vmovdqu xmm4, xmmword [rdx - 0xf0]
vmovdqu xmm12, xmmword [rdx - 0xe0]
vmovdqu xmm5, xmmword [rdx - 0xb0]
vshufps xmm15, xmm7, xmm4, 0x88
vshufps xmm4, xmm7, xmm4, 0xdd
vmovdqu xmm0, xmmword [rdx - 0xa0]
vshufps xmm7, xmm12, xmm11, 0x88
vshufps xmm12, xmm12, xmm11, 0xdd
vmovups xmmword [rsp + 0x20], xmm12
vmovdqu xmm2, xmmword [rdx - 0x70]
vshufps xmm12, xmm15, xmm7, 0x88
vshufps xmm11, xmm10, xmm5, 0x88
vshufps xmm15, xmm15, xmm7, 0xdd
vmovdqu xmm1, xmmword [rdx - 0x50]
vshufps xmm5, xmm10, xmm5, 0xdd
vshufps xmm10, xmm0, xmm6, 0x88
vshufps xmm0, xmm0, xmm6, 0xdd
vmovdqu xmm14, xmmword [rdx - 0x40]
vshufps xmm6, xmm9, xmm2, 0x88
vshufps xmm7, xmm11, xmm10, 0x88
vshufps xmm2, xmm9, xmm2, 0xdd
vmovdqu xmm13, xmmword [rdx - 0x20]
vshufps xmm9, xmm8, xmm1, 0x88
vshufps xmm11, xmm11, xmm10, 0xdd
vshufps xmm1, xmm8, xmm1, 0xdd
vshufps xmm8, xmm14, xmm3, 0x88
vshufps xmm14, xmm14, xmm3, 0xdd
vshufps xmm3, xmm13, xmmword [rdx - 0x10], 0x88
vshufps xmm10, xmm8, xmm3, 0x88
vshufps xmm3, xmm8, xmm3, 0xdd
vmovdqu xmm8, xmmword [rsp + 0x20]
vmovups xmmword [rsp + 0x30], xmm11
vshufps xmm13, xmm13, xmmword [rdx - 0x10], 0xdd
vshufps xmm11, xmm6, xmm9, 0x88
vshufps xmm6, xmm6, xmm9, 0xdd
vshufps xmm9, xmm4, xmm8, 0x88
vshufps xmm4, xmm4, xmm8, 0xdd
vshufps xmm8, xmm5, xmm0, 0x88
vshufps xmm0, xmm5, xmm0, 0xdd
vshufps xmm5, xmm2, xmm1, 0x88
vshufps xmm2, xmm2, xmm1, 0xdd
vshufps xmm1, xmm14, xmm13, 0x88
vshufps xmm14, xmm14, xmm13, 0xdd
vshufps xmm13, xmm12, xmm7, 0x88
vshufps xmm7, xmm12, xmm7, 0xdd
vshufps xmm12, xmm11, xmm10, 0x88
vshufps xmm10, xmm11, xmm10, 0xdd
vmovups xmmword [rsp + 0x20], xmm10
vshufps xmm10, xmm5, xmm1, 0x88
vshufps xmm5, xmm5, xmm1, 0xdd
vmovdqu xmm1, xmmword [rsp + 0x30]
vshufps xmm11, xmm9, xmm8, 0x88
vshufps xmm8, xmm9, xmm8, 0xdd
vshufps xmm9, xmm15, xmm1, 0x88
vshufps xmm15, xmm15, xmm1, 0xdd
vshufps xmm1, xmm6, xmm3, 0x88
vshufps xmm6, xmm6, xmm3, 0xdd
vshufps xmm3, xmm4, xmm0, 0x88
vshufps xmm4, xmm4, xmm0, 0xdd
vshufps xmm0, xmm2, xmm14, 0x88
vshufps xmm2, xmm2, xmm14, 0xdd
vshufps xmm14, xmm13, xmm12, 0x88
vshufps xmm12, xmm13, xmm12, 0xdd
vshufps xmm13, xmm11, xmm10, 0x88
vmovups xmmword [rsp + 0x30], xmm13
vshufps xmm13, xmm3, xmm0, 0x88
vshufps xmm0, xmm3, xmm0, 0xdd
vshufps xmm10, xmm11, xmm10, 0xdd
vmovdqu xmm3, xmmword [rsp + 0x20]
vshufps xmm11, xmm9, xmm1, 0x88
vmovups xmmword [rsp + 0x50], xmm13
vshufps xmm1, xmm9, xmm1, 0xdd
vpunpckhdq xmm13, xmm14, xmm12
vshufps xmm9, xmm7, xmm3, 0x88
vmovups xmmword [rsp + 0x40], xmm11
vshufps xmm3, xmm7, xmm3, 0xdd
vshufps xmm7, xmm4, xmm2, 0x88
vshufps xmm2, xmm4, xmm2, 0xdd
vpunpckldq xmm4, xmm14, xmm12
vmovdqu xmm14, xmmword [rsp + 0x40]
vshufps xmm11, xmm8, xmm5, 0x88
vshufps xmm8, xmm8, xmm5, 0xdd
vshufps xmm5, xmm15, xmm6, 0x88
vshufps xmm6, xmm15, xmm6, 0xdd
vpunpckldq xmm15, xmm8, xmm11
vpunpckldq xmm12, xmm1, xmm14
vpunpckhdq xmm1, xmm1, xmm14
vpunpckldq xmm14, xmm7, xmm2
vpunpckhdq xmm7, xmm7, xmm2
vpunpckldq xmm2, xmm9, xmm3
vmovups xmmword [rsp + 0x20], xmm7
vpunpckhdq xmm7, xmm9, xmm3
vmovdqu xmm9, xmmword [rsp + 0x30]
vpunpckhdq xmm8, xmm8, xmm11
vpunpckldq xmm3, xmm9, xmm10
vpunpckhdq xmm10, xmm9, xmm10
vpunpckldq xmm9, xmm6, xmm5
vpunpckhdq xmm6, xmm6, xmm5
vmovdqu xmm5, xmmword [rsp + 0x50]
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, xmm15, xmm3
vpunpckhdq xmm3, xmm15, xmm3
vpunpckldq xmm15, xmm8, xmm10
vpunpckhdq xmm8, xmm8, xmm10
vpunpckldq xmm10, xmm12, xmm9
vpunpckhdq xmm9, xmm12, xmm9
vpunpckldq xmm12, xmm14, xmm11
vpunpckhdq xmm11, xmm14, xmm11
vmovdqu xmm14, xmmword [rsp + 0x20]
vmovups xmmword [rsp + 0x30], xmm8
vpunpckldq xmm8, xmm1, xmm6
vpunpckhdq xmm1, xmm1, xmm6
vpunpckldq xmm6, xmm14, xmm0
vpunpckhdq xmm0, xmm14, xmm0
vpunpckldq xmm14, 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, xmm7, xmm12
vpunpckhdq xmm7, xmm7, xmm12
vmovups xmmword [rsp + 0x20], xmm13
vpunpckldq xmm12, xmm15, xmm6
vpunpckhdq xmm6, xmm15, xmm6
vmovdqu xmm15, xmmword [rsp + 0x30]
vpunpckldq xmm13, xmm3, xmm11
vpunpckhdq xmm3, xmm3, xmm11
vpunpckldq xmm11, xmm15, xmm0
vpunpckhdq xmm0, xmm15, xmm0
vpunpckldq xmm15, xmm14, xmmword [rsp + 0x20]
vpunpckhdq xmm14, xmm14, xmmword [rsp + 0x20]
vmovups xmmword [rcx - 0x100], xmm15
vmovups xmmword [rcx - 0xf0], xmm14
vpunpckldq xmm14, xmm5, xmm7
vpunpckhdq xmm5, xmm5, xmm7
vmovups xmmword [rcx - 0xe0], xmm14
vmovups xmmword [rcx - 0xd0], xmm5
vpunpckldq xmm5, xmm10, xmm13
vpunpckhdq xmm10, xmm10, xmm13
vmovups xmmword [rcx - 0xc0], xmm5
vpunpckldq xmm5, xmm2, xmm3
vpunpckhdq xmm2, xmm2, xmm3
vmovups xmmword [rcx - 0xb0], xmm10
vmovups xmmword [rcx - 0x90], xmm2
vpunpckldq xmm2, xmm9, xmm12
vpunpckhdq xmm9, xmm9, xmm12
vmovups xmmword [rcx - 0x80], xmm2
vpunpckldq xmm2, xmm4, xmm6
vpunpckhdq xmm4, xmm4, xmm6
vmovups xmmword [rcx - 0x60], xmm2
vpunpckldq xmm2, xmm8, xmm11
vpunpckhdq xmm8, xmm8, xmm11
vmovups xmmword [rcx - 0x40], xmm2
vpunpckldq xmm2, xmm1, xmm0
vpunpckhdq xmm0, xmm1, xmm0
vmovups xmmword [rcx - 0xa0], xmm5
vmovups xmmword [rcx - 0x70], xmm9
vmovups xmmword [rcx - 0x50], xmm4
vmovups xmmword [rcx - 0x30], xmm8
vmovups xmmword [rcx - 0x20], xmm2
vmovups xmmword [rcx - 0x10], xmm0
cmp rdx, r8
jne 0x587260
mov rax, qword [rsp + 0x60]
mov rcx, rax
and rcx, 0xfffffffffffffffc
test al, 3
je 0x587864
mov rdx, rcx
shl rdx, 6
mov r8d, dword [rbx + rdx]
mov dword [r15 + rdx], r8d
mov r8, rcx
shl r8, 4
add r8, 1
mov r9d, dword [rbx + r8*4]
lea rdx, [r8*4]
mov dword [r15 + rdx + 0x10], r9d
mov r9d, dword [rbx + rdx + 4]
mov dword [r15 + rdx + 0x24], r9d
mov r9d, dword [rbx + rdx + 8]
mov dword [r15 + rdx + 0x38], r9d
mov r9d, dword [rbx + rdx + 0xc]
mov dword [r15 + rdx + 0xc], r9d
mov r9d, dword [rbx + rdx + 0x10]
mov dword [r15 + rdx + 0x20], r9d
mov r9d, dword [rbx + rdx + 0x14]
mov dword [r15 + rdx + 0x34], r9d
mov r9d, dword [rbx + rdx + 0x18]
mov dword [r15 + rdx + 8], r9d
mov r9d, dword [rbx + rdx + 0x1c]
mov dword [r15 + rdx + 0x1c], r9d
mov r9d, dword [rbx + rdx + 0x20]
mov dword [r15 + rdx + 0x30], r9d
mov r9d, dword [rbx + rdx + 0x24]
mov dword [r15 + rdx + 4], r9d
mov r9d, dword [rbx + rdx + 0x28]
mov dword [r15 + rdx + 0x18], r9d
mov r9d, dword [rbx + rdx + 0x2c]
mov dword [r15 + rdx + 0x2c], r9d
mov r9d, dword [rbx + rdx + 0x30]
mov dword [r15 + r8*4], r9d
mov r8d, dword [rbx + rdx + 0x34]
mov dword [r15 + rdx + 0x14], r8d
mov r8d, dword [rbx + rdx + 0x38]
mov dword [r15 + rdx + 0x28], r8d
lea rdx, [rcx + 1]
cmp rax, rdx
jbe 0x587864
mov r8, rdx
shl rdx, 4
add rcx, 2
shl r8, 6
mov r9d, dword [rbx + r8]
mov dword [r15 + r8], r9d
lea r8, [rdx + 1]
mov r9d, dword [rbx + r8*4]
lea rdx, [r8*4]
mov dword [r15 + rdx + 0x10], r9d
mov r9d, dword [rbx + rdx + 4]
mov dword [r15 + rdx + 0x24], r9d
mov r9d, dword [rbx + rdx + 8]
mov dword [r15 + rdx + 0x38], r9d
mov r9d, dword [rbx + rdx + 0xc]
mov dword [r15 + rdx + 0xc], r9d
mov r9d, dword [rbx + rdx + 0x10]
mov dword [r15 + rdx + 0x20], r9d
mov r9d, dword [rbx + rdx + 0x14]
mov dword [r15 + rdx + 0x34], r9d
mov r9d, dword [rbx + rdx + 0x18]
mov dword [r15 + rdx + 8], r9d
mov r9d, dword [rbx + rdx + 0x1c]
mov dword [r15 + rdx + 0x1c], r9d
mov r9d, dword [rbx + rdx + 0x20]
mov dword [r15 + rdx + 0x30], r9d
mov r9d, dword [rbx + rdx + 0x24]
mov dword [r15 + rdx + 4], r9d
mov r9d, dword [rbx + rdx + 0x28]
mov dword [r15 + rdx + 0x18], r9d
mov r9d, dword [rbx + rdx + 0x2c]
mov dword [r15 + rdx + 0x2c], r9d
mov r9d, dword [rbx + rdx + 0x30]
mov dword [r15 + r8*4], r9d
mov r8d, dword [rbx + rdx + 0x34]
mov dword [r15 + rdx + 0x14], r8d
mov r8d, dword [rbx + rdx + 0x38]
mov dword [r15 + rdx + 0x28], r8d
cmp rax, rcx
jbe 0x587864
mov rdx, rcx
shl rcx, 4
shl rdx, 6
add rcx, 1
mov r8d, dword [rbx + rdx]
mov dword [r15 + rdx], r8d
mov r8d, dword [rbx + rcx*4]
lea rdx, [rcx*4]
mov dword [r15 + rdx + 0x10], r8d
mov r8d, dword [rbx + rdx + 4]
mov dword [r15 + rdx + 0x24], r8d
mov r8d, dword [rbx + rdx + 8]
mov dword [r15 + rdx + 0x38], r8d
mov r8d, dword [rbx + rdx + 0xc]
mov dword [r15 + rdx + 0xc], r8d
mov r8d, dword [rbx + rdx + 0x10]
mov dword [r15 + rdx + 0x20], r8d
mov r8d, dword [rbx + rdx + 0x14]
mov dword [r15 + rdx + 0x34], r8d
mov r8d, dword [rbx + rdx + 0x18]
mov dword [r15 + rdx + 8], r8d
mov r8d, dword [rbx + rdx + 0x1c]
mov dword [r15 + rdx + 0x1c], r8d
mov r8d, dword [rbx + rdx + 0x20]
mov dword [r15 + rdx + 0x30], r8d
mov r8d, dword [rbx + rdx + 0x24]
mov dword [r15 + rdx + 4], r8d
mov r8d, dword [rbx + rdx + 0x28]
mov dword [r15 + rdx + 0x18], r8d
mov r8d, dword [rbx + rdx + 0x2c]
mov dword [r15 + rdx + 0x2c], r8d
mov r8d, dword [rbx + rdx + 0x30]
mov dword [r15 + rcx*4], r8d
mov ecx, dword [rbx + rdx + 0x34]
mov dword [r15 + rdx + 0x14], ecx
mov ecx, dword [rbx + rdx + 0x38]
mov dword [r15 + rdx + 0x28], ecx
vmovups xmm6, xmmword [rsp + 0x70]
vmovups xmm7, xmmword [rsp + 0x80]
vmovups xmm8, xmmword [rsp + 0x90]
vmovups xmm9, xmmword [rsp + 0xa0]
vmovups xmm10, xmmword [rsp + 0xb0]
vmovups xmm11, xmmword [rsp + 0xc0]
vmovups xmm12, xmmword [rsp + 0xd0]
vmovups xmm13, xmmword [rsp + 0xe0]
vmovups xmm14, xmmword [rsp + 0xf0]
vmovups xmm15, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor ecx, ecx
nop word [rax + rax]
vmovdqu xmm7, xmmword [r14 + rcx]
vinsertf128 ymm0, ymm7, xmmword [r14 + rcx + 0x10], 1
vmovups xmmword [rdx + rcx], xmm0
vextractf128 xmmword [rdx + rcx + 0x10], ymm0, 1
add rcx, 0x20
cmp rcx, r12
jne 0x5878d8
jmp 0x58720f
mov r11, rdx
mov rcx, r14
nop
add rcx, 4
add r11, 4
mov eax, dword [r11 - 4]
xor dword [rcx - 4], eax
cmp rcx, rbp
jne 0x587910
cmp esi, 2
je 0x587212
mov r8, qword [rsp + 0x50]
xor ecx, ecx
nop dword [rax]
mov eax, dword [r14 + rcx]
mov dword [rdx + rcx], eax
add rcx, 4
cmp r8, rcx
jne 0x587938
jmp 0x587212
mov rbp, r12
mov rdx, rcx
mov rcx, rbx
shl rbp, 7
add rbp, r15
nop dword [rax]
mov eax, dword [rdx]
add rdx, 0x40
add rcx, 0x40
mov dword [rcx - 0x40], eax
mov eax, dword [rdx - 0x2c]
mov dword [rcx - 0x3c], eax
mov eax, dword [rdx - 0x18]
mov dword [rcx - 0x38], eax
mov eax, dword [rdx - 4]
mov dword [rcx - 0x34], eax
mov eax, dword [rdx - 0x30]
mov dword [rcx - 0x30], eax
mov eax, dword [rdx - 0x1c]
mov dword [rcx - 0x2c], eax
mov eax, dword [rdx - 8]
mov dword [rcx - 0x28], eax
mov eax, dword [rdx - 0x34]
mov dword [rcx - 0x24], eax
mov eax, dword [rdx - 0x20]
mov dword [rcx - 0x20], eax
mov eax, dword [rdx - 0xc]
mov dword [rcx - 0x1c], eax
mov eax, dword [rdx - 0x38]
mov dword [rcx - 0x18], eax
mov eax, dword [rdx - 0x24]
mov dword [rcx - 0x14], eax
mov eax, dword [rdx - 0x10]
mov dword [rcx - 0x10], eax
mov eax, dword [rdx - 0x3c]
mov dword [rcx - 0xc], eax
mov eax, dword [rdx - 0x28]
mov dword [rcx - 8], eax
mov eax, dword [rdx - 0x14]
mov dword [rcx - 4], eax
cmp rdx, rbp
jne 0x587960
test esi, esi
jne 0x58712c
mov rcx, r12
mov rax, r15
shl rcx, 7
add rcx, rbx
nop dword [rax]
mov edx, dword [rbx]
add rbx, 0x40
add rax, 0x40
mov dword [rax - 0x40], edx
mov edx, dword [rbx - 0x3c]
mov dword [rax - 0x2c], edx
mov edx, dword [rbx - 0x38]
mov dword [rax - 0x18], edx
mov edx, dword [rbx - 0x34]
mov dword [rax - 4], edx
mov edx, dword [rbx - 0x30]
mov dword [rax - 0x30], edx
mov edx, dword [rbx - 0x2c]
mov dword [rax - 0x1c], edx
mov edx, dword [rbx - 0x28]
mov dword [rax - 8], edx
mov edx, dword [rbx - 0x24]
mov dword [rax - 0x34], edx
mov edx, dword [rbx - 0x20]
mov dword [rax - 0x20], edx
mov edx, dword [rbx - 0x1c]
mov dword [rax - 0xc], edx
mov edx, dword [rbx - 0x18]
mov dword [rax - 0x38], edx
mov edx, dword [rbx - 0x14]
mov dword [rax - 0x24], edx
mov edx, dword [rbx - 0x10]
mov dword [rax - 0x10], edx
mov edx, dword [rbx - 0xc]
mov dword [rax - 0x3c], edx
mov edx, dword [rbx - 8]
mov dword [rax - 0x28], edx
mov edx, dword [rbx - 4]
mov dword [rax - 0x14], edx
cmp rbx, rcx
jne 0x5879e8
jmp 0x587864