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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ca18d
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x100ec084]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x28]
push eax
mov dword [ebp - 0x58], eax
call fcn.10009990
mov dword [ebp - 4], 0
cmp dword [ebp - 0x14], 0x10
lea edx, [ebp - 0x28]
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x18]
cmovae edx, edi
test esi, esi
je 0x100a8950
or eax, 0xffffffff
lea ecx, [esi - 1]
cmp ecx, eax
cmovb eax, ecx
add eax, edx
cmp byte [eax], 0x2e
je 0x100a87fe
nop dword [eax]
cmp eax, edx
je 0x100a8950
dec eax
cmp byte [eax], 0x2e
jne 0x100a87f0
sub eax, edx
cmp eax, 0xffffffff
je 0x100a8950
cmp esi, eax
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x2c], 0xf
cmovb eax, esi
mov byte [ebp - 0x40], 0
cmp dword [ebp - 0x14], 0x10
push eax
cmovae ecx, edi
push ecx
lea ecx, [ebp - 0x40]
call fcn.10003310
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x100a8868
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100a885e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a8996
push edx
push ecx
call fcn.100c2c4d
add esp, 8
mov eax, dword [ebp - 0x48]
lea edi, [ebp - 0x28]
movups xmm1, xmmword [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
movq xmm0, qword [ebp - 0x30]
mov ecx, dword [eax + 0x10]
movd eax, xmm1
movups xmmword [ebp - 0x28], xmm1
cmovae edi, eax
movq qword [ebp - 0x18], xmm0
sub ecx, 0xffffff80
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x50], ecx
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a88a0
sub ecx, edx
mov esi, 0x811c9dc5
mov edx, 0
je 0x100a88c6
movzx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100a88b5
and esi, 0x7fffffff
xor edx, edx
mov eax, esi
mov ecx, 0x1f31d
div ecx
mov esi, dword [ebp - 0x50]
imul eax, eax, 0xb14
imul ecx, edx, 0x41a7
sub ecx, eax
lea eax, [ecx + 0x7fffffff]
cmovns eax, ecx
mov ecx, esi
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.10078b30
mov edx, dword [eax + 4]
test edx, edx
je 0x100a890d
mov esi, dword [esi + 8]
jmp 0x100a8912
mov edx, dword [esi + 8]
mov esi, edx
xor ecx, ecx
lea eax, [edx + 0xc]
cmp edx, esi
cmovne ecx, eax
test ecx, ecx
jne 0x100a892d
mov edx, dword [0x100ee540]
mov eax, dword [0x100ee544]
jmp 0x100a8932
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x50], eax
test edx, edx
je 0x100a87c3
cmp edx, 7
je 0x100a87c3
mov edi, dword [ebp - 0x28]
mov cl, 1
mov byte [ebp - 0x41], cl
jmp 0x100a8971
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x100a896c
push dword [ebp - 0x58]
call fcn.100a8780
mov edi, dword [ebp - 0x28]
mov cl, al
mov byte [ebp - 0x41], al
jmp 0x100a8971
xor cl, cl
mov byte [ebp - 0x41], cl
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x100a89a9
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100a899c
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100a899c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edi
call fcn.100c2c4d
mov cl, byte [ebp - 0x41]
add esp, 8
mov al, cl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100c30b8
mov esp, ebp
pop ebp
ret 4