Function at 0x4025e4
Capabilities:
Create process on windows
Set current directory

Disassembly:
push ebp
lea ebp, [esp - 0x15e8]
mov eax, 0x1668
call fcn.00403540
mov eax, dword [0x406004]
xor eax, ebp
mov dword [ebp + 0x15e4], eax
push ebx
push esi
push edi
push dword [0x406028]
call dword [sym.imp.USER32.dll_GetMenuItemCount]
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ebx
jle 0x4026ea
mov edi, 0x4046b8
mov esi, 0x104
push 0x400
push 0x208
lea eax, [ebp + 0x1d4]
push eax
push dword [ebp - 0x28]
push dword [0x406028]
call dword [sym.imp.USER32.dll_GetMenuStringA]
lea eax, [ebp + 0x14e0]
push eax
push ebx
lea eax, [ebp + 0x1d4]
push edi
push eax
call fcn.0040112c
lea eax, [ebp + 0x13dc]
push eax
push 1
lea eax, [ebp + 0x1d4]
push edi
push eax
call fcn.0040112c
lea eax, [ebp + 0x14e0]
push esi
push eax
call fcn.004012bb
lea eax, [ebp + 0x13dc]
push esi
push eax
call fcn.004012bb
lea eax, [ebp + 0x14e0]
push eax
call fcn.004018c0
lea eax, [ebp + 0x13dc]
push eax
call fcn.004018c0
lea eax, [ebp + 0x14e0]
push eax
call fcn.0040175c
lea eax, [ebp + 0x13dc]
push eax
call fcn.0040175c
add esp, 0x40
lea eax, [ebp + 0x13dc]
push eax
lea eax, [ebp + 0x14e0]
push ebx
push eax
call fcn.00403452
add esp, 0xc
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x2c]
jl 0x40262c
mov edi, dword [sym.imp.SHELL32.dll_ShellExecuteA]
mov esi, 0x409c00
cmp byte [0x406558], bl
je 0x402989
push esi
call fcn.004018c0
lea eax, [ebp + 0x3dc]
mov dword [esp], 0x406558
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp + 0x3dc]
push 0x1000
push eax
call fcn.004012bb
lea eax, [ebp + 0x3dc]
push eax
call fcn.004018c0
lea eax, [ebp + 0x3dc]
push 0x4046b4
push eax
call fcn.004011a4
add esp, 0x14
test eax, eax
jne 0x4028bc
lea eax, [ebp + 0x3dc]
push 0x4046b0
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4028bc
lea eax, [ebp + 0x3dc]
push 0x4046ac
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4028bc
lea eax, [ebp + 0x3dc]
push 0x4046a8
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40289f
lea eax, [ebp + 0x3dc]
push 0x4046a4
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40289f
lea eax, [ebp + 0x3dc]
push 0x4046a0
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40289f
lea eax, [ebp + 0x3dc]
push 0x40469c
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40289f
lea eax, [ebp + 0x3dc]
push 0x404698
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40289f
lea eax, [ebp + 0x3dc]
push 0x404694
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40289f
lea eax, [ebp + 0x3dc]
push 0x404690
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40289f
lea eax, [ebp + 0x3dc]
push 0x40468c
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40289f
lea eax, [ebp + 0x3dc]
push 0x404688
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40289f
lea eax, [ebp + 0x3dc]
push 0x404684
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40289f
lea eax, [ebp + 0x3dc]
push 0x404680
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
je 0x402989
push 0xa
push esi
push ebx
lea eax, [ebp + 0x3dc]
push eax
push str.open
push dword [0x406020]
call edi
jmp 0x402989
cmp byte [ebp + 0x3dc], 0x22
je 0x4028f7
lea eax, [ebp + 0x3dc]
push eax
call fcn.004018f0
pop ecx
test eax, eax
jne 0x4028f7
push esi
mov dword [0x409378], ebx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 5
lea eax, [ebp + 0x3dc]
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
jmp 0x402989
push 0x40
lea eax, [ebp - 0x7c]
push ebx
push eax
mov dword [ebp - 0x80], 0x44
call fcn.00401864
add esp, 0xc
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x80]
push eax
push esi
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp + 0x3dc]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x402959
push ebx
push dword [0x406020]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffff
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x402989
lea eax, [ebp + 0x3dc]
push eax
lea eax, [ebp - 0x24]
push str._s_could_not_be_executed.
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0x10
push str.Error
lea eax, [ebp - 0x24]
push eax
push dword [0x406020]
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [0x40665c], ebx
je 0x40299e
push 5
push ebx
push ebx
push esi
push str.explore
push ebx
call edi
mov ecx, dword [ebp + 0x15e4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040352b
add ebp, 0x15e8
leave
ret