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

Disassembly:
push ebp
lea ebp, [esp - 0x15e8]
mov eax, 0x1668
call fcn.00403370
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 0x402517
push edi
mov edi, 0x404628
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.004016ec
lea eax, [ebp + 0x13dc]
push eax
call fcn.004016ec
lea eax, [ebp + 0x14e0]
push eax
call fcn.00401588
lea eax, [ebp + 0x13dc]
push eax
call fcn.00401588
add esp, 0x40
lea eax, [ebp + 0x13dc]
push eax
lea eax, [ebp + 0x14e0]
push ebx
push eax
call fcn.0040327c
add esp, 0xc
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x2c]
jl 0x402458
pop edi
cmp byte [0x406558], bl
je 0x4027b2
mov esi, 0x409c00
push esi
call fcn.004016ec
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.004016ec
lea eax, [ebp + 0x3dc]
push 0x404624
push eax
call fcn.004011a4
add esp, 0x14
test eax, eax
jne 0x4026e7
lea eax, [ebp + 0x3dc]
push 0x404620
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4026e7
lea eax, [ebp + 0x3dc]
push 0x40461c
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4026e7
lea eax, [ebp + 0x3dc]
push 0x404618
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4026c6
lea eax, [ebp + 0x3dc]
push 0x404614
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4026c6
lea eax, [ebp + 0x3dc]
push 0x404610
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4026c6
lea eax, [ebp + 0x3dc]
push 0x40460c
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4026c6
lea eax, [ebp + 0x3dc]
push 0x404608
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4026c6
lea eax, [ebp + 0x3dc]
push 0x404604
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4026c6
lea eax, [ebp + 0x3dc]
push 0x404600
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4026c6
lea eax, [ebp + 0x3dc]
push 0x4045fc
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4026c6
lea eax, [ebp + 0x3dc]
push 0x4045f8
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4026c6
lea eax, [ebp + 0x3dc]
push 0x4045f4
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x4026c6
lea eax, [ebp + 0x3dc]
push 0x4045f0
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
je 0x4027b2
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 0x4027b2
cmp byte [ebp + 0x3dc], 0x22
je 0x402722
lea eax, [ebp + 0x3dc]
push eax
call fcn.0040171c
pop ecx
test eax, eax
jne 0x402722
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 0x4027b2
push 0x40
lea eax, [ebp - 0x7c]
push ebx
push eax
mov dword [ebp - 0x80], 0x44
call fcn.00401690
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 0x402782
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 0x4027b2
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.00403355
add ebp, 0x15e8
leave
ret