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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffe0
mov eax, 0x3140
call fcn.10157ab0
mov esi, esp
mov dword [esi + 0x3118], ebp
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x311c], esp
mov dword [esi + 0x3128], 0xffffffff
lea ecx, [esi + 0x3120]
mov dword [esi + 0x3124], 0x10129460
mov edx, dword fs:[0]
mov dword [esi + 0x3120], edx
mov dword fs:[0], ecx
dec eax
cmp eax, 0x40
jae 0x100f54b3
mov edi, dword [ebp + 8]
mov ecx, dword [0x1025add8]
imul eax, eax, 0x3054
cmp dword [ecx + eax + 0x3050], 1
jbe 0x100f5224
lea edx, [ecx + eax]
mov dword [esi + 0x38], edx
lea ebx, [ecx + eax]
add ebx, 0x3040
mov eax, dword [0x1025adc8]
mov ecx, dword [eax + 0x130]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esi + 0xd4]
movss xmm0, dword [esi + 0xd4]
movaps xmmword [esi + 0x70], xmm0
mov ecx, dword [0x1025ae10]
mov eax, dword [ecx]
call dword [eax + 0x138]
mov edi, eax
mov eax, dword [eax]
mov ecx, edi
push 0
call dword [eax + 0x28]
fstp dword [esi + 0xd0]
movss xmm0, dword [esi + 0xd0]
movss dword [esi + 0x20], xmm0
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax + 0x28]
fstp dword [esi + 0xcc]
movss xmm1, dword [esi + 0x20]
addss xmm1, dword [esi + 0xcc]
xorps xmm0, xmm0
maxss xmm0, xmm1
movaps xmm3, xmmword [esi + 0x70]
movaps xmm2, xmm3
cmpltss xmm2, xmm1
movaps xmm1, xmm2
andnps xmm1, xmm0
andps xmm2, xmm3
orps xmm2, xmm1
mov eax, dword [0x1025adc8]
addss xmm2, dword [eax + 0x17c]
movaps xmmword [esi + 0xf0], xmm2
mov eax, dword [ebx]
mov dword [esi + 0x3c], eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov ebx, dword [esi + 0x38]
mov dword [esi + 0x70], eax
add ecx, eax
mov dword [esi + 0x2c], ecx
jmp 0x100f4b70
sqrtsd xmm0, xmm0
cvtsd2ss xmm0, xmm0
movss xmm1, dword [0x101a8280]
ucomiss xmm1, xmm0
jbe 0x100f5243
nop word cs:[eax + eax]
mov edi, dword [esi + 0x70]
cmp edi, dword [esi + 0x2c]
je 0x100f5221
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov ecx, edi
shr ecx, 1
mov edx, dword [eax + 8]
dec edx
and edx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + edx*4]
mov ecx, edi
and ecx, 1
mov eax, dword [eax + ecx*8]
inc edi
mov dword [esi + 0x70], edi
mov dword [esi + 0x20], eax
test eax, eax
je 0x100f4b70
mov eax, dword [esi + 0x20]
movss xmm0, dword [eax + 0x30]
movss dword [esi + 0x24], xmm0
mov edi, dword [0x1025adc8]
movss xmm0, dword [edi + 0x180]
movss dword [esi + 0xa0], xmm0
movss xmm0, dword [edi + 0x184]
movss dword [esi + 0x28], xmm0
mov ecx, dword [edi + 0x130]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esi + 0x3128], 0xffffffff
call eax
fstp dword [esi + 0xc8]
movss xmm4, dword [esi + 0xc8]
movss xmm5, dword [edi + 0x17c]
mov eax, dword [0x1025ae04]
mov ecx, dword [eax]
mov eax, dword [0x1025af68]
test al, 1
je 0x100f4e06
mov edi, dword [0x1025af64]
movss xmm2, dword [esi + 0xa0]
addss xmm2, dword [esi + 0x28]
xorps xmm0, xmm0
maxss xmm0, xmm2
movss xmm3, dword [0x101a8280]
movaps xmm1, xmm3
cmpltss xmm1, xmm2
movaps xmm2, xmm1
andnps xmm2, xmm0
andps xmm1, xmm3
orps xmm1, xmm2
addss xmm1, xmm5
xorps xmm2, xmm2
maxss xmm2, xmm1
movaps xmm0, xmm4
cmpltss xmm0, xmm1
movaps xmm1, xmm0
andnps xmm1, xmm2
andps xmm0, xmm4
orps xmm0, xmm1
mov eax, dword [edi + 4]
mov eax, dword [eax + ecx]
mov ecx, dword [0x1025add0]
mov ecx, dword [ecx + 0x10]
test ecx, ecx
mov edx, 0
cmovle ecx, edx
sub eax, ecx
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
mov eax, dword [0x1025ae0c]
movss xmm2, dword [eax + 0x20]
mulss xmm1, xmm2
subss xmm1, dword [esi + 0x24]
subss xmm0, xmm1
andps xmm0, xmmword [0x101a97c0]
ucomiss xmm0, dword [0x101a9840]
ja 0x100f4b70
mov eax, dword [0x1025add4]
cmp byte [eax + 0x10], 0
movaps xmmword [esi + 0xa0], xmm2
je 0x100f4ce5
mov eax, dword [0x1025ae18]
mov edi, 0xf
sub edi, dword [eax + 0x4d28]
mov dword [esi + 0x3128], 0xffffffff
jmp 0x100f4ce7
xor edi, edi
mov eax, dword [0x1025adc8]
add edi, dword [eax + 0x188]
mov ecx, dword [eax + 0x130]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esi + 0x3128], 0xffffffff
call eax
fstp dword [esi + 0xc4]
mov eax, dword [esi + 0x2c]
cmp dword [esi + 0x70], eax
movaps xmm1, xmmword [esi + 0xa0]
je 0x100f4b70
xorps xmm0, xmm0
cvtsi2ss xmm0, edi
mulss xmm1, xmm0
subss xmm1, dword [esi + 0xc4]
mov eax, dword [esi + 0x20]
movss xmm0, dword [eax + 0x30]
cvttps2dq xmm1, xmm1
cvtdq2ps xmm1, xmm1
ucomiss xmm0, xmm1
jb 0x100f4b70
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov edx, dword [esi + 0x70]
mov edi, edx
shr edi, 1
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
dec eax
mov dword [esi + 0xa0], edi
and eax, edi
mov eax, dword [ecx + eax*4]
and edx, 1
cmp dword [eax + edx*8], 0
je 0x100f4b70
mov eax, dword [ebx]
mov dword [esi + 0x24], eax
mov eax, dword [0x102606b4]
test al, 1
je 0x100f5029
mov edi, dword [0x102606b0]
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x20]
movss xmm0, dword [ecx + 0x74]
mov edi, dword [esi + 0x24]
subss xmm0, dword [eax + edi + 8]
movss xmm1, dword [ecx + 0x6c]
movss xmm2, dword [ecx + 0x70]
subss xmm2, dword [eax + edi + 4]
subss xmm1, dword [eax + edi]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm1, xmm2
mulss xmm0, xmm0
addss xmm0, xmm1
cvtss2sd xmm0, xmm0
ucomisd xmm0, qword [0x101a9fb0]
jae 0x100f4b4d
sub esp, 8
movsd qword [esp], xmm0
mov edi, edx
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
mov edx, edi
add esp, 8
fstp qword [esi + 0xd8]
movsd xmm0, qword [esi + 0xd8]
jmp 0x100f4b51
movss dword [esi + 0xb4], xmm5
movaps xmmword [esi + 0xe0], xmm4
mov dword [esi + 0x30], ecx
or eax, 1
mov dword [0x1025af68], eax
mov eax, 0x495824d4
mov ecx, 0x8246bc4d
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0x99cde595
mov ecx, 0xe92fbe47
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0x59cb178d
mov ecx, 0x88dc77a4
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0xbfacdc76
mov ecx, 0x7f08b8f7
mov edx, 0x3a396697
mov edi, 0xe32aec28
mov dword [esi + 0x104], edi
mov dword [esi + 0x100], edx
mov edx, 0xb4bf80ec
mov edi, 0x8770d379
mov dword [esi + 0x10c], edi
mov dword [esi + 0x108], edx
mov edx, 0x32a87ed9
mov edi, 0xedaf16e6
mov dword [esi + 0x114], edi
mov dword [esi + 0x110], edx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x118], eax
lea eax, [esi + 0x100]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x40]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x40], xmm0
movaps xmm0, xmmword [esi + 0x50]
xorps xmm0, xmmword [eax + 0x10]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x34], eax
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0x3128], 0
lea ecx, [esi + 0x88]
lea eax, [esi + 0x40]
push eax
call fcn.10015170
cmp dword [esi + 0x9c], 0x10
lea eax, [esi + 0x88]
mov dword [esi + 0x1c], eax
jb 0x100f4f09
mov eax, dword [esi + 0x88]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x98]
mov dword [esi + 0x18], eax
test eax, eax
je 0x100f4f32
mov eax, dword [esi + 0x18]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xb0], ecx
cmp eax, 4
jae 0x100f4f39
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100f4f83
mov ecx, 0x811c9dc5
jmp 0x100f4fa3
mov edi, dword [esi + 0x18]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x1c]
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 0x100f4f49
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x100f4fa3
add edx, dword [esi + 0x1c]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp eax, edi
jne 0x100f4f92
mov edx, dword [esi + 0x34]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
mov edx, dword [esi + 0x18]
je 0x100f54ed
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp edx, dword [edi + 0x18]
jne 0x100f4fe9
cmp dword [edi + 0x1c], 0x10
jb 0x100f4fd1
mov eax, dword [edi + 8]
jmp 0x100f4fd4
lea eax, [edi + 8]
mov ecx, dword [esi + 0x1c]
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcmp
mov edx, dword [esi + 0x18]
add esp, 0xc
test eax, eax
je 0x100f4ffb
cmp edi, ebx
je 0x100f54ed
mov edi, dword [edi + 4]
cmp edx, dword [edi + 0x18]
je 0x100f4fc6
jmp 0x100f4fe9
add edi, 0x20
lea ecx, [esi + 0x88]
call fcn.10015110
mov dword [0x1025af64], edi
mov ebx, dword [esi + 0x38]
mov ecx, dword [esi + 0x30]
movaps xmm4, xmmword [esi + 0xe0]
movss xmm5, dword [esi + 0xb4]
jmp 0x100f4c1b
mov dword [esi + 0x30], edx
or eax, 1
mov dword [0x102606b4], eax
mov eax, 0x495824d4
mov ecx, 0x9744a94d
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0x99c6f485
mov ecx, 0xf12fbe47
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0x40e71dbc
mov ecx, 0x83c6718f
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0xbfacdc76
mov ecx, 0x7f08b8f7
mov edx, 0x3a396697
mov edi, 0xe32aec28
mov dword [esi + 0x104], edi
mov dword [esi + 0x100], edx
mov edx, 0xb4bf80ec
mov edi, 0x8770d379
mov dword [esi + 0x10c], edi
mov dword [esi + 0x108], edx
mov edx, 0x32a87ed9
mov edi, 0xedaf16e6
mov dword [esi + 0x114], edi
mov dword [esi + 0x110], edx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x118], eax
lea eax, [esi + 0x100]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x40]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x40], xmm0
movaps xmm0, xmmword [esi + 0x50]
xorps xmm0, xmmword [eax + 0x10]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x34], eax
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0x3128], 2
lea ecx, [esi + 0x88]
lea eax, [esi + 0x40]
push eax
call fcn.10015170
cmp dword [esi + 0x9c], 0x10
lea eax, [esi + 0x88]
mov dword [esi + 0x18], eax
jb 0x100f511d
mov eax, dword [esi + 0x88]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x98]
mov dword [esi + 0x28], eax
test eax, eax
je 0x100f5143
mov eax, dword [esi + 0x28]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x1c], ecx
cmp eax, 4
jae 0x100f514a
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100f5194
mov ecx, 0x811c9dc5
jmp 0x100f51b1
mov edi, dword [esi + 0x28]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x18]
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 0x100f5157
cmp dword [esi + 0x1c], 0
je 0x100f51b1
add edx, dword [esi + 0x18]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x1c], edi
jne 0x100f519f
mov edx, dword [esi + 0x34]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x100f54d6
add ecx, ecx
mov ebx, dword [eax + ecx*4]
mov eax, dword [esi + 0x28]
cmp eax, dword [edi + 0x18]
jne 0x100f51f5
cmp dword [edi + 0x1c], 0x10
jb 0x100f51df
mov eax, dword [edi + 8]
jmp 0x100f51e2
lea eax, [edi + 8]
push dword [esi + 0x28]
push eax
push dword [esi + 0x18]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100f5202
cmp edi, ebx
je 0x100f54d6
mov edi, dword [edi + 4]
jmp 0x100f51cc
add edi, 0x20
lea ecx, [esi + 0x88]
call fcn.10015110
mov dword [0x102606b0], edi
mov ebx, dword [esi + 0x38]
mov edx, dword [esi + 0x30]
jmp 0x100f4d90
mov edi, dword [ebp + 8]
mov byte [edi + 0x3000], 0
mov eax, dword [esi + 0x3120]
mov dword fs:[0], eax
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
dec ecx
and ecx, dword [esi + 0xa0]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + edx*8]
movss xmm2, dword [eax + 0x30]
movss xmm0, dword [eax + 0x6c]
movss xmm1, dword [eax + 0x70]
movss dword [esi + 0x24], xmm1
movss xmm1, dword [eax + 0x74]
movss dword [esi + 0x2c], xmm1
mov edi, dword [esi + 0x20]
movss xmm1, dword [edi + 0x30]
subss xmm2, xmm1
movaps xmm4, xmmword [esi + 0xf0]
addss xmm4, xmm1
addss xmm4, xmm2
mov eax, dword [0x1025ae0c]
subss xmm4, dword [eax + 0x10]
movss xmm1, dword [edi + 0x6c]
movss xmm5, dword [0x101a8280]
movaps xmm3, xmm5
divss xmm3, xmm2
mulss xmm3, xmm4
xorps xmm2, xmm2
maxss xmm2, xmm3
movaps xmm4, xmm5
cmpltss xmm4, xmm3
movaps xmm3, xmm4
andnps xmm3, xmm2
andps xmm4, xmm5
orps xmm4, xmm3
movaps xmmword [esi + 0x70], xmm4
sub esp, 0xc
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
movss dword [esp + 8], xmm4
call fcn.10115de0
add esp, 0xc
fstp dword [esi + 0xc0]
movss xmm0, dword [esi + 0xc0]
movss dword [esi + 0xa0], xmm0
movss xmm0, dword [edi + 0x70]
sub esp, 0xc
movaps xmm1, xmmword [esi + 0x70]
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x24]
movss dword [esp], xmm0
call fcn.10115de0
add esp, 0xc
fstp dword [esi + 0xbc]
movss xmm0, dword [esi + 0xbc]
movss dword [esi + 0x24], xmm0
movss xmm0, dword [edi + 0x74]
sub esp, 0xc
movaps xmm1, xmmword [esi + 0x70]
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x2c]
movss dword [esp], xmm0
call fcn.10115de0
add esp, 0xc
fstp dword [esi + 0xb8]
movss xmm0, dword [esi + 0xb8]
mov eax, dword [edi + 0x18]
cmp eax, 2
movss dword [esi + 0x70], xmm0
jg 0x100f53a1
ja 0x100f54b8
imul eax, eax, 0x32e0
mov ebx, dword [esi + 0x20]
add eax, ebx
add eax, 0x3c8
jmp 0x100f53bd
add eax, 0xfffffffd
cmp eax, 2
jae 0x100f54c7
imul eax, eax, 0x32e0
mov ebx, dword [esi + 0x20]
add eax, ebx
add eax, 0x9c68
mov edi, dword [ebp + 8]
push 0x3000
push eax
lea eax, [esi + 0x100]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movss xmm3, dword [esi + 0x70]
subss xmm3, dword [ebx + 0x74]
movss xmm2, dword [esi + 0x24]
subss xmm2, dword [ebx + 0x70]
movss xmm1, dword [esi + 0xa0]
subss xmm1, dword [ebx + 0x6c]
mov eax, 0x5c
nop dword [eax + eax]
movss xmm0, dword [esi + eax + 0xb0]
addss xmm0, xmm1
movss dword [esi + eax + 0xb0], xmm0
movss xmm0, dword [esi + eax + 0xc0]
addss xmm0, xmm2
movss dword [esi + eax + 0xc0], xmm0
movss xmm0, dword [esi + eax + 0xd0]
addss xmm0, xmm3
movss dword [esi + eax + 0xd0], xmm0
movss xmm0, dword [esi + eax + 0xe0]
addss xmm0, xmm1
movss dword [esi + eax + 0xe0], xmm0
movss xmm0, dword [esi + eax + 0xf0]
addss xmm0, xmm2
movss dword [esi + eax + 0xf0], xmm0
movss xmm0, dword [esi + eax + 0x100]
addss xmm0, xmm3
movss dword [esi + eax + 0x100], xmm0
add eax, 0x60
cmp eax, 0x305c
jne 0x100f5400
push 0x3000
lea eax, [esi + 0x100]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + 0x3000], 1
jmp 0x100f522b
call fcn.1009f460
mov dword [esi + 0x3128], 0xffffffff
call fcn.1009f460
mov dword [esi + 0x3128], 0xffffffff
call fcn.1009f460
mov dword [esi + 0x3128], 3
push str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [esi + 0x3128], 1
push str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
nop word cs:[eax + eax]
push ebp
sub esp, 0xc
lea esi, [ebp - 0x312c]
mov ebp, dword [esi + 0x3118]
lea ecx, [esi + 0x88]
call fcn.10015110
add esp, 0xc
pop ebp
ret