Function at 0x40b680
Capabilities:
Set socket configuration

Disassembly:
push edi
xor eax, eax
push esi
push ebx
sub esp, 0x30
mov ebx, dword [esp + 0x40]
cmp dword [ebx + 0x84], 2
sete al
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x74]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x60]
mov dword [esp], eax
call sym._setsock_tcp_windowsize
test byte [ebx + 0x7a], 0x40
jne 0x40b7e8
test byte [ebx + 0x82], 4
jne 0x40b7e8
lea eax, [esp + 0x24]
mov dword [esp + 0x10], 4
mov esi, dword [sym.imp.WS2_32.dll_setsockopt]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 4
mov dword [esp + 4], 0xffff
mov eax, dword [ebx + 0x60]
mov dword [esp + 0x24], 1
mov dword [esp], eax
call esi
sub esp, 0x14
cmp eax, 0xffffffff
je 0x40b990
mov eax, dword [ebx + 0x78]
test ah, 0x40
je 0x40b818
test ah, 8
je 0x40ba81
mov edx, dword [ebx + 0xc4]
cmp edx, 0xffffffff
je 0x40b920
test edx, edx
jg 0x40b92f
mov edx, dword [ebx + 0x50]
test byte [ebx + 0x81], 8
jne 0x40b748
test edx, edx
jle 0x40b7d0
lea esi, [esi]
test al, 8
jne 0x40b842
mov eax, ebx
call sym._SetSocketOptionsIPTos.part.0
mov eax, dword [ebx + 0x78]
test ah, 8
jne 0x40b7d0
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], 4
test al, 0x20
jne 0x40ba10
test eax, 0x2000000
je 0x40b7d0
lea edi, [esp + 0x28]
lea eax, [esp + 0x2c]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 6
mov eax, dword [ebx + 0x60]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_getsockopt]
sub esp, 0x14
cmp eax, 0xffffffff
je 0x40baf0
test eax, eax
jne 0x40b7d0
mov edx, dword [esp + 0x28]
mov eax, dword [ebx + 0x78]
test edx, edx
je 0x40bae0
or eax, 0x20
mov dword [ebx + 0x78], eax
nop
test byte [ebx + 0x7f], 4
jne 0x40b8c0
add esp, 0x30
pop ebx
pop esi
pop edi
ret
mov dword [esp], 2
call dword [0x459154]
mov dword [esp + 4], str.TCP_congestion_control_not_supported_n
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov dword [esp], ebx
call sym._thread_stop
jmp 0x40b6c3
mov edx, dword [ebx + 0xc4]
test edx, edx
jg 0x40b870
mov edx, dword [ebx + 0x50]
test byte [ebx + 0x81], 8
jne 0x40b748
test edx, edx
jle 0x40b75a
test al, 8
je 0x40b750
mov dword [esp + 8], 0x15e
mov dword [esp + 4], str.PerfSocket.cpp
mov dword [esp], str.IPV6_TCLASS_not_supported
call sym._warn_errno
mov eax, dword [ebx + 0x78]
jmp 0x40b75a
lea eax, [esp + 0x2c]
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], eax
mov dword [esp + 8], 4
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x60]
mov dword [esp + 0x2c], edx
mov dword [esp], eax
call esi
sub esp, 0x14
cmp eax, 0xffffffff
je 0x40ba60
mov eax, dword [ebx + 0x78]
mov edx, dword [ebx + 0x50]
test byte [ebx + 0x81], 8
je 0x40b832
jmp 0x40b748
lea eax, [esp + 0x2c]
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0xffff
mov eax, dword [ebx + 0x60]
mov dword [esp + 0x2c], 1
mov dword [esp], eax
call esi
sub esp, 0x14
cmp eax, 0xffffffff
jne 0x40b7da
mov dword [esp + 8], 0x12d
mov dword [esp + 4], str.PerfSocket.cpp
mov dword [esp], str.setsockopt_SO_DONTROUTE
call sym._warn_errno
jmp 0x40b7da
mov dword [ebx + 0xc4], 1
mov edx, 1
mov ecx, dword [ebx + 0x60]
test al, 8
jne 0x40b9b8
lea eax, [esp + 0x2c]
mov byte [esp + 0x2c], dl
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0
mov dword [esp], ecx
call esi
sub esp, 0x14
cmp eax, 0xffffffff
jne 0x40b8a8
mov dword [esp + 8], 0xcd
mov dword [esp + 4], str.PerfSocket.cpp
mov dword [esp], str.multicast_v4_ttl
call sym._warn_errno
jmp 0x40b8a8
mov dword [esp + 8], 0x8e
mov dword [esp + 4], str.PerfSocket.cpp
mov dword [esp], str.SO_REUSEADDR
call sym._warn_errno
jmp 0x40b705
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0x29
mov dword [esp], ecx
call esi
sub esp, 0x14
cmp eax, 0xffffffff
jne 0x40b8a8
mov dword [esp + 8], 0xd4
mov dword [esp + 4], str.PerfSocket.cpp
mov dword [esp], str.multicast_v6_ttl
call sym._warn_errno
jmp 0x40b8a8
lea edi, [esp + 0x28]
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], edi
mov dword [esp + 8], 1
mov dword [esp + 4], 6
mov eax, dword [ebx + 0x60]
mov dword [esp], eax
call esi
sub esp, 0x14
cmp eax, 0xffffffff
je 0x40bab8
test byte [ebx + 0x7b], 2
je 0x40b7d0
test eax, eax
jne 0x40b7d0
jmp 0x40b782
mov dword [esp + 8], 0xdf
mov dword [esp + 4], str.PerfSocket.cpp
mov dword [esp], str.v4_ttl
call sym._warn_errno
jmp 0x40b8a8
mov dword [esp + 8], 0xc0
mov dword [esp + 4], str.PerfSocket.cpp
mov dword [esp], str.Multicast_requires__u_option
call sym._warn
mov dword [esp], ebx
call sym._thread_stop
mov dword [esp], 1
call sym._exit
lea esi, [esi]
mov dword [esp + 8], 0xf4
mov dword [esp + 4], str.PerfSocket.cpp
mov dword [esp], str.setsockopt_TCP_NODELAY
call sym._warn_errno
jmp 0x40b7d0
and eax, 0xffffffdf
mov dword [ebx + 0x78], eax
jmp 0x40b7d0
mov dword [esp + 8], 0xfa
mov dword [esp + 4], str.PerfSocket.cpp
mov dword [esp], str.getsockopt_TCP_NODELAY
call sym._warn_errno
jmp 0x40b7d0