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

Disassembly:
add esp, 4
jmp 0x405974
or edi, 0x4dce
pop edi
push edx
or edx, 0x30b3
pop edx
cmp dword [ebp - 0x14dc], 0
jne 0x40599b
mov dword [ebp - 0x6ec], 0
jmp 0x405c57
mov ecx, dword [ebp - 0x14dc]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xc2c], eax
push ebx
push ecx
add esp, 4
call 0x4059c1
add byte [eax + 0x49], dl
cmp eax, 0x484b3942
xor ecx, dword [ecx - 0x7d]
les eax, [ebx + ebx*2]
push eax
call 0x4059d5
add byte [eax + eax*2 + 0x3e], al
inc edi
cmp dword [edi + 0x38], eax
cmp eax, 0x8104c483
enter 0xffffffffffffa452, 0
add byte [eax - 0x7d], bl
mov ebp, 0xfffff3d4
add byte [ebp + 0xf], dh
mov dword [ebp - 0x6ec], 0
jmp 0x405c57
push ebx
push ecx
add esp, 4
sub ebx, 0x704e
pop ebx
push ebx
add ebx, 0x32e6
sub ebx, 0x71e8
pop ebx
push ecx
push esi
add esp, 4
sub ecx, 0x10084
pop ecx
push ebx
push edx
add esp, 4
add ebx, 0x13572
pop ebx
cmp dword [ebp - 0x6ec], 0
jne 0x405cd3
push ecx
and ecx, 0x3b7e
and ecx, 0x4842
or ecx, 0x14600
pop ecx
push edx
push ebx
add esp, 4
and edx, 0x11d31
pop edx
push eax
push ecx
add esp, 4
and eax, 0xd6a7
or eax, 0x17ec
pop eax
mov dword [ebp - 0x738], 0
jmp 0x4067fa
push esi
and esi, 0x963e
and esi, 0xde39
xor esi, 0x171ea
sub esi, 0x8407
pop esi
push ebx
push ecx
add esp, 4
call 0x405d01
add byte [ecx + 0x35], cl
push eax
dec esp
dec esp
dec eax
cmp al, 0x42
dec esp
add esp, 4
pop ebx
mov eax, dword [ebp - 0x6ec]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2f8], ecx
mov dword [ebp - 0x6fc], 0
mov edx, dword [ebp - 0x2f8]
mov dword [ebp - 0x14e8], edx
cmp dword [ebp - 0x14e8], 0
jne 0x405d44
mov eax, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], eax
jmp 0x406035
mov ecx, dword [ebp - 0x14e8]
mov edx, dword [ebp - 0x2f8]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x14ec], edx
jne 0x405d6c
mov eax, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], eax
jmp 0x406035
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x14ec]
mov ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x14f0], ecx
cmp dword [ebp - 0x14f0], 0
jne 0x405d9e
mov edx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], edx
jmp 0x406035
mov eax, dword [ebp - 0x2f8]
add eax, dword [ebp - 0x14f0]
mov dword [ebp - 0x6f0], eax
jne 0x405dc3
mov ecx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], ecx
jmp 0x406035
mov edx, dword [ebp - 0x6f0]
mov eax, dword [ebp - 0x2f8]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x18a0], eax
mov ecx, dword [ebp - 0x6f0]
mov edx, dword [ebp - 0x2f8]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x18a4], edx
mov eax, dword [ebp - 0x6f0]
mov ecx, dword [ebp - 0x2f8]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x18a8], ecx
mov dword [ebp - 0x6f4], 0
jmp 0x405e1d
mov edx, dword [ebp - 0x6f4]
add edx, 1
mov dword [ebp - 0x6f4], edx
mov eax, dword [ebp - 0x6f0]
mov ecx, dword [ebp - 0x6f4]
cmp ecx, dword [eax + 0x18]
jae 0x406029
mov edx, dword [ebp - 0x6f4]
mov eax, dword [ebp - 0x18a0]
mov ecx, dword [ebp - 0x2f8]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x6f8], ecx
mov edx, dword [ebp - 0x6f4]
mov eax, dword [ebp - 0x18a4]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x18a8]
mov eax, dword [ebp - 0x2f8]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x18ac], eax
mov dword [ebp - 0x180], 0
jmp 0x405e8d
mov ecx, dword [ebp - 0x180]
add ecx, 1
mov dword [ebp - 0x180], ecx
mov edx, dword [ebp - 0x6f8]
add edx, dword [ebp - 0x180]
movsx eax, byte [edx]
test eax, eax
je 0x405f3f
mov ecx, dword [ebp - 0x180]
movsx edx, byte [ebp + ecx - 0x820]
test edx, edx
je 0x405f3f
push ebx
jmp 0x405ec3
pop ebx
push ecx
add ecx, 0x3651
or ecx, 0x15892
and ecx, 0x19a4
pop ecx
push edx
or edx, 0x11cfc
or edx, 0x10f7f
add edx, 0x106d0
pop edx
mov eax, dword [ebp - 0x6f8]
add eax, dword [ebp - 0x180]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x180]
movsx eax, byte [ebp + edx - 0x820]
cmp ecx, eax
je 0x405f31
mov ecx, dword [ebp - 0x6f8]
add ecx, dword [ebp - 0x180]
movsx edx, byte [ecx]
xor edx, 0x20
mov eax, dword [ebp - 0x180]
movsx ecx, byte [ebp + eax - 0x820]
cmp edx, ecx
jne 0x405f38
jmp 0x405e7e
jmp 0x405f3f
push esi
push esi
add esp, 4
sub esi, 0x342c
and esi, 0x3222
pop esi
push eax
push ecx
add esp, 4
add eax, 0x470b
pop eax
push edi
sub edi, 0xb039
or edi, 0x13e4a
sub edi, 0x1333f
pop edi
mov edx, dword [ebp - 0x6f8]
add edx, dword [ebp - 0x180]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x180]
movsx edx, byte [ebp + ecx - 0x820]
cmp eax, edx
jne 0x405f9e
mov dword [ebp - 0xc30], 0
jmp 0x40600d
push edx
and edx, 0x152bc
xor edx, 0xb29d
pop edx
push edx
add edx, 0x8052
jmp 0x405fb9
xor edx, 0x1712
pop edx
push edi
jmp 0x405fca
jmp 0x405fcf
pop edi
mov eax, dword [ebp - 0x6f8]
add eax, dword [ebp - 0x180]
movsx ecx, byte [eax]
or ecx, 0x20
mov edx, dword [ebp - 0x180]
movsx eax, byte [ebp + edx - 0x820]
or eax, 0x20
cmp ecx, eax
jge 0x406003
mov dword [ebp - 0xc30], 0xffffffff
jmp 0x40600d
mov dword [ebp - 0xc30], 1
cmp dword [ebp - 0xc30], 0
jne 0x406024
mov ecx, dword [ebp - 0x18ac]
mov dword [ebp - 0x3c4], ecx
jmp 0x406035
jmp 0x405e0e
mov edx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], edx
cmp dword [ebp - 0x3c4], 0
je 0x406110
push ecx
call 0x406052
add byte [esi + 0x3a], cl
xor dh, byte [ebx]
dec ebp
xor edi, dword [edx]
dec esi
inc eax
add esp, 4
call 0x406064
add byte [edx], dh
xor bh, byte [ecx]
cmp dword [ebp + 0x3b], eax
inc edx
aas
inc edx
add esp, 4
add ecx, 0x6965
add ecx, 0xd2ef
pop ecx
mov eax, dword [ebp - 0x3c4]
mov dword [ebp - 0x18b0], eax
push ebx
xor ebx, 0xcbf2
or ebx, 0x7349
call 0x40609a
add byte [ecx], bh
cmp al, 0x3d
dec edi
dec edx
dec eax
inc ecx
add esp, 4
pop ebx
push ebx
xor ebx, 0x17b94
pop ebx
push edi
push ecx
add esp, 4
and edi, 0x133f5
pop edi
mov ecx, dword [ebp - 0x18b0]
mov dword [ebp - 0x18b4], ecx
lea edx, [ebp - 0x1628]
push edx
call dword [ebp - 0x18b4]
test eax, eax
jne 0x406110
push edi
push edx
add esp, 4
jmp 0x4060dc
call 0x4060eb
add byte [edi + 0x32], al
cmp eax, 0x37394732
inc ebp
xor al, byte [ebx + 0x505f04c4]
push ebx
add esp, 4
add eax, 0x90d9
sub eax, 0x1801b
pop eax
mov dword [ebp - 0x738], 0
jmp 0x4067fa
push ebx
add ebx, 0x12b21
jmp 0x406120
jmp 0x406125
and ebx, 0xfd37
pop ebx
push eax
xor eax, 0x57a6
jmp 0x40613b
and eax, 0xe951
pop eax
mov eax, dword fs:[0x18]
mov dword [ebp - 0x18b8], eax
mov ecx, dword [ebp - 0x18b8]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x18bc], edx
mov eax, dword [ebp - 0x18bc]
mov dword [ebp - 0x14f4], eax
push esi
push ecx
add esp, 4
jmp 0x406177
pop esi
push eax
xor eax, 0xd0f0
pop eax
push esi
call 0x406190
add byte [edi + 0x4b], al
dec ebp
aas
dec esi
cmp al, byte [ebx + 0x43]
add esp, 4
jmp 0x40619a
pop esi
cmp dword [ebp - 0x14f4], 0
jne 0x4061b3
mov dword [ebp - 0x2e0], 0
jmp 0x40645a
mov ecx, dword [ebp - 0x14f4]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xc3c], eax
push ecx
push edi
add esp, 4
call 0x4061d7
add byte [ebx], bh
inc ebx
inc esp
inc edi
cmp byte [edi + 0x3c], cl
add esp, 4
jmp 0x4061e2
pop ecx
push edx
add edx, 0x50c6
and edx, 0x17a87
and edx, 0xf31b
pop edx
cmp dword [ebp - 0xc3c], 0
jne 0x40620f
mov dword [ebp - 0x2e0], 0
jmp 0x40645a
mov ecx, dword [ebp - 0xc3c]
mov dword [ebp - 0x4dc], ecx
push eax
push ecx
add esp, 4
sub eax, 0xf761
and eax, 0x14a16
or eax, 0x16154
and eax, 0x50de
pop eax
push eax
xor eax, 0xc280
sub eax, 0x13d8b
add eax, 0x3394
pop eax
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 ecx
add ecx, 0xee2c
and ecx, 0x1815d
pop ecx
push eax
jmp 0x40628e
pop eax
push edi
and edi, 0x40b3
or edi, 0x5572
and edi, 0xc8dd
xor edi, 0x13595
pop edi
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 eax
add eax, 0x130a6
or eax, 0x1e16
pop eax
push ecx
push eax
add esp, 4
add ecx, 0xe8a0
and ecx, 0x12c31
or ecx, 0x3ef
pop ecx
push edx
push eax
add esp, 4
sub edx, 0x2db2
pop edx
movzx eax, word [ebp - 0x34]
test eax, eax
jne 0x40634f
movzx ecx, word [ebp - 0x200]
movzx edx, word [ebp - 0x34]
sub ecx, edx
mov dword [ebp - 0x14fc], ecx
jmp 0x4063a9
movzx eax, word [ebp - 0x200]
movzx ecx, word [ebp - 0x34]
cmp eax, ecx
je 0x406277
movzx edx, word [ebp - 0x200]
xor edx, 0x20
movzx eax, word [ebp - 0x34]
cmp edx, eax
je 0x406277
movzx ecx, word [ebp - 0x200]
movzx edx, word [ebp - 0x34]
cmp ecx, edx
jge 0x406393
mov dword [ebp - 0x14f8], 0xffffffff
jmp 0x40639d
mov dword [ebp - 0x14f8], 1
mov eax, dword [ebp - 0x14f8]
mov dword [ebp - 0x14fc], eax
cmp dword [ebp - 0x14fc], 0
jne 0x4063f2
push esi
add esi, 0x15af5
call 0x4063c8
add byte [eax], bh
inc ecx
dec esi
inc eax
xor cl, byte [ebp + 0x4a]
cmp al, byte [eax - 0x7d]
les eax, [esi + ebx*2]
push ebx
push ebx
add esp, 4
xor ebx, 0x15052
pop ebx
push edx
push ecx
add esp, 4
add edx, 0x14d05
pop edx
mov ecx, dword [ebp - 0x4dc]
mov dword [ebp - 0x2e0], ecx
jmp 0x40645a
push ecx
push eax
add esp, 4
or ecx, 0x4d98
call 0x40640a
add byte [eax + 0x34], cl
aas
dec edi
dec esp
cmp dword [ebx + eax*4], esi
les eax, [eax + ebp*8]
or byte [eax], al
add byte [eax], al
add byte [eax], bh
inc edx
push eax
cmp eax, 0xc4833e3a
add al, 0x81
leave
xlatb
cmc
add byte [eax], al
pop ecx
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 0x406450
mov edx, dword [ebp - 0x4dc]
cmp dword [edx + 0x30], 0
jne 0x40621b
mov dword [ebp - 0x2e0], 0
push edx
push esi
add esp, 4
sub edx, 0x6538
add edx, 0x6ca5
xor edx, 0xda47
sub edx, 0xf668
pop edx
push edi
or edi, 0x13ecb
and edi, 0xd8a0
out 0xa0, eax
fadd dword [eax]
add byte [ecx + 0xdda2ef], al
add byte [edi - 0x75], bl
test dword [eax], esp
std
invalid
dec dword [ebx - 0x7276e7b8]
add al, 0xfd
invalid
call dword [ebx - 0x7f]
jecxz 0x406461
inc ecx
add dword [eax], eax
sub ebx, 0x123aa
and ebx, 0x10eae
add ebx, 0x2bd8
pop ebx
push edx
push ebx
add esp, 4
xor edx, 0xa808
or edx, 0x6eb6
and edx, 0xe795
pop edx
mov dword [ebp - 0x70c], 0
mov edx, dword [ebp - 0x2fc]
mov dword [ebp - 0x1500], edx
cmp dword [ebp - 0x1500], 0
jne 0x4064fd
mov eax, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], eax
jmp 0x4067ee
mov ecx, dword [ebp - 0x1500]
mov edx, dword [ebp - 0x2fc]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x1504], edx
jne 0x406525
mov eax, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], eax
jmp 0x4067ee
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 0x406557
mov edx, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], edx
jmp 0x4067ee
mov eax, dword [ebp - 0x2fc]
add eax, dword [ebp - 0x1508]
mov dword [ebp - 0x700], eax
jne 0x40657c
mov ecx, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], ecx
jmp 0x4067ee
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 0x4065d6
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 0x4067e2
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 0x406646
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 0x4066f8
invalid
invalid
invalid