Function at 0x10018c0
Capabilities:
Check if file exists
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x630
push esi
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
movsx edx, byte [ebp - 0x218]
cmp edx, 0x22
jne 0x1001906
lea eax, [ebp - 0x217]
mov dword [ebp - 0xc], eax
push 0x10012c8
lea ecx, [ebp - 0xc]
push ecx
call fcn.01001810
mov dword [ebp - 0x220], eax
jmp 0x1001923
lea edx, [ebp - 0x218]
mov dword [ebp - 0xc], edx
push 0x10012c4
lea eax, [ebp - 0xc]
push eax
call fcn.01001810
mov dword [ebp - 0x220], eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.010024b0
test eax, eax
jne 0x1001954
push 0x100de84
lea edx, [ebp - 0x110]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [ebp - 0xc]
push eax
lea ecx, [ebp - 0x110]
push ecx
call fcn.01007d60
jmp 0x1001965
mov edx, dword [ebp - 0xc]
push edx
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x2e
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.01007d10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x1001bcf
push 0x10012bc
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x1001bcf
lea eax, [ebp - 0x110]
push eax
call fcn.01007ce0
test eax, eax
jne 0x10019c4
push 0
push 0x10
push 0
lea ecx, [ebp - 0x110]
push ecx
push 0x525
push 0
call fcn.01004e90
xor eax, eax
jmp 0x1001d52
mov edx, dword [ebp - 0x220]
mov dword [ebp - 0xc], edx
push 0x10012b8
lea eax, [ebp - 0xc]
push eax
call fcn.01001810
mov dword [ebp - 0x220], eax
push 0x100d0b8
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 4], eax
cmp dword [ebp - 0x220], 0
je 0x1001a39
mov ecx, dword [ebp - 0x220]
movsx edx, byte [ecx]
test edx, edx
je 0x1001a0e
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0xc], eax
push 0x10012b4
lea ecx, [ebp - 0xc]
push ecx
call fcn.01001810
mov dword [ebp - 0x220], eax
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx]
test eax, eax
je 0x1001a39
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 4], eax
push 0x200
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jne 0x1001a70
push 0
push 0x10
push 0
push 0
push 0x4b5
push 0
call fcn.01004e90
xor eax, eax
jmp 0x1001d52
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx]
test eax, eax
je 0x1001a85
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x628], ecx
jmp 0x1001a8f
mov dword [ebp - 0x628], 0x100d0b8
lea edx, [ebp - 0x110]
push edx
push 0
push 0x10012ac
mov eax, dword [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x100e824], eax
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 1
lea edx, [ebp - 0x110]
push edx
push 8
mov eax, dword [ebp - 0x114]
push eax
push 0x10012a8
push 0x100129c
push 0x1001294
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
jbe 0x1001b39
mov ecx, dword [0x100e6d4]
or ecx, 4
mov dword [0x100e6d4], ecx
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx]
test eax, eax
je 0x1001b05
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x62c], ecx
jmp 0x1001b0f
mov dword [ebp - 0x62c], 0x100d0b8
mov edx, dword [ebp - 0x62c]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x110]
push ecx
mov edx, dword [ebp - 0x114]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x1001bca
mov eax, dword [0x100e6d4]
and al, 0xfb
mov dword [0x100e6d4], eax
xor ecx, ecx
mov cx, word [0x100ec04]
test ecx, ecx
jne 0x1001b77
mov dword [ebp - 0x21c], 0x1001288
push 0x104
lea edx, [ebp - 0x110]
push edx
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
jmp 0x1001b81
mov dword [ebp - 0x21c], 0x1001278
mov ecx, dword [ebp - 0xc]
movsx edx, byte [ecx]
test edx, edx
je 0x1001b96
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x630], eax
jmp 0x1001ba0
mov dword [ebp - 0x630], 0x100d0b8
lea ecx, [ebp - 0x110]
push ecx
mov edx, dword [ebp - 0x630]
push edx
mov eax, dword [ebp - 0x21c]
push eax
push 0x100d018
mov ecx, dword [ebp - 0x114]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
jmp 0x1001d42
push 0x2e
mov edx, dword [ebp - 0xc]
push edx
call fcn.01007d10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x1001c6c
push 0x1001270
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x1001c6c
push str.Command.com__c__s
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
lea ecx, [ebp - 0x110]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edx, [esi + eax + 8]
push edx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jne 0x1001c4b
push 0
push 0x10
push 0
push 0
push 0x4b5
push 0
call fcn.01004e90
xor eax, eax
jmp 0x1001d52
lea eax, [ebp - 0x110]
push eax
push str.Command.com__c__s
mov ecx, dword [ebp - 0x114]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x1001d42
push 0x400
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jne 0x1001ca3
push 0
push 0x10
push 0
push 0
push 0x4b5
push 0
call fcn.01004e90
xor eax, eax
jmp 0x1001d52
lea edx, [ebp - 0x110]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x624], eax
cmp dword [ebp - 0x624], 0xffffffff
je 0x1001ccc
mov eax, dword [ebp - 0x624]
and eax, 0x10
test eax, eax
je 0x1001cdf
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x620]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x1001d2f
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x620]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 0x220], 0
je 0x1001d2f
mov edx, dword [ebp - 0x220]
movsx eax, byte [edx]
test eax, eax
je 0x1001d2f
push 0x10012c4
lea ecx, [ebp - 0x620]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov edx, dword [ebp - 0x220]
push edx
lea eax, [ebp - 0x620]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ecx, dword [ebp - 0x114]
push ecx
lea edx, [ebp - 0x620]
push edx
call fcn.01002c80
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x114]
mov dword [eax], ecx
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret 0xc