Function at 0x40ae40
Capabilities:
Check for peb ntglobalflag flag
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x41879c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x38], 0
mov dword [esi], 0x41a668
lea edi, [esi + 0x3c]
mov byte [esp + 0x38], 5
mov ecx, edi
call sub.MFC42.DLL_CString::CString
lea ebp, [esi + 0x40]
mov byte [esp + 0x38], 6
mov ecx, ebp
call sub.MFC42.DLL_CString::CString
lea ebx, [esi + 0x44]
mov byte [esp + 0x38], 7
mov ecx, ebx
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x48]
mov byte [esp + 0x38], 8
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x4c]
mov byte [esp + 0x38], 9
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x50]
mov byte [esp + 0x38], 0xa
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x54]
mov byte [esp + 0x38], 0xb
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x58]
mov byte [esp + 0x38], 0xc
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x5c]
mov byte [esp + 0x38], 0xd
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x60]
mov byte [esp + 0x38], 0xe
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x64]
mov byte [esp + 0x38], 0xf
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x68]
mov byte [esp + 0x38], 0x10
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x6c]
mov byte [esp + 0x38], 0x11
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x70]
mov byte [esp + 0x38], 0x12
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x74]
mov byte [esp + 0x38], 0x13
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x38], 0x14
mov dword [esi], 0x41b3f0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x38], 0x15
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov dword [esi + 4], eax
lea eax, [esp + 0x64]
mov dword [esi + 8], ecx
push eax
lea ecx, [esi + 0x54]
mov byte [esp + 0x3c], 0x16
mov dword [esi + 0x28], edx
call fcn.00416430
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x44]
mov dword [esi + 0x2c], ecx
push edx
mov ecx, edi
call fcn.00416430
lea eax, [esp + 0x48]
mov ecx, ebp
push eax
call fcn.00416430
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esi + 0x48]
call fcn.00416430
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x80]
lea ecx, [esp + 0x84]
mov dword [esi + 0x30], eax
xor eax, eax
push ecx
lea ecx, [esi + 0x70]
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], ebp
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
call fcn.00416430
mov edx, dword [esp + 0x4c]
mov ecx, ebx
mov eax, dword [edx*4 + 0x4202c8]
push eax
call sub.MFC42.DLL_CString::LoadStringA
cmp dword [esp + 0x54], 2
jne 0x40b01c
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x1c]
push 0xa
push ecx
push edx
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
lea eax, [esp + 0x1c]
lea ecx, [esi + 0x4c]
push eax
call fcn.0041643c
jmp 0x40b030
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx*4 + 0x420308]
lea ecx, [esi + 0x4c]
push edx
call sub.MFC42.DLL_CString::LoadStringA
mov eax, dword [esp + 0x5c]
xor ebx, ebx
cmp eax, ebx
jl 0x40b060
lea ecx, [esp + 0x1c]
push 0xa
push ecx
push eax
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
lea edx, [esp + 0x1c]
lea eax, [esi + 0x50]
push edx
push 0x2744
push eax
call sub.MFC42.DLL_AfxFormatString1
jmp 0x40b098
add eax, 4
cmp eax, 3
ja case.default.0x40b068
jmp dword [eax*4 + 0x40b630]
mov eax, 0x2740
jmp 0x40b08f
mov eax, 0x2741
jmp 0x40b08f
mov eax, 0x2743
jmp 0x40b08f
mov eax, 0x2742
jmp 0x40b08f
mov eax, dword [esp + 0x7c]
push eax
lea ecx, [esi + 0x50]
call sub.MFC42.DLL_CString::LoadStringA
mov edi, dword [esp + 0x68]
cmp edi, ebx
je 0x40b0e4
lea eax, [esi + 0x58]
push eax
push edi
call fcn.004147a0
add esp, 8
push 4
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x54], eax
cmp eax, ebx
mov byte [esp + 0x38], 0x17
je 0x40b0d8
push 0xffffffffffffffff
push edi
mov ecx, eax
call sub.MFC42.DLL_CTime::CTime_1
mov byte [esp + 0x38], 0x16
mov dword [esi + 0xc], eax
jmp 0x40b0ef
xor eax, eax
mov byte [esp + 0x38], 0x16
mov dword [esi + 0xc], eax
jmp 0x40b0ef
lea ecx, [esi + 0x58]
call sub.MFC42.DLL_CString::Empty
mov dword [esi + 0xc], ebx
mov edi, dword [esp + 0x6c]
cmp edi, ebx
je 0x40b13b
lea eax, [esi + 0x5c]
push eax
push edi
call fcn.004147a0
add esp, 8
push 4
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x54], eax
cmp eax, ebx
mov byte [esp + 0x38], 0x18
je 0x40b12f
push 0xffffffffffffffff
push edi
mov ecx, eax
call sub.MFC42.DLL_CTime::CTime_1
mov byte [esp + 0x38], 0x16
mov dword [esi + 0x10], eax
jmp 0x40b146
xor eax, eax
mov byte [esp + 0x38], 0x16
mov dword [esi + 0x10], eax
jmp 0x40b146
lea ecx, [esi + 0x5c]
call sub.MFC42.DLL_CString::Empty
mov dword [esi + 0x10], ebx
mov edi, dword [esp + 0x70]
cmp edi, ebx
je 0x40b192
lea eax, [esi + 0x60]
push eax
push edi
call fcn.004147a0
add esp, 8
push 4
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x54], eax
cmp eax, ebx
mov byte [esp + 0x38], 0x19
je 0x40b186
push 0xffffffffffffffff
push edi
mov ecx, eax
call sub.MFC42.DLL_CTime::CTime_1
mov byte [esp + 0x38], 0x16
mov dword [esi + 0x14], eax
jmp 0x40b19d
xor eax, eax
mov byte [esp + 0x38], 0x16
mov dword [esi + 0x14], eax
jmp 0x40b19d
lea ecx, [esi + 0x60]
call sub.MFC42.DLL_CString::Empty
mov dword [esi + 0x14], ebx
mov edi, dword [esp + 0x74]
cmp edi, ebx
je 0x40b1e9
lea eax, [esi + 0x64]
push eax
push edi
call fcn.004147a0
add esp, 8
push 4
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x54], eax
cmp eax, ebx
mov byte [esp + 0x38], 0x1a
je 0x40b1dd
push 0xffffffffffffffff
push edi
mov ecx, eax
call sub.MFC42.DLL_CTime::CTime_1
mov byte [esp + 0x38], 0x16
mov dword [esi + 0x18], eax
jmp 0x40b1f4
xor eax, eax
mov byte [esp + 0x38], 0x16
mov dword [esi + 0x18], eax
jmp 0x40b1f4
lea ecx, [esi + 0x64]
call sub.MFC42.DLL_CString::Empty
mov dword [esi + 0x18], ebx
mov edi, dword [esp + 0x78]
cmp edi, ebx
je 0x40b240
lea eax, [esi + 0x68]
push eax
push edi
call fcn.004147a0
add esp, 8
push 4
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x54], eax
cmp eax, ebx
mov byte [esp + 0x38], 0x1b
je 0x40b234
push 0xffffffffffffffff
push edi
mov ecx, eax
call sub.MFC42.DLL_CTime::CTime_1
mov byte [esp + 0x38], 0x16
mov dword [esi + 0x1c], eax
jmp 0x40b24b
xor eax, eax
mov byte [esp + 0x38], 0x16
mov dword [esi + 0x1c], eax
jmp 0x40b24b
lea ecx, [esi + 0x68]
call sub.MFC42.DLL_CString::Empty
mov dword [esi + 0x1c], ebx
lea eax, [ebp - 1]
xor edi, edi
cmp eax, 0x12
mov ebx, 1
ja case.0x40b266.4
xor ecx, ecx
mov cl, byte [eax + 0x40b650]
jmp dword [ecx*4 + 0x40b640]
cmp eax, 4
ja case.default.0x40b276
jmp dword [eax*4 + 0x40b664]
mov edi, dword [esp + 0x7c]
mov edx, ebx
cmp edx, edi
sbb edi, edi
and edi, 0xfffffffb
add edi, 0x2755
jmp case.default.0x40b276
mov edx, dword [esp + 0x7c]
mov eax, ebx
cmp eax, edx
sbb edi, edi
and edi, 0xfffffffb
add edi, 0x2759
jmp case.default.0x40b276
cmp dword [esp + 0x7c], ebx
ja 0x40b2bd
mov edi, 0x2756
jmp case.default.0x40b276
mov edi, dword [esi + 0x20]
xor edx, edx
mov eax, edi
mov ecx, 7
div ecx
test edx, edx
jne 0x40b2e8
mov eax, 0x24924925
mov dword [esi + 0x24], 4
mul edi
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 2
jmp 0x40b32b
mov edi, 0x2751
jmp case.default.0x40b276
cmp dword [esp + 0x7c], ebx
ja 0x40b302
mov edi, 0x2757
jmp case.default.0x40b276
mov edi, dword [esi + 0x20]
xor edx, edx
mov eax, edi
mov ecx, 0xa8
div ecx
test edx, edx
jne 0x40b341
mov eax, 0x86186187
mov dword [esi + 0x24], 4
mul edi
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 7
mov dword [esi + 0x20], edi
dec edi
neg edi
sbb edi, edi
and edi, 0xfffffffb
add edi, 0x2759
jmp case.default.0x40b276
mov eax, edi
xor edx, edx
mov ecx, 0x18
div ecx
test edx, edx
jne 0x40b379
mov eax, 0xaaaaaaab
mov dword [esi + 0x24], 3
mul edi
shr edx, 4
mov dword [esi + 0x20], edx
dec edx
neg edx
sbb edx, edx
and edx, 0xfffffffb
add edx, 0x2756
mov edi, edx
jmp case.default.0x40b276
mov edi, 0x2752
jmp case.default.0x40b276
cmp dword [esp + 0x7c], ebx
ja 0x40b393
mov edi, 0x2758
jmp case.default.0x40b276
mov ecx, dword [esi + 0x20]
xor edx, edx
mov eax, ecx
mov edi, 0x2760
div edi
test edx, edx
jne 0x40b3d1
mov eax, 0xa01a01a1
mov dword [esi + 0x24], 4
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0xd
mov dword [esi + 0x20], ecx
dec ecx
neg ecx
sbb ecx, ecx
and ecx, 0xfffffffb
add ecx, 0x2759
mov edi, ecx
jmp case.default.0x40b276
mov eax, ecx
xor edx, edx
mov edi, 0x5a0
div edi
test edx, edx
jne 0x40b40c
mov eax, 0x6c16c16d
mov dword [esi + 0x24], 3
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0xa
mov dword [esi + 0x20], ecx
dec ecx
neg ecx
sbb ecx, ecx
and ecx, 0xfffffffb
add ecx, 0x2756
mov edi, ecx
jmp case.default.0x40b276
mov eax, ecx
xor edx, edx
mov edi, 0x3c
div edi
test edx, edx
jne 0x40b441
mov eax, 0x88888889
mov dword [esi + 0x24], 2
mul ecx
shr edx, 5
mov dword [esi + 0x20], edx
dec edx
neg edx
sbb edx, edx
and edx, 0xfffffffb
add edx, 0x2757
mov edi, edx
jmp case.default.0x40b276
mov edi, 0x2753
cmp dword [esp + 0x7c], ebx
ja 0x40b45a
push edi
lea ecx, [esi + 0x6c]
call sub.MFC42.DLL_CString::LoadStringA
jmp 0x40b5b1
mov eax, dword [esi + 0x20]
lea edx, [esp + 0x1c]
push 0xa
push edx
push eax
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
lea ecx, [esp + 0x1c]
lea eax, [esi + 0x6c]
push ecx
push edi
push eax
call sub.MFC42.DLL_AfxFormatString1
jmp 0x40b5b1
lea eax, [ebp - 6]
cmp eax, 4
ja case.default.0x40b48a
jmp dword [eax*4 + 0x40b678]
mov edi, 0x275f
jmp case.default.0x40b48a
mov edi, 0x2760
jmp case.default.0x40b48a
mov edi, 0x2761
jmp case.default.0x40b48a
mov edi, 0x2762
jmp case.default.0x40b48a
mov edi, 0x2763
push edi
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::LoadStringA
mov edx, dword [esp + 0x7c]
lea eax, [edx - 1]
cmp eax, 5
ja case.default.0x40b4c8
jmp dword [eax*4 + 0x40b68c]
mov eax, 0x276f
jmp 0x40b4fe
mov eax, 0x2770
jmp 0x40b4fe
mov eax, 0x2771
jmp 0x40b4fe
mov eax, 0x2772
jmp 0x40b4fe
mov eax, 0x2773
jmp 0x40b4fe
mov eax, 0x2774
jmp 0x40b4fe
mov eax, 0x276e
push eax
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::LoadStringA
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
lea eax, [esi + 0x6c]
push 0x2775
push eax
call sub.MFC42.DLL_AfxFormatString2
jmp 0x40b5b1
lea eax, [ebp - 0xb]
cmp eax, 8
ja case.0x40b52d.18
jmp dword [eax*4 + 0x40b6a4]
mov eax, 0x276e
jmp 0x40b571
mov eax, 0x276f
jmp 0x40b571
mov eax, 0x2770
jmp 0x40b571
mov eax, 0x2771
jmp 0x40b571
mov eax, 0x2772
jmp 0x40b571
mov eax, 0x2773
jmp 0x40b571
mov eax, 0x2774
jmp 0x40b571
mov eax, 0x276c
jmp 0x40b571
mov eax, 0x276b
push eax
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::LoadStringA
mov eax, dword [esi + 0x20]
lea edx, [esp + 0x1c]
push 0xa
push edx
push eax
call dword [sym.imp.MSVCRT.dll__itoa]
mov edx, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esp + 0x1c]
lea eax, [esi + 0x6c]
push ecx
push edx
push 0x2776
push eax
call sub.MFC42.DLL_AfxFormatString2
jmp 0x40b5b1
lea ecx, [esi + 0x6c]
call sub.MFC42.DLL_CString::Empty
lea ecx, [esp + 0x14]
mov byte [esp + 0x38], 0x15
call fcn.004163f4
lea ecx, [esp + 0x10]
mov byte [esp + 0x38], 0x14
call fcn.004163f4
lea ecx, [esp + 0x44]
mov byte [esp + 0x38], 3
call fcn.004163f4
lea ecx, [esp + 0x48]
mov byte [esp + 0x38], 2
call fcn.004163f4
lea ecx, [esp + 0x50]
mov byte [esp + 0x38], bl
call fcn.004163f4
lea ecx, [esp + 0x64]
mov byte [esp + 0x38], 0
call fcn.004163f4
lea ecx, [esp + 0x84]
mov dword [esp + 0x38], 0xffffffff
call fcn.004163f4
mov ecx, dword [esp + 0x30]
mov eax, esi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2c
ret 0x48