Function at 0x10014ac0
Capabilities:
Check if file exists
Get file attributes
Query or enumerate registry value

Disassembly:
sub esp, 0x20c
push ebx
push esi
push edi
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x118]
rep stosd dword es:[edi], eax
push 0x102ddbac
push str.SDI_AUXFILE
lea eax, [esp + 0x20]
push 0x1010d9ec
push eax
mov dword [esp + 0x20], 0x100
call fcn.100f0f37
lea ecx, [esp + 0x28]
push str..dll
push ecx
call fcn.100f0e40
add esp, 0x18
test eax, eax
je 0x10014b13
mov byte [eax], 0
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
xor esi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x10014b4c
movsx edx, byte [esp + esi + 0x18]
push edx
call fcn.100f1e87
mov byte [esp + esi + 0x1c], al
add esp, 4
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
inc esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp esi, ecx
jl 0x10014b27
lea eax, [esp + 0xc]
push eax
push 1
push 0
push str.SOFTWARESDI
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov ebx, dword [esp + 0x21c]
test eax, eax
jne 0x10014c22
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [esp + 0x10]
lea edx, [esp + 0x118]
push ecx
lea eax, [esp + 0x18]
push edx
mov edx, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
push 0
push ecx
push edx
call esi
test eax, eax
jne 0x10014bc4
lea edi, [esp + 0x118]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor esi, esi
jmp 0x10014c13
lea ecx, [esp + 0x10]
lea edx, [esp + 0x118]
push ecx
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x18]
push edx
push eax
push 0
push str.SDI_AUXFILE
push ecx
call esi
test eax, eax
jne 0x10014c0e
lea edi, [esp + 0x118]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor esi, esi
jmp 0x10014c13
mov esi, 1
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
je 0x10014c44
mov edi, 0x102ddfac
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x10014c5f
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x20c
ret
and eax, 0x10
push ebp
cmp al, 0x10
jne 0x10014d6d
mov edi, 0x1010d9e0
or ecx, 0xffffffff
xor eax, eax
push str..dll
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x102ddbac
mov ebp, ecx
or ecx, 0xffffffff
add ebp, ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.100f0e40
add esp, 8
test eax, eax
je 0x10014ce0
mov byte [eax], 0
push str..exe
push ebx
call fcn.100f0e40
add esp, 8
test eax, eax
je 0x10014cf5
mov byte [eax], 0
mov edi, 0x1010d9d4
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.auxs.dll
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x10014d6d
mov eax, dword [str.auxs.dll]
mov dword [ebp], eax
mov ecx, dword [0x1010d9cc]
mov dword [ebp + 4], ecx
mov dl, byte [0x1010d9d0]
mov byte [ebp + 8], dl
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
xor ecx, ecx
cmp eax, 0xffffffff
pop ebp
pop edi
sete cl
pop esi
mov eax, ecx
pop ebx
add esp, 0x20c
ret