Function at 0x1800f0c00
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 8], rcx
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov rsi, r9
mov r15, r8
mov rbx, rdx
cmp byte [0x180299f61], 0
je 0x1800f11c5
cmp byte [0x18029a4e1], 0
je 0x1800f11c5
mov rax, qword [r8]
mov r10, qword [rax + 0xbe8]
mov rcx, r8
call r10
cmp eax, 0x32
jne 0x1800f11c5
mov eax, dword [0x18028c820]
cmp eax, 0x23
je 0x1800f11c5
mov rcx, qword [0x180285a48]
test rcx, rcx
je 0x1800f0ca5
cmp eax, 0x3e6
jne 0x1800f0c8f
call fcn.1800ef200
movss xmm0, dword [rax]
mulss xmm0, dword [0x18025e048]
jmp 0x1800f0c98
call fcn.1800ef200
movss xmm0, dword [rax]
cvttss2si eax, xmm0
cmp eax, 1
jl 0x1800f11c5
mov r12d, 2
xor r14d, r14d
cmp byte [0x18029a161], r14b
je 0x1800f0e13
mov edx, 5
mov rcx, rbx
call fcn.1800cc030
test al, al
jne 0x1800f0e13
mov edx, 0x39
mov rcx, rbx
call fcn.1800cc030
test al, al
jne 0x1800f0e13
mov edx, 0x33
mov rcx, rbx
call fcn.1800cc030
test al, al
jne 0x1800f0e13
mov edx, 0x34
mov rcx, rbx
call fcn.1800cc030
test al, al
jne 0x1800f0e13
mov edx, 0xe
mov rcx, rbx
call fcn.1800cc030
test al, al
jne 0x1800f0e13
mov rcx, rbx
call fcn.1800b6750
movd xmm0, dword [rax]
cvtdq2ps xmm0, xmm0
movss dword [0x1802875a8], xmm0
mov rax, qword [rbx]
mov rdx, qword [rax + 0x358]
mov rcx, rbx
call rdx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [0x1802875ac], xmm0
cmp dword [0x18029a1e4], r14d
je 0x1800f0dee
cmp dword [0x18028c820], 0x3e6
jne 0x1800f0dee
mov byte [rbp + 0x30], r14b
mov rcx, rsi
call fcn.1800f0b70
lea rdx, [rbp + 0x30]
mov rcx, rbx
call fcn.1800f0a80
mov edi, eax
test eax, eax
js 0x1800f0dd6
call fcn.1800f0970
cmp edi, eax
je 0x1800f0dd6
mov ecx, edi
cmp edi, r12d
cmovg ecx, r12d
mov ebx, r14d
test ecx, ecx
cmovg ebx, ecx
mov dword [0x18028b10c], 5
mov dword [0x18028b114], ebx
call fcn.1800f0970
mov ecx, eax
cmp ebx, eax
je 0x1800f0dd6
mov eax, ebx
sub eax, ecx
cmp ebx, ecx
jg 0x1800f0dd0
add eax, 3
mov dword [0x18028b108], eax
cmp byte [rbp + 0x30], r14b
je 0x1800f0e13
call fcn.1800f0970
cmp eax, edi
jne 0x1800f0e13
or dword [rsi + 0x28], 0x800
jmp 0x1800f0e13
movss xmm1, dword [0x1802875a8]
divss xmm1, xmm0
mulss xmm1, dword [0x18025e164]
movss xmm0, dword [0x18029a464]
comiss xmm0, xmm1
jae 0x1800f11be
mov ecx, dword [0x18028ab2c]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov ecx, dword [rdx + rax]
cmp dword [0x18028ca1c], ecx
jle 0x1800f0ee2
lea rcx, [0x18028ca1c]
call fcn.1801d1cb0
cmp dword [0x18028ca1c], 0xffffffff
jne 0x1800f0ee2
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1800f0ecd
nop dword [rax + rax]
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x1800f0e81
mov rdx, r14
test rcx, rcx
je 0x1800f0ec4
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r8 + rdx]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1800f0ea0
cmp r9d, 0x7ee68cd3
je 0x1800f1184
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1800f0e70
mov eax, r14d
mov dword [0x18028ca30], eax
lea rcx, [0x18028ca1c]
call fcn.1801d1c44
movsxd rbx, dword [0x18028ca30]
add rbx, r15
mov rcx, qword [0x18028c748]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
mov eax, dword [rbx]
mov dword [rbp + 0x30], eax
lea rdx, [rbp + 0x30]
call r8
test rax, rax
je 0x1800f11c5
mov rcx, qword [0x18028c748]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
mov eax, dword [rbx]
mov dword [rbp + 0x30], eax
lea rdx, [rbp + 0x30]
call r8
mov rcx, rax
call fcn.1800b6850
cmp byte [rax], 0
jne 0x1800f11c5
mov rcx, qword [0x18028c748]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
mov eax, dword [rbx]
mov dword [rbp + 0x30], eax
lea rdx, [rbp + 0x30]
call r8
mov rdi, rax
mov edx, 5
mov rcx, rax
call fcn.1800cc030
test al, al
jne 0x1800f11c5
mov edx, 0x39
mov rcx, rdi
call fcn.1800cc030
test al, al
jne 0x1800f11c5
mov edx, 0x33
mov rcx, rdi
call fcn.1800cc030
test al, al
jne 0x1800f11c5
mov edx, 0x34
mov rcx, rdi
call fcn.1800cc030
test al, al
jne 0x1800f11c5
mov edx, 0xe
mov rcx, rdi
call fcn.1800cc030
test al, al
jne 0x1800f11c5
mov rcx, qword [0x18028c748]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
mov eax, dword [rbx]
mov dword [rbp + 0x30], eax
lea rdx, [rbp + 0x30]
call r8
lea rcx, [rax + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x40]
test al, al
jne 0x1800f11c5
cmp byte [0x18029a2e1], al
je 0x1800f103c
mov rcx, qword [0x18028c748]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
mov eax, dword [rbx]
mov dword [rbp + 0x30], eax
lea rdx, [rbp + 0x30]
call r8
lea rcx, [rax + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov dword [rbp - 0x20], eax
lea r8, [rbp - 0x20]
lea rdx, [rbp - 0x18]
lea rcx, [0x180285ae8]
call fcn.1800f11e0
mov rcx, qword [rax]
cmp byte [rcx + 0x14], 0
je 0x1800f11c5
mov rcx, qword [0x18028c748]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
mov eax, dword [rbx]
mov dword [rbp + 0x30], eax
lea rdx, [rbp + 0x30]
call r8
mov rcx, rax
call fcn.1800b6750
movd xmm0, dword [rax]
cvtdq2ps xmm0, xmm0
movss dword [0x1802875a8], xmm0
mov rcx, qword [0x18028c748]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
mov eax, dword [rbx]
mov dword [rbp + 0x30], eax
lea rdx, [rbp + 0x30]
call r8
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x358]
mov rcx, rax
call rdx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [0x1802875ac], xmm0
cmp byte [0x18029a261], 0
je 0x1800f11c5
mov rcx, qword [0x18028c748]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
mov eax, dword [rbx]
mov dword [rbp + 0x30], eax
lea rdx, [rbp + 0x30]
call r8
lea rcx, [rax + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x48]
cmp dword [0x18029a1e4], 0
je 0x1800f1199
cmp dword [0x18028c820], 0x3e6
jne 0x1800f1199
mov byte [rbp + 0x30], 0
mov rcx, rsi
call fcn.1800f0b70
mov rcx, qword [0x18028c748]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
mov eax, dword [rbx]
mov dword [rbp - 0x20], eax
lea rdx, [rbp - 0x20]
call r8
lea rdx, [rbp + 0x30]
mov rcx, rax
call fcn.1800f0a80
mov ebx, eax
test eax, eax
js 0x1800f1173
call fcn.1800f0970
cmp ebx, eax
je 0x1800f1173
mov ecx, ebx
cmp ebx, 2
cmovg ecx, r12d
test ecx, ecx
cmovg r14d, ecx
mov dword [0x18028b10c], 5
mov dword [0x18028b114], r14d
call fcn.1800f0970
mov ecx, eax
cmp r14d, eax
je 0x1800f1173
mov eax, r14d
sub eax, ecx
cmp r14d, ecx
jg 0x1800f116d
add eax, 3
mov dword [0x18028b108], eax
cmp byte [rbp + 0x30], 0
je 0x1800f11c5
call fcn.1800f0970
cmp eax, ebx
jne 0x1800f11c5
jmp 0x1800f11be
lea r8, str.m_hHealingTarget
mov rdx, qword [r10 + 0x18]
call fcn.1801d1920
jmp 0x1800f0ed0
movss xmm1, dword [0x1802875a8]
divss xmm1, dword [0x1802875ac]
mulss xmm1, dword [0x18025e164]
movss xmm0, dword [0x18029a464]
comiss xmm0, xmm1
jb 0x1800f11c5
or dword [rsi + 0x28], 0x800
mov rbx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret