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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xd8
mov rax, qword [0x1402dc010]
xor rax, rsp
mov qword [rbp + 7], rax
mov r15, r9
mov r12, r8
mov rsi, rdx
mov r13, rcx
mov qword [rbp - 0x79], rcx
mov rcx, qword [rcx + 0xa0]
mov rax, qword [rcx]
mov rdx, r8
call qword [rax + 0x430]
mov r14, rax
test rax, rax
jne 0x1401f9a84
mov rcx, qword [r13 + 0xa0]
mov rax, qword [rcx]
call qword [rax + 0x480]
mov r13, rax
mov r14, qword [rbp - 0x79]
mov rcx, qword [r14 + 0xa0]
mov rdx, qword [rcx]
mov r8, qword [rdx + 0x460]
mov rdx, qword [r14 + 0x160]
call r8
mov rdi, qword [r14 + 0xb8]
mov rcx, qword [rdi]
mov rbx, qword [rcx + 0x58]
xorps xmm0, xmm0
movups xmmword [rbp - 0x41], xmm0
mov qword [rbp - 0x31], 0
mov qword [rbp - 0x29], reloc.WSOCK32.dll_ntohs
mov byte [rbp - 0x41], 0
movups xmmword [rbp - 0x19], xmm0
mov qword [rbp - 9], 0
mov qword [rbp - 1], reloc.WSOCK32.dll_ntohs
mov ecx, 0x20
call fcn.140239a18
mov qword [rbp - 0x19], rax
mov qword [rbp - 9], 0x18
mov qword [rbp - 1], 0x1f
movups xmm0, xmmword [str..._gamedata_Weapons.data]
movups xmmword [rax], xmm0
movsd xmm1, qword [0x1402707f0]
movsd qword [rax + 0x10], xmm1
mov byte [rax + 0x18], 0
lea r8, [rbp - 0x41]
lea rdx, [rbp - 0x19]
mov rcx, rdi
call rbx
mov rbx, rax
mov rdx, qword [rbp - 1]
cmp rdx, 0x10
jb 0x1401f99ac
inc rdx
mov rcx, qword [rbp - 0x19]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401f99a7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1401f99a7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140239a54
xor edi, edi
mov qword [rbp - 9], rdi
mov qword [rbp - 1], reloc.WSOCK32.dll_ntohs
mov byte [rbp - 0x19], dil
mov rdx, qword [rbp - 0x29]
cmp rdx, 0x10
jb 0x1401f99fc
inc rdx
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401f99f7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1401f99f7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140239a54
mov qword [rbp - 0x31], rdi
mov qword [rbp - 0x29], reloc.WSOCK32.dll_ntohs
mov byte [rbp - 0x41], 0
cmp byte [r14 + 0x3b4], 0
jne 0x1401f9a24
mov rax, qword [rbx]
mov edx, 3
mov rcx, rbx
call qword [rax + 0x28]
mov rcx, qword [r14 + 0xa0]
mov rax, qword [rcx]
mov byte [rsp + 0x28], 1
mov byte [rsp + 0x20], 0
mov r9, r12
mov r8, rsi
mov rdx, rbx
call qword [rax + 0x428]
mov r14, rax
mov rax, qword [rbx + 8]
movsxd rcx, dword [rax + 4]
add rcx, 8
add rcx, rbx
add dword [rcx + 8], 0xffffffff
jne 0x1401f9a69
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov rcx, qword [rbp - 0x79]
mov rcx, qword [rcx + 0xa0]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + 0x460]
mov r13, qword [rbp - 0x79]
test r14, r14
jne 0x1401f9b10
mov rcx, qword [r13 + 0x90]
mov rax, qword [rcx]
call qword [rax + 0x58]
mov rbx, rax
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x30]
mov rax, qword [r12 + 0x10]
movabs rcx, 0x7fffffffffffffff
sub rcx, rax
cmp rcx, 0x23
jb 0x1401f9e52
cmp qword [r12 + 0x18], 0x10
jb 0x1401f9acc
mov r12, qword [r12]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], 0x23
lea r9, str.Error_could_not_load_weapon_mesh_:
lea rcx, [rbp - 0x41]
call fcn.140039930
nop
mov r8d, 0xffffffff
lea rdx, [rbp - 0x41]
mov rcx, rbx
call rdi
nop
lea rcx, [rbp - 0x41]
call fcn.1400075a0
xor eax, eax
jmp 0x1401f9e2c
mov qword [rbp - 0x51], r14
mov rbx, qword [r13 + 0xa0]
mov rax, qword [rbx]
mov rdi, qword [rax + 0x430]
lea r9, [r15 + 0x80]
mov rcx, qword [r9 + 0x10]
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 0xb
jb 0x1401f9e58
cmp qword [r9 + 0x18], 0x10
jb 0x1401f9b51
mov r9, qword [r9]
mov qword [rsp + 0x30], recv
lea rax, str._Player.acm
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rbp - 0x41]
call fcn.140039930
nop
lea rdx, [rbp - 0x41]
mov rcx, rbx
call rdi
mov rsi, rax
lea rcx, [rbp - 0x41]
call fcn.1400075a0
test rsi, rsi
jne 0x1401f9c50
mov rcx, qword [r13 + 0x90]
mov rax, qword [rcx]
call qword [rax + 0x58]
mov rdi, rax
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x30]
xorps xmm0, xmm0
movups xmmword [rbp - 0x41], xmm0
mov qword [rbp - 0x31], rsi
mov qword [rbp - 0x29], reloc.WSOCK32.dll_ntohs
lea ecx, [rsi + 0x30]
call fcn.140239a18
mov qword [rbp - 0x41], rax
mov qword [rbp - 0x31], 0x22
mov qword [rbp - 0x29], 0x2f
movups xmm0, xmmword [str.Error_could_not_load_weapon_mesh_2]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140289058]
movups xmmword [rax + 0x10], xmm1
movzx ecx, word [0x140289068]
mov word [rax + 0x20], cx
mov byte [rax + 0x22], sil
lea r8d, [rsi - 1]
lea rdx, [rbp - 0x41]
mov rcx, rdi
call rbx
nop
mov rdx, qword [rbp - 0x29]
cmp rdx, 0x10
jb 0x1401f9c49
inc rdx
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401f9c44
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1401f9c44
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140239a54
xor eax, eax
jmp 0x1401f9e2c
xor r15d, r15d
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x78]
test eax, eax
je 0x1401f9dfc
xor edi, edi
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x78]
test eax, eax
je 0x1401f9cea
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rsi]
mov rdx, rdi
mov rcx, rsi
call qword [rax + 0x90]
lea rbx, [rax + 0x10]
mov rax, qword [r14]
mov rdx, r15
mov rcx, r14
call qword [rax + 0x90]
lea rcx, [rax + 0x10]
mov rax, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0x10
jb 0x1401f9cb4
mov rbx, qword [rbx]
mov r8, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 0x10
jb 0x1401f9cc2
mov rcx, qword [rcx]
cmp r8, rax
jne 0x1401f9cd7
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1401f9de5
inc rdi
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x78]
mov eax, eax
cmp rdi, rax
jb 0x1401f9c80
mov rax, qword [r14]
mov rdx, r15
mov rcx, r14
call qword [rax + 0x90]
mov rbx, rax
mov rcx, qword [r14]
mov r8, qword [rcx + 0x90]
mov rdx, r15
mov rcx, r14
call r8
add rax, 0x10
mov rdx, qword [rax + 0x10]
mov r8, qword [r12 + 0x10]
movabs rcx, 0x7fffffffffffffff
sub rcx, rdx
cmp rcx, r8
jb 0x1401f9e4c
cmp qword [rax + 0x18], 0x10
jb 0x1401f9d3c
mov rax, qword [rax]
mov rcx, r12
cmp qword [r12 + 0x18], 0x10
jb 0x1401f9d4b
mov rcx, qword [r12]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdx
mov r9, rax
lea rcx, [rbp - 0x71]
call fcn.140039930
lea rax, [rbp - 0x71]
mov qword [rbp - 0x49], rax
lea rcx, [rbx + 0x10]
lea rax, [rbp - 0x71]
cmp rcx, rax
je 0x1401f9d92
lea rdx, [rbp - 0x71]
cmp qword [rbp - 0x59], 0x10
cmovae rdx, qword [rbp - 0x71]
mov r8, qword [rbp - 0x61]
call fcn.140007620
lea r8, [rbp - 0x71]
cmp qword [rbp - 0x59], 0x10
cmovae r8, qword [rbp - 0x71]
movabs rcx, 0xcbf29ce484222325
xor edx, edx
mov r9, qword [rbp - 0x61]
test r9, r9
je 0x1401f9dd8
movabs r13, 0x100000001b3
nop
movzx eax, byte [rdx + r8]
xor rcx, rax
imul rcx, r13
inc rdx
cmp rdx, r9
jb 0x1401f9dc0
mov r13, qword [rbp - 0x79]
mov qword [rbx + 0x30], rcx
lea rcx, [rbp - 0x71]
call fcn.1400075a0
inc r15
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x78]
mov eax, eax
cmp r15, rax
jb 0x1401f9c64
lea rcx, [r13 + 0x4a0]
mov rdx, qword [r13 + 0x4a8]
cmp rdx, qword [r13 + 0x4b0]
je 0x1401f9e20
mov qword [rdx], r14
add qword [r13 + 0x4a8], 8
jmp 0x1401f9e29
lea r8, [rbp - 0x51]
call fcn.14002a1b0
mov rax, r14
mov rcx, qword [rbp + 7]
xor rcx, rsp
call fcn.140239760
add rsp, 0xd8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140002b20
int3
call fcn.140002b20
int3
call fcn.140002b20
int3