Function at 0x1004d94
Capabilities:
Check if file exists
Get common file path
Get disk information
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
push ebx
push esi
push edi
xor ebx, ebx
push ebx
push ebx
push str.RUNPROGRAM
call fcn.01003f90
mov esi, eax
lea eax, [eax + 1]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
jne 0x1004de3
push ebx
push 0x10
push ebx
push ebx
push 0x4b5
push ebx
call fcn.01003e4b
call fcn.01005aa0
mov dword [0x1015fcc], eax
xor eax, eax
jmp 0x10050d6
push esi
push edi
push str.RUNPROGRAM
call fcn.01003f90
test eax, eax
jne 0x1004e1d
xor eax, eax
push eax
push 0x10
push eax
push eax
push 0x4b1
push eax
call fcn.01003e4b
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [0x1015fcc], 0x80070714
xor eax, eax
jmp 0x10050d6
push 0x1010338
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x1004e37
mov dword [0x1015fc0], 1
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp byte [0x10160fa], 0
je 0x1004e97
cmp byte [0x10160fa], 0x5c
jne 0x1004e5e
cmp byte [0x10160fb], 0x5c
mov eax, 0
je 0x1004e63
mov eax, 1
push eax
push 0
push 0x10160fa
call fcn.01004cc9
test eax, eax
je 0x1004e7e
mov eax, 1
jmp 0x10050d6
xor eax, eax
push eax
push 0x10
push eax
push eax
push 0x4be
push eax
call fcn.01003e4b
xor eax, eax
jmp 0x10050d6
cmp dword [0x1015fe4], 0
jne 0x10050bc
cmp dword [0x1015fc0], 0
jne 0x10050bc
mov esi, 0x1015774
push esi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x1004f05
push 3
push 1
push esi
call fcn.01004cc9
test eax, eax
je 0x1004ede
mov eax, 1
jmp 0x10050d6
mov esi, 0x1015774
push esi
call fcn.010029d0
test eax, eax
jne 0x1004f05
push 1
push 1
push esi
call fcn.01004cc9
test eax, eax
je 0x1004f05
mov eax, 1
jmp 0x10050d6
push 0x104
mov esi, 0x1015774
push esi
mov eax, dword [0x1016700]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x1004f8e
cmp byte [0x1015775], 0x5c
je 0x1004f8e
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
dec eax
cmp byte [eax + 0x1015774], 0x5c
je 0x1004f44
dec eax
cmp byte [eax + 0x1015774], 0x5c
jne 0x1004f3a
mov byte [eax + 0x1015775], 0
push 3
push 1
push 0x1015774
call fcn.01004cc9
test eax, eax
je 0x1004f67
mov eax, 1
jmp 0x10050d6
mov esi, 0x1015774
push esi
call fcn.010029d0
test eax, eax
jne 0x1004f8e
push 1
push 1
push esi
call fcn.01004cc9
test eax, eax
je 0x1004f8e
mov eax, 1
jmp 0x10050d6
push 0x10013bc
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [ebp - 0x104], 0x5a
jg 0x100508e
xor ebx, ebx
mov esi, 0x1015774
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 6
je 0x1004fcf
cmp eax, 3
jne 0x100507b
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x100507b
push ebx
lea eax, [ebp - 0x104]
push 3
push eax
call fcn.010051cf
test eax, eax
jne 0x100501b
lea eax, [ebp - 0x104]
push eax
call fcn.010029d0
test eax, eax
jne 0x100507b
push ebx
lea eax, [ebp - 0x104]
push 1
push eax
call fcn.010051cf
test eax, eax
je 0x100507b
push 0x10013ac
lea eax, [ebp - 0x104]
push eax
call fcn.010027e1
lea eax, [ebp - 0x104]
push eax
call fcn.010029ad
test eax, eax
jne 0x100504a
inc byte [ebp - 0x104]
mov byte [ebp - 0x101], bl
jmp 0x1005081
push 2
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebp - 0x104]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebx
push 1
push esi
call fcn.01004cc9
test eax, eax
je 0x1005081
mov eax, 1
jmp 0x10050d6
inc byte [ebp - 0x104]
cmp byte [ebp - 0x104], 0x5a
jle 0x1004fb4
push 0x104
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 4
lea eax, [ebp - 0x104]
push 3
push eax
call fcn.010051cf
test eax, eax
jne 0x1004f8e
xor eax, eax
jmp 0x10050d6
push 0
mov eax, dword [0x1016700]
push 0x1002fa2
push 0
push 0x7d2
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamA]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret