Function at 0x54bfe0
Capabilities:
Get number of processors
Get socket status

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c82a0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xfc
mov eax, dword [0x6834fc]
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
xor ebx, ebx
push 1
push eax
mov dword [ebp - 0x40], esi
mov dword [ebp - 4], ebx
call fcn.0054d430
mov ecx, esi
call fcn.0054de80
mov ecx, esi
call fcn.0054e590
mov ecx, esi
call fcn.0054d690
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x58], 3
push ecx
mov dword [ebp - 0x54], ebx
call fcn.005860ec
lea edx, [ebp - 0x3c]
push edx
call fcn.005860ec
add esp, 8
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
cmp dword [esi + 0x38], ebx
je 0x54c0bb
lea ecx, [esi + 0x48]
call fcn.0050c900
mov ecx, dword [esi + 0x150]
mov edx, dword [esi + 0x154]
lea eax, [esi + 0x20]
mov dword [esi + 0x30], ebx
push eax
push 0x1471
mov dword [eax], ecx
mov ecx, dword [esi + 0x158]
mov dword [eax + 4], edx
mov edx, dword [esi + 0x15c]
mov eax, dword [esi + 0x10]
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], edx
push 0x111
mov ecx, dword [eax]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.0054d2c0
test al, al
mov byte [ebp - 0x30], al
je 0x54c0e7
lea edx, [ebp - 0x64]
push edx
call fcn.005860ec
mov eax, dword [esi + 0x158]
mov ecx, dword [esi + 0x15c]
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], ecx
lea edx, [ebp - 0x58]
lea eax, [esi + 0x5e4]
push edx
lea ecx, [esi + 0x3e0]
push eax
lea edx, [esi + 0x1dc]
push ecx
push edx
push ebx
call sub.WSOCK32.dll_select
mov edi, eax
mov eax, dword [esi + 0x38]
cmp eax, ebx
je 0x54c12d
lea ecx, [esi + 0x48]
call fcn.0050c900
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x158]
mov ecx, dword [esi + 0x15c]
or eax, ecx
jne 0x54c172
lea eax, [ebp - 0x3c]
push eax
call fcn.005860ec
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x88]
sub ecx, edx
add esp, 4
cmp ecx, 0x12c
jle 0x54c172
mov eax, 0x7532
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0xffffffff
je 0x54c1d4
cmp edi, ebx
je 0x54c1d4
mov dword [esi + 0x7f0], ebx
xor edi, edi
cmp edi, dword [esi + 0x140]
jge 0x54c1e1
mov eax, edi
shl eax, 6
sub eax, edi
lea edx, [eax + eax*8]
mov eax, dword [esi + 0x1d8]
shl edx, 5
lea ecx, [edx + eax]
mov eax, dword [edx + eax + 0x54]
cmp eax, ebx
je 0x54c1d1
cmp dword [esi + 0x38], ebx
je 0x54c1cc
lea ecx, [esi + 0x48]
call fcn.0050c900
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.005453d0
inc edi
jmp 0x54c183
mov ecx, esi
call fcn.0054c800
inc dword [esi + 0x7f0]
mov ecx, dword [ebp - 0x30]
push ecx
push ebx
mov ecx, esi
call fcn.0054d760
lea edx, [ebp - 0x7c]
push edx
call fcn.005860ec
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x3c]
sub eax, edx
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x78]
and ecx, 0xffff
lea eax, [eax + eax*4]
and edx, 0xffff
add esp, 4
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
sub eax, ecx
add eax, edx
cmp eax, 0xfa
jl 0x54c2a5
lea eax, [ebp - 0x3c]
push eax
call fcn.005860ec
add esp, 4
xor ecx, ecx
mov eax, dword [esi + 0x140]
mov dword [ebp - 0x14], ecx
cmp ecx, eax
jge 0x54c2a5
mov eax, ecx
shl eax, 6
sub eax, ecx
lea edx, [eax + eax*8]
mov eax, dword [esi + 0x1d8]
shl edx, 5
lea edi, [edx + eax]
mov eax, dword [edx + eax + 0x54]
cmp eax, ebx
je 0x54c2a2
mov edx, dword [edi + 0x70]
mov eax, dword [edx]
cmp dword [eax], ebx
je 0x54c2a2
mov edx, dword [edi + 0x38]
mov eax, dword [edi + 0x3c]
or edx, eax
je 0x54c2a2
lea ebx, [edi + 0x2d0]
mov ecx, edi
push ebx
call fcn.0050ffa0
mov eax, dword [edi + 0x70]
push ebx
push 0x13ef
push 0x111
mov ecx, dword [eax]
mov edx, dword [ecx]
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [ebp - 0x14]
xor ebx, ebx
inc ecx
jmp 0x54c238
mov al, byte [0x6826c4]
test al, al
jne 0x54c306
mov eax, dword [esi + 0xc]
mov cl, byte [eax + 0x2c0]
test cl, cl
je 0x54c306
fld qword [eax + 0x2e0]
fcomp qword [0x5d5758]
fnstsw ax
test ah, 0x41
je 0x54c2dd
mov eax, dword [esi + 0x1d8]
cmp dword [eax + 0x9c], 0x64
jbe 0x54c306
mov ecx, dword [esi + 0x1d8]
mov edx, dword [ecx]
call dword [edx + 0x18]
lea ecx, [esi + 0x48]
call fcn.0050c900
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [ebp - 0x30]
test al, al
je 0x54c51c
mov ecx, dword [esi + 0x15c]
mov eax, dword [esi + 0x158]
test ecx, ecx
jl 0x54c51c
jg 0x54c332
cmp eax, 0x400
jbe 0x54c51c
mov ecx, esi
call fcn.0054d280
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x70]
push eax
mov ebx, edx
call fcn.005860ec
mov eax, dword [esi + 0x158]
mov edi, dword [ebp - 0x24]
mov ecx, dword [esi + 0x15c]
mov edx, dword [ebp - 0x20]
add esp, 4
sub eax, edi
sbb ecx, edx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ecx
js 0x54c51c
jg 0x54c376
test eax, eax
jbe 0x54c51c
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x64]
sub eax, edx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x6c]
and ecx, 0xffff
lea eax, [eax + eax*4]
and edx, 0xffff
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
sub eax, ecx
add eax, edx
mov dword [ebp - 0x14], eax
jne 0x54c3ac
mov dword [ebp - 0x14], 1
fild qword [ebp - 0x48]
fmul dword [0x5d8d8c]
fidiv dword [ebp - 0x14]
call fcn.00584d08
mov edi, edx
mov ecx, eax
cmp edi, ebx
jl 0x54c51c
jg 0x54c3d4
cmp ecx, dword [ebp - 0x2c]
jbe 0x54c51c
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
sub ecx, edx
cdq
sbb edi, ebx
push edx
push eax
push edi
push ecx
call fcn.005870a0
mov ecx, dword [ebp - 0x2c]
push ebx
push ecx
push edx
push eax
call fcn.00586630
mov edi, eax
mov eax, dword [esi + 0x160]
cdq
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x2c]
push 0
push 2
push ebx
push edx
mov dword [ebp - 0x1c], eax
call fcn.00586630
cmp dword [ebp - 0x18], edx
jg 0x54c432
jl 0x54c41d
cmp dword [ebp - 0x1c], eax
jae 0x54c432
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov edi, edx
jmp 0x54c460
mov ecx, dword [ebp - 0x2c]
push 0
push 9
push ebx
push ecx
call fcn.005870a0
push 0
push 0xa
push edx
push eax
call fcn.00586630
cmp dword [ebp - 0x18], edx
jg 0x54c460
jl 0x54c457
cmp dword [ebp - 0x1c], eax
jae 0x54c460
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edi, eax
cmp edi, 0x2ee0
jle 0x54c46f
mov edi, 0x2ee0
jmp 0x54c477
test edi, edi
jle 0x54c51c
mov eax, dword [esi + 0x7e8]
cmp eax, 0xffffffff
je 0x54c515
lea ecx, [esi + 0x1dc]
lea ebx, [esi + 0x5e4]
mov dword [esi + 0x3e0], 0
mov dword [ecx], 0
mov dword [ebx], 0
mov dword [esi + 0x1e0], eax
mov eax, dword [ecx]
inc eax
mov dword [ecx], eax
mov eax, dword [ebx]
cmp eax, 0x80
jae 0x54c4ce
mov edx, dword [esi + 0x7e8]
mov dword [esi + eax*4 + 0x5e8], edx
mov eax, dword [ebx]
inc eax
mov dword [ebx], eax
mov eax, 0x10624dd3
imul edi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x50], edx
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
shl edx, 3
sub edi, edx
lea edx, [ebp - 0x50]
push edx
push ebx
lea eax, [edi + edi*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [ebp - 0x4c], eax
lea eax, [esi + 0x3e0]
push eax
push ecx
push 0
call sub.WSOCK32.dll_select
jmp 0x54c51c
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, esi
call fcn.0054c880
mov edi, eax
test edi, edi
je 0x54c55a
push str.Flagexit_n
mov ecx, esi
call fcn.0054d550
mov eax, dword [esi + 0x38]
test eax, eax
je 0x54c568
lea ecx, [esi + 0x48]
call fcn.0050c900
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.0054caf0
xor ebx, ebx
jmp 0x54c058
cmp edi, 0x753c
je 0x54c68b
cmp edi, 0xffffffff
je 0x54c68b
mov eax, dword [esi + 0x15c]
mov ecx, dword [esi + 0x158]
mov edx, dword [0x683500]
push eax
push ecx
lea eax, [ebp - 0x108]
push edx
push eax
call fcn.005851fa
add esp, 0x10
lea ecx, [ebp - 0x108]
push 1
push ecx
mov ecx, esi
call fcn.0054d430
mov edx, dword [esi + 0x158]
mov eax, dword [esi + 0x15c]
mov ecx, dword [esi + 0x150]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x154]
cmp edx, ecx
mov dword [ebp - 0x1c], edx
jne 0x54c5da
mov edx, dword [ebp - 0x18]
cmp edx, eax
je 0x54c60a
mov edx, ecx
or edx, eax
je 0x54c60a
cmp dword [ebp - 0x18], eax
jl 0x54c6f9
jg 0x54c5f4
cmp dword [ebp - 0x1c], ecx
jbe 0x54c6f9
mov eax, 0x7570
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
mov eax, dword [esi + 0x140]
mov dword [ebp - 0x14], ecx
cmp ecx, eax
jge 0x54c678
mov eax, ecx
shl eax, 6
sub eax, ecx
lea edx, [eax + eax*8]
mov eax, dword [esi + 0x1d8]
shl edx, 5
lea edi, [edx + eax]
mov eax, dword [edx + eax + 0x54]
test eax, eax
je 0x54c675
mov edx, dword [edi + 0x70]
mov eax, dword [edx]
cmp dword [eax], 0
je 0x54c675
mov edx, dword [edi + 0x38]
mov eax, dword [edi + 0x3c]
or edx, eax
je 0x54c675
lea ebx, [edi + 0x2d0]
mov ecx, edi
push ebx
call fcn.0050ffa0
mov eax, dword [edi + 0x70]
push ebx
push 0x13ef
push 0x111
mov ecx, dword [eax]
mov edx, dword [ecx]
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [ebp - 0x14]
inc ecx
jmp 0x54c60c
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x15c]
mov ecx, dword [esi + 0x158]
mov edx, dword [0x6834f4]
push eax
push ecx
lea eax, [ebp - 0x108]
push edx
push eax
call fcn.005851fa
add esp, 0x10
lea ecx, [ebp - 0x108]
push 1
push ecx
mov ecx, esi
call fcn.0054d430
mov esi, dword [esi + 0xf8]
test esi, esi
je 0x54c6d3
cmp edi, 0x753c
mov eax, esi
je 0x54c6fc
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret