Function at 0x1013abe
Capabilities:
Check if file exists
Get common file path
Get file attributes
Query or enumerate registry value
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x284
mov eax, dword [0x10413a0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor ebx, ebx
mov edi, 0x104
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x280], edi
cmp dword [0x10414f8], ebx
je 0x1013af7
mov dword [ebp + 0xc], ebx
push 0xc
push edi
lea ecx, [ebp - 0x270]
push ecx
push eax
call fcn.0101354d
push 0x2e
lea eax, [ebp - 0x270]
push eax
call fcn.0100bdcc
test eax, eax
jne 0x1013b2b
push 0x1005044
push edi
lea eax, [ebp - 0x270]
push eax
call fcn.01007b2f
mov esi, 0x168
push esi
lea eax, [ebp - 0x16c]
push eax
push dword [ebp - 0x274]
call fcn.010139c9
test eax, eax
je 0x1013b64
lea eax, [ebp - 0x16c]
push eax
call fcn.010134ed
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0103d1ec
leave
ret 8
lea eax, [ebp - 0x278]
push eax
push 0x20019
push ebx
push 0x1004a04
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x1013c64
mov eax, dword [ebp - 0x280]
mov byte [ebp + eax - 0x16c], bl
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x284]
push eax
push ebx
lea eax, [ebp - 0x270]
push eax
push dword [ebp - 0x278]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 0x278]
mov dword [ebp - 0x27c], eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x27c], ebx
jne 0x1013c64
push esi
lea eax, [ebp - 0x16c]
push eax
call fcn.01013047
lea eax, [ebp - 0x270]
push eax
push esi
lea eax, [ebp - 0x16c]
push eax
call fcn.01007b2f
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x1013b47
lea eax, [ebp - 0x16c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push edi
lea eax, [ebp - 0x16c]
push eax
call fcn.01013047
push dword [ebp - 0x274]
lea eax, [ebp - 0x16c]
push esi
push eax
call fcn.01007b2f
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x1013b47
cmp dword [ebp + 0xc], ebx
jne 0x1013c97
xor eax, eax
jmp 0x1013b53
push 1
push esi
lea eax, [ebp - 0x16c]
push eax
call fcn.0101309d
push esi
lea eax, [ebp - 0x16c]
push eax
call fcn.01013047
push 0x100504c
push esi
lea eax, [ebp - 0x16c]
push eax
call fcn.01007b2f
jmp 0x1013bdd
push dword [ebp - 0x274]
mov dword [0x10414f8], 1
push 0xe
call fcn.010281fa
push eax
lea eax, [ebp - 0x16c]
push esi
push eax
call fcn.01007bcb
mov eax, dword [0x1043894]
add esp, 0x10
cmp eax, ebx
jne 0x1013cd6
mov eax, dword [0x10437b8]
imul eax, eax, 0x50
mov eax, dword [eax + 0x10438c0]
mov ecx, dword [0x1043824]
or ecx, 0x24
push ecx
push dword [0x1043644]
lea ecx, [ebp - 0x16c]
push ecx
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
je 0x1013d06
xor eax, eax
mov dword [0x10414f8], ebx
jmp 0x1013b53
mov eax, dword [0x10437b8]
imul eax, eax, 0x50
push ebx
push dword [ebp - 0x274]
push dword [eax + 0x10438c0]
call fcn.01010f53
mov esi, eax
cmp esi, ebx
je 0x1013db5
lea eax, [ebp - 0x274]
push eax
lea eax, [ebp - 0x16c]
push eax
push edi
push ebx
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SearchPathA]
test eax, eax
jbe 0x1013db5
mov eax, dword [ebp - 0x274]
mov byte [eax - 1], bl
lea eax, [ebp - 0x27c]
push eax
lea eax, [ebp - 0x278]
push eax
push ebx
push 0xf003f
push ebx
push str.Folder
push ebx
push 0x1004a04
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x1013db5
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
lea eax, [ebp - 0x16c]
push eax
push 1
push ebx
push dword [ebp - 0x274]
push dword [ebp - 0x278]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 0x278]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x1013cfb