Function at 0x453c60
Capabilities:
Create a process with modified i/o handles and window
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
push ebx
push esi
mov esi, ecx
or ebx, 0xffffffff
test esi, esi
push edi
mov edi, eax
mov dword [esp + 0x14], ebx
je 0x453e95
mov eax, dword [esi + 8]
cmp dword [eax], 0
je 0x453e95
mov ecx, 1
xor eax, eax
test byte [ebp + 8], cl
je 0x453ca0
cmp dword [0x535e30], 2
jmp 0x453ca6
cmp dword [0x535e30], ecx
setge al
test eax, eax
je 0x453e6f
mov eax, dword [0x5424e8]
test eax, eax
jne 0x453e1e
mov eax, edi
call fcn.00453a50
push esi
mov ebx, eax
call fcn.00453b10
mov ecx, dword [esi + 8]
mov esi, dword [ecx]
add esp, 4
push 0x44
lea edx, [esp + 0x2c]
push 0
push edx
mov dword [esp + 0x1c], eax
call sub.MSVCR80.dll_memset
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
add esp, 0xc
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
mov edi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff6
mov dword [esp + 0x2c], 0x44
mov dword [esp + 0x58], 0x101
mov word [esp + 0x5c], 0
call edi
push 0xfffffffffffffff5
mov dword [esp + 0x64], eax
call edi
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x2c]
push edx
push 0
push ebx
push 0
push 0
push 0
push 0
push edi
push esi
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x453ddd
mov eax, dword [esp + 0x1c]
push eax
mov dword [esp + 0x14], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x10]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x453dac
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
push edx
mov dword [esp + 0x18], ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x453e01
push 0x140
call fcn.00408960
add esp, 4
test eax, eax
je 0x453dd0
push esi
push str.openvpn_execve:_GetExitCodeProcess__s_failed
push 0x140
call fcn.00408640
add esp, 0xc
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x453e01
push 0x140
call fcn.00408960
add esp, 4
test eax, eax
je 0x453e01
push esi
push str.openvpn_execve:_CreateProcess__s_failed
push 0x140
call fcn.00408640
add esp, 0xc
mov esi, dword [sym.imp.MSVCR80.dll_free]
push edi
call esi
add esp, 4
push ebx
call esi
mov eax, dword [esp + 0x18]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, ecx
jne 0x453e3f
call fcn.00452830
mov esi, dword [esi + 0xc]
mov eax, dword [ebp + 8]
push edi
mov ebx, esi
call fcn.00419dc0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x10
call fcn.00408960
add esp, 4
test eax, eax
je 0x453eb2
push 0x3ec
push str..win32.c
push str.Assertion_failed_at__s:_d
push 0x10
call fcn.00408640
add esp, 0x10
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x40
call fcn.00408960
add esp, 4
test eax, eax
je 0x453eb2
push str.openvpn_execve:_external_program_may_not_be_called_unless___script_security_2_or_higher_is_enabled.__Use___script_security_3_system_for_backward_compatibility_with_2.1_rc8_and_earlier.__See___help_text_or_man_page_for_detailed_info.
push 0x40
call fcn.00408640
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x40
call fcn.00408960
add esp, 4
test eax, eax
je 0x453eb2
push str.openvpn_execve:_called_with_empty_argv
push 0x40
call fcn.00408640
add esp, 8
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret