Function at 0x10078fa
Capabilities:
Get number of processors

Disassembly:
mov eax, dword [edi + 4]
test al, 0x38
je 0x100778f
test al, 4
jne 0x100778f
movzx eax, word [0x1038076]
push eax
lea eax, [edi + 8]
push eax
push ebx
call fcn.010083ca
test eax, eax
je 0x10078cc
or dword [edi + 4], 4
mov edi, dword [edi]
jmp 0x10078c4
mov eax, 0xc0000001
jmp 0x1007966
mov dword [0x1038070], edx
jmp 0x1007964
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x40
push esi
xor esi, esi
cmp dword [0x1038080], esi
jne 0x1007804
mov ecx, dword [0x1038030]
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
push 0x1e0
add ecx, 0x280000
push ecx
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov dword [0x1038080], eax
cmp eax, esi
je 0x100dc9e
mov dword [0x1038078], esi
mov dword [0x103807c], 0x14
push ebx
push esi
push esi
push esi
push 0x1008484
call dword [sym.imp.GDI32.dll_CreateDCW]
push esi
mov esi, dword [sym.imp.GDI32.dll_SetFontEnumeration]
mov ebx, eax
call esi
mov dword [ebp - 4], eax
and eax, 0xfffffffe
push eax
call esi
push 0xa
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [ebp - 0x40]
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetTextMetricsW]
test eax, eax
je 0x1007893
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x28]
add edx, eax
mov al, byte [ebp - 9]
mov byte [0x1038001], al
mov al, byte [ebp - 8]
mov word [0x1038074], cx
mov word [0x1038076], dx
cmp al, 0x80
je 0x100dca8
cmp al, 0x81
je 0x100dca8
cmp al, 0x88
je 0x100dca8
xor edx, edx
cmp al, 0x86
sete dl
mov eax, edx
test eax, eax
jne 0x100dca8
push edi
mov edi, 0x1038840
push edi
push 0x20
push ebx
call dword [sym.imp.GDI32.dll_GetTextFaceW]
test eax, eax
je 0x100dcbb
push edi
push 0x1038490
call fcn.01007970
test eax, eax
je 0x10078be
or dword [eax + 4], 0x28
mov edi, dword [0x1038490]
test edi, edi
jne 0x1007766
push dword [ebp - 4]
call esi
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
xor edx, edx
cmp dword [0x1038490], edx
je 0x1007796
cmp edi, edx
jne 0x1007796
mov esi, dword [0x1038078]
mov eax, dword [0x1038080]
cmp esi, edx
jbe 0x100790a
cmp word [0x1038074], dx
je 0x100dcc7
xor edi, edi
cmp esi, edx
jbe 0x10077a0
add eax, 0x15
mov cx, word [eax - 0x11]
cmp cx, word [0x1038074]
je 0x1007931
inc edi
add eax, 0x18
cmp edi, esi
jb 0x1007917
jmp 0x10077a0
mov cx, word [eax - 0xf]
cmp cx, word [0x1038076]
jne 0x1007924
mov cl, byte [eax - 1]
cmp cl, byte [0x1038001]
jne 0x1007924
cmp byte [section..data], 0
jne 0x100dcf8
mov dword [0x1038070], edi
cmp edi, esi
jae 0x10077a0
xor eax, eax
pop edi
pop ebx
pop esi
leave
ret
mov eax, 0xc0000017
jmp 0x1007968
movsx eax, cx
cdq
sub eax, edx
sar eax, 1
mov word [0x1038074], ax
jmp 0x1007893
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x1007796
cmp word [0x1038076], dx
jne 0x100790a
mov cx, word [eax + 4]
mov word [0x1038074], cx
mov cx, word [eax + 6]
mov word [0x1038076], cx
mov cl, byte [eax + 0x14]
mov byte [0x1038001], cl
jmp 0x100790a
mov cl, byte [eax]
cmp cl, 0x80
je 0x1007956
cmp cl, 0x81
je 0x1007956
cmp cl, 0x88
je 0x1007956
xor ebx, ebx
cmp cl, 0x86
sete bl
mov ecx, ebx
cmp ecx, edx
je 0x1007924
jmp 0x1007956