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

Disassembly:
push ebp
lea ebp, [esp - 0x15e8]
mov eax, 0x1668
call fcn.004033e0
mov eax, dword [0x406004]
xor eax, ebp
mov dword [ebp + 0x15e4], eax
push ebx
push esi
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 0x40258e
push edi
mov edi, 0x404688
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.00401763
lea eax, [ebp + 0x13dc]
push eax
call fcn.00401763
lea eax, [ebp + 0x14e0]
push eax
call fcn.004015ff
lea eax, [ebp + 0x13dc]
push eax
call fcn.004015ff
add esp, 0x40
lea eax, [ebp + 0x13dc]
push eax
lea eax, [ebp + 0x14e0]
push ebx
push eax
call fcn.004032f8
add esp, 0xc
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x2c]
jl 0x4024cf
pop edi
cmp byte [0x406558], bl
je 0x402829
mov esi, 0x409c00
push esi
call fcn.00401763
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.00401763
lea eax, [ebp + 0x3dc]
push 0x404684
push eax
call fcn.004011a4
add esp, 0x14
test eax, eax
jne 0x40275e
lea eax, [ebp + 0x3dc]
push 0x404680
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40275e
lea eax, [ebp + 0x3dc]
push 0x40467c
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40275e
lea eax, [ebp + 0x3dc]
push 0x404678
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40273d
lea eax, [ebp + 0x3dc]
push 0x404674
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40273d
lea eax, [ebp + 0x3dc]
push 0x404670
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40273d
lea eax, [ebp + 0x3dc]
push 0x40466c
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40273d
lea eax, [ebp + 0x3dc]
push 0x404668
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40273d
lea eax, [ebp + 0x3dc]
push 0x404664
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40273d
lea eax, [ebp + 0x3dc]
push 0x404660
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40273d
lea eax, [ebp + 0x3dc]
push 0x40465c
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40273d
lea eax, [ebp + 0x3dc]
push 0x404658
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40273d
lea eax, [ebp + 0x3dc]
push 0x404654
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40273d
lea eax, [ebp + 0x3dc]
push 0x404650
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
je 0x402829
push 0xa
push esi
push ebx
lea eax, [ebp + 0x3dc]
push eax
push str.open
push dword [0x406020]
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
jmp 0x402829
cmp byte [ebp + 0x3dc], 0x22
je 0x402799
lea eax, [ebp + 0x3dc]
push eax
call fcn.00401793
pop ecx
test eax, eax
jne 0x402799
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 0x402829
push 0x40
lea eax, [ebp - 0x7c]
push ebx
push eax
mov dword [ebp - 0x80], 0x44
call fcn.00401707
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 0x4027f9
push ebx
push dword [0x406020]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [ebp - 0x38]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push 0xffffffffffffffff
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x3c]
call esi
jmp 0x402829
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]
mov ecx, dword [ebp + 0x15e4]
pop esi
xor ecx, ebp
pop ebx
call fcn.004033d1
add ebp, 0x15e8
leave
ret