Function at 0x180335c90
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov dword [rsp + 0x10], edx
mov dword [rsp + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
movsxd r12, ecx
xor esi, esi
mov r15d, edx
mov ecx, r12d
imul ecx, edx
mov rdi, r9
mov rbx, r8
mov r11d, esi
lea r13d, [r12 + r12]
mov r10d, esi
movsxd rax, r13d
mov rdx, r12
mov dword [rsp], ecx
cmp r15d, 4
jl 0x180336014
lea r10, [rdi - 4]
movsxd r8, ecx
lea r10, [r10 + rax*4]
mov r9d, esi
lea eax, [r15 - 4]
shr eax, 2
lea r14, [r12*8]
inc eax
mov ebp, eax
lea eax, [rax*4]
mov dword [rsp + 8], eax
nop dword [rax]
movss xmm0, dword [rbx + r8*4]
lea eax, [r11 + r11]
addss xmm0, dword [rbx + r9*4]
movsxd rcx, eax
add r11d, r12d
movss dword [rdi + rcx*4], xmm0
lea eax, [r11 + r11]
movss xmm0, dword [rbx + r9*4]
add r11d, r12d
subss xmm0, dword [rbx + r8*4]
add r8, rdx
movsxd rcx, eax
add r9, rdx
lea eax, [r11 + r11]
add r11d, r12d
movss dword [r10], xmm0
add r10, r14
movss xmm0, dword [rbx + r8*4]
addss xmm0, dword [rbx + r9*4]
movss dword [rdi + rcx*4], xmm0
movss xmm0, dword [rbx + r9*4]
add r9, rdx
subss xmm0, dword [rbx + r8*4]
add r8, rdx
movsxd rcx, eax
lea eax, [r11 + r11]
add r11d, r12d
movss dword [r10], xmm0
add r10, r14
movss xmm0, dword [rbx + r8*4]
addss xmm0, dword [rbx + r9*4]
movss dword [rdi + rcx*4], xmm0
movss xmm0, dword [rbx + r9*4]
add r9, rdx
subss xmm0, dword [rbx + r8*4]
add r8, rdx
movsxd rcx, eax
movss dword [r10], xmm0
add r10, r14
movss xmm0, dword [rbx + r8*4]
addss xmm0, dword [rbx + r9*4]
movss dword [rdi + rcx*4], xmm0
movss xmm0, dword [rbx + r9*4]
add r9, rdx
subss xmm0, dword [rbx + r8*4]
add r8, rdx
movss dword [r10], xmm0
add r10, r14
sub rbp, 1
jne 0x180335d10
mov r10d, dword [rsp + 8]
cmp r10d, r15d
jge 0x180335e57
movsxd rax, r13d
lea rcx, [rbx + r8*4]
lea r8, [rbx + r9*4]
lea r9, [r9*2 - 1]
add r9, rax
lea rbp, [r12*4]
mov eax, r15d
sub eax, r10d
mov r10d, eax
add r11d, r11d
lea r9, [rdi + r9*4]
movss xmm0, dword [r8]
addss xmm0, dword [rcx]
movsxd rax, r11d
add r11d, r13d
movss dword [rdi + rax*4], xmm0
movss xmm0, dword [r8]
add r8, rbp
subss xmm0, dword [rcx]
add rcx, rbp
movss dword [r9], xmm0
add r9, r14
sub r10, 1
jne 0x180335e26
mov ecx, dword [rsp]
cmp r12d, 2
jl 0x180335fff
je 0x180335fa5
test r15d, r15d
jle 0x180335f9f
lea r13, [r12*8]
movsxd rbp, ecx
mov rax, rdx
lea r9, [r12 + r12]
mov r12, qword [rsp + 0x80]
lea r14, [rdi - 4]
neg rax
lea r15, [rdi + r13]
shl rax, 2
mov r8, rbx
mov qword [rsp + 8], rax
sub r8, rdi
mov eax, dword [rsp + 0x68]
mov rcx, qword [rsp + 8]
mov qword [rsp + 0x10], rax
cmp rdx, 2
jle 0x180335f77
mov rax, rbp
lea r9, [rdx - 3]
sub rax, rsi
shr r9, 1
shl rax, 2
lea r11, [r12 + 4]
sub rax, rdi
mov r10, r15
add rax, rbx
mov rcx, r14
inc r9
nop dword [rax]
nop dword [rax + rax]
movss xmm4, dword [rcx + rax + 0xc]
add rcx, 8
movaps xmm5, xmm4
sub r10, 8
mulss xmm4, dword [r11 - 4]
mulss xmm5, dword [r11]
movss xmm3, dword [rcx + rax]
movaps xmm0, xmm3
mulss xmm3, dword [r11]
mulss xmm0, dword [r11 - 4]
add r11, 8
subss xmm4, xmm3
addss xmm5, xmm0
movaps xmm0, xmm4
addss xmm0, dword [r8 + rcx + 4]
movss dword [rcx + 4], xmm0
movaps xmm0, xmm5
subss xmm4, dword [r8 + rcx + 4]
movss dword [r10], xmm4
addss xmm0, dword [r8 + rcx]
movss dword [rcx], xmm0
movss xmm1, dword [r8 + rcx]
subss xmm1, xmm5
movss dword [r10 - 4], xmm1
sub r9, 1
jne 0x180335ef0
mov rax, qword [rsp + 0x10]
lea r9, [rdx + rdx]
mov rcx, qword [rsp + 8]
add r14, r13
add rsi, r9
add r15, r13
add r8, rcx
add rbp, rdx
sub rax, 1
mov qword [rsp + 0x10], rax
jne 0x180335eb5
mov r12d, dword [rsp + 0x60]
mov r15d, dword [rsp + 0x68]
test r12b, 1
jne 0x180335fff
lea eax, [r12 - 1]
test r15d, r15d
jle 0x180335fff
add eax, dword [rsp]
lea r10, [rdx*4]
movss xmm1, dword [0x1805cab70]
lea r11, [rdx*8]
movsxd r9, eax
lea rcx, [r10 + rdi]
movsxd rax, r12d
dec rax
mov r8d, r15d
sub r9, rax
lea rdx, [rbx + rax*4]
movss xmm0, dword [rdx + r9*4]
xorps xmm0, xmm1
movss dword [rcx], xmm0
mov eax, dword [rdx]
add rdx, r10
mov dword [rcx - 4], eax
add rcx, r11
sub r8, 1
jne 0x180335fe1
mov rbx, qword [rsp + 0x70]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test r15d, r15d
jle 0x180335e5a
movsxd r8, ecx
lea r14, [r12*8]
mov r9, rsi
jmp 0x180335dfb