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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x40
mov esi, ecx
mov ebx, dword [esp + 0x54]
mov eax, dword [0x1017f528]
xor eax, esp
mov dword [esp + 0x3c], eax
cmp byte [ecx + 8], 0
je 0x10094987
vmovss xmm0, dword [ebx + 0xc]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
mov edi, dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
call edi
fstp dword [ebx + 0xc]
vmovss xmm0, dword [ebx + 0x10]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call edi
fstp dword [ebx + 0x10]
vmovss xmm0, dword [ebx + 0x14]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call edi
fstp dword [esp + 0x20]
vmovss xmm0, dword [esp + 0x20]
vmovaps xmm1, xmmword [0x10132010]
vmovddup xmm2, qword [0x10132020]
vmovsd xmm3, qword [ebx + 0xc]
vmovsd xmm4, qword [ebx + 0x24]
vcmpltps xmm5, xmm2, xmm3
vmaxps xmm1, xmm1, xmm3
vblendvps xmm1, xmm1, xmm2, xmm5
vmovlps qword [ebx + 0xc], xmm1
vmovss xmm1, dword [0x10132000]
vmaxss xmm1, xmm1, xmm0
vmovss xmm2, dword [0x10131fbc]
vcmpltss xmm0, xmm2, xmm0
vbroadcastss xmm2, dword [0x10131fbc]
vblendvps xmm0, xmm1, xmm2, xmm0
vmovss dword [ebx + 0x14], xmm0
vbroadcastss xmm0, dword [0x10132430]
vbroadcastss xmm1, dword [0x10132380]
vcmpltps xmm2, xmm1, xmm4
vmaxps xmm0, xmm0, xmm4
vblendvps xmm0, xmm0, xmm1, xmm2
vmovlps qword [ebx + 0x24], xmm0
vmovss xmm0, dword [ebx + 0x2c]
vmovss xmm1, dword [0x10132434]
vmaxss xmm1, xmm1, xmm0
vmovss xmm2, dword [0x10132438]
vcmpltss xmm0, xmm2, xmm0
vbroadcastss xmm2, dword [0x10132438]
vblendvps xmm0, xmm1, xmm2, xmm0
vmovss dword [ebx + 0x2c], xmm0
mov eax, dword [0x1017f608]
mov ebp, dword [eax]
mov eax, dword [0x10184e34]
test al, 1
je 0x10094a45
mov edi, dword [0x10184e30]
mov eax, dword [edi + 4]
cmp byte [eax + ebp], 2
jne 0x10094a30
mov eax, 0xfffff9e7
and eax, dword [ebx + 0x30]
mov dword [ebx + 0x30], eax
vmovss xmm1, dword [ebx + 0x24]
vxorps xmm0, xmm0, xmm0
vucomiss xmm1, xmm0
jne 0x100949ca
jnp 0x100949f5
xor ecx, ecx
vucomiss xmm0, xmm1
seta cl
xor edx, edx
vucomiss xmm1, xmm0
seta dl
cmp byte [esi + 9], 0
cmove ecx, edx
xor cl, 1
movzx ecx, cl
lea ecx, [ecx*8 + 8]
or eax, ecx
mov dword [ebx + 0x30], eax
vmovss xmm1, dword [ebx + 0x28]
vucomiss xmm1, xmm0
jne 0x10094a02
jnp 0x10094a30
vxorps xmm0, xmm0, xmm0
xor ecx, ecx
vucomiss xmm0, xmm1
seta cl
xor edx, edx
vucomiss xmm1, xmm0
seta dl
cmp byte [esi + 9], 0
cmove ecx, edx
movzx ecx, cl
shl ecx, 9
add ecx, 0x200
or ecx, eax
mov dword [ebx + 0x30], ecx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100d7fe0
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret 4
or eax, 1
mov dword [0x10184e34], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x18], eax
mov dword [esp], str.m_MoveType
lea ecx, [esp + 0x24]
mov dword [esp + 0x10], ecx
call fcn.10005ce0
sub esp, 4
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x38], 0x10
jb 0x10094a84
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
cmp dword [esp + 0xc], 0
je 0x10094aa7
mov eax, dword [esp + 0xc]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 0x14], eax
cmp ecx, 3
jae 0x10094aae
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10094b00
mov ecx, 0x811c9dc5
jmp 0x10094b20
mov eax, dword [esp + 0xc]
and eax, 0xfffffffc
mov dword [esp + 0x1c], eax
mov ecx, 0x811c9dc5
xor edx, edx
mov edi, dword [esp + 0x10]
movzx eax, byte [edi + edx]
xor eax, ecx
imul eax, eax, 0x1000193
movzx ecx, byte [edi + edx + 1]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [edi + edx + 2]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [edi + edx + 3]
xor ecx, eax
imul ecx, ecx, 0x1000193
add edx, 4
cmp dword [esp + 0x1c], edx
jne 0x10094ac4
cmp dword [esp + 0x14], 0
je 0x10094b20
add edx, dword [esp + 0x10]
xor edi, edi
movzx eax, byte [edx + edi]
xor eax, ecx
imul ecx, eax, 0x1000193
inc edi
cmp dword [esp + 0x14], edi
jne 0x10094b0d
mov edx, dword [esp + 0x18]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10094b91
add ecx, ecx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
cmp eax, dword [edi + 0x18]
jne 0x10094b6f
cmp dword [edi + 0x1c], 0x10
jb 0x10094b50
mov eax, dword [edi + 8]
jmp 0x10094b53
lea eax, [edi + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x10]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x10094b7a
cmp edi, dword [esp + 0x14]
je 0x10094b91
mov edi, dword [edi + 4]
jmp 0x10094b3c
add edi, 0x20
lea ecx, [esp + 0x24]
call fcn.100026e0
mov dword [0x10184e30], edi
jmp 0x100949a1
mov dword [esp], 0x1016ba76
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
int3