Function at 0x180005210
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 - 0x70], r9
mov qword [rbp - 0x60], rdx
movzx edi, cl
mov rax, qword [rbp + 0x220]
mov qword [rbp - 0x68], rax
mov rcx, qword [0x18007e470]
call fcn.180002b70
mov rbx, rax
test rax, rax
je 0x180005e57
cmp byte [0x18007e4cc], 0
jne 0x180005e57
mov edx, dword [0x18007f5e8]
mov rcx, qword gs:[0x58]
mov r13d, 4
mov r14, qword [rcx + rdx*8]
mov qword [rbp - 0x80], r14
mov eax, dword [r14 + r13]
cmp dword [0x18007faf8], eax
jle 0x180005306
lea rcx, [0x18007faf8]
call fcn.180061ac8
cmp dword [0x18007faf8], 0xffffffff
jne 0x180005306
mov edx, 0x313072e3
mov r9d, 0xd0250969
lea rcx, str.C_BasePlayerWeapon
call fcn.180056140
mov qword [0x18007fb08], rax
lea rcx, [0x18007faf8]
call fcn.180061a5c
mov rax, qword [0x18007fb08]
cmp dword [rbx + rax], 0
je 0x180005e57
mov rcx, qword [0x18007f948]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb8]
call r8
mov eax, dword [r14 + r13]
cmp dword [0x18007fb90], eax
jle 0x180005376
lea rcx, [0x18007fb90]
call fcn.180061ac8
cmp dword [0x18007fb90], 0xffffffff
jne 0x180005376
mov edx, 0x313072e3
mov r9d, 0x11ba24e3
lea rcx, str.C_BasePlayerWeapon
call fcn.180056140
mov qword [0x18007fb20], rax
lea rcx, [0x18007fb90]
call fcn.180061a5c
mov rax, qword [0x18007fb20]
mov ecx, edi
xor ecx, 1
lea ecx, [rcx*2 + 1]
add ecx, dword [0x18007e4c8]
cmp ecx, dword [rax + rbx]
jl 0x180005e57
lea rax, [0x18007e578]
mov qword [rbp - 0x28], rax
mov rcx, rax
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x1800053bc
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
cmp dword [0x18007e5c4], 0x7fffffff
jne 0x1800053de
mov dword [0x18007e5c4], 0x7ffffffe
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov rdi, qword [0x18007e4d0]
mov qword [rsp + 0x60], rdi
mov rsi, qword [0x18007e4d8]
mov qword [rbp - 0x78], rsi
cmp rdi, rsi
je 0x180005c08
xor r15d, r15d
xorps xmm11, xmm11
movss xmm8, dword [0x18006d168]
movss xmm10, dword [0x18006d124]
nop word [rax + rax]
cmp dword [rdi + 4], 0
je 0x180005bf6
mov rcx, qword [0x18007f938]
test rcx, rcx
je 0x180005bf6
mov r8, qword [0x18007f780]
mov edx, dword [rdi]
and edx, 0x7fff
cmp dword [rdi], 0xffffffff
cmove edx, r15d
call r8
mov rbx, rax
test rax, rax
je 0x180005bf6
cmp dword [rdi + 4], 1
jne 0x180005bf6
mov ecx, dword [r14 + r13]
cmp dword [0x18007fb80], ecx
jle 0x1800054b4
lea rcx, [0x18007fb80]
call fcn.180061ac8
cmp dword [0x18007fb80], 0xffffffff
jne 0x1800054b4
mov edx, 0x3979ff6e
mov r9d, 0x7c628c1d
lea rcx, str.CBasePlayerController
call fcn.180056140
mov qword [0x18007fab0], rax
lea rcx, [0x18007fb80]
call fcn.180061a5c
mov rax, qword [0x18007fab0]
mov rcx, qword [0x18007f938]
test rcx, rcx
jne 0x1800054cc
mov r12, r15
jmp 0x1800054ea
mov r8, qword [0x18007f780]
mov edx, dword [rax + rbx]
and edx, 0x7fff
cmp dword [rax + rbx], 0xffffffff
cmove edx, r15d
call r8
mov r12, rax
mov rcx, r12
call fcn.180060940
test al, al
je 0x180005bf6
mov ecx, dword [r14 + r13]
cmp dword [0x18007fac0], ecx
jle 0x180005545
lea rcx, [0x18007fac0]
call fcn.180061ac8
cmp dword [0x18007fac0], 0xffffffff
jne 0x180005545
mov edx, 0x8c86dfe9
mov r9d, 0x84cdad2
lea rcx, [0x18006a948]
call fcn.180056140
mov qword [0x18007fad8], rax
lea rcx, [0x18007fac0]
call fcn.180061a5c
mov rax, qword [0x18007fad8]
cmp dword [rax + r12], 0
je 0x180005bf6
mov rbx, qword [r12 + 0x310]
test rbx, rbx
je 0x180005c1f
mov rcx, rbx
call fcn.1800028a0
mov eax, dword [r14 + r13]
cmp dword [0x18007fb18], eax
jle 0x1800055bb
lea rcx, [0x18007fb18]
call fcn.180061ac8
cmp dword [0x18007fb18], 0xffffffff
jne 0x1800055bb
mov edx, 0xd6c6252e
mov r9d, 0x52ac8c4f
lea rcx, str.CSkeletonInstance
call fcn.180056140
mov qword [0x18007fb30], rax
lea rcx, [0x18007fb18]
call fcn.180061a5c
add rbx, qword [0x18007fb30]
mov eax, dword [r14 + r13]
cmp dword [0x18007fa74], eax
jle 0x18000560d
lea rcx, [0x18007fa74]
call fcn.180061ac8
cmp dword [0x18007fa74], 0xffffffff
jne 0x18000560d
mov edx, 0xc0a51c0
mov r9d, 0xe100c814
lea rcx, str.CModelState
call fcn.180056140
mov qword [0x18007fb70], rax
lea rcx, [0x18007fa74]
call fcn.180061a5c
mov rax, qword [0x18007fb70]
mov rcx, qword [rbx + rax]
test rcx, rcx
je 0x180005c1f
mov r13, qword [rcx]
test r13, r13
je 0x180005c1f
cmp dword [r13 + 0x70], 0
jle 0x180005a68
mov rax, qword [r13 + 0x78]
test rax, rax
je 0x180005a68
mov rax, qword [rax]
test rax, rax
je 0x180005a68
lea rcx, [rbp - 0x20]
mov edx, 2
nop word [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 0x180005660
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 0x180005a68
mov r15d, dword [rax + 0x28]
mov dword [rsp + 0x40], r15d
xor r8d, r8d
mov r15d, r8d
mov eax, dword [rsp + 0x40]
test eax, eax
jle 0x180005a68
cmp r15d, 1
je 0x180005a55
test r15d, r15d
jne 0x18000571f
cmp dword [0x18007e83c], r15d
jne 0x180005a55
cmp dword [r13 + 0x70], 0
jle 0x1800057f5
mov rax, qword [r13 + 0x78]
test rax, rax
je 0x1800057f5
mov rax, qword [rax]
test rax, rax
je 0x1800057f5
lea rcx, [rbp - 0x20]
mov edx, 2
nop dword [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 0x180005750
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 0x1800057f5
mov ecx, dword [rax + 0x28]
test ecx, ecx
jle 0x1800057f5
cmp r15d, ecx
jg 0x1800057f5
mov rcx, qword [rax + 0x30]
test rcx, rcx
je 0x1800057f5
movsxd rax, r15d
imul rsi, rax, 0x70
add rsi, rcx
jmp 0x1800057f8
mov rsi, r8
mov r14, qword [rsi]
mov ebx, r8d
nop
mov edx, ebx
mov rcx, r13
call fcn.180002460
mov rcx, rax
movsx eax, byte [rax]
test al, al
jne 0x18000581b
mov edi, 0x811c9dc5
jmp 0x180005830
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
inc rcx
call fcn.180002260
mov edi, eax
mov edx, 0x811c9dc5
mov rcx, r14
call fcn.180002260
cmp eax, edi
je 0x18000584d
inc ebx
cmp ebx, 0x7e
jl 0x180005800
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, r12
call qword [0x18007f768]
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 - 0x70]
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 [0x18007e470]
mov r8, r12
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x50]
call fcn.1800017a0
movzx edi, al
test al, al
je 0x180005a4e
mov rbx, qword [0x18007e560]
test rbx, rbx
je 0x1800059c9
movsxd rcx, dword [0x18007e490]
lea rax, [0x18007e7e0]
cmp byte [rcx + rax + 0x1e5], 0
je 0x180005927
mov byte [0x18007f8e0], 1
jmp 0x1800059c9
mov rcx, rbx
call fcn.180001400
movd xmm6, dword [rax]
cvtdq2ps xmm6, xmm6
mov rax, qword [rbp - 0x80]
mov ecx, 4
mov eax, dword [rax + rcx]
cmp dword [0x18007f650], eax
jle 0x180005989
lea rcx, [0x18007f650]
call fcn.180061ac8
cmp dword [0x18007f650], 0xffffffff
jne 0x180005989
mov edx, 0x62fb7705
mov r9d, 0xb47ff686
lea rcx, str.CCSWeaponBaseVData
call fcn.180056140
mov qword [0x18007f668], rax
lea rcx, [0x18007f650]
call fcn.180061a5c
mulss xmm6, xmm8
mov rcx, r12
call fcn.180001480
cmp dword [rax], 0
jle 0x1800059b0
mov rcx, rbx
call fcn.180001380
movss xmm0, dword [rax]
mulss xmm0, xmm10
mulss xmm6, xmm0
mov rcx, r12
call fcn.180002c70
movd xmm0, dword [rax]
cvtdq2ps xmm0, xmm0
comiss xmm6, xmm0
setae byte [0x18007f8e0]
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 qword [rbp - 0x30], r12
mov rdx, qword [0x18007e540]
cmp rdx, qword [0x18007e548]
je 0x180005a3e
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 [0x18007e540], 0x30
jmp 0x180005a4e
lea r8, [rbp - 0x58]
lea rcx, [0x18007e538]
call fcn.18000a580
mov eax, dword [rsp + 0x40]
xor r8d, r8d
inc r15d
cmp r15d, eax
jl 0x180005703
mov r14, qword [rbp - 0x80]
xor r15d, r15d
mov rcx, qword [0x18007e538]
mov r8, qword [0x18007e540]
sub r8, rcx
movabs rax, 0x2aaaaaaaaaaaaaab
imul r8
sar rdx, 3
mov r8, rdx
shr r8, 0x3f
add r8, rdx
lea r9, [0x180005150]
mov rdx, qword [0x18007e540]
call fcn.18000a7a0
mov rbx, qword [0x18007e538]
mov rsi, qword [0x18007e540]
mov r13d, 4
cmp rbx, rsi
je 0x180005bd6
lea r12, [0x18007e7e0]
nop dword [rax + rax]
movups xmm9, xmmword [rbx]
movups xmm7, xmmword [rbx + 0x10]
movups xmm6, xmmword [rbx + 0x20]
mov eax, dword [r14 + r13]
cmp dword [0x18007fac0], eax
jle 0x180005b27
lea rcx, [0x18007fac0]
call fcn.180061ac8
cmp dword [0x18007fac0], 0xffffffff
jne 0x180005b27
mov edx, 0x8c86dfe9
mov r9d, 0x84cdad2
lea rcx, [0x18006a948]
call fcn.180056140
mov qword [0x18007fad8], rax
lea rcx, [0x18007fac0]
call fcn.180061a5c
movsxd rax, dword [0x18007e490]
mov ecx, dword [r12 + rax*4 + 0x194]
psrldq xmm6, 8
movq rdi, xmm6
mov rax, qword [0x18007fad8]
cmp ecx, dword [rax + rdi]
jl 0x180005ba1
mov eax, dword [r14 + r13]
cmp dword [0x18007fac0], eax
jle 0x180005b97
lea rcx, [0x18007fac0]
call fcn.180061ac8
cmp dword [0x18007fac0], 0xffffffff
jne 0x180005b97
mov edx, 0x8c86dfe9
mov r9d, 0x84cdad2
lea rcx, [0x18006a948]
call fcn.180056140
mov qword [0x18007fad8], rax
lea rcx, [0x18007fac0]
call fcn.180061a5c
mov rax, qword [0x18007fad8]
mov ecx, dword [rax + rdi]
cmp dword [0x18007e80c], 0
je 0x180005bb9
movsxd rax, dword [0x18007e490]
mov ecx, dword [r12 + rax*4 + 0x1b8]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
shufps xmm7, xmm7, 0xaa
comiss xmm7, xmm0
jae 0x180005c36
add rbx, 0x30
cmp rbx, rsi
jne 0x180005ad0
mov rax, qword [0x18007e538]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rbp - 0x78]
cmp rax, qword [0x18007e540]
je 0x180005bf6
mov qword [0x18007e540], rax
add rdi, 0x38
mov qword [rsp + 0x60], rdi
cmp rdi, rsi
jne 0x180005420
mov rax, qword [0x18007e538]
cmp rax, qword [0x18007e540]
je 0x180005c1f
mov qword [0x18007e540], rax
xor bl, bl
lea rcx, [0x18007e578]
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
movzx eax, bl
jmp 0x180005e59
mov rbx, qword [rbp - 0x70]
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 0x180005c86
xorps xmm7, xmm7
sqrtss xmm7, xmm1
jmp 0x180005c91
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 [0x18006d21c]
movss xmm0, dword [rbx + 8]
movaps xmm1, xmm9
shufps xmm1, xmm9, 0xaa
subss xmm0, xmm1
xorps xmm0, xmmword [0x18006d540]
divss xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_atanf
movaps xmm7, xmm0
mulss xmm7, dword [0x18006d2dc]
movaps xmm1, xmm6
movss xmm2, dword [0x18006d254]
comiss xmm8, xmm11
jb 0x180005cee
addss xmm6, xmm2
movaps xmm1, xmm6
movaps xmm3, xmm7
movss xmm0, dword [0x18006d2e0]
comiss xmm0, xmm7
jbe 0x180005d04
movaps xmm7, xmm0
movaps xmm3, xmm0
movss xmm0, dword [0x18006d22c]
comiss xmm3, xmm0
jbe 0x180005d14
movaps xmm7, xmm0
movss xmm3, dword [0x18006d2f0]
movss xmm0, dword [0x18006d27c]
comiss xmm3, xmm1
jbe 0x180005d3c
movaps xmm6, xmm1
nop dword [rax]
addss xmm6, xmm0
movaps xmm1, xmm6
comiss xmm3, xmm6
ja 0x180005d30
comiss xmm1, xmm2
jbe 0x180005d50
movaps xmm6, xmm1
subss xmm6, xmm0
movaps xmm1, xmm6
comiss xmm6, xmm2
ja 0x180005d41
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 [0x18007e490]
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 [r12 + r9*4 + 0x170]
lea r8, [rbp + 0x140]
mov rdx, rdi
mov rcx, qword [0x18007e470]
call fcn.1800040e0
test al, al
jne 0x180005e01
movsxd rax, dword [0x18007e490]
cmp byte [rax + r12 + 0x1dc], 0
je 0x180005c08
mov rdx, qword [0x18007e470]
mov rcx, qword [rbp - 0x68]
mov rcx, qword [rcx + 0x30]
call fcn.180004db0
jmp 0x180005c08
mov dword [0x18007e498], 1
mov qword [0x18007e4a0], rdi
movss dword [0x18007e4a8], xmm7
movss dword [0x18007e4ac], xmm6
movss dword [0x18007e4b0], xmm11
mov rax, qword [rbp - 0x68]
or qword [rax + 0x50], 1
or qword [rax + 0x58], 1
mov rax, qword [0x18007e538]
cmp rax, qword [0x18007e540]
je 0x180005e50
mov qword [0x18007e540], rax
mov bl, 1
jmp 0x180005c21
xor al, al
mov rcx, qword [rbp + 0x150]
xor rcx, rsp
call fcn.180061a00
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