Function at 0x1009bd70
Capabilities:
Get socket status

Disassembly:
sub esp, 0x320
mov eax, dword [0x1012604c]
xor eax, esp
mov dword [esp + 0x31c], eax
mov edx, dword [esp + 0x324]
mov dword [esp], edx
test edx, edx
je 0x1009bdab
mov ecx, dword [esp + 0x328]
xor eax, eax
test ecx, ecx
je 0x1009bdab
nop
cmp dword [edx + eax*8], 0xffffffff
jne 0x1009bdf8
inc eax
cmp eax, ecx
jb 0x1009bda0
mov ecx, dword [esp + 0x32c]
mov eax, ecx
mov edx, dword [esp + 0x330]
or eax, edx
je 0x1009c122
test edx, edx
jg 0x1009c10e
jl 0x1009bdd5
test ecx, ecx
jae 0x1009c103
push 0x2726
call dword [sym.imp.WS2_32.dll_WSASetLastError]
or eax, 0xffffffff
mov ecx, dword [esp + 0x31c]
xor ecx, esp
call fcn.100ca7cd
add esp, 0x320
ret
push ebx
push ebp
push esi
push edi
xor edi, edi
xor esi, esi
xor edx, edx
mov dword [esp + 0x20], edi
or ebp, 0xffffffff
mov dword [esp + 0x124], esi
xor ebx, ebx
mov dword [esp + 0x228], edx
mov dword [esp + 0x14], ebx
nop dword [eax]
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x1c], ebp
mov word [ecx + ebx*8 + 6], ax
mov ecx, dword [ecx + ebx*8]
cmp ecx, 0xffffffff
je 0x1009bf11
jae 0x1009bf58
mov eax, dword [esp + 0x10]
movzx ebx, word [eax + ebx*8 + 4]
mov eax, ebp
test ebx, 0x710
je 0x1009bf0d
cmp ecx, eax
mov ebp, ecx
cmovbe ebp, eax
test ebx, 0x300
je 0x1009be91
xor eax, eax
test edi, edi
je 0x1009be7b
nop dword [eax]
cmp dword [esp + eax*4 + 0x24], ecx
je 0x1009be7b
inc eax
cmp eax, edi
jb 0x1009be70
cmp eax, edi
jne 0x1009be91
cmp edi, 0x40
jae 0x1009be91
mov dword [esp + eax*4 + 0x24], ecx
mov edi, dword [esp + 0x20]
inc edi
mov dword [esp + 0x20], edi
test bl, 0x10
je 0x1009becd
xor eax, eax
test esi, esi
je 0x1009beae
nop dword [eax]
cmp dword [esp + eax*4 + 0x128], ecx
je 0x1009beae
inc eax
cmp eax, esi
jb 0x1009bea0
cmp eax, esi
jne 0x1009becd
cmp esi, 0x40
jae 0x1009becd
mov dword [esp + eax*4 + 0x128], ecx
mov esi, dword [esp + 0x124]
inc esi
mov dword [esp + 0x124], esi
test ebx, 0x600
je 0x1009bf0d
xor eax, eax
test edx, edx
je 0x1009beee
nop dword [eax + eax]
cmp dword [esp + eax*4 + 0x22c], ecx
je 0x1009beee
inc eax
cmp eax, edx
jb 0x1009bee0
cmp eax, edx
jne 0x1009bf0d
cmp edx, 0x40
jae 0x1009bf0d
mov dword [esp + eax*4 + 0x22c], ecx
mov edx, dword [esp + 0x228]
inc edx
mov dword [esp + 0x228], edx
mov ebx, dword [esp + 0x14]
inc ebx
mov dword [esp + 0x14], ebx
cmp ebx, dword [esp + 0x338]
jb 0x1009be20
test edi, edi
jne 0x1009bfbc
test esi, esi
jne 0x1009bfbc
test edx, edx
jne 0x1009bfbc
mov ecx, dword [esp + 0x33c]
mov eax, ecx
mov edx, dword [esp + 0x340]
or eax, edx
mov dword [esp + 0x18], edx
jne 0x1009bf7f
jmp 0x1009c018
push 0x2726
call dword [sym.imp.WS2_32.dll_WSASetLastError]
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x31c]
xor ecx, esp
call fcn.100ca7cd
add esp, 0x320
ret
test edx, edx
jg 0x1009bfa4
jl 0x1009bf89
test ecx, ecx
jae 0x1009bf99
push 0x2726
call dword [sym.imp.WS2_32.dll_WSASetLastError]
or esi, 0xffffffff
jmp 0x1009c018
test edx, edx
jl 0x1009bfb1
jg 0x1009bfa4
cmp ecx, 0xffffffff
jb 0x1009bfb1
mov ecx, 0xfffffffe
mov dword [esp + 0x18], 0
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
jmp 0x1009c018
push dword [esp + 0x340]
lea eax, [esp + 0x18]
push dword [esp + 0x340]
push eax
call fcn.100bedc0
add esp, 0xc
lea esi, [esp + 0x228]
lea ecx, [esp + 0x124]
push eax
xor eax, eax
cmp dword [esp + 0x22c], eax
cmove esi, eax
cmp dword [esp + 0x128], eax
push esi
cmove ecx, eax
xor edi, edi
cmp dword [esp + 0x28], edi
lea eax, [esp + 0x28]
push ecx
cmove eax, edi
push eax
lea eax, [ebp + 1]
push eax
call dword [sym.imp.WS2_32.dll_select]
mov esi, eax
test esi, esi
jg 0x1009c038
cmp esi, 0xffffffff
jne 0x1009c031
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
xor ecx, ecx
cmp eax, 0x2714
cmove esi, ecx
mov eax, esi
jmp 0x1009bf66
mov esi, dword [esp + 0x10]
xor edi, edi
add esi, 6
mov ebp, 0x100
mov ebx, 0x200
nop dword [eax + eax]
xor eax, eax
mov word [esi], ax
mov eax, dword [esi - 6]
cmp eax, 0xffffffff
je 0x1009c0eb
lea ecx, [esp + 0x20]
push ecx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1009c091
movzx ecx, word [esi - 2]
test ebp, ecx
je 0x1009c07b
or word [esi], bp
movzx eax, word [esi]
movzx eax, ax
test ecx, 0x300
je 0x1009c091
or eax, 0x300
mov word [esi], ax
lea eax, [esp + 0x124]
push eax
push dword [esi - 6]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1009c0af
test byte [esi - 2], 0x10
je 0x1009c0af
or word [esi], 0x10
lea eax, [esp + 0x228]
push eax
push dword [esi - 6]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1009c0e4
movzx ecx, word [esi - 2]
test ebx, ecx
je 0x1009c0ce
or word [esi], bx
movzx eax, word [esi]
movzx eax, ax
test ecx, 0x400
je 0x1009c0e4
or eax, 0x400
mov word [esi], ax
cmp word [esi], 0
je 0x1009c0eb
inc edi
add esi, 8
sub dword [esp + 0x338], 1
jne 0x1009c050
mov eax, edi
jmp 0x1009bf66
test edx, edx
jl 0x1009c11b
jg 0x1009c10e
cmp ecx, 0xffffffff
jb 0x1009c11b
mov ecx, 0xfffffffe
mov dword [esp + 8], 0
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x31c]
xor eax, eax
xor ecx, esp
call fcn.100ca7cd
add esp, 0x320
ret