Function at 0x10115330
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffe0
sub esp, 0xc0
mov esi, esp
mov dword [esi + 0x98], ebp
mov ebx, ecx
mov edx, dword [ebp + 8]
mov dword [esi + 0x9c], esp
mov dword [esi + 0xa8], 0xffffffff
lea eax, [esi + 0xa0]
mov dword [esi + 0xa4], 0x10129560
mov ecx, dword fs:[0]
mov dword [esi + 0xa0], ecx
mov dword fs:[0], eax
lea ecx, [edx + 4]
mov eax, dword [edx + 4]
mov dword [esi + 0x3c], ecx
call dword [eax + 0x20]
test eax, eax
je 0x101155c4
mov ecx, eax
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x294c]
test edi, edi
je 0x101155c4
cmp dword [edi], 0
je 0x101155c4
mov dword [esi + 0xc], ecx
mov eax, dword [ebx + 0xec]
cmp eax, dword [ebx + 0xf0]
je 0x101153e4
push 0x3098
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebx + 0xec]
lea ecx, [eax + 0x3098]
mov dword [ebx + 0xec], ecx
jmp 0x101153f2
add ebx, 0xe8
mov ecx, ebx
push eax
call fcn.10116590
mov dword [esi + 0x1c], eax
mov ecx, dword [0x1025ae0c]
movss xmm0, dword [ecx]
movss dword [eax], xmm0
mov ecx, dword [edi]
mov dword [eax + 0x307c], ecx
mov ecx, dword [0x1025ae64]
mov eax, dword [esi + 0xc]
movzx eax, word [eax + 0x138]
mov edx, dword [ecx]
push eax
call dword [edx + 0x3c]
mov edi, dword [esi + 0x1c]
mov dword [edi + 0x3080], eax
mov eax, dword [esi + 0x3c]
mov dword [edi + 0x3084], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 0x18]
cmp ecx, 2
jg 0x10115455
ja 0x1011582d
imul ecx, ecx, 0x32e0
add eax, ecx
add eax, 0x3c8
jmp 0x1011546e
add ecx, 0xfffffffd
cmp ecx, 2
jae 0x10115832
imul ecx, ecx, 0x32e0
add eax, ecx
add eax, 0x9c68
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0x3054], eax
mov eax, dword [0x102606ac]
test al, 1
je 0x101155da
mov ebx, dword [0x102606a8]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + ecx]
mov dword [edi + 0x3074], eax
mov eax, dword [0x10260a98]
test al, 1
je 0x101156db
mov ebx, dword [0x10260a94]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + ecx]
mov dword [edi + 0x306c], eax
mov eax, dword [0x10260aa0]
test al, 1
je 0x10115786
mov ebx, dword [0x10260a9c]
mov dword [esi + 0xa8], 0xffffffff
lea eax, [edi + 0x3034]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 4]
mov ebx, dword [ebp + 8]
mov eax, dword [eax + ebx]
mov dword [edi + 0x3070], eax
lea ecx, [ebx + 8]
mov eax, dword [ebx + 8]
call dword [eax + 0x28]
mov dword [edi + 0x3068], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
movsd xmm0, qword [eax + 0x6c]
mov ecx, dword [esi + 0xc]
movsd qword [ecx], xmm0
mov eax, dword [eax + 0x74]
mov dword [ecx + 8], eax
mov ebx, dword [esi + 0x94]
movss xmm0, dword [ebx + 0x3004]
lea eax, [edi + 0x3040]
mov dword [esi + 0xc], eax
movss dword [edi + 0x3044], xmm0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov ecx, dword [esi + 0x3c]
call dword [eax + pe_nt_image_headers32]
mov word [edi + 0x3078], ax
mov dword [edi + 0x3064], 1
lea eax, [edi + 4]
mov ecx, dword [ebx + 0x3000]
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x1025adc8]
lea ebx, [edi + 0x3004]
mov ecx, dword [esi + 0xc]
mov edx, ebx
call dword [eax + 0xe0]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x6c]
movss dword [edi + 0x3010], xmm0
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x70]
movss dword [edi + 0x3020], xmm0
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x74]
movss dword [edi + 0x3030], xmm0
mov dword [edi + 0x3088], ebx
mov dword [edi + 0x3058], ebx
mov eax, dword [esi + 0xa0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
or eax, 1
mov dword [0x102606ac], eax
mov eax, dword [0x1025adcc]
mov dword [esi + 0x18], eax
mov eax, 0x495824d4
mov ecx, 0x8a44ad4d
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xddcbe181
mov ecx, 0xb95db417
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0x7ac621b4
mov ecx, 0x82cd628f
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov ecx, 0xcbc98f0e
mov eax, 0x7f08b8f7
mov edx, 0x7f08b8f7
mov dword [esi + 0x5c], edx
mov dword [esi + 0x58], ecx
mov ecx, 0x3a396697
mov edx, 0xe32aec28
mov dword [esi + 0x64], edx
mov dword [esi + 0x60], ecx
mov ecx, 0xb4bf80ec
mov edx, 0x8770d379
mov dword [esi + 0x6c], edx
mov dword [esi + 0x68], ecx
mov ecx, 0x32a87ed9
mov edx, 0xedaf16e6
mov dword [esi + 0x74], edx
mov dword [esi + 0x70], ecx
mov ecx, 0xbfacdc76
mov dword [esi + 0x7c], eax
mov dword [esi + 0x78], ecx
lea eax, [esi + 0x60]
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]
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0xa8], 0
lea eax, [esi + 0x40]
lea ecx, [esi + 0x20]
mov dword [esi + 0x10], ecx
push eax
call fcn.10015170
mov eax, dword [esi + 0x30]
mov dword [esi + 0xc], eax
cmp dword [esi + 0x34], 0x10
jb 0x101156b1
mov eax, dword [esi + 0x20]
mov dword [esi + 0x10], eax
cmp dword [esi + 0xc], 0
je 0x10115837
mov eax, dword [esi + 0xc]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x14], ecx
cmp eax, 4
jae 0x10115852
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1011589c
or eax, 1
mov dword [0x10260a98], eax
mov eax, 0x695739fa
mov ecx, 0xe3448543
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xb4bf80ec
mov ecx, 0x8770d379
mov edx, 0x3a396697
mov edi, 0xe32aec28
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
lea eax, [esi + 0x40]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x18], eax
movaps xmmword [esi + 0x20], xmm0
mov dword [esi + 0xa8], 2
lea eax, [esi + 0x20]
lea ecx, [esi + 0x60]
mov dword [esi + 0x10], ecx
push eax
call fcn.10015170
mov eax, dword [esi + 0x70]
mov dword [esi + 0xc], eax
cmp dword [esi + 0x74], 0x10
jb 0x1011575c
mov eax, dword [esi + 0x60]
mov dword [esi + 0x10], eax
cmp dword [esi + 0xc], 0
je 0x1011583e
mov eax, dword [esi + 0xc]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x14], ecx
cmp eax, 4
jae 0x10115923
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1011596d
or eax, 1
mov dword [0x10260aa0], eax
mov eax, 0x785739fa
mov ecx, 0xe3538847
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xb4bf80ec
mov ecx, 0x8770d379
mov edx, 0x3a396697
mov edi, 0xe32aec28
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
lea eax, [esi + 0x40]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x18], eax
movaps xmmword [esi + 0x20], xmm0
mov dword [esi + 0xa8], 4
lea eax, [esi + 0x20]
lea ecx, [esi + 0x60]
mov dword [esi + 0x10], ecx
push eax
call fcn.10015170
mov eax, dword [esi + 0x70]
mov dword [esi + 0xc], eax
cmp dword [esi + 0x74], 0x10
jb 0x10115807
mov eax, dword [esi + 0x60]
mov dword [esi + 0x10], eax
cmp dword [esi + 0xc], 0
je 0x10115848
mov eax, dword [esi + 0xc]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x14], ecx
cmp eax, 4
jae 0x101159f4
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10115a3e
call fcn.1009f460
call fcn.1009f460
mov ecx, 0x811c9dc5
jmp 0x101158b9
mov ecx, 0x811c9dc5
jmp 0x1011598a
mov ecx, 0x811c9dc5
jmp 0x10115a5b
mov edi, dword [esi + 0xc]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x10]
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 0x10115862
cmp dword [esi + 0x14], 0
je 0x101158b9
add edx, dword [esi + 0x10]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x14], edi
jne 0x101158a7
mov edx, dword [esi + 0x18]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x10115acb
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0xc]
cmp eax, dword [ebx + 0x18]
jne 0x101158fd
cmp dword [ebx + 0x1c], 0x10
jb 0x101158e7
mov eax, dword [ebx + 8]
jmp 0x101158ea
lea eax, [ebx + 8]
push dword [esi + 0xc]
push eax
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1011590a
cmp ebx, edi
je 0x10115acb
mov ebx, dword [ebx + 4]
jmp 0x101158d4
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10015110
mov dword [0x102606a8], ebx
mov edi, dword [esi + 0x1c]
jmp 0x10115490
mov edi, dword [esi + 0xc]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x10]
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 0x10115933
cmp dword [esi + 0x14], 0
je 0x1011598a
add edx, dword [esi + 0x10]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x14], edi
jne 0x10115978
mov edx, dword [esi + 0x18]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x10115ae2
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0xc]
cmp eax, dword [ebx + 0x18]
jne 0x101159ce
cmp dword [ebx + 0x1c], 0x10
jb 0x101159b8
mov eax, dword [ebx + 8]
jmp 0x101159bb
lea eax, [ebx + 8]
push dword [esi + 0xc]
push eax
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x101159db
cmp ebx, edi
je 0x10115ae2
mov ebx, dword [ebx + 4]
jmp 0x101159a5
add ebx, 0x20
lea ecx, [esi + 0x60]
call fcn.10015110
mov dword [0x10260a94], ebx
mov edi, dword [esi + 0x1c]
jmp 0x101154b2
mov edi, dword [esi + 0xc]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x10]
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 0x10115a04
cmp dword [esi + 0x14], 0
je 0x10115a5b
add edx, dword [esi + 0x10]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x14], edi
jne 0x10115a49
mov edx, dword [esi + 0x18]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x10115af9
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0xc]
cmp eax, dword [ebx + 0x18]
jne 0x10115a9f
cmp dword [ebx + 0x1c], 0x10
jb 0x10115a89
mov eax, dword [ebx + 8]
jmp 0x10115a8c
lea eax, [ebx + 8]
push dword [esi + 0xc]
push eax
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10115aa8
cmp ebx, edi
je 0x10115af9
mov ebx, dword [ebx + 4]
jmp 0x10115a76
add ebx, 0x20
lea ecx, [esi + 0x60]
call fcn.10015110
mov dword [0x10260a9c], ebx
mov dword [esi + 0xa8], 0xffffffff
mov edi, dword [esi + 0x1c]
jmp 0x101154de
mov dword [esi + 0xa8], 1
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 + 0xa8], 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 + 0xa8], 5
push str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
push ebp
sub esp, 0xc
lea esi, [ebp - 0xac]
mov ebp, dword [esi + 0x98]
lea ecx, [esi + 0x20]
call fcn.10015110
add esp, 0xc
pop ebp
ret