Function at 0x52b030
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c4d58
mov eax, dword fs:[0]
push eax
sub esp, 0x878
mov eax, dword [0x68cc00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0x14]
mov ecx, esi
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x87c], esi
call fcn.0046d450
cmp byte [ebp + 0x10], 0
je 0x52b07e
mov ebx, 1
jmp 0x52b08b
mov ebx, dword [ebp + 0xc]
mov eax, 0x1499700
test ebx, ebx
cmove ebx, eax
mov eax, dword [esi + 4]
test eax, eax
je 0x52b0b3
cmp dword [eax + 0x88], 0
jne 0x52b0b3
mov ecx, esi
call fcn.0046d4f0
test al, al
je 0x52b0b3
mov eax, dword [esi + 4]
mov dword [eax + 0x88], 0x42
mov ecx, dword [ebp + 8]
cmp ecx, 0xffffffff
jne 0x52b0d0
mov eax, dword [edi]
mov ecx, edi
push str.invalid_socket__not_ready_for_writing.
call dword [eax + 0x14]
mov byte [esi + 0x16], 1
jmp 0x52b2e6
mov eax, dword [ebp - 0x87c]
mov esi, 0x32
mov dword [ebp - 0x880], esi
mov eax, dword [eax + 4]
test eax, eax
je 0x52b0fe
mov esi, dword [eax + 0x88]
mov eax, 0x32
cmp esi, eax
cmovb esi, eax
mov dword [ebp - 0x880], esi
push ecx
call fcn.00401460
add esp, 4
test al, al
je 0x52b145
mov eax, dword [ebp - 0x87c]
mov dword [ebp - 0x14], 0
push dword [eax + 4]
lea eax, [ebp - 0x14]
push eax
push edi
push 0
push 0
push ebx
push esi
push dword [ebp + 8]
call fcn.0059f6b0
add esp, 0x20
test al, al
je 0x52b2e6
cmp dword [ebp - 0x14], 0
setg al
jmp 0x52b2e8
xor eax, eax
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x52b2a3
xor ecx, ecx
xor edx, edx
xor esi, esi
cmp byte [ebp + 0x10], cl
jne 0x52b194
mov esi, ebx
sub esi, eax
mov eax, dword [ebp - 0x880]
cmp ebx, esi
cmovbe esi, eax
test eax, eax
je 0x52b175
cmp esi, eax
cmova esi, eax
cmp esi, ebx
mov eax, 0x10624dd3
cmova esi, ebx
mul esi
mov ecx, esi
shr edx, 6
imul eax, edx, 0x3e8
sub ecx, eax
imul ecx, ecx, 0x3e8
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x878]
mov dword [ebp - 0x24], edx
call fcn.004fbc30
lea ecx, [ebp - 0x878]
mov dword [ebp - 4], 0
call fcn.004fbfb0
push edi
push dword [ebp + 8]
lea ecx, [ebp - 0x878]
call fcn.004fbf60
test al, al
je 0x52b41b
xorps xmm0, xmm0
lea ecx, [ebp - 0x1c]
movlpd qword [ebp - 0x1c], xmm0
call fcn.0042a040
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 1
push eax
push 0
lea eax, [ebp - 0x86c]
push eax
push 0
push 0
call dword [sym.imp.WS2_32.dll_select]
mov dword [ebp - 0x884], eax
cmp eax, 0xffffffff
je 0x52b3b1
test eax, eax
js 0x52b3b1
jg 0x52b327
cmp byte [ebp + 0x10], 0
jne 0x52b304
mov eax, dword [ebp - 0x14]
add eax, esi
mov dword [ebp - 0x14], eax
cmp eax, ebx
jae 0x52b289
mov esi, dword [ebp - 0x87c]
mov ecx, esi
push edi
call fcn.0046d5b0
test al, al
jne 0x52b260
lea ecx, [ebp - 0x1c]
call fcn.0042a0e0
lea ecx, [ebp - 0x878]
mov dword [ebp - 4], 0xffffffff
call fcn.004fbd80
mov eax, dword [ebp - 0x14]
jmp 0x52b152
mov byte [esi + 0x15], 1
mov ecx, edi
mov eax, dword [edi]
push str.socket_write_aborted_by_application..
call dword [eax + 0x14]
lea ecx, [ebp - 0x1c]
xor bl, bl
call fcn.0042a0e0
lea ecx, [ebp - 0x878]
call fcn.004fbd80
mov al, bl
jmp 0x52b2e8
lea ecx, [ebp - 0x1c]
call fcn.0042a0e0
lea ecx, [ebp - 0x878]
mov dword [ebp - 4], 0xffffffff
call fcn.004fbd80
push dword [ebp + 8]
mov ecx, edi
push str.socketNum
call fcn.00448770
push ebx
push str.timeoutMs
mov ecx, edi
call fcn.00448770
movzx eax, byte [ebp + 0x10]
mov ecx, edi
push eax
push str.bPoll
call fcn.00448770
mov eax, dword [edi]
mov ecx, edi
push str.UDP_socket_is_not_ready_for_writing_
call dword [eax + 0x14]
mov eax, dword [ebp - 0x87c]
mov byte [eax + 0x14], 1
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005af618
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x87c]
lea ecx, [ebp - 0x1c]
xor bl, bl
mov byte [eax + 0x14], 1
call fcn.0042a0e0
lea ecx, [ebp - 0x878]
call fcn.004fbd80
mov al, bl
jmp 0x52b2e8
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x86c]
push eax
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
jne 0x52b3ff
push eax
push str.nfds
mov ecx, edi
call fcn.00448770
push dword [ebp - 0x884]
mov ecx, edi
push str.nStatus
call fcn.00448770
push esi
push str.socketNum
mov ecx, edi
call fcn.00448770
push ebx
push str.timeoutMs
mov ecx, edi
call fcn.00448770
movzx eax, byte [ebp + 0x10]
mov ecx, edi
push eax
push str.bPoll
call fcn.00448770
mov eax, dword [edi]
mov ecx, edi
push str.UDP_socket_select_for_writeability_returned_unexpected_result_
call dword [eax + 0x18]
lea ecx, [ebp - 0x1c]
mov bl, 1
call fcn.0042a0e0
lea ecx, [ebp - 0x878]
call fcn.004fbd80
mov al, bl
jmp 0x52b2e8
mov ecx, edi
call fcn.00449020
push 0
push str.nfds
mov ecx, edi
call fcn.00448770
push dword [ebp + 8]
mov ecx, edi
push str.socketNum
call fcn.00448770
push ebx
push str.timeoutMs
mov ecx, edi
call fcn.00448770
movzx eax, byte [ebp + 0x10]
mov ecx, edi
push eax
push str.bPoll
call fcn.00448770
mov eax, dword [edi]
mov ecx, edi
push str.UDP_socket_select_for_writeable_returned_an_error_
call dword [eax + 0x14]
lea ecx, [ebp - 0x1c]
mov bl, 1
call fcn.0042a0e0
lea ecx, [ebp - 0x878]
call fcn.004fbd80
mov al, bl
jmp 0x52b2e8
lea ecx, [ebp - 0x878]
mov bl, 1
call fcn.004fbd80
mov al, bl
jmp 0x52b2e8