Function at 0x40ec50
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [ebp - 0x8e4]
mov dword [ebp - 0x4b0], ecx
jmp 0x40e43a
cmp dword [ebp - 0x4b0], 0
je 0x40e515
push esi
add esi, 0xfffc
or esi, 0xfe19
pop esi
push eax
sub eax, 0x1c27
add eax, 0x44f8
pop eax
push ecx
xor ecx, 0x3fd
add ecx, 0x1c0f
pop ecx
push ecx
and ecx, 0x1164b
pop ecx
mov ecx, dword [ebp - 0x4b0]
mov dword [ebp - 0x2458], ecx
push ebx
push esi
add esp, 4
add ebx, 0x470b
or ebx, 0x1c94
pop ebx
push edi
jmp 0x40e49e
call 0x40e4ad
add byte [ebx + 0x50], cl
cmp edi, dword [ecx*2 + 0x4b494434]
add esp, 4
and edi, 0x16eba
pop edi
mov edx, dword [ebp - 0x2458]
mov dword [ebp - 0x245c], edx
lea eax, [ebp - 0x14d4]
push eax
call dword [ebp - 0x245c]
test eax, eax
jne 0x40e515
push ebx
push edx
add esp, 4
sub ebx, 0xb0b3
pop ebx
push esi
add esi, 0x5d8b
call 0x40e4f6
add byte [eax + 0x41], cl
inc ebx
dec ebx
dec esp
aaa
inc ecx
cmp al, 0x4a
add esp, 4
xor esi, 0xd9fe
sub esi, 0x14b72
pop esi
mov dword [ebp - 0xc70], 0
jmp 0x40ec00
push ecx
add ecx, 0x8d28
call 0x40e528
add byte [ebx], dh
inc edi
dec ebp
inc ebp
xor esi, dword [ebx]
add esp, 4
pop ecx
push edx
and edx, 0x708e
jmp 0x40e53a
pop edx
push edx
push edx
add esp, 4
and edx, 0xd554
pop edx
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x2460], ecx
mov edx, dword [ebp - 0x2460]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x2464], eax
mov ecx, dword [ebp - 0x2464]
mov dword [ebp - 0x1a34], ecx
push ecx
push ebx
add esp, 4
and ecx, 0x7cb0
pop ecx
push edx
push eax
add esp, 4
xor edx, 0x11d81
pop edx
push eax
add eax, 0x83a
call 0x40e59d
add byte [ecx + 0x50], cl
xor ecx, dword [eax + ecx*2 + 0x33]
dec ebp
xor eax, 0x4c48344
pop eax
cmp dword [ebp - 0x1a34], 0
jne 0x40e5b9
mov dword [ebp - 0x3b0], 0
jmp 0x40e860
mov edx, dword [ebp - 0x1a34]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xf48], ecx
push esi
push edi
add esp, 4
and esi, 0x2862
jmp 0x40e5de
or esi, 0x1181a
pop esi
push ecx
push edx
add esp, 4
call 0x40e5f9
add byte [ebx + 0x34], al
dec edi
cmp al, 0x45
aas
inc esi
cmp dword ss:[ebx - 0x7ca6fb3c], eax
mov ebp, 0xfffff0b8
inc dword [eax]
jne 0x40e615
mov dword [ebp - 0x3b0], 0
jmp 0x40e860
push edi
jmp 0x40e869
pop edi
push esi
or esi, 0x14b34
add byte [esi + 0x52], bl
xor edx, 0x2fd6
xor edx, 0x1bf8
pop edx
push edi
push edx
add esp, 4
add edi, 0x6984
or edi, 0x3390
pop edi
mov ecx, dword [ebp - 0x3b0]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x3e8], edx
push eax
push ecx
add esp, 4
and eax, 0x124c1
pop eax
push esi
push esi
add esp, 4
or esi, 0xab4f
xor esi, 0x17123
jmp 0x40e8c6
pop esi
push eax
push ebx
add esp, 4
sub eax, 0x9e14
pop eax
mov dword [ebp - 0x8f4], 0
mov eax, dword [ebp - 0x3e8]
mov dword [ebp - 0x1a40], eax
cmp dword [ebp - 0x1a40], 0
jne 0x40e903
mov ecx, dword [ebp - 0x8f4]
mov dword [ebp - 0x604], ecx
jmp 0x40ebf4
mov edx, dword [ebp - 0x1a40]
mov eax, dword [ebp - 0x3e8]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1a44], eax
jne 0x40e92b
mov ecx, dword [ebp - 0x8f4]
mov dword [ebp - 0x604], ecx
jmp 0x40ebf4
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1a44]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1a48], edx
in eax, 0xff
inc dword [ebx - 0x1a4743]
inc dword [eax]
jne 0x40e95d
mov eax, dword [ebp - 0x8f4]
mov dword [ebp - 0x604], eax
jmp 0x40ebf4
mov ecx, dword [ebp - 0x3e8]
add ecx, dword [ebp - 0x1a48]
mov dword [ebp - 0x8e8], ecx
jne 0x40e982
mov edx, dword [ebp - 0x8f4]
mov dword [ebp - 0x604], edx
jmp 0x40ebf4
mov eax, dword [ebp - 0x8e8]
mov ecx, dword [ebp - 0x3e8]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x2468], ecx
mov edx, dword [ebp - 0x8e8]
mov eax, dword [ebp - 0x3e8]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x246c], eax
mov ecx, dword [ebp - 0x8e8]
mov edx, dword [ebp - 0x3e8]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x2470], edx
mov dword [ebp - 0x8ec], 0
jmp 0x40e9dc
mov eax, dword [ebp - 0x8ec]
add eax, 1
mov dword [ebp - 0x8ec], eax
mov ecx, dword [ebp - 0x8e8]
mov edx, dword [ebp - 0x8ec]
cmp edx, dword [ecx + 0x18]
jae 0x40ebe8
mov eax, dword [ebp - 0x8ec]
mov ecx, dword [ebp - 0x2468]
mov edx, dword [ebp - 0x3e8]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x8f0], edx
mov eax, dword [ebp - 0x8ec]
mov ecx, dword [ebp - 0x246c]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x2470]
mov ecx, dword [ebp - 0x3e8]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x2474], ecx
mov dword [ebp - 0x1e0], 0
jmp 0x40ea4c
mov edx, dword [ebp - 0x1e0]
add edx, 1
mov dword [ebp - 0x1e0], edx
mov eax, dword [ebp - 0x8f0]
add eax, dword [ebp - 0x1e0]
movsx ecx, byte [eax]
test ecx, ecx
je 0x40eafe
mov edx, dword [ebp - 0x1e0]
movsx eax, byte [ebp + edx - 0xbec]
test eax, eax
je 0x40eafe
push edx
push ecx
add esp, 4
and edx, 0x984e
sub edx, 0x6ebc
xor edx, 0x10e5c
or edx, 0x6e33
pop edx
push ecx
or ecx, 0x102e0
xor ecx, 0x16bdf
or ecx, 0xfc24
pop ecx
mov ecx, dword [ebp - 0x8f0]
add ecx, dword [ebp - 0x1e0]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x1e0]
movsx ecx, byte [ebp + eax - 0xbec]
cmp edx, ecx
je 0x40eaf0
mov edx, dword [ebp - 0x8f0]
add edx, dword [ebp - 0x1e0]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x1e0]
movsx edx, byte [ebp + ecx - 0xbec]
cmp eax, edx
jne 0x40eaf7
jmp 0x40ea3d
jmp 0x40eafe
push ebx
push eax
add esp, 4
xor ebx, 0x13298
add ebx, 0xbdfb
pop ebx
push edi
push edi
add esp, 4
jmp 0x40eb1d
pop edi
push esi
push edx
add esp, 4
or esi, 0x17910
xor esi, 0x207b
pop esi
mov eax, dword [ebp - 0x8f0]
add eax, dword [ebp - 0x1e0]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x1e0]
movsx eax, byte [ebp + edx - 0xbec]
cmp ecx, eax
jne 0x40eb5d
mov dword [ebp - 0xf4c], 0
jmp 0x40ebcc
push eax
or eax, 0x21a6
pop eax
push ecx
call 0x40eb72
add byte [edi + 0x3f493949], bh
add esp, 4
sub ecx, 0xf432
jmp 0x40eb82
pop ecx
push edi
push ecx
add esp, 4
and edi, 0x4ed7
pop edi
mov ecx, dword [ebp - 0x8f0]
add ecx, dword [ebp - 0x1e0]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x1e0]
movsx ecx, byte [ebp + eax - 0xbec]
or ecx, 0x20
cmp edx, ecx
jge 0x40ebc2
mov dword [ebp - 0xf4c], 0xffffffff
jmp 0x40ebcc
mov dword [ebp - 0xf4c], 1
cmp dword [ebp - 0xf4c], 0
jne 0x40ebe3
mov edx, dword [ebp - 0x2474]
mov dword [ebp - 0x604], edx
jmp 0x40ebf4
jmp 0x40e9cd
mov eax, dword [ebp - 0x8f4]
mov dword [ebp - 0x604], eax
mov ecx, dword [ebp - 0x604]
mov dword [ebp - 0xc70], ecx
lea edx, [ebp - 0x28f4]
push edx
mov eax, dword [ebp - 0xfb0]
push eax
call dword [ebp - 0xc70]
test eax, eax
je 0x4101b5
mov ecx, dword [ebp - 0x2638]
mov dword [ebp - 0xc6c], ecx
push esi
and esi, 0x158d6
call 0x40ec3e
add byte [ecx], bh
cmp bh, byte ss:[esi]
cmp eax, 0x36503434
add esp, 4
call 0x40ec50
add byte [esi], bh
xor eax, dword [ebx + ecx*2 + 0x4a]
dec esi
aas
cmp dword [0x8104c483], edi
out dx, al
and dword [ebp + 0x645e0000], edi
mov edx, dword [0x18]
mov dword [ebp - 0x2478], edx
mov eax, dword [ebp - 0x2478]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x247c], ecx
mov edx, dword [ebp - 0x247c]
invalid
xchg ebp, eax
mov ah, 0xe5