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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x30
mov eax, dword [0x100c100c]
xor eax, esp
mov dword [esp + 0x2c], eax
cmp dword [0x100c1614], 0
push esi
push edi
je 0x1008d76f
cmp dword [0x100c160c], 0
je 0x1008d76f
cmp dword [0x100c1610], 0x1f
je 0x1008d76f
cmp dword [0x100c1240], 0
je 0x1008d76f
cmp byte [0x100c1244], 0
je 0x1008d76f
test byte [0x100c1670], 2
jne 0x1008d76f
test byte [0x100c1248], 1
je 0x1008d76f
push 0
push dword [0x100c2360]
push dword [0x100c235c]
call fcn.100a2fb0
mov ecx, dword [0x100c2360]
cmp eax, ecx
jne 0x1008d3af
test byte [0x100c1248], 1
jne 0x1008d3ba
mov eax, dword [0x100c23d8]
cmp eax, 0xffffffff
je 0x1008d3ba
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x100d33d0]
test al, al
je 0x1008d3ba
call fcn.1008d090
mov ecx, dword [0x100c2360]
push 1
push ecx
push dword [0x100c235c]
call fcn.100a2fb0
cmp eax, dword [0x100c2360]
je 0x1008d76f
mov eax, dword [0x10106b94]
mov esi, dword [0x100c1240]
add eax, 0xffffffb8
mov ecx, dword [0x100c1614]
xor eax, 0xe7c7045f
mov dl, byte [eax + esi]
test dl, dl
je 0x1008d3fe
movss xmm2, dword [ecx + 0x130]
jmp 0x1008d406
movss xmm2, dword [ecx + 0x12c]
mov edi, dword [0x10106b10]
lea eax, [edi - 0x27]
xor eax, 0xe7c7043e
movss xmm1, dword [eax + esi + 4]
movss xmm0, dword [eax + esi]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1001ccc0
mulss xmm2, dword [0x100b65fc]
comiss xmm2, xmm0
jbe 0x1008d4d0
test dl, dl
je 0x1008d44f
movss xmm0, dword [ecx + 0x130]
jmp 0x1008d457
movss xmm0, dword [ecx + 0x12c]
mov eax, dword [0x100c1664]
cvtps2pd xmm0, xmm0
and dword [eax + 0x30], 0xfffdffff
movss xmm3, dword [eax + 0x28]
mulsd xmm0, qword [0x100b6698]
movss xmm2, dword [eax + 0x24]
movaps xmm1, xmm2
mulss xmm1, xmm2
cvtpd2ps xmm4, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm1, xmm0
sqrtss xmm1, xmm1
comiss xmm1, dword [0x100b6744]
jbe 0x1008d76f
comiss xmm1, xmm4
jbe 0x1008d76f
divss xmm2, xmm1
divss xmm3, xmm1
movaps xmm0, xmm1
minss xmm0, xmm4
mulss xmm2, xmm0
movaps xmm0, xmm1
minss xmm0, xmm4
movss dword [eax + 0x24], xmm2
mulss xmm0, xmm3
jmp 0x1008d76a
lea eax, [edi - 0x27]
xor eax, 0xe7c7043e
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 [0x100c1664]
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.1001ccc0
movaps xmm2, xmm0
xorps xmm1, xmm1
comiss xmm2, xmm1
movss xmm0, dword [esp + 0x24]
movss dword [esp + 0x10], xmm1
jbe 0x1008d574
xorps xmm0, xmmword [0x100b6980]
movaps xmm1, xmm2
call fcn.1001cc50
mulss xmm0, dword [0x100b676c]
movaps xmm1, xmm3
movss dword [esp + 0xc], xmm0
movaps xmm0, xmm4
call fcn.1001cc50
mulss xmm0, dword [0x100b676c]
movss dword [esp + 0x10], xmm0
jmp 0x1008d591
comiss xmm0, xmm1
jbe 0x1008d583
movss xmm0, dword [0x100b6868]
jmp 0x1008d58b
movss xmm0, dword [0x100b6790]
movss dword [esp + 0xc], xmm0
mov ecx, dword [0x10106910]
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 [0x100b6594]
call fcn.1001cc80
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x2c]
subss xmm0, dword [esp + 0x10]
mulss xmm0, dword [0x100b6594]
movss dword [esp + 0x10], xmm0
call fcn.1001cc80
mulss xmm0, dword [esp + 0xc]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x10]
call fcn.1001ccb0
mulss xmm0, dword [esp + 0xc]
mov ecx, dword [0x1010c540]
movss dword [esp + 0x14], xmm0
test cl, 1
jne 0x1008d688
or ecx, 1
mov dword [0x1010c540], ecx
mov eax, dword [0x1010690c]
mov eax, dword [eax + 0x30]
mov dword [esp + 0xc], eax
test eax, eax
je 0x1008d66e
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x1008d630
xor edx, edx
test ecx, ecx
je 0x1008d65d
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1008d640
mov eax, dword [esp + 0xc]
cmp esi, 0x7939b3a7
je 0x1008d67b
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x1008d622
mov ecx, dword [0x1010c540]
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [0x1010c554], eax
jmp 0x1008d691
mov ecx, dword [0x1010c540]
mov dword [0x1010c554], eax
jmp 0x1008d691
mov eax, dword [0x1010c554]
mov dword [esp + 0xc], eax
test cl, 2
jne 0x1008d6ff
or ecx, 2
mov dword [0x1010c540], ecx
mov eax, dword [0x1010690c]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x10], eax
test eax, eax
je 0x1008d6f8
nop
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x1008d6c0
xor edx, edx
test ecx, ecx
je 0x1008d6ed
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1008d6d0
mov eax, dword [esp + 0x10]
cmp esi, 0xda6a172f
je 0x1008d6fa
mov eax, dword [eax + 4]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1008d6b0
xor eax, eax
mov dword [0x1010c548], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x10], eax
call dword [esp + 0x10]
mov ecx, dword [0x1010c548]
fstp dword [esp + 0x10]
movss xmm0, dword [esp + 0x10]
xorps xmm0, xmmword [0x100b6980]
mov eax, dword [ecx]
movss dword [esp + 0xc], xmm0
mov eax, dword [eax + 0x30]
mov dword [esp + 0x10], eax
call dword [esp + 0x10]
fmul dword [esp + 0x14]
movss xmm1, dword [esp + 0x18]
mov eax, dword [0x100c1664]
mulss xmm1, dword [esp + 0xc]
fstp dword [esp + 0x14]
movss xmm0, dword [esp + 0x14]
xorps xmm0, xmmword [0x100b6980]
movss dword [eax + 0x24], xmm1
mov eax, dword [0x100c1664]
movss dword [eax + 0x28], xmm0
mov ecx, dword [esp + 0x34]
pop edi
pop esi
xor ecx, esp
call fcn.100a3196
mov esp, ebp
pop ebp
ret