Function at 0x100644b4
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x344
push ebx
push esi
push edi
lea eax, [ebp - 0x14]
xor edi, edi
push eax
mov dword [ebp - 4], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], 1
call fcn.10031fe6
mov eax, dword [ebp - 0x14]
cmp dword [ebp + 0x10], edi
pop ecx
mov dword [ebp - 0x10], eax
jle 0x100649d4
mov ebx, dword [ebp + 0xc]
xor esi, esi
push ebx
mov dword [ebp - 0x240], esi
mov dword [ebp - 0x13c], esi
mov dword [ebp - 0x344], esi
call fcn.10030730
test eax, eax
pop ecx
jle 0x1006459c
mov cl, byte [esi + ebx]
cmp cl, 0x72
jne 0x1006453a
mov eax, dword [ebp - 0x240]
cmp eax, 0x40
jae 0x10064534
mov edx, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x23c], edx
inc dword [ebp - 0x240]
lea edi, [ebp - 0x240]
cmp cl, 0x77
jne 0x10064563
mov eax, dword [ebp - 0x13c]
cmp eax, 0x40
jae 0x1006455a
mov edx, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x138], edx
inc dword [ebp - 0x13c]
lea eax, [ebp - 0x13c]
mov dword [ebp - 4], eax
cmp cl, 0x65
jne 0x1006458c
mov eax, dword [ebp - 0x344]
cmp eax, 0x40
jae 0x10064583
mov ecx, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x340], ecx
inc dword [ebp - 0x344]
lea eax, [ebp - 0x344]
mov dword [ebp - 8], eax
push ebx
inc esi
call fcn.10030730
cmp esi, eax
pop ecx
jl 0x10064511
xor esi, esi
push esi
call sub.WS2_32.dll_WSASetLastError
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 8]
push dword [ebp - 4]
push edi
push 0xffffffffffffffff
call sub.WS2_32.dll_select
mov dword [ebp + 0xc], eax
call sub.WSOCK32.dll_WSAGetLastError
mov dword [ebp - 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebp - 0x10]
push eax
call fcn.10031fe6
cmp dword [ebp + 0xc], esi
pop ecx
jne 0x1006472a
push 1
push esi
push esi
lea eax, [ebp - 0x38]
push esi
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x1006460b
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [ebp - 0x34], 0x12
je 0x100649cf
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x14]
cmp eax, dword [ebp + 0x10]
jl 0x100644ee
push 4
cmp edi, esi
pop ebx
je 0x10064670
xor ecx, ecx
cmp dword [ebp - 0x240], esi
jbe 0x10064670
lea eax, [ebp - 0x23c]
mov edx, dword [ebp + 8]
cmp dword [eax], edx
je 0x10064645
inc ecx
add eax, ebx
cmp ecx, dword [ebp - 0x240]
jb 0x10064631
jmp 0x10064670
mov eax, dword [ebp - 0x240]
dec eax
cmp ecx, eax
jae 0x1006466a
lea eax, [ebp + ecx*4 - 0x23c]
mov edx, dword [eax + 4]
inc ecx
mov dword [eax], edx
mov edx, dword [ebp - 0x240]
add eax, ebx
dec edx
cmp ecx, edx
jb 0x10064657
dec dword [ebp - 0x240]
cmp dword [ebp - 4], esi
je 0x100646c4
xor ecx, ecx
cmp dword [ebp - 0x13c], esi
jbe 0x100646c4
lea eax, [ebp - 0x138]
mov edx, dword [ebp + 8]
cmp dword [eax], edx
je 0x10064699
inc ecx
add eax, ebx
cmp ecx, dword [ebp - 0x13c]
jb 0x10064685
jmp 0x100646c4
mov eax, dword [ebp - 0x13c]
dec eax
cmp ecx, eax
jae 0x100646be
lea eax, [ebp + ecx*4 - 0x138]
mov edx, dword [eax + 4]
inc ecx
mov dword [eax], edx
mov edx, dword [ebp - 0x13c]
add eax, ebx
dec edx
cmp ecx, edx
jb 0x100646ab
dec dword [ebp - 0x13c]
cmp dword [ebp - 8], esi
je 0x10064718
xor ecx, ecx
cmp dword [ebp - 0x344], esi
jbe 0x10064718
lea eax, [ebp - 0x340]
mov edx, dword [eax]
cmp edx, dword [ebp + 8]
je 0x100646ed
inc ecx
add eax, ebx
cmp ecx, dword [ebp - 0x344]
jb 0x100646d9
jmp 0x10064718
mov eax, dword [ebp - 0x344]
dec eax
cmp ecx, eax
jae 0x10064712
lea eax, [ebp + ecx*4 - 0x340]
mov edx, dword [eax + 4]
inc ecx
mov dword [eax], edx
mov edx, dword [ebp - 0x344]
add eax, ebx
dec edx
cmp ecx, edx
jb 0x100646ff
dec dword [ebp - 0x344]
push 0x2733
call sub.WS2_32.dll_WSASetLastError
push 0xfffffffffffffff6
pop eax
jmp 0x100649d6
cmp dword [ebp - 8], esi
je 0x1006486a
push dword [ebp - 8]
mov esi, dword [ebp + 8]
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1006486d
xor edx, edx
push 4
cmp edi, edx
pop ebx
je 0x1006479c
xor ecx, ecx
cmp dword [ebp - 0x240], edx
jbe 0x1006479c
lea eax, [ebp - 0x23c]
cmp dword [eax], esi
je 0x10064771
inc ecx
add eax, ebx
cmp ecx, dword [ebp - 0x240]
jb 0x10064760
jmp 0x1006479c
mov eax, dword [ebp - 0x240]
dec eax
cmp ecx, eax
jae 0x10064796
lea eax, [ebp + ecx*4 - 0x23c]
mov edi, dword [eax + 4]
inc ecx
mov dword [eax], edi
mov edi, dword [ebp - 0x240]
add eax, ebx
dec edi
cmp ecx, edi
jb 0x10064783
dec dword [ebp - 0x240]
cmp dword [ebp - 4], edx
je 0x100647ed
xor ecx, ecx
cmp dword [ebp - 0x13c], edx
jbe 0x100647ed
lea eax, [ebp - 0x138]
cmp dword [eax], esi
je 0x100647c2
inc ecx
add eax, ebx
cmp ecx, dword [ebp - 0x13c]
jb 0x100647b1
jmp 0x100647ed
mov eax, dword [ebp - 0x13c]
dec eax
cmp ecx, eax
jae 0x100647e7
lea eax, [ebp + ecx*4 - 0x138]
mov edi, dword [eax + 4]
inc ecx
mov dword [eax], edi
mov edi, dword [ebp - 0x13c]
add eax, ebx
dec edi
cmp ecx, edi
jb 0x100647d4
dec dword [ebp - 0x13c]
xor ecx, ecx
cmp dword [ebp - 0x344], edx
jbe 0x10064839
lea eax, [ebp - 0x340]
cmp dword [eax], esi
je 0x1006480e
inc ecx
add eax, ebx
cmp ecx, dword [ebp - 0x344]
jb 0x100647fd
jmp 0x10064839
mov eax, dword [ebp - 0x344]
dec eax
cmp ecx, eax
jae 0x10064833
lea eax, [ebp + ecx*4 - 0x340]
mov edx, dword [eax + 4]
inc ecx
mov dword [eax], edx
mov edx, dword [ebp - 0x344]
add eax, ebx
dec edx
cmp ecx, edx
jb 0x10064820
dec dword [ebp - 0x344]
call sub.WSOCK32.dll_WSAGetLastError
mov esi, eax
lea eax, [ebp + 0x10]
push eax
mov dword [ebp + 0x10], ebx
call fcn.100333f0
push eax
push 0x1007
push 0xffff
push dword [ebp + 8]
call sub.WS2_32.dll_getsockopt
push esi
call sub.WS2_32.dll_WSASetLastError
jmp 0x100649cf
mov esi, dword [ebp + 8]
push 4
test edi, edi
pop ebx
je 0x1006487f
push edi
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
jne 0x10064892
cmp dword [ebp - 4], 0
je 0x100648b7
push dword [ebp - 4]
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x100648b7
call sub.WSOCK32.dll_WSAGetLastError
mov dword [ebp - 0xc], eax
lea eax, [ebp + 8]
push eax
mov dword [ebp + 8], ebx
call fcn.100333f0
push eax
push 0x1007
push 0xffff
push esi
call sub.WS2_32.dll_getsockopt
xor edx, edx
cmp edi, edx
je 0x10064909
xor ecx, ecx
cmp dword [ebp - 0x240], edx
jbe 0x10064909
lea eax, [ebp - 0x23c]
cmp dword [eax], esi
je 0x100648de
inc ecx
add eax, ebx
cmp ecx, dword [ebp - 0x240]
jb 0x100648cd
jmp 0x10064909
mov eax, dword [ebp - 0x240]
dec eax
cmp ecx, eax
jae 0x10064903
lea eax, [ebp + ecx*4 - 0x23c]
mov edi, dword [eax + 4]
inc ecx
mov dword [eax], edi
mov edi, dword [ebp - 0x240]
add eax, ebx
dec edi
cmp ecx, edi
jb 0x100648f0
dec dword [ebp - 0x240]
cmp dword [ebp - 4], edx
je 0x1006495a
xor ecx, ecx
cmp dword [ebp - 0x13c], edx
jbe 0x1006495a
lea eax, [ebp - 0x138]
cmp dword [eax], esi
je 0x1006492f
inc ecx
add eax, ebx
cmp ecx, dword [ebp - 0x13c]
jb 0x1006491e
jmp 0x1006495a
mov eax, dword [ebp - 0x13c]
dec eax
cmp ecx, eax
jae 0x10064954
lea eax, [ebp + ecx*4 - 0x138]
mov edi, dword [eax + 4]
inc ecx
mov dword [eax], edi
mov edi, dword [ebp - 0x13c]
add eax, ebx
dec edi
cmp ecx, edi
jb 0x10064941
dec dword [ebp - 0x13c]
cmp dword [ebp - 8], edx
je 0x100649ab
xor ecx, ecx
cmp dword [ebp - 0x344], edx
jbe 0x100649ab
lea eax, [ebp - 0x340]
cmp dword [eax], esi
je 0x10064980
inc ecx
add eax, ebx
cmp ecx, dword [ebp - 0x344]
jb 0x1006496f
jmp 0x100649ab
mov eax, dword [ebp - 0x344]
dec eax
cmp ecx, eax
jae 0x100649a5
lea eax, [ebp + ecx*4 - 0x340]
mov esi, dword [eax + 4]
inc ecx
mov dword [eax], esi
mov esi, dword [ebp - 0x344]
add eax, ebx
dec esi
cmp ecx, esi
jb 0x10064992
dec dword [ebp - 0x344]
cmp dword [ebp + 0xc], edx
jge 0x100649b9
call sub.WSOCK32.dll_WSAGetLastError
mov esi, eax
jmp 0x100649bc
mov esi, dword [ebp - 0xc]
push esi
call sub.WS2_32.dll_WSASetLastError
mov eax, 0x2714
cmp esi, eax
je 0x100649d6
test esi, esi
je 0x100649d4
or eax, 0xffffffff
jmp 0x100649d6
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0xc