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

Disassembly:
add esp, 4
pop eax
cmp dword [ebp - 0xc2c], 0
jne 0x50863c
mov dword [ebp - 0x6ec], 0
jmp 0x50889c
mov ecx, dword [ebp - 0xc2c]
mov dword [ebp - 0x4d8], ecx
push ebx
call 0x508657
add byte [edx], bh
cmp byte [ebp + ecx*2 + 0x3d], cl
inc esi
xor esi, dword [esi]
add esp, 4
call 0x508668
add byte [ebx + 0x3f], cl
dec eax
cmp cl, byte [eax + 0x35]
dec ebx
dec ebp
add esp, 4
pop ebx
push edx
jmp 0x508673
or edx, 0xc4f1
pop edx
lea edx, [ebp - 0x16cc]
mov dword [ebp - 0xc28], edx
mov eax, dword [ebp - 0x4d8]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xc24], ecx
xor edx, edx
mov word [ebp - 0x1fc], dx
xor eax, eax
mov word [ebp - 0x104], ax
push edi
push ebx
add esp, 4
sub edi, 0xf2ed
call 0x5086be
add byte [eax + 0x42], cl
cmp edi, dword [edi + ecx*2]
inc eax
add esp, 4
and edi, 0x14cfc
and edi, 0x154cb
pop edi
push edi
jmp 0x5086d8
pop edi
mov ecx, dword [ebp - 0xc24]
mov dx, word [ecx]
mov word [ebp - 0xf82], dx
mov eax, dword [ebp - 0xc24]
add eax, 2
mov dword [ebp - 0xc24], eax
mov cx, word [ebp - 0xf82]
mov word [ebp - 0x1fc], cx
mov edx, dword [ebp - 0xc28]
mov ax, word [edx]
mov word [ebp - 0xf84], ax
mov ecx, dword [ebp - 0xc28]
add ecx, 2
mov dword [ebp - 0xc28], ecx
mov dx, word [ebp - 0xf84]
mov word [ebp - 0x104], dx
push edx
push ecx
add esp, 4
jmp 0x50873d
jmp 0x508746
sub edx, 0xc741
pop edx
push edi
push edi
add esp, 4
or edi, 0x149f4
and edi, 0xc4c6
xor edi, 0x4297
pop edi
movzx eax, word [ebp - 0x104]
test eax, eax
jne 0x508788
movzx ecx, word [ebp - 0x1fc]
movzx edx, word [ebp - 0x104]
sub ecx, edx
mov dword [ebp - 0x14e4], ecx
jmp 0x5087eb
movzx eax, word [ebp - 0x1fc]
movzx ecx, word [ebp - 0x104]
cmp eax, ecx
je 0x5086a7
movzx edx, word [ebp - 0x1fc]
xor edx, 0x20
movzx eax, word [ebp - 0x104]
cmp edx, eax
je 0x5086a7
movzx ecx, word [ebp - 0x1fc]
movzx edx, word [ebp - 0x104]
cmp ecx, edx
jge 0x5087d5
mov dword [ebp - 0x14e0], 0xffffffff
jmp 0x5087df
mov dword [ebp - 0x14e0], 1
mov eax, dword [ebp - 0x14e0]
mov dword [ebp - 0x14e4], eax
cmp dword [ebp - 0x14e4], 0
jne 0x508834
push ecx
xor ecx, 0x6c5a
pop edx
insb byte es:[edi], dx
add byte [eax], al
and ecx, 0x7786
sub ecx, 0x1a59
pop ecx
push edx
push edx
add esp, 4
add edx, 0xe690
add edx, 0x5b8a
add edx, 0x523
add edx, 0xe3e4
pop edx
mov ecx, dword [ebp - 0x4d8]
mov dword [ebp - 0x6ec], ecx
jmp 0x50889c
push edx
push ecx
add esp, 4
add edx, 0x18461
pop edx
push edx
call 0x508850
add byte [edx], bh
cmp dword [ecx + 0x42], eax
dec esp
cmp ecx, dword [edx + 0x3f]
xor al, 0x83
les eax, [ecx + eax*4]
loop 0x5087f7
cmp al, 1
add byte [ecx + 0x13695c2], al
add byte [ecx + 0x1361cca], al
add byte [edx - 0x75], bl
xchg ebp, eax
sub bl, bh
invalid
push esi
or esi, 0x18413
xor esi, 0x1674c
call 0x5088b6
add byte [ebx + 0x38], cl
cmp byte [eax + 0x3f], cl
inc edx
dec eax
add esp, 4
pop esi
push eax
push ecx
add esp, 4
sub eax, 0x7c9d
pop eax
push esi
add esi, 0x14dd3
pop esi
cmp dword [ebp - 0x6ec], 0
jne 0x508918
push ebx
push eax
add esp, 4
xor ebx, 0xc08c
pop ebx
push ebx
push ecx
add esp, 4
and ebx, 0xf853
jmp 0x5088f4
xor ebx, 0x6e69
xor ebx, 0xdb8e
pop ebx
push esi
xor esi, 0xe480
pop esi
mov dword [ebp - 0x738], 0
jmp 0x50943f
push edi
push edx
add esp, 4
call 0x50892a
add byte [ebp + 0x49], al
dec edx
inc esi
dec ebp
aaa
inc esi
add esp, 4
xor edi, 0x5dc6
call 0x508940
add byte [esi + 0x50], al
dec ecx
cmp bh, byte [ecx]
dec ecx
dec ebp
add esp, 4
xor edi, 0x15b87
pop edi
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 0x508989
mov eax, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], eax
jmp 0x508c7a
mov ecx, dword [ebp - 0x14e8]
mov edx, dword [ebp - 0x2f8]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x14ec], edx
jne 0x5089b1
mov eax, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], eax
jmp 0x508c7a
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 0x5089e3
mov edx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], edx
jmp 0x508c7a
mov eax, dword [ebp - 0x2f8]
add eax, dword [ebp - 0x14f0]
mov dword [ebp - 0x6f0], eax
jne 0x508a08
mov ecx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], ecx
jmp 0x508c7a
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 0x508a62
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 0x508c6e
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 0x508ad2
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 0x508b84
mov ecx, dword [ebp - 0x180]
movsx edx, byte [ebp + ecx - 0x820]
test edx, edx
je 0x508b84
push eax
push edx
add esp, 4
call 0x508b13
add byte [eax + 0x47], al
dec edx
dec ebp
xor esi, dword ss:[edi]
dec ebp
inc esp
add esp, 4
pop eax
push ecx
or ecx, 0x13f8a
add ecx, 0x3845
or ecx, 0x3c70
xor ecx, 0x5854
pop ecx
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 0x508b76
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 0x508b7d
jmp 0x508ac3
jmp 0x508b84
push esi
xor esi, 0x12696
call 0x508b97
add byte [edi], dh
aaa
inc edx
xor al, 0x47
inc esi
add esp, 4
call 0x508ba7
add byte [edi + 0x42], al
aas
dec eax
dec ecx
xor dh, byte [esi]
add esp, 4
pop esi
push ebx
jmp 0x508bb5
pop ebx
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 0x508be3
mov dword [ebp - 0xc30], 0
jmp 0x508c52
push edx
push ebx
add esp, 4
add edx, 0x13c99
call 0x508bfd
add byte [ebx], dh
cmp eax, dword [esi + 0x4a]
aaa
cmp dh, byte [esi]
aas
add esp, 4
pop edx
push ebx
sub ebx, 0x13c53
sub ebx, 0xe4d4
and ebx, 0x1049
pop ebx
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 0x508c48
mov dword [ebp - 0xc30], 0xffffffff
jmp 0x508c52
mov dword [ebp - 0xc30], 1
cmp dword [ebp - 0xc30], 0
jne 0x508c69
mov ecx, dword [ebp - 0x18ac]
mov dword [ebp - 0x3c4], ecx
jmp 0x508c7a
jmp 0x508a53
mov edx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], edx
cmp dword [ebp - 0x3c4], 0
je 0x508d55
push edx
push ecx
add esp, 4
jmp 0x508c95
pop edx
push edi
push ebx
add esp, 4
call 0x508ca9
add byte [eax + 0x33], cl
cmp dword [0x3344424c], esi
add esp, 4
or edi, 0xaa7e
sub edi, 0x218a
pop edi
mov eax, dword [ebp - 0x3c4]
mov dword [ebp - 0x18b0], eax
push eax
jmp 0x508ccc
sub eax, 0xc573
add eax, 0xe520
and eax, 0x2d7f
pop eax
push ecx
push esi
add esp, 4
or ecx, 0xd8f1
xor ecx, 0x15749
and ecx, 0x154b1
pop ecx
mov ecx, dword [ebp - 0x18b0]
mov dword [ebp - 0x18b4], ecx
lea edx, [ebp - 0x1628]
push edx
call dword [ebp - 0x18b4]
test eax, eax
jne 0x508d55
push esi
call 0x508d22
add byte [ebp + 0x38], cl
cmp al, 0x35
xor al, 0x38
add esp, 4
and esi, 0x179cc
sub esi, 0x11dc6
xor esi, 0x14aff
pop esi
push ebx
xor ebx, 0x621e
add ebx, 0x4bfa
pop ebx
mov dword [ebp - 0x738], 0
jmp 0x50943f