Function at 0x10037580
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a1449
mov eax, dword fs:[0]
push eax
sub esp, 0x410
mov eax, dword [0x100c50e4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x398], edi
imul ecx, dword [ebp + 0xc], 0x64
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x390], esi
add ecx, dword [ebx + 4]
mov dword [edi + 0x34], ecx
cmp ecx, 0x64
jg 0x100375dd
mov dword [edi + 0x34], 0x64
mov ecx, 0x64
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x28]
mov cl, byte [ebx + 0x10]
mov esi, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x3a8], eax
mov eax, dword [ebx + 0x18]
mov ebx, dword [ebx]
mov dword [ebp - 0x3b0], eax
divss xmm0, dword [0x100baa04]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x3a8]
mov byte [ebp - 0x391], cl
mov byte [ebp - 0x38], cl
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x3ac], esi
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x3a4], xmm0
movsd qword [ebp - 0x44], xmm0
test ecx, ecx
je 0x100376aa
push 0x28
call fcn.10083420
mov esi, eax
add esp, 4
mov dword [ebp - 0x398], esi
mov dword [ebp - 4], 0
lea eax, [ebp - 0x4c]
xorps xmm0, xmm0
lea ebx, [esi + 0xc]
movq qword [esi], xmm0
mov ecx, ebx
mov dword [esi + 8], 0
push eax
mov dword [esi + 4], 1
mov dword [esi + 8], 1
mov dword [esi], vtable.._AV___Ref_count_obj2_UFontDirectWrite__A0xc8fd1d1f_Internal_Scintilla___std__.0
call fcn.1001b960
mov dword [ebp - 4], 0xffffffff
jmp 0x100377cf
push 0x14
call fcn.10083420
add esp, 4
mov dword [ebp - 0x3b8], eax
mov dword [ebp - 4], 1
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 8], 0
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax], vtable.._AV___Ref_count_obj2_UFontGDI__A0xc8fd1d1f_Internal_Scintilla___std__.0
add eax, 0xc
push 0x5c
mov dword [ebp - 0x3b4], eax
push 0
mov dword [eax], vtable.FontGDI.0
mov dword [eax + 4], 0
lea eax, [ebp - 0x41c]
push eax
call fcn.10085460
movsd xmm0, qword [ebp - 0x3a4]
lea esi, [ebp - 0x41c]
add esp, 4
mov ecx, 0x17
lea edi, [ebp - 0x74]
rep movsd dword es:[edi], dword [esi]
movsd qword [esp], xmm0
call fcn.10090466
cdq
add esp, 8
xor eax, edx
sub eax, edx
neg eax
cmp byte [ebp - 0x391], 0
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x3ac]
setne byte [ebp - 0x60]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x3a8]
mov byte [ebp - 0x5d], al
mov eax, dword [ebp - 0x3b0]
and eax, 0xf
sub eax, 1
je 0x1003777c
sub eax, 1
je 0x10037778
sub eax, 1
je 0x10037774
xor al, al
jmp 0x1003777e
mov al, 5
jmp 0x1003777e
mov al, 4
jmp 0x1003777e
mov al, 3
sub esp, 8
mov byte [ebp - 0x5a], al
mov esi, esp
lea ecx, [ebp - 0x58]
lea edi, [ebx + 1]
mov dword [esi], ebx
nop
mov al, byte [ebx]
inc ebx
test al, al
jne 0x10037790
sub ebx, edi
mov edx, 0x20
mov dword [esi + 4], ebx
call fcn.10027010
add esp, 8
lea eax, [ebp - 0x74]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov ebx, dword [ebp - 0x3b4]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x3b8]
mov edi, dword [ebp - 0x398]
mov dword [ebx + 4], eax
mov dword [edi + 0x38], ebx
mov ebx, dword [edi + 0x3c]
mov dword [edi + 0x3c], esi
test ebx, ebx
je 0x100377fd
or esi, 0xffffffff
mov eax, esi
lock xadd dword [ebx + 4], eax
jne 0x100377fd
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
lock xadd dword [ebx + 8], esi
dec esi
jne 0x100377fd
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov ebx, dword [ebp - 0x390]
mov ecx, ebx
push dword [edi + 0x38]
mov eax, dword [ebx]
mov eax, dword [eax + 0x94]
mov dword [ebp - 0x390], eax
call dword [ebp - 0x390]
sub esp, 8
fstp qword [esp]
call fcn.1009f110
fstp qword [edi]
mov eax, dword [ebx]
add esp, 8
mov ecx, ebx
mov eax, dword [eax + 0x98]
push dword [edi + 0x38]
mov dword [ebp - 0x390], eax
call dword [ebp - 0x390]
sub esp, 8
fstp qword [esp]
call fcn.1009f110
mov esi, dword [edi + 0x38]
add esp, 8
fstp qword [edi + 8]
mov ecx, dword [ebx]
push esi
mov eax, dword [ecx + 0x94]
mov dword [ebp - 0x390], eax
mov eax, dword [ecx + 0x9c]
mov ecx, ebx
mov dword [ebp - 0x398], eax
call dword [ebp - 0x390]
fstp qword [ebp - 0x3a4]
push esi
mov ecx, ebx
call dword [ebp - 0x398]
fsubr qword [ebp - 0x3a4]
mov ecx, ebx
push dword [edi + 0x38]
fstp qword [edi + 0x10]
mov eax, dword [ebx]
mov eax, dword [eax + 0xa4]
mov dword [ebp - 0x390], eax
call dword [ebp - 0x390]
mov ecx, dword [edi + 0x38]
sub esp, 8
fstp qword [ebp - 0x3a4]
movsd xmm0, qword [ebp - 0x3a4]
unpcklpd xmm0, xmm0
movups xmmword [edi + 0x18], xmm0
mov eax, dword [ebx]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x390], eax
mov eax, esp
push ecx
mov ecx, ebx
mov dword [eax], 0x100b71e0
mov dword [eax + 4], 1
call dword [ebp - 0x390]
mov eax, dword [ebp + 0x14]
fstp qword [ebp - 0x3a4]
movsd xmm0, qword [ebp - 0x3a4]
movsd qword [edi + 0x28], xmm0
cmp byte [eax + 0x1c], 0
je 0x100379dd
push 0x318
lea eax, [ebp - 0x38c]
push 0
push eax
call fcn.10085460
mov eax, dword [ebx]
lea ecx, [ebp - 0x38c]
add esp, 0xc
push ecx
push 0x63
push str.Ayfi_________._0123456789:_____ABCDEFGHIJKLMNOPQRSTUVWXYZ____abcdefghijklmnopqrstuvwxyz
push dword [edi + 0x38]
mov ecx, ebx
call dword [eax + 0x8c]
movsd xmm2, qword [ebp - 0x38c]
lea ecx, [ebp - 0x38c]
lea eax, [ebp - 0x384]
movsd xmm1, qword [eax]
lea edx, [ebp - 0x74]
movaps xmm0, xmm1
add ecx, 8
subsd xmm0, xmm2
add eax, 8
movaps xmm2, xmm1
movsd qword [ecx], xmm0
cmp eax, edx
jne 0x10037951
lea eax, [ebp - 0x38c]
lea ecx, [ebp - 0x384]
nop dword [eax]
movsd xmm0, qword [ecx]
lea edx, [ebp - 0x74]
comisd xmm0, xmmword [eax]
cmova eax, ecx
add ecx, 8
cmp ecx, edx
jne 0x10037980
movsd xmm1, qword [eax]
lea ecx, [ebp - 0x384]
lea eax, [ebp - 0x38c]
movsd xmm0, qword [eax]
lea edx, [ebp - 0x74]
comisd xmm0, xmmword [ecx]
cmova eax, ecx
add ecx, 8
cmp ecx, edx
jne 0x100379a5
movsd xmm0, qword [eax]
subsd xmm1, xmm0
movsd qword [edi + 0x20], xmm0
movsd xmm0, qword [0x100ba920]
divsd xmm1, qword [edi + 0x18]
comisd xmm0, xmm1
seta al
jmp 0x100379df
xor al, al
mov byte [edi + 0x30], al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10083210
mov esp, ebp
pop ebp
ret 0x14