Function at 0x18005cd00
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x18], r8d
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x27]
sub rsp, 0xe0
mov rsi, qword [0x1800801d0]
mov rdi, rdx
mov rbx, rcx
movaps xmmword [rsp + 0xd0], xmm6
mov edx, 1
xor ecx, ecx
mov r14d, r8d
call fcn.180030050
test rbx, rbx
je 0x18005cd8a
xor edx, edx
mov rcx, rbx
call fcn.180033080
cmp rax, rbx
jbe 0x18005cd8a
xor r8d, r8d
mov rdx, rax
mov rcx, rbx
call fcn.180064170
mov rax, qword [0x1800801d0]
mov rcx, qword [rax + 0x1a80]
cmp byte [rcx + 0x83], 0
jne 0x18005cd8a
mov eax, dword [rcx + 0x1a8]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.180063210
movss xmm0, dword [rsi + 0x1928]
movss xmm1, dword [rsi + 0x15a4]
mov esi, r14d
mulss xmm0, dword [0x180071ce8]
addss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [0x1800713bc]
movss dword [rbp + 0x6f], xmm1
movss dword [rbp + 0x73], xmm1
and esi, 2
je 0x18005cdc9
movaps xmm1, xmm0
jmp 0x18005cdce
movss xmm1, dword [rdi + 0xc]
movss xmm2, dword [rdi]
xorps xmm6, xmm6
comiss xmm6, xmm2
movss xmm3, dword [rdi + 4]
movss xmm5, dword [rdi + 8]
movss dword [rbp + 7], xmm2
movss dword [rbp + 0xb], xmm3
movss dword [rbp + 0xf], xmm5
movss dword [rbp + 0x13], xmm1
jbe 0x18005cdfd
xorps xmm1, xmm1
jmp 0x18005ce04
movaps xmm1, xmm0
minss xmm1, xmm2
comiss xmm6, xmm3
movss xmm2, dword [0x18007140c]
movss xmm4, dword [0x1800713b8]
mulss xmm1, xmm2
addss xmm1, xmm4
cvttss2si eax, xmm1
mov dword [rbp + 0x67], eax
jbe 0x18005ce2d
xorps xmm1, xmm1
jmp 0x18005ce34
movaps xmm1, xmm0
minss xmm1, xmm3
comiss xmm6, xmm5
mulss xmm1, xmm2
addss xmm1, xmm4
cvttss2si r13d, xmm1
jbe 0x18005ce4b
xorps xmm1, xmm1
jmp 0x18005ce52
movaps xmm1, xmm0
minss xmm1, xmm5
mulss xmm1, xmm2
mov qword [rsp + 0x138], r15
addss xmm1, xmm4
cvttss2si r12d, xmm1
test esi, esi
je 0x18005ce73
mov r15d, 0xff
jmp 0x18005ce93
movss xmm1, dword [rdi + 0xc]
comiss xmm6, xmm1
jbe 0x18005ce82
xorps xmm0, xmm0
jmp 0x18005ce86
minss xmm0, xmm1
mulss xmm0, xmm2
addss xmm0, xmm4
cvttss2si r15d, xmm0
movsd xmm0, qword [0x180076c38]
xor ebx, ebx
cmp byte [0x180076c41], bl
movzx eax, word [0x180076c40]
movsd qword [rbp - 0x49], xmm0
mov word [rbp - 0x41], ax
je 0x18005cf06
mov r8d, ebx
movabs r14, 0x47ae147ae147ae15
nop dword [rax]
nop word [rax + rax]
mov rax, r14
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x32
movzx eax, r8b
sub al, cl
add al, 0x32
xor byte [rbp + r8 - 0x49], al
inc r8
cmp r8, 0xa
jb 0x18005ced0
mov r14d, dword [rbp + 0x77]
mov r9, qword [rbp + 0x6f]
lea rdx, [rbp + 7]
mov r8d, r14d
lea rcx, [rbp - 0x49]
and r8d, 0x18060002
or r8d, 0x40
call fcn.180057ba0
movss xmm1, dword [0x180071428]
movaps xmm0, xmm6
call fcn.18003d940
movaps xmm6, xmmword [rsp + 0xd0]
bt r14d, 0x1b
jb 0x18005d0b6
test r14d, 0x18000000
je 0x18005d0b6
bt r14d, 0x1c
jae 0x18005d254
movss xmm3, dword [rdi + 8]
movss xmm2, dword [rdi + 4]
cvtps2pd xmm3, xmm3
cvtps2pd xmm2, xmm2
test esi, esi
je 0x18005d010
cmp byte [0x180076ce1], bl
movups xmm0, xmmword [0x180076cc8]
movzx eax, word [0x180076ce0]
movss xmm4, dword [rdi]
movsd xmm1, qword [0x180076cd8]
movups xmmword [rbp - 0x3f], xmm0
mov word [rbp - 0x27], ax
cvtps2pd xmm4, xmm4
movsd qword [rbp - 0x2f], xmm1
je 0x18005cff0
movabs r8, 0x47ae147ae147ae15
nop dword [rax]
nop dword [rax + rax]
mov rax, r8
mul rbx
mov rax, rbx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
add al, 0x32
xor byte [rbp + rbx - 0x3f], al
inc rbx
cmp rbx, 0x1a
jb 0x18005cfc0
movq r9, xmm3
lea rcx, [rbp - 0x3f]
movq r8, xmm2
movaps xmm1, xmm4
movq rdx, xmm4
call fcn.1800640f0
jmp 0x18005d254
movzx eax, word [0x180076d08]
movabs r8, 0x47ae147ae147ae15
movups xmm0, xmmword [0x180076ce8]
mov word [rbp - 0x1f], ax
movups xmm1, xmmword [0x180076cf8]
movzx eax, byte [0x180076d0a]
movss xmm4, dword [rdi + 0xc]
movss xmm5, dword [rdi]
mov byte [rbp - 0x1d], al
cvtps2pd xmm4, xmm4
cvtps2pd xmm5, xmm5
movups xmmword [rbp - 0x3f], xmm0
movups xmmword [rbp - 0x2f], xmm1
nop dword [rax]
nop dword [rax + rax]
mov rax, r8
mul rbx
mov rax, rbx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
add al, 0x32
xor byte [rbp + rbx - 0x3f], al
inc rbx
cmp rbx, 0x23
jb 0x18005d060
movq r9, xmm3
movsd qword [rsp + 0x20], xmm4
movq r8, xmm2
lea rcx, [rbp - 0x3f]
movaps xmm1, xmm5
movq rdx, xmm5
call fcn.1800640f0
jmp 0x18005d254
movabs r8, 0x47ae147ae147ae15
test esi, esi
je 0x18005d189
movups xmm0, xmmword [0x180076c48]
mov eax, dword [0x180076c78]
movups xmm1, xmmword [0x180076c58]
mov dword [rbp - 0xf], eax
movss xmm2, dword [rdi + 8]
movss xmm3, dword [rdi + 4]
movss xmm4, dword [rdi]
movzx eax, byte [0x180076c7c]
movups xmmword [rbp - 0x3f], xmm0
mov byte [rbp - 0xb], al
movups xmm0, xmmword [0x180076c68]
cvtps2pd xmm2, xmm2
movups xmmword [rbp - 0x1f], xmm0
cvtps2pd xmm3, xmm3
cvtps2pd xmm4, xmm4
movups xmmword [rbp - 0x2f], xmm1
nop dword [rax]
nop word [rax + rax]
mov rax, r8
mul rbx
mov rax, rbx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
add al, 0x32
xor byte [rbp + rbx - 0x3f], al
inc rbx
cmp rbx, 0x35
jb 0x18005d120
mov eax, dword [rbp + 0x67]
lea rcx, [rbp - 0x3f]
movsd qword [rsp + 0x48], xmm2
mov r9d, r12d
movsd qword [rsp + 0x40], xmm3
mov r8d, r13d
movsd qword [rsp + 0x38], xmm4
mov edx, eax
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], eax
call fcn.1800640f0
jmp 0x18005d254
movaps xmm0, xmmword [0x180076c80]
movaps xmm1, xmmword [0x180076c90]
movss xmm2, dword [rdi + 0xc]
movss xmm3, dword [rdi + 8]
movss xmm4, dword [rdi + 4]
movss xmm5, dword [rdi]
movzx eax, word [0x180076cc0]
movups xmmword [rbp - 0x3f], xmm0
mov word [rbp + 1], ax
movaps xmm0, xmmword [0x180076ca0]
movups xmmword [rbp - 0x2f], xmm1
movaps xmm1, xmmword [0x180076cb0]
movups xmmword [rbp - 0x1f], xmm0
movups xmmword [rbp - 0xf], xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
cvtps2pd xmm4, xmm4
cvtps2pd xmm5, xmm5
nop
mov rax, r8
mul rbx
mov rax, rbx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
add al, 0x32
xor byte [rbp + rbx - 0x3f], al
inc rbx
cmp rbx, 0x42
jb 0x18005d1e0
mov eax, dword [rbp + 0x67]
lea rcx, [rbp - 0x3f]
movsd qword [rsp + 0x60], xmm2
mov r9d, r12d
movsd qword [rsp + 0x58], xmm3
mov r8d, r13d
movsd qword [rsp + 0x50], xmm4
mov edx, eax
movsd qword [rsp + 0x48], xmm5
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r15d
call fcn.1800640f0
call fcn.1800329d0
mov r15, qword [rsp + 0x138]
add rsp, 0xe0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret