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

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [0x1012deb4]
sub esp, 8
push ebx
push esi
push edi
test cl, 1
jne 0x100a8c24
or ecx, 1
mov dword [0x1012deb4], ecx
mov ebx, dword [0x1012b178]
mov ebx, dword [ebx + 0x30]
mov dword [ebp - 4], ebx
test ebx, ebx
je 0x100a8c09
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop dword [eax + eax]
inc ecx
cmp byte [edi + ecx], 0
jne 0x100a8bd0
xor edx, edx
test ecx, ecx
je 0x100a8bf9
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100a8be0
cmp esi, 0x51c2378
je 0x100a8c16
mov ebx, dword [ebx + 4]
mov dword [ebp - 4], ebx
test ebx, ebx
jne 0x100a8bc1
mov ecx, dword [0x1012deb4]
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [0x1012deb0], ebx
jmp 0x100a8c2c
mov ecx, dword [0x1012deb4]
mov dword [0x1012deb0], ebx
jmp 0x100a8c2c
mov eax, dword [0x1012deb0]
mov dword [ebp - 4], eax
test cl, 2
jne 0x100a8c92
or ecx, 2
mov dword [0x1012deb4], ecx
mov eax, dword [0x1012b178]
mov ebx, dword [eax + 0x30]
test ebx, ebx
je 0x100a8c8a
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [edi + ecx], 0
jne 0x100a8c50
xor edx, edx
test ecx, ecx
je 0x100a8c7d
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100a8c60
cmp esi, 0x874b1932
je 0x100a8d06
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100a8c46
mov ecx, dword [0x1012deb4]
xor ebx, ebx
mov dword [0x1012deb8], ebx
test cl, 4
jne 0x100a8d1f
or ecx, 4
mov dword [0x1012deb4], ecx
mov eax, dword [0x1012b178]
mov ebx, dword [eax + 0x30]
mov dword [ebp - 8], ebx
test ebx, ebx
je 0x100a8cf9
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [edi + ecx], 0
jne 0x100a8cc0
xor edx, edx
test ecx, ecx
je 0x100a8ce9
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100a8cd0
cmp esi, 0x2d45f02d
je 0x100a8d11
mov ebx, dword [ebx + 4]
mov dword [ebp - 8], ebx
test ebx, ebx
jne 0x100a8cb3
mov ecx, dword [0x1012deb4]
xor ebx, ebx
mov dword [ebp - 8], ebx
mov dword [0x1012debc], ebx
jmp 0x100a8d27
mov ecx, dword [0x1012deb4]
jmp 0x100a8c8c
mov ecx, dword [0x1012deb4]
mov dword [0x1012debc], ebx
jmp 0x100a8d27
mov eax, dword [0x1012debc]
mov dword [ebp - 8], eax
test cl, 8
jne 0x100a8d86
or ecx, 8
mov dword [0x1012deb4], ecx
mov eax, dword [0x1012b178]
mov ebx, dword [eax + 0x30]
jmp 0x100a8d7c
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [edi + ecx], 0
jne 0x100a8d50
xor edx, edx
test ecx, ecx
je 0x100a8d79
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100a8d60
cmp esi, 0x227932f
je 0x100a8d80
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100a8d40
mov dword [0x1012dec0], ebx
mov eax, dword [0x1012b38c]
mov esi, dword [ebp + 8]
add eax, 0xffffffd5
xor eax, 0x6154a8e2
cmp dword [eax + esi], 3
jne 0x100a8dc0
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp + 8], eax
call dword [ebp + 8]
mov ecx, dword [0x1012deb8]
fstp dword [ebp - 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp + 8], eax
call dword [ebp + 8]
jmp 0x100a8de2
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp + 8], eax
call dword [ebp + 8]
mov ecx, dword [0x1012dec0]
fstp dword [ebp - 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp + 8], eax
call dword [ebp + 8]
mov eax, dword [0x1012b3fc]
add eax, 0xffffffb9
mov ebx, dword [ebp + 0x14]
xor eax, 0x6154a8fe
fstp dword [ebp + 8]
mov dl, byte [eax + esi]
mov eax, dword [0x1012b404]
add eax, 0xffffffb7
xor eax, 0x6154a900
mov cl, byte [eax + esi]
mov eax, dword [0x1012b41c]
add eax, 0xffffffb1
xor eax, 0x6154a906
movd xmm3, dword [eax + esi]
cvtdq2ps xmm3, xmm3
comiss xmm3, dword [0x100c96e4]
jbe 0x100a8e57
cmp ebx, 0xa
ja case.0x100a8e32.6
movzx eax, byte [ebx + 0x100a8f5c]
jmp dword [eax*4 + 0x100a8f50]
mov cl, 1
jmp case.0x100a8e32.6
test dl, dl
jne 0x100a8e4d
test cl, cl
jne 0x100a8e4d
movaps xmm4, xmm3
lea eax, [ebx - 1]
jmp 0x100a8e64
mov cl, 1
lea eax, [ebx - 1]
movaps xmm4, xmm3
jmp 0x100a8e64
xor cl, cl
lea eax, [ebx - 1]
movaps xmm4, xmm3
cmp eax, 9
ja case.0x100a8e6b.8
movzx eax, byte [eax + 0x100a8f7c]
jmp dword [eax*4 + 0x100a8f68]
movss xmm5, dword [ebp + 0xc]
mulss xmm5, dword [0x100c91d4]
mulss xmm5, dword [ebp - 8]
jmp 0x100a8ebf
movss xmm5, dword [ebp + 0xc]
mulss xmm5, dword [0x100ce870]
mulss xmm5, dword [ebp + 8]
jmp 0x100a8ebf
movss xmm5, dword [ebp + 8]
mulss xmm5, dword [ebp + 0xc]
jmp 0x100a8ebf
movss xmm5, dword [ebp + 0xc]
mulss xmm5, dword [0x100cec78]
mulss xmm5, dword [ebp + 8]
jmp 0x100a8ebf
movss xmm5, dword [ebp + 0xc]
test cl, cl
je 0x100a8ef6
movss xmm2, dword [ebp + 0x10]
movaps xmm0, xmm5
mulss xmm2, dword [0x100c86fc]
mulss xmm2, xmm5
subss xmm0, xmm2
mulss xmm0, dword [0x100c86fc]
comiss xmm0, xmm4
jbe 0x100a8ef3
addss xmm3, xmm3
movaps xmm2, xmm5
subss xmm2, xmm3
movaps xmm5, xmm2
movss xmm3, dword [0x100caab0]
movaps xmm0, xmm5
movss xmm2, dword [0x100caaac]
andps xmm3, xmm5
xorps xmm0, xmm3
movss xmm4, dword [0x100c8708]
cmpltss xmm0, xmm2
movaps xmm1, xmm5
pop edi
pop esi
pop ebx
andps xmm2, xmm0
orps xmm2, xmm3
addss xmm1, xmm2
subss xmm1, xmm2
movaps xmm0, xmm1
subss xmm0, xmm5
cmpnless xmm0, xmm3
andps xmm0, xmm4
subss xmm1, xmm0
movss dword [ebp + 0x14], xmm1
fld dword [ebp + 0x14]
mov esp, ebp
pop ebp
ret