Function at 0x180173f20
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
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
mov rsi, rdx
mov rdi, qword [0x180291508]
mov rbx, qword [0x180291500]
cmp rbx, rdi
je 0x180173f98
nop dword [rax + rax]
lea rcx, [rbx + 0x20]
call fcn.1800ffdb0
mov rcx, rbx
call fcn.1800ffdb0
add rbx, 0x50
cmp rbx, rdi
jne 0x180173f70
mov rax, qword [0x180291500]
mov qword [0x180291508], rax
xor edi, edi
mov dword [rbp + 0x170], edi
lea r8, [rbp + 0x170]
lea rdx, [rbp]
lea rcx, [0x18028f650]
call fcn.1800c9360
mov rcx, qword [rax]
mov r13, qword [rcx + 0x18]
mov rax, qword [rcx + 0x20]
mov qword [rbp], rax
cmp r13, rax
je 0x180174a3d
mov r12d, dword [0x18029475c]
mov qword [rbp - 0x58], r12
movabs rbx, 0x100000001b3
movabs r14, 0xcbf29ce484222325
xorps xmm7, xmm7
movss xmm8, dword [0x1802631e8]
nop word [rax + rax]
mov r15, qword [r13]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x410]
test al, al
jne 0x180174a75
mov rcx, r15
call fcn.180173e20
mov rcx, qword [0x180297150]
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 0x180174a75
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], 7
mov word [rsp + 0x30], di
mov rcx, r15
call fcn.180173d20
mov edx, dword [rax]
sub edx, 1
je 0x1801741c9
sub edx, 1
je 0x18017417d
sub edx, 2
je 0x18017412b
cmp edx, 1
je 0x1801740d9
mov rdx, qword [rsp + 0x48]
cmp rdx, 7
jbe 0x180174a2f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801740cf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180174ba9
call fcn.180199c38
jmp 0x180174a2f
mov rax, qword [rsp + 0x48]
cmp rax, 3
jb 0x18017411a
lea rbx, [rsp + 0x30]
cmp rax, 7
cmova rbx, qword [rsp + 0x30]
mov qword [rsp + 0x40], 3
mov r8d, 6
lea rdx, [0x18025e298]
mov rcx, rbx
call fcn.1801cf8e0
mov word [rbx + 6], di
jmp 0x18017421d
lea r9, [0x18025e298]
mov edx, 3
jmp 0x180174213
mov rax, qword [rsp + 0x48]
cmp rax, 3
jb 0x18017416c
lea rbx, [rsp + 0x30]
cmp rax, 7
cmova rbx, qword [rsp + 0x30]
mov qword [rsp + 0x40], 3
mov r8d, 6
lea rdx, [0x18025e2c8]
mov rcx, rbx
call fcn.1801cf8e0
mov word [rbx + 6], di
jmp 0x18017421d
lea r9, [0x18025e2c8]
mov edx, 3
jmp 0x180174213
mov rax, qword [rsp + 0x48]
cmp rax, 9
jb 0x1801741bb
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 fcn.1801cf8e0
mov word [rbx + 0x12], di
jmp 0x18017421d
lea r9, str.Freezecam
mov edx, 9
jmp 0x180174213
mov rax, qword [rsp + 0x48]
cmp rax, 8
jb 0x180174207
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 fcn.1801cf8e0
mov word [rbx + 0x10], di
jmp 0x18017421d
lea r9, str.Deathcam
mov edx, 8
lea rcx, [rsp + 0x30]
call fcn.18013c220
mov r14d, edi
movaps xmm6, xmm7
mov rbx, qword [0x18028f640]
test rbx, rbx
je 0x18017433a
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 [0x1802977c8], edx
jle 0x180174302
lea rcx, [0x1802977c8]
call fcn.180199ce8
cmp dword [0x1802977c8], 0xffffffff
jne 0x180174302
mov rcx, qword [0x180297128]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
xor r11d, r11d
test rax, rax
je 0x1801742ed
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], r11b
jne 0x1801742a2
mov rdx, r11
test rcx, rcx
je 0x1801742e4
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [rdx + r8]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1801742c0
cmp r9d, 0x3369e751
je 0x1801743d1
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180174291
mov eax, r11d
mov dword [0x1802977d4], eax
lea rcx, [0x1802977c8]
call fcn.180199c7c
lea eax, [rdi*4]
cdqe
movsxd rdx, dword [0x1802977d4]
add rax, rbx
movss xmm6, dword [rdx + rax]
movaps xmm0, xmm6
mov rax, qword [0x1802971a8]
subss xmm0, dword [rax + 0xc]
cvttss2si 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 [0x180291548]
and rcx, rdx
add rcx, rcx
mov rdx, qword [0x180291530]
mov rax, qword [rdx + rcx*8 + 8]
cmp rax, qword [0x180291520]
je 0x1801743e6
mov rcx, qword [rdx + rcx*8]
cmp r8d, dword [rax + 0x10]
je 0x1801743e9
cmp rax, rcx
je 0x1801743e6
mov rax, qword [rax + 8]
cmp r8d, dword [rax + 0x10]
jne 0x1801743c0
jmp 0x1801743e9
lea r8, str.m_flNextRespawnTime
mov rdx, qword [r10 + 0x18]
call fcn.180199880
jmp 0x1801742f0
mov rax, rdi
test rax, rax
jne 0x180174421
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 + 0xa0]
lea rcx, [0x180291518]
call fcn.180153030
mov rcx, qword [rax]
movss 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 + 0xb0]
lea rcx, [0x180291518]
call fcn.180153030
mov rcx, qword [rax]
movss xmm0, dword [rcx + 0x14]
addss xmm0, xmm8
comiss xmm6, xmm0
jbe 0x180174492
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 + 0xc0]
lea rcx, [0x180291518]
call fcn.180153030
mov rcx, qword [rax]
mov dword [rcx + 0x14], 0xbf800000
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
mov dword [rbp + 0x90], eax
mov rax, qword [0x180297168]
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x40]
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x48]
lea r8, [rbp + 0x10]
mov edx, eax
mov rcx, qword [0x180297168]
call rbx
test al, al
je 0x1801749d3
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x60], rdi
lea rax, [rbp + 0x10]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x180174510
lea rdx, [rbp + 0x10]
lea rcx, [rbp - 0x78]
call fcn.18009c230
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
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rdi
mov r8, rbx
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.180197510
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 0x1801745ed
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801745e8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180174baf
call fcn.180199c38
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x60], 0xf
mov byte [rbp - 0x78], 0
cmp byte [0x1802a0aa1], 0
je 0x1801747a0
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 + 0xd0]
lea rcx, [0x18028f6d0]
call fcn.1800e1e40
mov rcx, qword [rax]
cmp byte [rcx + 0x14], 0
je 0x180174687
mov rax, qword [rsp + 0x68]
cmp rax, 6
jb 0x18017467b
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 fcn.1801cf8e0
mov word [rbx + 0xc], di
jmp 0x1801747a0
lea r9, str.Friend
jmp 0x180174791
mov rcx, r15
call fcn.1800bed50
mov ebx, dword [rax]
mov rcx, rsi
call fcn.1800bed50
cmp ebx, dword [rax]
je 0x1801746ef
mov rax, qword [rsp + 0x68]
cmp rax, 5
jb 0x1801746de
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 fcn.1801cf8e0
mov word [rbx + 0xa], di
jmp 0x1801747a0
lea r9, str.Enemy
mov edx, 5
jmp 0x180174796
mov rcx, r15
call fcn.1800bed50
mov ebx, dword [rax]
mov rcx, rsi
call fcn.1800bed50
cmp ebx, dword [rax]
mov rax, qword [rsp + 0x68]
jne 0x180174751
cmp rax, 8
jb 0x180174743
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 fcn.1801cf8e0
mov word [rbx + 0x10], di
jmp 0x1801747a0
lea r9, str.Teammate
mov edx, 8
jmp 0x180174796
cmp rax, 6
jb 0x18017478a
lea rbx, [rsp + 0x50]
cmp rax, 7
cmova rbx, qword [rsp + 0x50]
mov qword [rsp + 0x60], 6
mov r8d, 0xc
lea rdx, str.Player
mov rcx, rbx
call fcn.1801cf8e0
mov word [rbx + 0xc], di
jmp 0x1801747a0
lea r9, str.Player
mov edx, 6
lea rcx, [rsp + 0x50]
call fcn.18013c220
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x50]
call fcn.1800fe9b0
nop
xorps xmm0, xmm0
movups 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 0x180174ba3
cmp rdi, 7
ja 0x180174805
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x18], 7
movups xmm6, xmmword [rsi]
movups xmmword [rbp - 0x30], xmm6
jmp 0x1801748b3
mov rbx, rdi
or rbx, 7
cmp rbx, rax
jbe 0x18017485a
mov rbx, rax
movabs rax, 0x7fffffffffffffff
lea rcx, [rax + rax]
cmp rcx, 0x1000
jb 0x18017488b
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180174bc1
mov rcx, rax
call fcn.180199d60
mov rcx, rax
test rax, rax
je 0x180174bb5
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x180174890
cmp rbx, 0xa
mov eax, 0xa
cmovb rbx, rax
lea rcx, [rbx + 1]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x180174bc1
add rcx, rcx
jne 0x180174822
xor r11d, r11d
mov eax, r11d
jmp 0x180174890
call fcn.180199d60
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 fcn.1801cf8e0
movups xmm6, xmmword [rbp - 0x30]
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 + 0xe0]
lea rcx, [0x18028f6d0]
call fcn.1800e1e40
mov rcx, qword [rax]
movzx ebx, byte [rcx + 0x14]
mov byte [rbp - 0xb], bl
mov rcx, r15
call fcn.1800bed50
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 [0x180291508]
cmp rdx, qword [0x180291510]
je 0x18017496d
movups xmm0, xmmword [rbp - 0x50]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rbp - 0x40]
movups xmmword [rdx + 0x10], xmm1
xor ecx, ecx
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], 7
mov word [rbp - 0x50], cx
movups xmmword [rdx + 0x20], xmm6
movups xmm0, xmmword [rbp - 0x20]
movups xmmword [rdx + 0x30], xmm0
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 [0x180291508], 0x50
jmp 0x180174977
lea r8, [rbp - 0x50]
call fcn.1801750c0
nop
lea rcx, [rbp - 0x30]
call fcn.1800ffdb0
lea rcx, [rbp - 0x50]
call fcn.1800ffdb0
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 7
jbe 0x1801749cc
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801749c7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180174bbb
call fcn.180199c38
mov rsi, qword [rbp + 0x178]
mov rdx, qword [rsp + 0x48]
cmp rdx, 7
jbe 0x180174a15
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180174a10
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180174ba9
call fcn.180199c38
movabs r14, 0xcbf29ce484222325
movabs rbx, 0x100000001b3
xor edi, edi
mov r12, qword [rbp - 0x58]
add r13, 8
cmp r13, qword [rbp]
jne 0x180174000
mov rax, qword [0x180291508]
cmp qword [0x180291500], rax
setne al
lea r11, [rsp + 0x228]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps 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
shr eax, 8
movzx edx, al
movzx eax, r8b
xor rax, r14
imul rax, rbx
xor rdx, rax
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 [0x180291548]
mov rcx, r9
and rcx, rdx
add rcx, rcx
mov r11, qword [0x180291530]
mov rax, qword [r11 + rcx*8 + 8]
mov r10, qword [0x180291520]
cmp rax, r10
je 0x180174b01
mov rcx, qword [r11 + rcx*8]
cmp r8d, dword [rax + 0x10]
je 0x180174b04
nop word [rax + rax]
cmp rax, rcx
je 0x180174b01
mov rax, qword [rax + 8]
cmp r8d, dword [rax + 0x10]
jne 0x180174af0
jmp 0x180174b04
mov rax, rdi
mov rcx, r10
test rax, rax
cmovne rcx, rax
cmp rcx, r10
je 0x180174a2f
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 0x180174b6f
cmp rax, rcx
jne 0x180174b64
mov qword [r11 + r9*8], r10
mov qword [r11 + r9*8 + 8], r10
jmp 0x180174b7b
mov r10, qword [rcx + 8]
mov qword [r11 + r9*8 + 8], r10
jmp 0x180174b7b
cmp rax, rcx
jne 0x180174b7b
mov rax, qword [rcx]
mov qword [r11 + r9*8], rax
mov rdx, qword [rcx]
dec qword [0x180291528]
mov rax, qword [rcx + 8]
mov qword [rax], rdx
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov edx, 0x18
call fcn.180199c38
jmp 0x180174a2f
call fcn.180072ac0
nop
call fcn.1801afdbc
nop
call fcn.1801afdbc
nop
call fcn.1801afdbc
nop
call fcn.1801afdbc
nop
call fcn.180072a20
int3