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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1078]
mov eax, 0x1178
call fcn.1801815d0
sub rsp, rax
movaps xmmword [rsp + 0x1160], xmm6
movaps xmmword [rsp + 0x1150], xmm7
movaps xmmword [rsp + 0x1140], xmm8
movaps xmmword [rsp + 0x1130], xmm9
movaps xmmword [rsp + 0x1120], xmm10
movaps xmmword [rsp + 0x1110], xmm11
movaps xmmword [rsp + 0x1100], xmm12
movaps xmmword [rsp + 0x10f0], xmm13
movaps xmmword [rsp + 0x10e0], xmm14
movaps xmmword [rsp + 0x10d0], xmm15
mov rsi, rdx
lea r8, [rbp + 0x10d8]
lea rdx, [rbp - 0x58]
lea rcx, [0x180225850]
call fcn.1800b0d70
mov rcx, qword [rax]
mov r13, qword [rcx + 0x18]
mov qword [rsp + 0x70], r13
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x40], rax
cmp r13, rax
je 0x1800c5d94
mov ebx, dword [0x18022a150]
mov r14, qword gs:[0x58]
mov r15d, 4
movss xmm11, dword [0x1802022d8]
xorps xmm9, xmm9
movss xmm13, dword [0x180202300]
movss xmm12, dword [0x180202328]
movss xmm14, dword [0x1802024d8]
movss xmm15, dword [0x1802024c4]
movss xmm10, dword [rbp + 0x10e0]
nop dword [rax]
nop dword [rax + rax]
mov rdi, qword [r13]
mov qword [rbp - 0x60], rdi
mov rcx, rdi
call fcn.1800abcf0
cmp dword [rax], 2
je 0x1800c5d80
mov qword [rsp + 0x78], r15
mov r12, qword [r14 + rbx*8]
mov qword [rbp - 0x80], r12
mov eax, dword [r15 + r12]
cmp dword [0x18022bd1c], eax
jle 0x1800c5634
lea rcx, [0x18022bd1c]
call fcn.18017f7fc
cmp dword [0x18022bd1c], 0xffffffff
jne 0x1800c5634
mov rcx, qword [0x18022ba50]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1800c561d
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x1800c55d5
xor edx, edx
test rcx, rcx
je 0x1800c5614
nop word [rax + rax]
movsx eax, byte [r8 + rdx]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1800c55f0
cmp r9d, 0x941d2eb9
je 0x1800c57a0
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1800c55c4
xor eax, eax
add eax, 0xc
mov dword [0x18022bd20], eax
lea rcx, [0x18022bd1c]
call fcn.18017f790
movsxd rax, dword [0x18022bd20]
cmp byte [rax + rdi], 0
je 0x1800c5d7a
mov rcx, rdi
call fcn.1800a6c90
mov rbx, rax
mov rcx, rdi
call fcn.1800a6f90
movss xmm6, dword [rax + 8]
mov rcx, rdi
call fcn.1800a6e90
addss xmm6, dword [rax + 8]
mulss xmm6, xmm11
addss xmm6, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
addss xmm1, xmm9
movss xmm0, dword [rbx]
addss xmm0, xmm9
movss dword [rsp + 0x30], xmm0
movss dword [rsp + 0x34], xmm1
movss dword [rsp + 0x38], xmm6
cmp dword [rbp + 0x10d8], 0xe
jne 0x1800c594c
mov rcx, rdi
call fcn.1800abcf0
cmp dword [rax], 1
jne 0x1800c593d
mov rcx, rdi
call fcn.1800abbf0
cmp byte [rax], 0
jne 0x1800c593d
mov eax, dword [r15 + r12]
cmp dword [0x18023a570], eax
jle 0x1800c5708
lea rcx, [0x18023a570]
call fcn.18017f7fc
cmp dword [0x18023a570], 0xffffffff
jne 0x1800c5708
lea rdx, str.tf_grenadelauncher_livetime
call fcn.18017d7f0
mov qword [0x18023a558], rax
lea rcx, [0x18023a570]
call fcn.18017f790
mov eax, dword [r15 + r12]
cmp dword [0x18023a560], eax
jle 0x1800c5748
lea rcx, [0x18023a560]
call fcn.18017f7fc
cmp dword [0x18023a560], 0xffffffff
jne 0x1800c5748
lea rdx, str.tf_sticky_radius_ramp_time
call fcn.18017d7f0
mov qword [0x18023a568], rax
lea rcx, [0x18023a560]
call fcn.18017f790
mov eax, dword [r15 + r12]
cmp dword [0x18023a554], eax
jle 0x1800c5788
lea rcx, [0x18023a554]
call fcn.18017f7fc
cmp dword [0x18023a554], 0xffffffff
jne 0x1800c5788
lea rdx, str.tf_sticky_airdet_radius
call fcn.18017d7f0
mov qword [0x18023a578], rax
lea rcx, [0x18023a554]
call fcn.18017f790
mov rax, qword [0x18023a558]
test rax, rax
je 0x1800c57b5
mov rax, qword [rax + 0x38]
movss xmm8, dword [rax + 0x54]
jmp 0x1800c57b9
lea r8, str.m_iType
mov rdx, qword [r10 + 0x18]
call fcn.18017f390
jmp 0x1800c561f
movaps xmm8, xmm13
mov rax, qword [0x18023a568]
test rax, rax
je 0x1800c57d0
mov rax, qword [rax + 0x38]
movss xmm6, dword [rax + 0x54]
jmp 0x1800c57d8
movss xmm6, dword [0x180202368]
mov rax, qword [0x18023a578]
test rax, rax
je 0x1800c57ef
mov rax, qword [rax + 0x38]
movss xmm7, dword [rax + 0x54]
jmp 0x1800c57f7
movss xmm7, dword [0x180202304]
mov eax, dword [r15 + r12]
cmp dword [0x18022bd24], eax
jle 0x1800c58a0
lea rcx, [0x18022bd24]
call fcn.18017f7fc
cmp dword [0x18022bd24], 0xffffffff
jne 0x1800c58a0
mov rcx, qword [0x18022ba50]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1800c5889
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x1800c5846
xor edx, edx
test rcx, rcx
je 0x1800c5880
nop word [rax + rax]
movsx eax, byte [r8 + rdx]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1800c5860
cmp r9d, 0x941d2eb9
je 0x1800c58d0
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1800c5835
xor eax, eax
add eax, 4
mov dword [0x18022bd18], eax
lea rcx, [0x18022bd24]
call fcn.18017f790
addss xmm6, xmm8
movsxd rcx, dword [0x18022bd18]
mov rax, qword [0x18022bad0]
movss xmm0, dword [rax + 0xc]
subss xmm0, dword [rcx + rdi]
ucomiss xmm8, xmm6
jp 0x1800c58e2
jne 0x1800c58e2
comiss xmm0, xmm6
jb 0x1800c5938
movaps xmm7, xmm12
jmp 0x1800c5938
lea r8, str.m_iType
mov rdx, qword [r10 + 0x18]
call fcn.18017f390
jmp 0x1800c588b
subss xmm0, xmm8
subss xmm6, xmm8
divss xmm0, xmm6
movss dword [rsp + 0x64], xmm0
mov dword [rsp + 0x68], 0x3f800000
mov dword [rsp + 0x60], 0
lea rcx, [rsp + 0x60]
lea rax, [rsp + 0x64]
comiss xmm9, xmm0
cmovbe rcx, rax
lea rax, [rsp + 0x68]
comiss xmm0, xmm12
cmovbe rax, rcx
movaps xmm0, xmm12
subss xmm0, xmm7
mulss xmm0, dword [rax]
addss xmm0, xmm7
movaps xmm7, xmm0
mulss xmm10, xmm7
cmp dword [rbp + 0x10d8], 0xe
jne 0x1800c594c
movaps xmm7, xmm14
jmp 0x1800c5950
movaps xmm7, xmm15
mulss xmm7, xmm10
mov eax, dword [r15 + r12]
cmp dword [0x18022bb6c], eax
jle 0x1800c5990
lea rcx, [0x18022bb6c]
call fcn.18017f7fc
cmp dword [0x18022bb6c], 0xffffffff
jne 0x1800c5990
mov rax, qword [0x180225470]
mov qword [0x18022bb98], rax
lea rcx, [0x18022bb6c]
call fcn.18017f790
mov dword [rsp + 0x20], 0x80
xor r9d, r9d
movaps xmm2, xmm7
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x40]
call qword [0x18022bb98]
mov ecx, dword [rbp - 0x40]
cmp ecx, dword [rbp - 0x3c]
jge 0x1800c5d66
movsxd rax, ecx
mov r14, qword [rbp + rax*8 - 0x38]
test r14, r14
je 0x1800c5d66
cmp r14, rsi
je 0x1800c5d5c
mov rax, qword [r14 + 0x10]
lea rcx, [r14 + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800c5a13
cmp dword [rax + 0x28], 0xf7
jne 0x1800c5a13
mov rcx, r14
call fcn.1800a5f10
cmp byte [rax], 0
jne 0x1800c5d59
mov rcx, r14
call fcn.1800a6220
mov ecx, dword [rax]
shr ecx, 0xd
test cl, 1
jne 0x1800c5d59
mov rcx, r14
call fcn.1800a6d90
mov ebx, dword [rax]
mov rcx, rsi
call fcn.1800a6d90
cmp ebx, dword [rax]
je 0x1800c5d59
mov qword [rsp + 0x54], 0
mov dword [rsp + 0x50], 0
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x18]
mov rbx, rax
mov ecx, dword [r15 + r12]
cmp dword [0x18022bbe0], ecx
jle 0x1800c5a85
lea rcx, [0x18022bbe0]
call fcn.18017f7fc
cmp dword [0x18022bbe0], 0xffffffff
jne 0x1800c5a85
mov rcx, qword [0x180224e60]
mov qword [0x18022bba0], rcx
lea rcx, [0x18022bbe0]
call fcn.18017f790
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [0x18022bba0]
movss xmm1, dword [rsp + 0x30]
subss xmm1, dword [rsp + 0x50]
movss xmm2, dword [rsp + 0x34]
subss xmm2, dword [rsp + 0x54]
movss xmm0, dword [rsp + 0x38]
subss xmm0, dword [rsp + 0x58]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
mulss xmm0, xmm0
addss xmm2, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x1800c5ae1
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x1800c5ae9
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm0, xmm7
ja 0x1800c5d59
mov rax, qword [r14 + 0x10]
lea rcx, [r14 + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800c5b36
cmp dword [rax + 0x28], 0xf7
jne 0x1800c5b36
test byte [0x18022e084], 1
je 0x1800c5b36
mov byte [rsp + 0x20], 0
mov r9, qword [rbp + 0x10d0]
mov r8, rsi
mov rdx, r14
call fcn.1800a8600
test al, al
mov byte [rbp + 0x10c0], 1
je 0x1800c5b3d
mov byte [rbp + 0x10c0], 0
test byte [0x18022e084], 2
je 0x1800c5b61
mov rax, qword [r14 + 0x10]
lea rcx, [r14 + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800c5b61
cmp dword [rax + 0x28], 0x58
jne 0x1800c5b61
mov r13b, 1
jmp 0x1800c5b64
xor r13b, r13b
test byte [0x18022e084], 4
je 0x1800c5b88
mov rax, qword [r14 + 0x10]
lea rcx, [r14 + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800c5b88
cmp dword [rax + 0x28], 0x56
jne 0x1800c5b88
mov r12b, 1
jmp 0x1800c5b8b
xor r12b, r12b
test byte [0x18022e084], 8
je 0x1800c5baf
mov rax, qword [r14 + 0x10]
lea rcx, [r14 + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800c5baf
cmp dword [rax + 0x28], 0x59
jne 0x1800c5baf
mov r15b, 1
jmp 0x1800c5bb2
xor r15b, r15b
test byte [0x18022e084], 0x10
je 0x1800c5bfa
mov rax, qword [r14 + 0x10]
lea rcx, [r14 + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800c5bfa
cmp dword [rax + 0x28], 0xd9
jne 0x1800c5bfa
mov rcx, r14
call fcn.1800abcf0
cmp dword [rax], 1
jne 0x1800c5bfa
mov eax, dword [0x18022bb54]
cmp eax, 0x47e
je 0x1800c5bf5
cmp eax, 0x82
jne 0x1800c5bfa
mov sil, 1
jmp 0x1800c5bfd
xor sil, sil
test byte [0x18022e084], 0x20
je 0x1800c5c39
mov rax, qword [r14 + 0x10]
lea rcx, [r14 + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800c5c39
mov ecx, dword [rax + 0x28]
sub ecx, 0x30
je 0x1800c5c35
sub ecx, 0x19
je 0x1800c5c35
sub ecx, 9
je 0x1800c5c35
sub ecx, 0xea
je 0x1800c5c35
cmp ecx, 0x26
jne 0x1800c5c39
mov bl, 1
jmp 0x1800c5c3b
xor bl, bl
test byte [0x18022e084], 0x40
je 0x1800c5c68
mov rax, qword [r14 + 0x10]
lea rcx, [r14 + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800c5c68
mov ecx, dword [rax + 0x28]
sub ecx, 0xd5
je 0x1800c5c64
cmp ecx, 0x45
jne 0x1800c5c68
mov al, 1
jmp 0x1800c5c6a
xor al, al
cmp byte [rbp + 0x10c0], 0
jne 0x1800c5cea
test r13b, r13b
jne 0x1800c5c93
test r12b, r12b
jne 0x1800c5c93
test r15b, r15b
jne 0x1800c5c93
test bl, bl
jne 0x1800c5c93
test al, al
jne 0x1800c5c93
test sil, sil
je 0x1800c5d49
mov rcx, r14
call fcn.1800a6c90
mov rbx, rax
mov rcx, r14
call fcn.1800a6f90
movss xmm6, dword [rax + 8]
mov rcx, r14
call fcn.1800a6e90
addss xmm6, dword [rax + 8]
mulss xmm6, xmm11
movss xmm0, dword [rbx]
addss xmm0, xmm9
movss dword [rbp - 0x78], xmm0
movss xmm1, dword [rbx + 4]
addss xmm1, xmm9
movss dword [rbp - 0x74], xmm1
addss xmm6, dword [rbx + 8]
movss dword [rbp - 0x70], xmm6
lea r9, [rbp - 0x78]
jmp 0x1800c5d30
mov rcx, r14
call fcn.1800a6c90
mov rbx, rax
lea rdx, [rbp - 0x58]
mov rcx, r14
call fcn.1800a7890
movss xmm0, dword [rbx]
addss xmm0, dword [rax]
movss dword [rbp - 0x6c], xmm0
movss xmm1, dword [rbx + 4]
addss xmm1, dword [rax + 4]
movss dword [rbp - 0x68], xmm1
movss xmm0, dword [rbx + 8]
addss xmm0, dword [rax + 8]
movss dword [rbp - 0x64], xmm0
lea r9, [rbp - 0x6c]
lea r8, [rsp + 0x30]
mov rdx, r14
mov rcx, qword [rbp - 0x60]
call fcn.18017c610
test al, al
jne 0x1800c5de9
mov r12, qword [rbp - 0x80]
mov r15, qword [rsp + 0x78]
mov rsi, qword [rbp + 0x10c8]
mov ecx, dword [rbp - 0x40]
inc ecx
mov dword [rbp - 0x40], ecx
jmp 0x1800c59b0
mov r14, qword gs:[0x58]
mov ebx, dword [0x18022a150]
mov r13, qword [rsp + 0x70]
mov r15d, 4
add r13, 8
mov qword [rsp + 0x70], r13
cmp r13, qword [rsp + 0x40]
jne 0x1800c5560
xor al, al
lea r11, [rsp + 0x1178]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
movaps xmm14, xmmword [r11 - 0x98]
movaps xmm15, xmmword [r11 - 0xa8]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp dword [0x18022bb54], 0x82
jne 0x1800c5f1f
mov rcx, qword [rbp + 0x10c8]
call fcn.1800a6c90
mov rbx, rax
mov rcx, qword [rbp + 0x10c8]
call fcn.1800a7090
movss xmm8, dword [rbx]
addss xmm8, dword [rax]
subss xmm8, dword [rsp + 0x30]
movss xmm7, dword [rbx + 4]
addss xmm7, dword [rax + 4]
subss xmm7, dword [rsp + 0x34]
movss xmm6, dword [rbx + 8]
addss xmm6, dword [rax + 8]
subss xmm6, dword [rsp + 0x38]
movaps xmm1, xmm8
mulss xmm1, xmm8
movaps xmm0, xmm7
mulss xmm0, xmm7
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x1800c5e6a
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x1800c5e72
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
divss xmm6, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_atanf
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
mulsd xmm1, qword [0x1802023a8]
cvtpd2ps xmm1, xmm1
movss dword [rsp + 0x40], xmm1
divss xmm7, xmm8
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_atanf
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
mulsd xmm1, qword [0x1802023a8]
cvtpd2ps xmm2, xmm1
movss dword [rsp + 0x44], xmm2
mov dword [rsp + 0x48], 0
comiss xmm8, xmm9
jb 0x1800c5ed9
addss xmm2, dword [0x1802024ec]
movss dword [rsp + 0x44], xmm2
lea rcx, [rsp + 0x40]
call fcn.1800ab0e0
lea rdx, [rsp + 0x40]
mov rbx, qword [rbp + 0x10e8]
mov rcx, rbx
call fcn.18017cf10
movss xmm0, dword [rsp + 0x40]
movss dword [rbx + 0x10], xmm0
movss xmm1, dword [rsp + 0x44]
movss dword [rbx + 0x14], xmm1
movss xmm0, dword [rsp + 0x48]
movss dword [rbx + 0x18], xmm0
mov byte [0x18022bce4], 1
mov al, 1
jmp 0x1800c5d96