Function at 0x405b90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
mov ebp, ecx
push esi
push ebx
sub esp, 0x5c
mov esi, dword [0x47dcb8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x1c], edx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x34], eax
mov eax, dword [0x4511ac]
and edi, 0xffffffba
mov dword [0x4511ac], 0
or edi, 0x40
test esi, esi
mov dword [esp + 0x30], eax
mov eax, dword [0x4511b0]
mov dword [0x4511b0], 0
mov dword [esp + 0x2c], eax
mov eax, dword [0x4511b4]
mov dword [esp + 0x28], eax
mov eax, dword [0x4511b8]
mov dword [esp + 0x24], eax
je 0x405e30
mov esi, dword [0x478144]
test esi, esi
je 0x405c15
mov eax, dword [0x478158]
cmp dword [esi - 4], eax
je 0x405f80
mov eax, dword [esp + 0x74]
xor esi, esi
sub eax, ebp
mov dword [esp + 0x3c], eax
mov eax, dword [0x47d9d8]
mov dword [0x47d9d8], 1
mov dword [esp + 0x20], eax
mov eax, dword [0x452eec]
mov dword [0x452eec], 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x74]
mov byte [eax], 0
jmp 0x405c9b
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, ebp
mov byte [ebx], 0
mov dword [esp + 8], 2
add esi, 1
mov dword [esp + 4], edi
mov dword [esp], 0
call fcn.004049b0
test eax, eax
je 0x405c98
mov ecx, dword [0x47dcb8]
test ecx, ecx
jne 0x405c98
movzx eax, word [eax + 0xc]
and ax, 0xf000
cmp ax, 0x4000
je 0x405ec5
mov byte [ebx], 0x2f
add ebx, 1
mov dword [esp + 4], 0x2f
mov dword [esp], ebx
call sub.cygwin1.dll_strchr
test eax, eax
mov ebx, eax
jne 0x405c50
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, ebp
mov dword [esp + 8], 2
mov dword [esp + 4], edi
mov dword [esp], 0
call fcn.004049b0
mov edx, dword [0x47dcb8]
test edx, edx
je 0x405ee2
test eax, eax
je 0x405cf9
movzx edx, word [eax + 0xc]
and dx, 0xf000
cmp dx, 0x4000
cmovne eax, ebx
mov dword [0x478144], eax
mov dword [esp + 8], 0x1000
mov dword [esp + 4], ebp
mov dword [esp], 0x477140
call sub.cygwin1.dll_strlcpy
mov eax, dword [esp + 0x3c]
mov dword [0x478140], eax
mov eax, dword [esp + 0x74]
mov byte [eax], 0x2f
mov eax, dword [esp + 0x20]
mov dword [0x47d9d8], eax
mov eax, dword [esp + 0x38]
mov dword [0x452eec], eax
mov eax, dword [0x47dcb8]
test eax, eax
je 0x405e04
mov esi, dword [0x478144]
test esi, esi
je 0x405e04
mov eax, dword [esp + 0x74]
lea ebp, [eax + 1]
mov dword [esp], ebp
call sub.cygwin1.dll_strlen
mov edi, eax
movzx eax, word [esi + 0xe]
mov ebx, eax
shr ax, 9
shr bx, 0xc
and eax, 1
mov edx, ebx
and edx, 1
lea ebx, [edx + eax]
mov eax, dword [0x47dcbc]
lea edx, [eax + 1]
mov eax, edx
shl eax, 0x1e
sub eax, edx
sub eax, ebx
mov eax, dword [esi + eax*4 - 0xc]
test eax, eax
mov dword [esp + 0x4c], eax
je 0x405f40
mov dword [esp + 0xc], 0x20
mov dword [esp + 8], str.relnamecache_
mov dword [esp + 4], 4
mov dword [esp], eax
call fcn.0041a580
mov ebx, eax
lea eax, [edi + 2]
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.0041a790
test eax, eax
mov dword [ebx], eax
je 0x405ff8
movzx edx, byte [esp + 0x34]
add edi, 1
mov byte [eax], dl
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov eax, dword [ebx]
add eax, 1
mov dword [esp], eax
call sub.cygwin1.dll_strlcpy
mov eax, dword [esp + 0x30]
mov dword [0x4511ac], eax
mov eax, dword [esp + 0x2c]
mov dword [0x4511b0], eax
mov eax, dword [esp + 0x28]
mov dword [0x4511b4], eax
mov eax, dword [esp + 0x24]
mov dword [0x4511b8], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ebx, ecx
jne 0x405fd4
cmp ebx, dword [esp + 0x74]
je 0x405fb3
movzx ecx, byte [ebx]
cmp byte [0x477140], cl
jne 0x405fc3
mov dword [esp + 0x38], edi
mov eax, ebx
mov dword [esp + 0x20], ebx
mov edx, 0x477140
xor esi, esi
mov edi, dword [esp + 0x74]
jmp 0x405e85
add eax, 1
add edx, 1
cmp edi, eax
je 0x405e9b
movzx ecx, byte [edx]
cmp cl, byte [eax]
jne 0x405f20
cmp cl, 0x2f
jne 0x405e70
mov dword [esp + 0x20], eax
add eax, 1
add esi, 1
add edx, 1
cmp edi, eax
jne 0x405e7a
mov edi, dword [esp + 0x38]
movzx eax, byte [edx]
test al, al
je 0x405e04
cmp al, 0x2f
je 0x405e04
mov eax, dword [esp + 0x74]
sub eax, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
jmp 0x405c21
mov dword [esp], ebp
call sub.cygwin1.dll_strlen
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00416c60
jmp 0x405c98
test eax, eax
je 0x405cfe
movzx eax, word [eax + 0xc]
and ax, 0xf000
cmp ax, 0x4000
jne 0x405cfe
mov dword [esp], ebp
add esi, 1
call sub.cygwin1.dll_strlen
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00416c60
jmp 0x405cfe
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x38]
sub eax, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
jmp 0x405c21
mov dword [esp + 4], 0xc
mov dword [esp], 1
call fcn.0044e48c
test eax, eax
mov dword [esp + 0x4c], eax
je 0x405ff8
mov ecx, dword [0x47dcbc]
add ecx, 1
mov edx, ecx
shl edx, 0x1e
sub edx, ecx
mov ecx, dword [esp + 0x4c]
sub edx, ebx
mov dword [esi + edx*4 - 0xc], ecx
jmp 0x405d9e
mov eax, dword [esp + 0x74]
sub eax, ecx
cmp eax, dword [0x478140]
jne 0x405c15
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], 0x477140
call sub.cygwin1.dll_strncmp
test eax, eax
je 0x405d53
jmp 0x405c15
mov dword [esp + 0x20], ebx
mov edx, 0x477140
xor esi, esi
jmp 0x405e9f
mov eax, dword [esp + 0x74]
xor esi, esi
sub eax, ebx
mov dword [esp + 0x3c], eax
jmp 0x405c21
mov dword [esp + 0xc], str.start__fname
mov dword [esp + 8], str.send_implied_dirs
mov dword [esp + 4], 0x712
mov dword [esp], str.flist.c
call sub.cygwin1.dll___assert_func
mov dword [esp], 0x454558
call fcn.0041a8d0
lea esi, [esi]
lea edi, [edi]