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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x18021d4c0]
xor rax, rsp
mov qword [rbp - 8], rax
mov r11, rcx
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], 3
mov esi, 0xf
mov qword [rbp - 0x10], rsi
mov eax, dword [0x1801f0b24]
mov word [rbp - 0x28], ax
movzx r10d, byte [0x1801f0b26]
mov byte [rbp - 0x26], r10b
mov byte [rbp - 0x25], 0
xor edx, edx
movabs r8, 0xcbf29ce484222325
movabs r9, 0x100000001b3
nop dword [rax + rax]
movzx ecx, byte [rbp + rdx - 0x28]
xor r8, rcx
imul r8, r9
inc rdx
cmp rdx, 3
jb 0x18010cad0
mov r9, qword [r11 + 0xa0]
and r9, r8
add r9, r9
mov rcx, qword [r11 + 0x88]
mov rdx, qword [rcx + r9*8 + 8]
mov r11, qword [r11 + 0x78]
cmp rdx, r11
je 0x18010cb3d
mov r9, qword [rcx + r9*8]
nop dword [rax + rax]
lea rcx, [rdx + 0x10]
mov r8, qword [rcx + 0x10]
cmp qword [rcx + 0x18], rsi
jbe 0x18010cb21
mov rcx, qword [rcx]
cmp r8, 3
jne 0x18010cb32
cmp ax, word [rcx]
jne 0x18010cb32
cmp r10b, byte [rcx + 2]
je 0x18010cb3f
cmp rdx, r9
je 0x18010cb3d
mov rdx, qword [rdx + 8]
jmp 0x18010cb10
xor edx, edx
test rdx, rdx
je 0x18010cb4f
cmp rdx, r11
je 0x18010cb4f
mov rax, qword [rdx + 0x30]
jmp 0x18010cb51
xor eax, eax
cmp byte [rax + 0x28], 0
jne 0x18010ce5a
mov r14, qword [0x180266e98]
movabs r13, 0x7fffffffffffffff
mov rax, r13
sub rax, r14
cmp rax, 0x16
jb 0x18010d018
lea r12, [0x180266e88]
cmp qword [0x180266ea0], rsi
cmova r12, qword [0x180266e88]
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x18], xmm1
lea r15, [r14 + 0x16]
mov rbx, rsi
lea rdi, [rbp - 0x28]
movabs rax, 0x8000000000000000
mov ecx, 0x16
cmp r15, rbx
jbe 0x18010cc29
mov rbx, r15
or rbx, rsi
cmp rbx, r13
jbe 0x18010cbf1
mov rbx, r13
add rax, 0x27
mov rcx, rax
call fcn.18016efa4
test rax, rax
je 0x18010d01e
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x18010cc25
cmp rbx, rcx
cmovb rbx, rcx
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x18010cc05
xor edi, edi
jmp 0x18010cc25
cmp rcx, 0x1000
jb 0x18010cc1d
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18010d00c
jmp 0x18010cbd2
call fcn.18016efa4
mov rdi, rax
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x18], r15
mov qword [rbp - 0x10], rbx
movups xmm0, xmmword [str.Finding_a_new_game_of]
movups xmmword [rdi], xmm0
mov ecx, dword [0x1801f0fd8]
mov dword [rdi + 0x10], ecx
movzx eax, word [0x1801f0fdc]
mov word [rdi + 0x14], ax
lea rcx, [rdi + 0x16]
mov r8, r14
mov rdx, r12
call fcn.1801a3db0
mov byte [rdi + r15], 0
lea rcx, [rbp - 0x28]
call fcn.18008bdc0
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x18010cca8
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18010cca3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18010d01e
call fcn.18016ee40
mov rax, qword [0x1802e47c8]
test rax, rax
jne 0x18010cce9
mov edx, dword [0x18026ec40]
mov rax, qword gs:[0x58]
mov ecx, 8
mov rax, qword [rax + rdx*8]
mov eax, dword [rcx + rax]
cmp dword [0x1802e47b8], eax
jg 0x18010d024
mov rax, qword [0x1802e47c0]
mov qword [0x1802e47c8], rax
mov edx, 0x4d
lea rcx, [rbp - 0x40]
call rax
nop
mov rdi, qword [rbp - 0x40]
mov r15, qword [0x180266e78]
mov rax, r13
sub rax, r15
cmp rax, 3
jb 0x18010d05f
lea r12, [0x180266e68]
cmp qword [0x180266e80], 0xf
cmova r12, qword [0x180266e68]
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
lea r14, [r15 + 3]
lea rbx, [rbp - 0x28]
cmp r14, 0xf
jbe 0x18010cdb6
mov rsi, r14
or rsi, 0xf
cmp rsi, r13
jbe 0x18010cd78
mov rsi, r13
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.18016efa4
test rax, rax
je 0x18010d065
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x18010cdb2
cmp rsi, 0x16
mov eax, 0x16
cmovb rsi, rax
lea rcx, [rsi + 1]
test rcx, rcx
jne 0x18010cd92
xor ebx, ebx
jmp 0x18010cdb2
cmp rcx, 0x1000
jb 0x18010cdaa
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18010d012
jmp 0x18010cd59
call fcn.18016efa4
mov rbx, rax
mov qword [rbp - 0x28], rbx
mov qword [rbp - 0x18], r14
mov qword [rbp - 0x10], rsi
mov ecx, dword [0x1801f0fc4]
mov word [rbx], cx
movzx ecx, byte [0x1801f0fc6]
mov byte [rbx + 2], cl
lea rcx, [rbx + 3]
mov r8, r15
mov rdx, r12
call fcn.1801a3db0
mov byte [rbx + r14], 0
lea rcx, [rdi + 0x30]
lea rdx, [rbp - 0x28]
call fcn.1800447c0
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x18010ce2d
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18010ce28
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18010d065
call fcn.18016ee40
mov byte [rdi + 0x50], 0
mov byte [rdi + 0x90], 1
mov rcx, qword [0x18027a148]
call fcn.1800b1220
mov rcx, qword [rax]
mov r8, qword [rcx + 0x10]
mov rdx, rdi
mov rcx, rax
call r8
nop
jmp 0x18010cf72
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov ecx, 0x20
call fcn.18016efa4
mov qword [rbp - 0x28], rax
movdqa xmm0, xmmword [0x1801f59e0]
movdqu xmmword [rbp - 0x18], xmm0
movups xmm0, xmmword [str.Executing_command__hub]
movups xmmword [rax], xmm0
mov ecx, dword [0x1801f0ff8]
mov dword [rax + 0x10], ecx
movzx ecx, word [0x1801f0ffc]
mov word [rax + 0x14], cx
mov byte [rax + 0x16], 0
lea rcx, [rbp - 0x28]
call fcn.18008bdc0
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x18010cee3
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18010cede
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18010d06b
call fcn.18016ee40
mov rax, qword [0x1802e47c8]
test rax, rax
jne 0x18010cf24
mov edx, dword [0x18026ec40]
mov rax, qword gs:[0x58]
mov ecx, 8
mov rax, qword [rax + rdx*8]
mov eax, dword [rcx + rax]
cmp dword [0x1802e47b8], eax
jg 0x18010cfd1
mov rax, qword [0x1802e47c0]
mov qword [0x1802e47c8], rax
mov edx, 0x4d
lea rcx, [rbp - 0x40]
call rax
nop
mov rbx, qword [rbp - 0x40]
lea rcx, [rbx + 0x30]
mov r8d, 4
lea rdx, str._hub
call fcn.180045d80
mov byte [rbx + 0x50], 0
mov byte [rbx + 0x90], 1
mov rcx, qword [0x18027a148]
call fcn.1800b1220
mov rcx, qword [rax]
mov r8, qword [rcx + 0x10]
mov rdx, rbx
mov rcx, rax
call r8
nop
mov rdi, qword [rbp - 0x38]
test rdi, rdi
je 0x18010cfa7
mov ebx, 0xffffffff
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x18010cfa7
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x18010cfa7
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.d2d1.dll_Ordinal_8]
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.18016e810
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
lea rcx, [0x1802e47b8]
call fcn.18016eef0
cmp dword [0x1802e47b8], 0xffffffff
jne 0x18010cf16
mov edx, 0x1343cc9
call fcn.18015b140
mov qword [0x1802e47c0], rax
lea rcx, [0x1802e47b8]
call fcn.18016ee84
jmp 0x18010cf16
call fcn.18005a8b0
nop
call fcn.18005a8b0
nop
call fcn.18005a660
int3
call fcn.1801819e8
int3
lea rcx, [0x1802e47b8]
call fcn.18016eef0
cmp dword [0x1802e47b8], 0xffffffff
jne 0x18010ccdb
mov edx, 0x1343cc9
call fcn.18015b140
mov qword [0x1802e47c0], rax
lea rcx, [0x1802e47b8]
call fcn.18016ee84
jmp 0x18010ccdb
call fcn.18005a660
int3
call fcn.1801819e8
nop
call fcn.1801819e8
int3