Function at 0x450cc0
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34c
mov eax, dword [0x730b1c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x32c], edx
mov dword [ebp - 0x33c], ecx
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
test ecx, ecx
je 0x450cfd
xor eax, eax
test edx, edx
je 0x450cfd
cmp dword [ecx + eax*8], 0xffffffff
jne 0x450d49
inc eax
cmp eax, edx
jb 0x450cf2
mov eax, ebx
or eax, esi
je 0x450d36
test esi, esi
jg 0x450d20
jl 0x450eb1
test ebx, ebx
jb 0x450eb1
test esi, esi
jl 0x450d2f
jg 0x450d20
cmp ebx, 0xffffffff
jb 0x450d2f
mov ebx, 0xfffffffe
mov dword [ebp - 0x324], 0
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00610840
mov esp, ebp
pop ebp
ret
xor ebx, ebx
xor esi, esi
xor edx, edx
mov dword [ebp - 0x218], ebx
or edi, 0xffffffff
mov dword [ebp - 0x320], esi
xor eax, eax
mov dword [ebp - 0x110], edx
mov dword [ebp - 0x338], edi
mov dword [ebp - 0x324], eax
xor edx, edx
mov dword [ebp - 0x334], edi
lea ecx, [ecx + eax*8]
mov word [ecx + 6], dx
mov edx, dword [ebp - 0x33c]
mov eax, dword [edx + eax*8]
mov edx, dword [ebp - 0x110]
cmp eax, 0xffffffff
je 0x450e91
jae 0x450eb1
movzx ecx, word [ecx + 4]
mov dword [ebp - 0x330], ecx
test ecx, 0x710
je 0x450e91
cmp eax, dword [ebp - 0x334]
mov edi, eax
cmovbe edi, dword [ebp - 0x334]
mov dword [ebp - 0x338], edi
test ecx, 0x300
je 0x450e11
xor ecx, ecx
test ebx, ebx
je 0x450dee
nop dword [eax + eax]
cmp dword [ebp + ecx*4 - 0x214], eax
je 0x450dee
inc ecx
cmp ecx, ebx
jb 0x450de0
cmp ecx, ebx
jne 0x450e0b
cmp ebx, 0x40
jae 0x450e0b
mov dword [ebp + ecx*4 - 0x214], eax
mov ebx, dword [ebp - 0x218]
inc ebx
mov dword [ebp - 0x218], ebx
mov ecx, dword [ebp - 0x330]
test cl, 0x10
je 0x450e51
xor ecx, ecx
test esi, esi
je 0x450e2e
nop dword [eax]
cmp dword [ebp + ecx*4 - 0x31c], eax
je 0x450e2e
inc ecx
cmp ecx, esi
jb 0x450e20
cmp ecx, esi
jne 0x450e4b
cmp esi, 0x40
jae 0x450e4b
mov dword [ebp + ecx*4 - 0x31c], eax
mov esi, dword [ebp - 0x320]
inc esi
mov dword [ebp - 0x320], esi
mov ecx, dword [ebp - 0x330]
test ecx, 0x600
je 0x450e91
xor ecx, ecx
test edx, edx
je 0x450e6e
nop
cmp dword [ebp + ecx*4 - 0x10c], eax
je 0x450e6e
inc ecx
cmp ecx, edx
jb 0x450e60
cmp ecx, edx
jne 0x450e8b
cmp edx, 0x40
jae 0x450e8b
mov dword [ebp + ecx*4 - 0x10c], eax
mov edx, dword [ebp - 0x110]
inc edx
mov dword [ebp - 0x110], edx
mov dword [ebp - 0x338], edi
mov eax, dword [ebp - 0x324]
inc eax
mov dword [ebp - 0x324], eax
cmp eax, dword [ebp - 0x32c]
jae 0x450ed0
mov ecx, dword [ebp - 0x33c]
jmp 0x450d72
push 0x2726
call dword [sym.imp.WS2_32.dll_WSASetLastError]
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00610840
mov esp, ebp
pop ebp
ret
test ebx, ebx
jne 0x450f3b
test esi, esi
jne 0x450f3b
test edx, edx
jne 0x450f3b
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
or eax, ecx
mov dword [ebp - 0x324], ecx
je 0x4510ca
test ecx, ecx
jg 0x450f10
jl 0x450efd
mov eax, dword [ebp + 8]
test eax, eax
jae 0x450f13
push 0x2726
call dword [sym.imp.WS2_32.dll_WSASetLastError]
or eax, 0xffffffff
jmp 0x4510ca
mov eax, dword [ebp + 8]
test ecx, ecx
jl 0x450f2d
jg 0x450f1e
cmp eax, 0xffffffff
jb 0x450f2d
mov eax, 0xfffffffe
mov dword [ebp - 0x324], 0
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
jmp 0x4510ca
lea eax, [ebp - 0x328]
mov dword [ebp - 0x330], eax
mov eax, dword [ebp + 0xc]
test eax, eax
jg 0x450f66
jl 0x450f57
mov ecx, dword [ebp + 8]
test ecx, ecx
jae 0x450f69
mov dword [ebp - 0x330], 0
jmp 0x451086
mov ecx, dword [ebp + 8]
test eax, eax
jl 0x451072
jg 0x450f7b
test ecx, ecx
je 0x451072
mov eax, ecx
mov ebx, 0x1a9fbe77
mul ebx
mov edi, 0x624dd2f
mov dword [ebp - 0x328], eax
mov esi, edx
mov eax, ecx
mul edi
push 0
mov edi, eax
mov dword [ebp - 0x324], edx
mov eax, dword [ebp + 0xc]
mul ebx
push 0x3e8
mov ecx, eax
mov ebx, edx
mov eax, dword [ebp + 0xc]
mov edx, 0x624dd2f
mul edx
add ecx, esi
mov dword [ebp - 0x334], eax
adc ebx, 0
add edi, ecx
mov ecx, dword [ebp - 0x324]
adc ecx, 0
mov dword [ebp - 0x348], edi
mov edi, dword [ebp + 8]
xor eax, eax
add ebx, ecx
mov ecx, dword [ebp - 0x334]
adc eax, eax
add ecx, ebx
mov ebx, dword [ebp + 0xc]
mov esi, ebx
adc edx, eax
mov eax, edi
sub eax, ecx
sbb esi, edx
shrd eax, esi, 1
shr esi, 1
add eax, ecx
adc esi, edx
shrd eax, esi, 9
shr esi, 9
push esi
push eax
mov dword [ebp - 0x324], eax
call fcn.00612660
sub edi, eax
push 0
push 0x3e8
sbb ebx, edx
push ebx
push edi
call fcn.00612660
test esi, esi
jl 0x451058
jg 0x451035
mov ecx, dword [ebp - 0x324]
cmp ecx, 0x7fffffff
jbe 0x45105e
mov ebx, dword [ebp - 0x218]
mov ecx, accept
mov dword [ebp - 0x344], 0
mov dword [ebp - 0x328], ecx
mov dword [ebp - 0x324], eax
jmp 0x451086
mov ecx, dword [ebp - 0x324]
mov ebx, dword [ebp - 0x218]
mov dword [ebp - 0x328], ecx
mov dword [ebp - 0x324], eax
jmp 0x451086
mov dword [ebp - 0x328], 0
mov dword [ebp - 0x324], 0
push dword [ebp - 0x330]
xor eax, eax
lea edx, [ebp - 0x110]
cmp dword [ebp - 0x110], eax
lea ecx, [ebp - 0x320]
cmove edx, eax
cmp dword [ebp - 0x320], eax
push edx
cmove ecx, eax
xor esi, esi
test ebx, ebx
lea eax, [ebp - 0x218]
push ecx
cmove eax, esi
push eax
mov eax, dword [ebp - 0x338]
inc eax
push eax
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jle 0x450d38
mov esi, dword [ebp - 0x33c]
xor ebx, ebx
mov edi, dword [sym.imp.WS2_32.dll___WSAFDIsSet]
add esi, 6
mov eax, dword [ebp - 0x32c]
nop dword [eax]
xor ecx, ecx
mov word [esi], cx
mov ecx, dword [esi - 6]
cmp ecx, 0xffffffff
je 0x45119a
lea eax, [ebp - 0x218]
push eax
push ecx
call edi
test eax, eax
je 0x451139
movzx ecx, word [esi - 2]
test ecx, 0x100
je 0x451123
mov eax, 0x100
or word [esi], ax
movzx eax, word [esi]
movzx eax, ax
test ecx, 0x300
je 0x451139
or eax, 0x300
mov word [esi], ax
lea eax, [ebp - 0x320]
push eax
push dword [esi - 6]
call edi
test eax, eax
je 0x451153
test byte [esi - 2], 0x10
je 0x451153
or word [esi], 0x10
lea eax, [ebp - 0x110]
push eax
push dword [esi - 6]
call edi
test eax, eax
je 0x45118d
movzx ecx, word [esi - 2]
test ecx, 0x200
je 0x451177
mov eax, 0x200
or word [esi], ax
movzx eax, word [esi]
movzx eax, ax
test ecx, 0x400
je 0x45118d
or eax, 0x400
mov word [esi], ax
cmp word [esi], 0
mov eax, dword [ebp - 0x32c]
je 0x45119a
inc ebx
add esi, 8
sub eax, 1
mov dword [ebp - 0x32c], eax
jne 0x4510f0
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00610840
mov esp, ebp
pop ebp
ret