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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x118
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x80], xmm6
mov qword [rbp + 0x70], 0xfffffffffffffffe
mov r12, qword [rcx + 0x30]
test r12, r12
je 0x180005c44
mov rbx, qword [rcx]
mov rdi, qword [rbx + 8]
cmp byte [rdi + 0x19], 0
mov rax, rbx
jne 0x1800056d9
mov rax, rbx
nop word [rax + rax]
lea rsi, [rdi + 0x10]
cmp dword [rdi + 0x20], r8d
cmovge rax, rdi
cmovge rsi, rdi
mov rdi, qword [rsi]
cmp byte [rdi + 0x19], 0
je 0x1800056c0
cmp byte [rax + 0x19], 0
je 0x180005743
mov rcx, qword [rcx + 0x10]
mov rbx, qword [rcx + 8]
cmp byte [rbx + 0x19], 0
mov rax, rcx
jne 0x180005719
mov rax, rcx
nop word cs:[rax + rax]
lea rdi, [rbx + 0x10]
cmp dword [rbx + 0x20], r8d
cmovge rax, rbx
cmovge rdi, rbx
mov rbx, qword [rdi]
cmp byte [rbx + 0x19], 0
je 0x180005700
cmp byte [rax + 0x19], 0
je 0x1800057b4
xor esi, esi
mov rax, rsi
movaps xmm6, xmmword [rbp + 0x80]
add rsp, 0x118
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp dword [rax + 0x20], r8d
jg 0x1800056df
cmp rax, rbx
je 0x1800056df
mov rax, qword [rax + 0x28]
mov rbx, qword [rax + 8]
cmp byte [rbx + 0x19], 0
mov rsi, rax
jne 0x180005788
mov rsi, rax
nop word cs:[rax + rax]
lea rdi, [rbx + 0x10]
cmp dword [rbx + 0x20], edx
cmovge rsi, rbx
cmovge rdi, rbx
mov rbx, qword [rdi]
cmp byte [rbx + 0x19], 0
je 0x180005770
cmp byte [rsi + 0x19], 0
jne 0x1800056df
cmp dword [rsi + 0x20], edx
jg 0x1800056df
cmp rsi, rax
je 0x1800056df
cmp qword [rsi + 0x40], 8
jb 0x180005823
mov rsi, qword [rsi + 0x28]
jmp 0x180005725
xor esi, esi
cmp dword [rax + 0x20], r8d
jg 0x180005725
cmp rax, rcx
je 0x180005725
mov rax, qword [rax + 0x28]
mov rcx, qword [rax + 8]
cmp byte [rcx + 0x19], 0
mov rdi, rax
jne 0x1800057f8
mov rdi, rax
nop dword [rax]
lea rbx, [rcx + 0x10]
cmp dword [rcx + 0x20], edx
cmovge rdi, rcx
cmovge rbx, rcx
mov rcx, qword [rbx]
cmp byte [rcx + 0x19], 0
je 0x1800057e0
cmp byte [rdi + 0x19], 0
jne 0x180005723
xor esi, esi
cmp dword [rdi + 0x20], edx
jg 0x180005725
cmp rdi, rax
je 0x180005725
cmp qword [rdi + 0x40], 0x10
jb 0x18000582c
mov rdi, qword [rdi + 0x28]
jmp 0x180005830
add rsi, 0x28
jmp 0x180005725
add rdi, 0x28
xorps xmm0, xmm0
movaps xmmword [rbp + 0x60], xmm0
movaps xmmword [rbp + 0x50], xmm0
mov rcx, rdi
call fcn.1801431e0
test rax, rax
js 0x180005c5d
mov rsi, rax
cmp rax, 0xf
ja 0x180005872
mov qword [rbp + 0x60], rsi
mov qword [rbp + 0x68], reloc.WS2_32.dll_ntohs
lea rcx, [rbp + 0x50]
mov rdx, rdi
mov r8, rsi
call fcn.1801258c0
jmp 0x1800058d1
mov rax, rsi
or rax, 0xf
cmp rax, 0x17
mov r14d, reloc.WLDAP32.dll_Ordinal_22
cmovae r14, rax
cmp r14, 0xfff
jb 0x1800058a7
lea rcx, [r14 + 0x28]
call fcn.1800c38b8
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x1800058b3
lea rcx, [r14 + 1]
call fcn.1800c38b8
mov rbx, rax
mov qword [rbp + 0x50], rbx
mov qword [rbp + 0x60], rsi
mov qword [rbp + 0x68], r14
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.1801258c0
mov byte [rbx + rsi], 0
mov r15, qword [rbp + 0x60]
cmp qword [rbp + 0x68], 0x10
jb 0x1800058e2
mov rdi, qword [rbp + 0x50]
jmp 0x1800058e6
lea rdi, [rbp + 0x50]
test r15, r15
mov qword [rbp + 8], r12
je 0x180005a42
lea rax, [r15 - 1]
mov qword [rbp - 8], rax
mov r13d, r15d
and r13d, 3
mov r9, r15
and r9, 0xfffffffffffffffc
movabs rbx, 0x100000001b3
mov rax, r12
mov qword [rbp], r9
jmp 0x180005937
cmp r12, qword [rbp + 0x48]
jne 0x180005ad0
mov rax, qword [rsi + 0x20]
test rax, rax
mov r9, qword [rbp]
je 0x180005aa4
mov r8, rax
cmp qword [rbp - 8], 3
jae 0x180005950
xor eax, eax
movabs rcx, 0xcbf29ce484222325
jmp 0x180005998
xor eax, eax
movabs rcx, 0xcbf29ce484222325
nop dword [rax]
movzx edx, byte [rdi + rax]
xor rdx, rcx
imul rdx, rbx
movzx ecx, byte [rdi + rax + 1]
xor rcx, rdx
imul rcx, rbx
movzx edx, byte [rdi + rax + 2]
xor rdx, rcx
imul rdx, rbx
movzx ecx, byte [rdi + rax + 3]
xor rcx, rdx
imul rcx, rbx
add rax, 4
cmp r9, rax
jne 0x180005960
mov rdx, rcx
test r13, r13
je 0x1800059c6
add rax, rdi
xor esi, esi
nop word cs:[rax + rax]
movzx edx, byte [rax + rsi]
xor rdx, rcx
imul rdx, rbx
inc rsi
mov rcx, rdx
cmp r13, rsi
jne 0x1800059b0
and rdx, qword [r8 + 0x60]
mov rax, qword [r8 + 0x38]
mov rsi, r8
mov r8, qword [r8 + 0x48]
mov rcx, rdx
shl rcx, 4
mov r12, qword [r8 + rcx + 8]
mov qword [rbp + 0x48], rax
cmp r12, rax
je 0x180005926
add rdx, rdx
mov r14, qword [r8 + rdx*8]
cmp r15, qword [r12 + 0x20]
jne 0x180005a38
jmp 0x180005a0c
mov r12, qword [r12 + 8]
cmp r15, qword [r12 + 0x20]
jne 0x180005a38
cmp qword [r12 + 0x28], 0x10
jb 0x180005a20
mov rdx, qword [r12 + 0x10]
jmp 0x180005a25
lea rdx, [r12 + 0x10]
mov rcx, rdi
mov r8, r15
call fcn.1801257c0
test eax, eax
je 0x18000591c
cmp r12, r14
jne 0x180005a00
jmp 0x180005926
movabs rax, 0x97e539c90844464a
mov rcx, r12
jmp 0x180005a63
cmp r12, rcx
jne 0x180005ad0
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x180005aa4
mov rsi, rcx
mov rdx, qword [rcx + 0x60]
mov rcx, qword [rcx + 0x38]
mov rbx, qword [rsi + 0x48]
add rdx, rdx
and rdx, rax
mov r12, qword [rbx + rdx*8 + 8]
cmp r12, rcx
je 0x180005a5a
cmp qword [r12 + 0x20], 0
je 0x180005a51
mov rdx, qword [rbx + rdx*8]
nop
cmp r12, rdx
je 0x180005a5a
mov r12, qword [r12 + 8]
cmp qword [r12 + 0x20], 0
jne 0x180005a90
jmp 0x180005a51
lea rax, str.KEY____NOT_FOUND
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], reloc.WS2_32.dll_select
mov ecx, dword [rsi + 0xf0]
lea rdx, [rbp + 0x20]
lea r8, [rbp + 0x10]
lea r9, [rbp + 0x50]
call fcn.180018030
jmp fcn.180005b3e
mov rdi, qword [r12 + 0x40]
cmp qword [r12 + 0x48], 0x10
mov qword [rbp + 0x48], rsi
jb 0x180005ae8
mov r12, qword [r12 + 0x30]
jmp 0x180005aec
add r12, 0x30
xorps xmm6, xmm6
movaps xmmword [rbp + 0x20], xmm6
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x38], reloc.WS2_32.dll_ntohs
cmp rdi, 0x10
jb 0x180005b1d
lea rcx, [rbp + 0x20]
mov rdx, rdi
call fcn.180008760
mov qword [rbp + 0x30], 0
movaps xmmword [rbp + 0x10], xmm6
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x28], rdi
lea rcx, [rbp - 0x58]
lea rdx, [rbp + 0x20]
lea r8, [rbp - 0x30]
lea r9, [rbp + 0x10]
call fcn.1800088a0
lea rcx, str.Locale
lea rdx, str.ersccs_event_flag_man_.._mod_message_repository_mod_message_repository.h
mov r8d, 0x89
call fcn.18001d370
call fcn.180001590
call fcn.180139754
int3