Function at 0x180027c70
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0xa0
lea rbp, [rsp + 0x20]
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], rsi
mov qword [rbp + 0xc0], rdi
movaps xmmword [rbp + 0x70], xmm6
movaps xmmword [rbp + 0x60], xmm7
movaps xmmword [rbp + 0x50], xmm8
mov rax, qword [0x180071020]
xor rax, rbp
mov qword [rbp + 0x40], rax
mov rax, qword [rcx + 0x38]
mov esi, 2
mov r13d, r9d
mov dword [rbp], r9d
mov r14, rdx
mov edi, r8d
mov rbx, rcx
mov qword [rbp + 0x10], rdx
movss xmm7, dword [rax]
movss xmm8, dword [rax + 4]
mov qword [rbp + 0x30], rcx
test byte [rcx + 0x30], sil
je 0x180027fa1
mov eax, r9d
lea edx, [rdi*8 - 6]
and eax, 0xffffff
add edx, edi
mov dword [rbp + 0x20], eax
lea eax, [rdi + rdi]
mov r8d, eax
mov dword [rbp + 0x28], eax
call fcn.180026e14
mov eax, dword [rbx + 0x48]
lea r15d, [rsi - 1]
mov dword [rbp + 8], eax
mov r8d, esi
inc eax
mov dword [rbp + 0x24], eax
cmp edi, esi
jle 0x180027d61
mov r14d, dword [rbp + 8]
mov rax, qword [rbx + 0x58]
movzx edx, r8w
add dx, dx
add r8d, r15d
add dx, r14w
movzx ecx, dx
mov word [rax], r14w
sub cx, si
mov rax, qword [rbx + 0x58]
mov word [rax + 2], cx
mov rax, qword [rbx + 0x58]
mov word [rax + 4], dx
add qword [rbx + 0x58], 6
cmp r8d, edi
jl 0x180027d27
mov r14, qword [rbp + 0x10]
movsxd rax, edi
shl rax, 3
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x180027d7b
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.18002e530
sub rsp, rcx
xor r12d, r12d
mov qword [rbp + 0x38], r12
lea ecx, [rdi - 1]
mov esi, r12d
lea r13, [rsp + 0x20]
test edi, edi
jle 0x180027f98
movss xmm6, dword [0x18006af10]
mov ebx, r12d
movsxd rax, ecx
mov r12, r14
shl rax, 3
mov qword [rbp + 0x10], rax
movsxd rax, ecx
mov rdx, r12
lea rcx, [rbp + 0x18]
lea r8, [r14 + rax*8]
call fcn.18000ebdc
movaps xmm1, xmm6
lea rcx, [rbp + 0x18]
call fcn.18002053c
movaps xmm1, xmm0
lea rcx, [rbp + 0x18]
call fcn.18000ec94
mov rax, qword [rbp + 0x10]
mov ecx, esi
movss xmm0, dword [rbp + 0x18]
add esi, r15d
movss xmm2, dword [rbp + 0x1c]
add r12, 8
xorps xmm0, xmmword [0x18006b0a0]
mov qword [rbp + 0x10], rbx
add rbx, 8
movss dword [rax + r13], xmm2
movss dword [rax + r13 + 4], xmm0
cmp esi, edi
jl 0x180027dbd
movss xmm4, dword [0x18006aea8]
lea r11d, [rdi - 1]
mov rbx, qword [rbp + 0x30]
mov r10, r13
mov r12, qword [rbp + 0x38]
sub r10, r14
mov r9d, dword [rbp + 8]
mov esi, dword [rbp]
movsxd rax, r11d
lea r8, [r10 + r14]
lea rcx, [rbp + 0x38]
lea rdx, [rax*8]
add rdx, r13
call fcn.18000ebb4
mov rdx, rax
lea rcx, [rbp]
movaps xmm2, xmm4
call fcn.18000eb94
movss xmm3, dword [rbp + 4]
movss xmm0, dword [rbp]
mulss xmm3, xmm3
mulss xmm0, xmm0
addss xmm3, xmm0
comiss xmm3, dword [0x18006ae38]
jbe 0x180027ea5
movss xmm1, dword [0x18006afc8]
lea rcx, [rbp]
movaps xmm0, xmm6
divss xmm0, xmm3
minss xmm1, xmm0
call fcn.18000ec94
movaps xmm1, xmm4
lea rcx, [rbp]
call fcn.18000ec94
lea r8, [rbp]
mov rdx, r14
lea rcx, [rbp + 0x30]
call fcn.18000ebdc
lea r8, [rbp]
lea rcx, [rbp + 0x10]
movss xmm0, dword [rax]
movss xmm3, dword [rax + 4]
mov rax, qword [rbx + 0x50]
movss dword [rax], xmm0
movss dword [rax + 4], xmm3
mov rax, qword [rbx + 0x50]
movss dword [rax + 8], xmm7
movss dword [rax + 0xc], xmm8
mov rax, qword [rbx + 0x50]
mov dword [rax + 0x10], esi
call fcn.18000ebb4
mov ecx, dword [rbp + 0x20]
add r11w, r11w
movzx r8d, r12w
add r14, 8
add r8w, r8w
movss xmm0, dword [rax]
movss xmm3, dword [rax + 4]
mov rax, qword [rbx + 0x50]
lea edx, [r9 + r8]
movss dword [rax + 0x14], xmm0
movss dword [rax + 0x18], xmm3
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x1c], xmm7
movss dword [rax + 0x20], xmm8
mov rax, qword [rbx + 0x50]
mov dword [rax + 0x24], ecx
lea ecx, [r9 + r11]
mov rax, qword [rbx + 0x58]
add qword [rbx + 0x50], 0x28
mov word [rax], dx
mov rax, qword [rbx + 0x58]
mov word [rax + 2], cx
mov rax, qword [rbx + 0x58]
mov ecx, dword [rbp + 0x24]
add r11w, cx
add r8w, cx
mov word [rax + 4], r11w
mov rax, qword [rbx + 0x58]
mov word [rax + 6], r11w
mov r11d, r12d
mov rax, qword [rbx + 0x58]
add r12d, r15d
mov word [rax + 8], r8w
mov rax, qword [rbx + 0x58]
mov word [rax + 0xa], dx
add qword [rbx + 0x58], 0xc
cmp r12d, edi
jl 0x180027e40
movzx eax, word [rbp + 0x28]
jmp 0x18002802e
lea eax, [rdi - 2]
mov r8d, edi
lea edx, [rax + rax*2]
call fcn.180026e14
mov r15d, 1
test edi, edi
jle 0x180027fee
mov rcx, rdi
mov rax, qword [rbx + 0x50]
movsd xmm0, qword [r14]
lea r14, [r14 + 8]
movsd qword [rax], xmm0
mov rax, qword [rbx + 0x50]
movss dword [rax + 8], xmm7
movss dword [rax + 0xc], xmm8
mov rax, qword [rbx + 0x50]
mov dword [rax + 0x10], r13d
add qword [rbx + 0x50], 0x14
sub rcx, r15
jne 0x180027fbc
cmp edi, esi
jle 0x18002802b
mov rcx, qword [rbx + 0x58]
movzx eax, word [rbx + 0x48]
mov word [rcx], ax
movzx ecx, si
add cx, word [rbx + 0x48]
mov rax, qword [rbx + 0x58]
sub cx, r15w
mov word [rax + 2], cx
movzx ecx, si
mov rax, qword [rbx + 0x58]
add esi, r15d
add cx, word [rbx + 0x48]
mov word [rax + 4], cx
add qword [rbx + 0x58], 6
cmp esi, edi
jl 0x180027ff2
movzx eax, di
add dword [rbx + 0x48], eax
mov rcx, qword [rbp + 0x40]
xor rcx, rbp
call fcn.18002d900
mov rbx, qword [rbp + 0xb0]
mov rsi, qword [rbp + 0xb8]
mov rdi, qword [rbp + 0xc0]
movaps xmm6, xmmword [rbp + 0x70]
movaps xmm7, xmmword [rbp + 0x60]
movaps xmm8, xmmword [rbp + 0x50]
lea rsp, [rbp + 0x80]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret