Function at 0x18000af30
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r14
lea rbp, [rax - 0x5f]
sub rsp, 0xc8
cmp byte [rcx], 0
movzx r14d, r8b
mov rdi, rdx
mov rsi, rcx
je 0x18000b4bc
test rdx, rdx
je 0x18000b4bc
mov edx, dword [0x18007e008]
mov rcx, qword [0x18036ee10]
mov qword [rax + 0x18], r12
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm11
movaps xmmword [rax - 0x78], xmm12
call fcn.18000eae0
mov rdx, rax
xorps xmm9, xmm9
test rax, rax
jne 0x18000afa3
xorps xmm10, xmm10
xorps xmm11, xmm11
xorps xmm12, xmm12
jmp 0x18000afc8
mov rax, qword [0x18036f520]
lea rcx, [rbp - 0x69]
add rax, 0x2157e40
call rax
movss xmm12, dword [rbp - 0x69]
movss xmm11, dword [rbp - 0x65]
movss xmm10, dword [rbp - 0x61]
mov rax, qword [0x18036f520]
add rax, 0x2154fa0
movss dword [rbp - 0x61], xmm10
call rax
lea rcx, [rdi + 0x248]
movabs r12, 0x7fffffff0000
cmp rcx, 0x400000
jbe 0x18000b009
lea rax, [rdi + 0x24c]
cmp rax, r12
jae 0x18000b009
movss xmm1, dword [rcx]
jmp 0x18000b00c
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x18000b493
lea rcx, [rdi + 0x254]
cmp rcx, 0x400000
jbe 0x18000b037
lea rax, [rdi + 0x258]
cmp rax, r12
jae 0x18000b037
movss xmm1, dword [rcx]
jmp 0x18000b03a
xorps xmm1, xmm1
lea rcx, [rdi + 0x1f0]
cmp rcx, 0x400000
jbe 0x18000b05c
lea rax, [rdi + 0x1f4]
cmp rax, r12
jae 0x18000b05c
movss xmm0, dword [rcx]
jmp 0x18000b05f
xorps xmm0, xmm0
comiss xmm1, xmm0
jb 0x18000b493
mov rax, qword [str._ClIO_e]
mov qword [rsp + 0xc0], r15
xor r15d, r15d
cmp byte [0x1800714df], r15b
movaps xmmword [rsp + 0xb0], xmm6
mov byte [rbp + 0x67], 0
mov qword [rbp + 0x7f], rax
je 0x18000b1f3
cmp dword [0x18036ed30], 2
mov r8d, r15d
jl 0x18000b1b1
movdqa xmm2, xmmword [0x180073170]
mov eax, 1
movdqa xmm4, xmmword [0x180073200]
movdqa xmm1, xmm2
movdqa xmm3, xmmword [0x180073180]
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
movd xmm6, eax
mov eax, 0x1f
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movd xmm5, eax
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800731d0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [rbp + 0x7f]
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
pand xmm2, xmmword [0x1800731f0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x180073210]
pxor xmm2, xmm0
punpckldq xmm1, xmm3
movd dword [rbp + 0x7f], xmm2
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800731d0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [rbp + 0x83]
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x1800731f0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x180073210]
pxor xmm2, xmm0
movd dword [rbp + 0x83], xmm2
jmp 0x18000b1f3
lea r9, [rbp + 0x7f]
nop word [rax + rax]
mov eax, 0x29e4129f
lea r9, [r9 + 1]
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x37
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x35
xor byte [r9 - 1], al
cmp r8d, 8
jl 0x18000b1c0
lea rdx, [rbp + 0x67]
lea rcx, [rbp + 0x7f]
call fcn.180023050
test rax, rax
je 0x18000b483
mov rcx, rax
mov qword [rsp + 0xf8], rbx
call qword [0x18036f4e0]
movss xmm4, dword [rsi + 0x10]
mov rbx, rax
movss xmm5, dword [rsi + 0x14]
subss xmm4, xmm12
movss xmm6, dword [rsi + 0x18]
subss xmm5, xmm11
movss xmm3, dword [0x180072fc0]
subss xmm6, xmm10
mov eax, dword [rbp - 0x61]
lea rcx, [rbx + 0x34]
mov dword [rbp - 0x31], eax
movaps xmm0, xmm4
mulss xmm0, xmm4
movaps xmm2, xmm5
mulss xmm2, xmm5
movaps xmm1, xmm6
mulss xmm1, xmm6
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
sqrtss xmm0, xmm2
divss xmm3, xmm0
movaps xmm0, xmm12
unpcklps xmm0, xmm11
movaps xmm2, xmm3
movsd qword [rbp - 0x39], xmm0
movaps xmm1, xmm3
mulss xmm2, xmm4
mulss xmm1, xmm5
mulss xmm3, xmm6
movaps xmm0, xmm2
unpcklps xmm0, xmm1
movsd qword [rbp - 0x2d], xmm0
movss dword [rbp - 0x41], xmm3
mov eax, dword [rbp - 0x41]
mov dword [rbp - 0x25], eax
cmp rcx, 0x400000
jbe 0x18000b2c2
lea rax, [rbx + 0x38]
cmp rax, r12
jae 0x18000b2c2
mov dword [rcx], 0x447a0000
test r14b, r14b
mov r14, qword [rsi + 8]
mov rcx, r14
je 0x18000b2da
mov edx, 0x2f
call fcn.18000eae0
jmp 0x18000b2e9
mov rax, qword [0x18036f520]
add rax, 0x1918030
call rax
mov rdx, rax
test rax, rax
je 0x18000b47b
lea rcx, [rbx + 0xb0]
cmp rcx, 0x400000
jbe 0x18000b314
lea rax, [rbx + 0xb8]
cmp rax, r12
jae 0x18000b314
mov qword [rcx], rdx
lea rcx, [rbx + 0x14]
cmp rcx, 0x400000
jbe 0x18000b33b
lea rax, [rbx + 0x2c]
cmp rax, r12
jae 0x18000b33b
movups xmm0, xmmword [rbp - 0x39]
movsd xmm1, qword [rbp - 0x29]
movups xmmword [rcx], xmm0
movsd qword [rcx + 0x10], xmm1
lea rcx, [rbx + 0x66]
cmp rcx, 0x400000
jbe 0x18000b354
lea rax, [rbx + 0x67]
cmp rax, r12
jae 0x18000b354
mov byte [rcx], 1
lea rcx, [rbx + 0x88]
cmp rcx, 0x400000
jbe 0x18000b373
lea rax, [rbx + 0x90]
cmp rax, r12
jae 0x18000b373
mov qword [rcx], r14
mov eax, dword [rsi + 0x18]
lea r8, [rbp - 0x69]
movsd xmm0, qword [rsi + 0x10]
lea rcx, [rbp - 0x59]
mov dword [rbp - 0x61], eax
mov rax, qword [0x18036f520]
add rax, 0x21564d0
movsd qword [rbp - 0x69], xmm0
call rax
lea rcx, [rbx + 0x90]
cmp rcx, 0x400000
jbe 0x18000b3c5
lea rax, [rbx + 0x9c]
cmp rax, r12
jae 0x18000b3c5
movsd xmm0, qword [rbp - 0x59]
movsd qword [rcx], xmm0
mov eax, dword [rbp - 0x51]
mov dword [rcx + 8], eax
lea rcx, [rbx + 0x9c]
cmp rcx, 0x400000
jbe 0x18000b3f7
lea rax, [rbx + 0xa8]
cmp rax, r12
jae 0x18000b3f7
movaps xmm0, xmm9
mov dword [rbp - 0x41], r15d
unpcklps xmm0, xmm9
mov eax, r15d
movsd qword [rcx], xmm0
mov dword [rcx + 8], eax
lea rdx, [rbx + 0x68]
cmp rdx, 0x400000
jbe 0x18000b42f
lea rax, [rbx + 0x70]
cmp rax, r12
jae 0x18000b42f
lea rcx, [rdi + 0x280]
cmp rcx, 0x400000
jbe 0x18000b42c
lea rax, [rdi + 0x288]
cmp rax, r12
jae 0x18000b42c
mov r15, qword [rcx]
mov qword [rdx], r15
lea rcx, [rdi + 0x1f4]
cmp rcx, 0x400000
jbe 0x18000b450
lea rax, [rdi + 0x1f8]
cmp rax, r12
jae 0x18000b450
movss xmm9, dword [rcx]
mov rax, qword [0x18036f520]
movaps xmm1, xmm9
add rax, 0x834d70
mov rcx, rdi
call rax
mov rax, qword [0x18036f520]
mov rdx, rbx
add rax, 0x2f8120
mov rcx, rdi
call rax
mov rbx, qword [rsp + 0xf8]
movaps xmm6, xmmword [rsp + 0xb0]
mov r15, qword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm10, xmmword [rsp + 0x90]
mov r12, qword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x80]
movaps xmm12, xmmword [rsp + 0x70]
add rsp, 0xc8
pop r14
pop rdi
pop rsi
pop rbp
ret