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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x168]
sub rsp, 0x228
vmovaps xmmword [rax - 0x58], xmm6
vmovaps xmmword [rax - 0x68], xmm7
vmovaps xmmword [rax - 0x78], xmm8
mov rsi, rdx
mov rdi, qword [0x18023f798]
mov rbx, qword [0x18023f790]
cmp rbx, rdi
je 0x18016b3b8
nop word [rax + rax]
lea rcx, [rbx + 0x20]
call fcn.1800fd1d0
mov rcx, rbx
call fcn.1800fd1d0
add rbx, 0x50
cmp rbx, rdi
jne 0x18016b390
mov rax, qword [0x18023f790]
mov qword [0x18023f798], rax
xor edi, edi
mov dword [rbp + 0x170], edi
lea r8, [rbp + 0x170]
lea rdx, [rbp]
lea rcx, [0x18023d900]
call fcn.1800c8090
mov rcx, qword [rax]
mov r13, qword [rcx + 0x18]
mov rax, qword [rcx + 0x20]
mov qword [rbp], rax
cmp r13, rax
je 0x18016bdfb
mov r12d, dword [0x18024256c]
mov qword [rbp - 0x58], r12
movabs rbx, 0x100000001b3
movabs r14, 0xcbf29ce484222325
vxorps xmm7, xmm7, xmm7
vmovss xmm8, dword [0x180218a34]
nop word [rax + rax]
mov r15, qword [r13]
mov rcx, r15
call fcn.1800bcf40
cmp byte [rax], 0
je 0x18016be36
mov rcx, r15
call fcn.18016b240
mov rcx, qword [0x180243ec0]
mov rdx, qword [rcx]
mov r8, qword [rdx + 0x20]
mov eax, dword [rax]
mov dword [rbp + 0x170], eax
lea rdx, [rbp + 0x170]
call r8
cmp rax, rsi
jne 0x18016be36
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], 7
mov word [rsp + 0x30], di
mov rcx, r15
call fcn.18016b140
mov edx, dword [rax]
sub edx, 1
je 0x18016b5e8
sub edx, 1
je 0x18016b59c
sub edx, 2
je 0x18016b54a
cmp edx, 1
je 0x18016b4f8
mov rdx, qword [rsp + 0x48]
cmp rdx, 7
jbe 0x18016bded
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18016b4ee
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18016bf78
call fcn.18019051c
jmp 0x18016bded
mov rax, qword [rsp + 0x48]
cmp rax, 3
jb 0x18016b539
lea rbx, [rsp + 0x30]
cmp rax, 7
cmova rbx, qword [rsp + 0x30]
mov qword [rsp + 0x40], 3
mov r8d, 6
lea rdx, [0x180213d78]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov word [rbx + 6], di
jmp 0x18016b63c
lea r9, [0x180213d78]
mov edx, 3
jmp 0x18016b632
mov rax, qword [rsp + 0x48]
cmp rax, 3
jb 0x18016b58b
lea rbx, [rsp + 0x30]
cmp rax, 7
cmova rbx, qword [rsp + 0x30]
mov qword [rsp + 0x40], 3
mov r8d, 6
lea rdx, [0x180213d80]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov word [rbx + 6], di
jmp 0x18016b63c
lea r9, [0x180213d80]
mov edx, 3
jmp 0x18016b632
mov rax, qword [rsp + 0x48]
cmp rax, 9
jb 0x18016b5da
lea rbx, [rsp + 0x30]
cmp rax, 7
cmova rbx, qword [rsp + 0x30]
mov qword [rsp + 0x40], 9
mov r8d, 0x12
lea rdx, str.Freezecam
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov word [rbx + 0x12], di
jmp 0x18016b63c
lea r9, str.Freezecam
mov edx, 9
jmp 0x18016b632
mov rax, qword [rsp + 0x48]
cmp rax, 8
jb 0x18016b626
lea rbx, [rsp + 0x30]
cmp rax, 7
cmova rbx, qword [rsp + 0x30]
mov qword [rsp + 0x40], 8
mov r8d, 0x10
lea rdx, str.Deathcam
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov word [rbx + 0x10], di
jmp 0x18016b63c
lea r9, str.Deathcam
mov edx, 8
lea rcx, [rsp + 0x30]
call fcn.1801332b0
mov r14d, edi
vmovaps xmm6, xmm7
mov rbx, qword [0x18023d8f0]
test rbx, rbx
je 0x18016b756
lea rcx, [r15 + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov edi, eax
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax + r12*8]
mov edx, dword [rdx + rcx]
cmp dword [0x180244520], edx
jle 0x18016b722
lea rcx, [0x180244520]
call fcn.1801905cc
cmp dword [0x180244520], 0xffffffff
jne 0x18016b722
mov rcx, qword [0x180243e98]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
xor r11d, r11d
test rax, rax
je 0x18016b70d
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], r11b
jne 0x18016b6c2
mov rdx, r11
test rcx, rcx
je 0x18016b704
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r8 + rdx]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x18016b6e0
cmp r9d, 0x3369e751
je 0x18016b7f1
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x18016b6b1
mov eax, r11d
mov dword [0x18024452c], eax
lea rcx, [0x180244520]
call fcn.180190560
lea eax, [rdi*4]
cdqe
movsxd rdx, dword [0x18024452c]
add rax, rbx
vmovss xmm6, dword [rdx + rax]
mov rax, qword [0x180243f18]
vsubss xmm0, xmm6, dword [rax + 0xc]
vcvttss2si r14d, xmm0
test r14d, r14d
mov edi, 0
cmovs r14d, edi
xor r12b, r12b
lea rcx, [r15 + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov r8d, eax
shr eax, 8
movzx edx, al
movzx eax, r8b
movabs rcx, 0xcbf29ce484222325
xor rax, rcx
movabs r9, 0x100000001b3
imul rax, r9
xor rdx, rax
imul rdx, r9
mov eax, r8d
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov eax, r8d
shr rax, 0x18
xor rdx, rax
imul rdx, r9
mov rcx, qword [0x18023f7d8]
and rcx, rdx
add rcx, rcx
mov rdx, qword [0x18023f7c0]
mov rax, qword [rdx + rcx*8 + 8]
cmp rax, qword [0x18023f7b0]
je 0x18016b806
mov rcx, qword [rdx + rcx*8]
cmp r8d, dword [rax + 0x10]
je 0x18016b809
nop dword [rax]
cmp rax, rcx
je 0x18016b806
mov rax, qword [rax + 8]
cmp r8d, dword [rax + 0x10]
jne 0x18016b7e0
jmp 0x18016b809
lea r8, str.m_flNextRespawnTime
mov rdx, qword [r10 + 0x18]
call fcn.180190160
jmp 0x18016b710
mov rax, rdi
test rax, rax
jne 0x18016b83e
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x48]
mov dword [rbp + 0x180], eax
lea r8, [rbp + 0x180]
lea rdx, [rbp + 0x10]
lea rcx, [0x18023f7a8]
call fcn.18014a270
mov rcx, qword [rax]
vmovss dword [rcx + 0x14], xmm6
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x48]
mov dword [rbp + 0x188], eax
lea r8, [rbp + 0x188]
lea rdx, [rbp + 0x20]
lea rcx, [0x18023f7a8]
call fcn.18014a270
mov rcx, qword [rax]
vaddss xmm1, xmm8, dword [rcx + 0x14]
vcomiss xmm6, xmm1
jbe 0x18016b8a5
mov r12b, 1
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x48]
mov dword [rsp + 0x70], eax
lea r8, [rsp + 0x70]
lea rdx, [rbp + 0x30]
lea rcx, [0x18023f7a8]
call fcn.18014a270
mov rcx, qword [rax]
mov dword [rcx + 0x14], 0xbf800000
vpxor xmm0, xmm0, xmm0
xor eax, eax
vmovups ymmword [rbp + 0x60], ymm0
vmovups ymmword [rbp + 0x80], ymm0
vmovups ymmword [rbp + 0xa0], ymm0
vmovups ymmword [rbp + 0xc0], ymm0
mov dword [rbp + 0xe0], eax
mov rax, qword [0x180243ed8]
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x40]
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
vzeroupper
call qword [rax + 0x48]
lea r8, [rbp + 0x60]
mov edx, eax
mov rcx, qword [0x180243ed8]
call rbx
test al, al
je 0x18016bd91
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x78], xmm0
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x60], rdi
lea rax, [rbp + 0x60]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x18016b920
lea rdx, [rbp + 0x60]
lea rcx, [rbp - 0x78]
call fcn.18009aed0
nop
lea r8, [rbp - 0x78]
cmp qword [rbp - 0x60], 0xf
cmova r8, qword [rbp - 0x78]
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
xor edx, edx
mov ecx, 0xfde9
mov r9d, 0xffffffff
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rdi
mov r8, rbx
lea rcx, [rsp + 0x50]
call fcn.18018ddd0
lea rcx, [rsp + 0x50]
cmp qword [rsp + 0x68], 7
cmova rcx, qword [rsp + 0x50]
lea r8, [rbp - 0x78]
cmp qword [rbp - 0x60], 0xf
cmova r8, qword [rbp - 0x78]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rcx
xor edx, edx
mov ecx, 0xfde9
mov r9d, 0xffffffff
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 0xf
jbe 0x18016b9fd
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18016b9f8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18016bf63
call fcn.18019051c
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x60], 0xf
mov byte [rbp - 0x78], 0
cmp byte [0x18024d6d1], 0
je 0x18016bb65
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x48]
mov dword [rsp + 0x78], eax
lea r8, [rsp + 0x78]
lea rdx, [rbp + 0x40]
lea rcx, [0x18023d980]
call fcn.1800e0860
mov rcx, qword [rax]
cmp byte [rcx + 0x14], 0
je 0x18016ba99
mov rax, qword [rsp + 0x68]
cmp rax, 6
jb 0x18016ba88
lea rbx, [rsp + 0x50]
cmp rax, 7
cmova rbx, qword [rsp + 0x50]
mov qword [rsp + 0x60], 6
mov r8d, 0xc
lea rdx, str.Friend
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov word [rbx + 0xc], di
jmp 0x18016bb65
lea r9, str.Friend
mov edx, 6
jmp 0x18016bb5b
mov rcx, r15
call fcn.1800bdde0
mov ebx, dword [rax]
mov rcx, rsi
call fcn.1800bdde0
cmp ebx, dword [rax]
je 0x18016bafb
mov rax, qword [rsp + 0x68]
cmp rax, 5
jb 0x18016baed
lea rbx, [rsp + 0x50]
cmp rax, 7
cmova rbx, qword [rsp + 0x50]
mov qword [rsp + 0x60], 5
mov r8d, 0xa
lea rdx, str.Enemy
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov word [rbx + 0xa], di
jmp 0x18016bb65
lea r9, str.Enemy
mov edx, 5
jmp 0x18016bb5b
mov rcx, r15
call fcn.1800bdde0
mov ebx, dword [rax]
mov rcx, rsi
call fcn.1800bdde0
cmp ebx, dword [rax]
jne 0x18016bb65
mov rax, qword [rsp + 0x68]
cmp rax, 8
jb 0x18016bb4f
lea rbx, [rsp + 0x50]
cmp rax, 7
cmova rbx, qword [rsp + 0x50]
mov qword [rsp + 0x60], 8
mov r8d, 0x10
lea rdx, str.Teammate
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov word [rbx + 0x10], di
jmp 0x18016bb65
lea r9, str.Teammate
mov edx, 8
lea rcx, [rsp + 0x50]
call fcn.1801332b0
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x50]
call fcn.1800fcdc0
nop
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x18], rdi
mov rdi, qword [rsp + 0x40]
lea rsi, [rsp + 0x30]
cmp qword [rsp + 0x48], 7
cmova rsi, qword [rsp + 0x30]
movabs rax, 0x7ffffffffffffffe
cmp rdi, rax
ja 0x18016bf7f
cmp rdi, 7
ja 0x18016bbce
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x18], 7
vmovups xmm0, xmmword [rsi]
vmovups xmmword [rbp - 0x30], xmm0
jmp 0x18016bc79
mov rbx, rdi
or rbx, 7
cmp rbx, rax
jbe 0x18016bc23
mov rbx, rax
movabs rax, 0x7fffffffffffffff
lea rcx, [rax + rax]
cmp rcx, 0x1000
jb 0x18016bc54
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18016bf85
mov rcx, rax
call fcn.180190644
mov rcx, rax
test rax, rax
je 0x18016bf6a
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x18016bc59
cmp rbx, 0xa
mov eax, 0xa
cmovb rbx, rax
lea rcx, [rbx + 1]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x18016bf85
add rcx, rcx
jne 0x18016bbeb
xor r11d, r11d
mov eax, r11d
jmp 0x18016bc59
call fcn.180190644
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x18], rbx
lea r8, [rdi*2 + 2]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
nop
mov dword [rbp - 0x10], r14d
mov byte [rbp - 0xc], r12b
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x48]
mov dword [rbp - 0x80], eax
lea r8, [rbp - 0x80]
lea rdx, [rbp + 0x50]
lea rcx, [0x18023d980]
call fcn.1800e0860
mov rcx, qword [rax]
movzx ebx, byte [rcx + 0x14]
mov byte [rbp - 0xb], bl
mov rcx, r15
call fcn.1800bdde0
mov edi, dword [rax]
mov dword [rbp - 8], edi
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x48]
mov dword [rbp - 4], eax
mov rdx, qword [0x18023f798]
cmp rdx, qword [0x18023f7a0]
je 0x18016bd28
vmovups ymm0, ymmword [rbp - 0x50]
vmovups ymmword [rdx], ymm0
xor ecx, ecx
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], 7
mov word [rbp - 0x50], cx
vmovups ymm0, ymmword [rbp - 0x30]
vmovups ymmword [rdx + 0x20], ymm0
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x18], 7
mov word [rbp - 0x30], cx
mov dword [rdx + 0x40], r14d
mov byte [rdx + 0x44], r12b
mov byte [rdx + 0x45], bl
mov dword [rdx + 0x48], edi
mov dword [rdx + 0x4c], eax
add qword [0x18023f798], 0x50
jmp 0x18016bd32
lea r8, [rbp - 0x50]
call fcn.18016c480
nop
lea rcx, [rbp - 0x30]
vzeroupper
call fcn.1800fd1d0
lea rcx, [rbp - 0x50]
call fcn.1800fd1d0
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 7
jbe 0x18016bd8a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18016bd85
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18016bf71
call fcn.18019051c
mov rsi, qword [rbp + 0x178]
mov rdx, qword [rsp + 0x48]
cmp rdx, 7
jbe 0x18016bdd3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18016bdce
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18016bf78
call fcn.18019051c
movabs r14, 0xcbf29ce484222325
movabs rbx, 0x100000001b3
xor edi, edi
mov r12, qword [rbp - 0x58]
add r13, 8
cmp r13, qword [rbp]
jne 0x18016b420
mov rax, qword [0x18023f798]
cmp qword [0x18023f790], rax
setne al
lea r11, [rsp + 0x228]
vmovaps xmm6, xmmword [r11 - 0x18]
vmovaps xmm7, xmmword [r11 - 0x28]
vmovaps xmm8, xmmword [r11 - 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rcx, [r15 + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov r8d, eax
movzx edx, al
xor rdx, r14
imul rdx, rbx
shr eax, 8
movzx ecx, al
xor rdx, rcx
imul rdx, rbx
mov eax, r8d
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, rbx
mov eax, r8d
shr rax, 0x18
xor rdx, rax
imul rdx, rbx
mov r9, qword [0x18023f7d8]
mov rcx, r9
and rcx, rdx
add rcx, rcx
mov r11, qword [0x18023f7c0]
mov rax, qword [r11 + rcx*8 + 8]
mov r10, qword [0x18023f7b0]
cmp rax, r10
je 0x18016bec1
mov rcx, qword [r11 + rcx*8]
cmp r8d, dword [rax + 0x10]
je 0x18016bec4
nop word [rax + rax]
cmp rax, rcx
je 0x18016bec1
mov rax, qword [rax + 8]
cmp r8d, dword [rax + 0x10]
jne 0x18016beb0
jmp 0x18016bec4
mov rax, rdi
mov rcx, r10
test rax, rax
cmovne rcx, rax
cmp rcx, r10
je 0x18016bded
movzx edx, byte [rcx + 0x10]
xor rdx, r14
imul rdx, rbx
movzx eax, byte [rcx + 0x11]
xor rdx, rax
imul rdx, rbx
movzx eax, byte [rcx + 0x12]
xor rdx, rax
imul rdx, rbx
movzx eax, byte [rcx + 0x13]
xor rdx, rax
imul rdx, rbx
and r9, rdx
add r9, r9
mov rax, qword [r11 + r9*8]
cmp qword [r11 + r9*8 + 8], rcx
jne 0x18016bf2f
cmp rax, rcx
jne 0x18016bf24
mov qword [r11 + r9*8], r10
mov qword [r11 + r9*8 + 8], r10
jmp 0x18016bf3b
mov r10, qword [rcx + 8]
mov qword [r11 + r9*8 + 8], r10
jmp 0x18016bf3b
cmp rax, rcx
jne 0x18016bf3b
mov rax, qword [rcx]
mov qword [r11 + r9*8], rax
mov rdx, qword [rcx]
dec qword [0x18023f7b8]
mov rax, qword [rcx + 8]
mov qword [rax], rdx
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov edx, 0x18
call fcn.18019051c
jmp 0x18016bded
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.180071fa0
int3
call fcn.180071f00
int3