Function at 0x428da0
Capabilities:
Get socket status

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov dword [esp + 0x34], eax
mov eax, dword [0x452fc8]
mov dword [esp + 0x30], edx
test eax, eax
jne 0x428dc6
mov edx, dword [0x452fc4]
test edx, edx
jne 0x4294d1
mov eax, dword [esp + 0x30]
and eax, 7
cmp eax, 1
mov dword [esp + 0x2c], eax
je 0x4294ff
jle 0x429d6f
mov eax, dword [esp + 0x2c]
cmp eax, 2
je 0x42956a
cmp eax, 4
jne 0x429dc1
mov ebx, dword [0x452fec]
cmp dword [esp + 0x34], ebx
ja 0x42a003
mov esi, dword [0x47d95c]
test esi, esi
jne 0x429ddd
lea ebp, [esp + 0x50]
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x2c]
cmp eax, 2
je 0x429450
cmp eax, 4
je 0x4296b5
cmp eax, 1
je 0x4296a0
lea eax, [esp + 0x40]
lea ebx, [esp + 0x48]
mov esi, esi
lea edi, [edi]
add eax, 1
mov byte [eax - 1], 0
cmp eax, ebx
jne 0x428e50
mov eax, ebx
lea esi, [esi]
add eax, 1
mov byte [eax - 1], 0
cmp eax, ebp
jne 0x428e60
mov edi, dword [0x452ff0]
test edi, edi
js 0x429600
mov eax, dword [0x452fc8]
cmp dword [0x452fcc], eax
je 0x429600
mov ecx, dword [0x47d8c8]
test ecx, ecx
je 0x428e9e
mov edx, dword [0x453018]
test edx, edx
js 0x428eb4
mov eax, edi
mov edx, 1
mov ecx, edi
shr eax, 5
shl edx, cl
or dword [esp + eax*4 + 0x40], edx
or dword [esp + eax*4 + 0x48], edx
mov ecx, dword [0x452f7c]
test ecx, ecx
js 0x428ee5
mov eax, dword [0x452fdc]
sub eax, dword [0x452fd8]
cmp eax, 0x1000
jbe 0x428ee5
mov edx, ecx
mov eax, 1
shr edx, 5
shl eax, cl
or dword [esp + edx*4 + 0x40], eax
cmp edi, ecx
cmovl edi, ecx
lea esi, [esp + 0x58]
mov eax, ebp
nop
lea esi, [esi]
add eax, 1
mov byte [eax - 1], 0
cmp eax, esi
jne 0x428ef0
mov ecx, dword [0x452ff4]
mov dword [esp + 0x24], 0
test ecx, ecx
js 0x429011
mov eax, dword [0x453004]
test eax, eax
jne 0x428feb
mov eax, dword [0x452fe8]
test eax, eax
jne 0x4296f0
mov eax, dword [0x452fd8]
mov edx, dword [0x452ffc]
cmp eax, edx
jbe 0x429011
test byte [esp + 0x30], 4
jne 0x429011
test edx, edx
je 0x429ff6
mov edx, dword [0x452fd4]
mov ecx, dword [0x452fd0]
add edx, eax
add eax, 0x6fffffc
mov dword [0x453004], edx
mov edx, dword [0x453000]
mov dword [ecx + edx], eax
mov eax, dword [0x47d95c]
test eax, eax
je 0x428fbf
cmp word [0x480962], 0
jle 0x428fbf
mov eax, dword [0x452fd8]
sub eax, 4
mov dword [esp + 0x24], eax
call fcn.00409f30
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], str.__s__send_msg__d___ld__n
mov dword [esp], 2
mov dword [esp + 0x10], ecx
call fcn.00420340
mov eax, dword [0x453004]
mov edx, dword [0x452fdc]
cmp eax, edx
mov dword [0x453000], eax
jb 0x429b2f
sub eax, edx
mov dword [0x453000], eax
add dword [0x452fd8], 4
mov ecx, dword [0x452ff4]
mov eax, dword [0x452ffc]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 0x452fd0
mov edx, ecx
mov eax, 1
shr edx, 5
shl eax, cl
or dword [esp + edx*4 + 0x50], eax
cmp edi, ecx
cmovl edi, ecx
cmp edi, 0xffffffff
je 0x429c99
mov eax, dword [0x453014]
test eax, eax
jg 0x429fec
mov eax, dword [0x47e718]
test eax, eax
je 0x4295f2
mov eax, dword [0x470048]
sub eax, dword [0x470044]
cmp eax, 0x270f
jg 0x429610
mov eax, dword [0x452ff8]
test eax, eax
jle 0x429610
mov dword [esp + 0x58], 0
nop
lea eax, [esp + 0x40]
add edi, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 0x5c], 0
call sub.cygwin1.dll_select
cmp eax, 0
jle 0x429630
mov eax, dword [0x452ff0]
test eax, eax
js 0x429156
mov edx, eax
shr edx, 5
mov edx, dword [esp + edx*4 + 0x40]
bt edx, eax
jae 0x429156
mov ecx, dword [0x452fcc]
mov esi, dword [0x452fc8]
mov edx, dword [0x452fc4]
mov ebx, ecx
add edx, esi
sub ebx, edx
cmp edx, ecx
jb 0x4290d1
sub edx, ecx
sub ecx, esi
mov ebx, ecx
add edx, dword [0x452fc0]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.cygwin1.dll_read
mov edi, eax
mov ebx, eax
mov esi, eax
sar edi, 0x1f
cmp eax, 0
mov edx, eax
jle 0x429812
mov eax, dword [0x47d95c]
test eax, eax
je 0x429137
cmp word [0x480962], 1
jle 0x429137
mov dword [esp + 0x38], edx
call fcn.00409f30
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], str.__s__recv_ld_n
mov dword [esp], 2
call fcn.00420340
mov edx, dword [esp + 0x38]
mov eax, dword [0x47d950]
test eax, eax
jne 0x429850
add dword [0x47f818], esi
adc dword [0x47f81c], edi
add dword [0x452fc8], edx
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4292a2
mov edx, dword [0x452ff4]
mov eax, edx
shr eax, 5
mov eax, dword [esp + eax*4 + 0x50]
bt eax, edx
jae 0x4292a2
mov eax, dword [0x453004]
test eax, eax
je 0x4296e0
mov edi, dword [esp + 0x24]
mov ecx, dword [edi + 4]
sub eax, ecx
mov ebx, eax
mov eax, dword [0x47d90c]
cmp ebx, eax
jbe 0x4296d0
test eax, eax
je 0x4296d0
mov edi, dword [esp + 0x24]
mov ebx, dword [edi + 0xc]
lea edi, [eax + ecx]
mov esi, ebx
sub esi, ecx
cmp edi, ebx
mov edi, dword [esp + 0x24]
cmova eax, esi
mov dword [esp + 8], eax
add ecx, dword [edi]
mov dword [esp], edx
mov dword [esp + 4], ecx
call sub.cygwin1.dll_write
mov edi, eax
mov ebx, eax
mov esi, eax
sar edi, 0x1f
test eax, eax
mov ecx, eax
jle 0x429b59
mov eax, dword [0x47d95c]
test eax, eax
je 0x429240
cmp word [0x480962], 1
jle 0x429240
cmp dword [esp + 0x24], 0x452fd0
mov eax, 0x45c7a7
mov edx, 0x45c7a3
mov dword [esp + 0x3c], ecx
cmovne edx, eax
mov dword [esp + 0x38], edx
call fcn.00409f30
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], str.__s___s_sent_ld_n
mov dword [esp], 2
mov dword [esp + 0xc], edx
call fcn.00420340
mov ecx, dword [esp + 0x3c]
mov edx, dword [0x47d950]
test edx, edx
jne 0x4297c0
mov eax, dword [0x47d90c]
add dword [0x47f810], esi
adc dword [0x47f814], edi
test eax, eax
jne 0x429751
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 4]
add eax, ecx
cmp eax, dword [edi + 0xc]
mov dword [edi + 4], eax
je 0x4297e0
cmp eax, dword [0x453004]
je 0x42988d
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 8]
mov dword [esp + 0x38], eax
sub eax, ecx
cmp dword [esp + 0x28], eax
mov dword [esi + 8], eax
je 0x429a7d
mov eax, dword [0x453014]
test eax, eax
jg 0x429fec
mov eax, dword [0x452ff8]
test eax, eax
jle 0x4292f0
test byte [esp + 0x30], 1
jne 0x4292f0
mov eax, dword [0x453008]
test eax, eax
je 0x4292e2
jmp 0x429705
call fcn.0042ade0
mov eax, dword [0x453008]
test eax, eax
jne 0x429705
cmp dword [0x452fc8], 0x200
ja 0x4292d0
nop
mov eax, dword [0x452f7c]
test eax, eax
js 0x428e20
mov edx, eax
shr edx, 5
mov edx, dword [esp + edx*4 + 0x40]
bt edx, eax
jae 0x428e20
mov edx, dword [0x47dc74]
mov ecx, dword [0x47dc78]
mov dword [esp], eax
sub ecx, edx
add edx, dword [0x47dc6c]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call sub.cygwin1.dll_read
cmp eax, 0
mov ebx, eax
jle 0x429aa7
cmp word [0x480962], 1
jle 0x429369
call fcn.00409f30
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], str.__s__files_from_read_ld_n
mov dword [esp], 2
call fcn.00420340
add ebx, dword [0x47dc74]
mov esi, dword [0x47d93c]
test esi, esi
mov ecx, ebx
jne 0x4293ad
mov esi, dword [0x47dc6c]
lea eax, [esi + ebx]
cmp eax, esi
lea edx, [eax - 1]
jbe 0x4293ad
nop
lea esi, [esi]
movzx eax, byte [eax - 1]
cmp al, 0xd
je 0x4295e2
cmp al, 0xa
je 0x4295e2
mov eax, edx
cmp eax, esi
lea edx, [eax - 1]
ja 0x429390
movzx edx, byte [0x47dc7c]
test dl, dl
je 0x429934
mov dword [0x47dc70], 0
mov ebx, dword [0x47dca0]
test ebx, ebx
je 0x42989c
test ecx, ecx
je 0x428e20
mov eax, dword [0x47dc70]
add eax, dword [0x47dc6c]
cmp dl, 1
lea ebx, [eax + ecx]
sbb ecx, ecx
and ecx, 0x10
add ecx, 0xe
cmp ebx, eax
je 0x429ea5
cmp byte [eax], 0
lea edi, [eax + 1]
jne 0x42941f
jmp 0x429bc0
lea esi, [edi + 1]
cmp byte [esi - 1], 0
je 0x429bc4
mov edi, esi
cmp edi, ebx
jne 0x429410
sub edi, eax
test edi, edi
mov dword [0x47dc74], edi
jne 0x429d37
mov eax, dword [esp + 0x2c]
mov byte [0x47dc7c], 0
cmp eax, 2
jne 0x428e2d
mov esi, esi
lea edi, [edi]
mov eax, dword [esp + 0x34]
add eax, dword [0x452fd8]
cmp eax, dword [0x452fdc]
ja 0x428e3f
mov eax, dword [0x453014]
test eax, eax
jg 0x429fec
mov edx, dword [0x452fc4]
mov eax, dword [0x452fc0]
add eax, edx
test byte [esp + 0x30], 0x10
je 0x4294c9
mov edi, dword [esp + 0x34]
sub dword [0x452fc8], edi
add edx, edi
cmp edx, dword [0x453008]
mov dword [0x452fc4], edx
je 0x429e96
mov ecx, dword [0x452fcc]
cmp edx, ecx
jb 0x4294c9
sub edx, ecx
mov dword [0x452fc4], edx
mov edx, dword [0x453008]
test edx, edx
je 0x4294c9
sub edx, ecx
mov dword [0x453008], edx
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x453008]
test eax, eax
je 0x4294e1
sub eax, edx
mov dword [0x453008], eax
mov eax, dword [esp + 0x30]
mov dword [0x452fc4], 0
and eax, 7
cmp eax, 1
mov dword [esp + 0x2c], eax
jne 0x428dda
mov eax, dword [0x452fcc]
cmp eax, dword [esp + 0x34]
jb 0x429fb0
mov ebp, dword [0x47d95c]
test ebp, ebp
je 0x428e14
cmp word [0x480962], 2
jle 0x428e14
test byte [esp + 0x30], 0x10
mov eax, str.consume
mov ebx, 0x45c7a2
cmovne ebx, eax
call fcn.00409f30
mov esi, dword [esp + 0x34]
mov dword [esp + 0x10], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], str.__s__perform_io__ld___sinput__n
mov dword [esp], 2
mov dword [esp + 0xc], esi
call fcn.00420340
jmp 0x428e14
mov edx, dword [0x452fdc]
mov ebx, edx
sub ebx, dword [0x452ffc]
cmp dword [esp + 0x34], ebx
ja 0x42a0dc
mov edi, dword [0x47d95c]
test edi, edi
je 0x428e14
cmp word [0x480962], 2
jle 0x428e14
mov edi, dword [esp + 0x34]
mov ecx, dword [0x452fd8]
mov ebx, 0
add ecx, edi
mov eax, ecx
sub eax, edx
cmp edx, ecx
cmovb ebx, eax
call fcn.00409f30
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.__s__perform_io__ld__outroom__needs_to_flush__ld_n
mov dword [esp], 2
call fcn.00420340
jmp 0x428e14
mov byte [edx], 0
mov eax, edx
mov esi, dword [0x47dc6c]
jmp 0x4293a6
mov eax, dword [0x452f74]
mov dword [esp + 0x58], eax
jmp 0x429060
mov edi, 0xffffffff
jmp 0x428eb4
mov eax, dword [0x452f74]
mov dword [0x47e718], 0
mov dword [esp + 0x58], eax
jmp 0x429060
jne 0x429b88
mov ecx, dword [0x47e718]
test ecx, ecx
je 0x429730
mov eax, dword [0x45300c]
mov dword [esp + 4], 0xffffffff
mov dword [0x47e718], 0
mov dword [esp], eax
call fcn.00406d00
mov edx, dword [0x470040]
xor eax, eax
test edx, edx
sete al
mov dword [0x47e718], eax
lea eax, [esp + 0x40]
lea esi, [esi]
add eax, 1
mov byte [eax - 1], 0
cmp eax, ebx
jne 0x429680
mov eax, ebp
lea esi, [esi]
add eax, 1
mov byte [eax - 1], 0
cmp eax, esi
jne 0x429690
jmp 0x429090
mov eax, dword [esp + 0x34]
cmp eax, dword [0x452fc8]
ja 0x428e3f
jmp 0x429466
mov eax, dword [esp + 0x34]
add eax, dword [0x452fe8]
cmp eax, dword [0x452fec]
ja 0x428e3f
jmp 0x429466
mov eax, ebx
jmp 0x4291a7
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 4]
jmp 0x429192
mov dword [esp + 0x24], 0x452fe0
mov dword [esp + 0x28], 0
jmp 0x428ffc
mov edi, dword [0x47dbd4]
test edi, edi
je 0x4292f0
cmp dword [0x452fc8], 0x200
jbe 0x4292f0
call fcn.0042be70
jmp 0x4292f0
mov edi, dword [0x47d950]
test edi, edi
je 0x429675
mov eax, dword [esp + 0x30]
xor edx, edx
and eax, 1
call fcn.0042aa30
jmp 0x429675
lea eax, [esp + 0x68]
mov dword [esp + 4], 0
mov dword [esp + 0x38], ecx
add dword [0x47dc3c], ebx
mov dword [esp], eax
call sub.cygwin1.dll_gettimeofday
mov eax, dword [0x47dc34]
mov ecx, dword [esp + 0x38]
test eax, eax
jne 0x429969
imul eax, dword [0x47dc3c], 0x3d0
mov esi, dword [0x47d914]
cdq
idiv esi
cmp eax, 0x1869f
mov ebx, eax
jg 0x4299d2
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [0x47dc34], eax
mov dword [0x47dc38], edx
jmp 0x429267
mov dword [esp], 0
mov dword [esp + 0x38], ecx
call sub.cygwin1.dll_time
mov ecx, dword [esp + 0x38]
mov dword [0x47dc80], eax
jmp 0x42924e
mov edx, dword [0x453004]
test edx, edx
je 0x4297f2
sub edx, eax
mov dword [0x453004], edx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], ecx
mov dword [eax + 4], 0
mov dword [esp], eax
call fcn.004288c0
mov ecx, dword [esp + 0x38]
jmp 0x429288
jne 0x429c6a
mov ecx, dword [0x47d8c8]
test ecx, ecx
je 0x429835
mov edx, dword [0x453018]
test edx, edx
js 0x429835
mov eax, dword [0x47d650]
test eax, eax
je 0x42983f
mov dword [0x452ff0], 0xfffffffe
mov dword [0x453018], 0xffffffff
jmp 0x428e20
mov dword [esp], 0
mov dword [esp + 0x38], edx
call sub.cygwin1.dll_time
test byte [esp + 0x30], 1
mov dword [0x47dc84], eax
mov edx, dword [esp + 0x38]
je 0x429144
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.0042a8d0
mov edx, dword [esp + 0x38]
jmp 0x429144
mov dword [0x453004], 0
jmp 0x429288
test ecx, ecx
je 0x428e20
mov esi, dword [0x47dc6c]
mov edi, dword [0x47dc70]
add edi, esi
add ecx, edi
cmp edi, ecx
je 0x429e7e
movzx edx, byte [edi]
nop
add esi, 1
test dl, dl
lea eax, [edi + 1]
mov byte [esi - 1], dl
jne 0x429921
cmp ecx, eax
je 0x4298ee
movzx edx, byte [edi + 1]
test dl, dl
je 0x4298e7
jmp 0x429930
movzx edx, byte [eax]
test dl, dl
jne 0x429930
add eax, 1
cmp ecx, eax
jne 0x4298e0
mov eax, dword [0x47dc6c]
movzx edx, byte [ecx - 1]
sub esi, eax
test esi, esi
mov byte [0x47dc7c], dl
je 0x428e20
mov dword [esp + 4], eax
mov eax, dword [0x452ff4]
mov dword [esp + 8], esi
mov dword [esp], eax
call fcn.0042bb30
jmp 0x428e20
cmp ecx, eax
je 0x4298ee
movzx edx, byte [edi + 1]
mov edi, eax
jmp 0x4298c0
mov edi, eax
jmp 0x4298c0
test ebx, ebx
mov esi, dword [0x47dc6c]
je 0x429e77
cmp byte [esi], 0
jne 0x429e77
mov eax, esi
jmp 0x429955
cmp byte [eax], 0
jne 0x42995d
add eax, 1
sub ecx, 1
jne 0x429950
sub eax, esi
mov dword [0x47dc70], eax
jmp 0x4293c6
mov edi, dword [esp + 0x68]
mov esi, dword [0x47d914]
mov dword [esp + 8], 0xfffffc30
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x38], ecx
sub edi, eax
imul eax, edi, 0xf4240
add eax, dword [esp + 0x6c]
sub eax, dword [0x47dc38]
imul esi
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.cyggcc_s_1.dll___divdi3
add eax, dword [0x47dc3c]
mov ecx, dword [esp + 0x38]
js 0x429d15
mov dword [0x47dc3c], eax
imul eax, eax, 0x3d0
cdq
idiv esi
cmp eax, 0x1869f
mov ebx, eax
jle 0x4297a0
mov edx, 0x431bde83
mov edi, ebx
mov dword [esp + 0xc], 0
imul edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 0x38], ecx
mov eax, edx
mov edx, ebx
sar edx, 0x1f
sar eax, 0x12
sub eax, edx
mov dword [esp + 0x60], eax
imul eax, eax, 0xf4240
sub edi, eax
lea eax, [esp + 0x60]
mov dword [esp + 0x64], edi
mov dword [esp + 0x10], eax
call sub.cygwin1.dll_select
mov dword [esp + 4], 0
mov dword [esp], 0x47dc34
call sub.cygwin1.dll_gettimeofday
mov eax, dword [0x47dc34]
sub eax, dword [esp + 0x68]
mov edx, 0x4325c53f
mov ecx, dword [esp + 0x38]
imul eax, eax, 0xf4240
add eax, dword [0x47dc38]
sub eax, dword [esp + 0x6c]
sub ebx, eax
imul ebx, dword [0x47d914]
mov eax, ebx
sar ebx, 0x1f
imul edx
sar edx, 8
sub edx, ebx
mov dword [0x47dc3c], edx
jmp 0x429267
mov dword [esi + 4], 0
mov dword [esp], esi
call fcn.004288c0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4292a2
mov dword [0x453000], 0
jmp 0x4292a2
jne 0x429d24
cmp byte [0x47dc7c], 1
mov dword [esp + 4], 0x45c9a5
mov dword [0x452f7c], 0xffffffff
sbb eax, eax
add eax, 2
mov dword [esp + 8], eax
mov eax, dword [0x452ff4]
mov dword [esp], eax
call fcn.0042bb30
mov eax, dword [0x47dc6c]
test eax, eax
je 0x429aed
mov dword [esp], eax
call fcn.0044e534
mov eax, dword [0x452f78]
mov dword [0x47dc6c], 0
mov dword [0x47dc70], 0
mov dword [0x47dc74], 0
mov dword [0x47dc78], 0
test eax, eax
js 0x428e20
mov dword [esp], eax
call fcn.00428cb0
jmp 0x428e20
lea ecx, [eax + 4]
cmp edx, ecx
jae 0x428fde
mov dword [esp + 4], eax
mov dword [esp], 0x452fd0
call fcn.00428830
mov dword [0x453000], 0
jmp 0x428fde
call sub.cygwin1.dll___errno
cmp dword [eax], 4
je 0x429b7b
call sub.cygwin1.dll___errno
cmp dword [eax], 0xb
je 0x429b7b
call sub.cygwin1.dll___errno
cmp dword [eax], 0xb
jne 0x42a043
xor ecx, ecx
xor esi, esi
xor edi, edi
xor ebx, ebx
jmp 0x4291e3
call sub.cygwin1.dll___errno
cmp dword [eax], 9
jne 0x429636
mov dword [esp + 8], 0x2eb
mov dword [esp + 4], str.io.c
mov dword [esp], 0xa
mov dword [0x47d95c], 1
call fcn.00412fd0
lea esi, [esi]
mov esi, edi
mov edi, eax
mov edx, esi
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0x452fd0
sub edx, eax
mov dword [esp + 4], 0x47dc6c
mov dword [esp + 0x24], esi
mov eax, edx
sub eax, 1
mov dword [0x47dc74], eax
mov eax, dword [0x451034]
mov dword [esp], eax
call fcn.00408d10
test eax, eax
mov edx, dword [esp + 0x24]
js 0x42a0c0
mov eax, dword [0x452ff4]
mov dword [esp + 8], 1
mov dword [esp + 4], edi
mov dword [esp + 0x24], edx
mov dword [esp], eax
call fcn.0042bb30
mov edx, dword [esp + 0x24]
cmp ebx, edx
je 0x429ef5
cmp byte [edx], 0
je 0x429c49
jmp 0x429eee
cmp byte [esi], 0
jne 0x429d0c
add esi, 1
cmp ebx, esi
jne 0x429c40
mov eax, ebx
mov edx, ebx
sub edx, dword [0x47dc6c]
mov ecx, 0x1e
mov dword [0x47dc70], edx
jmp 0x4293f5
call sub.cygwin1.dll___errno
cmp dword [eax], 4
je 0x429c8c
call sub.cygwin1.dll___errno
cmp dword [eax], 0xb
je 0x429c8c
call sub.cygwin1.dll___errno
cmp dword [eax], 0xb
jne 0x429f34
xor edx, edx
xor esi, esi
xor edi, edi
xor ebx, ebx
jmp 0x4290fb
mov eax, dword [esp + 0x2c]
cmp eax, 2
je 0x429e2f
cmp eax, 4
je 0x429e2f
cmp eax, 1
jne 0x429466
cmp dword [0x47dbd0], 2
mov dword [0x452fc8], 0
je 0x429f18
cmp dword [0x452ff0], 0xfffffffe
je 0x429e8c
mov dword [esp + 4], str.error_in_perform_io:_no_fd_for_input._n
mov dword [esp], 3
call fcn.00420340
mov dword [esp + 8], 0x2c8
mov dword [esp + 4], str.io.c
mov dword [esp], 2
call fcn.00412fd0
mov edx, esi
mov eax, esi
jmp 0x429c54
mov dword [0x47dc3c], 0
jmp 0x4297a0
call sub.cygwin1.dll___errno
cmp dword [eax], 4
jne 0x429aad
jmp 0x428e20
mov eax, dword [0x451034]
and ecx, 0xfffffffb
mov dword [esp + 8], 0x452fd0
mov dword [esp + 0xc], ecx
mov dword [esp + 4], 0x47dc6c
mov dword [esp], eax
call fcn.00408d10
test eax, eax
js 0x429eb4
mov byte [0x47dc7c], 0x78
jmp 0x428e20
test eax, eax
jne 0x429dc1
mov ebx, dword [0x47d95c]
test ebx, ebx
je 0x428e14
cmp word [0x480962], 2
jle 0x428e14
call fcn.00409f30
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
mov dword [esp + 8], eax
mov dword [esp + 4], str.__s__perform_io__ld___d__n
mov dword [esp], 2
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
call fcn.00420340
jmp 0x428e14
mov dword [esp + 8], 0x267
mov dword [esp + 4], str.io.c
mov dword [esp], 4
call fcn.00412fd0
cmp word [0x480962], 2
jle 0x428e14
mov edi, dword [esp + 0x34]
mov edx, dword [0x452fe8]
add edx, edi
mov eax, edx
sub eax, ebx
cmp ebx, edx
mov ebx, 0
cmovb ebx, eax
call fcn.00409f30
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.__s__perform_io__ld__msgroom__needs_to_flush__ld_n
mov dword [esp], 2
call fcn.00420340
jmp 0x428e14
mov dword [0x47d95c], 1
call fcn.0042b860
cmp dword [0x452ff4], 0xfffffffe
je 0x429e8c
mov dword [esp + 4], str.error_in_perform_io:_no_fd_for_output._n
mov dword [esp], 3
call fcn.00420340
mov dword [esp + 8], 0x2d0
mov dword [esp + 4], str.io.c
mov dword [esp], 2
call fcn.00412fd0
xor eax, eax
jmp 0x42995f
movzx eax, byte [edi - 1]
mov byte [0x47dc7c], al
jmp 0x428e20
mov eax, 1
call fcn.00428770
mov dword [0x453008], 0
jmp 0x4294a5
mov dword [0x47dc74], 0
jmp 0x429433
call sub.cygwin1.dll___errno
cmp dword [eax], 7
je 0x429efc
mov eax, dword [0x47dc70]
test eax, eax
je 0x429d63
mov edx, dword [0x47dc6c]
mov ecx, dword [0x47dc74]
add eax, edx
mov dword [esp + 8], ecx
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.cygwin1.dll_memmove
jmp 0x429d63
mov eax, edx
jmp 0x429c54
mov eax, ebx
jmp 0x429c54
mov dword [esp + 8], 0x1b4
mov dword [esp + 4], str.io.c
mov dword [esp], 2
call fcn.00412fd0
mov dword [esp + 8], 0x2c4
mov dword [esp + 4], str.io.c
mov dword [esp], 0
call fcn.00412fd0
mov eax, dword [0x453010]
cmp dword [0x452ff0], eax
jne 0x429f8f
mov eax, dword [0x47d968]
test eax, eax
je 0x429f54
mov dword [0x47d95c], 1
call sub.cygwin1.dll___errno
mov dword [esp + 8], str.read_error
mov eax, dword [eax]
mov dword [esp], 5
mov dword [esp + 4], eax
call fcn.0041f9e0
mov dword [esp + 8], 0x311
mov dword [esp + 4], str.io.c
mov dword [esp], 0xa
call fcn.00412fd0
call sub.cygwin1.dll___errno
mov dword [esp + 8], str.read_error
mov eax, dword [eax]
mov dword [esp], 3
mov dword [esp + 4], eax
call fcn.0041f9e0
jmp 0x429f73
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str.need_to_read__ld_bytes__iobuf.in.buf_is_only__ld_bytes._n
mov dword [esp], 3
mov dword [esp + 8], eax
call fcn.00420340
mov dword [esp + 8], 0x238
mov dword [esp + 4], str.io.c
mov dword [esp], 2
call fcn.00412fd0
mov eax, 1
call fcn.00450120
mov dword [esp + 0x28], 0
jmp 0x428ff4
call sub.cygwin1.dll___getreent
mov edi, dword [esp + 0x34]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.need_to_write__ld_bytes__iobuf.msg.buf_is_only__ld_bytes._n
mov dword [esp + 8], edi
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp + 8], 0x256
mov dword [esp + 4], str.io.c
mov dword [esp], 2
call fcn.00412fd0
mov dword [0x47d95c], 1
mov dword [0x452ff4], 0xfffffffe
mov dword [0x453004], 0
mov dword [0x452fe8], 0
mov dword [0x452fd8], 0
call fcn.00409f30
mov ebx, eax
call sub.cygwin1.dll___errno
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str.__s__write_error
mov eax, dword [eax]
mov dword [esp], 5
mov dword [esp + 4], eax
call fcn.0041f9e0
call fcn.0042b860
mov dword [esp + 8], 0x334
mov dword [esp + 4], str.io.c
mov dword [esp], 0xa
call fcn.00412fd0
mov dword [esp + 8], 0x1a3
mov dword [esp + 4], str.io.c
mov dword [esp], 2
call fcn.00412fd0
call sub.cygwin1.dll___getreent
mov esi, dword [esp + 0x34]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.need_to_write__ld_bytes__iobuf.out.buf_is_only__ld_bytes._n
mov dword [esp + 8], esi
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp + 8], 0x246
mov dword [esp + 4], str.io.c
mov dword [esp], 2
call fcn.00412fd0
lea esi, [esi]