Function at 0x445f10
Capabilities:
Get socket status

Disassembly:
sub esp, 0x330
mov eax, dword [0x48d030]
xor eax, esp
mov dword [esp + 0x32c], eax
mov ecx, dword [esp + 0x334]
mov edx, dword [esp + 0x33c]
mov dword [esp + 0x14], ecx
push ebx
mov ebx, dword [esp + 0x344]
push edi
test ecx, ecx
je 0x445f5b
mov edi, dword [esp + 0x340]
xor eax, eax
test edi, edi
je 0x445f5b
cmp dword [ecx + eax*8], 0xffffffff
jne 0x445f9c
inc eax
cmp eax, edi
jb 0x445f50
mov eax, edx
or eax, ebx
je 0x4463c6
test ebx, ebx
jg 0x4463b2
jl 0x445f77
test edx, edx
jae 0x4463a7
push 0x2726
call dword [sym.imp.WS2_32.dll_WSASetLastError]
pop edi
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x32c]
xor ecx, esp
call fcn.0046f931
add esp, 0x330
ret
push ebp
push esi
xor ebx, ebx
xor ebp, ebp
xor edx, edx
mov dword [esp + 0x30], ebx
or esi, 0xffffffff
mov dword [esp + 0x134], ebp
xor eax, eax
mov dword [esp + 0x238], edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], eax
lea ecx, [ecx + eax*8]
xor edi, edi
add ecx, 4
mov dword [esp + 0x10], ecx
mov word [ecx + 2], di
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x348]
mov ecx, dword [ecx + eax*8]
cmp ecx, 0xffffffff
je 0x4460c6
jae 0x4460d8
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov dword [esp + 0x10], eax
test eax, 0x710
je 0x4460c2
cmp ecx, esi
mov eax, ecx
cmovbe eax, esi
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], esi
test eax, 0x300
je 0x446049
xor eax, eax
test ebx, ebx
je 0x44602f
cmp dword [esp + eax*4 + 0x34], ecx
je 0x44602f
inc eax
cmp eax, ebx
jb 0x446024
cmp eax, ebx
jne 0x446045
cmp ebx, 0x40
jae 0x446045
mov dword [esp + eax*4 + 0x34], ecx
mov ebx, dword [esp + 0x30]
inc ebx
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x10]
test al, 0x10
je 0x446084
xor eax, eax
test ebp, ebp
je 0x446061
cmp dword [esp + eax*4 + 0x138], ecx
je 0x446061
inc eax
cmp eax, ebp
jb 0x446053
cmp eax, ebp
jne 0x446080
cmp ebp, 0x40
jae 0x446080
mov dword [esp + eax*4 + 0x138], ecx
mov ebp, dword [esp + 0x134]
inc ebp
mov dword [esp + 0x134], ebp
mov eax, dword [esp + 0x10]
test eax, 0x600
je 0x4460c2
xor eax, eax
test edx, edx
je 0x44609f
cmp dword [esp + eax*4 + 0x23c], ecx
je 0x44609f
inc eax
cmp eax, edx
jb 0x446091
cmp eax, edx
jne 0x4460be
cmp edx, 0x40
jae 0x4460be
mov dword [esp + eax*4 + 0x23c], ecx
mov edx, dword [esp + 0x238]
inc edx
mov dword [esp + 0x238], edx
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, edi
jae 0x4460ff
mov ecx, dword [esp + 0x24]
jmp 0x445fc3
push 0x2726
call dword [sym.imp.WS2_32.dll_WSASetLastError]
or eax, 0xffffffff
pop esi
pop ebp
pop edi
pop ebx
mov ecx, dword [esp + 0x32c]
xor ecx, esp
call fcn.0046f931
add esp, 0x330
ret
test ebx, ebx
jne 0x446172
test ebp, ebp
jne 0x446172
test edx, edx
jne 0x446172
mov eax, dword [esp + 0x34c]
mov ecx, dword [esp + 0x350]
or eax, ecx
je 0x4462d8
test ecx, ecx
jg 0x446145
jl 0x446132
mov eax, dword [esp + 0x34c]
test eax, eax
jae 0x44614c
push 0x2726
call dword [sym.imp.WS2_32.dll_WSASetLastError]
or eax, 0xffffffff
jmp 0x4462d8
mov eax, dword [esp + 0x34c]
test ecx, ecx
jl 0x446164
jg 0x446157
cmp eax, 0xffffffff
jb 0x446164
mov eax, 0xfffffffe
mov dword [esp + 0x1c], 0
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
jmp 0x4462d8
lea eax, [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x350]
test eax, eax
jg 0x44619f
jl 0x446192
mov ecx, dword [esp + 0x34c]
test ecx, ecx
jae 0x4461a6
mov dword [esp + 0x18], 0
jmp 0x446296
mov ecx, dword [esp + 0x34c]
test eax, eax
jl 0x446286
jg 0x4461b8
test ecx, ecx
je 0x446286
mov eax, ecx
mov ebx, 0x1a9fbe77
mul ebx
mov ebp, 0x624dd2f
mov dword [esp + 0x10], eax
mov esi, edx
mov eax, ecx
mul ebp
push 0
mov edi, eax
mov ebp, edx
mov eax, dword [esp + 0x354]
mul ebx
push 0x3e8
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0x358]
mov edx, 0x624dd2f
mul edx
add ecx, esi
mov dword [esp + 0x18], eax
adc ebx, 0
add edi, ecx
mov ecx, dword [esp + 0x18]
adc ebp, 0
mov dword [esp + 0x30], edi
xor eax, eax
add ebx, ebp
mov ebp, dword [esp + 0x358]
mov esi, ebp
adc eax, eax
add ecx, ebx
mov ebx, dword [esp + 0x354]
mov edi, ebx
adc edx, eax
sub edi, ecx
sbb esi, edx
shrd edi, esi, 1
shr esi, 1
add edi, ecx
adc esi, edx
shrd edi, esi, 9
shr esi, 9
push esi
push edi
call fcn.00470480
sub ebx, eax
push 0
push 0x3e8
sbb ebp, edx
push ebp
push ebx
call fcn.00470480
test esi, esi
jl 0x446271
jg 0x446264
cmp edi, 0x7fffffff
jbe 0x446271
mov edi, bind
mov dword [esp + 0x2c], 0
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x348]
mov dword [esp + 0x14], eax
jmp 0x446296
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
push dword [esp + 0x18]
xor eax, eax
lea edx, [esp + 0x23c]
cmp dword [esp + 0x23c], eax
lea ecx, [esp + 0x138]
cmove edx, eax
cmp dword [esp + 0x138], eax
push edx
cmove ecx, eax
xor esi, esi
test ebx, ebx
lea eax, [esp + 0x38]
push ecx
cmove eax, esi
push eax
mov eax, dword [esp + 0x30]
inc eax
push eax
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jle 0x4460e6
mov esi, dword [esp + 0x24]
xor ebx, ebx
add esi, 6
mov ebp, 0x200
nop
xor eax, eax
mov word [esi], ax
mov eax, dword [esi - 6]
cmp eax, 0xffffffff
je 0x446394
lea ecx, [esp + 0x30]
push ecx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x44633a
movzx ecx, word [esi - 2]
test ecx, 0x100
je 0x446324
mov eax, 0x100
or word [esi], ax
movzx eax, word [esi]
movzx eax, ax
test ecx, 0x300
je 0x44633a
or eax, 0x300
mov word [esi], ax
lea eax, [esp + 0x134]
push eax
push dword [esi - 6]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x446358
test byte [esi - 2], 0x10
je 0x446358
or word [esi], 0x10
lea eax, [esp + 0x238]
push eax
push dword [esi - 6]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x44638d
movzx ecx, word [esi - 2]
test ebp, ecx
je 0x446377
or word [esi], bp
movzx eax, word [esi]
movzx eax, ax
test ecx, 0x400
je 0x44638d
or eax, 0x400
mov word [esi], ax
cmp word [esi], 0
je 0x446394
inc ebx
add esi, 8
sub edi, 1
jne 0x4462f0
mov eax, ebx
jmp 0x4460e6
test ebx, ebx
jl 0x4463bf
jg 0x4463b2
cmp edx, 0xffffffff
jb 0x4463bf
mov edx, 0xfffffffe
mov dword [esp + 0x14], 0
push edx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x334]
xor eax, eax
pop edi
pop ebx
xor ecx, esp
call fcn.0046f931
add esp, 0x330
ret