Function at 0x4368e0
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x354
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x240], 1
mov dword [ebp - 0x18], 0
cmp dword [ebp + 8], 0
je 0x436942
mov dword [ebp - 4], 0
jmp 0x436920
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp + 0xc]
jae 0x436942
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
cmp dword [eax + edx*8], 0xffffffff
je 0x436940
mov dword [ebp - 0x240], 0
jmp 0x436942
jmp 0x436917
cmp dword [ebp - 0x240], 0
je 0x436968
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.004362d0
add esp, 4
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0x23c]
jmp 0x436e69
cmp dword [ebp + 0x10], 0
jle 0x43697f
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x18], edx
call fcn.00444cc0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x348], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x12c], 0xffffffff
mov dword [ebp - 4], 0
jmp 0x4369b9
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp + 0xc]
jae 0x436bf4
xor edx, edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 8]
mov word [ecx + eax*8 + 6], dx
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
cmp dword [eax + edx*8], 0xffffffff
jne 0x4369e0
jmp 0x4369b0
xor ecx, ecx
jne 0x4369e0
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
movsx ecx, word [eax + edx*8 + 4]
and ecx, 7
je 0x436bef
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx*8]
cmp ecx, dword [ebp - 0x12c]
jbe 0x436a18
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx*8]
mov dword [ebp - 0x12c], ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
movsx ecx, word [eax + edx*8 + 4]
and ecx, 1
je 0x436ab5
mov dword [ebp - 0x34c], 0
jmp 0x436a47
mov edx, dword [ebp - 0x34c]
add edx, 1
mov dword [ebp - 0x34c], edx
mov eax, dword [ebp - 0x34c]
cmp eax, dword [ebp - 0x348]
jae 0x436a71
mov ecx, dword [ebp - 0x34c]
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + ecx*4 - 0x344]
cmp ecx, dword [eax + edx*8]
jne 0x436a6f
jmp 0x436a71
jmp 0x436a38
mov edx, dword [ebp - 0x34c]
cmp edx, dword [ebp - 0x348]
jne 0x436aad
cmp dword [ebp - 0x348], 0x40
jae 0x436aad
mov eax, dword [ebp - 0x34c]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov ecx, dword [edx + ecx*8]
mov dword [ebp + eax*4 - 0x344], ecx
mov edx, dword [ebp - 0x348]
add edx, 1
mov dword [ebp - 0x348], edx
xor eax, eax
jne 0x436a2c
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
movsx eax, word [edx + ecx*8 + 4]
and eax, 4
je 0x436b52
mov dword [ebp - 0x350], 0
jmp 0x436ae4
mov ecx, dword [ebp - 0x350]
add ecx, 1
mov dword [ebp - 0x350], ecx
mov edx, dword [ebp - 0x350]
cmp edx, dword [ebp - 0x128]
jae 0x436b0e
mov eax, dword [ebp - 0x350]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + eax*4 - 0x124]
cmp eax, dword [edx + ecx*8]
jne 0x436b0c
jmp 0x436b0e
jmp 0x436ad5
mov ecx, dword [ebp - 0x350]
cmp ecx, dword [ebp - 0x128]
jne 0x436b4a
cmp dword [ebp - 0x128], 0x40
jae 0x436b4a
mov edx, dword [ebp - 0x350]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + eax*8]
mov dword [ebp + edx*4 - 0x124], eax
mov ecx, dword [ebp - 0x128]
add ecx, 1
mov dword [ebp - 0x128], ecx
xor edx, edx
jne 0x436ac9
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 8]
movsx edx, word [ecx + eax*8 + 4]
and edx, 2
je 0x436bef
mov dword [ebp - 0x354], 0
jmp 0x436b81
mov eax, dword [ebp - 0x354]
add eax, 1
mov dword [ebp - 0x354], eax
mov ecx, dword [ebp - 0x354]
cmp ecx, dword [ebp - 0x238]
jae 0x436bab
mov edx, dword [ebp - 0x354]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + edx*4 - 0x234]
cmp edx, dword [ecx + eax*8]
jne 0x436ba9
jmp 0x436bab
jmp 0x436b72
mov eax, dword [ebp - 0x354]
cmp eax, dword [ebp - 0x238]
jne 0x436be7
cmp dword [ebp - 0x238], 0x40
jae 0x436be7
mov ecx, dword [ebp - 0x354]
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov edx, dword [eax + edx*8]
mov dword [ebp + ecx*4 - 0x234], edx
mov eax, dword [ebp - 0x238]
add eax, 1
mov dword [ebp - 0x238], eax
xor ecx, ecx
jne 0x436b66
jmp 0x4369b0
cmp dword [ebp - 0x348], 0
jne 0x436c2c
cmp dword [ebp - 0x128], 0
jne 0x436c2c
cmp dword [ebp - 0x238], 0
jne 0x436c2c
mov edx, dword [ebp + 0x10]
push edx
call fcn.004362d0
add esp, 4
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0x23c]
jmp 0x436e69
xor eax, eax
cmp dword [ebp + 0x10], 0
setl al
sub eax, 1
lea ecx, [ebp - 0x10]
and eax, ecx
mov dword [ebp - 8], eax
cmp dword [ebp + 0x10], 0
jle 0x436c6a
mov eax, dword [ebp - 0x18]
cdq
mov ecx, 0x3e8
idiv ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
cdq
mov ecx, 0x3e8
idiv ecx
imul edx, edx, 0x3e8
mov dword [ebp - 0xc], edx
jmp 0x436c7e
cmp dword [ebp + 0x10], 0
jne 0x436c7e
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x238]
neg eax
sbb eax, eax
lea ecx, [ebp - 0x238]
and eax, ecx
push eax
mov edx, dword [ebp - 0x128]
neg edx
sbb edx, edx
lea eax, [ebp - 0x128]
and edx, eax
push edx
mov ecx, dword [ebp - 0x348]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0x348]
and ecx, edx
push ecx
mov eax, dword [ebp - 0x12c]
add eax, 1
push eax
call dword [sym.imp.WS2_32.dll_select]
mov dword [ebp - 0x23c], eax
cmp dword [ebp - 0x23c], 0xffffffff
je 0x436cdc
jmp 0x436d43
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x436cff
cmp dword [0x62c86c], 0
jne 0x436cfd
cmp dword [ebp - 0x14], 0x2714
je 0x436cff
jmp 0x436d43
cmp dword [ebp + 0x10], 0
jle 0x436d36
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x20]
push edx
call fcn.00444cc0
push edx
push eax
call fcn.00444d00
add esp, 0x10
mov ecx, dword [ebp + 0x10]
sub ecx, eax
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0
jg 0x436d36
mov dword [ebp - 0x23c], 0
jmp 0x436d43
cmp dword [ebp - 0x23c], 0xffffffff
je 0x436c40
cmp dword [ebp - 0x23c], 0
jge 0x436d54
or eax, 0xffffffff
jmp 0x436e69
cmp dword [ebp - 0x23c], 0
jne 0x436d64
xor eax, eax
jmp 0x436e69
mov dword [ebp - 0x23c], 0
mov dword [ebp - 4], 0
jmp 0x436d80
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp + 0xc]
jae 0x436e63
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov word [eax + edx*8 + 6], cx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
cmp dword [edx + ecx*8], 0xffffffff
jne 0x436da7
jmp 0x436d77
lea eax, [ebp - 0x348]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx*8]
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x436dda
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
movsx eax, word [edx + ecx*8 + 6]
or eax, 1
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov word [edx + ecx*8 + 6], ax
lea eax, [ebp - 0x128]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx*8]
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x436e0d
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
movsx eax, word [edx + ecx*8 + 6]
or eax, 4
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov word [edx + ecx*8 + 6], ax
lea eax, [ebp - 0x238]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx*8]
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x436e40
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
movsx eax, word [edx + ecx*8 + 6]
or eax, 2
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov word [edx + ecx*8 + 6], ax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 8]
movsx edx, word [ecx + eax*8 + 6]
test edx, edx
je 0x436e5e
mov eax, dword [ebp - 0x23c]
add eax, 1
mov dword [ebp - 0x23c], eax
jmp 0x436d77
mov eax, dword [ebp - 0x23c]
mov esp, ebp
pop ebp
ret