Function at 0x1002f130
Capabilities:
Get number of processors

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b5035
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x60
mov eax, dword [0x10110040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
mov edi, dword [0x1015fa04]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x28], eax
lea esi, [edi + 0x30]
push esi
call fcn.1008b334
add esp, 4
test eax, eax
jne 0x1002fb09
mov eax, dword [esi + 0x2c]
cmp eax, 0x7fffffff
je 0x1002fb10
mov edi, dword [edi + 0x18]
push esi
call fcn.1008b345
mov ecx, dword [ebp - 0x30]
add esp, 4
mov esi, str.GL_STACK_UNDERFLOW
test ecx, ecx
je 0x1002fa6b
cmp dword [ecx + 0x218], 0xcafebabe
jne 0x1002fa6b
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x1002fa6b
cmp dword [eax + 0x3c], 0
je 0x1002fa6b
cmp byte [sym.Redline.dll_dosMode], 0
jne 0x1002f1f4
cmp ecx, edi
jne 0x1002fa6b
mov edx, dword [ebp - 0x28]
cmp byte [edx], 0
jne 0x1002f21f
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
cmp dword [eax + 0xa8], 0
jne 0x1002f21f
mov al, byte [ecx + 0x212]
mov byte [ecx + 0x212], 0
test al, al
je 0x1002fa6b
push 0x84c0
mov byte [edx], 0
call dword [0x1015f5dc]
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
push dword [eax + 0x11c]
push 0xde1
call dword [sym.imp.OPENGL32.dll_glBindTexture]
lea eax, [ebp - 0x18]
push eax
push 0xc02
call dword [sym.imp.OPENGL32.dll_glGetIntegerv]
cmp byte [sym.Redline.dll_dosMode], 0
jne 0x1002f32b
cmp byte [edi + 0x44], 0
jne 0x1002f338
push 0x8ce0
call dword [sym.imp.OPENGL32.dll_glReadBuffer]
mov esi, dword [sym.imp.OPENGL32.dll_glTexParameteri]
push 0x812f
push 0x2802
push 0xde1
call esi
push 0x812f
push 0x2803
push 0xde1
call esi
push 0x2600
push 0x2801
push 0xde1
call esi
push 0x2600
push 0x2800
push 0xde1
call esi
push 0
push dword [edi + 0x50]
push dword [edi + 0x4c]
push 0
push 0
push 0x1908
push 0
push 0xde1
call dword [sym.imp.OPENGL32.dll_glCopyTexImage2D]
call dword [sym.imp.OPENGL32.dll_glGetError]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x1002f79e
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 0x50]
mov dword [ebp - 0x30], eax
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x20], 0
lea esi, [eax + 0xc14]
mov dword [ebp - 0x1c], eax
push esi
call fcn.1008b334
add esp, 4
test eax, eax
jne 0x1002fb1b
jmp 0x1002f695
mov edx, dword [ebp - 0x30]
cmp byte [edx + 0x44], 0
je 0x1002f269
mov al, byte [edi + 0x44]
mov byte [ebp - 0x21], al
mov dword [ebp - 0x1c], edi
test al, al
jne 0x1002f356
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea ecx, [ecx + 0xbd8]
call fcn.1004fb30
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
cmp byte [eax + 0x1c8], 0
mov ecx, dword [eax + 0xcc]
je 0x1002f426
test ecx, ecx
je 0x1002f3ce
cmp dword [ecx + 0x218], 0xcafebabe
jne 0x1002f3ce
mov edx, dword [ecx + 0x48]
test edx, edx
je 0x1002f3ce
mov edx, dword [edx + 0x3c]
mov dword [ebp - 0x28], edx
test edx, edx
je 0x1002f3ce
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
sub eax, dword [edx + 0x5c]
xor edx, edx
div dword [ecx + 0x14]
mov edx, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov ecx, dword [sym.Redline.dll_pAlloc]
mov dword [ebp - 0x30], eax
mov eax, dword [edx + 0x320]
add eax, dword [ecx + 0x10]
mov ecx, dword [edx + 0xcc]
xor edx, edx
mov ecx, dword [ecx + 0x48]
mov ecx, dword [ecx + 0x3c]
sub eax, dword [ecx + 0x5c]
div dword [ecx + 0x14]
mov edx, dword [ebp - 0x30]
jmp 0x1002f3f3
mov edx, dword [eax + 0x320]
mov eax, dword [sym.Redline.dll_pAlloc]
add edx, dword [eax + 0x10]
mov dword [ebp - 0x28], edx
xor edx, edx
test ecx, ecx
je 0x1002f3f1
cmp dword [ecx + 0x218], 0xcafebabe
je 0x1002f3fe
xor eax, eax
cmp edx, eax
jne 0x1002f41f
push 0x404
jmp 0x1002f43c
mov ecx, dword [ecx + 0x48]
test ecx, ecx
je 0x1002f3f1
mov ecx, dword [ecx + 0x3c]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], edx
test ecx, ecx
je 0x1002f3f1
sub eax, dword [ecx + 0x5c]
xor edx, edx
div dword [ecx + 0x14]
mov edx, dword [ebp - 0x30]
jmp 0x1002f3f3
push 0x405
jmp 0x1002f43c
push 0
call fcn.1007c5f0
xor ecx, ecx
cmp dword [ebp - 0x2c], eax
setne cl
add ecx, 0x404
push ecx
call dword [sym.imp.OPENGL32.dll_glReadBuffer]
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea eax, [ecx + 0xdf4]
push eax
push dword [ecx + 0x868]
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
movzx eax, byte [ecx + 0xc4]
movss xmm0, dword [ecx + 0xc0]
movss xmm3, dword [ecx + 0xb8]
movss xmm2, dword [ecx + 0xb4]
push eax
movzx eax, byte [ecx + 0x828]
push eax
push dword [ecx + 0xe00]
push dword [ecx + 0xdfc]
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [ecx + 0xbc]
movss dword [esp], xmm0
push dword [ecx + 0x868]
lea ecx, [ebp - 0x70]
call fcn.10011850
push 0x812f
push 0x2802
push 0xde1
call dword [sym.imp.OPENGL32.dll_glTexParameteri]
push 0x812f
push 0x2803
push 0xde1
call dword [sym.imp.OPENGL32.dll_glTexParameteri]
push 0x2600
push 0x2801
push 0xde1
call dword [sym.imp.OPENGL32.dll_glTexParameteri]
push 0x2600
push 0x2800
push 0xde1
call dword [sym.imp.OPENGL32.dll_glTexParameteri]
cvttss2si eax, dword [ebp - 0x54]
push 0
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push eax
cvttss2si eax, dword [ebp - 0x58]
push eax
push 0x1908
push 0
push 0xde1
call dword [sym.imp.OPENGL32.dll_glCopyTexImage2D]
call dword [sym.imp.OPENGL32.dll_glGetError]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x1002f627
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea edx, [ebp - 0x58]
lea eax, [ecx + 0x860]
push eax
lea eax, [ecx + 0x85c]
push eax
lea eax, [ebp - 0x54]
push eax
push 0x64
push str.CaptureRenderSurface__Primary_Surface___2__glCopyTexImage2D__Primary_surface__dims____dims_x
lea ecx, [ebp - 0x50]
call fcn.10018d80
add esp, 0x14
mov edx, eax
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x2c]
cmp eax, 0x502
jne 0x1002f58b
mov esi, str.GL_INVALID_OPERATION
jmp 0x1002f5c2
cmp eax, 0x500
jne 0x1002f599
mov esi, str.GL_INVALID_ENUM
jmp 0x1002f5c2
cmp eax, 0x501
jne 0x1002f5a7
mov esi, str.GL_INVALID_VALUE
jmp 0x1002f5c2
cmp eax, 0x503
jne 0x1002f5b5
mov esi, str.GL_STACK_OVERFLOW
jmp 0x1002f5c2
cmp eax, 0x504
mov eax, str.GL_OUT_OF_MEMORY
cmovne esi, eax
sub esp, 0x18
mov dword [ebp - 0x28], esi
mov ecx, esp
lea eax, [ebp - 0x2c]
push edx
push eax
push 0x15
push str.GL_Error_____:_
lea edx, [ebp - 0x28]
call fcn.10018c30
mov ecx, dword [sym.Redline.dll_class_LogFile__pLog]
add esp, 0x10
call fcn.100335a0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0xf
jbe 0x1002f627
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1002f61d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002fb22
push ecx
push edx
call fcn.100899b0
add esp, 8
cmp byte [ebp - 0x21], 0
jne 0x1002f640
push 0
push 1
push 0
lea edx, [ebp - 0x1c]
xor cl, cl
call fcn.100782c0
add esp, 0xc
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov byte [eax + 0xad4], 0
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov byte [eax + 0xad5], 0
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
cmp byte [ecx + 0x20a], 0
setne al
mov byte [ecx + 0xad6], al
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov byte [eax + 0xac6], 0
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
cmp byte [ecx + 0x20a], 0
setne al
mov byte [ecx + 0xb99], al
jmp 0x1002f7a6
mov eax, dword [esi + 0x2c]
cmp eax, 0x7fffffff
je 0x1002fb27
mov eax, dword [ebp - 0x1c]
push esi
mov al, byte [eax + 0xbe0]
mov byte [ebp - 0x21], al
call fcn.1008b345
mov al, byte [ebp - 0x21]
lea edx, [ebp - 0x21]
add esp, 4
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x50]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x20]
push eax
push 0x6b
push str.CaptureRenderSurface__Render_to_texture___2__glCopyTexImage2D__texture__capturing____dims________
call fcn.1002fb40
add esp, 0x18
mov edx, eax
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x2c]
cmp eax, 0x502
jne 0x1002f6fd
mov ecx, str.GL_INVALID_OPERATION
jmp 0x1002f739
cmp eax, 0x500
jne 0x1002f70b
mov ecx, str.GL_INVALID_ENUM
jmp 0x1002f739
cmp eax, 0x501
jne 0x1002f719
mov ecx, str.GL_INVALID_VALUE
jmp 0x1002f739
cmp eax, 0x503
jne 0x1002f727
mov ecx, str.GL_STACK_OVERFLOW
jmp 0x1002f739
cmp eax, 0x504
mov ecx, str.GL_STACK_UNDERFLOW
mov eax, str.GL_OUT_OF_MEMORY
cmovne ecx, eax
sub esp, 0x18
mov dword [ebp - 0x20], ecx
mov ecx, esp
lea eax, [ebp - 0x2c]
push edx
push eax
push 0x15
push str.GL_Error_____:_
lea edx, [ebp - 0x20]
call fcn.10018c30
mov ecx, dword [sym.Redline.dll_class_LogFile__pLog]
add esp, 0x10
call fcn.100335a0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0xf
jbe 0x1002f79e
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1002f794
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002fb32
push ecx
push edx
call fcn.100899b0
add esp, 8
mov ecx, dword [edi + 0x68]
call fcn.100847f0
mov eax, dword [edi + 0x4c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10100fe0]
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x9cc], xmm0
mov eax, dword [edi + 0x50]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10100fe0]
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x9d0], xmm0
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov eax, dword [ecx + 0x11c]
mov dword [ecx + 0x9a4], eax
push dword [ebp - 0x18]
call dword [sym.imp.OPENGL32.dll_glReadBuffer]
push 0x84c0
call dword [0x1015f5dc]
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
push dword [eax + 0x11c]
push 0xde1
call dword [sym.imp.OPENGL32.dll_glBindTexture]
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov dword [ebp - 0x20], 2
mov byte [eax + 0xac5], 1
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov byte [eax + 0xa88], 0
lea eax, [ebp - 0x20]
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
push eax
lea eax, [ebp - 0x38]
push eax
lea ecx, [ecx + 0xe68]
call fcn.1001d490
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x20], 2
push eax
lea ecx, [ecx + 0xe70]
call fcn.1001d490
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x20], 2
push eax
lea ecx, [ecx + 0xe78]
call fcn.1001d490
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x20], 0x42
push eax
lea ecx, [ecx + 0xe68]
call fcn.1001d490
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x20], 0x42
push eax
lea ecx, [ecx + 0xe70]
call fcn.1001d490
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x20], 0x42
push eax
lea ecx, [ecx + 0xe78]
call fcn.1001d490
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
movzx eax, byte [ecx + 0x1c1]
mov byte [ecx + 0xa24], al
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov dword [ebp - 0x20], 3
movzx eax, byte [ecx + 0xa24]
mov byte [ecx + 0xa25], al
lea eax, [ebp - 0x20]
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
push eax
lea eax, [ebp - 0x38]
push eax
lea ecx, [ecx + 0xe68]
call fcn.1001d490
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x20], 3
push eax
lea ecx, [ecx + 0xe70]
call fcn.1001d490
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x20], 3
push eax
lea ecx, [ecx + 0xe78]
call fcn.1001d490
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x20], 4
push eax
lea ecx, [ecx + 0xe68]
call fcn.1001d490
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x20], 4
push eax
lea ecx, [ecx + 0xe70]
call fcn.1001d490
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x20], 4
push eax
lea ecx, [ecx + 0xe78]
call fcn.1001d490
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov esi, 0x2901
mov edi, dword [sym.imp.OPENGL32.dll_glTexParameteri]
mov edx, 0x812f
mov ecx, esi
cmp byte [eax + 0xa24], 0
cmovne ecx, edx
push ecx
push 0x2802
push 0xde1
call edi
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
cmp byte [eax + 0xa25], 0
mov eax, 0x812f
cmovne esi, eax
push esi
push 0x2803
push 0xde1
call edi
mov ecx, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov esi, str.GL_STACK_UNDERFLOW
mov eax, dword [ecx + 0x11c]
mov dword [ecx + 0xb6c], eax
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov byte [eax + 0x75], 1
mov eax, dword [sym.Redline.dll_class_VeriteLib__pLib]
mov byte [eax + 0x216], 0
call dword [sym.imp.OPENGL32.dll_glGetError]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1002faeb
cmp eax, 0x502
jne 0x1002fa86
mov esi, str.GL_INVALID_OPERATION
jmp 0x1002fabd
cmp eax, 0x500
jne 0x1002fa94
mov esi, str.GL_INVALID_ENUM
jmp 0x1002fabd
cmp eax, 0x501
jne 0x1002faa2
mov esi, str.GL_INVALID_VALUE
jmp 0x1002fabd
cmp eax, 0x503
jne 0x1002fab0
mov esi, str.GL_STACK_OVERFLOW
jmp 0x1002fabd
cmp eax, 0x504
mov eax, str.GL_OUT_OF_MEMORY
cmovne esi, eax
sub esp, 0x18
mov dword [ebp - 0x20], esi
mov ecx, esp
lea eax, [ebp - 0x18]
lea edx, [ebp - 0x20]
push str.CaptureRenderSurface_exit
push eax
push 0x15
push str.GL_Error_____:_
call fcn.10003df0
mov ecx, dword [sym.Redline.dll_class_LogFile__pLog]
add esp, 0x10
call fcn.100335a0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10089573
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 5
call fcn.1008b2ff
dec eax
push 6
mov dword [esi + 0x2c], eax
call fcn.1008b2ff
push 5
call fcn.1008b2ff
call fcn.1009211e
dec eax
push 6
mov dword [esi + 0x2c], eax
call fcn.1008b2ff
call fcn.1009211e
int3