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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1013fe46
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
push esi
push edi
push 0x30
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x10], ecx
push 0
push eax
mov dword [ebp - 0x18], 0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x14], 0
call fcn.10063ca0
push 0x20
mov esi, eax
mov dword [ebp - 0x3c], 0
push 0x101991fc
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
call fcn.100485f0
mov dword [ebp - 4], 0
call fcn.1007a8b0
lea eax, [esi + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp - 0x28], 0x10
lea edi, [ebp - 0x3c]
mov esi, dword [ebp - 0x3c]
mov edx, 0x811c9dc5
mov ebx, dword [ebp - 0x2c]
cmovae edi, esi
xor ecx, ecx
test ebx, ebx
je 0x1008a411
nop
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x1008a400
mov edi, dword [ebp - 0x1c]
lea eax, [ebp - 0x3c]
push edx
push eax
lea eax, [ebp - 0x24]
mov ecx, edi
push eax
call fcn.10064540
mov eax, dword [eax + 4]
test eax, eax
je 0x1008a459
cmp eax, dword [edi + 4]
je 0x1008a459
mov ebx, dword [eax + 0x20]
lea eax, [edi + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebx, ebx
je 0x1008a463
mov edi, dword [ebp - 0x10]
lea eax, [ebp - 0x14]
push eax
push 0x30
lea eax, [ebp - 0x6c]
add edi, 4
push eax
push 0
push dword [edi]
call ebx
jmp 0x1008a469
lea eax, [edi + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [ebp - 0x10]
add edi, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x28]
cmp eax, 0x10
jb 0x1008a4a3
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x1008a499
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a542
push ecx
push esi
call fcn.1013b151
add esp, 8
cmp dword [ebp - 0x14], 0
jbe 0x1008a514
call fcn.10063ca0
push 0x1a
push 0x10199220
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x1c], 0
mov esi, eax
mov dword [ebp - 0x10], 0x388
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
call fcn.100485f0
lea eax, [ebp - 0x1c]
mov dword [ebp - 4], 1
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x18], 1
push eax
lea eax, [ebp + 8]
mov ecx, esi
push eax
lea eax, [ebp - 0x64]
push eax
push edi
lea eax, [ebp - 0x3c]
push eax
call fcn.1008a930
test eax, eax
js 0x1008a514
mov bl, 1
jmp 0x1008a516
xor bl, bl
test byte [ebp - 0x18], 1
je 0x1008a552
mov ecx, dword [ebp - 0x28]
cmp ecx, 0x10
jb 0x1008a552
mov edx, dword [ebp - 0x3c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008a548
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008a548
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1013b151
add esp, 8
pop edi
pop esi
test bl, bl
pop ebx
je 0x1008a56f
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 0xc]
xor eax, eax
xor edx, edx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4