Function at 0x47fa27
Capabilities:
Get socket status

Disassembly:
sub esp, 0x3e0
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x6c]
push eax
call dword [sym.imp.WS2_32.dll_ntohl]
xor ebx, ebx
push ebx
push ebx
mov ecx, esi
call fcn.0047fcb0
push ebx
push ebx
mov ecx, esi
mov dword [esi + 0x5c], eax
call fcn.0047fcb0
cmp dword [esi + 0x5c], 0xffffffff
mov dword [esi + 0x60], eax
je 0x47fc46
cmp eax, 0xffffffff
je 0x47fc46
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
push ebp
push ebx
push eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x30], ebx
mov byte [esp + 0x3a], bl
mov byte [esp + 0x37], bl
mov byte [esp + 0x39], bl
mov byte [esp + 0x38], bl
mov byte [esp + 0x36], bl
mov byte [esp + 0x34], 1
mov byte [esp + 0x35], 1
mov word [esp + 0x15c], bx
mov word [esp + 0x25e], bx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x47fbd9
mov ebp, dword [sym.imp.WS2_32.dll_select]
jmp 0x47fae0
mov eax, dword [esi + 0x5c]
xor ecx, ecx
mov dword [esp + 0x25c], eax
inc eax
cmp eax, ebx
mov dword [esp + 0x258], 1
jbe 0x47fafe
mov ecx, eax
mov edx, dword [esi + 0x60]
xor eax, eax
cmp dword [esp + eax*4 + 0x25c], edx
je 0x47fb12
inc eax
cmp eax, 1
jb 0x47fb03
cmp eax, 1
jne 0x47fb29
mov dword [esp + 0x260], edx
mov dword [esp + 0x258], 2
lea eax, [edx + 1]
cmp eax, ecx
jbe 0x47fb32
mov ecx, eax
lea edx, [esp + 0xc]
push edx
push ebx
push ebx
lea eax, [esp + 0x264]
push eax
push ecx
call ebp
cmp eax, 0xffffffff
je 0x47fc09
cmp eax, ebx
jne 0x47fb72
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
call fcn.0047f5b0
cmp eax, ebx
je 0x47fbd9
cmp eax, 0xffffffff
jne 0x47fbc6
pop ebp
pop esi
xor eax, eax
pop ebx
add esp, 0x3e0
ret
jle 0x47fbc6
mov eax, dword [esi + 0x5c]
lea edx, [esp + 0x258]
push edx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x47fb9d
mov ecx, dword [esi + 0x5c]
push ecx
lea edx, [esp + 0x18]
push edx
mov ecx, esi
call fcn.0047f450
test eax, eax
je 0x47fbd9
mov ecx, dword [esi + 0x60]
lea eax, [esp + 0x258]
push eax
push ecx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x47fbc6
mov edx, dword [esi + 0x60]
push edx
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.0047f450
test eax, eax
je 0x47fbd9
mov ecx, dword [esi + 0xc]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x47fae0
cmp byte [esp + 0x2e], bl
je 0x47fb66
cmp byte [esp + 0x2f], bl
je 0x47fb66
mov edx, dword [esp + 0x40]
push edx
push ebx
mov ecx, esi
call fcn.0047fcb0
cmp eax, 0xffffffff
je 0x47fc1e
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov byte [esp + 0x2c], bl
push str.binding_worked__n
jmp 0x47fc28
call sub.WS2_32.dll_WSAGetLastError
push eax
push str._select_failed____d_n
call fcn.0047d750
add esp, 8
jmp 0x47fbd9
mov byte [esp + 0x2c], 1
push str.binding_failed__n
call fcn.0047d750
add esp, 4
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call fcn.0047e4b0
pop ebp
pop esi
pop ebx
add esp, 0x3e0
ret
pop esi
xor eax, eax
pop ebx
add esp, 0x3e0
ret