Function at 0x4f3940
Capabilities:
Get socket status

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffff480
mov edi, edx
mov dword [esp], eax
call fcn.004e7b64
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp + 8], 0x186a0
xor eax, eax
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 0x10], eax
xor esi, esi
jmp 0x4f3be1
lea eax, [esp + 0x28]
call fcn.004ec284
lea eax, [esp + 0x12c]
call fcn.004ec284
lea eax, [esp + 0x230]
call fcn.004ec284
lea eax, [esp + 0x334]
call fcn.004ee394
lea eax, [esp + 0x5f8]
call fcn.004ee394
lea eax, [esp + 0x8bc]
call fcn.004ee394
mov ebx, dword [esp]
test ebx, ebx
je 0x4f3b04
cmp dword [ebx + 0x44], 0
jne 0x4f39ea
mov ebx, dword [ebx + 0x5c]
jmp 0x4f3afc
mov eax, dword [ebx + 0x44]
xor edx, edx
mov dword [eax + 0x4034], edx
xor edx, edx
mov dword [eax + 0x4038], edx
xor edx, edx
mov dword [eax + 0x403c], edx
cmp dword [eax + 4], 0xffffffff
jne 0x4f3a13
mov ebx, dword [ebx + 0x5c]
jmp 0x4f3afc
mov al, byte [ebx + 0x3c]
cmp al, 2
je 0x4f3a1e
cmp al, 4
jne 0x4f3a4f
mov eax, dword [ebx + 0x44]
mov edx, dword [eax]
test edx, edx
jne 0x4f3a35
lea edx, [esp + 0x28]
mov eax, dword [eax + 4]
call fcn.004ec274
jmp 0x4f3a4f
dec edx
jne 0x4f3a4f
mov dx, word [eax + 0xc]
push edx
mov ecx, dword [eax + 8]
lea edx, [esp + 0x338]
mov eax, dword [eax + 4]
call fcn.004ee39c
cmp byte [ebx + 0x3c], 1
je 0x4f3a5b
cmp byte [ebx + 0x3e], 0xc
jne 0x4f3ac5
cmp dword [ebx + 0x4c], 0
jne 0x4f3a65
cmp dword [ebx + 0x48], 0
je 0x4f3a83
mov eax, dword [ebx + 0x48]
mov edx, dword [ebx + 0x4c]
add eax, 0x28
adc edx, 0
cmp edx, dword [esp + 0x1c]
jne 0x4f3a81
cmp eax, dword [esp + 0x18]
jae 0x4f3ac5
jmp 0x4f3a83
jge 0x4f3ac5
mov dword [ebx + 0x48], 0
mov dword [ebx + 0x4c], 0
mov eax, dword [ebx + 0x44]
mov edx, dword [eax]
test edx, edx
jne 0x4f3aab
lea edx, [esp + 0x12c]
mov eax, dword [eax + 4]
call fcn.004ec274
jmp 0x4f3ac5
dec edx
jne 0x4f3ac5
mov dx, word [eax + 0xc]
push edx
mov ecx, dword [eax + 8]
lea edx, [esp + 0x5fc]
mov eax, dword [eax + 4]
call fcn.004ee39c
mov eax, dword [ebx + 0x44]
mov edx, dword [eax]
test edx, edx
jne 0x4f3adf
lea edx, [esp + 0x230]
mov eax, dword [eax + 4]
call fcn.004ec274
jmp 0x4f3af9
dec edx
jne 0x4f3af9
mov dx, word [eax + 0xc]
push edx
mov ecx, dword [eax + 8]
lea edx, [esp + 0x8c0]
mov eax, dword [eax + 4]
call fcn.004ee39c
mov ebx, dword [ebx + 0x5c]
test ebx, ebx
jne 0x4f39dc
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x12c]
add eax, dword [esp + 0x230]
test eax, eax
jle 0x4f3b3f
lea eax, [esp + 4]
push eax
lea eax, [esp + 0x234]
push eax
lea eax, [esp + 0x134]
push eax
lea eax, [esp + 0x34]
push eax
push 0x40
call sub.wsock32.dll_select
mov esi, eax
jmp 0x4f3b48
push 0x64
call sub.kernel32.dll_Sleep
xor esi, esi
test esi, esi
jl 0x4f3c19
mov eax, dword [esp + 0x334]
add eax, dword [esp + 0x5f8]
add eax, dword [esp + 0x8bc]
test eax, eax
jle 0x4f3b90
lea eax, [esp + 0x8bc]
push eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x600]
lea edx, [esp + 0x33c]
mov eax, 0x40
call fcn.004edeb0
jmp 0x4f3b92
xor eax, eax
test eax, eax
jge 0x4f3b9b
or esi, 0xffffffff
jmp 0x4f3c19
add esi, eax
test esi, esi
jg 0x4f3c19
call fcn.004e7b64
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
sub eax, dword [esp + 0x18]
sbb edx, dword [esp + 0x1c]
push edx
push eax
mov eax, edi
cdq
cmp edx, dword [esp + 4]
jne 0x4f3bd2
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4f3bda
jmp 0x4f3bd6
pop edx
pop eax
jge 0x4f3bda
test edi, edi
jne 0x4f3be1
push 0x64
call sub.kernel32.dll_Sleep
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
sub eax, dword [esp + 0x18]
sbb edx, dword [esp + 0x1c]
push edx
push eax
mov eax, edi
cdq
cmp edx, dword [esp + 4]
jne 0x4f3c09
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4f398c
jmp 0x4f3c11
pop edx
pop eax
jge 0x4f398c
test edi, edi
je 0x4f398c
test esi, esi
jle 0x4f3d88
mov ebx, dword [esp]
test ebx, ebx
je 0x4f3d88
cmp dword [ebx + 0x44], 0
jne 0x4f3c3a
mov ebx, dword [ebx + 0x5c]
jmp 0x4f3d80
mov eax, dword [ebx + 0x44]
cmp dword [eax + 4], 0xffffffff
jne 0x4f3c4b
mov ebx, dword [ebx + 0x5c]
jmp 0x4f3d80
mov al, byte [ebx + 0x3c]
cmp al, 2
je 0x4f3c56
cmp al, 4
jne 0x4f3ca9
mov edi, dword [ebx + 0x44]
mov eax, dword [edi]
test eax, eax
jne 0x4f3c7e
lea edx, [esp + 0x28]
mov eax, dword [edi + 4]
call fcn.004ec25c
test al, al
je 0x4f3ca9
mov eax, dword [ebx + 0x44]
mov dword [eax + 0x4034], 1
jmp 0x4f3ca9
dec eax
jne 0x4f3ca9
mov ax, word [edi + 0xc]
push eax
mov ecx, dword [edi + 8]
lea edx, [esp + 0x338]
mov eax, dword [edi + 4]
call fcn.004ee3d4
test al, al
je 0x4f3ca9
mov eax, dword [ebx + 0x44]
mov dword [eax + 0x4034], 1
cmp byte [ebx + 0x3c], 1
je 0x4f3cb5
cmp byte [ebx + 0x3e], 0xc
jne 0x4f3d27
cmp dword [ebx + 0x4c], 0
jne 0x4f3d27
cmp dword [ebx + 0x48], 0
jne 0x4f3d27
mov edi, dword [ebx + 0x44]
mov eax, dword [edi]
test eax, eax
jne 0x4f3cf4
lea edx, [esp + 0x12c]
mov eax, dword [edi + 4]
call fcn.004ec25c
test al, al
je 0x4f3d27
mov eax, dword [ebx + 0x44]
mov dword [eax + 0x4038], 1
xor edx, edx
mov dword [eax + 0x4030], edx
jmp 0x4f3d27
dec eax
jne 0x4f3d27
mov ax, word [edi + 0xc]
push eax
mov ecx, dword [edi + 8]
lea edx, [esp + 0x5fc]
mov eax, dword [edi + 4]
call fcn.004ee3d4
test al, al
je 0x4f3d27
mov eax, dword [ebx + 0x44]
mov dword [eax + 0x4038], 1
xor edx, edx
mov dword [eax + 0x4030], edx
mov edi, dword [ebx + 0x44]
mov eax, dword [edi]
test eax, eax
jne 0x4f3d52
lea edx, [esp + 0x230]
mov eax, dword [edi + 4]
call fcn.004ec25c
test al, al
je 0x4f3d7d
mov eax, dword [ebx + 0x44]
mov dword [eax + 0x403c], 1
jmp 0x4f3d7d
dec eax
jne 0x4f3d7d
mov ax, word [edi + 0xc]
push eax
mov ecx, dword [edi + 8]
lea edx, [esp + 0x8c0]
mov eax, dword [edi + 4]
call fcn.004ee3d4
test al, al
je 0x4f3d7d
mov eax, dword [ebx + 0x44]
mov dword [eax + 0x403c], 1
mov ebx, dword [ebx + 0x5c]
test ebx, ebx
jne 0x4f3c2c
mov eax, esi
add esp, 0xb80
pop edi
pop esi
pop ebx
ret