Function at 0x1800d5240
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 - 0x1068]
mov eax, 0x1168
call fcn.180186ad0
sub rsp, rax
vmovaps xmmword [rsp + 0x1150], xmm6
vmovaps xmmword [rsp + 0x1140], xmm7
vmovaps xmmword [rsp + 0x1130], xmm8
vmovaps xmmword [rsp + 0x1120], xmm9
vmovaps xmmword [rsp + 0x1110], xmm10
vmovaps xmmword [rsp + 0x1100], xmm11
vmovaps xmmword [rsp + 0x10f0], xmm12
vmovaps xmmword [rsp + 0x10e0], xmm13
vmovaps xmmword [rsp + 0x10d0], xmm14
vmovaps xmmword [rsp + 0x10c0], xmm15
mov r14, rdx
lea r8, [rbp + 0x10c8]
lea rdx, [rbp - 0x60]
lea rcx, [0x18022e8c0]
call fcn.1800c0da0
mov rcx, qword [rax]
mov r13, qword [rcx + 0x18]
mov qword [rsp + 0x68], r13
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x40], rax
cmp r13, rax
je 0x1800d5b8a
mov ebx, dword [0x18023328c]
mov rsi, qword gs:[0x58]
mov r15d, 4
vmovss xmm11, dword [0x18020a2f8]
vxorps xmm9, xmm9, xmm9
vmovss xmm13, dword [0x18020a320]
vmovss xmm14, dword [0x18020a390]
vmovss xmm15, dword [0x18020a324]
vmovss xmm12, dword [0x18020a348]
vmovss xmm10, dword [rbp + 0x10d0]
nop dword [rax]
nop word [rax + rax]
mov rdi, qword [r13]
mov qword [rbp - 0x68], rdi
mov rcx, rdi
call fcn.1800bb8b0
cmp dword [rax], 2
je 0x1800d5b76
mov qword [rsp + 0x70], r15
mov r12, qword [rsi + rbx*8]
mov qword [rsp + 0x78], r12
mov eax, dword [r15 + r12]
cmp dword [0x180234e68], eax
jle 0x1800d5434
lea rcx, [0x180234e68]
call fcn.180184cfc
cmp dword [0x180234e68], 0xffffffff
jne 0x1800d5434
mov rcx, qword [0x180234b88]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1800d541d
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x1800d53d6
xor edx, edx
test rcx, rcx
je 0x1800d5414
nop word [rax + rax]
movsx eax, byte [rdx + r8]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1800d53f0
cmp r9d, 0x941d2eb9
je 0x1800d5595
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1800d53c5
xor eax, eax
add eax, 0xc
mov dword [0x180234e6c], eax
lea rcx, [0x180234e68]
call fcn.180184c90
movsxd rax, dword [0x180234e6c]
cmp byte [rax + rdi], 0
je 0x1800d5b70
mov rcx, rdi
call fcn.1800b6a20
mov rbx, rax
mov rcx, rdi
call fcn.1800b6d20
vmovss xmm6, dword [rax + 8]
mov rcx, rdi
call fcn.1800b6c20
vaddss xmm0, xmm6, dword [rax + 8]
vmulss xmm1, xmm0, xmm11
vaddss xmm3, xmm1, dword [rbx + 8]
vaddss xmm2, xmm9, dword [rbx + 4]
vaddss xmm0, xmm9, dword [rbx]
vmovss dword [rsp + 0x30], xmm0
vmovss dword [rsp + 0x34], xmm2
vmovss dword [rsp + 0x38], xmm3
cmp dword [rbp + 0x10c8], 0xf
jne 0x1800d5725
mov rcx, rdi
call fcn.1800bb8b0
cmp dword [rax], 1
jne 0x1800d5725
mov rcx, rdi
call fcn.1800bb7b0
cmp byte [rax], 0
jne 0x1800d5725
mov eax, dword [r15 + r12]
cmp dword [0x180243db0], eax
jle 0x1800d54fe
lea rcx, [0x180243db0]
call fcn.180184cfc
cmp dword [0x180243db0], 0xffffffff
jne 0x1800d54fe
lea rdx, str.tf_grenadelauncher_livetime
call fcn.180182760
mov qword [0x180243d98], rax
lea rcx, [0x180243db0]
call fcn.180184c90
mov eax, dword [r15 + r12]
cmp dword [0x180243da0], eax
jle 0x1800d553e
lea rcx, [0x180243da0]
call fcn.180184cfc
cmp dword [0x180243da0], 0xffffffff
jne 0x1800d553e
lea rdx, str.tf_sticky_radius_ramp_time
call fcn.180182760
mov qword [0x180243da8], rax
lea rcx, [0x180243da0]
call fcn.180184c90
mov eax, dword [r15 + r12]
cmp dword [0x180243d94], eax
jle 0x1800d557e
lea rcx, [0x180243d94]
call fcn.180184cfc
cmp dword [0x180243d94], 0xffffffff
jne 0x1800d557e
lea rdx, str.tf_sticky_airdet_radius
call fcn.180182760
mov qword [0x180243db8], rax
lea rcx, [0x180243d94]
call fcn.180184c90
mov rax, qword [0x180243d98]
test rax, rax
je 0x1800d55aa
mov rax, qword [rax + 0x38]
vmovss xmm7, dword [rax + 0x54]
jmp 0x1800d55af
lea r8, str.m_iType
mov rdx, qword [r10 + 0x18]
call fcn.180184890
jmp 0x1800d541f
vmovaps xmm7, xmm13
mov rax, qword [0x180243da8]
test rax, rax
je 0x1800d55c6
mov rax, qword [rax + 0x38]
vmovss xmm8, dword [rax + 0x54]
jmp 0x1800d55cb
vmovaps xmm8, xmm14
mov rax, qword [0x180243db8]
test rax, rax
je 0x1800d55e2
mov rax, qword [rax + 0x38]
vmovss xmm6, dword [rax + 0x54]
jmp 0x1800d55e7
vmovaps xmm6, xmm15
mov eax, dword [r15 + r12]
cmp dword [0x180234e70], eax
jle 0x1800d5690
lea rcx, [0x180234e70]
call fcn.180184cfc
cmp dword [0x180234e70], 0xffffffff
jne 0x1800d5690
mov rcx, qword [0x180234b88]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1800d5679
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x1800d5636
xor edx, edx
test rcx, rcx
je 0x1800d5670
nop word [rax + rax]
movsx eax, byte [r8 + rdx]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1800d5650
cmp r9d, 0x941d2eb9
je 0x1800d56c1
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1800d5625
xor eax, eax
add eax, 4
mov dword [0x180234e64], eax
lea rcx, [0x180234e70]
call fcn.180184c90
vaddss xmm2, xmm8, xmm7
movsxd rcx, dword [0x180234e64]
mov rax, qword [0x180234c08]
vmovss xmm0, dword [rax + 0xc]
vsubss xmm1, xmm0, dword [rcx + rdi]
vucomiss xmm7, xmm2
jp 0x1800d56d3
jne 0x1800d56d3
vcmpless xmm0, xmm2, xmm1
vblendvps xmm1, xmm6, xmm12, xmm0
jmp 0x1800d5721
lea r8, str.m_iType
mov rdx, qword [r10 + 0x18]
call fcn.180184890
jmp 0x1800d567b
vsubss xmm1, xmm1, xmm7
vsubss xmm0, xmm2, xmm7
vdivss xmm2, xmm1, xmm0
vmovss dword [rsp + 0x60], xmm2
vmovss dword [rsp + 0x64], xmm12
vmovss dword [rbp + 0x10b0], xmm9
lea rcx, [rbp + 0x10b0]
lea rax, [rsp + 0x60]
vcomiss xmm9, xmm2
cmovbe rcx, rax
lea rax, [rsp + 0x64]
vcomiss xmm2, xmm12
cmovbe rax, rcx
vsubss xmm0, xmm12, xmm6
vmulss xmm0, xmm0, dword [rax]
vaddss xmm1, xmm0, xmm6
vmulss xmm10, xmm10, xmm1
mov eax, 0xf
vmovd xmm1, eax
vmovd xmm0, dword [rbp + 0x10c8]
vpcmpeqd xmm2, xmm0, xmm1
vmovss xmm0, dword [0x18020a520]
vmovss xmm1, dword [0x18020a50c]
vblendvps xmm0, xmm1, xmm0, xmm2
vmulss xmm7, xmm0, xmm10
mov eax, dword [r15 + r12]
cmp dword [0x180234d24], eax
jle 0x1800d5790
lea rcx, [0x180234d24]
call fcn.180184cfc
cmp dword [0x180234d24], 0xffffffff
jne 0x1800d5790
mov rax, qword [0x18022e4d8]
mov qword [0x180234cc0], rax
lea rcx, [0x180234d24]
call fcn.180184c90
mov dword [rsp + 0x20], 0x80
xor r9d, r9d
vmovaps xmm2, xmm7
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x50]
call qword [0x180234cc0]
mov ecx, dword [rbp - 0x50]
cmp ecx, dword [rbp - 0x4c]
jge 0x1800d5b5c
movsxd rax, ecx
mov rsi, qword [rbp + rax*8 - 0x48]
test rsi, rsi
je 0x1800d5b5c
cmp rsi, r14
je 0x1800d5b52
mov rax, qword [rsi + 0x10]
lea rcx, [rsi + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800d5814
cmp dword [rax + 0x28], 0xf7
jne 0x1800d5814
mov rcx, rsi
call fcn.1800b5ca0
cmp byte [rax], 0
jne 0x1800d5b4f
mov rcx, rsi
call fcn.1800b5fb0
mov ecx, dword [rax]
shr ecx, 0xd
test cl, 1
jne 0x1800d5b4f
mov rcx, rsi
call fcn.1800b6b20
mov ebx, dword [rax]
mov rcx, r14
call fcn.1800b6b20
cmp ebx, dword [rax]
je 0x1800d5b4f
vmovss dword [rsp + 0x58], xmm9
vmovss dword [rsp + 0x54], xmm9
vmovss dword [rsp + 0x50], xmm9
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
mov rbx, rax
mov ecx, dword [r15 + r12]
cmp dword [0x180234d08], ecx
jle 0x1800d5887
lea rcx, [0x180234d08]
call fcn.180184cfc
cmp dword [0x180234d08], 0xffffffff
jne 0x1800d5887
mov rcx, qword [0x18022de90]
mov qword [0x180234cc8], rcx
lea rcx, [0x180234d08]
call fcn.180184c90
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [0x180234cc8]
vmovss xmm0, dword [rsp + 0x30]
vsubss xmm3, xmm0, dword [rsp + 0x50]
vmovss xmm1, dword [rsp + 0x34]
vsubss xmm2, xmm1, dword [rsp + 0x54]
vmovss xmm0, dword [rsp + 0x38]
vsubss xmm4, xmm0, dword [rsp + 0x58]
vmulss xmm2, xmm2, xmm2
vmulss xmm1, xmm3, xmm3
vaddss xmm3, xmm2, xmm1
vmulss xmm0, xmm4, xmm4
vaddss xmm0, xmm3, xmm0
vxorps xmm1, xmm1, xmm1
vucomiss xmm1, xmm0
ja 0x1800d58e2
vsqrtss xmm0, xmm0, xmm0
jmp 0x1800d58e7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
vcomiss xmm0, xmm7
ja 0x1800d5b4f
mov rax, qword [rsi + 0x10]
lea rcx, [rsi + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800d5935
cmp dword [rax + 0x28], 0xf7
jne 0x1800d5935
test byte [0x180237264], 1
je 0x1800d5935
mov byte [rsp + 0x20], 0
mov r9, qword [rbp + 0x10c0]
mov r8, r14
mov rdx, rsi
call fcn.1800b8260
test al, al
mov byte [rbp + 0x10b0], 1
je 0x1800d593c
mov byte [rbp + 0x10b0], 0
test byte [0x180237264], 2
je 0x1800d5960
mov rax, qword [rsi + 0x10]
lea rcx, [rsi + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800d5960
cmp dword [rax + 0x28], 0x58
jne 0x1800d5960
mov r13b, 1
jmp 0x1800d5963
xor r13b, r13b
test byte [0x180237264], 4
je 0x1800d5987
mov rax, qword [rsi + 0x10]
lea rcx, [rsi + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800d5987
cmp dword [rax + 0x28], 0x56
jne 0x1800d5987
mov r12b, 1
jmp 0x1800d598a
xor r12b, r12b
test byte [0x180237264], 8
je 0x1800d59ae
mov rax, qword [rsi + 0x10]
lea rcx, [rsi + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800d59ae
cmp dword [rax + 0x28], 0x59
jne 0x1800d59ae
mov r15b, 1
jmp 0x1800d59b1
xor r15b, r15b
test byte [0x180237264], 0x10
je 0x1800d59f9
mov rax, qword [rsi + 0x10]
lea rcx, [rsi + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800d59f9
cmp dword [rax + 0x28], 0xd9
jne 0x1800d59f9
mov rcx, rsi
call fcn.1800bb8b0
cmp dword [rax], 1
jne 0x1800d59f9
mov eax, dword [0x180234c94]
cmp eax, 0x47e
je 0x1800d59f4
cmp eax, 0x82
jne 0x1800d59f9
mov r14b, 1
jmp 0x1800d59fc
xor r14b, r14b
test byte [0x180237264], 0x20
je 0x1800d5a38
mov rax, qword [rsi + 0x10]
lea rcx, [rsi + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800d5a38
mov ecx, dword [rax + 0x28]
sub ecx, 0x30
je 0x1800d5a34
sub ecx, 0x19
je 0x1800d5a34
sub ecx, 9
je 0x1800d5a34
sub ecx, 0xea
je 0x1800d5a34
cmp ecx, 0x26
jne 0x1800d5a38
mov bl, 1
jmp 0x1800d5a3a
xor bl, bl
test byte [0x180237264], 0x40
je 0x1800d5a67
mov rax, qword [rsi + 0x10]
lea rcx, [rsi + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1800d5a67
mov ecx, dword [rax + 0x28]
sub ecx, 0xd5
je 0x1800d5a63
cmp ecx, 0x45
jne 0x1800d5a67
mov al, 1
jmp 0x1800d5a69
xor al, al
cmp byte [rbp + 0x10b0], 0
jne 0x1800d5adf
test r13b, r13b
jne 0x1800d5a92
test r12b, r12b
jne 0x1800d5a92
test r15b, r15b
jne 0x1800d5a92
test bl, bl
jne 0x1800d5a92
test al, al
jne 0x1800d5a92
test r14b, r14b
je 0x1800d5b3e
mov rcx, rsi
call fcn.1800b6a20
mov rbx, rax
mov rcx, rsi
call fcn.1800b6d20
vmovss xmm6, dword [rax + 8]
mov rcx, rsi
call fcn.1800b6c20
vaddss xmm0, xmm6, dword [rax + 8]
vmulss xmm3, xmm0, xmm11
vaddss xmm0, xmm9, dword [rbx]
vmovss dword [rbp - 0x80], xmm0
vaddss xmm0, xmm9, dword [rbx + 4]
vmovss dword [rbp - 0x7c], xmm0
vaddss xmm1, xmm3, dword [rbx + 8]
vmovss dword [rbp - 0x78], xmm1
lea r9, [rbp - 0x80]
jmp 0x1800d5b25
mov rcx, rsi
call fcn.1800b6a20
mov rbx, rax
lea rdx, [rbp - 0x60]
mov rcx, rsi
call fcn.1800b7620
vmovss xmm0, dword [rbx]
vaddss xmm1, xmm0, dword [rax]
vmovss dword [rbp - 0x74], xmm1
vmovss xmm2, dword [rbx + 4]
vaddss xmm0, xmm2, dword [rax + 4]
vmovss dword [rbp - 0x70], xmm0
vmovss xmm1, dword [rbx + 8]
vaddss xmm2, xmm1, dword [rax + 8]
vmovss dword [rbp - 0x6c], xmm2
lea r9, [rbp - 0x74]
lea r8, [rsp + 0x30]
mov rdx, rsi
mov rcx, qword [rbp - 0x68]
call fcn.1801815d0
test al, al
jne 0x1800d5be9
mov r12, qword [rsp + 0x78]
mov r15, qword [rsp + 0x70]
mov r14, qword [rbp + 0x10b8]
mov ecx, dword [rbp - 0x50]
inc ecx
mov dword [rbp - 0x50], ecx
jmp 0x1800d57b1
mov rsi, qword gs:[0x58]
mov ebx, dword [0x18023328c]
mov r13, qword [rsp + 0x68]
mov r15d, 4
add r13, 8
mov qword [rsp + 0x68], r13
cmp r13, qword [rsp + 0x40]
jne 0x1800d5360
xor al, al
lea r11, [rsp + 0x1168]
vmovaps xmm6, xmmword [r11 - 0x18]
vmovaps xmm7, xmmword [r11 - 0x28]
vmovaps xmm8, xmmword [r11 - 0x38]
vmovaps xmm9, xmmword [r11 - 0x48]
vmovaps xmm10, xmmword [r11 - 0x58]
vmovaps xmm11, xmmword [r11 - 0x68]
vmovaps xmm12, xmmword [r11 - 0x78]
vmovaps xmm13, xmmword [r11 - 0x88]
vmovaps xmm14, xmmword [r11 - 0x98]
vmovaps 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 [0x180234c94], 0x82
jne 0x1800d5d03
mov rcx, qword [rbp + 0x10b8]
call fcn.1800b6a20
mov rbx, rax
mov rcx, qword [rbp + 0x10b8]
call fcn.1800b6e20
vmovss xmm0, dword [rbx]
vaddss xmm1, xmm0, dword [rax]
vsubss xmm7, xmm1, dword [rsp + 0x30]
vmovss xmm2, dword [rbx + 4]
vaddss xmm0, xmm2, dword [rax + 4]
vsubss xmm8, xmm0, dword [rsp + 0x34]
vmovss xmm1, dword [rbx + 8]
vaddss xmm2, xmm1, dword [rax + 8]
vsubss xmm6, xmm2, dword [rsp + 0x38]
vmulss xmm3, xmm7, xmm7
vmulss xmm0, xmm8, xmm8
vaddss xmm0, xmm3, xmm0
vxorps xmm1, xmm1, xmm1
vucomiss xmm1, xmm0
ja 0x1800d5c5f
vsqrtss xmm0, xmm0, xmm0
jmp 0x1800d5c64
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
vdivss xmm0, xmm6, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_atanf
vcvtss2sd xmm1, xmm0, xmm0
vmulsd xmm1, xmm1, qword [0x18020a3d8]
vcvtsd2ss xmm0, xmm1, xmm1
vmovss dword [rsp + 0x40], xmm0
vdivss xmm0, xmm8, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_atanf
vcvtss2sd xmm1, xmm0, xmm0
vmulsd xmm2, xmm1, qword [0x18020a3d8]
vcvtsd2ss xmm3, xmm2, xmm2
vmovss dword [rsp + 0x44], xmm3
vmovss dword [rsp + 0x48], xmm9
vcomiss xmm7, xmm9
jb 0x1800d5cbd
vaddss xmm0, xmm3, dword [0x18020a534]
vmovss dword [rsp + 0x44], xmm0
lea rcx, [rsp + 0x40]
call fcn.1800bad10
lea rdx, [rsp + 0x40]
mov rbx, qword [rbp + 0x10d8]
mov rcx, rbx
call fcn.180181ee0
vmovss xmm0, dword [rsp + 0x40]
vmovss dword [rbx + 0x10], xmm0
vmovss xmm1, dword [rsp + 0x44]
vmovss dword [rbx + 0x14], xmm1
vmovss xmm0, dword [rsp + 0x48]
vmovss dword [rbx + 0x18], xmm0
mov byte [0x180234e2d], 1
mov al, 1
jmp 0x1800d5b8c