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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x4c
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x100b1cd0
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], eax
mov dword [ebp - 0x28], ecx
cmp byte [ecx + 8], 0
je 0x100af480
vmovss xmm0, dword [ebx + 0xc]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
mov esi, dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
call esi
fstp dword [ebx + 0xc]
vmovss xmm0, dword [ebx + 0x10]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call esi
fstp dword [ebx + 0x10]
vmovss xmm0, dword [ebx + 0x14]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call esi
fstp dword [ebp - 0x34]
vmovss xmm0, dword [ebp - 0x34]
vmovddup xmm1, qword [0x100fe0f8]
vmovddup xmm2, qword [0x100fe0f0]
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 [0x100fe0e8]
vmaxss xmm1, xmm1, xmm0
vmovss xmm2, dword [0x100fe0bc]
vcmpltss xmm0, xmm2, xmm0
vbroadcastss xmm2, dword [0x100fe0bc]
vblendvps xmm0, xmm1, xmm2, xmm0
vmovss dword [ebx + 0x14], xmm0
vbroadcastss xmm0, dword [0x100fe45c]
vbroadcastss xmm1, dword [0x100fe3e8]
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 [0x100fe460]
vmaxss xmm1, xmm1, xmm0
vmovss xmm2, dword [0x100fe464]
vcmpltss xmm0, xmm2, xmm0
vbroadcastss xmm2, dword [0x100fe464]
vblendvps xmm0, xmm1, xmm2, xmm0
vmovss dword [ebx + 0x2c], xmm0
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov eax, dword [0x10132be0]
test al, 1
je 0x100af53e
mov edi, dword [0x10132bdc]
mov eax, dword [edi + 4]
cmp byte [eax + ecx], 2
jne 0x100af52b
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 0x100af4c3
jnp 0x100af4f1
xor ecx, ecx
vucomiss xmm0, xmm1
seta cl
xor edx, edx
vucomiss xmm1, xmm0
seta dl
mov esi, dword [ebp - 0x28]
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 0x100af4fe
jnp 0x100af52b
xor ecx, ecx
vucomiss xmm0, xmm1
seta cl
xor edx, edx
vucomiss xmm1, xmm0
seta dl
mov esi, dword [ebp - 0x28]
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 eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov dword [ebp - 0x2c], ecx
or eax, 1
mov dword [0x10132be0], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x10], 0
mov dword [esp], str.m_MoveType
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x20], ecx
call fcn.100083b0
sub esp, 4
mov esi, dword [ebp - 0x3c]
cmp dword [ebp - 0x38], 0x10
jb 0x100af57c
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100af596
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100af59d
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100af5e6
mov ecx, 0x811c9dc5
jmp 0x100af603
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100af5ac
cmp dword [ebp - 0x24], 0
je 0x100af603
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x100af5f1
mov edx, dword [ebp - 0x30]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x100af66e
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x100af644
cmp dword [edi + 0x1c], 0x10
jb 0x100af62a
mov eax, dword [edi + 8]
jmp 0x100af62d
lea eax, [edi + 8]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x100af652
cmp edi, ebx
je 0x100af66e
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x100af61f
jmp 0x100af644
add edi, 0x20
lea ecx, [ebp - 0x4c]
call fcn.100029d0
mov dword [0x10132bdc], edi
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0x2c]
jmp 0x100af49a
mov dword [ebp - 0x10], 1
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
nop word cs:[eax + eax]
push ebp
sub esp, 0xc
add ebp, 0xc
lea ecx, [ebp - 0x4c]
call fcn.100029d0
add esp, 0xc
pop ebp
ret