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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x30
mov eax, dword [0x10102380]
xor eax, esp
mov dword [esp + 0x2c], eax
mov edx, dword [0x10203f04]
mov ecx, dword [0x101bfe70]
add edx, 0xffffffb7
push esi
mov esi, dword [0x101bf810]
xor edx, 0x930bf672
push edi
cmp byte [edx + esi], 0
jbe 0x100c8cb1
movss xmm2, dword [ecx + 0x130]
jmp 0x100c8cb9
movss xmm2, dword [ecx + 0x12c]
cmp byte [0x101bff84], 0
mulss xmm2, dword [0x100f4fbc]
mov byte [0x1020227a], 0
je 0x100c90bd
mov eax, dword [0x101c8070]
cmp eax, 0xffffffff
je 0x100c8cf1
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x101d0ed0]
test al, al
jne 0x100c90bd
mov edi, dword [0x10203e80]
lea eax, [edi - 0x28]
xor eax, 0x930bf651
movss xmm1, dword [eax + esi + 4]
movss xmm0, dword [eax + esi]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10022af0
comiss xmm2, xmm0
jbe 0x100c8e2b
cmp byte [edx + esi], 0
jbe 0x100c8d34
movss xmm0, dword [ecx + 0x130]
jmp 0x100c8d3c
movss xmm0, dword [ecx + 0x12c]
mov eax, dword [0x101bfec8]
cvtps2pd xmm0, xmm0
or dword [eax + 0x30], 0x20000
mov ecx, dword [0x101bfec8]
mulsd xmm0, qword [0x100f5068]
movss xmm6, dword [ecx + 0x28]
movss xmm4, dword [ecx + 0x24]
movaps xmm1, xmm4
cvtpd2ps xmm5, xmm0
movaps xmm0, xmm6
mulss xmm1, xmm4
mulss xmm0, xmm6
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
comiss xmm0, xmm5
jbe 0x100c90bd
mov eax, dword [0x10203e80]
movss xmm3, dword [0x100f5020]
add eax, 0xffffffd8
xor eax, 0x930bf651
add eax, dword [0x101bf810]
divss xmm3, xmm0
movss xmm2, dword [eax + 4]
movss xmm0, dword [eax]
mulss xmm0, xmm0
mulss xmm2, xmm2
cvtps2pd xmm1, xmm5
addss xmm0, xmm2
addsd xmm1, qword [0x100f5070]
call fcn.10022af0
cvtss2sd xmm0, xmm0
comisd xmm0, xmm1
jb 0x100c8dfb
mov dword [ecx + 0x24], 0
mov eax, dword [0x101bfec8]
mov dword [eax + 0x28], 0
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.100e3536
mov esp, ebp
pop ebp
ret
mulss xmm4, xmm3
mulss xmm3, xmm6
mulss xmm4, xmm5
mulss xmm3, xmm5
movss dword [ecx + 0x24], xmm4
mov eax, dword [0x101bfec8]
movss dword [eax + 0x28], xmm3
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.100e3536
mov esp, ebp
pop ebp
ret
lea eax, [edi - 0x28]
xor eax, 0x930bf651
movq xmm0, qword [eax + esi]
mov eax, dword [eax + esi + 8]
movq qword [esp + 0x1c], xmm0
movss xmm3, dword [esp + 0x1c]
movss xmm4, dword [esp + 0x20]
mov dword [esp + 0x24], eax
movaps xmm1, xmm4
mov eax, dword [0x101bfec8]
mulss xmm1, xmm4
movq xmm0, qword [eax + 0xc]
movq qword [esp + 0x28], xmm0
movaps xmm0, xmm3
mov eax, dword [eax + 0x14]
mulss xmm0, xmm3
mov dword [esp + 0x30], eax
addss xmm0, xmm1
call fcn.10022af0
movaps xmm2, xmm0
xorps xmm1, xmm1
comiss xmm2, xmm1
movss xmm0, dword [esp + 0x24]
movss dword [esp + 0x10], xmm1
jbe 0x100c8ecf
xorps xmm0, xmmword [0x100f6350]
movaps xmm1, xmm2
call fcn.10022aa0
mulss xmm0, dword [0x100f5164]
movaps xmm1, xmm3
movss dword [esp + 0xc], xmm0
movaps xmm0, xmm4
call fcn.10022aa0
mulss xmm0, dword [0x100f5164]
movss dword [esp + 0x10], xmm0
jmp 0x100c8eec
comiss xmm0, xmm1
jbe 0x100c8ede
movss xmm0, dword [0x100f5288]
jmp 0x100c8ee6
movss xmm0, dword [0x100f5194]
movss dword [esp + 0xc], xmm0
mov ecx, dword [0x10203c98]
lea edx, [esp + 0x28]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
movss xmm0, dword [esp + 0xc]
mulss xmm0, dword [0x100f4f44]
call fcn.10022ad0
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x2c]
subss xmm0, dword [esp + 0x10]
mulss xmm0, dword [0x100f4f44]
movss dword [esp + 0x10], xmm0
call fcn.10022ad0
mulss xmm0, dword [esp + 0xc]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x10]
call fcn.10022ae0
mulss xmm0, dword [esp + 0xc]
mov ecx, dword [0x10209f74]
movss dword [esp + 0x14], xmm0
test cl, 1
jne 0x100c8fe8
or ecx, 1
mov dword [0x10209f74], ecx
mov eax, dword [0x10203c94]
mov eax, dword [eax + 0x30]
mov dword [esp + 0xc], eax
test eax, eax
je 0x100c8fce
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop dword [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x100c8f90
xor edx, edx
test ecx, ecx
je 0x100c8fbd
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100c8fa0
mov eax, dword [esp + 0xc]
cmp esi, 0x7939b3a7
je 0x100c8fdb
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x100c8f81
mov ecx, dword [0x10209f74]
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [0x10209f78], eax
jmp 0x100c8ff1
mov ecx, dword [0x10209f74]
mov dword [0x10209f78], eax
jmp 0x100c8ff1
mov eax, dword [0x10209f78]
mov dword [esp + 0xc], eax
test cl, 2
jne 0x100c905f
or ecx, 2
mov dword [0x10209f74], ecx
mov eax, dword [0x10203c94]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x10], eax
test eax, eax
je 0x100c9058
nop
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x100c9020
xor edx, edx
test ecx, ecx
je 0x100c904d
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100c9030
mov eax, dword [esp + 0x10]
cmp edi, 0xda6a172f
je 0x100c905a
mov eax, dword [eax + 4]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100c9010
xor eax, eax
mov dword [0x10209f80], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x10209f80]
fstp dword [esp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x10], eax
call dword [esp + 0x10]
movss xmm0, dword [esp + 0xc]
mulss xmm0, dword [esp + 0x18]
mov eax, dword [0x101bfec8]
fmul dword [esp + 0x14]
xorps xmm0, xmmword [0x100f6350]
movss dword [eax + 0x24], xmm0
mov eax, dword [0x101bfec8]
fstp dword [esp + 0x14]
movss xmm1, dword [esp + 0x14]
xorps xmm1, xmmword [0x100f6350]
movss dword [eax + 0x28], xmm1
mov ecx, dword [esp + 0x34]
pop edi
pop esi
xor ecx, esp
call fcn.100e3536
mov esp, ebp
pop ebp
ret