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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov dword [rsp + 0x10], edx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x20
movsxd r12, r8d
mov ebx, edx
mov rcx, qword [0x1802a33a8]
call fcn.180160e80
cmp dword [rax], r12d
je 0x180161632
lea ebx, [rbx + r12*8]
mov rdi, qword [0x1802a33a8]
mov ecx, dword [0x18028ab2c]
mov rax, qword gs:[0x58]
mov rbp, qword [rax + rcx*8]
mov eax, 4
mov r14d, eax
xor esi, esi
mov r15, 0xffffffffffffffff
mov eax, dword [rax + rbp]
cmp dword [0x18028cc34], eax
jle 0x180161531
lea rcx, [0x18028cc34]
call fcn.1801d1cb0
cmp dword [0x18028cc34], r15d
jne 0x180161531
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18016151d
mov r8, qword [r10 + 0x10]
mov r9d, 0x811c9dc5
mov rdx, r15
nop dword [rax]
inc rdx
cmp byte [r8 + rdx], 0
jne 0x1801614d0
mov rcx, rsi
test rdx, rdx
je 0x180161514
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r8 + rcx]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rcx
cmp rcx, rdx
jb 0x1801614f0
cmp r9d, 0x5e12f1f1
je 0x18016164b
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1801614c0
mov eax, esi
mov dword [0x18028cc2c], eax
lea rcx, [0x18028cc34]
call fcn.1801d1c44
movsxd rax, dword [0x18028cc2c]
movsxd rcx, ebx
add rax, rdi
cmp byte [rcx + rax], 0
je 0x180161632
mov rcx, qword [0x1802a33a8]
call fcn.180160d80
cmp byte [rax], 0
je 0x180161672
mov rbx, qword [0x1802a33a8]
mov eax, dword [r14 + rbp]
cmp dword [0x18028cc3c], eax
jle 0x18016161d
lea rcx, [0x18028cc3c]
call fcn.1801d1cb0
cmp dword [0x18028cc3c], 0xffffffff
jne 0x18016161d
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x180161609
nop dword [rax]
nop word [rax + rax]
mov r8, qword [r10 + 0x10]
mov r9d, 0x811c9dc5
mov rcx, r15
nop dword [rax]
inc rcx
cmp byte [r8 + rcx], 0
jne 0x1801615c0
mov rdx, rsi
test rcx, rcx
je 0x180161600
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 0x1801615e0
cmp r9d, 0x5e12f1f1
je 0x180161660
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1801615b0
mov eax, esi
mov dword [0x18028cc44], eax
lea rcx, [0x18028cc3c]
call fcn.1801d1c44
movsxd rax, dword [0x18028cc44]
movsxd rdi, dword [rsp + 0x58]
add rax, rbx
cmp byte [rdi + rax], 0
jne 0x180161676
xor al, al
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
lea r8, str.m_bTeamCanCap
mov rdx, qword [r10 + 0x18]
call fcn.1801d1920
jmp 0x18016151f
lea r8, str.m_bInMiniRound
mov rdx, qword [r10 + 0x18]
call fcn.1801d1920
jmp 0x18016160b
mov edi, dword [rsp + 0x58]
mov rbx, qword [0x1802a33a8]
mov eax, dword [r14 + rbp]
cmp dword [0x18028cc1c], eax
jle 0x180161731
lea rcx, [0x18028cc1c]
call fcn.1801d1cb0
cmp dword [0x18028cc1c], 0xffffffff
jne 0x180161731
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18016171d
nop dword [rax + rax]
mov r8, qword [r10 + 0x10]
mov r9d, 0x811c9dc5
mov rcx, r15
nop dword [rax]
inc rcx
cmp byte [r8 + rcx], 0
jne 0x1801616d0
mov rdx, rsi
test rcx, rcx
je 0x180161714
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 0x1801616f0
cmp r9d, 0x5e12f1f1
je 0x180161928
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1801616c0
mov eax, esi
mov dword [0x18028cc30], eax
lea rcx, [0x18028cc1c]
call fcn.1801d1c44
movsxd rax, dword [0x18028cc30]
movsxd rcx, edi
add rax, rbx
cmp byte [rcx + rax], 0
jne 0x180161632
mov ecx, dword [0x18028ab2c]
mov rax, qword gs:[0x58]
mov rbx, qword [rax + rcx*8]
mov ebp, 4
mov ecx, dword [rbp + rbx]
cmp dword [0x1802a344c], ecx
jle 0x1801617a0
lea rcx, [0x1802a344c]
call fcn.1801d1cb0
cmp dword [0x1802a344c], 0xffffffff
jne 0x1801617a0
lea rdx, str.tf_caplinear
call fcn.1801d0010
mov qword [0x1802a3440], rax
lea rcx, [0x1802a344c]
call fcn.1801d1c44
mov rax, qword [0x1802a3440]
test rax, rax
je 0x1801617ba
mov rax, qword [rax + 0x38]
cmp dword [rax + 0x58], 0
je 0x180161982
xor r9d, r9d
mov r8d, r12d
mov edx, edi
call fcn.180161310
cmp eax, edi
je 0x180161982
cmp eax, 0xffffffff
jne 0x180161952
mov rcx, qword [0x1802a33a8]
call fcn.180160d80
cmp byte [rax], 0
jne 0x180161982
mov rdi, qword [0x1802a33a8]
mov ecx, dword [rbp + rbx]
cmp dword [0x18028cc14], ecx
jle 0x1801618b1
lea rcx, [0x18028cc14]
call fcn.1801d1cb0
cmp dword [0x18028cc14], 0xffffffff
jne 0x1801618b1
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18016189d
nop dword [rax]
nop word [rax + rax]
mov r8, qword [r10 + 0x10]
mov r9d, 0x811c9dc5
mov rcx, r15
nop dword [rax]
inc rcx
cmp byte [r8 + rcx], 0
jne 0x180161850
mov rdx, rsi
test rcx, rcx
je 0x180161894
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 0x180161870
cmp r9d, 0x5e12f1f1
je 0x18016193d
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180161840
mov eax, esi
mov dword [0x18028cc20], eax
lea rcx, [0x18028cc14]
call fcn.1801d1c44
movsxd rcx, dword [0x18028cc20]
add rcx, rdi
mov edi, dword [rcx + r12*4]
cmp edi, 0xffffffff
je 0x18016190f
mov rcx, qword [0x1802a33a8]
call fcn.180160c80
mov ecx, dword [rax]
dec ecx
test edi, edi
cmove esi, ecx
mov eax, 1
cmove r15d, eax
mov ebx, edi
cmp edi, esi
je 0x18016190c
nop dword [rax + rax]
mov edx, ebx
mov rcx, qword [0x1802a33a8]
call fcn.180160e80
cmp dword [rax], r12d
jne 0x18016190c
mov edi, ebx
add ebx, r15d
cmp ebx, esi
jne 0x1801618f0
mov r15d, edi
sub r15d, dword [rsp + 0x58]
mov eax, r15d
neg eax
cmovs eax, r15d
cmp eax, 1
setle al
jmp 0x180161634
lea r8, str.m_bCPLocked
mov rdx, qword [r10 + 0x18]
call fcn.1801d1920
jmp 0x18016171f
lea r8, str.m_iBaseControlPoints
mov rdx, qword [r10 + 0x18]
call fcn.1801d1920
jmp 0x18016189f
mov r9d, esi
mov r8d, r12d
mov edx, edi
call fcn.180161310
cmp eax, 0xffffffff
je 0x18016197b
mov edx, eax
mov rcx, qword [0x1802a33a8]
call fcn.180160e80
cmp dword [rax], r12d
jne 0x180161632
inc esi
cmp esi, 3
jl 0x180161952
mov al, 1
jmp 0x180161634