Function at 0x596b10
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x128
movups xmmword [rsp + 0x80], xmm6
movups xmmword [rsp + 0x90], xmm7
movups xmmword [rsp + 0xa0], xmm8
movups xmmword [rsp + 0xb0], xmm9
movups xmmword [rsp + 0xc0], xmm10
movups xmmword [rsp + 0xd0], xmm11
movups xmmword [rsp + 0xe0], xmm12
movups xmmword [rsp + 0xf0], xmm13
movups xmmword [rsp + 0x100], xmm14
movups xmmword [rsp + 0x110], xmm15
mov rbx, qword [rsp + 0x198]
mov rdi, qword [rsp + 0x190]
lea rax, [rdx + rdx]
mov r12, rdx
mov esi, r9d
mov r9, rdx
lea rdx, [rbx + 0xff]
mov qword [rsp + 0x70], rax
mov r15, rcx
shl r9, 5
sub rdx, rcx
mov qword [rsp + 0x78], rdx
cmp rdx, 0x1fe
jbe 0x597d6f
lea r11, [r12 + r12]
mov rdx, rcx
mov rcx, rbx
shr r11, 2
shl r11, 8
add r11, r15
nop dword [rax]
movdqu xmm6, xmmword [rdx + 0x20]
movdqu xmm13, xmmword [rdx + 0x30]
add rdx, 0x100
add rcx, 0x100
movdqu xmm3, xmmword [rdx - 0xc0]
movdqu xmm5, xmmword [rdx - 0xa0]
movdqu xmm14, xmm6
shufps xmm6, xmm13, 0xdd
movdqu xmm11, xmmword [rdx - 0xb0]
movdqu xmm1, xmmword [rdx - 0x80]
shufps xmm14, xmm13, 0x88
movdqu xmm13, xmm3
movdqu xmm8, xmmword [rdx - 0x70]
movdqu xmm0, xmmword [rdx - 0x100]
shufps xmm13, xmm11, 0x88
shufps xmm3, xmm11, 0xdd
movdqu xmm11, xmmword [rdx - 0x90]
movdqu xmm12, xmm5
movdqu xmm4, xmmword [rdx - 0x60]
movdqu xmm9, xmmword [rdx - 0x50]
movdqu xmm15, xmm0
shufps xmm12, xmm11, 0x88
shufps xmm5, xmm11, 0xdd
movdqu xmm11, xmm1
movdqu xmm10, xmmword [rdx - 0xf0]
movdqu xmm2, xmmword [rdx - 0x40]
shufps xmm11, xmm8, 0x88
shufps xmm1, xmm8, 0xdd
movdqu xmm8, xmmword [rdx - 0x30]
movdqu xmm7, xmmword [rdx - 0x20]
shufps xmm15, xmm10, 0x88
shufps xmm0, xmm10, 0xdd
movdqu xmm10, xmm4
shufps xmm10, xmm9, 0x88
shufps xmm4, xmm9, 0xdd
movdqu xmm9, xmm2
shufps xmm2, xmm8, 0xdd
movups xmmword [rsp + 0x20], xmm2
movdqu xmm2, xmmword [rdx - 0x10]
shufps xmm9, xmm8, 0x88
movdqu xmm8, xmm7
shufps xmm8, xmm2, 0x88
shufps xmm7, xmm2, 0xdd
movdqu xmm2, xmm7
movdqu xmm7, xmm15
shufps xmm7, xmm14, 0x88
shufps xmm15, xmm14, 0xdd
movdqu xmm14, xmm13
shufps xmm13, xmm12, 0xdd
shufps xmm14, xmm12, 0x88
movdqu xmm12, xmm11
shufps xmm11, xmm10, 0xdd
movups xmmword [rsp + 0x30], xmm13
shufps xmm12, xmm10, 0x88
movdqu xmm10, xmm9
shufps xmm9, xmm8, 0xdd
movups xmmword [rsp + 0x40], xmm9
shufps xmm10, xmm8, 0x88
movdqu xmm9, xmm0
movdqu xmm8, xmm3
shufps xmm0, xmm6, 0xdd
shufps xmm9, xmm6, 0x88
shufps xmm8, xmm5, 0x88
movdqu xmm6, xmm8
shufps xmm3, xmm5, 0xdd
movdqu xmm8, xmmword [rsp + 0x20]
movdqu xmm13, xmm11
movdqu xmm5, xmm2
movdqu xmm11, xmm1
shufps xmm11, xmm4, 0x88
shufps xmm1, xmm4, 0xdd
movdqu xmm4, xmm8
shufps xmm4, xmm2, 0x88
movdqu xmm2, xmm8
movdqu xmm8, xmm12
shufps xmm12, xmm10, 0xdd
shufps xmm2, xmm5, 0xdd
movdqu xmm5, xmm7
shufps xmm7, xmm14, 0xdd
shufps xmm8, xmm10, 0x88
shufps xmm5, xmm14, 0x88
movdqu xmm14, xmm9
movups xmmword [rsp + 0x20], xmm8
movdqu xmm10, xmm11
shufps xmm14, xmm6, 0x88
movdqu xmm8, xmm14
movdqu xmm14, xmm9
shufps xmm11, xmm4, 0xdd
shufps xmm14, xmm6, 0xdd
movdqu xmm6, xmmword [rsp + 0x30]
shufps xmm10, xmm4, 0x88
movdqu xmm4, xmm15
movdqu xmm9, xmm10
movdqu xmm10, xmm13
shufps xmm4, xmm6, 0x88
shufps xmm15, xmm6, 0xdd
movdqu xmm6, xmmword [rsp + 0x40]
shufps xmm10, xmm6, 0x88
shufps xmm13, xmm6, 0xdd
movdqu xmm6, xmm0
shufps xmm0, xmm3, 0xdd
shufps xmm6, xmm3, 0x88
movdqu xmm3, xmm0
movdqu xmm0, xmm1
shufps xmm1, xmm2, 0xdd
shufps xmm0, xmm2, 0x88
movdqu xmm2, xmmword [rsp + 0x20]
movups xmmword [rsp + 0x40], xmm0
movdqu xmm0, xmm5
movups xmmword [rsp + 0x30], xmm13
shufps xmm0, xmm2, 0x88
shufps xmm5, xmm2, 0xdd
movdqu xmm2, xmm8
movdqu xmm13, xmm5
movdqu xmm5, xmmword [rsp + 0x40]
shufps xmm2, xmm9, 0x88
shufps xmm8, xmm9, 0xdd
movups xmmword [rsp + 0x50], xmm2
movdqu xmm9, xmm4
shufps xmm4, xmm10, 0xdd
movdqu xmm2, xmm4
movdqu xmm4, xmm6
shufps xmm9, xmm10, 0x88
shufps xmm4, xmm5, 0x88
shufps xmm6, xmm5, 0xdd
movdqu xmm10, xmm3
movups xmmword [rsp + 0x20], xmm6
movdqu xmm5, xmm7
movdqu xmm6, xmmword [rsp + 0x30]
shufps xmm7, xmm12, 0xdd
shufps xmm10, xmm1, 0x88
shufps xmm5, xmm12, 0x88
shufps xmm3, xmm1, 0xdd
movups xmmword [rsp + 0x40], xmm4
movdqu xmm12, xmm15
movdqu xmm4, xmm14
movdqu xmm1, xmm0
shufps xmm15, xmm6, 0xdd
shufps xmm12, xmm6, 0x88
punpckldq xmm1, xmm13
punpckhdq xmm0, xmm13
shufps xmm4, xmm11, 0x88
movups xmmword [rsp + 0x60], xmm9
movdqu xmm6, xmm4
shufps xmm14, xmm11, 0xdd
movdqu xmm13, xmmword [rsp + 0x60]
punpckldq xmm6, xmm14
punpckhdq xmm4, xmm14
movdqu xmm11, xmm2
movdqu xmm14, xmm2
movdqu xmm2, xmm5
punpckldq xmm11, xmm13
punpckldq xmm2, xmm7
punpckhdq xmm5, xmm7
punpckhdq xmm14, xmm13
movdqu xmm7, xmmword [rsp + 0x50]
movdqu xmm13, xmm3
punpckhdq xmm3, xmm10
movdqu xmm9, xmm8
punpckldq xmm13, xmm10
movdqu xmm10, xmm3
movdqu xmm3, xmmword [rsp + 0x40]
punpckldq xmm9, xmm7
punpckhdq xmm8, xmm7
movdqu xmm7, xmm15
punpckhdq xmm15, xmm12
punpckldq xmm7, xmm12
movdqu xmm12, xmm3
punpckhdq xmm3, xmmword [rsp + 0x20]
punpckldq xmm12, xmmword [rsp + 0x20]
movups xmmword [rsp + 0x20], xmm3
movdqu xmm3, xmm1
punpckhdq xmm1, xmm2
punpckldq xmm3, xmm2
movdqu xmm2, xmm0
punpckhdq xmm0, xmm5
movups xmmword [rsp + 0x30], xmm12
punpckldq xmm2, xmm5
movdqu xmm5, xmm6
punpckhdq xmm6, xmm9
punpckldq xmm5, xmm9
movdqu xmm9, xmm11
movdqu xmm12, xmm5
movdqu xmm5, xmm4
punpckhdq xmm4, xmm8
punpckldq xmm5, xmm8
movdqu xmm8, xmm11
punpckhdq xmm9, xmm7
punpckldq xmm8, xmm7
movdqu xmm7, xmm14
punpckhdq xmm14, xmm15
punpckldq xmm7, xmm15
movdqu xmm11, xmm14
movdqu xmm15, xmmword [rsp + 0x30]
movups xmmword [rsp + 0x40], xmm8
movdqu xmm14, xmm13
movdqu xmm8, xmm7
movdqu xmm7, xmm13
movdqu xmm13, xmmword [rsp + 0x20]
punpckldq xmm7, xmm15
punpckhdq xmm14, xmm15
movdqu xmm15, xmm10
punpckhdq xmm10, xmm13
punpckldq xmm15, xmm13
movdqu xmm13, xmm1
movups xmmword [rsp + 0x50], xmm14
movups xmmword [rsp + 0x20], xmm10
movdqu xmm14, xmm15
punpckldq xmm13, xmm9
movdqu xmm10, xmmword [rsp + 0x40]
movdqu xmm15, xmm3
punpckhdq xmm1, xmm9
movdqu xmm9, xmm2
punpckldq xmm15, xmm10
punpckhdq xmm3, xmm10
movdqu xmm10, xmm13
movdqu xmm13, xmm12
punpckhdq xmm12, xmm7
punpckldq xmm9, xmm8
punpckldq xmm13, xmm7
movdqu xmm7, xmm12
punpckhdq xmm2, xmm8
movdqu xmm12, xmmword [rsp + 0x50]
movups xmmword [rsp + 0x30], xmm13
movdqu xmm13, xmm6
movdqu xmm8, xmm0
punpckhdq xmm0, xmm11
punpckldq xmm13, xmm12
punpckhdq xmm6, xmm12
movdqu xmm12, xmm5
punpckldq xmm12, xmm14
punpckhdq xmm5, xmm14
movdqu xmm14, xmm4
punpckldq xmm14, xmmword [rsp + 0x20]
punpckldq xmm8, xmm11
punpckhdq xmm4, xmmword [rsp + 0x20]
movdqu xmm11, xmm14
movdqu xmm14, xmm15
punpckldq xmm14, xmmword [rsp + 0x30]
punpckhdq xmm15, xmmword [rsp + 0x30]
movups xmmword [rcx - 0x100], xmm14
movdqu xmm14, xmm3
punpckhdq xmm3, xmm7
movups xmmword [rcx - 0xd0], xmm3
movdqu xmm3, xmm10
punpckldq xmm14, xmm7
punpckhdq xmm10, xmm13
punpckldq xmm3, xmm13
movups xmmword [rcx - 0xf0], xmm15
movups xmmword [rcx - 0xc0], xmm3
movdqu xmm3, xmm1
punpckhdq xmm1, xmm6
movups xmmword [rcx - 0x90], xmm1
movdqu xmm1, xmm9
punpckldq xmm3, xmm6
punpckhdq xmm9, xmm12
punpckldq xmm1, xmm12
movups xmmword [rcx - 0xe0], xmm14
movups xmmword [rcx - 0x80], xmm1
movdqu xmm1, xmm2
punpckhdq xmm2, xmm5
punpckldq xmm1, xmm5
movups xmmword [rcx - 0xb0], xmm10
movups xmmword [rcx - 0x60], xmm1
movdqu xmm1, xmm8
punpckhdq xmm8, xmm11
punpckldq xmm1, xmm11
movups xmmword [rcx - 0xa0], xmm3
movups xmmword [rcx - 0x40], xmm1
movdqu xmm1, xmm0
punpckhdq xmm0, xmm4
punpckldq xmm1, xmm4
movups xmmword [rcx - 0x70], xmm9
movups xmmword [rcx - 0x50], xmm2
movups xmmword [rcx - 0x30], xmm8
movups xmmword [rcx - 0x20], xmm1
movups xmmword [rcx - 0x10], xmm0
cmp rdx, r11
jne 0x596bd8
mov rax, qword [rsp + 0x70]
mov rcx, rax
and rcx, 0xfffffffffffffffc
test al, 3
je 0x5973a3
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 0x5973a3
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 0x5973a3
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 0x597495
mov rax, r12
lea r13, [r9*4]
xor r14d, r14d
mov qword [rsp + 0x190], rdi
shl rax, 7
mov qword [rsp + 0x170], r15
mov rdi, r12
mov r15d, r14d
lea rcx, [rbx + rax - 0x40]
mov qword [rsp + 0x50], rax
lea rbp, [rbx + rax]
mov r12, r13
mov qword [rsp + 0x20], rcx
lea rax, [rbx + 0x10]
lea ecx, [r8 - 1]
mov r14, qword [rsp + 0x1a0]
mov dword [rsp + 0x30], ecx
mov r13, qword [rsp + 0x190]
mov qword [rsp + 0x40], rax
nop word [rax + rax]
mov rax, qword [rsp + 0x20]
mov edx, dword [rsp + 0x30]
and edx, dword [rax]
imul rdx, rdi
shl rdx, 7
lea rax, [r13 + rdx]
lea rdx, [r13 + rdx + 0x10]
cmp rbx, rdx
jae 0x59743d
cmp rax, qword [rsp + 0x40]
jb 0x597d08
xor edx, edx
nop
movdqu xmm0, xmmword [rax + rdx]
movdqu xmm5, xmmword [rbx + rdx]
pxor xmm0, xmm5
movups xmmword [rbx + rdx], xmm0
add rdx, 0x10
cmp rdx, r12
jne 0x597440
cmp esi, 2
jne 0x597d50
mov r8, rdi
mov rdx, r14
mov rcx, rbx
add r15d, 1
call fcn.005967d0
cmp esi, r15d
jne 0x597410
cmp qword [rsp + 0x78], 0x1fe
mov r15, qword [rsp + 0x170]
mov r12, rdi
jbe 0x597df4
mov r8, qword [rsp + 0x70]
mov rdx, rbx
mov rcx, r15
shr r8, 2
shl r8, 8
add r8, rbx
nop dword [rax + rax]
movdqu xmm0, xmmword [rdx]
movdqu xmm13, xmmword [rdx + 0x10]
add rdx, 0x100
add rcx, 0x100
movdqu xmm3, xmmword [rdx - 0xc0]
movdqu xmm6, xmmword [rdx - 0xe0]
movdqu xmm1, xmmword [rdx - 0x80]
movdqu xmm15, xmm0
movdqu xmm11, xmmword [rdx - 0xb0]
shufps xmm0, xmm13, 0xdd
movdqu xmm9, xmmword [rdx - 0x70]
shufps xmm15, xmm13, 0x88
movdqu xmm13, xmm3
movdqu xmm12, xmmword [rdx - 0xd0]
movdqu xmm4, xmmword [rdx - 0x60]
shufps xmm13, xmm11, 0x88
shufps xmm3, xmm11, 0xdd
movdqu xmm5, xmmword [rdx - 0xa0]
movdqu xmm14, xmm6
movdqu xmm11, xmm1
shufps xmm6, xmm12, 0xdd
movdqu xmm10, xmmword [rdx - 0x90]
movdqu xmm8, xmmword [rdx - 0x30]
shufps xmm14, xmm12, 0x88
movdqu xmm2, xmmword [rdx - 0x40]
shufps xmm11, xmm9, 0x88
shufps xmm1, xmm9, 0xdd
movdqu xmm12, xmm5
movdqu xmm9, xmmword [rdx - 0x50]
shufps xmm5, xmm10, 0xdd
shufps xmm12, xmm10, 0x88
movdqu xmm7, xmmword [rdx - 0x20]
movdqu xmm10, xmm4
shufps xmm10, xmm9, 0x88
shufps xmm4, xmm9, 0xdd
movdqu xmm9, xmm2
shufps xmm2, xmm8, 0xdd
movups xmmword [rsp + 0x20], xmm2
movdqu xmm2, xmmword [rdx - 0x10]
shufps xmm9, xmm8, 0x88
movdqu xmm8, xmm7
shufps xmm8, xmm2, 0x88
shufps xmm7, xmm2, 0xdd
movdqu xmm2, xmm7
movdqu xmm7, xmm15
shufps xmm7, xmm14, 0x88
shufps xmm15, xmm14, 0xdd
movdqu xmm14, xmm13
shufps xmm13, xmm12, 0xdd
shufps xmm14, xmm12, 0x88
movdqu xmm12, xmm11
shufps xmm11, xmm10, 0xdd
shufps xmm12, xmm10, 0x88
movdqu xmm10, xmm9
shufps xmm9, xmm8, 0xdd
movups xmmword [rsp + 0x30], xmm9
movdqu xmm9, xmm1
shufps xmm10, xmm8, 0x88
shufps xmm1, xmm4, 0xdd
movdqu xmm8, xmm0
shufps xmm9, xmm4, 0x88
movdqu xmm4, xmmword [rsp + 0x20]
shufps xmm8, xmm6, 0x88
shufps xmm0, xmm6, 0xdd
movdqu xmm6, xmm3
shufps xmm3, xmm5, 0xdd
shufps xmm6, xmm5, 0x88
shufps xmm4, xmm2, 0x88
movdqu xmm5, xmm2
movdqu xmm2, xmmword [rsp + 0x20]
shufps xmm2, xmm5, 0xdd
movdqu xmm5, xmm7
shufps xmm7, xmm14, 0xdd
movups xmmword [rsp + 0x20], xmm7
movdqu xmm7, xmm12
shufps xmm12, xmm10, 0xdd
movups xmmword [rsp + 0x40], xmm12
movdqu xmm12, xmm8
shufps xmm12, xmm6, 0x88
shufps xmm5, xmm14, 0x88
shufps xmm8, xmm6, 0xdd
movdqu xmm6, xmm9
movdqu xmm14, xmm8
movdqu xmm8, xmm9
shufps xmm7, xmm10, 0x88
shufps xmm6, xmm4, 0x88
movdqu xmm10, xmmword [rsp + 0x30]
shufps xmm8, xmm4, 0xdd
movdqu xmm4, xmm15
shufps xmm15, xmm13, 0xdd
shufps xmm4, xmm13, 0x88
movdqu xmm13, xmm11
movdqu xmm9, xmm1
shufps xmm1, xmm2, 0xdd
shufps xmm11, xmm10, 0xdd
shufps xmm13, xmm10, 0x88
movdqu xmm10, xmm0
shufps xmm0, xmm3, 0xdd
shufps xmm9, xmm2, 0x88
shufps xmm10, xmm3, 0x88
movdqu xmm2, xmm12
movdqu xmm3, xmm0
movdqu xmm0, xmm5
shufps xmm2, xmm6, 0x88
shufps xmm5, xmm7, 0xdd
movups xmmword [rsp + 0x50], xmm8
shufps xmm0, xmm7, 0x88
movdqu xmm7, xmm2
movdqu xmm2, xmm12
movdqu xmm8, xmm13
shufps xmm2, xmm6, 0xdd
movdqu xmm6, xmmword [rsp + 0x20]
movdqu xmm13, xmm5
movups xmmword [rsp + 0x30], xmm2
movdqu xmm5, xmm10
movdqu xmm2, xmm4
shufps xmm4, xmm8, 0xdd
movdqu xmm12, xmm4
movdqu xmm4, xmmword [rsp + 0x40]
shufps xmm2, xmm8, 0x88
shufps xmm5, xmm9, 0x88
movdqu xmm8, xmmword [rsp + 0x50]
movups xmmword [rsp + 0x60], xmm5
movdqu xmm5, xmm6
shufps xmm10, xmm9, 0xdd
movdqu xmm9, xmm14
shufps xmm5, xmm4, 0x88
shufps xmm6, xmm4, 0xdd
movdqu xmm4, xmm14
movdqu xmm14, xmm15
shufps xmm9, xmm8, 0x88
shufps xmm4, xmm8, 0xdd
shufps xmm14, xmm11, 0x88
shufps xmm15, xmm11, 0xdd
movdqu xmm8, xmm3
movdqu xmm11, xmm4
shufps xmm3, xmm1, 0xdd
movups xmmword [rsp + 0x20], xmm6
punpckldq xmm11, xmm9
shufps xmm8, xmm1, 0x88
movdqu xmm1, xmm0
punpckhdq xmm0, xmm13
punpckldq xmm1, xmm13
movdqu xmm6, xmm11
movdqu xmm13, xmm12
movups xmmword [rsp + 0x40], xmm14
movdqu xmm11, xmm12
punpckhdq xmm13, xmm2
punpckhdq xmm4, xmm9
punpckldq xmm11, xmm2
movdqu xmm2, xmm8
punpckhdq xmm8, xmm3
punpckldq xmm2, xmm3
movdqu xmm14, xmm13
movdqu xmm13, xmm8
movups xmmword [rsp + 0x50], xmm2
movdqu xmm3, xmmword [rsp + 0x20]
movdqu xmm8, xmm5
movdqu xmm12, xmmword [rsp + 0x40]
movdqu xmm9, xmm7
punpckhdq xmm5, xmm3
punpckldq xmm8, xmm3
movdqu xmm3, xmmword [rsp + 0x30]
movdqu xmm2, xmm8
punpckhdq xmm7, xmm3
punpckldq xmm9, xmm3
movdqu xmm3, xmmword [rsp + 0x60]
movdqu xmm8, xmm7
movdqu xmm7, xmm15
punpckhdq xmm15, xmm12
punpckldq xmm7, xmm12
movdqu xmm12, xmm10
punpckhdq xmm10, xmm3
punpckldq xmm12, xmm3
movdqu xmm3, xmm1
punpckhdq xmm1, xmm2
punpckldq xmm3, xmm2
movdqu xmm2, xmm0
punpckhdq xmm0, xmm5
movups xmmword [rsp + 0x20], xmm12
punpckldq xmm2, xmm5
movdqu xmm5, xmm6
punpckhdq xmm6, xmm9
punpckldq xmm5, xmm9
movdqu xmm9, xmm11
punpckhdq xmm11, xmm7
movdqu xmm12, xmm5
punpckldq xmm9, xmm7
movdqu xmm5, xmm4
movups xmmword [rsp + 0x30], xmm9
punpckldq xmm5, xmm8
movdqu xmm9, xmm11
punpckhdq xmm4, xmm8
movdqu xmm11, xmm14
movdqu xmm8, xmm14
movdqu xmm14, xmmword [rsp + 0x50]
punpckldq xmm8, xmm15
punpckhdq xmm11, xmm15
movdqu xmm15, xmmword [rsp + 0x20]
movdqu xmm7, xmm14
punpckldq xmm7, xmm15
punpckhdq xmm14, xmm15
movdqu xmm15, xmm13
punpckldq xmm15, xmm10
punpckhdq xmm13, xmm10
movdqu xmm10, xmm1
movups xmmword [rsp + 0x40], xmm14
punpckldq xmm10, xmm9
punpckhdq xmm1, xmm9
movdqu xmm9, xmm2
movups xmmword [rsp + 0x20], xmm13
punpckldq xmm9, xmm8
punpckhdq xmm2, xmm8
movdqu xmm8, xmm0
movdqu xmm13, xmmword [rsp + 0x30]
movups xmmword [rsp + 0x50], xmm15
punpckldq xmm8, xmm11
punpckhdq xmm0, xmm11
movdqu xmm15, xmm3
punpckldq xmm15, xmm13
punpckhdq xmm3, xmm13
movdqu xmm13, xmm6
movdqu xmm11, xmmword [rsp + 0x40]
movups xmmword [rsp + 0x30], xmm15
movdqu xmm14, xmm12
movdqu xmm15, xmm4
punpckhdq xmm12, xmm7
punpckldq xmm13, xmm11
punpckhdq xmm6, xmm11
punpckldq xmm14, xmm7
movdqu xmm11, xmmword [rsp + 0x50]
punpckldq xmm15, xmmword [rsp + 0x20]
movdqu xmm7, xmm12
movdqu xmm12, xmm5
punpckldq xmm12, xmm11
punpckhdq xmm5, xmm11
punpckhdq xmm4, xmmword [rsp + 0x20]
movdqu xmm11, xmm15
movdqu xmm15, xmmword [rsp + 0x30]
punpckldq xmm15, xmm14
movups xmmword [rcx - 0x100], xmm15
movdqu xmm15, xmmword [rsp + 0x30]
punpckhdq xmm15, xmm14
movdqu xmm14, xmm3
punpckhdq xmm3, xmm7
movups xmmword [rcx - 0xd0], xmm3
movdqu xmm3, xmm10
punpckldq xmm14, xmm7
punpckhdq xmm10, xmm13
punpckldq xmm3, xmm13
movups xmmword [rcx - 0xf0], xmm15
movups xmmword [rcx - 0xc0], xmm3
movdqu xmm3, xmm1
punpckhdq xmm1, xmm6
movups xmmword [rcx - 0x90], xmm1
movdqu xmm1, xmm9
punpckldq xmm3, xmm6
punpckhdq xmm9, xmm12
punpckldq xmm1, xmm12
movups xmmword [rcx - 0xe0], xmm14
movups xmmword [rcx - 0x80], xmm1
movdqu xmm1, xmm2
punpckhdq xmm2, xmm5
punpckldq xmm1, xmm5
movups xmmword [rcx - 0xb0], xmm10
movups xmmword [rcx - 0x60], xmm1
movdqu xmm1, xmm8
punpckhdq xmm8, xmm11
punpckldq xmm1, xmm11
movups xmmword [rcx - 0xa0], xmm3
movups xmmword [rcx - 0x40], xmm1
movdqu xmm1, xmm0
punpckhdq xmm0, xmm4
punpckldq xmm1, xmm4
movups xmmword [rcx - 0x70], xmm9
movups xmmword [rcx - 0x50], xmm2
movups xmmword [rcx - 0x30], xmm8
movups xmmword [rcx - 0x20], xmm1
movups xmmword [rcx - 0x10], xmm0
cmp rdx, r8
jne 0x5974b0
mov rax, qword [rsp + 0x70]
mov rcx, rax
and rcx, 0xfffffffffffffffc
test al, 3
je 0x597c96
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 0x597c96
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 0x597c96
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
movups xmm6, xmmword [rsp + 0x80]
movups xmm7, xmmword [rsp + 0x90]
movups xmm8, xmmword [rsp + 0xa0]
movups xmm9, xmmword [rsp + 0xb0]
movups xmm10, xmmword [rsp + 0xc0]
movups xmm11, xmmword [rsp + 0xd0]
movups xmm12, xmmword [rsp + 0xe0]
movups xmm13, xmmword [rsp + 0xf0]
movups xmm14, xmmword [rsp + 0x100]
movups xmm15, xmmword [rsp + 0x110]
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rax
mov rdx, rbx
nop
add rdx, 4
add rcx, 4
mov r8d, dword [rcx - 4]
xor dword [rdx - 4], r8d
cmp rdx, rbp
jne 0x597d10
cmp esi, 2
je 0x597464
mov r8, qword [rsp + 0x50]
xor edx, edx
nop dword [rax]
mov ecx, dword [rbx + rdx]
mov dword [rax + rdx], ecx
add rdx, 4
cmp r8, rdx
jne 0x597d38
jmp 0x597464
xor edx, edx
nop word [rax + rax]
movdqu xmm6, xmmword [rbx + rdx]
movups xmmword [rax + rdx], xmm6
add rdx, 0x10
cmp rdx, r12
jne 0x597d58
jmp 0x597464
mov rbp, r12
mov rdx, rcx
mov rcx, rbx
shl rbp, 7
add rbp, r15
nop
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 0x597d80
test esi, esi
jne 0x5973ab
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 0x597e08
jmp 0x597c96