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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x31
push 0
push 0
dec ecx
jne 0x451a84
push ecx
push ebx
push esi
push edi
mov eax, 0x451874
call fcn.00405f14
xor eax, eax
push ebp
push 0x452074
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.ole32.dll_CoInitialize
test eax, eax
jne 0x451fd4
mov eax, dword [0x45402c]
mov eax, dword [eax]
call fcn.0044e89c
push 0x455c14
push pe_nt_image_headers32
call sub.kernel32.dll_GetCurrentDirectoryA
lea edx, [ebp - 0x14]
mov eax, dword [0x4540ac]
call fcn.004501cc
mov edx, dword [ebp - 0x14]
mov eax, 0x455bfc
mov ecx, 0x452088
call fcn.004057c0
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
mov edx, 0x455c14
mov ecx, pe_nt_image_headers32
call fcn.004040e4
lea eax, [ebp - 0x2c]
mov edx, 0x4520a0
call fcn.0040413c
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x28]
call fcn.00412f44
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
mov eax, dword [0x455bfc]
push eax
mov eax, dword [eax]
call dword [eax + 0xe8]
call fcn.0040588c
cmp word [ebp - 0x18], 1
sbb eax, eax
inc eax
test al, al
jne 0x451b7c
mov eax, 0x455bfc
call fcn.0040577c
push 0x30
mov ecx, 0x4520ac
mov edx, 0x4520b8
mov eax, dword [0x45402c]
mov eax, dword [eax]
call fcn.0044ea44
mov eax, dword [0x45402c]
mov eax, dword [eax]
call fcn.0044e9a0
jmp 0x451fd4
lea eax, [ebp - 0x30]
call fcn.0040577c
push eax
mov eax, dword [0x455bfc]
push eax
mov eax, dword [eax]
call dword [eax + 0xb4]
call fcn.0040588c
mov edx, dword [ebp - 0x30]
mov eax, 0x455c00
call fcn.00405794
lea eax, [ebp - 0x34]
call fcn.0040577c
push eax
mov eax, dword [0x455c00]
push eax
mov eax, dword [eax]
call dword [eax + 0x34]
call fcn.0040588c
mov edx, dword [ebp - 0x34]
mov eax, 0x455c04
call fcn.00405794
xor edx, edx
push ebp
push 0x451fca
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [0x455c04], 0
je 0x451e8d
lea eax, [ebp - 0x38]
call fcn.00404554
push eax
mov eax, dword [0x455c04]
push eax
mov eax, dword [eax]
call dword [eax + 0x1c]
call fcn.0040588c
mov eax, dword [ebp - 0x38]
mov edx, 0x4520f8
call fcn.00404714
jne 0x451e5a
lea eax, [ebp - 0x3c]
call fcn.0040577c
push eax
mov eax, dword [0x455c04]
push eax
mov eax, dword [eax]
call dword [eax + 0x34]
call fcn.0040588c
mov edx, dword [ebp - 0x3c]
mov eax, 0x455c08
call fcn.00405794
cmp dword [0x455c08], 0
je 0x451e5a
lea eax, [ebp - 0x40]
call fcn.00404554
push eax
mov eax, dword [0x455c08]
push eax
mov eax, dword [eax]
call dword [eax + 0x1c]
call fcn.0040588c
mov eax, dword [ebp - 0x40]
mov edx, 0x452108
call fcn.00404714
jne 0x451d5f
lea eax, [ebp - 0x44]
call fcn.00404554
push eax
mov eax, dword [0x455c08]
push eax
mov eax, dword [eax]
call dword [eax + 0x68]
call fcn.0040588c
mov eax, dword [ebp - 0x44]
mov edx, 0x452118
call fcn.00404714
je 0x451cc5
lea eax, [ebp - 0x48]
call fcn.00404554
push eax
mov eax, dword [0x455c08]
push eax
mov eax, dword [eax]
call dword [eax + 0x68]
call fcn.0040588c
mov eax, dword [ebp - 0x48]
mov edx, 0x452128
call fcn.00404714
jne 0x451d5f
lea eax, [ebp - 0x4c]
call fcn.0040577c
push eax
mov eax, dword [0x455c08]
push eax
mov eax, dword [eax]
call dword [eax + 0x40]
call fcn.0040588c
mov edx, dword [ebp - 0x4c]
mov eax, 0x455c08
call fcn.00405794
lea eax, [ebp - 0x50]
call fcn.00404554
push eax
mov eax, dword [0x455c08]
push eax
mov eax, dword [eax]
call dword [eax + 0x1c]
call fcn.0040588c
mov eax, dword [ebp - 0x50]
mov edx, 0x45213c
call fcn.00404714
jne 0x451d5f
lea eax, [ebp - 0x58]
mov edx, dword [0x455c0c]
call fcn.004046a0
push dword [ebp - 0x58]
lea eax, [ebp - 0x5c]
call fcn.00404554
push eax
mov eax, dword [0x455c08]
push eax
mov eax, dword [eax]
call dword [eax + 0x68]
call fcn.0040588c
push dword [ebp - 0x5c]
push 0x45214c
lea eax, [ebp - 0x54]
mov edx, 3
call fcn.004046cc
mov edx, dword [ebp - 0x54]
mov eax, 0x455c0c
call fcn.004040fc
lea eax, [ebp - 0x60]
call fcn.00404554
push eax
mov eax, dword [0x455c08]
push eax
mov eax, dword [eax]
call dword [eax + 0x1c]
call fcn.0040588c
mov eax, dword [ebp - 0x60]
mov edx, 0x452108
call fcn.00404714
jne 0x451e27
lea eax, [ebp - 0x64]
call fcn.00404554
push eax
mov eax, dword [0x455c08]
push eax
mov eax, dword [eax]
call dword [eax + 0x68]
call fcn.0040588c
mov eax, dword [ebp - 0x64]
mov edx, 0x452154
call fcn.00404714
jne 0x451e27
lea eax, [ebp - 0x68]
call fcn.0040577c
push eax
mov eax, dword [0x455c08]
push eax
mov eax, dword [eax]
call dword [eax + 0x40]
call fcn.0040588c
mov edx, dword [ebp - 0x68]
mov eax, 0x455c08
call fcn.00405794
lea eax, [ebp - 0x6c]
call fcn.00404554
push eax
mov eax, dword [0x455c08]
push eax
mov eax, dword [eax]
call dword [eax + 0x1c]
call fcn.0040588c
mov eax, dword [ebp - 0x6c]
mov edx, 0x45213c
call fcn.00404714
jne 0x451e27
lea eax, [ebp - 0x70]
call fcn.00404554
push eax
mov eax, dword [0x455c08]
push eax
mov eax, dword [eax]
call dword [eax + 0x68]
call fcn.0040588c
mov edx, dword [ebp - 0x70]
mov eax, 0x455c10
call fcn.004040fc
lea eax, [ebp - 0x74]
call fcn.0040577c
push eax
mov eax, dword [0x455c08]
push eax
mov eax, dword [eax]
call dword [eax + 0x40]
call fcn.0040588c
mov edx, dword [ebp - 0x74]
mov eax, 0x455c08
call fcn.00405794
cmp dword [0x455c08], 0
jne 0x451c45
lea eax, [ebp - 0x78]
call fcn.0040577c
push eax
mov eax, dword [0x455c04]
push eax
mov eax, dword [eax]
call dword [eax + 0x40]
call fcn.0040588c
mov edx, dword [ebp - 0x78]
mov eax, 0x455c04
call fcn.00405794
cmp dword [0x455c04], 0
jne 0x451be6
push 0x455c0c
mov eax, dword [0x455c0c]
call fcn.00404134
mov ecx, eax
dec ecx
xor edx, edx
mov eax, dword [0x455c0c]
call fcn.00404394
mov eax, dword [0x455c10]
call fcn.00408380
mov edx, eax
lea eax, [ebp - 0x178]
call fcn.00402c44
lea eax, [ebp - 0x178]
mov edx, 0x452164
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402ae0
je 0x451ee8
mov eax, 0x455c10
mov edx, 0x452170
call fcn.0040413c
mov al, byte [0x452164]
push eax
lea eax, [ebp - 0x17c]
push eax
lea edx, [ebp - 0x180]
mov eax, 0x45217c
call fcn.00407bc4
mov eax, dword [ebp - 0x180]
push eax
lea edx, [ebp - 0x184]
mov eax, dword [0x455c10]
call fcn.00407bc4
mov eax, dword [ebp - 0x184]
xor ecx, ecx
pop edx
call fcn.0040c828
mov edx, dword [ebp - 0x17c]
mov eax, 0x455c10
call fcn.00403ec8
push 0x452184
push 0
call sub.user32.dll_FindWindowA
test eax, eax
jne 0x451f84
push 1
push 0
push 0
lea eax, [ebp - 0x188]
mov ecx, 0x4521a0
mov edx, dword [0x455c10]
call fcn.00404180
mov eax, dword [ebp - 0x188]
call fcn.00404334
push eax
push 0
push ebx
call sub.shell32.dll_ShellExecuteA
push 0xfa0
call sub.kernel32.dll_Sleep
push 1
push 0
push 0
lea eax, [ebp - 0x18c]
mov ecx, dword [0x455c0c]
mov edx, 0x4521b4
call fcn.00404180
mov eax, dword [ebp - 0x18c]
call fcn.00404334
push eax
push 0
push ebx
call sub.shell32.dll_ShellExecuteA
mov eax, dword [0x45402c]
mov eax, dword [eax]
call fcn.0044e8b4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x451fd4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45207e
lea eax, [ebp - 0x18c]
mov edx, 5
call fcn.00403e98
lea eax, [ebp - 0x78]
mov edx, dword [0x4517dc]
mov ecx, 2
call fcn.00404938
lea eax, [ebp - 0x70]
mov edx, 2
call fcn.0040456c
lea eax, [ebp - 0x68]
call fcn.0040577c
lea eax, [ebp - 0x64]
mov edx, 6
call fcn.0040456c
lea eax, [ebp - 0x4c]
call fcn.0040577c
lea eax, [ebp - 0x48]
mov edx, 3
call fcn.0040456c
lea eax, [ebp - 0x3c]
call fcn.0040577c
lea eax, [ebp - 0x38]
call fcn.00404554
lea eax, [ebp - 0x34]
call fcn.0040577c
lea eax, [ebp - 0x30]
call fcn.0040577c
lea eax, [ebp - 0x2c]
call fcn.00403e74
lea eax, [ebp - 0x28]
call fcn.0040eb00
lea eax, [ebp - 0x14]
call fcn.0040577c
ret