Function at 0x601c2b70
Capabilities:
Get socket status

Disassembly:
jmp 0x601c9d40
mov eax, 0x3038
call fcn.601cad10
push ebx
push ebp
push esi
push edi
call fcn.601c7410
mov ecx, dword [eax + 0xdc]
xor ebp, ebp
test ch, 0x10
mov dword [esp + 0x30], ebp
jne 0x601c9d7d
test cl, 2
je 0x601c9d7d
and ecx, 0xfffffffd
push ebp
mov dword [eax + 0xdc], ecx
push 0xffffe897
jmp 0x601ca237
mov eax, dword [esp + 0x3050]
cmp eax, ebp
jne 0x601c9da5
mov eax, dword [esp + 0x3054]
push eax
call sym.nspr4.dll_PR_Sleep
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3038
ret
mov edi, dword [esp + 0x304c]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
lea eax, [edi + eax*8]
mov dword [esp + 0x1040], ebp
cmp edi, eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x2044], ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], eax
jae 0x601ca021
lea esi, [edi + 6]
jmp 0x601c9de9
mov edi, dword [esp + 0x304c]
mov ecx, dword [esi - 6]
xor ebx, ebx
xor edx, edx
cmp ecx, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], edx
je 0x601c9fdb
mov ax, word [esi - 2]
cmp ax, bp
je 0x601c9fdb
test al, 1
je 0x601c9e2c
mov edx, dword [ecx]
lea ebx, [esp + 0x24]
and al, 0xfd
push ebx
push eax
push ecx
call dword [edx + 0x54]
mov edx, dword [esp + 0x38]
add esp, 0xc
mov ebx, eax
mov ax, word [esi - 2]
test al, 2
je 0x601c9e57
mov ecx, dword [esi - 6]
lea edi, [esp + 0x2c]
and al, 0xfe
push edi
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x54]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x3058]
add esp, 0xc
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
and eax, ebx
test ax, ax
jne 0x601c9fad
mov eax, dword [esp + 0x28]
mov ecx, edx
and ecx, eax
test cx, cx
jne 0x601c9fad
mov edx, dword [esi - 6]
push ebp
push edx
mov word [esi], bp
call sym.nspr4.dll_PR_GetIdentitiesLayer
add esp, 8
cmp eax, ebp
je 0x601c9f83
mov eax, dword [eax + 4]
cmp dword [eax], 0xaaaaaaaa
jne 0x601c9f83
cmp dword [esp + 0x10], ebp
jne 0x601c9fde
mov edi, dword [eax + 0x18]
mov edx, dword [esp + 0x1040]
test bl, 1
je 0x601c9edc
or byte [esi], 1
cmp edx, 0x400
jae 0x601c9ed8
mov dword [esp + edx*4 + 0x1044], edi
mov edx, dword [esp + 0x1040]
inc edx
mov dword [esp + 0x1040], edx
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
test bl, 2
je 0x601c9f01
or byte [esi], 2
cmp ecx, 0x400
jae 0x601c9efd
mov dword [esp + ecx*4 + 0x40], edi
mov ecx, dword [esp + 0x3c]
inc ecx
mov dword [esp + 0x3c], ecx
inc dword [esp + 0x14]
mov al, byte [esp + 0x28]
test al, 1
je 0x601c9f2e
or byte [esi], 4
cmp edx, 0x400
jae 0x601c9f2a
mov dword [esp + edx*4 + 0x1044], edi
mov edx, dword [esp + 0x1040]
inc edx
mov dword [esp + 0x1040], edx
inc dword [esp + 0x18]
test al, 2
je 0x601c9f4e
or byte [esi], 8
cmp ecx, 0x400
jae 0x601c9f4a
mov dword [esp + ecx*4 + 0x40], edi
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x3c], eax
inc dword [esp + 0x14]
test byte [esi - 2], 4
je 0x601c9fde
mov ecx, dword [esp + 0x2044]
cmp ecx, 0x400
jae 0x601c9f7d
mov dword [esp + ecx*4 + 0x2048], edi
mov eax, dword [esp + 0x2044]
inc eax
mov dword [esp + 0x2044], eax
inc dword [esp + 0x1c]
jmp 0x601c9fde
cmp dword [esp + 0x10], ebp
jne 0x601c9f9d
lea ecx, [esi - 6]
mov eax, edi
cmp edi, ecx
jae 0x601c9f9d
mov word [eax + 6], bp
add eax, 8
cmp eax, ecx
jb 0x601c9f92
mov eax, dword [esp + 0x10]
mov word [esi], 0x10
inc eax
mov dword [esp + 0x10], eax
jmp 0x601c9fde
cmp dword [esp + 0x10], ebp
jne 0x601c9fc7
lea ecx, [esi - 6]
mov eax, edi
cmp edi, ecx
jae 0x601c9fc7
mov word [eax + 6], bp
add eax, 8
cmp eax, ecx
jb 0x601c9fbc
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
inc ecx
or edx, eax
mov dword [esp + 0x10], ecx
mov word [esi], dx
jmp 0x601c9fde
mov word [esi], bp
mov ecx, dword [esp + 0x20]
add esi, 8
lea eax, [esi - 6]
cmp eax, ecx
jb 0x601c9de2
mov eax, dword [esp + 0x10]
cmp eax, ebp
jne 0x601ca242
mov ecx, dword [esp + 0x18]
mov eax, 0x400
cmp ecx, eax
jg 0x601ca231
cmp dword [esp + 0x14], eax
jg 0x601ca231
cmp dword [esp + 0x1c], eax
jg 0x601ca231
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
neg esi
mov ebp, dword [esp + 0x1c]
lea ecx, [esp + 0x1040]
sbb esi, esi
lea edx, [esp + 0x3c]
and esi, ecx
lea eax, [esp + 0x2044]
neg edi
sbb edi, edi
and edi, edx
neg ebp
sbb ebp, ebp
and ebp, eax
test esi, esi
jne 0x601ca07a
test edi, edi
jne 0x601ca07a
test ebp, ebp
jne 0x601ca07a
mov ecx, dword [esp + 0x3054]
push ecx
call sym.nspr4.dll_PR_Sleep
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3038
ret
mov ebx, dword [esp + 0x3054]
cmp ebx, 0xffffffff
je 0x601ca0aa
call sym.nspr4.dll_PR_TicksPerSecond
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
push edx
mov dword [esp + 0x38], eax
call sym.nspr4.dll_PR_IntervalToMicroseconds
mov dword [esp + 0x3c], eax
add esp, 4
lea eax, [esp + 0x34]
jmp 0x601ca0ae
mov eax, dword [esp + 0x30]
push eax
push ebp
push edi
push esi
push 0
call sub.WSOCK32.dll_select
mov ebp, eax
test ebp, ebp
jle 0x601ca17c
mov esi, dword [esp + 0x304c]
mov eax, dword [esp + 0x20]
xor ebp, ebp
cmp esi, eax
jae 0x601ca224
add esi, 6
mov eax, dword [esi - 6]
xor edi, edi
test eax, eax
je 0x601ca154
cmp word [esi - 2], di
je 0x601ca154
push edi
push eax
call sym.nspr4.dll_PR_GetIdentitiesLayer
mov edx, dword [eax + 4]
add esp, 8
lea eax, [esp + 0x1040]
mov ebx, dword [edx + 0x18]
push eax
push ebx
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x601ca11f
mov ax, word [esi]
test al, 1
je 0x601ca118
mov edi, 1
test al, 4
je 0x601ca11f
or edi, 2
lea ecx, [esp + 0x3c]
push ecx
push ebx
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x601ca13f
mov ax, word [esi]
test al, 2
je 0x601ca138
or edi, 1
test al, 8
je 0x601ca13f
or edi, 2
lea edx, [esp + 0x2044]
push edx
push ebx
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x601ca154
or edi, 4
test di, di
mov word [esi], di
je 0x601ca15d
inc ebp
mov ecx, dword [esp + 0x20]
add esi, 8
lea eax, [esi - 6]
cmp eax, ecx
jb 0x601ca0db
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x3038
ret
cmp ebp, 0xffffffff
jne 0x601ca224
call sub.WSOCK32.dll_WSAGetLastError
cmp eax, 0x2736
jne 0x601ca21b
mov esi, dword [esp + 0x304c]
mov edi, dword [esp + 0x20]
xor ebp, ebp
cmp esi, edi
mov dword [esp + 0x30], 4
jae 0x601ca224
mov ebx, 0x10
mov eax, dword [esi]
mov word [esi + 6], 0
test eax, eax
je 0x601ca207
cmp word [esi + 4], 0
je 0x601ca207
push 0
push eax
call sym.nspr4.dll_PR_GetIdentitiesLayer
mov eax, dword [eax + 4]
add esp, 8
lea ecx, [esp + 0x30]
lea edx, [esp + 0x24]
push ecx
mov ecx, dword [eax + 0x18]
push edx
push 0x1008
push 0xffff
push ecx
call sub.WSOCK32.dll_getsockopt
cmp eax, 0xffffffff
jne 0x601ca207
call sub.WSOCK32.dll_WSAGetLastError
cmp eax, 0x2736
jne 0x601ca207
mov word [esi + 6], bx
inc ebp
add esi, 8
cmp esi, edi
jb 0x601ca1b3
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x3038
ret
push eax
call fcn.601c9ad0
add esp, 4
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x3038
ret
push ebp
push 0xffffe89d
call sym.nspr4.dll_PR_SetError
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3038
ret