Function at 0x4151c8
Capabilities:
Query environment variable
Set current directory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], ecx
call sub.cygwin1.dll_vfork
mov ebx, eax
test eax, eax
jne 0x415408
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call sub.cygwin1.dll_getpwnam
mov esi, eax
test eax, eax
jne 0x415229
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], 0x452cd7
mov dword [esp], 9
mov dword [esp + 8], eax
call fcn.00421a30
jmp 0x415408
mov dword [esp + 8], 1
mov eax, dword [eax]
mov ebx, 0x452cc8
mov dword [esp], 0x452cec
mov dword [esp + 4], eax
call sub.cygwin1.dll_setenv
mov edi, dword [ebp - 0x28]
test eax, eax
je 0x41529d
mov dword [esp], 1
jmp 0x4153dc
mov ecx, dword [edi + 8]
mov dword [esp], 0x452cf1
mov dword [esp + 4], ecx
mov dword [ebp - 0x2c], ecx
call sub.cygwin1.dll_strcmp
mov ecx, dword [ebp - 0x2c]
test eax, eax
jne 0x41527b
mov ebx, dword [edi + 0xc]
mov dword [esp + 8], 1
mov eax, dword [edi + 0xc]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.cygwin1.dll_setenv
test eax, eax
jne 0x41524f
mov edi, dword [edi]
cmp dword [ebp - 0x28], edi
je 0x4152a1
test edi, edi
jne 0x41525b
mov dword [esp], 0x452cf7
call sub.cygwin1.dll_getenv
mov edx, dword [esi + 0x18]
test eax, eax
jne 0x4152d4
mov dword [esp + 8], 1
mov dword [esp + 4], edx
mov dword [esp], 0x452cf7
call sub.cygwin1.dll_setenv
test eax, eax
jne 0x41524f
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call sub.cygwin1.dll_chdir
test eax, eax
jne 0x4152f6
cmp dword [ebp + 8], 0
cmovne ebx, dword [ebp + 8]
cmp byte [0x43c7d4], 0
je 0x41532b
jmp 0x415313
mov eax, dword [esi + 0x18]
mov dword [esp + 4], str.chdir__s_
mov dword [esp], 9
mov dword [esp + 8], eax
call fcn.00421a30
jmp 0x4152e3
mov dword [esp + 8], ebx
mov dword [esp + 4], str.child_running__s
mov dword [esp], 5
call fcn.00421a30
cmp dword [ebp - 0x1c], 0
js 0x415353
xor eax, eax
cmp dword [ebp + 8], 0
sete al
cmp dword [ebp - 0x1c], eax
jne 0x41536e
mov dword [esp + 4], 2
mov dword [esp], 1
call sub.cygwin1.dll_dup2
call sub.cygwin1.dll_setpgrp
cmp dword [ebp + 8], 0
jne 0x41538a
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 0x90]
mov eax, 0x452cd4
jmp 0x415391
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sub.cygwin1.dll_dup2
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sub.cygwin1.dll_close
jmp 0x41533f
xor edx, edx
mov eax, 0x452cd0
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], ebx
call sub.cygwin1.dll_execlp
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x10]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.cant_execute__s_for_user__s
mov dword [esp + 0xc], eax
mov dword [esp], 0x14
call fcn.00421a30
cmp dword [ebp + 8], 0
je 0x4153e1
mov dword [esp], 0
call sub.cygwin1.dll__exit
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x90]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Exec_failed:__s__c__s_n
mov dword [esp + 0xc], eax
mov dword [esp], 1
call sub.cygwin1.dll_dprintf
jmp 0x4153d5
test ebx, ebx
jns 0x415422
mov dword [esp + 4], str.cant_vfork
xor ebx, ebx
mov dword [esp], 0x14
call fcn.00421a30
cmp dword [ebp - 0x1c], 0
jns 0x415439
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xa0], ebx
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sub.cygwin1.dll_close
jmp 0x415428