Function at 0x18007acd0
Capabilities:
Encode data using xor
Hash data using fnv
Hash data using murmur2

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x1800d8040]
xor rax, rsp
mov qword [rbp + 0x38], rax
mov r13, r9
mov rbx, r8
mov rsi, rdx
mov rcx, r8
call fcn.180079340
mov rdi, qword [rax]
test rdi, rdi
je 0x18007b653
mov rcx, rdi
call fcn.180079220
mov edx, dword [rax]
and edx, 0x7fff
mov rcx, qword [0x18013a488]
call fcn.18007cbe0
mov qword [rsp + 0x28], rax
test rax, rax
je 0x18007b653
mov rcx, rbx
call fcn.180079460
mov rcx, qword [rax]
test rcx, rcx
je 0x18007b653
call fcn.180078a60
mov edx, dword [rax]
mov rcx, qword [0x18013a488]
call fcn.18007cb40
mov qword [rsp + 0x30], rax
test rax, rax
je 0x18007b653
mov rcx, rsi
call fcn.180078940
mov rcx, qword [r13]
mov r9, qword [rcx + 0x40]
xor r8d, r8d
mov edx, dword [rax]
mov rcx, r13
call r9
mov rbx, rax
test rax, rax
je 0x18007b653
mov edx, dword [0x18013a0b4]
mov rcx, qword gs:[0x58]
mov eax, 4
mov r14, qword [rcx + rdx*8]
add r14, rax
mov ecx, dword [r14]
cmp dword [0x18013a398], ecx
jle 0x18007adf2
lea rcx, [0x18013a398]
call fcn.1800ad598
cmp dword [0x18013a398], 0xffffffff
jne 0x18007adf2
mov rax, qword [0x18013a278]
mov qword [0x18013a490], rax
lea rcx, [0x18013a398]
call fcn.1800ad52c
mov rax, qword [0x18013a490]
test rax, rax
je 0x18007b653
mov rcx, rbx
call rax
mov rbx, rax
test rax, rax
je 0x18007b653
mov rsi, rax
mov qword [rsp + 0x20], rax
movabs r12, 0xcbf29ce484222325
movabs r15, 0x100000001b3
mov ecx, dword [r14]
cmp dword [0x18013a740], ecx
jle 0x18007aefc
lea rcx, [0x18013a740]
call fcn.1800ad598
mov qword [rsp + 0x20], rbx
cmp dword [0x18013a740], 0xffffffff
jne 0x18007aefc
lea rdx, str.m_hMyWeapons
mov rcx, r12
mov al, 0x6d
mov qword [rsp + 0x20], rbx
nop dword [rax]
movsx rax, al
lea rdx, [rdx + 1]
xor rcx, rax
imul rcx, r15
movzx eax, byte [rdx]
test al, al
jne 0x18007ae70
lea r8, str.CPlayer_WeaponServices
movabs rbx, 0xcbf29ce484222325
mov rdx, rbx
mov al, 0x43
nop dword [rax]
movsx rax, al
lea r8, [r8 + 1]
xor rdx, rax
imul rdx, r15
movzx eax, byte [r8]
test al, al
jne 0x18007aea0
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], rcx
lea r8, [rbp + 0x28]
lea rdx, [rsp + 0x38]
call fcn.180065550
mov rcx, qword [rax]
add rcx, 0x18
lea r8, [rbp + 0x30]
lea rdx, [rsp + 0x48]
call fcn.1800652e0
mov rax, qword [rax]
mov eax, dword [rax + 0x18]
mov dword [0x18013a690], eax
lea rcx, [0x18013a740]
call fcn.1800ad52c
jmp 0x18007aeff
mov rbx, r12
movsxd rax, dword [0x18013a690]
mov r15, qword [rax + rdi + 8]
movsxd rax, dword [rax + rdi]
lea rax, [r15 + rax*4]
mov qword [rsp + 0x48], rax
cmp r15, rax
je 0x18007b653
mov edx, dword [r15]
cmp edx, 0xffffffff
je 0x18007b653
and edx, 0x7fff
mov rcx, qword [0x18013a488]
call fcn.18007cbe0
mov rdi, rax
test rax, rax
je 0x18007b635
mov rcx, rax
call fcn.180078820
cmp qword [rax], 0
je 0x18007b635
mov rcx, rdi
call fcn.180078ca0
cmp rax, qword [r13 + 0x10]
jne 0x18007b635
mov rcx, rdi
call fcn.180078b80
mov rcx, rax
call fcn.180078700
mov r12, rax
mov rcx, rax
call fcn.180067610
mov r8, rax
lea rdx, [rsp + 0x58]
lea rcx, [0x18013c500]
call fcn.18005b260
mov rcx, qword [rax]
mov rcx, qword [rcx + 0x18]
mov rdx, qword [rcx]
mov r8, qword [rdx + 0x18]
call r8
movzx ecx, byte [rax]
test cl, cl
je 0x18007afdb
movabs rsi, 0x100000001b3
movsx rcx, cl
lea rax, [rax + 1]
xor rbx, rcx
imul rbx, rsi
movzx ecx, byte [rax]
test cl, cl
jne 0x18007afc0
mov rsi, qword [rsp + 0x20]
movabs r8, 0xaf639e4c86018332
lea rdx, [0x1800c3271]
call fcn.1800641f0
cmp rbx, rax
jne 0x18007b635
mov ebx, dword [r13 + 0x10]
mov rcx, r12
call fcn.1800784c0
mov dword [rax], ebx
mov rbx, qword [rsi + 0x10]
shr rbx, 0x20
mov rcx, r12
call fcn.180078280
mov dword [rax], ebx
mov ebx, dword [rsi + 0x10]
mov rcx, r12
call fcn.1800783a0
mov dword [rax], ebx
movzx ebx, word [rsi + 0x30]
mov rcx, r12
call fcn.180067610
mov word [rax], bx
mov rcx, r12
call fcn.1800785e0
mov byte [rax], 0
mov rcx, rdi
call fcn.180078ec0
cmp byte [rax], 0
jne 0x18007b0fe
mov rcx, rdi
call fcn.180078fe0
mov rbx, rax
mov ecx, dword [r14]
cmp dword [0x18013a768], ecx
jle 0x18007b097
lea rcx, [0x18013a768]
call fcn.1800ad598
cmp dword [0x18013a768], 0xffffffff
jne 0x18007b097
mov rcx, qword [0x18013a268]
mov qword [0x18013a700], rcx
lea rcx, [0x18013a768]
call fcn.1800ad52c
mov rax, qword [0x18013a700]
test rax, rax
je 0x18007b0a8
mov rcx, rbx
call rax
mov rcx, rdi
call fcn.180079100
mov rbx, rax
mov ecx, dword [r14]
cmp dword [0x18013a6a0], ecx
jle 0x18007b0ed
lea rcx, [0x18013a6a0]
call fcn.1800ad598
cmp dword [0x18013a6a0], 0xffffffff
jne 0x18007b0ed
mov rcx, qword [0x18013a270]
mov qword [0x18013a678], rcx
lea rcx, [0x18013a6a0]
call fcn.1800ad52c
mov rax, qword [0x18013a678]
test rax, rax
je 0x18007b0fe
mov rcx, rbx
call rax
mov rcx, r12
call fcn.180067610
mov r8, rax
lea rdx, [rsp + 0x68]
lea rcx, [0x18013c500]
call fcn.18005b260
mov rcx, qword [rax]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rcx]
mov rdx, qword [rax]
call rdx
movsx edx, ax
lea rcx, [rbp + 8]
call fcn.18004a050
mov r9, rax
cmp qword [rax + 0x18], 0xf
jbe 0x18007b142
mov r9, qword [rax]
mov qword [rsp + 0x40], r9
mov rcx, 0xffffffffffffffff
nop
inc rcx
cmp byte [r9 + rcx], 0
jne 0x18007b150
mov r8d, ecx
xor r8d, 0x31415926
cmp rcx, 4
jb 0x18007b1a8
mov r10, rcx
shr r10, 2
imul rax, r10, 0xfffffffffffffffc
add rcx, rax
nop dword [rax + rax]
imul eax, dword [r9], 0x5bd1e995
mov edx, eax
shr edx, 0x18
xor edx, eax
imul eax, edx, 0x5bd1e995
imul r8d, r8d, 0x5bd1e995
xor r8d, eax
add r9, 4
sub r10, 1
jne 0x18007b180
sub rcx, 1
je 0x18007b1d0
sub rcx, 1
je 0x18007b1c5
cmp rcx, 1
jne 0x18007b1de
movsx eax, byte [r9 + 2]
shl eax, 0x10
xor r8d, eax
movsx eax, byte [r9 + 1]
shl eax, 8
xor r8d, eax
movsx eax, byte [r9]
xor eax, r8d
imul r8d, eax, 0x5bd1e995
mov eax, r8d
shr eax, 0xd
xor eax, r8d
imul eax, eax, 0x5bd1e995
mov ecx, eax
shr rax, 0xf
xor rax, rcx
mov qword [rsp + 0x38], rax
mov eax, dword [r14]
cmp dword [0x18013a6dc], eax
jle 0x18007b2db
lea rcx, [0x18013a6dc]
call fcn.1800ad598
cmp dword [0x18013a6dc], 0xffffffff
jne 0x18007b2db
lea rcx, str.m_nSubclassID
movabs r9, 0xcbf29ce484222325
mov rdx, r9
mov al, 0x6d
movabs rbx, 0x100000001b3
nop dword [rax]
nop word [rax + rax]
movsx rax, al
lea rcx, [rcx + 1]
xor rdx, rax
imul rdx, rbx
movzx eax, byte [rcx]
test al, al
jne 0x18007b250
lea r8, str.C_BaseEntity
mov rcx, r9
mov al, 0x43
nop dword [rax]
nop word [rax + rax]
movsx rax, al
lea r8, [r8 + 1]
xor rcx, rax
imul rcx, rbx
movzx eax, byte [r8]
test al, al
jne 0x18007b280
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x28], rdx
lea r8, [rbp + 0x30]
lea rdx, [rsp + 0x78]
call fcn.180065550
mov rcx, qword [rax]
add rcx, 0x18
lea r8, [rbp + 0x28]
lea rdx, [rbp - 0x78]
call fcn.1800652e0
mov rax, qword [rax]
mov eax, dword [rax + 0x18]
mov dword [0x18013a784], eax
lea rcx, [0x18013a6dc]
call fcn.1800ad52c
jmp 0x18007b2e5
movabs rbx, 0x100000001b3
movsxd rax, dword [0x18013a784]
movups xmm0, xmmword [rsp + 0x38]
movups xmmword [rax + rdi], xmm0
lea rcx, [rbp + 8]
call fcn.18001c4e0
mov eax, dword [r14]
cmp dword [0x18013a6ac], eax
jle 0x18007b338
lea rcx, [0x18013a6ac]
call fcn.1800ad598
cmp dword [0x18013a6ac], 0xffffffff
jne 0x18007b338
mov rax, qword [0x18013a298]
mov qword [0x18013a6f8], rax
lea rcx, [0x18013a6ac]
call fcn.1800ad52c
mov rax, qword [0x18013a6f8]
test rax, rax
je 0x18007b349
mov rcx, rdi
call rax
mov rcx, r12
call fcn.180067610
mov r8, rax
lea rdx, [rbp - 0x68]
lea rcx, [0x18013c500]
call fcn.18005b260
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
mov rsi, qword [rax + 0x1f0]
mov eax, dword [r14]
cmp dword [0x18013a6a8], eax
jle 0x18007b438
lea rcx, [0x18013a6a8]
call fcn.1800ad598
cmp dword [0x18013a6a8], 0xffffffff
jne 0x18007b438
lea rcx, str.m_nSubclassID
movabs r9, 0xcbf29ce484222325
mov rdx, r9
mov al, 0x6d
movsx rax, al
lea rcx, [rcx + 1]
xor rdx, rax
imul rdx, rbx
movzx eax, byte [rcx]
test al, al
jne 0x18007b3b0
lea r8, str.C_BaseEntity
mov rcx, r9
mov al, 0x43
nop dword [rax]
nop word [rax + rax]
movsx rax, al
lea r8, [r8 + 1]
xor rcx, rax
imul rcx, rbx
movzx eax, byte [r8]
test al, al
jne 0x18007b3e0
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x28], rdx
lea r8, [rbp + 0x30]
lea rdx, [rbp - 0x58]
call fcn.180065550
mov rcx, qword [rax]
add rcx, 0x18
lea r8, [rbp + 0x28]
lea rdx, [rbp - 0x48]
call fcn.1800652e0
mov rax, qword [rax]
mov eax, dword [rax + 0x18]
mov dword [0x18013a668], eax
lea rcx, [0x18013a6a8]
call fcn.1800ad52c
movsxd rax, dword [0x18013a668]
mov rbx, qword [rax + rdi + 8]
mov eax, dword [r14]
cmp dword [0x18013a75c], eax
jle 0x18007b518
lea rcx, [0x18013a75c]
call fcn.1800ad598
cmp dword [0x18013a75c], 0xffffffff
jne 0x18007b518
lea rcx, str.m_szName
movabs r10, 0xcbf29ce484222325
mov rdx, r10
mov al, 0x6d
movabs r9, 0x100000001b3
nop dword [rax]
movsx rax, al
lea rcx, [rcx + 1]
xor rdx, rax
imul rdx, r9
movzx eax, byte [rcx]
test al, al
jne 0x18007b490
lea r8, str.CCSWeaponBaseVData
mov rcx, r10
mov al, 0x43
nop dword [rax]
nop word [rax + rax]
movsx rax, al
lea r8, [r8 + 1]
xor rcx, rax
imul rcx, r9
movzx eax, byte [r8]
test al, al
jne 0x18007b4c0
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x28], rdx
lea r8, [rbp + 0x30]
lea rdx, [rbp - 0x38]
call fcn.180065550
mov rcx, qword [rax]
add rcx, 0x18
lea r8, [rbp + 0x28]
lea rdx, [rbp - 0x28]
call fcn.1800652e0
mov rax, qword [rax]
mov eax, dword [rax + 0x18]
mov dword [0x18013a658], eax
lea rcx, [0x18013a75c]
call fcn.1800ad52c
movsxd rax, dword [0x18013a658]
mov qword [rax + rbx], rsi
mov rax, qword [rdi]
mov edx, 1
mov rcx, rdi
call qword [rax + 0x5e0]
mov rcx, r12
call fcn.180067610
mov r8, rax
lea rdx, [rbp - 0x18]
lea rcx, [0x18013c500]
call fcn.18005b260
mov rcx, qword [rax]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x30]
call rdx
mov rbx, rax
mov ecx, dword [r14]
cmp dword [0x18013a780], ecx
jle 0x18007b59c
lea rcx, [0x18013a780]
call fcn.1800ad598
cmp dword [0x18013a780], 0xffffffff
jne 0x18007b59c
mov rcx, qword [0x18013a290]
mov qword [0x18013a6e8], rcx
lea rcx, [0x18013a780]
call fcn.1800ad52c
mov rax, qword [0x18013a6e8]
test rax, rax
je 0x18007b5b0
mov rdx, rbx
mov rcx, rdi
call rax
cmp rdi, qword [rsp + 0x28]
jne 0x18007b635
mov rcx, r12
call fcn.180067610
mov r8, rax
lea rdx, [rbp - 8]
lea rcx, [0x18013c500]
call fcn.18005b260
mov rcx, qword [rax]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x38]
call rdx
mov rbx, rax
mov ecx, dword [r14]
cmp dword [0x18013a780], ecx
jle 0x18007b61f
lea rcx, [0x18013a780]
call fcn.1800ad598
cmp dword [0x18013a780], 0xffffffff
jne 0x18007b61f
mov rcx, qword [0x18013a290]
mov qword [0x18013a6e8], rcx
lea rcx, [0x18013a780]
call fcn.1800ad52c
mov rax, qword [0x18013a6e8]
test rax, rax
je 0x18007b635
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call rax
add r15, 4
cmp r15, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x20]
movabs rbx, 0xcbf29ce484222325
jne 0x18007af21
mov rcx, qword [rbp + 0x38]
xor rcx, rsp
call fcn.1800ad4d0
mov rbx, qword [rsp + 0x180]
add rsp, 0x140
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret