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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, ecx
push esi
push edi
push 0x24
lea eax, [ebx + 4]
mov dword [ebp - 4], ebx
mov dword [ebp - 8], eax
call fcn.1010c1ca
mov ecx, dword [ebp + 0xc]
mov esi, eax
xorps xmm0, xmm0
add esp, 4
mov edx, dword [ecx]
mov ecx, edx
movups xmmword [esi + 8], xmm0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
lea eax, [ecx + 1]
mov dword [ebp + 0xc], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100e5192
sub ecx, dword [ebp + 0xc]
push ecx
push edx
lea ecx, [esi + 8]
call fcn.10042ab0
mov eax, dword [ebp + 0x10]
lea edx, [esi + 8]
mov eax, dword [eax]
mov dword [esi + 0x20], eax
cmp dword [esi + 0x1c], 0x10
mov eax, dword [esi + 0x18]
jb 0x100e51bd
mov edx, dword [esi + 8]
xor ecx, ecx
mov edi, 0x811c9dc5
test eax, eax
je 0x100e51e4
mov ebx, eax
nop word [eax + eax]
movzx eax, byte [ecx + edx]
inc ecx
xor eax, edi
imul edi, eax, 0x1000193
cmp ecx, ebx
jb 0x100e51d0
mov ebx, dword [ebp - 4]
push edi
lea eax, [esi + 8]
mov ecx, ebx
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.100e3d40
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x100e522b
mov edi, dword [ebp + 8]
mov dword [edi], eax
mov byte [edi + 4], 0
test esi, esi
je 0x100e5220
mov ebx, dword [ebp - 8]
lea eax, [esi + 8]
push eax
push ebx
call fcn.100e50f0
push 0x24
push esi
call fcn.1010c1fa
add esp, 0x10
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 8]
cmp eax, 0x71c71c7
je 0x100e534c
movss xmm3, dword [ebx]
inc eax
mov ebx, dword [ebx + 0x1c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10170820]
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm2, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x10170820]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, xmm3
jbe 0x100e52e4
divss xmm2, xmm3
sub esp, 8
movss dword [ebp + 0xc], xmm2
fld dword [ebp + 0xc]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
add esp, 8
fstp dword [ebp + 0xc]
movss xmm0, dword [ebp + 0xc]
call fcn.1010c5b0
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x100e52c5
cmp ebx, 0x200
jae 0x100e52c3
shl ebx, 3
cmp ebx, ecx
jae 0x100e52c5
mov ebx, ecx
push ebx
mov ebx, dword [ebp - 4]
mov ecx, ebx
call fcn.100e5da0
push edi
lea eax, [esi + 8]
mov ecx, ebx
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.100e3d40
mov edx, dword [eax]
jmp 0x100e52ea
mov edx, dword [ebp - 0x10]
mov ebx, dword [ebp - 4]
mov eax, dword [edx + 4]
inc dword [ebx + 8]
mov dword [esi + 4], eax
mov dword [esi], edx
mov dword [eax], esi
mov dword [edx + 4], esi
mov ecx, dword [ebx + 0xc]
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x18]
mov ebx, dword [ebp - 8]
and eax, edi
mov edi, dword [ecx + eax*8]
cmp edi, dword [ebx]
jne 0x100e5314
mov dword [ecx + eax*8], esi
jmp 0x100e5336
cmp edi, edx
jne 0x100e532d
mov dword [ecx + eax*8], esi
mov eax, dword [ebp + 8]
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 1
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp + 0xc]
cmp dword [ecx + eax*8 + 4], edx
jne 0x100e533a
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [ebp + 8]
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 1
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push str.unordered_map_set_too_long
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__
int3