Function at 0x5ab550
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
movups xmmword [rsp + 0x70], xmm6
movups xmmword [rsp + 0x80], xmm7
movups xmmword [rsp + 0x90], xmm8
movups xmmword [rsp + 0xa0], xmm9
movups xmmword [rsp + 0xb0], xmm10
movups xmmword [rsp + 0xc0], xmm11
movups xmmword [rsp + 0xd0], xmm12
movups xmmword [rsp + 0xe0], xmm13
movups xmmword [rsp + 0xf0], xmm14
movups 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 + 0x58], rax
lea rdx, [rbx + 0xff]
shl r9, 5
sub rdx, rcx
mov qword [rsp + 0x60], rdx
cmp rdx, 0x1fe
jbe 0x5ac6b0
lea r11, [r12 + r12]
mov rdx, rcx
mov rcx, rbx
shr r11, 2
shl r11, 8
add r11, r15
nop word [rax + rax]
movdqu xmm3, xmmword [rdx]
add rdx, 0x100
add rcx, 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 + 0x20], 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 + 0x30], 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 + 0x20]
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 + 0x40], xmm9
shufps xmm8, xmm12, 0x88
movdqu xmm9, xmmword [rsp + 0x30]
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 + 0x20], xmm7
movdqu xmm7, xmm10
shufps xmm10, xmm15, 0xdd
shufps xmm9, xmm5, 0x88
movups xmmword [rsp + 0x30], xmm9
shufps xmm7, xmm15, 0x88
movdqu xmm15, xmmword [rsp + 0x40]
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 + 0x30]
punpckldq xmm13, xmm14
punpckhdq xmm6, xmm14
movdqu xmm14, xmm4
punpckhdq xmm4, xmmword [rsp + 0x20]
punpckldq xmm14, xmmword [rsp + 0x20]
movups xmmword [rsp + 0x30], 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 + 0x40], xmm10
punpckhdq xmm9, xmm13
punpckldq xmm8, xmm13
movdqu xmm13, xmm11
movdqu xmm10, xmm8
movdqu xmm8, xmm11
movdqu xmm11, xmmword [rsp + 0x30]
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 + 0x20], 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 + 0x30], xmm0
punpckldq xmm8, xmm6
movdqu xmm6, xmmword [rsp + 0x40]
punpckldq xmm14, xmm13
movdqu xmm0, xmm5
punpckhdq xmm7, xmm13
movdqu xmm13, xmm2
punpckhdq xmm2, xmm12
punpckldq xmm0, xmmword [rsp + 0x20]
punpckldq xmm13, xmm12
movdqu xmm12, xmm6
punpckhdq xmm6, xmm11
punpckhdq xmm5, xmmword [rsp + 0x20]
punpckldq xmm12, xmm11
movdqu xmm11, xmm0
movdqu xmm0, xmm15
punpckhdq xmm15, xmm14
punpckldq xmm0, xmm14
movdqu xmm14, xmm4
punpckhdq xmm4, xmm7
movups xmmword [rcx - 0xd0], xmm4
movdqu xmm4, xmm10
punpckldq xmm14, xmm7
punpckhdq xmm10, xmm13
movups xmmword [rcx - 0x100], xmm0
punpckldq xmm4, xmm13
movups xmmword [rcx - 0xc0], xmm4
movdqu xmm4, xmm1
punpckhdq xmm1, xmm2
movups xmmword [rcx - 0x90], xmm1
movdqu xmm1, xmm9
punpckldq xmm4, xmm2
movdqu xmm2, xmmword [rsp + 0x30]
punpckldq xmm1, xmm12
movups xmmword [rcx - 0x80], xmm1
movdqu xmm1, xmm3
punpckhdq xmm9, xmm12
punpckldq xmm1, xmm6
movups xmmword [rcx - 0x60], xmm1
movdqu xmm1, xmm8
punpckhdq xmm3, xmm6
punpckldq xmm1, xmm11
movups xmmword [rcx - 0x40], xmm1
movdqu xmm1, xmm2
punpckhdq xmm8, xmm11
punpckldq xmm1, xmm5
punpckhdq xmm2, xmm5
movups xmmword [rcx - 0xf0], xmm15
movups xmmword [rcx - 0xe0], xmm14
movups xmmword [rcx - 0xb0], xmm10
movups xmmword [rcx - 0xa0], xmm4
movups xmmword [rcx - 0x70], xmm9
movups xmmword [rcx - 0x50], xmm3
movups xmmword [rcx - 0x30], xmm8
movups xmmword [rcx - 0x20], xmm1
movups xmmword [rcx - 0x10], xmm2
cmp rdx, r11
jne 0x5ab618
mov rax, qword [rsp + 0x58]
mov rcx, rax
and rcx, 0xfffffffffffffffc
test al, 3
je 0x5abd69
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 0x5abd69
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 0x5abd69
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 0x5abe5a
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 + 0x68], 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 + 0x10]
mov rbx, qword [rsp + 0x190]
lea edx, [r8 - 1]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x30], edx
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 + 0x10]
cmp r14, rcx
jae 0x5abdfc
cmp rdx, qword [rsp + 0x40]
jb 0x5ac640
xor ecx, ecx
nop
movdqu xmm0, xmmword [rdx + rcx]
movdqu xmm2, xmmword [r14 + rcx]
pxor xmm0, xmm2
movups xmmword [r14 + rcx], xmm0
add rcx, 0x10
cmp rcx, r12
jne 0x5abe00
cmp esi, 2
jne 0x5ac690
mov r8, r13
mov rdx, rbx
mov rcx, r14
call fcn.005ab1f0
add r15d, 1
cmp esi, r15d
jne 0x5abdd0
cmp qword [rsp + 0x60], 0x1fe
mov r12, r13
mov rbx, r14
mov r15, qword [rsp + 0x160]
jbe 0x5ac734
mov r8, qword [rsp + 0x58]
mov rdx, rbx
mov rcx, r15
shr r8, 2
shl r8, 8
add r8, rbx
movdqu xmm3, xmmword [rdx]
add rdx, 0x100
add rcx, 0x100
movdqu xmm6, xmmword [rdx - 0xf0]
movdqu xmm15, xmmword [rdx - 0xe0]
movdqu xmm4, xmm3
movdqu xmm7, xmmword [rdx - 0xc0]
shufps xmm4, xmm6, 0x88
shufps xmm3, xmm6, 0xdd
movdqu xmm14, xmmword [rdx - 0xd0]
movdqu xmm6, xmm15
movdqu xmm13, xmmword [rdx - 0xb0]
shufps xmm6, xmm14, 0x88
movdqu xmm1, xmmword [rdx - 0x80]
shufps xmm15, xmm14, 0xdd
movdqu xmm14, xmm7
movdqu xmm9, xmmword [rdx - 0x60]
shufps xmm14, xmm13, 0x88
shufps xmm7, xmm13, 0xdd
movups xmmword [rsp + 0x20], xmm15
movdqu xmm11, xmmword [rdx - 0xa0]
movdqu xmm15, xmm14
movdqu xmm10, xmmword [rdx - 0x90]
movdqu xmm14, xmm9
movdqu xmm12, xmmword [rdx - 0x70]
movdqu xmm13, xmm11
movdqu xmm8, xmmword [rdx - 0x50]
shufps xmm13, xmm10, 0x88
shufps xmm11, xmm10, 0xdd
movdqu xmm10, xmm1
movdqu xmm0, xmmword [rdx - 0x40]
shufps xmm10, xmm12, 0x88
shufps xmm1, xmm12, 0xdd
movdqu xmm5, xmmword [rdx - 0x30]
shufps xmm9, xmm8, 0xdd
shufps xmm14, xmm8, 0x88
movdqu xmm12, xmm14
movdqu xmm2, xmmword [rdx - 0x20]
movdqu xmm14, xmm0
movdqu xmm8, xmmword [rdx - 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 + 0x30], xmm15
shufps xmm6, xmm13, 0x88
movdqu xmm13, xmm10
shufps xmm10, xmm12, 0xdd
shufps xmm13, xmm12, 0x88
movdqu xmm12, xmmword [rsp + 0x20]
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 + 0x20], 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 + 0x30]
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 + 0x30], xmm9
movdqu xmm7, xmm8
movdqu xmm9, xmmword [rsp + 0x20]
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 + 0x20], 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 + 0x40], xmm8
movdqu xmm15, xmmword [rsp + 0x40]
punpckldq xmm6, xmm11
movdqu xmm8, xmm6
movdqu xmm6, xmm4
movdqu xmm4, xmmword [rsp + 0x30]
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 + 0x30], xmm5
movdqu xmm5, xmm9
punpckldq xmm15, xmm10
punpckhdq xmm9, xmm8
punpckldq xmm5, xmm8
movdqu xmm8, xmm13
movdqu xmm10, xmm5
movdqu xmm5, xmmword [rsp + 0x20]
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 + 0x40], xmm0
punpckldq xmm8, xmm6
movdqu xmm6, xmm7
movdqu xmm0, xmmword [rsp + 0x30]
punpckhdq xmm7, xmm13
punpckldq xmm6, xmm13
movdqu xmm13, xmm2
movups xmmword [rsp + 0x20], xmm6
punpckhdq xmm2, xmm12
punpckldq xmm13, xmm12
movdqu xmm6, xmm15
movdqu xmm12, xmm15
movdqu xmm15, xmm5
punpckldq xmm12, xmm11
punpckhdq xmm6, xmm11
movdqu xmm11, xmm0
punpckldq xmm11, xmm5
movdqu xmm5, xmm0
movdqu xmm0, xmm14
punpckldq xmm0, xmmword [rsp + 0x20]
punpckhdq xmm14, xmmword [rsp + 0x20]
movups xmmword [rcx - 0xf0], xmm14
movdqu xmm14, xmm4
punpckhdq xmm4, xmm7
movups xmmword [rcx - 0xd0], xmm4
movdqu xmm4, xmm10
punpckhdq xmm5, xmm15
punpckldq xmm14, xmm7
punpckldq xmm4, xmm13
movups xmmword [rcx - 0xc0], xmm4
movdqu xmm4, xmm1
punpckhdq xmm1, xmm2
movups xmmword [rcx - 0x90], xmm1
movdqu xmm1, xmm9
punpckhdq xmm10, xmm13
punpckldq xmm4, xmm2
punpckldq xmm1, xmm12
movups xmmword [rcx - 0x80], xmm1
movdqu xmm1, xmm3
punpckhdq xmm3, xmm6
movups xmmword [rcx - 0x50], xmm3
punpckldq xmm1, xmm6
movdqu xmm3, xmmword [rsp + 0x40]
punpckhdq xmm9, xmm12
movups xmmword [rcx - 0x60], xmm1
movdqu xmm1, xmm8
punpckhdq xmm8, xmm11
punpckldq xmm1, xmm11
movups xmmword [rcx - 0x40], xmm1
movdqu xmm1, xmm3
punpckhdq xmm3, xmm5
punpckldq xmm1, xmm5
movups xmmword [rcx - 0x100], xmm0
movups xmmword [rcx - 0xe0], xmm14
movups xmmword [rcx - 0xb0], xmm10
movups xmmword [rcx - 0xa0], xmm4
movups xmmword [rcx - 0x70], xmm9
movups xmmword [rcx - 0x30], xmm8
movups xmmword [rcx - 0x20], xmm1
movups xmmword [rcx - 0x10], xmm3
cmp rdx, r8
jne 0x5abe70
mov rax, qword [rsp + 0x58]
mov rcx, rax
and rcx, 0xfffffffffffffffc
test al, 3
je 0x5ac5d3
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 0x5ac5d3
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 0x5ac5d3
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 + 0x70]
movups xmm7, xmmword [rsp + 0x80]
movups xmm8, xmmword [rsp + 0x90]
movups xmm9, xmmword [rsp + 0xa0]
movups xmm10, xmmword [rsp + 0xb0]
movups xmm11, xmmword [rsp + 0xc0]
movups xmm12, xmmword [rsp + 0xd0]
movups xmm13, xmmword [rsp + 0xe0]
movups xmm14, xmmword [rsp + 0xf0]
movups xmm15, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r11, rdx
mov rcx, r14
nop word cs:[rax + rax]
add rcx, 4
add r11, 4
mov eax, dword [r11 - 4]
xor dword [rcx - 4], eax
cmp rcx, rbp
jne 0x5ac650
cmp esi, 2
je 0x5abe26
mov r8, qword [rsp + 0x68]
xor ecx, ecx
nop dword [rax]
mov eax, dword [r14 + rcx]
mov dword [rdx + rcx], eax
add rcx, 4
cmp r8, rcx
jne 0x5ac678
jmp 0x5abe26
xor ecx, ecx
nop word [rax + rax]
movdqu xmm5, xmmword [r14 + rcx]
movups xmmword [rdx + rcx], xmm5
add rcx, 0x10
cmp rcx, r12
jne 0x5ac698
jmp 0x5abe26
mov rbp, r12
mov rdx, rcx
mov rcx, rbx
shl rbp, 7
add rbp, r15
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 0x5ac6c0
test esi, esi
jne 0x5abd71
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 0x5ac748
jmp 0x5ac5d3