Function at 0x54d690
Capabilities:
Get socket status

Disassembly:
jmp 0x552a30
mov eax, 0x3038
call fcn.00412160
call fcn.0054ee50
mov ecx, dword [eax + 0xe0]
xor edx, edx
mov dword [esp + 0x20], edx
test ecx, 0x1000
jne 0x552a79
test cl, 2
je 0x552a79
push edx
and ecx, 0xfffffffd
push 0xffffe897
mov dword [eax + 0xe0], ecx
call fcn.0054b4e0
add esp, 8
or eax, 0xffffffff
add esp, 0x3038
ret
mov eax, dword [esp + 0x3040]
cmp eax, edx
jne 0x552a9d
mov eax, dword [esp + 0x3044]
push eax
call fcn.0054b220
add esp, 4
xor eax, eax
add esp, 0x3038
ret
push ebx
push ebp
mov ebp, dword [esp + 0x3044]
lea eax, [ebp + eax*8]
push esi
push edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1040], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2044], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x24], eax
cmp ebp, eax
jae 0x552d2c
lea esi, [ebp + 6]
jmp 0x552ae2
xor edx, edx
mov ecx, dword [esi - 6]
xor ebx, ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], edx
cmp ecx, edx
je 0x552ce8
movzx eax, word [esi - 2]
xor edi, edi
cmp di, ax
je 0x552ce8
test al, 1
je 0x552b29
mov edx, dword [ecx]
lea edi, [esp + 0x1c]
and eax, 0xfffffffd
push edi
push eax
mov eax, dword [edx + 0x54]
push ecx
call eax
mov edx, dword [esp + 0x38]
add esp, 0xc
movzx ebx, ax
movzx eax, word [esi - 2]
test al, 2
je 0x552b53
mov ecx, dword [esi - 6]
mov edx, dword [ecx]
lea edi, [esp + 0x2c]
and eax, 0xfffffffe
push edi
push eax
mov eax, dword [edx + 0x54]
push ecx
call eax
mov edx, dword [esp + 0x38]
movzx ecx, ax
add esp, 0xc
mov dword [esp + 0x28], ecx
mov edi, dword [esp + 0x1c]
mov eax, edi
and eax, ebx
xor ecx, ecx
cmp cx, ax
jne 0x552cbb
mov eax, edx
and eax, dword [esp + 0x28]
cmp cx, ax
jne 0x552cbb
mov eax, dword [esi - 6]
xor edx, edx
push edx
push eax
mov word [esi], dx
call fcn.0054ffa0
add esp, 8
test eax, eax
je 0x552c89
mov eax, dword [eax + 4]
cmp dword [eax], 0xaaaaaaaa
jne 0x552c89
cmp dword [esp + 0x10], 0
jne 0x552ced
mov edi, dword [eax + 0x18]
mov ecx, dword [esp + 0x1040]
test bl, 1
je 0x552bde
or word [esi], 1
cmp ecx, 0x400
jae 0x552bda
mov dword [esp + ecx*4 + 0x1044], edi
mov ecx, dword [esp + 0x1040]
inc ecx
mov dword [esp + 0x1040], ecx
inc dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
test bl, 2
je 0x552c03
or word [esi], 2
cmp eax, 0x400
jae 0x552bff
mov dword [esp + eax*4 + 0x40], edi
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x3c], eax
inc dword [esp + 0x14]
mov dl, byte [esp + 0x28]
test dl, 1
je 0x552c3c
or word [esi], 4
cmp ecx, 0x400
jae 0x552c31
mov dword [esp + ecx*4 + 0x1044], edi
mov ecx, 1
add dword [esp + 0x1040], ecx
add dword [esp + 0x18], ecx
jmp 0x552c41
mov ecx, 1
add dword [esp + 0x18], ecx
jmp 0x552c41
mov ecx, 1
test dl, 2
je 0x552c5d
or word [esi], 8
cmp eax, 0x400
jae 0x552c59
mov dword [esp + eax*4 + 0x40], edi
add dword [esp + 0x3c], ecx
add dword [esp + 0x14], ecx
test byte [esi - 2], 4
je 0x552ced
mov eax, dword [esp + 0x2044]
cmp eax, 0x400
jae 0x552c83
mov dword [esp + eax*4 + 0x2048], edi
inc dword [esp + 0x2044]
inc dword [esp + 0x20]
jmp 0x552ced
cmp dword [esp + 0x10], 0
jne 0x552cad
lea ecx, [esi - 6]
mov eax, ebp
cmp ebp, ecx
jae 0x552cad
lea esp, [esp]
xor edx, edx
mov word [eax + 6], dx
add eax, 8
cmp eax, ecx
jb 0x552ca0
inc dword [esp + 0x10]
mov eax, 0x10
mov word [esi], ax
jmp 0x552ced
cmp dword [esp + 0x10], 0
jne 0x552cdd
lea ecx, [esi - 6]
mov eax, ebp
cmp ebp, ecx
jae 0x552cdd
jmp 0x552cd0
xor ebx, ebx
mov word [eax + 6], bx
add eax, 8
cmp eax, ecx
jb 0x552cd0
inc dword [esp + 0x10]
or edx, edi
mov word [esi], dx
jmp 0x552ced
xor ecx, ecx
mov word [esi], cx
add esi, 8
lea edx, [esi - 6]
cmp edx, dword [esp + 0x24]
jb 0x552ae0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x552f5b
mov eax, 0x400
cmp dword [esp + 0x18], eax
jg 0x552f49
cmp dword [esp + 0x14], eax
jg 0x552f49
cmp dword [esp + 0x20], eax
jg 0x552f49
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
neg esi
sbb esi, esi
lea eax, [esp + 0x1040]
and esi, eax
neg edi
sbb edi, edi
lea ecx, [esp + 0x3c]
and edi, ecx
neg ebp
sbb ebp, ebp
lea edx, [esp + 0x2044]
and ebp, edx
test esi, esi
jne 0x552d85
test edi, edi
jne 0x552d85
test ebp, ebp
jne 0x552d85
mov eax, dword [esp + 0x3054]
push eax
call fcn.0054b220
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x3038
ret
mov ebx, dword [esp + 0x3054]
cmp ebx, 0xffffffff
je 0x552db5
call fcn.0054b300
mov ecx, eax
xor edx, edx
mov eax, ebx
div ecx
push edx
mov dword [esp + 0x38], eax
call fcn.0054b430
mov dword [esp + 0x3c], eax
add esp, 4
lea eax, [esp + 0x34]
jmp 0x552db9
mov eax, dword [esp + 0x30]
push eax
push ebp
push edi
push esi
push 0
call sub.WS2_32.dll_select
mov ebp, eax
test ebp, ebp
jle 0x552e90
mov ecx, dword [esp + 0x304c]
mov eax, dword [esp + 0x24]
xor ebp, ebp
cmp ecx, eax
jae 0x552f3c
sub eax, ecx
dec eax
shr eax, 3
inc eax
lea edi, [ecx + 6]
mov dword [esp + 0x1c], eax
mov eax, dword [edi - 6]
xor esi, esi
test eax, eax
je 0x552e6c
xor ecx, ecx
cmp cx, word [edi - 2]
je 0x552e6c
push ecx
push eax
call fcn.0054ffa0
mov edx, dword [eax + 4]
mov ebx, dword [edx + 0x18]
add esp, 8
lea eax, [esp + 0x1040]
push eax
push ebx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x552e37
movzx eax, word [edi]
test al, 1
je 0x552e30
mov esi, 1
test al, 4
je 0x552e37
or esi, 2
lea ecx, [esp + 0x3c]
push ecx
push ebx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x552e57
movzx eax, word [edi]
test al, 2
je 0x552e50
or esi, 1
test al, 8
je 0x552e57
or esi, 2
lea edx, [esp + 0x2044]
push edx
push ebx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x552e6c
or esi, 4
mov word [edi], si
test si, si
je 0x552e75
inc ebp
add edi, 8
sub dword [esp + 0x1c], 1
jne 0x552df1
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x3038
ret
cmp ebp, 0xffffffff
jne 0x552f3c
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2736
jne 0x552f33
mov esi, dword [esp + 0x304c]
mov edi, dword [esp + 0x24]
xor ebp, ebp
mov dword [esp + 0x30], 4
cmp esi, edi
jae 0x552f3c
xor eax, eax
mov word [esi + 6], ax
mov eax, dword [esi]
test eax, eax
je 0x552f1f
xor ecx, ecx
cmp cx, word [esi + 4]
je 0x552f1f
push ecx
push eax
call fcn.0054ffa0
add esp, 8
lea edx, [esp + 0x30]
push edx
mov edx, dword [eax + 4]
mov eax, dword [edx + 0x18]
lea ecx, [esp + 0x20]
push ecx
push 0x1008
push 0xffff
push eax
call sub.WS2_32.dll_getsockopt
cmp eax, 0xffffffff
jne 0x552f1f
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2736
jne 0x552f1f
mov ecx, 0x10
mov word [esi + 6], cx
inc ebp
add esi, 8
cmp esi, edi
jb 0x552ec6
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x3038
ret
push eax
call fcn.00550bd0
add esp, 4
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x3038
ret
push 0
push 0xffffe89d
call fcn.0054b4e0
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3038
ret