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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x30
mov eax, dword [0x100c5040]
xor eax, esp
mov dword [esp + 0x2c], eax
mov edx, dword [0x1010ebb4]
mov ecx, dword [0x100c5494]
add edx, 0xffffffb6
push esi
mov esi, dword [0x100c5100]
xor edx, 0xf40f8ab7
push edi
cmp byte [edx + esi], 0
jbe 0x10090a71
movss xmm2, dword [ecx + 0x130]
jmp 0x10090a79
movss xmm2, dword [ecx + 0x12c]
cmp byte [0x100c55a0], 0
mulss xmm2, dword [0x100ba944]
mov byte [0x1010cf04], 0
je 0x10090e7d
mov eax, dword [0x100cd38c]
cmp eax, 0xffffffff
je 0x10090ab1
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x100d5d70]
test al, al
jne 0x10090e7d
mov edi, dword [0x1010eb28]
lea eax, [edi - 0x27]
xor eax, 0xf40f8a94
movss xmm1, dword [eax + esi + 4]
movss xmm0, dword [eax + esi]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1001f740
comiss xmm2, xmm0
jbe 0x10090beb
cmp byte [edx + esi], 0
jbe 0x10090af4
movss xmm0, dword [ecx + 0x130]
jmp 0x10090afc
movss xmm0, dword [ecx + 0x12c]
mov eax, dword [0x100c54e4]
cvtps2pd xmm0, xmm0
or dword [eax + 0x30], 0x20000
mov ecx, dword [0x100c54e4]
mulsd xmm0, qword [0x100ba9f0]
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 0x10090e7d
mov eax, dword [0x1010eb28]
movss xmm3, dword [0x100ba9a8]
add eax, 0xffffffd9
xor eax, 0xf40f8a94
add eax, dword [0x100c5100]
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 [0x100ba9f8]
call fcn.1001f740
cvtss2sd xmm0, xmm0
comisd xmm0, xmm1
jb 0x10090bbb
mov dword [ecx + 0x24], 0
mov eax, dword [0x100c54e4]
mov dword [eax + 0x28], 0
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.100a5fbc
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 [0x100c54e4]
movss dword [eax + 0x28], xmm3
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.100a5fbc
mov esp, ebp
pop ebp
ret
lea eax, [edi - 0x27]
xor eax, 0xf40f8a94
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 [0x100c54e4]
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.1001f740
movaps xmm2, xmm0
xorps xmm1, xmm1
comiss xmm2, xmm1
movss xmm0, dword [esp + 0x24]
movss dword [esp + 0x10], xmm1
jbe 0x10090c8f
xorps xmm0, xmmword [0x100bacf0]
movaps xmm1, xmm2
call fcn.1001f6f0
mulss xmm0, dword [0x100baac8]
movaps xmm1, xmm3
movss dword [esp + 0xc], xmm0
movaps xmm0, xmm4
call fcn.1001f6f0
mulss xmm0, dword [0x100baac8]
movss dword [esp + 0x10], xmm0
jmp 0x10090cac
comiss xmm0, xmm1
jbe 0x10090c9e
movss xmm0, dword [0x100babe0]
jmp 0x10090ca6
movss xmm0, dword [0x100baafc]
movss dword [esp + 0xc], xmm0
mov ecx, dword [0x1010e938]
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 [0x100ba8cc]
call fcn.1001f720
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x2c]
subss xmm0, dword [esp + 0x10]
mulss xmm0, dword [0x100ba8cc]
movss dword [esp + 0x10], xmm0
call fcn.1001f720
mulss xmm0, dword [esp + 0xc]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x10]
call fcn.1001f730
mulss xmm0, dword [esp + 0xc]
mov ecx, dword [0x10114cbc]
movss dword [esp + 0x14], xmm0
test cl, 1
jne 0x10090da8
or ecx, 1
mov dword [0x10114cbc], ecx
mov eax, dword [0x1010e934]
mov eax, dword [eax + 0x30]
mov dword [esp + 0xc], eax
test eax, eax
je 0x10090d8e
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop dword [eax + eax]
inc ecx
cmp byte [edi + ecx], 0
jne 0x10090d50
xor edx, edx
test ecx, ecx
je 0x10090d7d
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10090d60
mov eax, dword [esp + 0xc]
cmp esi, 0x7939b3a7
je 0x10090d9b
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x10090d41
mov ecx, dword [0x10114cbc]
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [0x10114cc0], eax
jmp 0x10090db1
mov ecx, dword [0x10114cbc]
mov dword [0x10114cc0], eax
jmp 0x10090db1
mov eax, dword [0x10114cc0]
mov dword [esp + 0xc], eax
test cl, 2
jne 0x10090e1f
or ecx, 2
mov dword [0x10114cbc], ecx
mov eax, dword [0x1010e934]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x10], eax
test eax, eax
je 0x10090e18
nop
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [esi + ecx], 0
jne 0x10090de0
xor edx, edx
test ecx, ecx
je 0x10090e0d
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10090df0
mov eax, dword [esp + 0x10]
cmp edi, 0xda6a172f
je 0x10090e1a
mov eax, dword [eax + 4]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10090dd0
xor eax, eax
mov dword [0x10114cd4], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x10114cd4]
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 [0x100c54e4]
fmul dword [esp + 0x14]
xorps xmm0, xmmword [0x100bacf0]
movss dword [eax + 0x24], xmm0
mov eax, dword [0x100c54e4]
fstp dword [esp + 0x14]
movss xmm1, dword [esp + 0x14]
xorps xmm1, xmmword [0x100bacf0]
movss dword [eax + 0x28], xmm1
mov ecx, dword [esp + 0x34]
pop edi
pop esi
xor ecx, esp
call fcn.100a5fbc
mov esp, ebp
pop ebp
ret