Function at 0x4038b5
Capabilities:
Get socket status
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x134
call dbg.debug_is_active
test eax, eax
je 0x403934
call dbg.debug_get_time_stack_tabs
mov ebx, eax
call dbg.debug_get_time_str_now
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x40e6d6
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sym._fprintf
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x25
mov dword [esp + 4], 1
mov dword [esp], 0x40e988
call sym._fwrite
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 4], eax
mov dword [esp], 0xa
call sym._fputc
mov eax, dword [0x413020]
add eax, 1
mov dword [0x413020], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call dbg.socket_list_debug_dump
jmp 0x4039d3
call dbg.debug_is_active
test eax, eax
je 0x4039c6
call dbg.debug_get_time_stack_tabs
mov ebx, eax
call dbg.debug_get_time_str_now
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x40e6d6
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sym._fprintf
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x12
mov dword [esp + 4], 1
mov dword [esp], str.Going_to_remove...
call sym._fwrite
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 4], eax
mov dword [esp], 0xa
call sym._fputc
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp], eax
call dbg.liblist_list_remove_curr
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 0xc], 0
mov dword [esp + 8], dbg.sock_remove_marked_for_removal_list_traverse_func
mov dword [esp + 4], 0
mov dword [esp], eax
call dbg.liblist_list_traverse
cmp eax, 1
je 0x403951
lea eax, [ebp - 0x110]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call dbg.socket_list2fd_set
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
test eax, eax
jne 0x403a29
mov dword [ebp - 0xc], 0
jmp 0x403a46
mov dword [ebp - 0x118], 1
mov dword [ebp - 0x114], 0
lea eax, [ebp - 0x118]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp], eax
call sym._liblist_list_empty
test eax, eax
jne 0x403b3d
mov eax, dword [ebp - 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
lea eax, [ebp - 0x110]
mov dword [esp + 4], eax
mov dword [esp], 0x1f4
call sym._select_20
sub esp, 0x14
test eax, eax
js 0x403b31
call dbg.debug_is_active
test eax, eax
je 0x403b08
call dbg.debug_get_time_stack_tabs
mov ebx, eax
call dbg.debug_get_time_str_now
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x40e6d6
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sym._fprintf
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xb
mov dword [esp + 4], 1
mov dword [esp], str.selected...
call sym._fwrite
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 4], eax
mov dword [esp], 0xa
call sym._fputc
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 0xc], 0
mov dword [esp + 8], dbg.sock_handle_event_list_traverse_func
lea edx, [ebp - 0x110]
mov dword [esp + 4], edx
mov dword [esp], eax
call dbg.liblist_list_traverse
jmp 0x403b3d
mov dword [esp], str.select_failed
call sym._perror
mov eax, dword [0x413020]
sub eax, 1
mov dword [0x413020], eax
call dbg.debug_is_active
test eax, eax
je 0x403bbf
call dbg.debug_get_time_stack_tabs
mov ebx, eax
call dbg.debug_get_time_str_now
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x40e6d6
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sym._fprintf
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x25
mov dword [esp + 4], 1
mov dword [esp], str._socket_list_select_and_handle_events
call sym._fwrite
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 4], eax
mov dword [esp], 0xa
call sym._fputc
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp], eax
call sym._liblist_list_empty
test eax, eax
sete al
movzx eax, al
mov ebx, dword [ebp - 4]
leave
ret