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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x100d200c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x100e6314]
add eax, 0xffffffcb
push esi
mov esi, dword [0x100e5f04]
xor eax, 0x2b43e639
push edi
mov eax, dword [eax + esi]
cmp eax, 8
je 0x100a77d4
cmp eax, 9
je 0x100a77d4
test dword [0x100e5fe0], 0x20000
jne 0x100a77d4
test byte [0x100e5fe0], 2
je 0x100a77d4
test byte [0x100e5f0c], 1
jne 0x100a77d4
mov eax, dword [0x100e62d8]
add eax, 0xffffffda
xor eax, 0x2b43e62a
movss xmm1, dword [eax + esi]
movss xmm0, dword [eax + esi + 4]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10017ce0
movss xmm1, dword [0x100c7a5c]
movaps xmm2, xmm0
movss xmm4, dword [0x100c7a44]
xorps xmm3, xmm3
comiss xmm2, xmm3
movss dword [0x100e5738], xmm2
jbe 0x100a749c
movss xmm0, dword [0x100c7a04]
divss xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_asinf
mulss xmm0, dword [0x100c7a44]
movss dword [ebp - 8], xmm0
movss dword [0x100e573c], xmm0
movss xmm0, dword [0x100c7a24]
divss xmm0, dword [0x100e5738]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_asinf
movss xmm4, dword [0x100c7a44]
movaps xmm2, xmm0
movss xmm1, dword [0x100c7a5c]
xorps xmm3, xmm3
movss xmm0, dword [ebp - 8]
mulss xmm2, xmm4
jmp 0x100a74aa
movaps xmm0, xmm1
movaps xmm2, xmm1
movss dword [0x100e573c], xmm0
comiss xmm0, xmm1
lea eax, [ebp - 8]
mov ecx, 0x100e573c
mov dword [ebp - 8], 0x42b40000
movss dword [0x100e5740], xmm2
cmovbe eax, ecx
mov ecx, 0x100e5740
comiss xmm2, xmm1
movss xmm0, dword [eax]
lea eax, [ebp - 8]
maxss xmm0, xmm3
mov dword [ebp - 8], 0x42b40000
cmovbe eax, ecx
movss dword [0x100e573c], xmm0
movss xmm0, dword [eax]
mov eax, dword [0x100e62dc]
maxss xmm0, xmm3
add eax, 0xffffffd9
xor eax, 0x2b43e62b
movss dword [0x100e5740], xmm0
movss xmm0, dword [eax + esi]
movss dword [0x100e5744], xmm0
movss xmm0, dword [eax + esi + 4]
movss dword [0x100e5748], xmm0
movss xmm0, dword [eax + esi + 8]
mov eax, dword [0x100e62e0]
add eax, 0xffffffd8
movss dword [0x100e574c], xmm0
xor eax, 0x2b43e62c
movss xmm0, dword [eax + esi]
movss dword [0x100e5750], xmm0
movss xmm0, dword [eax + esi + 4]
movss dword [0x100e5754], xmm0
movss xmm0, dword [eax + esi + 8]
mov eax, dword [0x100e62d0]
add eax, 0xffffffdc
movss dword [0x100e5758], xmm0
xor eax, 0x2b43e628
cmp byte [0x100dc820], 0
movss xmm0, dword [eax + esi]
movss dword [0x100e575c], xmm0
movss xmm0, dword [eax + esi + 4]
movss dword [0x100e5760], xmm0
movss xmm0, dword [eax + esi + 8]
movss dword [0x100e5764], xmm0
je 0x100a77d4
mov eax, dword [0x100eb490]
test al, 1
jne 0x100a762b
or eax, 1
mov dword [0x100eb490], eax
mov eax, dword [0x100e610c]
mov eax, dword [eax + 0x30]
mov dword [ebp - 8], eax
test eax, eax
je 0x100a7616
nop dword [eax + eax]
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x100a75e0
xor edx, edx
test ecx, ecx
je 0x100a760c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100a75f0
cmp esi, 0xda6a172f
je 0x100a7620
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
mov dword [ebp - 8], eax
test eax, eax
jne 0x100a75d0
xor esi, esi
mov dword [0x100eb494], esi
jmp 0x100a7631
mov esi, dword [ebp - 8]
mov dword [0x100eb494], esi
jmp 0x100a7631
mov esi, dword [0x100eb494]
mov edi, dword [0x100e5fd8]
mov eax, dword [edi + 0x30]
mov ecx, eax
shr ecx, 3
mov edx, eax
and ecx, 0xffffff01
shr edx, 0xa
mov dword [ebp - 8], ecx
and dl, 1
mov ecx, eax
shr eax, 4
shr ecx, 9
and cl, 1
test al, 1
je 0x100a76a1
movss xmm1, dword [0x100c7b24]
mov dword [0x100eb3c8], 0xc3340000
test cl, cl
je 0x100a7689
movss xmm1, dword [0x100c7b2c]
mov dword [0x100eb3c8], 0xc3610000
jmp 0x100a7706
test dl, dl
je 0x100a7706
movss xmm1, dword [0x100c7b20]
mov dword [0x100eb3c8], 0xc3070000
jmp 0x100a7706
test cl, cl
je 0x100a76c9
cmp byte [ebp - 8], 0
mov dword [0x100eb3c8], 0x42b40000
je 0x100a7706
movss xmm1, dword [0x100c7a34]
mov dword [0x100eb3c8], 0x42340000
jmp 0x100a7706
test dl, dl
je 0x100a76f9
cmp byte [ebp - 8], 0
movss xmm1, dword [0x100c7b18]
mov dword [0x100eb3c8], 0xc2b40000
je 0x100a7706
movss xmm1, dword [0x100c7b08]
mov dword [0x100eb3c8], 0xc2340000
jmp 0x100a7706
mov dword [0x100eb3c8], 0
movaps xmm1, xmm3
addss xmm1, dword [0x100e5ff8]
movss dword [0x100e5ff8], xmm1
mov dword [edi + 0x24], 0
mov eax, dword [0x100e5fd8]
mov dword [eax + 0x28], 0
mov ecx, dword [0x100e62d8]
mov eax, dword [0x100e5f04]
add ecx, 0xffffffda
xor ecx, 0x2b43e62a
movss xmm1, dword [ecx + eax]
movss xmm0, dword [ecx + eax + 4]
call fcn.10017c90
movss xmm1, dword [0x100e5ff8]
lea ecx, [ebp - 8]
mulss xmm0, xmm4
subss xmm1, xmm0
movss dword [ebp - 8], xmm1
call fcn.100a7030
mov eax, dword [esi]
xorps xmm1, xmm1
movss xmm0, dword [ebp - 8]
mov ecx, esi
comiss xmm0, xmm1
mov eax, dword [eax + 0x30]
jbe 0x100a7795
mov dword [ebp - 0xc], eax
call dword [ebp - 0xc]
fstp dword [ebp - 0xc]
movss xmm0, dword [ebp - 0xc]
xorps xmm0, xmmword [0x100c7b80]
jmp 0x100a77a3
mov dword [ebp - 0xc], eax
call dword [ebp - 0xc]
fstp dword [ebp - 0xc]
movss xmm0, dword [ebp - 0xc]
mov eax, dword [0x100e5fd8]
lea ecx, [ebp - 8]
movss dword [eax + 0x28], xmm0
movss xmm0, dword [0x100e5ff8]
subss xmm0, dword [ebp - 8]
movss dword [ebp - 8], xmm0
call fcn.100a7030
movss xmm0, dword [ebp - 8]
movss dword [0x100e5ff8], xmm0
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.100ba7e9
mov esp, ebp
pop ebp
ret