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

Disassembly:
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 0x407290
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 0x4070f4
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 0x4071a6
mov ecx, dword [ebp - 0x180]
movsx edx, byte [ebp + ecx - 0x820]
test edx, edx
je 0x4071a6
push eax
xor eax, 0x3849
pop eax
push ecx
push edi
add esp, 4
jmp 0x407134
pop ecx
push esi
push ecx
add esp, 4
sub esi, 0xd248
sub esi, 0x8c0f
add esi, 0xfc55
add esi, 0xbed4
pop esi
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 0x407198
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 0x40719f
jmp 0x4070e5
jmp 0x4071a6
push edi
or edi, 0x17558
add edi, 0x4dd8
xor edi, 0x5ed9
pop edi
push eax
push edi
add esp, 4
call fcn.004071cc
add byte [edi], dh
cmp byte [ecx + 0x41], cl
cmp ecx, dword [eax + 0x47]
add esp, 4
jmp 0x4071d7
pop eax
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 0x407205
mov dword [ebp - 0xc30], 0
jmp 0x407274
push esi
and esi, 0x1303a
pop esi
push ebx
push esi
add esp, 4
add ebx, 0xb262
pop ebx
push esi
push edx
add esp, 4
add esi, 0xdc4f
and esi, 0xd7af
xor esi, 0x815e
xor esi, 0x55e5
pop esi
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 0x40726a
mov dword [ebp - 0xc30], 0xffffffff
jmp 0x407274
mov dword [ebp - 0xc30], 1
cmp dword [ebp - 0xc30], 0
jne 0x40728b
mov ecx, dword [ebp - 0x18ac]
mov dword [ebp - 0x3c4], ecx
jmp 0x40729c
jmp 0x407075
mov edx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], edx
cmp dword [ebp - 0x3c4], 0
je 0x407377
push edx
sub edx, 0xc6f6
pop edx
push edx
call 0x4072be
add byte [edx + esi], dh
cmp dword [eax + 0x40], edx
inc ebx
add esp, 4
or edx, 0xb44b
call 0x4072d7
add byte [edx], dh
dec ecx
cmp byte [esi], bh
inc ecx
dec ecx
cmp al, 0x50
inc edi
inc edi
add esp, 4
pop edx
mov eax, dword [ebp - 0x3c4]
mov dword [ebp - 0x18b0], eax
push ebx
push edx
add esp, 4
xor ebx, 0x2282
sub ebx, 0x17754
sub ebx, 0x8be3
pop ebx
push ecx
jmp 0x407305
call 0x407315
add byte [0x3235324f], dh
xor al, 0x35
cmp eax, dword [edi + 0x4e]
add esp, 4
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 0x407377
push ebx
push ecx
add esp, 4
add ebx, 0xaefa
xor ebx, 0x75a
pop ebx
push edx
push eax
add esp, 4
and edx, 0x66f9
xor edx, 0xe9ce
and edx, 0x1050d
jmp 0x407367
pop edx
mov dword [ebp - 0x738], 0
jmp 0x407a61
push ebx
push edi
add esp, 4
xor ebx, 0xb9b5
xor ebx, 0xdd13
jmp 0x407391
pop ebx
push eax
xor eax, 0x13167
pop eax
push ecx
and ecx, 0x11bdb
jmp 0x4073a8
pop ecx
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 ebx
and ebx, 0x36c2
add ebx, 0x45c9
xor ebx, 0xb26f
add ebx, 0x13d30
pop ebx
push ecx
push edx
add esp, 4
and ecx, 0xafc0
sub ecx, 0xcf54
xor ecx, 0x10e6
pop ecx
cmp dword [ebp - 0x14f4], 0
jne 0x40741a
mov dword [ebp - 0x2e0], 0
jmp 0x4076c1
mov ecx, dword [ebp - 0x14f4]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xc3c], eax
push esi
push eax
add esp, 4
call 0x40743f
add byte [ebx], dh
cmp al, 0x4c
push eax
cmp eax, 0x834d3b4a
les eax, [ebx + ebp*8]
pop es
xor ecx, dword [ebp + 0x4d]
dec ecx
push eax
inc esi
pop esi
push edx
push edi
add esp, 4
or edx, 0xf2ca
sub edx, 0x155df
pop edx
cmp dword [ebp - 0xc3c], 0
jne 0x407476
mov dword [ebp - 0x2e0], 0
jmp 0x4076c1
mov ecx, dword [ebp - 0xc3c]
mov dword [ebp - 0x4dc], ecx
push edx
call 0x407491
add byte [edi + 0x35], cl
dec ebx
inc ebp
cmp dword [edi], esi
xor eax, 0x4c48345
pop edx
push edi
push ecx
add esp, 4
call 0x4074aa
add byte [edi + ecx*2 + 0x3a], al
cmp dword [eax + 0x34], eax
inc esp
cmp al, byte [ecx + 0x3a]
add esp, 4
and edi, 0x83fd
pop edi
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 dword [ebx]
shl byte [esi - 0x77], cl
xchg ebp, eax
add dh, bh
invalid
push ebx
call 0x4074eb
add byte [esi + 0x39], cl
push eax
cmp bh, byte [ebx]
inc ecx
add esp, 4
call 0x4074fe
add byte [ecx], bh
aaa
inc esp
dec ebp
dec edi
aas
inc ebx
inc esp
xor eax, 0x8104c483
jmp 0x4074ce
push esi
or esi, 0x17913
call 0x4076d4
add byte [edx + 0x3e], al
cmp al, 0x3a
inc esi
add esp, 4
add esi, 0xbd71
add esi, 0x99a5
pop esi
push esi
xor esi, 0x355c
jmp 0x4076f2
pop esi
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2fc], ecx
push edi
add edi, 0x17032
pop edi
push edx
push eax
add esp, 4
and edx, 0x1c0a
add edx, 0x53ae
or edx, 0xffac
add edx, 0x13769
pop edx
push ecx
push esi
add esp, 4
and ecx, 0x133e8
pop ecx
mov dword [ebp - 0x70c], 0
mov edx, dword [ebp - 0x2fc]
mov dword [ebp - 0x1500], edx
cmp dword [ebp - 0x1500], 0
jne 0x407764
mov eax, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], eax
jmp 0x407a55
mov ecx, dword [ebp - 0x1500]
mov edx, dword [ebp - 0x2fc]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x1504], edx
jne 0x40778c
mov eax, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], eax
jmp 0x407a55
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 0x4077be
mov edx, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], edx
jmp 0x407a55
mov eax, dword [ebp - 0x2fc]
add eax, dword [ebp - 0x1508]
mov dword [ebp - 0x700], eax
jne 0x4077e3
mov ecx, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], ecx
jmp 0x407a55
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 0x40783d
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 0x407a49
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 0x4078ad
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 0x40795f
mov ecx, dword [ebp - 0x184]
movsx edx, byte [ebp + ecx - 0x804]
test edx, edx
je 0x40795f
push ecx
call 0x4078ea
add byte [ebx], bh
dec ecx
cmp al, byte [ebx + 0x44]
dec esp
inc esi
inc ebp
add esp, 4
xor ecx, 0x50c6
pop ecx
push ebx
push edi
add esp, 4
add ebx, 0xb88d
sub ebx, 0xa921
or ebx, 0x9d04
pop ebx
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 0x407951
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 0x407958
jmp 0x40789e
jmp 0x40795f
push ecx
jmp 0x407969
pop ecx
push esi
push eax
add esp, 4
jmp 0x407975
add esi, 0x137b7
call 0x407987
add byte [ebx + esi], bh
dec edi
inc ebx
add esp, 4
xor esi, 0xd7a3
pop esi
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 0x4079be
mov dword [ebp - 0xc40], 0
jmp 0x407a2d
push edi
sub edi, 0x13e02
and edi, 0xabdd
jmp 0x4079d2
pop edi
push ebx
push ebx
add esp, 4
xor ebx, 0x1250a
and ebx, 0x14502
jmp 0x4079e9
add ebx, 0x2a7
pop ebx
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 0x407a23
mov dword [ebp - 0xc40], 0xffffffff
jmp 0x407a2d
mov dword [ebp - 0xc40], 1
cmp dword [ebp - 0xc40], 0
jne 0x407a44
mov ecx, dword [ebp - 0x18cc]
mov dword [ebp - 0x4e0], ecx
jmp 0x407a55
jmp 0x40782e
mov edx, dword [ebp - 0x70c]
mov dword [ebp - 0x4e0], edx
mov eax, dword [ebp - 0x4e0]
mov dword [ebp - 0x738], eax