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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101476be
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x40
push esi
mov dword [ebp - 0x14], ecx
mov edx, 0xe80c2f78
push edi
mov edi, dword [0x101e671c]
mov ecx, 0x10170e49
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x101708a1
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc160
mov ecx, dword [0x101e66e4]
mov edx, dword [eax + edi]
mov eax, dword [ecx]
and edx, 0xfff
push edx
mov eax, dword [eax + 0xc]
call eax
test eax, eax
je 0x100e2aed
mov eax, dword [0x101edf24]
test eax, eax
jne 0x100e25f5
mov edx, 0xe80c2f78
mov ecx, 0x10171361
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170f01
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc160
mov dword [0x101edf24], eax
mov edi, dword [ebx + 8]
mov dword [eax + edi], 0xffffffff
mov eax, dword [0x101edfec]
test eax, eax
jne 0x100e2634
mov edx, 0xe80c2f78
mov ecx, 0x10172381
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170f01
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc160
mov dword [0x101edfec], eax
mov esi, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [eax + edi], ecx
cmp byte [esi], 0
je 0x100e2689
mov eax, dword [0x101ee004]
test eax, eax
jne 0x100e267a
mov edx, 0xe80c2f78
mov ecx, 0x1017239d
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170f01
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc160
mov esi, dword [ebx + 0xc]
mov dword [0x101ee004], eax
push esi
add eax, edi
push 0x20
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0xc
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x100e26d1
mov eax, dword [0x101edf18]
test eax, eax
jne 0x100e26cb
mov edx, 0xe80c2f78
mov ecx, 0x10171371
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170f01
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc160
mov esi, dword [ebx + 0xc]
mov dword [0x101edf18], eax
mov ecx, dword [ebp - 0x20]
mov dword [eax + edi], ecx
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x100e2719
mov eax, dword [0x101edf2c]
test eax, eax
jne 0x100e2713
mov edx, 0xe80c2f78
mov ecx, 0x10171399
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170f01
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc160
mov esi, dword [ebx + 0xc]
mov dword [0x101edf2c], eax
mov ecx, dword [ebp - 0x20]
mov dword [eax + edi], ecx
mov eax, dword [esi + 0x40]
mov dword [ebp - 0x20], eax
add eax, 1
je 0x100e2736
cmp byte [esi + 0x3c], 0
je 0x100e2736
mov ecx, edi
call fcn.1000df90
mov ecx, dword [ebp - 0x20]
mov dword [eax], ecx
movss xmm0, dword [esi + 0x44]
mov eax, dword [0x101edf1c]
movss dword [ebp - 0x20], xmm0
cvtps2pd xmm0, xmm0
comisd xmm0, xmmword [0x1017f100]
jbe 0x100e278e
test eax, eax
jne 0x100e2782
mov edx, 0xe80c2f78
mov ecx, 0x10171385
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170f01
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc160
mov dword [0x101edf1c], eax
movss xmm0, dword [ebp - 0x20]
movss dword [eax + edi], xmm0
jmp 0x100e27c5
test eax, eax
jne 0x100e27be
mov edx, 0xe80c2f78
mov ecx, 0x10171385
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170f01
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc160
mov dword [0x101edf1c], eax
mov dword [eax + edi], 0
mov eax, dword [0x101edf28]
test eax, eax
jne 0x100e27fa
mov edx, 0xe80c2f78
mov ecx, 0x10170ee9
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170f01
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc160
mov dword [0x101edf28], eax
mov esi, dword [ebx + 0xc]
mov edx, dword [ebp - 0x14]
mov ecx, dword [esi + 0x34]
movzx edi, cx
mov dword [ebp - 0x28], edi
mov edi, dword [ebx + 8]
test ecx, ecx
je 0x100e2adb
movzx eax, word [eax + edi]
mov dword [ebp - 0x18], eax
cwde
cmp ecx, eax
je 0x100e2adb
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [ebp - 0x34]
push ecx
lea ecx, [edx + 4]
call fcn.10013730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100e2adb
mov eax, dword [esi + 0x34]
cmp eax, dword [ecx + 0x10]
jb 0x100e2adb
mov eax, dword [ebp - 0x18]
movzx ecx, ax
mov eax, dword [0x101edf28]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x28]
mov word [eax + edi], cx
mov eax, dword [esi + 0x34]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ecx + 4]
call fcn.10014340
mov ecx, dword [0x101e66ec]
mov dword [ebp - 0x20], eax
push dword [eax]
mov esi, dword [ecx]
mov esi, dword [esi + 8]
call esi
mov dword [ebp - 0x28], eax
mov eax, dword [0x101ee030]
test eax, eax
jne 0x100e28c4
mov edx, 0xe80c2f78
mov ecx, 0x10172361
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170e91
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc160
mov dword [0x101ee030], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x20]
mov dword [eax + edi], ecx
mov ecx, dword [0x101e66ec]
push dword [edx]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, dword [edi]
push eax
mov edx, dword [ecx + 0x12c]
mov ecx, edi
call edx
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x10]
call eax
push 0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x18]
mov ecx, eax
call edx
cmp word [ebp - 0x2c], 0
je 0x100e2aed
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
movsx eax, cx
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [esi + 4]
call fcn.10014380
test eax, eax
je 0x100e2aed
mov ecx, dword [ebp - 0x18]
movsx eax, cx
lea ecx, [esi + 4]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10014340
mov dword [ebp - 0x2c], eax
cmp dword [eax + 4], 0
je 0x100e2aed
mov esi, dword [ebp - 0x20]
cmp dword [esi + 4], 0
je 0x100e2aed
mov ecx, edi
call fcn.1000df10
lea ecx, [ebp - 0x4c]
mov dword [eax], 3
mov eax, dword [esi + 4]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
push dword [eax + 4]
call fcn.10002e90
mov dword [ebp - 4], 0
lea edx, [ebp - 0x4c]
cmp dword [ebp - 0x38], 0xf
mov esi, 0x811c9dc5
mov edi, dword [ebp - 0x3c]
cmova edx, dword [ebp - 0x4c]
xor ecx, ecx
test edi, edi
je 0x100e29a9
movzx eax, byte [ecx + edx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, edi
jb 0x100e2998
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x4c]
push esi
push eax
lea eax, [ebp - 0x24]
add edi, 0x88
push eax
mov ecx, edi
call fcn.10011020
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100e2ac6
cmp dword [edi + 8], 0x4924924
jne 0x100e29e1
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
lea eax, [edi + 4]
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 1
push 0x38
mov dword [ebp - 0x2c], 0
call fcn.1006caff
xorps xmm0, xmm0
mov dword [ebp - 0x2c], eax
add esp, 4
movups xmmword [eax + 8], xmm0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
movups xmm0, xmmword [ebp - 0x4c]
movups xmmword [eax + 8], xmm0
movq xmm0, qword [ebp - 0x3c]
movq qword [eax + 0x18], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
movups xmmword [eax + 0x20], xmm0
mov dword [eax + 0x30], 0
mov dword [eax + 0x34], 0xf
mov byte [eax + 0x20], 0
mov byte [ebp - 4], 2
mov eax, dword [edi + 8]
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1017f940]
mov eax, dword [edi + 0x1c]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1017f940]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [edi]
jbe 0x100e2ab3
mov ecx, edi
call fcn.10011890
mov eax, dword [ebp - 0x2c]
mov ecx, edi
push esi
add eax, 8
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10011020
mov ecx, dword [eax]
jmp 0x100e2ab6
mov ecx, dword [ebp - 0x24]
push dword [ebp - 0x2c]
push ecx
push esi
mov ecx, edi
call fcn.1000c1a0
mov byte [ebp - 4], 0
push dword [ebp - 0x28]
lea ecx, [eax + 0x20]
call fcn.10002e10
lea ecx, [ebp - 0x4c]
call fcn.10002e40
jmp 0x100e2aed
mov eax, dword [0x101edf28]
mov ecx, dword [ebp - 0x14]
movsx eax, word [eax + edi]
push eax
call fcn.100e2b10
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc