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

Disassembly:
push esi
and esi, 0x4c5e
call 0x406062
add byte [ebx + 0x3a], al
dec edx
cmp dword [edx + 0x3a], ecx
inc eax
inc ecx
add esp, 4
sub esi, 0x16872
pop esi
push eax
push edx
add esp, 4
sub eax, 0x42c2
or eax, 0xa98b
pop eax
lea edx, [ebp - 0x1738]
mov dword [ebp - 0xcb0], edx
mov eax, dword [ebp - 0x50c]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xcac], ecx
xor edx, edx
mov word [ebp - 0x218], dx
xor eax, eax
mov word [ebp - 0x34], ax
push esi
sub esi, 0xea6
pop esi
push ecx
push edx
add esp, 4
xor ecx, 0x49ab
sub ecx, 0x1763c
pop ecx
push edx
push ecx
add esp, 4
and edx, 0x178fc
add edx, 0x174cc
or edx, 0xf1d7
pop edx
mov ecx, dword [ebp - 0xcac]
mov dx, word [ecx]
mov word [ebp - 0x103a], dx
mov eax, dword [ebp - 0xcac]
add eax, 2
mov dword [ebp - 0xcac], eax
mov cx, word [ebp - 0x103a]
mov word [ebp - 0x218], cx
mov edx, dword [ebp - 0xcb0]
mov ax, word [edx]
mov word [ebp - 0x103c], ax
mov ecx, dword [ebp - 0xcb0]
add ecx, 2
mov dword [ebp - 0xcb0], ecx
mov dx, word [ebp - 0x103c]
mov word [ebp - 0x34], dx
push esi
push ebx
add esp, 4
call 0x406146
add byte [ebx], dh
inc edx
cmp byte [eax + 0x48], cl
inc ebp
cmp bh, byte [eax]
dec esp
add esp, 4
or esi, 0x18230
call 0x40615f
add byte [eax], bh
inc edx
cmp eax, dword [ebp + esi + 0x3f]
inc ebx
aaa
dec ebx
xor al, 0x83
les eax, [esi + ebx*2]
movzx eax, word [ebp - 0x34]
test eax, eax
jne 0x406180
movzx ecx, word [ebp - 0x218]
movzx edx, word [ebp - 0x34]
sub ecx, edx
mov dword [ebp - 0x1604], ecx
jmp 0x4061da
movzx eax, word [ebp - 0x218]
movzx ecx, word [ebp - 0x34]
cmp eax, ecx
je 0x4060a8
movzx edx, word [ebp - 0x218]
xor edx, 0x20
movzx eax, word [ebp - 0x34]
cmp edx, eax
je 0x4060a8
movzx ecx, word [ebp - 0x218]
movzx edx, word [ebp - 0x34]
cmp ecx, edx
jge 0x4061c4
mov dword [ebp - 0x1600], 0xffffffff
jmp 0x4061ce
mov dword [ebp - 0x1600], 1
mov eax, dword [ebp - 0x1600]
mov dword [ebp - 0x1604], eax
cmp dword [ebp - 0x1604], 0
jne 0x406223
push ecx
call 0x4061f3
add byte [ecx + ecx*2 + 0x37], cl
dec esp
xor eax, 0x3b4f464b
add esp, 4
and ecx, 0xc65d
and ecx, 0x627b
add ecx, 0x89aa
pop ecx
push edx
push edi
add esp, 4
or edx, 0x1767f
pop edx
mov ecx, dword [ebp - 0x50c]
mov dword [ebp - 0x31c], ecx
jmp 0x40628b
push esi
or esi, 0x7d87
xor esi, 0x6adc
and esi, 0x9862
pop esi
push edx
push ecx
add esp, 4
sub edx, 0xbb93
xor edx, 0x3476
add edx, 0xb8be
or edx, 0x7d89
pop edx
mov edx, dword [ebp - 0x50c]
mov eax, dword [edx]
mov dword [ebp - 0x50c], eax
mov ecx, dword [ebp - 0x50c]
cmp ecx, dword [ebp - 0xcb4]
je 0x406281
mov edx, dword [ebp - 0x50c]
cmp dword [edx + 0x30], 0
jne 0x40604c
mov dword [ebp - 0x31c], 0
push ecx
push edx
add esp, 4
or ecx, 0xb364
jmp 0x40629b
xor ecx, 0xa6b5
pop ecx
push esi
push esi
add esp, 4
or esi, 0x180db
call 0x4062b9
add byte [esi], bh
inc esp
xor dh, byte [edi]
dec edx
inc ebp
add esp, 4
pop esi
mov eax, dword [ebp - 0x31c]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x324], ecx
push esi
xor esi, 0x170d8
pop esi
push eax
push edx
add esp, 4
add eax, 0xa40b
and eax, 0x9080
or eax, 0xaa7a
or eax, 0x2670
pop eax
push ebx
push ecx
add esp, 4
sub ebx, 0x860e
pop ebx
mov dword [ebp - 0x770], 0
mov edx, dword [ebp - 0x324]
mov dword [ebp - 0x1608], edx
cmp dword [ebp - 0x1608], 0
jne 0x40632e
mov eax, dword [ebp - 0x770]
mov dword [ebp - 0x510], eax
jmp 0x40661f
mov ecx, dword [ebp - 0x1608]
mov edx, dword [ebp - 0x324]
add edx, dword [ecx + 0x3c]
mov eax, dword [ebp - 0x510]
mov dword [ebp - 0x79c], eax
push ebx
add ebx, 0x6df5
add ebx, 0x957c
pop ebx
push ecx
push esi
add esp, 4
jmp 0x406643
sub ecx, 0x8d45
call 0x406659
add byte [edx + 0x4c], al
inc eax
push eax
cmp al, 0x45
dec esi
inc esp
xor al, 0x4a
add esp, 4
pop ecx