Function at 0x1800216a0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov qword [r11 + 0x10], rdx
push rbp
push rdi
sub rsp, 0xa8
mov eax, dword [rsp + 0xe0]
mov rbp, rcx
mov r10, r9
mov rdi, r8
mov r9, rdx
lea ecx, [rax + 0x2b5]
mov dword [rsp + 0x28], ecx
cmp eax, ecx
jae 0x180021be1
mov qword [r11 + 8], rbx
mov rbx, qword [rsp + 0x40]
mov qword [r11 - 0x18], rsi
mov esi, dword [rsp + 0xe0]
mov qword [r11 - 0x20], r12
mov r12d, dword [rsp + 0xe0]
mov qword [r11 - 0x28], r13
mov r13d, dword [rsp + 0xe0]
mov qword [r11 - 0x30], r14
mov r14d, dword [rsp + 0xe0]
mov qword [r11 - 0x38], r15
mov r15d, dword [rsp + 0x20]
movaps xmmword [rsp + 0x70], xmm6
movss xmm6, dword [rsp + 0xe0]
movaps xmmword [rsp + 0x60], xmm7
movss xmm7, dword [rsp + 0xe0]
movaps xmmword [r11 - 0x68], xmm8
movss xmm8, dword [0x18007b870]
cmp eax, 0x8c
ja 0x1800218cb
je 0x1800218b6
sub eax, 0x17
je 0x1800218a8
sub eax, 0x3f
je 0x180021b50
sub eax, 0x18
je 0x18002181e
sub eax, 0x10
je 0x1800217d8
cmp eax, 9
jne 0x1800217e5
mov eax, dword [rdi]
test eax, eax
je 0x1800217d2
mov rbx, qword [rsp + 0xc8]
nop dword [rax + rax]
dec dword [rdi]
lea rcx, [rsp + 0x30]
mov r8d, 0x10c
mov dword [rsp + 0x30], 8
mov rdx, r10
call fcn.18004fc60
mov r10, qword [rsp + 0xd8]
mov byte [rbx], al
inc rbx
cmp dword [rdi], 0
jne 0x180021790
mov ecx, dword [rsp + 0x28]
xor eax, eax
mov qword [rsp + 0xc8], rbx
mov rbx, qword [rsp + 0x40]
dec eax
mov dword [rdi], eax
jmp 0x1800217e5
mov rcx, qword [r10 + 0x10]
call fcn.18005f9b8
mov ecx, dword [rsp + 0x28]
mov r10d, dword [rsp + 0xe0]
add r10d, 0x3f
mov dword [rsp + 0xe0], r10d
cmp r10d, ecx
jae 0x180021b50
mov r10, qword [rsp + 0xd8]
mov r9, qword [rsp + 0xc8]
mov eax, dword [rsp + 0xe0]
jmp 0x180021744
mov ecx, dword [r9]
xor r15d, r15d
mov eax, dword [r10]
xor r9d, r9d
mov r11d, eax
mov dword [rsp + 0x20], r15d
imul r11d, ecx
lea esi, [rax + rax]
mov dword [rsp + 0x24], r11d
mov dword [rsp + 0x38], r11d
test ecx, ecx
jle 0x1800217e1
mov rbx, qword [rsp + 0xc8]
nop
movsxd rdx, r11d
lea eax, [r15 + r15]
movsxd r8, r15d
inc r9d
movsxd rcx, eax
lea eax, [rsi + r15*2]
movss xmm0, dword [rdi + rdx*4]
addss xmm0, dword [rdi + r8*4]
movss dword [rbp + rcx*4], xmm0
movss xmm1, dword [rdi + r8*4]
subss xmm1, dword [rdi + rdx*4]
movsxd rcx, eax
movss dword [rbp + rcx*4 - 4], xmm1
add r15d, dword [r10]
add r11d, dword [r10]
cmp r9d, dword [rbx]
jl 0x180021850
mov rbx, qword [rsp + 0x40]
mov dword [rsp + 0x24], r11d
mov dword [rsp + 0x20], r15d
jmp 0x1800217e1
mov rbx, qword [r10 + 0x18]
mov qword [rsp + 0x40], rbx
jmp 0x1800217e5
mov eax, dword [rsp + 0xe0]
mov dword [rsp + 0x40], eax
mov rbx, qword [rsp + 0x40]
jmp 0x1800217e5
sub eax, 0xad
je 0x180021b9d
sub eax, 0x1e
je 0x180021b50
sub eax, 0x21
je 0x180021952
sub eax, 0x3f
je 0x180021ba5
cmp eax, 0x3f
jne 0x1800217e5
xor r8d, r8d
cmp dword [r9], r8d
jle 0x1800217e5
mov r11d, dword [rsp + 0x24]
nop word [rax + rax]
movsxd rax, r11d
inc r8d
movsxd rdx, r15d
movss xmm0, dword [rdi + rax*4]
movsxd rax, esi
xorps xmm0, xmm8
movss dword [rbp + rdx*4], xmm0
mov ecx, dword [rdi + rax*4]
mov dword [rbp + rdx*4 - 4], ecx
mov eax, dword [r10]
add r11d, eax
add esi, eax
lea r15d, [r15 + rax*2]
cmp r8d, dword [r9]
jl 0x180021910
mov dword [rsp + 0x24], r11d
mov dword [rsp + 0x20], r15d
jmp 0x1800217e1
cmp dword [r9], 0
mov dword [rsp + 0x30], 0
jle 0x180021b36
nop dword [rax]
nop dword [rax + rax]
mov ecx, 0x11f
mov dword [rsp + 0x2c], ecx
nop dword [rax]
mov eax, ecx
sub eax, 0x11f
je 0x180021af1
sub eax, 1
je 0x180021aeb
sub eax, 1
je 0x1800219b4
cmp eax, 1
jne 0x180021b01
mov eax, dword [rsp + 0x24]
add eax, dword [r10]
mov dword [rsp + 0x24], eax
jmp 0x180021b01
mov eax, dword [r10]
mov r15d, 2
cmp eax, r15d
jle 0x180021ae0
mov r11, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0xd8]
add r11, 4
movsxd r8, r13d
movsxd r9, r12d
movsxd r10, r14d
movsxd rdx, esi
nop word [rax + rax]
mov ecx, 0x121
nop word [rax + rax]
mov eax, ecx
sub eax, 0x121
je 0x180021aac
sub eax, 1
je 0x180021a60
cmp eax, 1
jne 0x180021ab3
movaps xmm0, xmm6
movaps xmm1, xmm6
addss xmm0, dword [rdi + r8*4]
movss dword [rbp + r9*4], xmm0
movaps xmm0, xmm7
subss xmm1, dword [rdi + r8*4]
movss dword [rbp + r10*4], xmm1
addss xmm0, dword [rdi + r8*4 - 4]
movss dword [rbp + r9*4 - 4], xmm0
movss xmm1, dword [rdi + r8*4 - 4]
subss xmm1, xmm7
movss dword [rbp + r10*4 - 4], xmm1
jmp 0x180021ab3
movss xmm6, dword [rdi + rdx*4]
sub r14d, 2
movss xmm1, dword [r11 - 4]
movaps xmm0, xmm6
movss xmm3, dword [r11]
movaps xmm7, xmm1
mulss xmm7, dword [rdi + rdx*4 - 4]
sub r10, 2
add r13d, 2
add r8, 2
mulss xmm0, xmm3
add r12d, 2
add r9, 2
mulss xmm3, dword [rdi + rdx*4 - 4]
mulss xmm6, xmm1
addss xmm7, xmm0
subss xmm6, xmm3
jmp 0x180021ab3
add esi, 2
add rdx, 2
inc ecx
cmp ecx, 0x124
jb 0x180021a00
mov eax, dword [rbx]
add r15d, 2
add r11, 8
cmp r15d, eax
jl 0x1800219f0
mov r10, qword [rsp + 0xd8]
mov ecx, dword [rsp + 0x2c]
add dword [rsp + 0x20], eax
mov r15d, dword [rsp + 0x20]
jmp 0x180021b01
lea r12d, [r15 + r15]
jmp 0x180021b01
mov r14d, dword [r10]
mov r13d, r15d
mov esi, dword [rsp + 0x24]
add r14d, r15d
add r14d, r14d
inc ecx
mov dword [rsp + 0x2c], ecx
cmp ecx, 0x123
jb 0x180021980
mov edx, dword [rsp + 0x30]
mov rax, qword [rsp + 0xc8]
inc edx
mov dword [rsp + 0x30], edx
cmp edx, dword [rax]
jl 0x180021970
mov rbx, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x28]
mov eax, dword [r10]
and eax, 0x80000001
jge 0x180021b47
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
jne 0x1800217e5
movaps xmm7, xmmword [rsp + 0x60]
mov rax, rbx
mov rbx, qword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0x70]
mov r15, qword [rsp + 0x80]
mov r14, qword [rsp + 0x88]
mov r13, qword [rsp + 0x90]
mov r12, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0x50]
add rsp, 0xa8
pop rdi
pop rbp
ret
cmp dword [r10], 2
jl 0x180021b50
jne 0x180021bcc
mov r15d, dword [r10]
mov eax, 0x12b
mov dword [rsp + 0xe0], eax
mov dword [rsp + 0x20], r15d
lea eax, [r15 - 1]
mov esi, eax
add eax, dword [rsp + 0x38]
mov dword [rsp + 0x24], eax
jmp 0x1800217e5
mov eax, dword [rsp + 0x38]
xor r15d, r15d
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x24], eax
jmp 0x1800217e5
mov rax, qword [rsp + 0x40]
add rsp, 0xa8
pop rdi
pop rbp
ret