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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x103aadd3
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x18
push esi
push edi
mov eax, dword [0x1049b0c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movaps xmm4, xmm2
mov eax, dword [ebx + 8]
mov esi, dword [eax + 0x9960]
test esi, esi
jne 0x1027ac73
xorps xmm0, xmm0
jmp 0x1027afff
movss xmm0, dword [esi + 0x130]
lea ecx, [esi + 0x130]
movss xmm5, dword [0x1046f104]
lea edx, [ebp - 0x20]
movss xmm7, dword [esi + 0x11c]
xorps xmm6, xmm6
comiss xmm6, xmm0
mov dword [ebp - 0x1c], 0x3f800000
mov dword [ebp - 0x20], 0
movss xmm1, dword [esi + 0xa4]
movaps xmm2, xmm5
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x1c]
comiss xmm0, xmm5
movaps xmm0, xmm7
mulss xmm0, dword [0x1046f058]
seta al
test al, al
addss xmm0, dword [0x1046f048]
cmove ecx, edx
comiss xmm1, xmm6
mulss xmm0, dword [ecx]
subss xmm2, xmm0
jbe 0x1027ad39
movss xmm0, dword [esi + 0xa8]
lea ecx, [esi + 0xa8]
comiss xmm6, xmm0
lea edx, [ebp - 0x20]
mov dword [ebp - 0x1c], 0x3f800000
mov dword [ebp - 0x20], 0
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x1c]
comiss xmm0, xmm5
movss xmm0, dword [0x1046f094]
subss xmm0, xmm2
seta al
test al, al
cmove ecx, edx
mulss xmm1, dword [ecx]
mulss xmm1, xmm0
addss xmm2, xmm1
movss xmm5, dword [0x1046f504]
movaps xmm0, xmm4
movss xmm6, dword [0x1046f384]
subss xmm0, xmm3
movaps xmm1, xmm2
mulss xmm2, dword [esi + 0x334]
mulss xmm1, dword [esi + 0x338]
comiss xmm5, xmm0
movss xmm5, dword [0x1046f3d8]
jbe 0x1027ad76
addss xmm0, xmm5
jmp 0x1027ad7f
comiss xmm0, xmm6
jbe 0x1027ad7f
subss xmm0, xmm5
comiss xmm0, xmm1
jbe 0x1027ad94
andps xmm1, xmmword [0x1046f8b0]
movaps xmm3, xmm4
subss xmm3, xmm1
jmp 0x1027ada7
comiss xmm2, xmm0
jbe 0x1027ada7
movaps xmm3, xmm2
andps xmm3, xmmword [0x1046f8b0]
addss xmm3, xmm4
cmp byte [esi + 0x108], 0
je 0x1027afd8
movss xmm0, dword [esi + 0xec]
comiss xmm0, dword [0x1046f00c]
ja 0x1027af8d
movss xmm0, dword [esi + 0xf0]
xor eax, eax
movss xmm1, dword [0x1046f32c]
comiss xmm0, xmm1
setae al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm0, qword [0x1046ef48]
lahf
test ah, 0x44
jp 0x1027af8d
movss xmm0, dword [0x1046f050]
comiss xmm0, xmm7
ja 0x1027af8d
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x10c]
movss xmm2, dword [eax + 0x20]
mov eax, dword [0x10541624]
mulss xmm2, xmm1
test al, 1
jne 0x1027af7e
or eax, 1
mov dword [0x10541624], eax
mov dword [ebp - 4], 0
mov eax, dword [0x1053ebb8]
mov dword [ebp - 0x18], eax
cmp eax, dword [0x1053ebbc]
je 0x1027aeaa
mov ecx, dword [eax]
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x1027ae9c
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1027ae70
xor edx, edx
test ecx, ecx
je 0x1027ae9c
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1027ae80
cmp edi, 0x72e242a1
je 0x1027aebe
mov eax, dword [ebp - 0x18]
add eax, 4
mov dword [ebp - 0x18], eax
cmp eax, dword [0x1053ebbc]
jne 0x1027ae56
mov ecx, dword [ebx + 8]
xor eax, eax
mov dword [0x105446f0], eax
movss xmm0, dword [eax + ecx]
jmp 0x1027afbd
mov eax, dword [ebp - 0x14]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], edi
cmp dword [eax + 4], edi
jle 0x1027af55
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x24], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1027af0b
cmp dword [ecx + 4], 0
jle 0x1027af0b
push 0
mov edx, 0x9ef0d03e
call fcn.10238b60
add esp, 4
test eax, eax
je 0x1027af08
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x14]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x1027af14
xor edx, edx
test ecx, ecx
je 0x1027af3d
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1027af21
cmp edi, 0x9ef0d03e
je 0x1027af66
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x1027aed7
mov ecx, dword [ebx + 8]
mov eax, edi
mov dword [0x105446f0], eax
movss xmm0, dword [eax + ecx]
jmp 0x1027afbd
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebx + 8]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
mov dword [0x105446f0], eax
movss xmm0, dword [eax + ecx]
jmp 0x1027afbd
mov eax, dword [0x105446f0]
mov ecx, dword [ebx + 8]
movss xmm0, dword [eax + ecx]
jmp 0x1027afbd
mov eax, dword [0x11b92250]
movaps xmm2, xmm7
mulss xmm2, dword [0x1046f244]
add eax, 0xc6c19814
xor eax, 0x26996288
movaps xmm0, xmm4
addss xmm2, dword [0x1046f280]
mov eax, dword [eax + 0x10c]
mulss xmm2, dword [eax + 0x20]
movaps xmm1, xmm3
call fcn.10233050
movss xmm6, dword [0x1046f384]
movaps xmm3, xmm0
movss xmm5, dword [0x1046f3d8]
movss xmm0, dword [0x1046f504]
comiss xmm0, xmm3
jbe 0x1027afee
addss xmm3, xmm5
comiss xmm0, xmm3
ja 0x1027afe5
comiss xmm3, xmm6
jbe 0x1027affc
subss xmm3, xmm5
comiss xmm3, xmm6
ja 0x1027aff3
movaps xmm0, xmm3
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4