Function at 0x401c80
Capabilities:
Terminate process

Disassembly:
push ebp
mov eax, 0x406c
push edi
push esi
push ebx
call fcn.00451258
sub esp, eax
mov eax, dword [sym.imp.cygwin1.dll___stack_chk_guard]
mov dword [esp + 0x405c], eax
xor eax, eax
mov eax, dword [esp + 0x4084]
lea edi, [esp + 0x5c]
mov dword [esp + 8], 0x4000
mov dword [esp + 4], edi
mov ebx, dword [esp + 0x4080]
mov dword [esp], eax
call sub.cygwin1.dll_read
test eax, eax
je 0x401f20
js 0x401f10
mov edx, dword [ebx + 0x250]
cmp byte [edx + 0x20c], 0
jne 0x401f00
mov edx, dword [edx + 0x1a0]
add eax, edi
mov dword [esp + 0x20], eax
lea eax, [ebx + 0x1c]
mov ecx, dword [edx + 0x14]
mov edx, dword [edx + 0x10]
mov dword [esp + 0x2c], eax
mov dword [ebx + 0x1fc], ecx
lea ecx, [ebx + 0x80]
mov dword [esp + 0x18], ecx
lea ecx, [ebx + 0x1d0]
mov dword [ebx + 0x1f8], edx
mov dword [esp + 0x1c], ecx
jmp 0x401e36
mov eax, esi
cmp al, 0x2e
je 0x4021c3
cmp al, 0x1a
je 0x4020f0
mov eax, dword [ebx + 0x250]
movzx ecx, byte [eax + 0x20c]
cmp ebp, dword [ebx + 0x10]
je 0x401f48
cmp ebp, dword [ebx + 0x14]
je 0x401f48
test cl, cl
jne 0x40230d
mov edx, dword [ebx + 0xc]
add eax, 0x174
mov dword [esp + 0x48], 0xffff
mov dword [esp + 0x40], 0
mov byte [esp + 0x4b], dl
lea edx, [esp + 0x40]
mov dword [esp + 0x44], 0x47f35c
mov dword [esp + 0x50], 0xffff
mov dword [esp + 0x4c], 0x47f29c
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x58], 0xffffffff
call fcn.00401410
mov eax, dword [ebx + 0x250]
cmp byte [eax + 0x20c], 0
jne 0x40230d
mov dword [esp + 0x40], 0
mov edx, esi
mov dword [esp + 0x48], 0xffff
mov dword [esp + 0x44], 0x47f35c
mov byte [esp + 0x4b], dl
add eax, 0x174
lea edx, [esp + 0x40]
mov dword [esp + 0x50], 0xffff
mov dword [esp + 0x4c], 0x47f29c
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x58], 0xffffffff
call fcn.00401410
mov edx, dword [ebx + 0x1b4]
mov ecx, dword [ebx + 0x1c]
mov byte [ebx + 0x266], 0
mov eax, dword [edx - 0xc]
cmp eax, dword [ecx - 0xc]
je 0x401f70
add edi, 1
cmp dword [esp + 0x20], edi
je 0x401f00
movzx esi, byte [edi]
mov eax, esi
movsx ebp, al
mov eax, dword [esp + 0x18]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.004058c0
cmp byte [ebx + 0x266], 0
jne 0x401d28
mov eax, dword [ebx + 0xc]
cmp ebp, eax
jne 0x401e72
test eax, eax
jg 0x402090
mov eax, esi
mov ecx, esi
cmp al, 0xa
sete al
cmp cl, 0xd
sete dl
or eax, edx
mov byte [ebx + 0x265], al
cmp cl, 0xc
je 0x402080
mov eax, dword [ebx + 0x250]
cmp byte [eax + 0x20c], 0
jne 0x402312
mov ecx, esi
add eax, 0x174
lea edx, [esp + 0x40]
add edi, 1
mov dword [esp + 0x48], 0xffff
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0x47f35c
mov byte [esp + 0x4b], cl
mov dword [esp + 0x50], 0xffff
mov dword [esp + 0x4c], 0x47f29c
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x58], 0xffffffff
call fcn.00401410
cmp dword [esp + 0x20], edi
jne 0x401e36
nop
mov esi, 1
jmp 0x401f22
mov dword [esp], str.read
call sub.cygwin1.dll_perror
lea esi, [esi]
xor esi, esi
mov eax, dword [esp + 0x405c]
sub eax, dword [sym.imp.cygwin1.dll___stack_chk_guard]
jne 0x40238f
add esp, 0x406c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
test cl, cl
jne 0x40230d
mov dword [esp + 0x40], 0
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x48], 0xffff
mov dword [esp + 0x44], 0x47f35c
jmp 0x401ddb
test eax, eax
je 0x401f8c
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sub.cygwin1.dll_wmemcmp
test eax, eax
jne 0x401e29
mov dword [esp], 0x476544
mov ebp, method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.append_wchar_t_const__unsigned_int_
call sub.cygwin1.dll_wcslen
add eax, eax
mov dword [esp + 0x24], eax
je 0x402005
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x3e]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
sar ecx, 1
mov dword [esp], ecx
mov dword [esp + 0x28], ecx
call fcn.004511f0
mov ecx, dword [esp + 0x28]
mov esi, eax
lea ebp, [eax + 0xc]
cmp ecx, 1
je 0x402198
test ecx, ecx
je 0x401ff9
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x476544
mov dword [esp], ebp
mov dword [esp + 0x28], ecx
call sub.cygwin1.dll_wmemcpy
mov ecx, dword [esp + 0x28]
cmp esi, sym.imp.cygstdc_6.dll_std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::_Rep::_S_empty_rep_storage
jne 0x4021aa
lea eax, [esp + 0x40]
mov dword [esp + 0x40], ebp
mov dword [esp + 4], eax
lea eax, [ebx + 0x1b4]
mov dword [esp], eax
call fcn.004511c8
call fcn.0040bc40
add eax, 0x3e8
mov byte [ebx + 0x1b8], 0
mov dword [ebx + 0x1c0], eax
mov eax, dword [esp + 0x40]
adc edx, 0
mov dword [ebx + 0x1c4], edx
mov byte [ebx + 0x1c8], 1
lea edx, [eax - 0xc]
cmp eax, method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.append_wchar_t_const__unsigned_int_
je 0x401e29
mov ecx, 0xffffffff
lock xadd dword [eax - 4], ecx
test ecx, ecx
jg 0x401e29
lea eax, [esp + 0x3f]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.004511f8
jmp 0x401e29
mov byte [ebx + 0x264], 1
jmp 0x401e92
cmp byte [ebx + 0x265], 0
jne 0x4020a3
cmp byte [ebx + 0x18], 0
jne 0x401e72
mov eax, 0x100
mov word [ebx + 0x265], ax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
lea eax, [ebx + 0x1b4]
mov dword [esp], eax
call fcn.004511c8
mov byte [ebx + 0x1b8], 0
mov dword [ebx + 0x1c0], 0xffffffff
mov dword [ebx + 0x1c4], 0xffffffff
mov byte [ebx + 0x1c8], 0
jmp 0x401e29
lea eax, [ebx + 0x254]
mov dword [esp + 4], eax
lea eax, [esp + 0x40]
mov dword [esp], eax
call fcn.00415750
sub esp, 4
mov eax, dword [esp + 0x40]
mov dword [esp + 8], 0xffffffff
mov dword [esp], 1
mov dword [esp + 4], eax
call fcn.0041e7a0
mov eax, dword [esp + 0x40]
lea edx, [eax - 0xc]
cmp eax, method.std::string.swap_std::string_
jne 0x4022d8
lea eax, [ebx + 0x20]
mov dword [esp + 4], 2
mov dword [esp + 8], eax
mov dword [esp], 0
call sub.cygwin1.dll_tcsetattr
test eax, eax
js 0x402377
mov dword [esp], str._ne_37_44m_mosh_is_suspended._e_m
call sub.cygwin1.dll_puts
mov dword [esp], 0
call sub.cygwin1.dll_fflush
mov dword [esp + 4], 0x11
mov dword [esp], 0
call sub.cygwin1.dll_kill
mov dword [esp], ebx
call fcn.004016b0
jmp 0x401e0d
xor eax, eax
mov word [esi + 0xc], ax
cmp esi, sym.imp.cygstdc_6.dll_std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::_Rep::_S_empty_rep_storage
je 0x402005
mov eax, dword [esp + 0x24]
xor edx, edx
mov dword [esi + 8], 0
mov dword [esi], ecx
mov word [esi + eax + 0xc], dx
jmp 0x402005
mov eax, dword [ebx + 0x250]
movzx esi, byte [eax + 0x28]
mov ecx, esi
test cl, cl
je 0x401f20
cmp byte [eax + 0x20c], 0
jne 0x401f20
mov dword [esp], str.Exiting_on_user_request...
call sub.cygwin1.dll_wcslen
mov ecx, method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.append_wchar_t_const__unsigned_int_
add eax, eax
mov dword [esp + 0x18], eax
je 0x402253
sar eax, 1
mov dword [esp + 4], 0
mov edi, eax
lea eax, [esp + 0x3e]
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.004511f0
mov ebp, eax
lea ecx, [eax + 0xc]
cmp edi, 1
je 0x4022ff
test edi, edi
je 0x402247
mov dword [esp], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], str.Exiting_on_user_request...
mov dword [esp + 0x1c], ecx
call sub.cygwin1.dll_wmemcpy
mov ecx, dword [esp + 0x1c]
cmp ebp, sym.imp.cygstdc_6.dll_std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::_Rep::_S_empty_rep_storage
jne 0x40235d
lea edi, [esp + 0x40]
lea eax, [ebx + 0x1b4]
mov dword [esp + 0x40], ecx
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.004511c8
mov eax, dword [esp + 0x40]
mov byte [ebx + 0x1b8], 0
mov dword [ebx + 0x1c0], 0xffffffff
mov dword [ebx + 0x1c4], 0xffffffff
lea edx, [eax - 0xc]
mov byte [ebx + 0x1c8], 1
cmp eax, method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.append_wchar_t_const__unsigned_int_
jne 0x402336
mov ebx, dword [ebx + 0x250]
cmp byte [ebx + 0x20c], 0
jne 0x401f00
call fcn.0040bc40
mov byte [ebx + 0x20c], 1
mov dword [ebx + 0x218], eax
mov dword [ebx + 0x21c], edx
jmp 0x401f22
mov ecx, 0xffffffff
lock xadd dword [eax - 4], ecx
test ecx, ecx
jg 0x402137
lea eax, [esp + 0x3f]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00451180
jmp 0x402137
mov eax, 0x45
mov word [ebp + 0xc], ax
jmp 0x402247
call fcn.004012b0
mov dword [esp + 0xc], str._shutdown_in_progress
mov dword [esp + 8], str.MyState_Network::TransportSender_MyState_::get_current_state____with_MyState__Network::UserStream_
mov dword [esp + 4], 0x8c
mov dword [esp], str.._.._network_transportsender.h
call sub.cygwin1.dll___assert_func
mov ecx, 0xffffffff
lock xadd dword [eax - 4], ecx
test ecx, ecx
jg 0x4022a1
lea eax, [esp + 0x3f]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.004511f8
jmp 0x4022a1
mov eax, dword [esp + 0x18]
xor edx, edx
mov dword [ebp + 8], 0
mov dword [ebp], edi
mov word [ebp + eax + 0xc], dx
jmp 0x402253
mov dword [esp], str.tcsetattr
call sub.cygwin1.dll_perror
mov dword [esp], 1
call sub.cygwin1.dll_exit
call sub.cygwin1.dll___stack_chk_fail
mov ebx, eax
jmp 0x46bec4