Function at 0x18000f5f0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xb0
mov r12d, edx
mov rbx, rcx
test rcx, rcx
je 0x18000f969
mov rax, qword gs:[0x58]
mov r8d, dword [0x1800a95a4]
mov ecx, 4
mov r15, qword [rax + r8*8]
mov eax, dword [r15 + rcx]
cmp dword [0x1800aa2a8], eax
jg 0x18000f98c
jmp 0x18000f653
mov ecx, 4
mov rax, qword [0x1800aa168]
cmp qword [rax + rbx], 0
je 0x18000f969
mov eax, dword [r15 + rcx]
cmp dword [0x1800aa698], eax
jg 0x18000f9c7
mov rax, qword [0x1800aa540]
cmp qword [rax + rbx], 0
je 0x18000f969
mov rcx, rbx
call fcn.18000f570
mov rcx, rbx
mov rdi, qword [rax]
call fcn.18000f4f0
mov r14, rdi
xor r11d, r11d
mov rsi, qword [rax]
sub r14, rsi
lea r10, [rsi + 0x20]
test rdi, rdi
je 0x18000f969
lea r13, [0x1800832a0]
cmp r11d, dword [rdi + 0x18]
jae 0x18000f969
mov r8, qword [r14 + r10]
test rsi, rsi
jne 0x18000f6d1
xor ebx, ebx
jmp 0x18000f6d4
mov rbx, qword [r10]
test r8, r8
je 0x18000f735
test rbx, rbx
je 0x18000f735
add r8, 0x14
mov edx, 0xffffffff
mov rax, 0xffffffffffffffff
nop
inc rax
cmp word [r8 + rax*2], 0
jne 0x18000f6f0
test eax, eax
je 0x18000f72e
mov r9d, eax
nop dword [rax]
nop word [rax + rax]
movzx ecx, word [r8]
lea r8, [r8 + 2]
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
xor edx, dword [r13 + rax*4]
sub r9, 1
jne 0x18000f710
not edx
cmp edx, r12d
je 0x18000f741
inc r11d
add r10, 8
jmp 0x18000f6ba
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0x90], xmm7
movaps xmmword [rsp + 0x80], xmm8
movaps xmmword [rsp + 0x70], xmm9
movaps xmmword [rsp + 0x60], xmm10
call fcn.18000ebb0
mov rcx, rax
call fcn.18000c780
mov r14d, 4
mov rdi, rax
test rax, rax
jne 0x18000f78d
xorps xmm7, xmm7
mov qword [rbp - 0x49], rax
mov dword [rbp - 0x41], eax
jmp 0x18000f7c7
mov eax, dword [r15 + r14]
cmp dword [0x1800aa2b8], eax
jg 0x18000fa02
mov rdx, qword [0x1800aa1f0]
lea r8, [rbp - 0x39]
xorps xmm7, xmm7
lea rcx, [rbp - 0x49]
xorps xmm0, xmm0
movss dword [rbp - 0x31], xmm7
unpcklps xmm0, xmm7
mov r9, rdi
movsd qword [rbp - 0x39], xmm0
call fcn.180042cd0
call fcn.18000ebb0
mov rcx, rax
call fcn.18000c780
mov rdi, rax
test rax, rax
jne 0x18000f7e5
mov qword [rbp - 0x59], rax
mov dword [rbp - 0x51], eax
jmp 0x18000f81c
mov eax, dword [r15 + r14]
cmp dword [0x1800aa688], eax
jg 0x18000fa40
mov rdx, qword [0x1800aa568]
lea r8, [rbp - 0x39]
xorps xmm0, xmm0
movss dword [rbp - 0x31], xmm7
unpcklps xmm0, xmm7
lea rcx, [rbp - 0x59]
mov r9, rdi
movsd qword [rbp - 0x39], xmm0
call fcn.180042cd0
call fcn.18000ebb0
mov rcx, rax
call fcn.18000de00
mov rcx, qword [rax]
call fcn.18000d980
lea rcx, [rbp - 0x29]
movss xmm6, dword [rax + 4]
call fcn.18000da00
movss xmm0, dword [rbp - 0x51]
mov ecx, 0x18
movss xmm1, dword [rbp - 0x55]
movss xmm10, dword [rbp - 0x41]
addss xmm6, dword [rax + 4]
movss xmm9, dword [rbp - 0x45]
movss xmm8, dword [rbp - 0x59]
mulss xmm0, xmm6
mulss xmm1, xmm6
mulss xmm8, xmm6
addss xmm10, xmm0
addss xmm9, xmm1
addss xmm8, dword [rbp - 0x49]
call fcn.18007e2a8
mov ecx, dword [r15 + r14]
mov rdi, rax
cmp dword [0x1800aa2b8], ecx
movaps xmm6, xmmword [rsp + 0xa0]
jg 0x18000fa7e
mov rdx, qword [0x1800aa1f0]
lea r8, [rbp - 0x39]
xorps xmm0, xmm0
movss dword [rbp - 0x31], xmm7
unpcklps xmm0, xmm7
lea rcx, [rbp - 0x49]
mov r9, rbx
movsd qword [rbp - 0x39], xmm0
call fcn.180042cd0
movsd xmm0, qword [rbp - 0x49]
lea rdx, [rbp - 0x39]
mov eax, dword [rbp - 0x41]
lea rcx, [rbp - 0x59]
unpcklps xmm8, xmm9
movsd qword [rbp - 0x59], xmm0
movss dword [rbp - 0x31], xmm10
movsd qword [rbp - 0x39], xmm8
mov dword [rbp - 0x51], eax
call fcn.18000f2a0
mov edx, dword [r15 + r14]
movzx esi, al
cmp dword [0x1800aa2b8], edx
movaps xmm10, xmmword [rsp + 0x60]
movaps xmm9, xmmword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x80]
jg 0x18000fabc
mov rdx, qword [0x1800aa1f0]
lea r8, [rbp - 0x39]
xorps xmm0, xmm0
movss dword [rbp - 0x31], xmm7
unpcklps xmm0, xmm7
lea rcx, [rbp - 0x29]
mov r9, rbx
movsd qword [rbp - 0x39], xmm0
call fcn.180042cd0
mov eax, dword [rbp - 0x21]
movsd xmm0, qword [rbp - 0x29]
movaps xmm7, xmmword [rsp + 0x90]
movsd qword [rdi], xmm0
mov dword [rdi + 8], eax
mov rax, rdi
mov byte [rdi + 0xc], sil
mov qword [rdi + 0x10], rbx
jmp 0x18000f96b
xor eax, eax
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
lea rcx, [0x1800aa2a8]
call fcn.18007e230
cmp dword [0x1800aa2a8], 0xffffffff
jne 0x18000f64e
mov ecx, 0xb78ad364
call fcn.180007230
lea rcx, [0x1800aa2a8]
mov qword [0x1800aa168], rax
call fcn.18007e1c4
jmp 0x18000f64e
lea rcx, [0x1800aa698]
call fcn.18007e230
cmp dword [0x1800aa698], 0xffffffff
jne 0x18000f675
mov ecx, 0x12235404
call fcn.180007230
lea rcx, [0x1800aa698]
mov qword [0x1800aa540], rax
call fcn.18007e1c4
jmp 0x18000f675
lea rcx, [0x1800aa2b8]
call fcn.18007e230
cmp dword [0x1800aa2b8], 0xffffffff
jne 0x18000f79d
mov ecx, 0x56e64b7d
call fcn.180005120
mov rcx, qword [rax]
mov qword [0x1800aa1f0], rcx
lea rcx, [0x1800aa2b8]
call fcn.18007e1c4
jmp 0x18000f79d
lea rcx, [0x1800aa688]
call fcn.18007e230
cmp dword [0x1800aa688], 0xffffffff
jne 0x18000f7f5
mov ecx, 0x33ac3a8f
call fcn.180005120
lea rcx, [0x1800aa688]
mov rdx, qword [rax]
mov qword [0x1800aa568], rdx
call fcn.18007e1c4
jmp 0x18000f7f5
lea rcx, [0x1800aa2b8]
call fcn.18007e230
cmp dword [0x1800aa2b8], 0xffffffff
jne 0x18000f8a2
mov ecx, 0x56e64b7d
call fcn.180005120
mov rcx, qword [rax]
mov qword [0x1800aa1f0], rcx
lea rcx, [0x1800aa2b8]
call fcn.18007e1c4
jmp 0x18000f8a2
lea rcx, [0x1800aa2b8]
call fcn.18007e230
cmp dword [0x1800aa2b8], 0xffffffff
jne 0x18000f91e
mov ecx, 0x56e64b7d
call fcn.180005120
lea rcx, [0x1800aa2b8]
mov rdx, qword [rax]
mov qword [0x1800aa1f0], rdx
call fcn.18007e1c4
jmp 0x18000f91e