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

Disassembly:
test r8, r8
je 0x180084c7f
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x528]
sub rsp, 0x5f0
movaps xmmword [rax - 0x48], xmm6
mov rsi, r8
xor r14d, r14d
mov r12d, r14d
mov dword [rsp + 0x20], r14d
test rdx, rdx
je 0x180084436
add rcx, 0x50
mov qword [rbp + 0x540], rdx
lea rdx, [rbp + 0x540]
call fcn.18004e860
test al, al
mov byte [rbp + 0x540], 1
jne 0x18008443d
mov byte [rbp + 0x540], r12b
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov r15, r14
mov qword [rsp + 0x38], r14
mov ecx, dword [0x1804deea8]
mov rax, qword gs:[0x58]
mov edx, 0x44
mov rax, qword [rax + rcx*8]
mov eax, dword [rdx + rax]
cmp dword [0x1804d8318], eax
jg 0x180084c86
mov rdi, qword [rsp + 0x30]
mov r8, qword [0x1804d8310]
mov edx, dword [0x1804c0680]
nop word [rax + rax]
mov eax, dword [0x1804c069c]
mov rbx, qword [rax + rsi]
test rbx, rbx
je 0x180084516
nop
mov eax, dword [0x1804c0678]
mov rcx, qword [rax + rbx]
test rcx, rcx
je 0x180084507
nop
cmp rcx, r8
je 0x1800844c2
mov eax, edx
mov rcx, qword [rax + rcx]
test rcx, rcx
jne 0x1800844b0
jmp 0x180084507
mov qword [rbp + 0x548], rbx
cmp rdi, r15
je 0x1800844dc
mov qword [rdi], rbx
add rdi, 8
mov qword [rsp + 0x30], rdi
jmp 0x180084501
lea r8, [rbp + 0x548]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800343f0
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
mov r8, qword [0x1804d8310]
mov edx, dword [0x1804c0680]
mov eax, dword [str._H_b_]
mov rbx, qword [rax + rbx]
test rbx, rbx
jne 0x1800844a0
mov eax, edx
mov rsi, qword [rax + rsi]
test rsi, rsi
jne 0x180084490
mov r8, rdi
mov rbx, qword [rsp + 0x28]
sub r8, rbx
sar r8, 3
movzx r9d, byte [rbp + 0x540]
mov rdx, rdi
mov rcx, rbx
call fcn.18004c8a0
mov r13, rbx
cmp rbx, rdi
je 0x180084c17
movss xmm6, dword [0x18031771c]
nop dword [rax + rax]
mov r14, qword [r13]
mov qword [rsp + 0x70], r14
cmp byte [rbp + 0x540], 0
je 0x1800845d8
mov ecx, dword [0x1804c0690]
add rcx, r14
lea rdx, [rbp - 0x20]
call fcn.180227d80
nop
or r12d, 1
mov dword [rsp + 0x20], r12d
mov rcx, rax
cmp qword [rax + 0x18], 8
jb 0x18008459b
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x78], rax
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x40]
call fcn.180200970
nop
or r12d, 2
mov dword [rsp + 0x20], r12d
cmp qword [rax + 0x18], 0x10
jb 0x1800845c8
mov rax, qword [rax]
mov rcx, rax
call fcn.180187af0
test al, al
je 0x1800845d8
mov bl, 1
jmp 0x1800845da
xor bl, bl
test r12b, 2
je 0x180084637
and r12d, 0xfffffffd
mov dword [rsp + 0x20], r12d
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x180084624
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008461f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180084cc2
call fcn.18026a1a0
xor ecx, ecx
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], cl
jmp 0x180084639
xor ecx, ecx
test r12b, 1
je 0x18008469a
and r12d, 0xfffffffe
mov dword [rsp + 0x20], r12d
mov rdx, qword [rbp - 8]
cmp rdx, 8
jb 0x18008468a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180084683
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180084cc8
call fcn.18026a1a0
xor ecx, ecx
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], 7
mov word [rbp - 0x20], cx
test bl, bl
je 0x180084c02
mov eax, dword [0x1804c0684]
mov rsi, qword [rax + r14]
test rsi, rsi
je 0x18008472a
mov eax, dword [0x1804c068c]
cmp qword [rax + rsi], 0
jne 0x1800847e0
mov ecx, dword [0x1804c06a8]
add rcx, rsi
lea rdx, [rbp]
call fcn.180227d80
mov r8, rax
or r12d, 4
mov dword [rsp + 0x20], r12d
mov rdx, qword [rax + 0x10]
cmp qword [rax + 0x18], 8
jb 0x1800846ee
mov r8, qword [rax]
cmp rdx, 0xb
jne 0x1800847de
lea rax, str.ReturnValue
mov rcx, rax
sub r8, rax
nop word [rax + rax]
movzx eax, word [r8 + rcx]
cmp ax, word [rcx]
jne 0x1800847de
add rcx, 2
sub rdx, 1
jne 0x180084710
xor ecx, ecx
mov bl, 1
test r12b, 4
je 0x18008478d
and r12d, 0xfffffffb
mov dword [rsp + 0x20], r12d
mov rdx, qword [rbp + 0x18]
cmp rdx, 8
jb 0x18008477d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180084776
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180084cce
call fcn.18026a1a0
xor ecx, ecx
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], 7
mov word [rbp], cx
test bl, bl
je 0x1800847e7
mov qword [rbp + 0x548], 0
lea rdx, [rbp + 0x548]
lea rcx, str.Call
call fcn.18017e590
test al, al
je 0x1800849c1
xor edx, edx
mov r8d, 0x400
lea rcx, [rbp + 0xe0]
call fcn.180288120
lea r8, [rbp + 0xe0]
mov rcx, qword [rbp + 0x538]
jmp 0x1800849b9
xor ecx, ecx
xor bl, bl
jmp 0x18008472c
mov eax, dword [0x1804c068c]
cmp qword [rax + rsi], 0
jne 0x1800849c1
mov eax, dword [0x1804c06a4]
mov ecx, dword [0x1804d7e4c]
add rcx, qword [rax + rsi]
lea rdx, [rbp + 0x40]
call fcn.180227d80
nop
mov rcx, rax
cmp qword [rax + 0x18], 8
jb 0x18008481f
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp - 0x70], rcx
mov qword [rbp - 0x68], rax
lea rdx, [rbp - 0x70]
lea rcx, [rbp + 0x20]
call fcn.180200970
nop
mov rcx, rax
cmp qword [rax + 0x18], 0x10
jb 0x180084846
mov rcx, qword [rax]
movabs rbx, 0xcbf29ce484222325
mov rdx, qword [rax + 0x10]
add rdx, rcx
cmp rcx, rdx
je 0x180084888
movabs r14, 0x100000001b3
nop word [rax + rax]
movsx rax, byte [rcx]
xor rbx, rax
imul rbx, r14
inc rcx
cmp rcx, rdx
jne 0x180084870
mov r14, qword [rsp + 0x70]
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x1800848c3
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800848be
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180084cd4
call fcn.18026a1a0
xor ecx, ecx
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x38], 0xf
mov byte [rbp + 0x20], cl
mov rdx, qword [rbp + 0x58]
cmp rdx, 8
jb 0x180084916
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008490f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180084cda
call fcn.18026a1a0
xor ecx, ecx
mov qword [rbp + 0x50], rcx
mov qword [rbp + 0x58], 7
mov word [rbp + 0x40], cx
movabs rax, 0x4b1b2d85250bcc80
cmp rbx, rax
jne 0x1800849c1
mov qword [rsp + 0x40], 0
lea rdx, [rsp + 0x40]
lea rcx, str.Enable
call fcn.18017e590
mov rbx, qword [rbp + 0x538]
test al, al
je 0x18008497b
mov byte [rsp + 0x50], 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x51], xmm0
lea r8, [rsp + 0x50]
mov rdx, r14
mov rcx, rbx
call fcn.18020dbb0
movaps xmm1, xmm6
xorps xmm0, xmm0
call fcn.18016f970
mov qword [rsp + 0x48], 0
lea rdx, [rsp + 0x48]
lea rcx, str.Disable
call fcn.18017e590
test al, al
je 0x1800849c1
mov byte [rsp + 0x50], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x51], xmm0
lea r8, [rsp + 0x50]
mov rcx, rbx
mov rdx, r14
call fcn.18020dbb0
test rsi, rsi
je 0x180084bfd
nop word [rax + rax]
mov ecx, dword [0x1804c06a8]
add rcx, rsi
lea rdx, [rbp + 0xc0]
call fcn.180227d80
nop
mov rcx, rax
cmp qword [rax + 0x18], 8
jb 0x1800849f3
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x58], rax
lea rdx, [rbp - 0x60]
lea rcx, [rbp + 0xa0]
call fcn.180200970
mov rbx, rax
cmp qword [rax + 0x18], 0x10
jb 0x180084a1c
mov rbx, qword [rax]
mov eax, dword [0x1804c06a4]
mov ecx, dword [0x1804d7e4c]
add rcx, qword [rax + rsi]
lea rdx, [rbp + 0x80]
call fcn.180227d80
nop
mov rcx, rax
cmp qword [rax + 0x18], 8
jb 0x180084a46
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x48], rax
lea rdx, [rbp - 0x50]
lea rcx, [rbp + 0x60]
call fcn.180200970
nop
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0x60], xmm1
mov r8, rbx
lea rdx, [rsp + 0x50]
lea rcx, str._s__s
call fcn.180187460
nop
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x180084ac1
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180084abc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180084ce0
call fcn.18026a1a0
xor ebx, ebx
mov qword [rbp + 0x70], rbx
mov qword [rbp + 0x78], 0xf
mov byte [rbp + 0x60], bl
mov rdx, qword [rbp + 0x98]
cmp rdx, 8
jb 0x180084b18
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180084b13
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180084ce6
call fcn.18026a1a0
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], 7
mov word [rbp + 0x80], bx
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x180084b72
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180084b6d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180084cec
call fcn.18026a1a0
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], 0xf
mov byte [rbp + 0xa0], 0
mov rdx, qword [rbp + 0xd8]
cmp rdx, 8
jb 0x180084bd1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180084bcc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180084c80
call fcn.18026a1a0
mov qword [rbp + 0xd0], rbx
mov qword [rbp + 0xd8], 7
mov word [rbp + 0xc0], bx
mov eax, dword [0x1804c068c]
mov rsi, qword [rax + rsi]
test rsi, rsi
jne 0x1800849d0
call fcn.180188610
add r13, 8
cmp r13, rdi
jne 0x180084560
mov rbx, qword [rsp + 0x28]
xor r14d, r14d
test rbx, rbx
je 0x180084c5d
sub r15, rbx
and r15, 0xfffffffffffffff8
mov rax, rbx
cmp r15, 0x1000
jb 0x180084c44
add r15, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180084cbc
mov rdx, r15
mov rcx, rbx
call fcn.18026a1a0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r14
mov rbx, qword [rsp + 0x630]
movaps xmm6, xmmword [rsp + 0x5e0]
add rsp, 0x5f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.18028cdc8
nop
lea rcx, [0x1804d8318]
call fcn.18026a604
cmp dword [0x1804d8318], 0xffffffff
jne 0x180084475
call fcn.180228110
mov qword [0x1804d8310], rax
lea rcx, [0x1804d8318]
call fcn.18026a598
jmp 0x180084475
call fcn.18028cdc8
nop
call fcn.18028cdc8
nop
call fcn.18028cdc8
int3
call fcn.18028cdc8
nop
call fcn.18028cdc8
nop
call fcn.18028cdc8
nop
call fcn.18028cdc8
nop
call fcn.18028cdc8
nop
call fcn.18028cdc8
int3