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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x100c9040]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x100cb144], 0
push esi
push edi
je 0x10094a1a
cmp dword [0x100cb13c], 0
je 0x10094a1a
cmp dword [0x100cb140], 0x1f
je 0x10094a1a
cmp dword [0x100c92b0], 0
je 0x10094a1a
cmp byte [0x100c92b4], 0
je 0x10094a1a
test byte [0x100cb19c], 2
jne 0x10094a1a
test byte [0x100c92b8], 1
je 0x10094a1a
push 0
push dword [0x100cbb90]
push dword [0x100cbb8c]
call fcn.100a9c50
mov ecx, dword [0x100cbb90]
cmp eax, ecx
jne 0x10094a15
test byte [0x100c92b8], 1
jne 0x10094716
mov eax, dword [0x100cc82c]
cmp eax, 0xffffffff
je 0x10094716
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x100dda50]
test al, al
jne 0x10094a15
push 1
push ecx
push dword [0x100cbb8c]
call fcn.100a9c50
cmp eax, dword [0x100cbb90]
je 0x10094a1a
mov eax, dword [0x10137e04]
mov ecx, dword [0x100c92b0]
add eax, 0xffffffb8
xor eax, 0xcdb53aa4
cmp byte [eax + ecx], 0
mov eax, dword [0x100cb144]
jbe 0x10094758
movss xmm4, dword [eax + 0x130]
jmp 0x10094760
movss xmm4, dword [eax + 0x12c]
mulss xmm4, dword [0x100be858]
mov edx, dword [0x10137d80]
movss xmm2, dword [0x100beac8]
movss xmm1, dword [0x100beac0]
andps xmm2, xmm4
movss xmm3, dword [0x100be8c4]
movaps xmm0, xmm4
lea eax, [edx - 0x27]
xorps xmm0, xmm2
movaps xmm5, xmm4
cmpltss xmm0, xmm1
xor eax, 0xcdb53a83
andps xmm1, xmm0
orps xmm1, xmm2
addss xmm5, xmm1
subss xmm5, xmm1
movss xmm1, dword [eax + ecx]
mulss xmm1, xmm1
movaps xmm0, xmm5
subss xmm0, xmm4
cmpnless xmm0, xmm2
movss xmm2, dword [eax + ecx + 4]
mulss xmm2, xmm2
addss xmm1, xmm2
andps xmm0, xmm3
subss xmm5, xmm0
sqrtss xmm1, xmm1
comiss xmm5, xmm1
jbe 0x100947fb
movaps xmm0, xmm5
call fcn.10093f40
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100a9e5c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
lea eax, [edx - 0x27]
mov dword [ebp - 0x28], 0
xor eax, 0xcdb53a83
mov dword [ebp - 0x24], 0
push ecx
lea edx, [ebp - 0x28]
movq xmm0, qword [eax + ecx]
mov eax, dword [eax + ecx + 8]
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x34], eax
mov eax, dword [0x100cb194]
movq qword [ebp - 0x3c], xmm0
movq xmm0, qword [eax + 0xc]
movq qword [ebp - 0x10], xmm0
mov eax, dword [eax + 0x14]
mov dword [ebp - 8], eax
call fcn.10093310
mov ecx, dword [0x10137b58]
lea edx, [ebp - 0x10]
add esp, 4
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x48]
call eax
movss xmm0, dword [ebp - 0x28]
mulss xmm0, dword [0x100be7f0]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_cosf
movss xmm1, dword [ebp - 0xc]
subss xmm1, dword [ebp - 0x24]
movss dword [ebp - 0x18], xmm0
mulss xmm1, dword [0x100be7f0]
movaps xmm0, xmm1
call fcn.100aaf10
mov ecx, dword [0x1013da64]
movaps xmm2, xmm0
shufps xmm2, xmm0, 1
mulss xmm2, dword [ebp - 0x18]
mulss xmm0, dword [ebp - 0x18]
movaps xmmword [ebp - 0x40], xmm2
movss dword [ebp - 0x1c], xmm0
test cl, 1
jne 0x10094935
or ecx, 1
mov dword [0x1013da64], ecx
mov eax, dword [0x10137b54]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1009491c
nop dword [eax]
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [edi + ecx], 0
jne 0x100948e0
xor edx, edx
test ecx, ecx
je 0x1009490c
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100948f0
mov eax, dword [ebp - 0x14]
cmp esi, 0x7939b3a7
je 0x10094928
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x100948d0
mov ecx, dword [0x1013da64]
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [0x1013da60], eax
jmp 0x1009493d
mov ecx, dword [0x1013da64]
mov dword [0x1013da60], eax
jmp 0x1009493d
mov eax, dword [0x1013da60]
mov dword [ebp - 0x14], eax
test cl, 2
jne 0x100949ad
or ecx, 2
mov dword [0x1013da64], ecx
mov eax, dword [0x10137b54]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x100949a6
nop word [eax + eax]
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [edi + ecx], 0
jne 0x10094970
xor edx, edx
test ecx, ecx
je 0x1009499c
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10094980
mov eax, dword [ebp - 0x18]
cmp esi, 0xda6a172f
je 0x100949a8
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x10094960
xor eax, eax
mov dword [0x1013da50], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x1013da50]
fstp dword [ebp - 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x18], eax
call dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x14]
mulss xmm0, dword [ebp - 0x40]
mov eax, dword [0x100cb194]
fmul dword [ebp - 0x1c]
xorps xmm0, xmmword [0x100bec10]
movss dword [eax + 0x24], xmm0
mov eax, dword [0x100cb194]
fstp dword [ebp - 0x1c]
movss xmm2, dword [ebp - 0x1c]
xorps xmm2, xmmword [0x100bec10]
movss dword [eax + 0x28], xmm2
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100a9e5c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.100943d0
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.100a9e5c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret