Function at 0x402330
Capabilities:
Check os version
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x423ac8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push esi
push edi
mov esi, ecx
mov eax, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x24], ebx
cmp dword [eax - 8], ebx
jne 0x4023af
lea edi, [esi + 0x64]
push 0x42f8e4
mov ecx, edi
mov dword [0x42f8d4], ebx
call fcn.0041907e
mov ecx, dword [edi]
push ecx
push 0x3ed
mov ecx, esi
call fcn.0041c05c
lea ecx, [esp + 0x2c]
mov dword [0x42b2ac], 1
mov dword [esp + 0x24], 0xffffffff
call fcn.00418f36
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 4
mov eax, dword [esi + 0xa4]
push ebp
cmp eax, ebx
je 0x4023d4
cmp dword [esi + 0x9c], ebx
je 0x4023d4
mov edx, dword [esi + 0x10250]
cmp dword [edx - 8], ebx
jne 0x4023d4
mov ecx, esi
call fcn.00404280
mov eax, dword [0x42f8d4]
cmp eax, 6
jge 0x4023e6
inc eax
mov dword [0x42f8d4], eax
jmp 0x402423
mov eax, dword [esi + 0x64]
lea edi, [esi + 0x64]
push 0xa
mov ecx, edi
mov ebp, dword [eax - 8]
call fcn.00419281
sub ebp, eax
lea ecx, [esp + 0x18]
dec ebp
push ebp
push ecx
mov ecx, edi
call fcn.00416d61
push eax
mov ecx, edi
mov byte [esp + 0x2c], 1
call fcn.0041902f
lea ecx, [esp + 0x18]
mov byte [esp + 0x28], 0
call fcn.00418f36
lea edi, [esi + 0x64]
lea edx, [esp + 0x30]
push edx
mov ecx, edi
call fcn.004191d2
push 0x42b5b4
mov ecx, edi
call fcn.004191ab
mov eax, dword [edi]
mov ecx, esi
push eax
push 0x3ed
call fcn.0041c05c
cmp dword [esi + 0xa4], ebx
je 0x402618
cmp dword [esi + 0x9c], ebx
je 0x402618
mov ecx, dword [esi + 0x10254]
mov eax, dword [esi + 0x10248]
cmp ecx, eax
jge 0x4025d8
lea ecx, [esp + 0x10]
call fcn.00418deb
mov eax, dword [esi + 0x10248]
mov byte [esp + 0x28], 2
cmp eax, 0xc
mov edi, 1
jne 0x4024a3
mov dword [esi + 0x10254], 0xa
xor edi, edi
mov eax, dword [esi + 0x10254]
dec eax
cmp eax, 9
ja case.0x4024af.4
jmp dword [eax*4 + 0x402640]
push 0x42b5a8
lea ecx, [esp + 0x14]
call fcn.0041907e
xor edi, edi
jmp case.0x4024af.4
push str._Error
lea ecx, [esp + 0x14]
call fcn.0041907e
xor edi, edi
jmp case.0x4024af.4
push str.TooLate
jmp 0x402502
push str.PingMax
jmp 0x402502
push str.PingMin
jmp 0x402502
push str.MaxAve.
jmp 0x402502
push str.MinAve.
jmp 0x402502
push 0x42b554
lea ecx, [esp + 0x14]
call fcn.0041907e
push 0x42f8e4
lea ecx, [esp + 0x18]
call fcn.00418fa4
lea edx, [esi + 0x10250]
mov bl, 3
push edx
lea ecx, [esp + 0x18]
mov byte [esp + 0x2c], bl
call fcn.004191d2
lea eax, [esp + 0x10]
lea ecx, [esp + 0x14]
push eax
call fcn.004191d2
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x18]
call fcn.004191d2
test edi, edi
je 0x402598
lea ecx, [esp + 0x18]
call fcn.00418deb
mov edx, dword [esi + 0x1021c]
mov eax, dword [esi + 0x10218]
push edx
push eax
lea ecx, [esp + 0x20]
push str.__ave_.2fms
push ecx
mov byte [esp + 0x38], 4
call fcn.00417084
add esp, 0x10
lea edx, [esp + 0x18]
lea ecx, [esp + 0x14]
push edx
call fcn.004191d2
lea ecx, [esp + 0x18]
mov byte [esp + 0x28], bl
call fcn.00418f36
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00418dfb
mov ecx, esi
call fcn.004045a0
lea ecx, [esp + 0x14]
mov dword [0x42b2ac], 1
mov byte [esp + 0x28], 2
call fcn.00418f36
lea ecx, [esp + 0x10]
mov byte [esp + 0x28], 0
call fcn.00418f36
jmp 0x4025fe
cmp dword [0x42b2ac], ebx
je 0x4025f8
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x42f8e4
call fcn.00418fa4
mov ecx, esi
call fcn.004045a0
mov dword [0x42b2ac], ebx
push 0x42f8e4
lea ecx, [esi + 0x10250]
call fcn.0041907e
mov dword [esi + 0x10254], 0xa
lea ecx, [esp + 0x30]
mov dword [esp + 0x28], 0xffffffff
call fcn.00418f36
mov ecx, dword [esp + 0x20]
pop ebp
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
add esp, 0x1c
ret 4