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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d5b90
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xfc
mov eax, dword [0x692acc]
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
xor ebx, ebx
push 1
push eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 4], ebx
call fcn.00559b40
mov ecx, esi
call fcn.0055a5c0
mov ecx, esi
call fcn.0055ace0
mov ecx, esi
call fcn.00559dc0
mov ecx, dword [esi + 0xc]
cmp dword [ecx + 0x24], 5
jne 0x5586f5
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], 0xc8
jmp 0x5586ff
mov dword [ebp - 0x38], 3
mov dword [ebp - 0x34], ebx
lea edx, [ebp - 0x88]
push edx
call fcn.00592fdc
lea eax, [ebp - 0x44]
push eax
call fcn.00592fdc
add esp, 8
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
cmp dword [esi + 0x38], ebx
je 0x558780
lea ecx, [esi + 0x48]
call fcn.00511c40
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.005599d0
test al, al
mov byte [ebp - 0x28], al
je 0x5587ac
lea edx, [ebp - 0x64]
push edx
call fcn.00592fdc
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 - 0x38]
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 0x5587f2
lea ecx, [esi + 0x48]
call fcn.00511c40
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 0x558837
lea eax, [ebp - 0x44]
push eax
call fcn.00592fdc
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x88]
sub ecx, edx
add esp, 4
cmp ecx, 0x12c
jle 0x558837
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 0x558899
cmp edi, ebx
je 0x558899
mov dword [esi + 0x7f0], ebx
xor edi, edi
cmp edi, dword [esi + 0x140]
jge 0x5588a6
mov eax, edi
mov ecx, dword [esi + 0x1d8]
shl eax, 6
add eax, edi
lea edx, [eax + eax*2]
lea eax, [edi + edx*4]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
cmp dword [ecx + 0x74], ebx
je 0x558896
cmp dword [esi + 0x38], ebx
je 0x558891
lea ecx, [esi + 0x48]
call fcn.00511c40
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.00550510
inc edi
jmp 0x558848
mov ecx, esi
call fcn.00558ee0
inc dword [esi + 0x7f0]
mov edx, dword [ebp - 0x28]
mov ecx, esi
push edx
push ebx
call fcn.00559e90
lea eax, [ebp - 0x7c]
push eax
call fcn.00592fdc
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x44]
sub eax, ecx
add esp, 4
lea ecx, [eax + eax*2]
lea eax, [eax + ecx*8]
mov ecx, dword [ebp - 0x78]
and ecx, 0xffff
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x40]
shl edx, 3
and eax, 0xffff
sub edx, eax
add edx, ecx
cmp edx, 0xfa
jl 0x558974
lea edx, [ebp - 0x44]
push edx
call fcn.00592fdc
add esp, 4
xor ebx, ebx
cmp ebx, dword [esi + 0x140]
jge 0x558974
mov eax, ebx
mov edx, dword [esi + 0x1d8]
shl eax, 6
add eax, ebx
lea eax, [eax + eax*2]
lea eax, [ebx + eax*4]
lea ecx, [eax + eax*2]
mov eax, dword [edx + ecx*8 + 0x74]
test eax, eax
lea edi, [edx + ecx*8]
je 0x558971
mov eax, dword [edi + 0x90]
mov ecx, dword [eax]
cmp dword [ecx], 0
je 0x558971
mov edx, dword [edi + 0x58]
mov eax, dword [edi + 0x5c]
or edx, eax
je 0x558971
lea eax, [edi + 0x2f0]
mov ecx, edi
push eax
call fcn.00516030
lea eax, [edi + 0x2f0]
push eax
mov eax, dword [edi + 0x90]
push 0x13ef
push 0x111
mov ecx, dword [eax]
mov edx, dword [ecx]
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
inc ebx
jmp 0x558901
mov al, byte [0x691c74]
test al, al
jne 0x5589d5
mov eax, dword [esi + 0xc]
mov cl, byte [eax + 0x2e0]
test cl, cl
je 0x5589d5
fld qword [eax + 0x300]
fcomp qword [0x5e3750]
fnstsw ax
test ah, 0x41
je 0x5589ac
mov eax, dword [esi + 0x1d8]
cmp dword [eax + 0xbc], 0x64
jbe 0x5589d5
mov ecx, dword [esi + 0x1d8]
mov edx, dword [ecx]
call dword [edx + 0x18]
lea ecx, [esi + 0x48]
call fcn.00511c40
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 - 0x28]
test al, al
je 0x558beb
mov ecx, dword [esi + 0x15c]
mov eax, dword [esi + 0x158]
test ecx, ecx
jl 0x558beb
jg 0x558a01
cmp eax, 0x400
jbe 0x558beb
mov ecx, esi
call fcn.00559990
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x70]
push eax
mov ebx, edx
call fcn.00592fdc
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 - 0x50], eax
mov dword [ebp - 0x4c], ecx
js 0x558beb
jg 0x558a45
test eax, eax
jbe 0x558beb
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x64]
sub eax, edx
mov edx, dword [ebp - 0x60]
and edx, 0xffff
lea ecx, [eax + eax*2]
lea eax, [eax + ecx*8]
mov ecx, dword [ebp - 0x6c]
and ecx, 0xffff
lea eax, [eax + eax*4]
shl eax, 3
sub eax, edx
add eax, ecx
mov dword [ebp - 0x1c], eax
jne 0x558a7b
mov dword [ebp - 0x1c], 1
fild qword [ebp - 0x50]
fmul dword [0x5e6d6c]
fidiv dword [ebp - 0x1c]
call fcn.00591bf8
mov edi, edx
mov ecx, eax
cmp edi, ebx
jl 0x558beb
jg 0x558aa3
cmp ecx, dword [ebp - 0x30]
jbe 0x558beb
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
sub ecx, edx
cdq
sbb edi, ebx
push edx
push eax
push edi
push ecx
call fcn.00593f90
mov ecx, dword [ebp - 0x30]
push ebx
push ecx
push edx
push eax
call fcn.00593520
mov edi, eax
mov eax, dword [esi + 0x160]
cdq
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x30]
push 0
push 2
push ebx
push edx
mov dword [ebp - 0x18], eax
call fcn.00593520
cmp dword [ebp - 0x14], edx
jg 0x558b01
jl 0x558aec
cmp dword [ebp - 0x18], eax
jae 0x558b01
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov edi, edx
jmp 0x558b2f
mov ecx, dword [ebp - 0x30]
push 0
push 9
push ebx
push ecx
call fcn.00593f90
push 0
push 0xa
push edx
push eax
call fcn.00593520
cmp dword [ebp - 0x14], edx
jg 0x558b2f
jl 0x558b26
cmp dword [ebp - 0x18], eax
jae 0x558b2f
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edi, eax
cmp edi, 0x2ee0
jle 0x558b3e
mov edi, 0x2ee0
jmp 0x558b46
test edi, edi
jle 0x558beb
mov eax, dword [esi + 0x7e8]
cmp eax, 0xffffffff
je 0x558be4
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 0x558b9d
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 - 0x58], edx
lea eax, [edx + edx*2]
lea edx, [edx + eax*8]
lea edx, [edx + edx*4]
shl edx, 3
sub edi, edx
lea eax, [edi + edi*2]
lea edi, [edi + eax*8]
lea eax, [ebp - 0x58]
push eax
lea eax, [esi + 0x3e0]
lea edx, [edi + edi*4]
push ebx
push eax
push ecx
shl edx, 3
push 0
mov dword [ebp - 0x54], edx
call sub.WSOCK32.dll_select
jmp 0x558beb
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, esi
call fcn.00558f70
mov edi, eax
test edi, edi
je 0x558c29
push str.Flagexit_n
mov ecx, esi
call fcn.00559c60
mov eax, dword [esi + 0x38]
test eax, eax
je 0x558c37
lea ecx, [esi + 0x48]
call fcn.00511c40
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.005591f0
xor ebx, ebx
jmp 0x55871d
cmp edi, 0x753c
je 0x558d60
cmp edi, 0xffffffff
je 0x558d60
mov ecx, dword [esi + 0x15c]
mov edx, dword [esi + 0x158]
mov eax, dword [0x692ad0]
push ecx
push edx
lea ecx, [ebp - 0x108]
push eax
push ecx
call fcn.005920ea
add esp, 0x10
lea edx, [ebp - 0x108]
mov ecx, esi
push 1
push edx
call fcn.00559b40
mov edx, dword [esi + 0x158]
mov eax, dword [esi + 0x15c]
mov ecx, dword [esi + 0x150]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x154]
cmp edx, ecx
mov dword [ebp - 0x18], edx
jne 0x558ca8
mov edx, dword [ebp - 0x14]
cmp edx, eax
je 0x558cd8
mov edx, ecx
or edx, eax
je 0x558cd8
cmp dword [ebp - 0x14], eax
jl 0x558dcd
jg 0x558cc2
cmp dword [ebp - 0x18], ecx
jbe 0x558dcd
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 ebx, ebx
cmp ebx, dword [esi + 0x140]
jge 0x558d4d
mov eax, ebx
shl eax, 6
add eax, ebx
lea ecx, [eax + eax*2]
lea eax, [ebx + ecx*4]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x1d8]
lea edi, [eax + edx*8]
mov eax, dword [eax + edx*8 + 0x74]
test eax, eax
je 0x558d4a
mov ecx, dword [edi + 0x90]
mov edx, dword [ecx]
cmp dword [edx], 0
je 0x558d4a
mov eax, dword [edi + 0x58]
mov ecx, dword [edi + 0x5c]
or eax, ecx
je 0x558d4a
lea eax, [edi + 0x2f0]
mov ecx, edi
push eax
call fcn.00516030
mov ecx, dword [edi + 0x90]
lea eax, [edi + 0x2f0]
push eax
push 0x13ef
mov edx, dword [ecx]
push 0x111
mov eax, dword [edx]
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
inc ebx
jmp 0x558cda
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 ecx, dword [esi + 0x15c]
mov edx, dword [esi + 0x158]
mov eax, dword [0x692ac4]
push ecx
push edx
lea ecx, [ebp - 0x108]
push eax
push ecx
call fcn.005920ea
add esp, 0x10
lea edx, [ebp - 0x108]
mov ecx, esi
push 1
push edx
call fcn.00559b40
mov esi, dword [esi + 0xf8]
test esi, esi
je 0x558da7
cmp edi, 0x753c
mov eax, esi
je 0x558dd0
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