Function at 0x426770
Capabilities:
Get socket status
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x13c
mov eax, dword [0x4413a0]
mov dword [esp + 0x138], eax
xor eax, eax
mov dword [esp + 0x128], eax
push ebx
mov dword [esp + 0x130], eax
push esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], eax
mov eax, dword [esi + 0x14d8]
xor ebx, ebx
cmp eax, ebx
push edi
mov edi, 1
mov dword [esp + 0x24], 0x10
mov dword [esp + 0x18], 0x8000
mov dword [esp + 0x14], edi
mov dword [esi + 0x14dc], 0xffffffff
mov dword [esi + 0xa798], ebx
jl 0x426bd4
mov ecx, dword [esi + 0x3c]
cmp ecx, ebx
je 0x426894
jle 0x4267fc
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ebx
jmp 0x426821
mov eax, 0xbce4217d
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], eax
mov eax, ecx
neg eax
cdq
mov ecx, 0xf4240
idiv ecx
mov dword [esp + 0x20], edx
mov eax, dword [esi + 0x14d8]
lea edx, [esp + 0x1c]
push edx
push ebx
lea ecx, [esp + 0x30]
push ecx
mov edx, ecx
mov dword [esp + 0x38], eax
push edx
inc eax
push eax
mov dword [esp + 0x3c], edi
call sub.WS2_32.dll_select
cmp eax, ebx
jg 0x42687d
je 0x426911
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2714
jne 0x426948
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esi + 0x14d8]
push ebx
lea ecx, [esp + 0x30]
push ecx
mov edx, ecx
push edx
inc eax
push eax
call sub.WS2_32.dll_select
cmp eax, ebx
jle 0x426848
mov edx, dword [esi + 0x14d8]
lea ecx, [esp + 0x10]
push ecx
push 0x8004667e
mov dword [esp + 0x18], edi
push edx
jmp 0x4268a9
mov ecx, dword [esi + 0x14d8]
lea eax, [esp + 0x10]
push eax
push 0x8004667e
mov dword [esp + 0x18], ebx
push ecx
call sub.WS2_32.dll_ioctlsocket
mov ecx, dword [esi + 0x14d8]
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x138]
push eax
push ecx
push esi
call dword [esi + 0x14a4]
add esp, 0x10
cmp eax, ebx
mov dword [esi + 0x14dc], eax
jge 0x4269e7
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2714
je 0x4267e5
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2733
je 0x4267e5
call sub.WS2_32.dll_WSAGetLastError
push 0x14
mov dword [esi + 0xa79c], eax
push str.TCP_accept_failed_in_soap_accept__
jmp 0x426bdb
cmp word [esi], 2
mov dword [esi + 0xa79c], ebx
mov edi, str.SOAP_ENV:Receiver
je 0x426927
mov edi, str.SOAP_ENV:Server
push esi
call fcn.004171a0
push esi
mov dword [eax], edi
call fcn.004171c0
push esi
mov dword [eax], str.Timeout
call fcn.004171f0
add esp, 0xc
cmp eax, ebx
jmp 0x4269bf
call sub.WS2_32.dll_WSAGetLastError
mov edi, dword [esi + 0xa794]
cmp edi, 0xffffffff
mov dword [esi + 0xa79c], eax
je 0x426967
cmp word [esi + 0xa468], bx
jne 0x426985
push esi
call dword [esi + 0x14a8]
add esp, 4
cmp eax, ebx
mov dword [esi + 0xa794], eax
jne 0x42698b
mov dword [esi + 0x14dc], 0xffffffff
mov dword [esi + 0xa794], edi
mov eax, esi
call fcn.00425e70
cmp word [esi], 2
mov ebx, eax
mov edi, str.SOAP_ENV:Sender
je 0x4269a4
mov edi, str.SOAP_ENV:Client
push esi
call fcn.004171a0
push esi
mov dword [eax], edi
call fcn.004171c0
push esi
mov dword [eax], ebx
call fcn.004171f0
add esp, 0xc
test eax, eax
je 0x4269c7
mov dword [eax], str.TCP_accept_failed_in_soap_accept__
mov dword [esi + 0xa794], 0x14
or eax, 0xffffffff
mov ecx, dword [esp + 0x144]
call fcn.0042c7bb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x138]
push edx
call sub.WS2_32.dll_ntohl
mov dword [esi + 0xa7a4], eax
mov eax, dword [esp + 0x136]
push eax
call sub.WS2_32.dll_ntohs
mov edx, dword [esi + 8]
movzx ecx, ax
mov al, byte [esi + 0x4c]
shr edx, 3
and edx, edi
test al, al
mov dword [esi + 0xa778], ecx
mov word [esi + 0xa468], dx
jns 0x426a6c
mov ecx, dword [esi + 0x14dc]
push 4
lea eax, [esp + 0x14]
push eax
push 0x80
push 0xffff
mov dword [esp + 0x20], ebx
push ecx
mov word [esp + 0x24], di
mov word [esp + 0x26], bx
call sub.WS2_32.dll_setsockopt
test eax, eax
je 0x426a6c
call sub.WS2_32.dll_WSAGetLastError
push 0x14
mov dword [esi + 0xa79c], eax
push str.TCP_setsockopt_SO_LINGER_failed_in_soap_accept__
jmp 0x426bdb
mov eax, dword [esi + 0x4c]
and eax, 0xffffff7f
je 0x426aaa
push 4
lea edx, [esp + 0x18]
push edx
push eax
mov eax, dword [esi + 0x14dc]
push 0xffff
push eax
call sub.WS2_32.dll_setsockopt
test eax, eax
je 0x426aaa
call sub.WS2_32.dll_WSAGetLastError
push 0x14
mov dword [esi + 0xa79c], eax
push str.TCP_setsockopt_failed_in_soap_accept__
jmp 0x426bdb
cmp word [esi + 0xa468], bx
je 0x426ae8
mov edx, dword [esi + 0x14dc]
push 4
lea ecx, [esp + 0x18]
push ecx
push 8
push 0xffff
push edx
call sub.WS2_32.dll_setsockopt
test eax, eax
je 0x426ae8
call sub.WS2_32.dll_WSAGetLastError
push 0x14
mov dword [esi + 0xa79c], eax
push str.TCP_setsockopt_SO_KEEPALIVE_failed_in_soap_accept__
jmp 0x426bdb
mov ecx, dword [esi + 0x14dc]
push 4
lea eax, [esp + 0x1c]
push eax
push 0x1001
push 0xffff
push ecx
call sub.WS2_32.dll_setsockopt
test eax, eax
je 0x426b20
call sub.WS2_32.dll_WSAGetLastError
push 0x14
mov dword [esi + 0xa79c], eax
push str.TCP_setsockopt_SO_SNDBUF_failed_in_soap_accept__
jmp 0x426bdb
mov eax, dword [esi + 0x14dc]
push 4
lea edx, [esp + 0x1c]
push edx
push 0x1002
push 0xffff
push eax
call sub.WS2_32.dll_setsockopt
test eax, eax
je 0x426b58
call sub.WS2_32.dll_WSAGetLastError
push 0x14
mov dword [esi + 0xa79c], eax
push str.TCP_setsockopt_SO_RCVBUF_failed_in_soap_accept__
jmp 0x426bdb
mov edx, dword [esi + 0x14dc]
push 4
lea ecx, [esp + 0x18]
push ecx
push edi
push 6
push edx
call sub.WS2_32.dll_setsockopt
test eax, eax
je 0x426b86
call sub.WS2_32.dll_WSAGetLastError
push 0x14
mov dword [esi + 0xa79c], eax
push str.TCP_setsockopt_TCP_NODELAY_failed_in_soap_accept__
jmp 0x426bdb
cmp dword [esi + 0x3c], ebx
je 0x426bbb
mov ecx, dword [esi + 0x14d8]
lea eax, [esp + 0x10]
push eax
push 0x8004667e
push ecx
mov dword [esp + 0x1c], ebx
call sub.WS2_32.dll_ioctlsocket
mov eax, dword [esi + 0x14dc]
lea edx, [esp + 0x10]
push edx
push 0x8004667e
push eax
call sub.WS2_32.dll_ioctlsocket
mov eax, dword [esi + 0x14dc]
mov ecx, dword [esp + 0x144]
call fcn.0042c7bb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x14
push str.TCP_no_master_socket_in_soap_accept__
mov eax, esi
call fcn.00425e70
push eax
push esi
call fcn.004250f0
mov ecx, dword [esp + 0x154]
add esp, 0x10
or eax, 0xffffffff
call fcn.0042c7bb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret