Function at 0x601c9060
Capabilities:
Get socket status

Disassembly:
sub esp, 0x21c
push ebx
push ebp
push esi
push edi
or edi, 0xffffffff
call fcn.601c7410
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x238]
xor ebx, ebx
cmp eax, ebx
je 0x601c944f
cmp eax, 0xffffffff
je 0x601c92da
mov dword [esp + 0x24], ebx
mov dword [esp + 0x128], ebx
mov ebx, dword [esp + 0x230]
mov ebp, eax
push ebp
mov esi, 1
call sym.nspr4.dll_PR_IntervalToSeconds
add esp, 4
cmp eax, 5
mov dword [esp + 0x10], eax
jle 0x601c90cb
xor esi, esi
mov dword [esp + 0x10], 5
mov dword [esp + 0x14], esi
jmp 0x601c90e2
push eax
call sym.nspr4.dll_PR_SecondsToInterval
mov ecx, ebp
sub ecx, eax
push ecx
call sym.nspr4.dll_PR_IntervalToMicroseconds
add esp, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
cmp eax, 0x40
jae 0x601c90f8
mov dword [esp + eax*4 + 0x28], ebx
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x128]
cmp eax, 0x40
jae 0x601c911a
mov dword [esp + eax*4 + 0x12c], ebx
mov eax, dword [esp + 0x128]
inc eax
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x234]
dec eax
je 0x601c9150
dec eax
je 0x601c9140
dec eax
jne 0x601c9169
lea edx, [esp + 0x10]
lea eax, [esp + 0x128]
push edx
lea ecx, [esp + 0x28]
push eax
push ecx
push 0
jmp 0x601c915e
lea eax, [esp + 0x10]
lea ecx, [esp + 0x24]
push eax
push 0
push ecx
push 0
jmp 0x601c915e
lea eax, [esp + 0x10]
lea ecx, [esp + 0x24]
push eax
push 0
push 0
push ecx
lea edx, [ebx + 1]
push edx
call sub.WSOCK32.dll_select
mov edi, eax
cmp edi, 0xffffffff
je 0x601c93de
test edi, edi
jle 0x601c91ad
cmp dword [esp + 0x234], 3
jne 0x601c91ad
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x128]
push eax
push ebx
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
jne 0x601c91fe
lea ecx, [esp + 0x24]
push ecx
push ebx
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
jne 0x601c927d
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0xdc]
test ah, 0x10
jne 0x601c91c4
test al, 2
jne 0x601c928d
test edi, edi
jne 0x601c945d
test esi, esi
jne 0x601c92bb
mov edx, dword [esp + 0x14]
push edx
call sym.nspr4.dll_PR_MicrosecondsToInterval
mov esi, eax
mov eax, dword [esp + 0x14]
push eax
call sym.nspr4.dll_PR_SecondsToInterval
add esi, eax
add esp, 8
cmp esi, ebp
jae 0x601c92bb
sub ebp, esi
jmp 0x601c90a4
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x18]
push ecx
push edx
push 0x1007
push 0xffff
push ebx
mov dword [esp + 0x30], 4
call sub.WSOCK32.dll_getsockopt
cmp eax, 0xffffffff
jne 0x601c9241
call sub.WSOCK32.dll_WSAGetLastError
push eax
call fcn.601c9ac0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret
mov eax, dword [esp + 0x18]
test eax, eax
je 0x601c9260
push eax
call fcn.601c9a10
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret
push 0
push 0xffffe896
call sym.nspr4.dll_PR_SetError
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x21c
ret
push 0
mov esi, dword [ecx + 0xdc]
push 0xffffe897
and esi, 0xfffffffd
mov dword [ecx + 0xdc], esi
call sym.nspr4.dll_PR_SetError
add esp, 8
or edi, 0xffffffff
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret
push 0
push 0xffffe89a
call sym.nspr4.dll_PR_SetError
add esp, 8
or edi, 0xffffffff
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret
mov ebp, dword [esp + 0x234]
mov esi, dword [esp + 0x230]
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x10], 5
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x128], ecx
cmp eax, 0x40
jae 0x601c9315
mov dword [esp + eax*4 + 0x28], esi
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp ecx, 0x40
jae 0x601c9330
mov dword [esp + ecx*4 + 0x12c], esi
mov eax, dword [esp + 0x128]
inc eax
mov dword [esp + 0x128], eax
mov eax, ebp
dec eax
je 0x601c935e
dec eax
je 0x601c9350
dec eax
jne 0x601c9375
lea eax, [esp + 0x10]
lea ecx, [esp + 0x128]
push eax
lea edx, [esp + 0x28]
push ecx
push edx
push ebx
jmp 0x601c936a
lea ecx, [esp + 0x10]
lea edx, [esp + 0x24]
push ecx
push ebx
push edx
push ebx
jmp 0x601c936a
lea ecx, [esp + 0x10]
lea edx, [esp + 0x24]
push ecx
push ebx
push ebx
push edx
lea eax, [esi + 1]
push eax
call sub.WSOCK32.dll_select
mov edi, eax
cmp edi, 0xffffffff
je 0x601c93de
cmp edi, ebx
jle 0x601c93af
cmp ebp, 3
jne 0x601c93af
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0x128]
push ecx
push esi
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
jne 0x601c93f9
lea edx, [esp + 0x24]
push edx
push esi
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
jne 0x601c927d
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0xdc]
test ah, 0x10
jne 0x601c93c6
test al, 2
jne 0x601c9449
cmp edi, ebx
jne 0x601c945d
mov ecx, dword [esp + 0x128]
mov eax, dword [esp + 0x24]
jmp 0x601c9303
call sub.WSOCK32.dll_WSAGetLastError
push eax
call fcn.601c9ad0
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x18]
push eax
push ecx
push 0x1007
push 0xffff
push esi
mov dword [esp + 0x30], 4
call sub.WSOCK32.dll_getsockopt
cmp eax, 0xffffffff
je 0x601c9225
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x601c9443
push eax
call fcn.601c9a10
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret
push ebx
jmp 0x601c9262
push ebx
jmp 0x601c928f
push ebx
push 0xffffe89a
call sym.nspr4.dll_PR_SetError
add esp, 8
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret