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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xe0
mov ecx, dword [0x180265dfc]
mov rax, qword gs:[0x58]
mov edx, 4
mov r12, qword [rax + rcx*8]
add r12, rdx
mov eax, dword [r12]
cmp dword [0x180278cc0], eax
jle 0x18015ec67
lea rcx, [0x180278cc0]
call fcn.1801b3c6c
cmp dword [0x180278cc0], 0xffffffff
jne 0x18015ec67
mov qword [0x180278cb8], 0
lea rcx, [rbp + 0x67]
call fcn.1801b3ae0
mov rdx, qword [rax]
mov qword [0x180278cb8], rdx
lea rcx, [0x180278cc0]
call fcn.1801b3c00
lea rcx, [rbp + 0x67]
call fcn.1801b3ae0
mov rax, qword [rbp + 0x67]
sub rax, qword [0x180278cb8]
cmp rax, 0x3b9aca00
jl 0x18015f28b
lea rcx, [rbp + 0x67]
call fcn.1801b3ae0
mov rcx, qword [rax]
mov qword [0x180278cb8], rcx
lea rax, [0x1802769d0]
mov qword [rbp + 0x6f], rax
mov rcx, rax
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x18015ecbe
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
cmp dword [0x180276a1c], 0x7fffffff
jne 0x18015ece0
mov dword [0x180276a1c], 0x7ffffffe
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov rax, qword [0x180276ab8]
cmp rax, qword [0x180276ac0]
je 0x18015ecf7
mov qword [0x180276ac0], rax
mov r15, qword [0x180268210]
test r15, r15
je 0x18015f27e
mov r14d, 1
mov rcx, qword [0x180267728]
mov rax, qword [rcx]
call qword [rax + 0xa8]
cmp eax, r14d
jl 0x18015f27e
mov r13d, r14d
nop dword [rax]
mov edx, r14d
mov rcx, r15
call fcn.18015da70
test al, al
je 0x18015f25c
mov eax, dword [r12]
cmp dword [0x180267bd0], eax
jle 0x18015edf1
lea rcx, [0x180267bd0]
call fcn.1801b3c6c
cmp dword [0x180267bd0], 0xffffffff
jne 0x18015edf1
mov rcx, qword [0x1802676e0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18015eddd
mov r8, qword [r10 + 0x10]
mov rax, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rax
cmp byte [r8 + rax], 0
jne 0x18015ed92
xor edx, edx
test rax, rax
je 0x18015edd4
nop dword [rax]
nop word [rax + rax]
movsx ecx, byte [rdx + r8]
xor ecx, r9d
imul r9d, ecx, 0x1000193
inc rdx
cmp rdx, rax
jb 0x18015edb0
cmp r9d, 0x3369e751
je 0x18015f1e2
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x18015ed81
xor eax, eax
mov dword [0x180267bd4], eax
lea rcx, [0x180267bd0]
call fcn.1801b3c00
movsxd rax, dword [0x180267bd4]
add rax, r13
cmp byte [rax + r15], 0
je 0x18015f25c
mov dil, 1
xor sil, sil
vpxor xmm0, xmm0, xmm0
xor eax, eax
vmovups ymmword [rbp - 0x69], ymm0
vmovups ymmword [rbp - 0x49], ymm0
vmovups ymmword [rbp - 0x29], ymm0
vmovups ymmword [rbp - 9], ymm0
mov dword [rbp + 0x17], eax
mov rcx, qword [0x180267728]
mov rax, qword [rcx]
lea r8, [rbp - 0x69]
mov edx, r14d
vzeroupper
call qword [rax + 0x40]
test al, al
je 0x18015ee67
movzx edi, byte [rbp + 3]
mov dword [rbp + 0x67], r14d
lea r8, [rbp + 0x67]
lea rdx, [rbp - 0x79]
lea rcx, [0x1802684e0]
call fcn.1800b8f20
mov rcx, qword [rax]
movzx esi, byte [rcx + 0x14]
mov eax, dword [r12]
cmp dword [0x180267bc0], eax
jle 0x18015ef16
lea rcx, [0x180267bc0]
call fcn.1801b3c6c
cmp dword [0x180267bc0], 0xffffffff
jne 0x18015ef16
mov rcx, qword [0x1802676e0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18015eefd
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x18015eeb6
xor edx, edx
test rcx, rcx
je 0x18015eef4
nop word [rax + rax]
movsx eax, byte [rdx + r8]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x18015eed0
cmp r9d, 0x3369e751
je 0x18015f1f7
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x18015eea5
xor eax, eax
add eax, 0xfffffcd0
mov dword [0x180267bcc], eax
lea rcx, [0x180267bc0]
call fcn.1801b3c00
movsxd rcx, dword [0x180267bcc]
add rcx, r15
mov rax, qword [rcx + r13*8]
mov qword [rsp + 0x20], rax
mov eax, dword [r12]
cmp dword [0x180267bd8], eax
jle 0x18015efe1
lea rcx, [0x180267bd8]
call fcn.1801b3c6c
cmp dword [0x180267bd8], 0xffffffff
jne 0x18015efe1
mov rcx, qword [0x1802676e0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18015efcd
nop word [rax + rax]
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x18015ef81
xor edx, edx
test rcx, rcx
je 0x18015efc4
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 0x18015efa0
cmp r9d, 0x3369e751
je 0x18015f20c
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x18015ef70
xor eax, eax
mov dword [0x180267bdc], eax
lea rcx, [0x180267bd8]
call fcn.1801b3c00
lea rbx, [r13*4]
movsxd rax, dword [0x180267bdc]
add rax, rbx
mov eax, dword [rax + r15]
mov dword [rsp + 0x28], eax
mov eax, dword [r12]
cmp dword [0x180267be8], eax
jle 0x18015f0b1
lea rcx, [0x180267be8]
call fcn.1801b3c6c
cmp dword [0x180267be8], 0xffffffff
jne 0x18015f0b1
mov rcx, qword [0x1802676e0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18015f09d
nop dword [rax]
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x18015f051
xor edx, edx
test rcx, rcx
je 0x18015f094
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 0x18015f070
cmp r9d, 0x3369e751
je 0x18015f221
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x18015f040
xor eax, eax
mov dword [0x180267be0], eax
lea rcx, [0x180267be8]
call fcn.1801b3c00
movsxd rax, dword [0x180267be0]
add rax, rbx
mov eax, dword [rax + r15]
mov dword [rsp + 0x2c], eax
mov edx, r14d
mov rcx, r15
call fcn.18015d840
mov dword [rsp + 0x30], eax
mov eax, dword [r12]
cmp dword [0x180267bb4], eax
jle 0x18015f181
lea rcx, [0x180267bb4]
call fcn.1801b3c6c
cmp dword [0x180267bb4], 0xffffffff
jne 0x18015f181
mov rcx, qword [0x1802676e0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18015f16d
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x18015f121
xor edx, edx
test rcx, rcx
je 0x18015f164
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 0x18015f140
cmp r9d, 0x3369e751
je 0x18015f236
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x18015f110
xor eax, eax
mov dword [0x180267bb8], eax
lea rcx, [0x180267bb4]
call fcn.1801b3c00
movsxd rax, dword [0x180267bb8]
add rax, rbx
mov eax, dword [rax + r15]
mov dword [rsp + 0x34], eax
mov edx, r14d
mov rcx, r15
call fcn.18015d960
mov byte [rsp + 0x38], al
mov rcx, qword [0x180267728]
mov rax, qword [rcx]
call qword [rax + 0x60]
cmp r14d, eax
sete byte [rbp - 0x80]
mov byte [rbp - 0x7f], sil
mov byte [rbp - 0x7e], dil
mov rdx, qword [0x180276ac0]
cmp rdx, qword [0x180276ac8]
je 0x18015f24b
vmovups ymm0, ymmword [rsp + 0x20]
vmovups ymmword [rdx], ymm0
add qword [0x180276ac0], 0x20
jmp 0x18015f25c
lea r8, str.m_bConnected
mov rdx, qword [r10 + 0x18]
call fcn.1801b3800
jmp 0x18015eddf
lea r8, str.m_iPing
mov rdx, qword [r10 + 0x18]
call fcn.1801b3800
jmp 0x18015eeff
lea r8, str.m_iAccountID
mov rdx, qword [r10 + 0x18]
call fcn.1801b3800
jmp 0x18015efcf
lea r8, str.m_iUserID
mov rdx, qword [r10 + 0x18]
call fcn.1801b3800
jmp 0x18015f09f
lea r8, str.m_iPlayerClass
mov rdx, qword [r10 + 0x18]
call fcn.1801b3800
jmp 0x18015f16f
lea r8, [rsp + 0x20]
lea rcx, [0x180276ab8]
call fcn.1801496e0
inc r14d
inc r13
mov rcx, qword [0x180267728]
mov rax, qword [rcx]
vzeroupper
call qword [rax + 0xa8]
cmp r14d, eax
jle 0x18015ed30
lea rcx, [0x1802769d0]
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
mov rbx, qword [rsp + 0x130]
add rsp, 0xe0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret