Function at 0x412a10
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x607e40
push 0x56cda0
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x61df64]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov ebx, ecx
mov dword [ebp - 0x64], ebx
mov byte [ebp - 0x45], 0
xor edi, edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x44], 0x10028
mov dword [ebp - 0x40], 0x25
mov dword [ebp - 0x3c], 0x1800
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], 0x20000000
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
xor esi, esi
mov dword [ebp - 0x4c], esi
lea eax, [ebx + 0x18]
mov dword [ebp - 0x58], eax
push esi
push 0x5f1300
mov ecx, eax
call fcn.00412200
lea eax, [ebx + 0x30]
mov dword [ebp - 0x5c], eax
push esi
push 0x5f1300
mov ecx, eax
call fcn.00412200
lea eax, [ebx + 0x48]
mov dword [ebp - 0x60], eax
push esi
push 0x5f1300
mov ecx, eax
call fcn.00412200
mov dword [ebx + 0x60], esi
mov dword [ebx + 0x64], esi
mov dword [ebx + 0x68], esi
call fcn.00412c90
mov ebx, eax
mov dword [ebp - 0x54], ebx
test ebx, ebx
je 0x412c15
push ebx
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
mov dword [ebp - 0x50], edi
test edi, edi
jne 0x412af6
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x412c15
mov dword [ebp - 4], esi
lea eax, [ebp - 0x44]
push eax
push edi
call dword [sym.imp.GDI32.dll_ChoosePixelFormat]
test eax, eax
jns 0x412b1a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], 0xfffffffe
jmp 0x412c15
lea ecx, [ebp - 0x44]
push ecx
push eax
push edi
call dword [sym.imp.GDI32.dll_SetPixelFormat]
test eax, eax
jne 0x412b3c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], 0xfffffffe
jmp 0x412c15
push edi
call dword [sym.imp.OPENGL32.dll_wglCreateContext]
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x412b5c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], 0xfffffffe
jmp 0x412c12
push eax
push edi
call dword [sym.imp.OPENGL32.dll_wglMakeCurrent]
test eax, eax
jne 0x412b7a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], 0xfffffffe
jmp 0x412c12
push 0x1f00
mov esi, dword [sym.imp.OPENGL32.dll_glGetString]
call esi
push eax
mov ecx, dword [ebp - 0x58]
call fcn.00412d20
push 0x1f01
call esi
push eax
mov ecx, dword [ebp - 0x5c]
call fcn.00412d20
push 0x1f02
call esi
push eax
mov ecx, dword [ebp - 0x60]
call fcn.00412d20
push str.glBindVertexArray
call dword [sym.imp.OPENGL32.dll_wglGetProcAddress]
mov ecx, dword [ebp - 0x64]
mov dword [ecx + 0xb4], eax
lea eax, [ecx + 0x68]
push eax
lea eax, [ecx + 0x64]
push eax
lea eax, [ecx + 0x60]
push eax
push str._d._d._d
mov ecx, dword [ebp - 0x60]
call fcn.00411d30
push eax
call fcn.00413270
add esp, 0x14
push 0
push edi
call dword [sym.imp.OPENGL32.dll_wglMakeCurrent]
mov byte [ebp - 0x45], 1
mov dword [ebp - 4], 0xfffffffe
jmp 0x412c12
mov esi, dword [ebp - 0x4c]
test esi, esi
je 0x412c46
mov dword [ebp - 4], 1
push esi
call dword [sym.imp.OPENGL32.dll_wglDeleteContext]
mov dword [ebp - 4], 0xfffffffe
jmp 0x412c46
test edi, edi
je 0x412c52
push edi
push ebx
call dword [sym.imp.USER32.dll_ReleaseDC]
test ebx, ebx
je 0x412c5d
push ebx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov al, byte [ebp - 0x45]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00567f8c
mov esp, ebp
pop ebp
ret