Function at 0x180005370
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1f8]
sub rsp, 0x2c0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
mov rax, qword [0x180079010]
xor rax, rsp
mov qword [rbp + 0x150], rax
mov qword [rbp - 0x78], r9
mov qword [rbp - 0x60], rdx
movzx edi, cl
mov rax, qword [rbp + 0x220]
mov qword [rbp - 0x70], rax
mov rcx, qword [0x18007e490]
call fcn.180002c20
mov rbx, rax
test rax, rax
je 0x180005fa7
cmp byte [0x18007e4ec], 0
jne 0x180005fa7
mov edx, dword [0x18007f698]
mov rcx, qword gs:[0x58]
mov eax, 4
mov r14, qword [rcx + rdx*8]
add r14, rax
mov qword [rbp - 0x68], r14
mov eax, dword [r14]
cmp dword [0x18007faf0], eax
jle 0x180005467
lea rcx, [0x18007faf0]
call fcn.180061558
cmp dword [0x18007faf0], 0xffffffff
jne 0x180005467
mov edx, 0x313072e3
mov r9d, 0xd0250969
lea rcx, str.C_BasePlayerWeapon
call fcn.180055970
mov qword [0x18007fb00], rax
lea rcx, [0x18007faf0]
call fcn.1800614ec
mov rax, qword [0x18007fb00]
cmp dword [rbx + rax], 0
je 0x180005fa7
mov rcx, qword [0x18007f928]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb8]
call r8
mov eax, dword [r14]
cmp dword [0x18007fb88], eax
jle 0x1800054d6
lea rcx, [0x18007fb88]
call fcn.180061558
cmp dword [0x18007fb88], 0xffffffff
jne 0x1800054d6
mov edx, 0x313072e3
mov r9d, 0x11ba24e3
lea rcx, str.C_BasePlayerWeapon
call fcn.180055970
mov qword [0x18007fb18], rax
lea rcx, [0x18007fb88]
call fcn.1800614ec
mov rax, qword [0x18007fb18]
mov ecx, edi
xor ecx, 1
lea ecx, [rcx*2 + 1]
add ecx, dword [0x18007e4e8]
cmp ecx, dword [rax + rbx]
jl 0x180005fa7
lea rax, [0x18007e598]
mov qword [rbp - 0x28], rax
mov rcx, rax
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x18000551c
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
cmp dword [0x18007e5e4], 0x7fffffff
jne 0x18000553e
mov dword [0x18007e5e4], 0x7ffffffe
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov r12, qword [0x18007e4f0]
mov qword [rsp + 0x68], r12
mov r13, qword [0x18007e4f8]
mov qword [rbp - 0x80], r13
cmp r12, r13
je 0x180005d57
mov rdi, r14
mov qword [rsp + 0x60], r14
xor esi, esi
xorps xmm11, xmm11
movss xmm8, dword [0x18006d048]
movss xmm10, dword [0x18006d004]
nop
cmp dword [r12 + 4], 0
je 0x180005d45
mov rcx, qword [0x18007f918]
test rcx, rcx
je 0x180005d45
mov r8, qword [0x18007f830]
mov edx, dword [r12]
and edx, 0x7fff
cmp dword [r12], 0xffffffff
cmove edx, esi
call r8
mov rbx, rax
test rax, rax
je 0x180005d45
cmp dword [r12 + 4], 1
jne 0x180005d45
mov ecx, dword [rdi]
cmp dword [0x18007fb78], ecx
jle 0x180005619
lea rcx, [0x18007fb78]
call fcn.180061558
cmp dword [0x18007fb78], 0xffffffff
jne 0x180005619
mov edx, 0x3979ff6e
mov r9d, 0x7c628c1d
lea rcx, str.CBasePlayerController
call fcn.180055970
mov qword [0x18007faa8], rax
lea rcx, [0x18007fb78]
call fcn.1800614ec
mov rax, qword [0x18007faa8]
mov rcx, qword [0x18007f918]
test rcx, rcx
jne 0x180005631
mov rbx, rsi
jmp 0x18000564e
mov r8, qword [0x18007f830]
mov edx, dword [rax + rbx]
and edx, 0x7fff
cmp dword [rax + rbx], 0xffffffff
cmove edx, esi
call r8
mov rbx, rax
mov qword [rsp + 0x48], rbx
mov rcx, rbx
call fcn.1800603d0
test al, al
je 0x180005d45
mov ecx, dword [rdi]
cmp dword [0x18007fab8], ecx
jle 0x1800056ac
lea rcx, [0x18007fab8]
call fcn.180061558
cmp dword [0x18007fab8], 0xffffffff
jne 0x1800056ac
mov edx, 0x8c86dfe9
mov r9d, 0x84cdad2
lea rcx, [0x18006a8f8]
call fcn.180055970
mov qword [0x18007fad0], rax
lea rcx, [0x18007fab8]
call fcn.1800614ec
mov rax, qword [0x18007fad0]
cmp dword [rax + rbx], 0
je 0x180005d45
mov rbx, qword [rbx + 0x310]
test rbx, rbx
je 0x180005d6e
mov rcx, rbx
call fcn.180002940
mov eax, dword [rdi]
cmp dword [0x18007fb10], eax
jle 0x18000571e
lea rcx, [0x18007fb10]
call fcn.180061558
cmp dword [0x18007fb10], 0xffffffff
jne 0x18000571e
mov edx, 0xd6c6252e
mov r9d, 0x52ac8c4f
lea rcx, str.CSkeletonInstance
call fcn.180055970
mov qword [0x18007fb28], rax
lea rcx, [0x18007fb10]
call fcn.1800614ec
add rbx, qword [0x18007fb28]
mov eax, dword [rdi]
cmp dword [0x18007fa68], eax
jle 0x18000576e
lea rcx, [0x18007fa68]
call fcn.180061558
cmp dword [0x18007fa68], 0xffffffff
jne 0x18000576e
mov edx, 0xc0a51c0
mov r9d, 0xe100c814
lea rcx, str.CModelState
call fcn.180055970
mov qword [0x18007fb68], rax
lea rcx, [0x18007fa68]
call fcn.1800614ec
mov rax, qword [0x18007fb68]
mov rcx, qword [rbx + rax]
test rcx, rcx
je 0x180005d6e
mov r15, qword [rcx]
test r15, r15
je 0x180005d6e
cmp dword [r15 + 0x70], 0
jle 0x180005bc0
mov rax, qword [r15 + 0x78]
test rax, rax
je 0x180005bc0
mov rax, qword [rax]
test rax, rax
je 0x180005bc0
lea rcx, [rbp - 0x20]
mov edx, 2
nop dword [rax + rax]
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
lea rax, [rax + 0x80]
sub rdx, 1
jne 0x1800057c0
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
mov rax, qword [rax + 0x40]
mov qword [rcx + 0x40], rax
mov rax, qword [rbp + 0x118]
test rax, rax
je 0x180005bc0
mov r13d, dword [rax + 0x28]
mov dword [rsp + 0x40], r13d
mov r12d, esi
test r13d, r13d
jle 0x180005bb7
mov r13, rsi
mov eax, dword [rsp + 0x40]
cmp r12d, 1
je 0x180005b9e
cmp dword [r15 + 0x70], 0
jle 0x18000593d
mov rax, qword [r15 + 0x78]
test rax, rax
je 0x18000593d
mov rax, qword [rax]
test rax, rax
je 0x18000593d
lea rcx, [rbp - 0x20]
mov edx, 2
nop dword [rax + rax]
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
lea rax, [rax + 0x80]
sub rdx, 1
jne 0x1800058a0
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
mov rax, qword [rax + 0x40]
mov qword [rcx + 0x40], rax
mov rax, qword [rbp + 0x118]
test rax, rax
je 0x18000593d
mov ecx, dword [rax + 0x28]
test ecx, ecx
jle 0x18000593d
cmp r12d, ecx
jg 0x18000593d
mov rcx, qword [rax + 0x30]
test rcx, rcx
je 0x18000593d
lea rsi, [rcx + r13]
mov r14, qword [rsi]
xor ebx, ebx
mov edx, ebx
mov rcx, r15
call fcn.1800024f0
mov rcx, rax
movsx eax, byte [rax]
test al, al
jne 0x18000595d
mov edi, 0x811c9dc5
jmp 0x180005972
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
inc rcx
call fcn.180002190
mov edi, eax
mov edx, 0x811c9dc5
mov rcx, r14
call fcn.180002190
cmp eax, edi
je 0x18000598f
inc ebx
cmp ebx, 0x7e
jl 0x180005942
mov ebx, 0xffffffff
mov qword [rbp + 0x134], 0
mov dword [rbp + 0x130], 0
mov qword [rbp + 0x144], 0
mov dword [rbp + 0x140], 0
lea r9, [rbp + 0x140]
lea r8, [rbp + 0x130]
mov edx, ebx
mov rcx, qword [rsp + 0x48]
call qword [0x18007f818]
mov dword [rsp + 0x44], 0
movsd xmm0, qword [rbp + 0x130]
movsd qword [rsp + 0x70], xmm0
mov eax, dword [rbp + 0x138]
mov dword [rsp + 0x78], eax
mov rax, qword [rbp - 0x78]
movsd xmm0, qword [rax]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rax + 8]
mov dword [rsp + 0x58], eax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov r9, qword [0x18007e490]
mov r8, qword [rsp + 0x48]
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x50]
call fcn.1800016a0
movzx edi, al
test al, al
je 0x180005b98
mov rbx, qword [0x18007e580]
test rbx, rbx
je 0x180005b0e
movsxd rcx, dword [0x18007e4b0]
lea rax, [0x18007e8a0]
cmp byte [rcx + rax + 0x1d9], 0
je 0x180005a6d
mov byte [0x18007f8b8], 1
jmp 0x180005b0e
mov rcx, rbx
call fcn.180001300
movd xmm6, dword [rax]
cvtdq2ps xmm6, xmm6
mov rax, qword [rsp + 0x60]
mov eax, dword [rax]
cmp dword [0x18007f704], eax
jle 0x180005aca
lea rcx, [0x18007f704]
call fcn.180061558
cmp dword [0x18007f704], 0xffffffff
jne 0x180005aca
mov edx, 0x62fb7705
mov r9d, 0xb47ff686
lea rcx, str.CCSWeaponBaseVData
call fcn.180055970
mov qword [0x18007f718], rax
lea rcx, [0x18007f704]
call fcn.1800614ec
mulss xmm6, xmm8
mov rcx, qword [rsp + 0x48]
call fcn.180001380
cmp dword [rax], 0
jle 0x180005af3
mov rcx, rbx
call fcn.180001280
movss xmm0, dword [rax]
mulss xmm0, xmm10
mulss xmm6, xmm0
mov rcx, qword [rsp + 0x48]
call fcn.180002d20
movd xmm0, dword [rax]
cvtdq2ps xmm0, xmm0
comiss xmm6, xmm0
setae byte [0x18007f8b8]
mov eax, dword [rsi + 0x38]
movss xmm0, dword [rbp + 0x130]
movss dword [rbp - 0x58], xmm0
movss xmm1, dword [rbp + 0x134]
movss dword [rbp - 0x54], xmm1
movss xmm0, dword [rbp + 0x138]
movss dword [rbp - 0x50], xmm0
mov qword [rbp - 0x48], r14
movss xmm1, dword [rsp + 0x44]
movss dword [rbp - 0x40], xmm1
mov byte [rbp - 0x3c], dil
mov dword [rbp - 0x38], eax
mov rax, qword [rsp + 0x48]
mov qword [rbp - 0x30], rax
mov rdx, qword [0x18007e560]
cmp rdx, qword [0x18007e568]
je 0x180005b88
movups xmm0, xmmword [rbp - 0x58]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rbp - 0x48]
movups xmmword [rdx + 0x10], xmm1
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rdx + 0x20], xmm0
add qword [0x18007e560], 0x30
jmp 0x180005b98
lea r8, [rbp - 0x58]
lea rcx, [0x18007e558]
call fcn.180009ea0
mov eax, dword [rsp + 0x40]
xor esi, esi
inc r12d
add r13, 0x70
cmp r12d, eax
jl 0x180005864
mov rdi, qword [rsp + 0x60]
mov r14, qword [rbp - 0x68]
mov r13, qword [rbp - 0x80]
mov r12, qword [rsp + 0x68]
mov rcx, qword [0x18007e558]
mov r8, qword [0x18007e560]
sub r8, rcx
movabs rax, 0x2aaaaaaaaaaaaaab
imul r8
sar rdx, 3
mov r8, rdx
shr r8, 0x3f
add r8, rdx
lea r9, [0x1800052b0]
mov rdx, qword [0x18007e560]
call fcn.18000a0c0
mov rbx, qword [0x18007e558]
mov rsi, qword [0x18007e560]
cmp rbx, rsi
je 0x180005d2c
lea r15, [0x18007e8a0]
nop dword [rax]
movups xmm9, xmmword [rbx]
movups xmm7, xmmword [rbx + 0x10]
movups xmm6, xmmword [rbx + 0x20]
mov eax, dword [r14]
cmp dword [0x18007fab8], eax
jle 0x180005c76
lea rcx, [0x18007fab8]
call fcn.180061558
cmp dword [0x18007fab8], 0xffffffff
jne 0x180005c76
mov edx, 0x8c86dfe9
mov r9d, 0x84cdad2
lea rcx, [0x18006a8f8]
call fcn.180055970
mov qword [0x18007fad0], rax
lea rcx, [0x18007fab8]
call fcn.1800614ec
movsxd rax, dword [0x18007e4b0]
mov ecx, dword [r15 + rax*4 + 0x188]
psrldq xmm6, 8
movq rdi, xmm6
mov rax, qword [0x18007fad0]
cmp ecx, dword [rax + rdi]
jl 0x180005cef
mov eax, dword [r14]
cmp dword [0x18007fab8], eax
jle 0x180005ce5
lea rcx, [0x18007fab8]
call fcn.180061558
cmp dword [0x18007fab8], 0xffffffff
jne 0x180005ce5
mov edx, 0x8c86dfe9
mov r9d, 0x84cdad2
lea rcx, [0x18006a8f8]
call fcn.180055970
mov qword [0x18007fad0], rax
lea rcx, [0x18007fab8]
call fcn.1800614ec
mov rax, qword [0x18007fad0]
mov ecx, dword [rax + rdi]
cmp dword [0x18007e8d8], 0
je 0x180005d07
movsxd rax, dword [0x18007e4b0]
mov ecx, dword [r15 + rax*4 + 0x1ac]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
shufps xmm7, xmm7, 0xaa
comiss xmm7, xmm0
jae 0x180005d85
add rbx, 0x30
mov rdi, r14
mov qword [rsp + 0x60], r14
cmp rbx, rsi
jne 0x180005c20
mov rax, qword [0x18007e558]
xor esi, esi
cmp rax, qword [0x18007e560]
je 0x180005d45
mov qword [0x18007e560], rax
add r12, 0x38
mov qword [rsp + 0x68], r12
cmp r12, r13
jne 0x180005580
mov rax, qword [0x18007e558]
cmp rax, qword [0x18007e560]
je 0x180005d6e
mov qword [0x18007e560], rax
xor bl, bl
lea rcx, [0x18007e598]
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
movzx eax, bl
jmp 0x180005fa9
mov rbx, qword [rbp - 0x78]
movsd xmm0, qword [rbx]
movaps xmm8, xmm0
subss xmm8, xmm9
movaps xmm6, xmm0
shufps xmm6, xmm6, 0x55
movsd qword [rsp + 0x50], xmm0
movaps xmm0, xmm9
shufps xmm0, xmm9, 0x55
subss xmm6, xmm0
movaps xmm1, xmm6
mulss xmm1, xmm6
movaps xmm0, xmm8
mulss xmm0, xmm8
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x180005dd5
xorps xmm7, xmm7
sqrtss xmm7, xmm1
jmp 0x180005de0
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm7, xmm0
divss xmm6, xmm8
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_atanf
movaps xmm6, xmm0
mulss xmm6, dword [0x18006d0fc]
movss xmm0, dword [rbx + 8]
movaps xmm1, xmm9
shufps xmm1, xmm9, 0xaa
subss xmm0, xmm1
xorps xmm0, xmmword [0x18006d430]
divss xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_atanf
movaps xmm7, xmm0
mulss xmm7, dword [0x18006d1bc]
movaps xmm1, xmm6
movss xmm2, dword [0x18006d134]
comiss xmm8, xmm11
jb 0x180005e3d
addss xmm6, xmm2
movaps xmm1, xmm6
movaps xmm3, xmm7
movss xmm0, dword [0x18006d1c0]
comiss xmm0, xmm7
jbe 0x180005e53
movaps xmm7, xmm0
movaps xmm3, xmm0
movss xmm0, dword [0x18006d10c]
comiss xmm3, xmm0
jbe 0x180005e63
movaps xmm7, xmm0
movss xmm3, dword [0x18006d1d0]
movss xmm0, dword [0x18006d15c]
comiss xmm3, xmm1
jbe 0x180005e8c
movaps xmm6, xmm1
nop dword [rax + rax]
addss xmm6, xmm0
movaps xmm1, xmm6
comiss xmm3, xmm6
ja 0x180005e80
comiss xmm1, xmm2
jbe 0x180005ea0
movaps xmm6, xmm1
subss xmm6, xmm0
movaps xmm1, xmm6
comiss xmm6, xmm2
ja 0x180005e91
movsd xmm0, qword [rbx]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rbx + 8]
mov dword [rsp + 0x58], eax
movsd qword [rsp + 0x70], xmm9
psrldq xmm9, 8
movd dword [rsp + 0x78], xmm9
movaps xmm0, xmm7
unpcklps xmm0, xmm6
movsd qword [rbp + 0x140], xmm0
movss dword [rbp + 0x148], xmm11
movsxd r9, dword [0x18007e4b0]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp - 0x60]
mov qword [rsp + 0x20], rax
mov r9d, dword [r15 + r9*4 + 0x164]
lea r8, [rbp + 0x140]
mov rdx, rdi
mov rcx, qword [0x18007e490]
call fcn.1800041a0
test al, al
jne 0x180005f51
movsxd rax, dword [0x18007e4b0]
cmp byte [rax + r15 + 0x1d0], 0
je 0x180005d57
mov rdx, qword [0x18007e490]
mov rcx, qword [rbp - 0x70]
mov rcx, qword [rcx + 0x30]
call fcn.180004f10
jmp 0x180005d57
mov dword [0x18007e4b8], 1
mov qword [0x18007e4c0], rdi
movss dword [0x18007e4c8], xmm7
movss dword [0x18007e4cc], xmm6
movss dword [0x18007e4d0], xmm11
mov rax, qword [rbp - 0x70]
or qword [rax + 0x50], 1
or qword [rax + 0x58], 1
mov rax, qword [0x18007e558]
cmp rax, qword [0x18007e560]
je 0x180005fa0
mov qword [0x18007e560], rax
mov bl, 1
jmp 0x180005d70
xor al, al
mov rcx, qword [rbp + 0x150]
xor rcx, rsp
call fcn.180061490
lea r11, [rsp + 0x2c0]
mov rbx, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret