Function at 0x40a0b0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4440c8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x38
push ebx
push ebp
mov ebp, ecx
push esi
push edi
lea esi, [ebp + 0x1a4]
mov ecx, esi
mov dword [esp + 0x20], esi
call fcn.00406400
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x30], ebx
call fcn.00406440
mov edi, eax
push 0x400
mov ecx, ebp
mov dword [esp + 0x44], edi
mov byte [0x46293d], 0
call fcn.00429ae1
mov ecx, eax
call fcn.00429dc4
test ebx, ebx
je 0x40abfe
mov eax, dword [0x45a3a8]
mov dword [esp + 0x18], eax
mov al, byte [0x46293c]
mov dword [esp + 0x50], 0
test al, al
je 0x40abed
mov ecx, ebp
call fcn.004096e0
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x1c], eax
push ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x40abed
mov esi, ebx
mov byte [esp + 0x16], 0
shl esi, 5
mov al, byte [esi + 0x45e6b7]
cmp al, 0x13
jb 0x40a172
cmp al, 0x52
ja 0x40a172
mov byte [esp + 0x16], 1
cmp edi, 1
je 0x40a74e
cmp edi, 2
je 0x40a74e
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x18]
push edx
call fcn.00427799
lea eax, [edi - 3]
cmp eax, 0xa
ja case.default.0x40a19e
jmp dword [eax*4 + 0x40ac14]
mov ebp, dword [esp + 0x18]
mov bl, 1
mov eax, dword [ebp - 8]
cmp eax, 1
jle 0x40a393
mov cl, byte [ebp]
cmp cl, 0x64
je 0x40a1c8
cmp cl, 0x44
jne 0x40a2dd
cmp eax, 4
jl 0x40a2dd
mov dl, byte [ebp + 1]
cmp dl, 0x30
jl 0x40a2dd
cmp dl, 0x37
jg 0x40a2dd
mov cl, byte [ebp + 2]
cmp cl, 0x30
jl 0x40a2dd
cmp cl, 0x37
jg 0x40a2dd
mov al, byte [ebp + 3]
cmp al, 0x30
jl 0x40a2dd
cmp al, 0x37
jg 0x40a2dd
sub al, 0x30
sub dl, 0x30
shl cl, 4
or al, cl
push edx
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x34]
push eax
call fcn.004094c0
add esp, 8
cmp edi, 4
mov al, 8
jne 0x40a233
mov al, 0xa
movsx ecx, al
mov dl, byte [0x462918]
lea ebp, [ecx + esi]
mov cl, byte [0x462919]
mov al, cl
or al, 0x28
mov byte [ebp + 0x45e6b4], dl
mov byte [ebp + 0x45e6b5], al
mov eax, dword [esp + 0x18]
cmp dword [eax - 8], 5
jne 0x40a2c1
mov al, byte [eax + 4]
cmp al, 0x4e
je 0x40a276
cmp al, 0x6e
je 0x40a276
cmp al, 0x49
je 0x40a276
cmp al, 0x69
je 0x40a276
mov bl, 1
jmp 0x40a2dd
xor bl, bl
cmp al, 0x49
je 0x40a29c
cmp al, 0x69
je 0x40a29c
push 0x44
push 0
lea ecx, [esp + 0x20]
call fcn.0042b4de
push 0x4e
push 4
lea ecx, [esp + 0x20]
call fcn.0042b4de
jmp 0x40a2dd
or cl, 0xa8
push 0x44
mov byte [ebp + 0x45e6b5], cl
push 0
lea ecx, [esp + 0x20]
call fcn.0042b4de
push 0x49
push 4
lea ecx, [esp + 0x20]
call fcn.0042b4de
jmp 0x40a2dd
push 0x44
push 0
lea ecx, [esp + 0x20]
call fcn.0042b4de
push 0x4e
push 4
lea ecx, [esp + 0x20]
call fcn.00424207
xor bl, bl
mov ebp, dword [esp + 0x18]
mov al, byte [ebp]
cmp al, 0x30
jl 0x40a38f
cmp al, 0x39
jg 0x40a38f
mov edx, dword [ebp - 8]
xor bl, bl
xor ecx, ecx
test edx, edx
jle 0x40a319
mov al, byte [ecx + ebp]
cmp al, 0x30
jl 0x40a30a
cmp al, 0x39
jle 0x40a310
cmp al, 0x2e
je 0x40a310
mov bl, 1
inc ecx
cmp ecx, edx
jl 0x40a2ff
test bl, bl
jne 0x40a393
push ebp
call fcn.00416b86
fst qword [esp + 0x38]
fcomp qword [0x447d50]
add esp, 4
fnstsw ax
test ah, 1
jne 0x40a393
fld qword [esp + 0x34]
fcomp qword [0x447d48]
fnstsw ax
test ah, 0x41
je 0x40a393
cmp edi, 4
mov bl, 9
jne 0x40a34d
mov bl, 0xb
fld qword [esp + 0x34]
fmul qword [0x447d40]
call fcn.00416be0
movsx ecx, bl
mov edx, eax
lea ecx, [ecx + esi + 0x45e6d4]
sar edx, 8
mov byte [ecx - 0x20], dl
mov byte [ecx - 0x21], al
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push eax
push ecx
lea edx, [esp + 0x20]
push str._01.1f
push edx
call fcn.00424781
add esp, 0x10
jmp 0x40a3bd
test bl, bl
je 0x40a3bd
cmp edi, 4
mov al, 8
jne 0x40a39c
mov al, 0xa
movsx eax, al
add eax, esi
push 0x457474
lea ecx, [esp + 0x1c]
mov byte [eax + 0x45e6b4], 0xff
mov byte [eax + 0x45e6b5], 0xff
call fcn.0042b1b9
cmp edi, 3
jne case.default.0x40a19e
mov cl, byte [esi + 0x45e6bc]
push 0
mov byte [esi + 0x45e6be], cl
mov dl, byte [esi + 0x45e6bd]
mov ecx, dword [esp + 0x20]
mov byte [esi + 0x45e6bf], dl
call fcn.00429d5b
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
push eax
mov ecx, esi
call fcn.00406510
push 4
mov ecx, esi
call fcn.00406460
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, esi
call fcn.00406510
jmp 0x40abed
mov edx, dword [ebp + 0x4c4]
push 0
push 0
push 0x147
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
mov al, byte [esi + 0x45e6c0]
jne 0x40a449
mov ecx, dword [esp + 0x20]
and al, 0xdf
mov byte [esi + 0x45e6c0], al
mov eax, dword [esp + 0x18]
push eax
jmp 0x40abdd
mov ecx, dword [esp + 0x20]
or al, 0x20
mov byte [esi + 0x45e6c0], al
mov eax, dword [esp + 0x18]
push eax
jmp 0x40abdd
mov eax, dword [ebp + 0x4c4]
push 0
push 0
push 0x147
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
mov al, byte [esi + 0x45e6c0]
jne 0x40a495
mov ecx, dword [esp + 0x20]
and al, 0xef
mov byte [esi + 0x45e6c0], al
mov eax, dword [esp + 0x18]
push eax
jmp 0x40abdd
mov ecx, dword [esp + 0x20]
or al, 0x10
mov byte [esi + 0x45e6c0], al
mov eax, dword [esp + 0x18]
push eax
jmp 0x40abdd
mov cl, byte [esi + 0x45e6c0]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
and cl, 0x3f
push 0
mov byte [esi + 0x45e6c0], cl
mov ecx, dword [ebp + 0x4c4]
push 0
push 0x147
push ecx
call ebx
cmp eax, 1
jne 0x40a4de
or byte [esi + 0x45e6c0], 0x80
mov edx, dword [ebp + 0x4c4]
push 0
push 0
push 0x147
push edx
call ebx
cmp eax, 2
jne case.default.0x40a19e
mov al, byte [esi + 0x45e6c0]
mov ecx, dword [esp + 0x20]
or al, 0x40
mov byte [esi + 0x45e6c0], al
mov eax, dword [esp + 0x18]
push eax
jmp 0x40abdd
mov cl, byte [esi + 0x45e6c0]
push 0
and cl, 0xf8
push 0
mov byte [esi + 0x45e6c0], cl
mov eax, dword [ebp + 0x4c4]
push 0x147
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov cl, byte [esi + 0x45e6c0]
or cl, al
mov eax, dword [esp + 0x18]
mov byte [esi + 0x45e6c0], cl
mov ecx, dword [esp + 0x20]
push eax
jmp 0x40abdd
dec bl
cmp bl, 0x10
mov byte [esp + 0x24], bl
jb 0x40a59c
mov ecx, dword [ebp + 0x4c4]
push 0
push 0
add bl, 0xf0
push 0x147
push ecx
mov byte [esp + 0x34], bl
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
and edx, 0xff
mov byte [edx + 0x45ec14], al
mov eax, dword [esp + 0x18]
push eax
jmp 0x40abdd
mov eax, dword [ebp + 0x4c4]
push 0
push 0
push 0x147
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x24]
and ecx, 0xff
mov byte [ecx + 0x45ebf4], al
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push eax
jmp 0x40abdd
mov edx, dword [ebp + 0x4c4]
push 0
push 0
push 0x147
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
mov al, byte [esi + 0x45e6c0]
jne 0x40a606
mov ecx, dword [esp + 0x20]
and al, 0xf7
mov byte [esi + 0x45e6c0], al
mov eax, dword [esp + 0x18]
push eax
jmp 0x40abdd
mov ecx, dword [esp + 0x20]
or al, 8
mov byte [esi + 0x45e6c0], al
mov eax, dword [esp + 0x18]
push eax
jmp 0x40abdd
mov eax, dword [ebp + 0x4c4]
push 0
push 0
push 0x147
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
push 1
jne 0x40a733
push 0
jmp 0x40a735
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.00427799
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov ebx, ecx
mov dword [esp + 0x44], ecx
mov eax, dword [edx - 8]
mov dword [esp + 0x40], ebx
test al, al
jbe 0x40a69d
xor esi, esi
and eax, 0xff
mov edi, eax
mov eax, dword [esp + 0x18]
mov al, byte [esi + eax]
mov byte [esp + 0x24], al
mov byte [esp + esi + 0x40], al
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0040ac40
add esp, 4
mov byte [esp + esi + 0x40], al
inc esi
dec edi
jne 0x40a671
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
shl bl, 4
lea edx, [edx*4 + 0x20c]
mov eax, edx
and edx, 0xf
shr eax, 4
shl eax, 5
mov edi, eax
mov al, bh
and al, 0xf
mov esi, edx
mov dl, byte [esp + 0x43]
or al, bl
mov byte [edi + esi + 0x45e6d4], al
mov al, byte [esp + 0x42]
and dl, 0xf
shl al, 4
or dl, al
mov al, byte [esp + 0x47]
mov byte [edi + esi + 0x45e6d5], dl
mov dl, ch
and dl, 0xf
and al, 0xf
shl cl, 4
or dl, cl
mov cl, byte [esp + 0x46]
shl cl, 4
or al, cl
mov ecx, dword [esp + 0x20]
mov byte [edi + esi + 0x45e6d6], dl
mov byte [edi + esi + 0x45e6d7], al
mov eax, dword [esp + 0x18]
push eax
jmp 0x40abdd
mov edx, dword [ebp + 0x4c4]
push 0
push 0
push 0x147
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
push 0
jne 0x40a733
push 0
jmp 0x40a735
push 1
dec bl
push ebx
call fcn.0040b3f0
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push eax
jmp 0x40abdd
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.00427799
mov edx, dword [esp + 0x18]
push edx
call fcn.00416b86
fld st(0)
fmul qword [0x447208]
add esp, 4
fmul qword [0x447200]
fstp qword [esp + 0x24]
fcom qword [0x4471f8]
fnstsw ax
test ah, 0x40
je 0x40a7a3
mov al, byte [esp + 0x16]
test al, al
fstp st(0)
je 0x40abe2
push ebx
mov ecx, ebp
call fcn.0040d2d0
jmp 0x40abe2
mov eax, dword [0x458d4c]
xor ecx, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
fild qword [esp + 0x34]
fld st(1)
fcompp
fnstsw ax
test ah, 1
jne 0x40a7ef
mov edx, dword [0x458d50]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
fild qword [esp + 0x34]
fxch st(1)
fcompp
fnstsw ax
test ah, 0x41
je 0x40a7f1
fld qword [esp + 0x24]
call fcn.00416be0
mov ebx, eax
mov dword [esp + 0x24], ebx
jmp 0x40a83d
fstp st(0)
mov eax, dword [0x4576b4]
push ecx
cmp eax, 2
push 0x45e598
jne 0x40a808
push str.Input_Error_
jmp 0x40a80d
push 0x459e18
mov ecx, ebp
call fcn.004284b8
mov eax, dword [0x458d4c]
push str.400.00000
lea ecx, [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea ebx, [eax + eax*4]
lea ebx, [ebx + ebx*4]
shl ebx, 5
mov dword [esp + 0x28], ebx
call fcn.0042b1b9
cmp edi, 2
mov byte [esp + 0x17], 3
jne 0x40a84c
mov byte [esp + 0x17], 7
mov eax, ebx
mov ecx, 0x271
cdq
idiv ecx
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
fcomp qword [0x4471f8]
fnstsw ax
test ah, 0x40
jne 0x40a8b4
mov eax, ebx
mov ecx, 0xfa
cdq
idiv ecx
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
fcomp qword [0x4471f8]
fnstsw ax
test ah, 0x40
jne 0x40a8b4
mov eax, 0x10624dd3
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
fmul qword [0x4471f0]
call fcn.00416be0
mov ebx, eax
mov dword [esp + 0x24], ebx
mov eax, 0x431bde83
imul ebx
fild dword [esp + 0x24]
movsx ecx, byte [esp + 0x17]
sar edx, 0x12
mov eax, edx
lea edi, [ecx + esi + 0x45e6d4]
fmul qword [0x4471e8]
shr eax, 0x1f
add edx, eax
push edx
fstp qword [esp + 0x38]
call fcn.00409410
mov byte [edi - 0x20], al
mov eax, ebx
cdq
mov ecx, 0xf4240
idiv ecx
mov eax, 0x68db8bad
mov ebx, edx
imul ebx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
call fcn.00409410
mov byte [edi - 0x21], al
mov eax, ebx
cdq
mov ecx, 0x2710
idiv ecx
mov eax, 0x51eb851f
mov ebx, edx
imul ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
call fcn.00409410
mov byte [edi - 0x22], al
mov eax, ebx
cdq
mov ecx, 0x64
idiv ecx
push edx
call fcn.00409410
mov edx, dword [esp + 0x48]
mov byte [edi - 0x23], al
mov eax, dword [esp + 0x44]
push edx
push eax
lea ecx, [esp + 0x30]
push str._01.5f
push ecx
call fcn.00424781
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
add esp, 0x20
push edx
call fcn.00406510
mov ecx, dword [esp + 0x1c]
push 0
call fcn.00429d5b
cmp dword [esp + 0x40], 1
jne 0x40abe2
mov al, byte [esp + 0x16]
test al, al
jne 0x40abe2
mov edi, dword [esp + 0x20]
push 2
mov ecx, edi
call fcn.00406460
mov ecx, ebp
call fcn.004096e0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
push eax
mov ecx, edi
call fcn.00406510
mov cl, byte [esi + 0x45e6b7]
mov bl, byte [esp + 0x30]
mov byte [esi + 0x45e6bb], cl
mov dl, byte [esi + 0x45e6b6]
mov byte [esi + 0x45e6ba], dl
mov al, byte [esi + 0x45e6b5]
mov byte [esi + 0x45e6b9], al
mov cl, byte [esi + 0x45e6b4]
mov byte [esi + 0x45e6b8], cl
mov byte [esi + 0x45e6bc], 0xff
mov byte [esi + 0x45e6bd], 0xff
dec bl
mov byte [esi + 0x45e6be], 0xff
mov byte [esi + 0x45e6bf], 0xff
cmp bl, 0x10
mov byte [esi + 0x45e6c0], 0x30
mov byte [esp + 0x24], bl
jb 0x40aa2e
mov eax, dword [esp + 0x24]
and eax, 0xff
sub eax, 0x10
mov byte [eax + 0x45ec14], 0
jmp 0x40aa3f
mov edx, dword [esp + 0x24]
and edx, 0xff
mov byte [edx + 0x45ebf4], 0
push 0
push 1
push ebx
call fcn.0040b3f0
push 1
push 0
push ebx
call fcn.0040b3f0
mov eax, dword [esp + 0x48]
add esp, 0x18
lea ecx, [eax*4 + 0x20c]
push 3
mov eax, ecx
and ecx, 0xf
shr eax, 4
shl eax, 5
mov byte [eax + ecx + 0x45e6d4], 0xff
mov byte [eax + ecx + 0x45e6d5], 0xff
mov byte [eax + ecx + 0x45e6d6], 0xff
mov byte [eax + ecx + 0x45e6d7], 0xff
mov ecx, edi
call fcn.00406460
push 0x457474
mov ecx, edi
call fcn.00406510
push 4
mov ecx, edi
call fcn.00406460
push 0x457474
mov ecx, edi
call fcn.00406510
push 5
mov ecx, edi
call fcn.00406460
mov eax, dword [0x4576b4]
mov esi, 2
cmp eax, esi
jne 0x40aad4
push str.High
jmp 0x40aad9
push 0x45943c
mov ecx, edi
call fcn.00406510
push 6
mov ecx, edi
call fcn.00406460
cmp dword [0x4576b4], esi
jne 0x40aaf8
push str.Wide
jmp 0x40aafd
push 0x459420
mov ecx, edi
call fcn.00406510
push 7
mov ecx, edi
call fcn.00406460
cmp dword [0x4576b4], esi
jne 0x40ab1c
push 0x457474
jmp 0x40ab21
push 0x4572b0
mov ecx, edi
call fcn.00406510
push 8
mov ecx, edi
call fcn.00406460
push 0x457498
mov ecx, edi
call fcn.00406510
push 9
mov ecx, edi
call fcn.00406460
cmp dword [0x4576b4], esi
jne 0x40ab55
push 0x457474
jmp 0x40ab5a
push 0x457470
mov ecx, edi
call fcn.00406510
push 0xa
mov ecx, edi
call fcn.00406460
cmp dword [0x4576b4], esi
jne 0x40ab79
push 0x457474
jmp 0x40ab7e
push 0x45940c
mov ecx, edi
call fcn.00406510
push 0xb
mov ecx, edi
call fcn.00406460
cmp dword [0x4576b4], esi
jne 0x40ab9d
push 0x457474
jmp 0x40aba2
push 0x459380
mov ecx, edi
call fcn.00406510
push 0xc
mov ecx, edi
call fcn.00406460
push str.FFFFFFFF
mov ecx, edi
call fcn.00406510
push 0xd
mov ecx, edi
call fcn.00406460
cmp dword [0x4576b4], esi
jne 0x40abd6
push 0x459388
jmp 0x40abdb
push 0x459390
mov ecx, edi
call fcn.00406510
mov ecx, dword [esp + 0x1c]
push 0
call fcn.00429d5b
lea ecx, [esp + 0x18]
mov dword [esp + 0x50], 0xffffffff
call fcn.0042b030
mov ecx, dword [esp + 0x48]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret