Function at 0x40ab20
Capabilities:
Get socket status
Resolve function by parsing pe exports

Disassembly:
push ebp
mov edx, 0xffffffff
push edi
push esi
mov esi, ecx
push ebx
sub esp, 0x16c
mov eax, dword [ecx + 0x10]
mov ebp, dword [eax + 0x4c]
test ebp, ebp
cmove ebp, edx
cmp byte [eax + 0x90], 0
jne 0x40afc0
test byte [eax + 0x79], 8
je 0x40afd5
mov edi, dword [eax + 0x78]
and edi, 0x4000004
cmp edi, 0x4000000
mov dword [esp + 0x2c], edi
lea edi, [esp + 0x5c]
je 0x40b2e0
test byte [eax + 0x7f], 0x10
jne 0x40ae28
mov dword [esp + 4], edi
mov dword [esp], 0
call sym._clock_gettime
mov ebx, dword [0x4786e0]
test ebx, ebx
jne 0x40adf0
mov byte [esp + 0x30], 1
mov dword [esp + 4], edi
mov dword [esp], 0
call sym._clock_gettime
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x2c], 0x4000000
je 0x40abd0
mov edx, dword [esi + 0x10]
fldz
fld qword [edx + 0x438]
fcompi st(1)
fstp st(0)
jbe 0x40abe2
cmp dword [esi + 0x18], eax
jl 0x40adf0
je 0x40add8
mov edx, dword [esi + 0x10]
mov eax, dword [edx + 0x78]
test eax, 0x100000
jne 0x40adb8
mov ecx, eax
not ecx
and ch, 0x48
je 0x40adb8
test ah, 8
jne 0x40ae00
mov eax, dword [edx + 0x7c]
and eax, 0x10000000
cmp dword [esp + 0x2c], 0x4000000
je 0x40ad20
test byte [edx + 0x78], 2
jne 0x40ad20
test eax, eax
jne 0x40ad28
jmp 0x40ac32
fstp st(0)
mov dword [esp + 4], 1
mov eax, dword [edx + 0x60]
mov dword [esp], eax
call sym._setsock_blocking
test al, al
je 0x40b1c8
lea eax, [esi + 0x14]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call sym._Settings_Copy
mov eax, dword [esi + 0x14]
test eax, eax
je 0x40b3c0
mov dword [eax + 0x84], 1
mov edx, dword [esi + 0x10]
test byte [edx + 0x7a], 2
je 0x40ac8c
or dword [eax + 0x78], 0x20000
mov dword [esp], eax
mov ecx, esi
call method.Listener.my_accept_thread_Settings_
sub esp, 4
test eax, eax
jle 0x40b418
xor eax, eax
mov edx, dword [esi + 0x10]
test ebp, ebp
setg al
sub ebp, eax
cmp byte [edx + 0x90], 0
mov eax, dword [esi + 0x14]
jne 0x40b1f0
test byte [edx + 0x78], 8
je 0x40b21f
mov edx, dword [eax + 0x78]
mov ecx, eax
test dl, 2
jne 0x40b00b
test byte [eax + 0x7e], 2
je 0x40aff0
and edx, 0x10000
jne 0x40acf1
test byte [ecx + 0x7e], 0x80
je 0x40b4b0
mov dword [esp], ecx
call sym.Iperf_remove_host_thread_Settings_
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x60]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [esi + 0x14]
sub esp, 4
mov dword [esp], eax
call sym._Settings_Destroy
jmp 0x40b1a5
test eax, eax
je 0x40aec8
fldz
fld qword [edx + 0x438]
fucomi st(1)
fstp st(1)
jp 0x40ad3c
je 0x40ac30
fnstcw word [esp + 0x4e]
xor ecx, ecx
movzx eax, word [esp + 0x4e]
or ah, 0xc
mov word [esp + 0x4c], ax
fldcw word [esp + 0x4c]
fistp dword [esp + 0x38]
fldcw word [esp + 0x4e]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x20]
lea edx, [esp + 0x54]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], eax
add eax, 1
mov dword [esp + 0x5c], 1
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_select]
sub esp, 0x14
test eax, eax
jle 0x40b388
mov edx, dword [esi + 0x10]
jmp 0x40ac32
call sym._thread_numtrafficthreads
test eax, eax
jg 0x40b280
mov edx, dword [esi + 0x10]
mov eax, dword [edx + 0x78]
test ah, 8
jne 0x40ae00
jmp 0x40ac06
mov eax, 0x10624dd3
imul ecx
sar ecx, 0x1f
sar edx, 6
sub edx, ecx
cmp dword [esi + 0x1c], edx
jge 0x40abdf
add esp, 0x16c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [esp + 0x30], 0
je 0x40ac06
mov ecx, esi
call method.Listener.my_listen__
test al, al
je 0x40adf0
mov byte [esp + 0x30], 0
mov edx, dword [esi + 0x10]
jmp 0x40ac06
fldz
fld qword [eax + 0x438]
fcompi st(1)
fstp st(0)
jbe 0x40ab7a
mov dword [esp + 4], edi
mov dword [esp], 0
call sym._clock_gettime
mov ecx, dword [esp + 0x60]
mov eax, 0x10624dd3
imul ecx
mov eax, dword [esi + 0x10]
sar ecx, 0x1f
fld qword [eax + 0x438]
fnstcw word [esp + 0x4e]
sar edx, 6
mov ebx, edx
movzx eax, word [esp + 0x4e]
sub ebx, ecx
or ah, 0xc
mov word [esp + 0x4c], ax
fldcw word [esp + 0x4c]
fist dword [esp + 0x30]
fldcw word [esp + 0x4e]
fild dword [esp + 0x30]
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x5c]
mov dword [esi + 0x18], eax
fsubp st(1)
fmul dword [0x45a9ac]
fldcw word [esp + 0x4c]
fistp dword [esp + 0x30]
fldcw word [esp + 0x4e]
mov edx, dword [esp + 0x30]
add edx, ebx
cmp edx, 0xf423f
jg 0x40b448
mov dword [esi + 0x1c], edx
jmp 0x40ab7a
mov ecx, dword [edx + 0xa8]
mov ebx, dword [edx + 0xac]
mov eax, ecx
mov dword [esp + 0x38], ecx
or eax, ebx
mov dword [esp + 0x3c], ebx
je 0x40ac32
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ebx, eax
shrd eax, edx, 0x14
and ebx, 0xfffff
and eax, 0xfffff
lea ecx, [ebx + eax]
mov ebx, dword [esp + 0x3c]
shr ebx, 8
mov eax, ebx
mov ebx, dword [esp + 0x3c]
and eax, 0xfffff
add ecx, eax
shr ebx, 0x1c
mov eax, 0x51eb851f
add ecx, ebx
xor ebx, ebx
mul ecx
mov dword [esp + 0x44], ebx
shr edx, 3
lea eax, [edx + edx*4]
mov edx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
sub ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], ecx
sub eax, ecx
sbb edx, ebx
mov dword [esp + 0x38], eax
mov ebx, 0xc28f5c29
imul ecx, edx, 0xc28f5c29
imul edx, dword [esp + 0x38], 0x8f5c28f5
lea eax, [ecx + edx]
mov ecx, eax
mov eax, dword [esp + 0x38]
mul ebx
mov ebx, 0x19
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], edx
xor edx, edx
and eax, 3
add dword [esp + 0x3c], ecx
mov ecx, eax
imul eax, edx, 0x19
mov dword [esp + 0x48], eax
mov eax, ecx
mov ecx, dword [esp + 0x38]
mul ebx
mov ebx, dword [esp + 0x48]
add edx, ebx
mov ebx, dword [esp + 0x3c]
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
mov dword [esp + 0x40], eax
shrd ecx, ebx, 2
mov dword [esp + 0x44], edx
mov eax, ecx
mov ecx, dword [esp + 0x40]
imul ecx, ecx, 0x2710
jmp 0x40ad5f
mov dword [esp], eax
call sym._SockAddr_remoteAddr
mov eax, dword [esi + 0x10]
test byte [eax + 0x79], 8
jne 0x40ab53
mov ecx, esi
call method.Listener.my_listen__
test al, al
je 0x40adf0
mov eax, dword [esi + 0x10]
jmp 0x40ab53
mov dword [esp], eax
mov ecx, esi
call method.Listener.apply_client_settings_thread_Settings_
mov ecx, dword [esi + 0x14]
sub esp, 4
mov edx, dword [ecx + 0x78]
test al, al
je 0x40acdf
and dh, 8
je 0x40b074
mov eax, dword [esi + 0x10]
test byte [eax + 0x78], 2
jne 0x40b070
test byte [eax + 0x80], 0x40
jne 0x40b074
test byte [eax + 0x7d], 1
jne 0x40b02e
test byte [ecx + 0x7d], 1
je 0x40b074
mov dword [esp], 2
call dword [0x459154]
mov dword [esp + 4], str.Client_requested___l2checks_but_not_supported_on_this_platform_n
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym.Iperf_remove_host_thread_Settings_
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._Settings_Destroy
jmp 0x40b1a5
or dword [ecx + 0x7c], 2
mov dword [esp + 4], 2
mov dword [esp], ecx
call sym._setTransferID
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
cmp dword [eax + 0x88], 1
je 0x40b3f0
test byte [ebx + 0x7d], 0x20
jne 0x40b298
test byte [ebx + 0x78], 2
jne 0x40b180
mov eax, dword [esi + 0x10]
test byte [eax + 0x78], 2
jne 0x40b180
test dword [ebx + 0x7c], 0xc0000
jne 0x40b0cf
mov ecx, dword [ebx + 0x8c]
test ecx, ecx
je 0x40b180
mov eax, dword [ebx + 0x2c]
mov dword [esp], ebx
mov dword [esp + 0x54], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x54]
mov dword [esp + 4], eax
call sym._Settings_GenerateClientSettings
mov eax, dword [esp + 0x54]
test eax, eax
je 0x40b4a3
mov edx, dword [esi + 0x14]
mov edx, dword [edx + 0x8c]
test edx, edx
je 0x40b10e
mov dword [eax + 0x58], 0
mov dword [esp], eax
mov dword [esp + 4], 1
call sym._setTransferID
mov eax, dword [esp + 0x54]
test dword [eax + 0x7c], 0x80004
jne 0x40b4e0
mov ebx, dword [esi + 0x14]
test byte [ebx + 0x7e], 8
je 0x40b485
mov eax, dword [ebx + 0x38]
cmp byte [eax + 0x92c], 0
je 0x40b4ed
mov dword [esp + 8], 1
mov eax, dword [ebx + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._InitSumReport
mov edx, dword [esp + 0x54]
mov dword [ebx + 0x3c], eax
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x3c]
mov dword [edx + 0x3c], ecx
mov dword [eax + 0x40], edx
mov ebx, dword [esi + 0x14]
lea esi, [esi]
mov dword [esp + 4], 2
mov dword [esp], ebx
call sym._setTransferID
mov eax, dword [esi + 0x14]
test byte [eax + 0x7a], 1
je 0x40b240
mov dword [esp], eax
call sym._thread_start_all
mov byte [esp + 0x30], 1
mov eax, dword [0x4786e0]
test eax, eax
jne 0x40adf0
test ebp, ebp
jne 0x40ab9d
jmp 0x40adf0
mov dword [esp + 8], 0xdb
mov dword [esp + 4], str.Listener.cpp
mov dword [esp], str.Failed_setting_socket_to_blocking_mode
call sym._warn
jmp 0x40ac4d
add eax, 0xd0
add edx, 0xd0
mov dword [esp + 4], eax
mov dword [esp], edx
call sym._SockAddr_Hostare_Equal
test eax, eax
jne 0x40b2c0
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
test byte [edx + 0x78], 8
jne 0x40acc7
add eax, 0xd0
mov dword [esp], eax
call sym._SockAddr_isIPv6
test eax, eax
jne 0x40b2c0
mov eax, dword [esi + 0x14]
jmp 0x40acc7
test byte [eax + 0x7e], 0x80
jne 0x40b19d
mov dword [esp], eax
call sym._InitConnectionReport
mov ecx, dword [esi + 0x14]
mov edx, dword [eax + 8]
mov ebx, dword [ecx + 0x370]
mov dword [edx + 4], ebx
mov ecx, dword [ecx + 0x374]
mov dword [edx + 8], ecx
mov dword [esp], eax
call sym._PostReport
mov eax, dword [esi + 0x14]
jmp 0x40b19d
mov dword [esp], 0xc350
call sym._delay_loop
jmp 0x40b1aa
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x40b0a1
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._SetSumHandlers
mov ebx, dword [esi + 0x14]
jmp 0x40b0a1
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym.Iperf_remove_host_thread_Settings_
mov eax, dword [esi + 0x14]
test byte [eax + 0x79], 8
jne 0x40ad0e
jmp 0x40acfc
mov dword [esp + 4], edi
mov dword [esp], 0
call sym._clock_gettime
mov ebx, dword [esp + 0x60]
mov eax, 0x10624dd3
mov ecx, dword [esp + 0x5c]
imul ebx
mov eax, dword [esi + 0x10]
sar ebx, 0x1f
fild qword [eax + 0xa8]
mov eax, dword [eax + 0xac]
sar edx, 6
sub edx, ebx
test eax, eax
jns 0x40b320
fadd dword [0x45a9b0]
fnstcw word [esp + 0x4e]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fdiv dword [0x45a9b4]
movzx eax, word [esp + 0x4e]
or ah, 0xc
mov word [esp + 0x4c], ax
fldcw word [esp + 0x4c]
fist dword [esp + 0x30]
fldcw word [esp + 0x4e]
mov eax, dword [esp + 0x30]
fild dword [esp + 0x30]
add ecx, eax
mov dword [esi + 0x18], ecx
fsubp st(1)
fmul dword [0x45a9ac]
fldcw word [esp + 0x4c]
fistp dword [esp + 0x30]
fldcw word [esp + 0x4e]
mov eax, dword [esp + 0x30]
add eax, edx
cmp eax, 0xf423f
jg 0x40b430
mov dword [esi + 0x1c], eax
jmp 0x40ab7a
mov eax, dword [esi + 0x10]
test byte [eax + 0x78], 2
je 0x40b1aa
mov dword [esp], 2
call dword [0x459154]
mov dword [esp + 4], str.ERROR:_expected_reverse_connect_did_not_occur_n
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x40adf0
mov dword [esp + 8], 0xdf
mov dword [esp + 4], str.Listener.cpp
mov dword [esp], str.Failed_memory_allocation_for_server_settings
call sym._warn
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call sym._thread_stop
mov eax, dword [esi + 0x14]
jmp 0x40ac72
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x40b0a1
cmp byte [eax + 0x92d], 0
je 0x40b460
test byte [ebx + 0x7d], 0x20
jne 0x40b2a3
jmp 0x40b0a1
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._Settings_Destroy
jmp 0x40b1aa
sub eax, 0xf4240
add ecx, 1
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], ecx
jmp 0x40ab7a
sub edx, 0xf4240
add eax, 1
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], eax
jmp 0x40ab7a
add eax, 0x18
mov dword [esp + 4], 1
mov dword [esp], eax
call sym._format_ips_port_string
mov ebx, dword [esi + 0x14]
mov eax, dword [ebx + 0x38]
mov byte [eax + 0x92d], 1
jmp 0x40b0a1
mov eax, dword [ebx + 0x8c]
test eax, eax
je 0x40b180
mov eax, dword [esp + 0x54]
cmp dword [eax + 0x8c], 1
je 0x40b50b
mov dword [ebx + 0x44], eax
mov ebx, dword [esi + 0x14]
jmp 0x40b180
mov dword [esp], ecx
call sym._InitConnectionReport
mov ecx, dword [esi + 0x14]
mov edx, dword [eax + 8]
mov ebx, dword [ecx + 0x370]
mov dword [edx + 4], ebx
mov ecx, dword [ecx + 0x374]
mov dword [edx + 8], ecx
mov dword [esp], eax
call sym._PostReport
mov ecx, dword [esi + 0x14]
jmp 0x40acf1
mov dword [esp], eax
call sym.Iperf_push_host_thread_Settings_
jmp 0x40b12f
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._SetSumHandlers
mov ebx, dword [esi + 0x14]
mov eax, dword [ebx + 0x38]
mov byte [eax + 0x92c], 1
jmp 0x40b14c
mov dword [ebx + 0x40], eax
mov ebx, dword [esi + 0x14]
jmp 0x40b180