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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push esi
push edi
call dword [0x101006a8]
mov ecx, dword [eax]
mov edx, dword [ecx]
mov ecx, eax
call edx
mov esi, eax
mov dword [ebp - 4], esi
mov ecx, dword [esi + 0x108]
mov edi, dword [esi + 0xf8]
lea ecx, [ecx + ecx*2]
lea ebx, [edi + ecx*8]
cmp edi, ebx
je 0x10088a06
nop word [eax + eax]
mov esi, dword [edi + 0x14]
mov ecx, 0x811c9dc5
mov dword [ebp - 0xc], esi
mov edx, dword [esi + 0x54]
mov al, byte [edx]
test al, al
je 0x100889f8
movsx eax, al
lea edx, [edx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx]
test al, al
jne 0x10088898
cmp ecx, 0x4c4d32d2
ja 0x1008890a
je 0x1008897f
cmp ecx, 0x364ac5c9
ja 0x100888f1
je 0x1008897f
cmp ecx, 0x1c826fb7
je 0x1008897f
cmp ecx, 0x270878d9
je 0x1008897f
cmp ecx, 0x31a22966
je 0x1008897f
jmp 0x100889f8
cmp ecx, 0x3777501c
je 0x1008897f
cmp ecx, 0x436acdab
je 0x1008897f
jmp 0x100889f8
cmp ecx, 0xcb4eaae5
ja 0x10088950
je 0x1008897f
cmp ecx, 0xa980d17e
ja 0x1008893b
je 0x1008897f
cmp ecx, 0x4c6b53b1
je 0x1008897f
cmp ecx, 0x8744f73b
je 0x1008897f
cmp ecx, 0x9707deaa
je 0x1008897f
jmp 0x100889f8
cmp ecx, 0xb9bdaa29
je 0x1008897f
cmp ecx, 0xbabc9bdf
je 0x1008897f
jmp 0x100889f8
cmp ecx, 0xe9e75b2c
ja 0x1008896f
je 0x1008897f
cmp ecx, 0xd1c6bae6
je 0x1008897f
cmp ecx, 0xd99b271a
je 0x1008897f
jmp 0x100889f8
cmp ecx, 0xf102793d
je 0x1008897f
cmp ecx, 0xf48712ac
jne 0x100889f8
movsx eax, word [esi + 8]
mov ecx, 0x101021d8
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.10010d00
mov edx, 0x811c9dc5
mov eax, dword [eax]
mov dword [eax + 0xc], esi
mov ecx, dword [esi + 0x54]
mov al, byte [ecx]
test al, al
je 0x100889c4
nop dword [eax + eax]
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx]
test al, al
jne 0x100889b0
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], edx
push eax
lea eax, [ebp - 0x28]
mov ecx, 0x10102218
push eax
call fcn.1003ae60
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
add ecx, 0xc
cmp eax, dword [ecx + 8]
je 0x100889ee
mov dword [eax], esi
add dword [ecx + 4], 4
jmp 0x100889f8
lea edx, [ebp - 0xc]
push edx
push eax
call fcn.10018960
add edi, 0x18
cmp edi, ebx
jne 0x10088880
mov esi, dword [ebp - 4]
mov ecx, dword [esi + 0x28c]
mov eax, dword [esi + 0x29c]
mov dword [ebp - 0x14], ecx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x2c], eax
cmp ecx, eax
je 0x10088b8a
nop word [eax + eax]
mov eax, dword [ecx + 0x14]
mov ebx, dword [esi + 0x220]
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x230]
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov dword [ebp - 0x10], ebx
lea eax, [ebx + ecx*8]
mov dword [ebp - 0x24], eax
cmp ebx, eax
je 0x10088b78
mov ebx, dword [ebx + 0x18]
mov esi, ebx
lea ecx, [esi + 1]
nop dword [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x10088a70
sub esi, ecx
cmp byte [esi + ebx - 7], 0x5f
jne 0x10088b63
lea edi, [esi - 0x1d]
push edi
call fcn.1008fb11
add esp, 4
mov dword [ebp - 0x18], eax
lea ecx, [esi - 0x1e]
push ecx
lea ecx, [ebx + 0x17]
mov ebx, eax
push ecx
push edi
push ebx
call fcn.100a059b
mov edi, dword [ebp - 0x1c]
push edi
push ebx
mov byte [ebx + esi - 0x1e], 0
call fcn.10091810
mov ecx, eax
add esp, 0x18
test ecx, ecx
je 0x10088b63
mov edx, edi
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x10088ac5
sub edx, esi
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10088ad1
sub ecx, esi
cmp edx, ecx
jne 0x10088b63
push edi
push ebx
call fcn.10091810
mov esi, dword [ebp - 4]
add esp, 8
mov ecx, esi
mov byte [eax - 1], 0
mov eax, dword [esi]
push ebx
mov eax, dword [eax + 0xa8]
call eax
test eax, eax
je 0x10088b66
movsx eax, word [eax + 8]
mov ecx, 0x10102238
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.1003ae60
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
add ecx, 0xc
cmp eax, dword [ecx + 8]
je 0x10088b35
mov edi, dword [ebp - 0xc]
mov dword [eax], edi
add dword [ecx + 4], 4
jmp 0x10088b45
lea edx, [ebp - 8]
push edx
push eax
call fcn.10018960
mov edi, dword [ebp - 8]
mov dword [ebp - 0xc], edi
mov eax, dword [edi]
mov ecx, 0x101021f8
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.10010d00
mov eax, dword [eax]
mov dword [eax + 0xc], edi
jmp 0x10088b66
mov esi, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
add ebx, 0x78
mov dword [ebp - 0x10], ebx
cmp ebx, dword [ebp - 0x24]
jne 0x10088a63
mov ecx, dword [ebp - 0x14]
add ecx, 0x18
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x2c]
jne 0x10088a30
mov eax, dword [0x1010223c]
mov dword [ebp - 0x2c], eax
mov edi, dword [eax]
cmp edi, eax
je 0x10088c42
nop dword [eax]
lea ebx, [edi + 8]
push ebx
lea eax, [ebp - 0x40]
push eax
call fcn.10089800
mov edx, 0x811c9dc5
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x54]
mov al, byte [ecx]
test al, al
je 0x10088bd4
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx]
test al, al
jne 0x10088bc0
push 0x260c9112
push 0x100c88cd
call fcn.10003c40
cmp edx, eax
je 0x10088c37
push 0x260c9112
push 0x100c88e1
call fcn.10003c40
cmp edx, eax
je 0x10088c37
push ebx
lea eax, [ebp - 0x38]
mov ecx, 0x10102238
push eax
call fcn.1003ae60
push ebx
mov ecx, 0x10102238
mov esi, dword [eax]
lea eax, [ebp - 0x28]
push eax
mov esi, dword [esi + 0x10]
call fcn.1003ae60
push dword [ebp - 0x2c]
mov edx, esi
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov eax, esi
sub eax, ecx
sar eax, 2
push eax
call fcn.10089a80
add esp, 8
mov edi, dword [edi]
cmp edi, dword [ebp - 0x2c]
jne 0x10088ba0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret