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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov r13, r8
mov rsi, rdx
mov rbp, rcx
xor ebx, ebx
mov dword [rax + 0x20], ebx
lea rdi, [rcx + 0x50]
mov qword [rsp + 0x38], rdi
mov rcx, rdi
call fcn.180028878
test eax, eax
je 0x18000bdc6
mov ecx, eax
call fcn.180028ce0
nop
movdqa xmm0, xmmword [0x180084c20]
movdqu xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x60], 0
mov dword [rsp + 0xe8], 1
mov rdx, qword [rsi + 0x10]
inc rdx
lea rcx, [rsp + 0x60]
call fcn.180026c50
mov rdx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x18000be02
mov rdx, qword [rsi]
mov r8, qword [rsi + 0x10]
lea rcx, [rsp + 0x60]
call fcn.180026f90
mov r8d, 1
lea rdx, [0x1800834d4]
lea rcx, [rsp + 0x60]
call fcn.180026f90
mov rdx, r13
cmp qword [r13 + 0x18], 0x10
jb 0x18000be35
mov rdx, qword [r13]
mov r8, qword [r13 + 0x10]
lea rcx, [rsp + 0x60]
call fcn.180026f90
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], 0
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x18000bea0
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000be9b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000c069
call fcn.18002aef0
movdqa xmm0, xmmword [0x180084c20]
movdqu xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x60], 0
lea r8, [rsp + 0x40]
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x58]
cmp r14, 0x10
cmovae r8, r15
movabs rcx, 0xcbf29ce484222325
mov rdx, rbx
mov r12, qword [rsp + 0x50]
test r12, r12
je 0x18000bf04
movabs r9, 0x100000001b3
nop dword [rax + rax]
movzx eax, byte [rdx + r8]
xor rcx, rax
imul rcx, r9
inc rdx
cmp rdx, r12
jb 0x18000bef0
mov rax, qword [rbp + 0x40]
and rax, rcx
shl rax, 4
mov rdx, qword [rbp + 0x28]
mov qword [rsp + 0x20], rdx
mov rcx, qword [rdx + rax]
mov qword [rsp + 0xe8], rcx
mov rbx, rcx
add rax, 8
mov qword [rsp + 0x28], rax
mov rbp, qword [rbp + 0x18]
cmp rcx, rbp
jne 0x18000bf3e
mov rax, rbp
jmp 0x18000bf45
mov rax, qword [rax + rdx]
mov rax, qword [rax]
cmp rbx, rax
je 0x18000bfd6
lea rsi, [rbx + 0x10]
lea rdx, [rsp + 0x40]
cmp r14, 0x10
cmovae rdx, r15
mov r14, qword [rsi + 0x10]
mov rcx, rsi
mov r13, qword [rsi + 0x18]
cmp r13, 0x10
jb 0x18000bf73
mov rcx, qword [rsi]
cmp r14, r12
jne 0x18000bf84
mov r8, r14
call fcn.18004b790
test eax, eax
je 0x18000bfa0
mov rbx, qword [rbx]
mov r14, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x28]
jmp 0x18000bf34
cmp r13, 0x10
jb 0x18000bfa9
mov rsi, qword [rsi]
lea rcx, [rsp + 0x40]
cmp qword [rsp + 0x58], 0x10
cmovae rcx, r15
cmp r12, r14
jne 0x18000bfcc
mov r8, r12
mov rdx, rsi
call fcn.18004b790
test eax, eax
je 0x18000bfcf
mov rbx, rbp
mov r14, qword [rsp + 0x58]
jmp 0x18000bfd9
mov rbx, rbp
cmp rbx, rbp
je 0x18000bfe4
mov rbx, qword [rbx + 0x30]
jmp 0x18000c004
mov r8, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xd0]
call fcn.180027490
mov rbx, rax
cmp r14, 0x10
jb 0x18000c038
lea rdx, [r14 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x18000c02f
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000c063
mov rcx, r15
call fcn.18002aef0
nop
mov rcx, rdi
call fcn.18002889c
test eax, eax
je 0x18000c04c
mov ecx, eax
call fcn.180028ce0
nop
mov rax, rbx
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
call fcn.18004df84
nop
call fcn.18004df84
int3