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

Disassembly:
push ecx
push eax
add esp, 4
or ecx, 0x158b4
pop ecx
push ebx
xor ebx, 0x3159
pop ebx
push ecx
push esi
add esp, 4
xor ecx, 0x22ef
add ecx, 0x4ffd
and ecx, 0x1cd9
xor ecx, 0x1294c
pop ecx
lea edx, [ebp - 0x1628]
mov dword [ebp - 0xc38], edx
mov eax, dword [ebp - 0x4dc]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xc34], ecx
xor edx, edx
mov word [ebp - 0x200], dx
xor eax, eax
mov word [ebp - 0x34], ax
push edx
sub edx, 0x11c64
call fcn.004060be
add byte [ecx + 0x40], cl
inc esi
inc eax
cmp al, 0x3e
add esp, 4
jmp 0x4060c8
pop edx
push eax
sub eax, 0x117b2
sub eax, 0x117fd
add eax, 0xcd4c
pop eax
mov ecx, dword [ebp - 0xc34]
mov dx, word [ecx]
mov word [ebp - 0xf86], dx
mov eax, dword [ebp - 0xc34]
add eax, 2
mov dword [ebp - 0xc34], eax
mov cx, word [ebp - 0xf86]
mov word [ebp - 0x200], cx
mov edx, dword [ebp - 0xc38]
mov ax, word [edx]
mov word [ebp - 0xf88], ax
mov ecx, dword [ebp - 0xc38]
add ecx, 2
mov dword [ebp - 0xc38], ecx
mov dx, word [ebp - 0xf88]
mov word [ebp - 0x34], dx
push edi
push edi
add esp, 4
or edi, 0x1756d
add edi, 0x79a6
call 0x406154
add byte [eax + edi], dh
dec eax
cmp cl, byte [edx + 0x3c]
dec ecx
dec eax
inc edi
add esp, 4
pop edi
push ebx
and ebx, 0xb67a
xor ebx, 0x177f7
pop ebx
movzx eax, word [ebp - 0x34]
test eax, eax
jne 0x406183
movzx ecx, word [ebp - 0x200]
movzx edx, word [ebp - 0x34]
sub ecx, edx
mov dword [ebp - 0x14fc], ecx
jmp 0x4061dd
movzx eax, word [ebp - 0x200]
movzx ecx, word [ebp - 0x34]
cmp eax, ecx
je 0x4060ab
movzx edx, word [ebp - 0x200]
xor edx, 0x20
movzx eax, word [ebp - 0x34]
cmp edx, eax
je 0x4060ab
movzx ecx, word [ebp - 0x200]
movzx edx, word [ebp - 0x34]
cmp ecx, edx
jge 0x4061c7
mov dword [ebp - 0x14f8], 0xffffffff
jmp 0x4061d1
mov dword [ebp - 0x14f8], 1
mov eax, dword [ebp - 0x14f8]
mov dword [ebp - 0x14fc], eax
cmp dword [ebp - 0x14fc], 0
jne 0x406226
push eax
xor eax, 0x103d2
add eax, 0x15d41
pop eax
push edx
and edx, 0x13ae9
add edx, 0x12024
call 0x40620e
add byte [ebx + 0x3f], cl
dec ecx
cmp dword [eax + 0x44], eax
inc esi
add esp, 4
sub edx, 0x1223b
pop edx
mov ecx, dword [ebp - 0x4dc]
mov dword [ebp - 0x2e0], ecx
jmp 0x40628e
push eax
xor eax, 0x12cd5
pop eax
push esi
jmp 0x406238
xor esi, 0x13d5d
add esi, 0x1233e
jmp 0x40624b
pop esi
push edx
push edx
add esp, 4
add edx, 0x901e
pop edx
mov edx, dword [ebp - 0x4dc]
mov eax, dword [edx]
mov dword [ebp - 0x4dc], eax
mov ecx, dword [ebp - 0x4dc]
cmp ecx, dword [ebp - 0xc3c]
je 0x406284
mov edx, dword [ebp - 0x4dc]
cmp dword [edx + 0x30], 0
jne 0x40604f
mov dword [ebp - 0x2e0], 0
push esi
push edi
add esp, 4
add esi, 0x2c4e
or esi, 0x70e2
pop esi
push ebx
sub ebx, 0x21f3
and ebx, 0xc001
add ebx, 0x216d
pop ebx
push edx
push edi
add esp, 4
or edx, 0x1065f
pop edx
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2fc], ecx
push ebx
jmp 0x4062d6
pop ebx
push ebx
jmp 0x4062dd
sub ebx, 0x9a32
pop ebx
push eax
push esi
add esp, 4
and eax, 0x1648b
jmp 0x4062f8
jmp 0x406300
pop eax
mov dword [ebp - 0x70c], 0
mov edx, dword [ebp - 0x2fc]
mov dword [ebp - 0x1500], edx
cmp dword [ebp - 0x1500], 0
jne 0x406331
mov eax, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], eax
jmp 0x406622
mov ecx, dword [ebp - 0x1500]
mov edx, dword [ebp - 0x2fc]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x1504], edx
jne 0x406359
mov eax, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], eax
jmp 0x406622
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x1504]
mov ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x1508], ecx
cmp dword [ebp - 0x1508], 0
jne 0x40638b
mov edx, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], edx
jmp 0x406622
mov eax, dword [ebp - 0x2fc]
add eax, dword [ebp - 0x1508]
mov dword [ebp - 0x700], eax
jne 0x4063b0
mov ecx, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], ecx
jmp 0x406622
mov edx, dword [ebp - 0x700]
mov eax, dword [ebp - 0x2fc]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x18c0], eax
mov ecx, dword [ebp - 0x700]
mov edx, dword [ebp - 0x2fc]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x18c4], edx
mov eax, dword [ebp - 0x700]
mov ecx, dword [ebp - 0x2fc]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x18c8], ecx
mov dword [ebp - 0x704], 0
jmp 0x40640a
mov edx, dword [ebp - 0x704]
add edx, 1
mov dword [ebp - 0x704], edx
mov eax, dword [ebp - 0x700]
mov ecx, dword [ebp - 0x704]
cmp ecx, dword [eax + 0x18]
jae 0x406616
mov edx, dword [ebp - 0x704]
mov eax, dword [ebp - 0x18c0]
mov ecx, dword [ebp - 0x2fc]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x708], ecx
mov edx, dword [ebp - 0x704]
mov eax, dword [ebp - 0x18c4]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x18c8]
mov eax, dword [ebp - 0x2fc]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x18cc], eax
mov dword [ebp - 0x184], 0
jmp 0x40647a
mov ecx, dword [ebp - 0x184]
add ecx, 1
mov dword [ebp - 0x184], ecx
mov edx, dword [ebp - 0x708]
add edx, dword [ebp - 0x184]
movsx eax, byte [edx]
test eax, eax
je 0x40652c
mov ecx, dword [ebp - 0x184]
movsx edx, byte [ebp + ecx - 0x804]
test edx, edx
je 0x40652c
push edx
push ecx
add esp, 4
call 0x4064ba
add byte [edi + 0x4a], al
dec eax
cmp dword [ecx + ecx*2], edi
inc ecx
xor eax, dword [ebx + 0x7e804c4]
add byte [eax], al
add byte [eax], al
xor ecx, dword [ebx + 0x49]
dec ecx
dec ebx
add esp, 4
jmp 0x4064d2
and edx, 0x12c4e
pop edx
mov eax, dword [ebp - 0x708]
add eax, dword [ebp - 0x184]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x184]
movsx eax, byte [ebp + edx - 0x804]
cmp ecx, eax
je 0x40651e
mov ecx, dword [ebp - 0x708]
add ecx, dword [ebp - 0x184]
movsx edx, byte [ecx]
xor edx, 0x20
mov eax, dword [ebp - 0x184]
movsx ecx, byte [ebp + eax - 0x804]
cmp edx, ecx
jne 0x406525
jmp 0x40646b
jmp 0x40652c
push edx
and edx, 0x13ee6
xor edx, 0x130b6
and edx, 0x13c32
sub edx, 0x13a3d
pop edx
push eax
push ecx
add esp, 4
add eax, 0x16e7b
or eax, 0x43d
and eax, 0x1541f
pop eax
mov edx, dword [ebp - 0x708]
add edx, dword [ebp - 0x184]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x184]
movsx edx, byte [ebp + ecx - 0x804]
cmp eax, edx
jne 0x40658b
mov dword [ebp - 0xc40], 0
jmp 0x4065fa
push ecx
xor ecx, 0x3405
and ecx, 0x49fb
sub ecx, 0x1d0a
and ecx, 0xc1df
pop ecx
push edx
or edx, 0x72f7
pop edx
push ecx
jmp 0x4065b6
jmp 0x4065bc
pop ecx
mov eax, dword [ebp - 0x708]
add eax, dword [ebp - 0x184]
movsx ecx, byte [eax]
or ecx, 0x20
mov edx, dword [ebp - 0x184]
movsx eax, byte [ebp + edx - 0x804]
or eax, 0x20
cmp ecx, eax
jge 0x4065f0
mov dword [ebp - 0xc40], 0xffffffff
jmp 0x4065fa
mov dword [ebp - 0xc40], 1
cmp dword [ebp - 0xc40], 0
jne 0x406611
mov ecx, dword [ebp - 0x18cc]
mov dword [ebp - 0x4e0], ecx
jmp 0x406622
jmp 0x4063fb
mov edx, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], edx
mov eax, dword [ebp - 0x4e0]
mov dword [ebp - 0x738], eax