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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
movss xmm0, dword [0x1206f170]
push ebx
mov ebx, dword [ebp + 0x18]
mov al, bl
push esi
mov esi, dword [0x1054ade8]
and al, 1
push edi
mov edi, dword [ebp + 8]
movss dword [ebp - 8], xmm0
movups xmm0, xmmword [esi + 0x15c0]
mov byte [ebp + 0xb], al
lea ecx, [esi + 0x1aac]
shr ebx, 1
lea eax, [ebp - 0x4c]
not ebx
mov dword [ebp - 0x4c], 0
push eax
and ebx, 1
movups xmmword [ebp - 0x48], xmm0
call fcn.100e1e70
movss xmm1, dword [0x1046f104]
mov dword [esi + 0x15c0], 0x3f800000
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x15c4], xmm0
movss dword [esi + 0x15c8], xmm0
mov al, byte [ebp + 0xb]
xor al, 1
movzx eax, al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
mulss xmm0, dword [0x1046f094]
mulss xmm0, dword [ebp - 8]
movss dword [esi + 0x15cc], xmm0
mov ebx, dword [0x1054ade8]
mov dword [ebp - 0x20], ebx
mov eax, dword [ebx + 0x19b0]
mov byte [eax + 0xa4], 1
mov eax, dword [ebx + 0x19b0]
mov dword [ebp + 0x18], eax
cmp byte [eax + 0xa7], 0
jne 0x1013258f
mov ecx, dword [eax + 0xec]
xor edx, edx
mov eax, dword [eax + 0xf4]
push dword [eax + ecx*4 - 4]
mov ecx, edi
call fcn.100d21c0
mov esi, eax
add esp, 4
cmp dword [ebx + 0x19ec], esi
jne 0x1013228a
mov dword [ebx + 0x19f0], esi
cmp dword [ebx + 0x1a20], esi
jne 0x10132299
mov byte [ebx + 0x1a24], 1
mov ecx, edi
cmp edi, 0xffffffff
jae 0x101322b6
mov dl, byte [ecx]
test dl, dl
je 0x101322b6
cmp dl, 0x23
jne 0x101322b0
cmp byte [ecx + 1], dl
je 0x101322b6
inc ecx
cmp ecx, 0xffffffff
jb 0x101322a0
movss xmm2, dword [ebx + 0x18c4]
cmp edi, ecx
jne 0x101322d0
mov dword [ebp - 0x28], 0
movss dword [ebp - 0x24], xmm2
jmp 0x10132311
push ecx
push ecx
push edi
push ecx
mov ecx, dword [ebx + 0x18c0]
lea eax, [ebp - 0x14]
mov dword [esp], 0xbf800000
push eax
call fcn.100f07f0
movss xmm0, dword [ebp - 0x14]
addss xmm0, dword [0x1046f0f4]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0x10]
movss dword [ebp - 0x24], xmm0
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 0x14]
movss xmm2, dword [eax + 0xf8]
movss xmm3, dword [eax + 0xfc]
mov eax, dword [ebp + 0xc]
movss dword [ebp + 0x18], xmm2
movss dword [ebp - 0xc], xmm3
movss dword [ebp - 0x48], xmm2
movss xmm1, dword [eax + 4]
movss xmm0, dword [eax]
addss xmm1, xmm3
addss xmm0, xmm2
movss dword [ebp - 0x44], xmm3
addss xmm1, dword [0x1046f1d8]
movss dword [ebp - 0x40], xmm0
subss xmm0, xmm2
movss dword [ebp - 0x3c], xmm1
subss xmm1, xmm3
movss dword [ebp - 0x14], xmm0
movss dword [ebp - 0x10], xmm1
movss xmm1, dword [ebx + 0x154c]
call fcn.100d4b30
push 0
mov edx, esi
lea ecx, [ebp - 0x48]
call fcn.100d4c60
add esp, 4
test al, al
je 0x1013258f
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x38]
movss xmm2, dword [ebp + 0x18]
mov edx, esi
movss xmm3, dword [ebp - 0xc]
movaps xmm1, xmm2
movaps xmm0, xmm3
movss dword [ebp - 0x38], xmm2
addss xmm1, dword [eax]
addss xmm0, dword [eax + 4]
push 0
lea eax, [ebp + 0x1b]
movss dword [ebp - 0x34], xmm3
push eax
lea eax, [ebp + 0xf]
movss dword [ebp - 0x30], xmm1
push eax
movss dword [ebp - 0x2c], xmm0
call fcn.100f6340
add esp, 0xc
mov bh, al
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [edi + ecx], 0
jne 0x101323e7
xor edx, edx
test ecx, ecx
je 0x10132405
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101323f4
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], esi
push eax
mov ecx, 0x1206f124
call fcn.101326b0
mov ecx, dword [0x1055d084]
mov bl, byte [ebp + 0xf]
add ecx, 0x8227453d
movss xmm0, dword [eax + 4]
xor ecx, 0xb5eaaa9f
lea esi, [eax + 4]
movzx eax, bl
movss xmm2, dword [ecx + 4]
mulss xmm2, dword [0x1046f1e0]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
call fcn.10049560
xorps xmm1, xmm1
movss dword [esi], xmm0
comiss xmm0, xmm1
lea ecx, [ebp + 0xc]
mov dword [ebp - 0x10], 0x3f800000
lea eax, [ebp - 0x10]
mov dword [ebp + 0xc], 0
movss xmm1, dword [0x1046f104]
cmovae ecx, esi
comiss xmm1, xmm0
cmovae eax, ecx
cmp byte [ebp + 0xb], 0
movss xmm2, dword [eax]
movss dword [esi], xmm2
jne 0x101324a0
test bl, bl
je 0x101324a0
cmp byte [ebp + 0x1b], 0
je 0x101324a0
movss xmm1, dword [0x1046f2fc]
jmp 0x101324a8
movss xmm1, dword [0x1046f244]
movaps xmm0, xmm2
mov dword [ebp + 0x18], 0xff
mulss xmm2, dword [0x1046f280]
lea ecx, [ebp + 0xc]
mov bl, 0xd9
mov dword [ebp + 0xc], 0
mulss xmm0, dword [0x1046f4e4]
push 0xf
addss xmm2, xmm1
cvttss2si eax, xmm0
mulss xmm2, dword [ebp - 8]
sub bl, al
lea eax, [ebp + 8]
cvttss2si edx, xmm2
test edx, edx
mov dword [ebp + 8], edx
cmovns ecx, eax
cmp edx, 0xff
lea eax, [ebp + 0x18]
cmovle eax, ecx
mov cl, byte [eax]
movzx eax, bl
push ecx
mov dword [esp], 0x40800000
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, cl
lea ecx, [ebp - 0x1c]
mulss xmm0, dword [0x1046efa4]
movss dword [ebp - 0x1c], xmm0
movss dword [ebp - 0x18], xmm0
movss dword [ebp - 0x14], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1046efa4]
movss dword [ebp - 0x10], xmm0
call fcn.1004a1d0
mov ecx, dword [0x1206e634]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.100ece10
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x30]
add eax, 0x1594
lea ecx, [ebp - 0x38]
push eax
lea eax, [ebp - 0x28]
push eax
push 0
push edi
call fcn.100d34b0
add esp, 0x14
mov ecx, 1
call fcn.100dc190
mov al, bh
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, 1
call fcn.100dc190
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x14