Function at 0x40c890
Capabilities:
Get number of processors

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x435369
push eax
mov dword fs:[0], esp
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, ecx
xor ebp, ebp
push edi
cmp esi, ebp
jne 0x40c8b8
xor eax, eax
jmp 0x40c8bb
mov eax, dword [esi + 0x20]
push 1
push eax
push str.tv_ctrlboard_bg
call fcn.0041fa60
add esp, 0xc
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_4
push 0x69
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3c], ebp
call sub.MFC42.DLL_CString::LoadStringA
mov ecx, dword [esp + 0x18]
push 0xc378
lea eax, [esp + 0x24]
push esi
push eax
lea edi, [esi + 0xf8]
push 0x50000000
push ecx
mov ecx, edi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call sub.MFC42.DLL_CButton::Create
lea ebx, [esi + 0x484]
cmp ebx, ebp
jne 0x40c923
xor eax, eax
jmp 0x40c926
mov eax, dword [ebx + 4]
mov edx, dword [esi + 0x118]
push 1
push eax
push 0x30
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp edi, ebp
jne 0x40c940
xor edi, edi
jmp 0x40c943
mov edi, dword [edi + 0x20]
push 1
push edi
push str.play_state_tip
call fcn.0041fa60
xor eax, eax
add esp, 0xc
cmp eax, 0x438a30
je 0x40c96c
mov ecx, 0x438a30
call sub.MFC42.DLL_CRuntimeClass::CreateObject
mov dword [esi + 0xf4], eax
mov ecx, dword [esi + 0xf4]
cmp ecx, ebp
je 0x40c9ba
push ebp
push 0xc352
lea eax, [esp + 0x28]
push esi
push eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov edx, dword [ecx]
push 0x40000000
push ebp
push ebp
call dword [edx + 0x5c]
test eax, eax
je 0x40c9ba
mov ecx, dword [esi + 0xf4]
push 1
call fcn.00401cd0
mov ecx, dword [esi + 0xf4]
call fcn.004011b0
push 0xc36e
lea ecx, [esp + 0x24]
push esi
lea edi, [esi + 0x74]
push ecx
push 0x50000000
push str.m_btnPlayPause
mov ecx, edi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call sub.MFC42.DLL_CButton::Create
cmp edi, ebp
jne 0x40c9f1
xor eax, eax
jmp 0x40c9f4
mov eax, dword [edi + 0x20]
push 1
push eax
push str.tv_ctrlboard_play
call fcn.0041fa60
add esp, 0xc
mov ecx, edi
push ebp
call sub.MFC42.DLL_CWnd::EnableWindow
push 0xc376
lea edx, [esp + 0x24]
push esi
lea edi, [esi + 0xb4]
push edx
push 0x50000000
push str.m_btnStop
mov ecx, edi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call sub.MFC42.DLL_CButton::Create
cmp edi, ebp
jne 0x40ca46
xor edi, edi
jmp 0x40ca49
mov edi, dword [edi + 0x20]
push 1
push edi
push str.tv_ctrlboard_stop
call fcn.0041fa60
add esp, 0xc
lea eax, [esp + 0x20]
lea edi, [esi + 0x138]
mov dword [esp + 0x20], ebp
push 0xc373
push esi
push eax
push 0x50000000
push str.m_btnMute
mov ecx, edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call sub.MFC42.DLL_CButton::Create
cmp edi, ebp
jne 0x40ca93
xor edi, edi
jmp 0x40ca96
mov edi, dword [edi + 0x20]
push 1
push edi
push str.tv_ctrlboard_nomute
call fcn.0041fa60
mov eax, dword [esi + 0x6c]
add esp, 0xc
cmp eax, ebp
je 0x40cafa
push 0xc377
lea ecx, [esp + 0x24]
push esi
lea edi, [esi + 0x3ec]
push ecx
push 0x50000000
push str.m_btnImageCapture
mov ecx, edi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call sub.MFC42.DLL_CButton::Create
cmp edi, ebp
jne 0x40cae7
xor edi, edi
jmp 0x40caea
mov edi, dword [edi + 0x20]
push 1
push edi
push str.ctrlboard_image_capture
call fcn.0041fa60
add esp, 0xc
push 0xc374
lea edx, [esp + 0x24]
push esi
lea edi, [esi + 0x3ac]
push edx
push 0x50000000
push str.m_btnChangeProject
mov ecx, edi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call sub.MFC42.DLL_CButton::Create
cmp edi, ebp
jne 0x40cb34
xor edi, edi
jmp 0x40cb37
mov edi, dword [edi + 0x20]
push 1
push edi
push str.change_project_play_button
call fcn.0041fa60
add esp, 0xc
cmp ebx, ebp
jne 0x40cb4f
xor eax, eax
jmp 0x40cb52
mov eax, dword [ebx + 4]
push 1
push eax
mov eax, dword [esi + 0x3cc]
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0xc375
lea ecx, [esp + 0x24]
push esi
lea edi, [esi + 0x2ac]
push ecx
push 0x50000000
push str.m_btnFullMode
mov ecx, edi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call sub.MFC42.DLL_CButton::Create
cmp edi, ebp
jne 0x40cb9e
xor edi, edi
jmp 0x40cba1
mov edi, dword [edi + 0x20]
push 1
push edi
push str.tv_ctrlboard_fullscreen
call fcn.0041fa60
add esp, 0xc
lea edx, [esp + 0x20]
lea edi, [esi + 0x32c]
mov dword [esp + 0x20], ebp
push 0xc370
push esi
push edx
push 0x50000000
push str.m_btnShowQQLiveHall
mov ecx, edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call sub.MFC42.DLL_CButton::Create
cmp edi, ebp
jne 0x40cbeb
xor edi, edi
jmp 0x40cbee
mov edi, dword [edi + 0x20]
push 1
push edi
push str.tv_ctrlboard_show_qqlive_hall
call fcn.0041fa60
add esp, 0xc
lea eax, [esp + 0x20]
lea edi, [esi + 0x2ec]
mov dword [esp + 0x20], ebp
push 0xc36f
push esi
push eax
push 0x50000000
push str.m_btnCaptureSel
mov ecx, edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call sub.MFC42.DLL_CButton::Create
cmp edi, ebp
jne 0x40cc38
xor edi, edi
jmp 0x40cc3b
mov edi, dword [edi + 0x20]
push 1
push edi
push str.ctrlboard_capture_sel
call fcn.0041fa60
add esp, 0xc
lea ecx, [esp + 0x20]
lea edi, [esi + 0x36c]
mov dword [esp + 0x20], ebp
push 0xc371
push esi
push ecx
push 0x40000000
push str.m_btnNotifyMyProject
mov ecx, edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call sub.MFC42.DLL_CButton::Create
cmp edi, ebp
jne 0x40cc85
xor eax, eax
jmp 0x40cc88
mov eax, dword [edi + 0x20]
push 1
push eax
push str.tv_ctrlboard_notify_project
call fcn.0041fa60
mov eax, dword [esi + 0x6c]
add esp, 0xc
cmp eax, ebp
je 0x40ccb1
cmp byte [eax + 0xcc], 1
jne 0x40ccb1
push 8
mov ecx, edi
call sub.MFC42.DLL_CWnd::ShowWindow
push 0xc37b
lea edx, [esp + 0x24]
push esi
lea edi, [esi + 0x42c]
push edx
push 0x40000000
push str.m_btnAsyInvite
mov ecx, edi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call sub.MFC42.DLL_CButton::Create
cmp dword [esi + 0x4b4], ebp
je 0x40cd0d
cmp edi, ebp
jne 0x40ccf3
xor eax, eax
jmp 0x40ccf6
mov eax, dword [edi + 0x20]
push 1
push eax
push str.tv_ctrlboard_asy_invite_cancel
call fcn.0041fa60
add esp, 0xc
push str.CMPlayerCtrlBoard::InitWnd
jmp 0x40cd2d
cmp edi, ebp
jne 0x40cd15
xor eax, eax
jmp 0x40cd18
mov eax, dword [edi + 0x20]
push 1
push eax
push str.tv_ctrlboard_asy_invite
call fcn.0041fa60
add esp, 0xc
push 0x4438c0
call fcn.004081f0
mov eax, dword [esi + 0x6c]
add esp, 4
cmp eax, ebp
je 0x40cd4e
cmp byte [eax + 0xcc], 2
jne 0x40cd4e
push 8
mov ecx, edi
call sub.MFC42.DLL_CWnd::ShowWindow
push ebp
push 0xc372
lea eax, [esp + 0x28]
mov ebx, dword [esi + 0x178]
push esi
push eax
push 0x50000000
push ebp
push ebp
lea edi, [esi + 0x178]
push ebp
push ebp
push ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
call sub.MFC42.DLL_AfxRegisterWndClass
push eax
mov ecx, edi
call dword [ebx + 0x5c]
test eax, eax
je 0x40d118
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 8]
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00407bf0
add esp, 8
mov eax, dword [eax + 4]
mov byte [esp + 0x38], 1
cmp eax, ebp
jne 0x40cdba
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [esp + 0x24]
mov bl, 3
cmp eax, ebp
mov byte [esp + 0x38], bl
je 0x40cdef
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40cde6
cmp al, 0xff
je 0x40cde6
dec al
mov byte [ecx], al
jmp 0x40cdef
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
push str.QLiveQ_skin_
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
lea edx, [esp + 0x14]
push str.player_ctrl_sound_slide_normal.bmp
lea eax, [esp + 0x20]
push edx
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov edi, dword [sym.imp.USER32.dll_LoadImageA]
push 0x10
push 9
push 9
push ebp
push eax
push ebp
mov byte [esp + 0x50], 4
call edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x10], eax
mov byte [esp + 0x38], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x10]
push ecx
lea ecx, [esi + 0x1d8]
call sub.MFC42.DLL_CGdiObject::Attach
lea edx, [esp + 0x14]
push str.player_ctrl_sound_slide_normal.bmp
lea eax, [esp + 0x20]
push edx
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push 0x10
push 9
push 9
push ebp
push eax
push ebp
mov byte [esp + 0x50], 5
call edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x10], eax
mov byte [esp + 0x38], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x10]
push ecx
lea ecx, [esi + 0x1e0]
call sub.MFC42.DLL_CGdiObject::Attach
lea edx, [esp + 0x14]
push str.player_ctrl_sound_slide_down.bmp
lea eax, [esp + 0x20]
push edx
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push 0x10
push 9
push 9
push ebp
push eax
push ebp
mov byte [esp + 0x50], 6
call edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x10], eax
mov byte [esp + 0x38], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x10]
push ecx
lea ecx, [esi + 0x1e8]
call sub.MFC42.DLL_CGdiObject::Attach
lea edx, [esp + 0x14]
push str.player_ctrl_sound_slide_disable.bmp
lea eax, [esp + 0x20]
push edx
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push 0x10
push 9
push 9
push ebp
push eax
push ebp
mov byte [esp + 0x50], 7
call edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x10], eax
mov byte [esp + 0x38], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x10]
push ecx
lea ecx, [esi + 0x1f0]
call sub.MFC42.DLL_CGdiObject::Attach
lea edx, [esp + 0x14]
push str.slider_channel_left.bmp
lea eax, [esp + 0x20]
push edx
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push 0x10
push 5
push 2
push ebp
push eax
push ebp
mov byte [esp + 0x50], 8
call edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x10], eax
mov byte [esp + 0x38], bl
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x10]
lea ecx, [esi + 0x1b8]
push edx
call sub.MFC42.DLL_CGdiObject::Attach
lea eax, [esp + 0x14]
push str.slider_channel_right.bmp
lea ecx, [esp + 0x20]
push eax
push ecx
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push 0x10
push 5
push 2
push ebp
push eax
push ebp
mov byte [esp + 0x50], 9
call edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x10], eax
mov byte [esp + 0x38], bl
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x10]
lea ecx, [esi + 0x1c0]
push edx
call sub.MFC42.DLL_CGdiObject::Attach
lea eax, [esp + 0x14]
push str.player_slider_bg.bmp
lea ecx, [esp + 0x20]
push eax
push ecx
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push 0x10
push 0xf
push 1
push ebp
mov byte [esp + 0x48], 0xa
push eax
push ebp
call edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x10], eax
mov byte [esp + 0x38], bl
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x10]
lea ecx, [esi + 0x1f8]
push edx
call sub.MFC42.DLL_CGdiObject::Attach
lea eax, [esp + 0x14]
push str.slider_channel_high.bmp
lea ecx, [esp + 0x20]
push eax
push ecx
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push 0x10
push 5
push 1
push ebp
push eax
push ebp
mov byte [esp + 0x50], 0xb
call edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x10], eax
mov byte [esp + 0x38], bl
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x10]
lea ecx, [esi + 0x1d0]
push edx
call sub.MFC42.DLL_CGdiObject::Attach
lea eax, [esp + 0x14]
push str.slider_channel_low.bmp
lea ecx, [esp + 0x20]
push eax
push ecx
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push 0x10
push 5
push 1
push ebp
push eax
push ebp
mov byte [esp + 0x50], 0xc
call edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x10], eax
mov byte [esp + 0x38], bl
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x10]
lea ecx, [esi + 0x1c8]
push edx
call sub.MFC42.DLL_CGdiObject::Attach
mov eax, dword [esi + 0x470]
push 0xff00ff
push 1
lea ecx, [esi + 0x1b8]
mov dword [esi + 0x224], ebp
mov dword [esi + 0x228], eax
mov dword [esi + 0x22c], 0x64
mov dword [esi + 0x23c], 0x40c0f0
mov dword [esi + 0x238], esi
call fcn.0042b8c0
lea ecx, [esp + 0x14]
push str.hand.cur
lea edx, [esp + 0x14]
push ecx
push edx
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov byte [esp + 0x38], 0xd
mov dword [esp + 0x1c], eax
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 0xc]
push 0x10
mov ecx, dword [esp + 0x20]
push 0x20
push 0x20
push 2
push ecx
push eax
call edi
mov dword [esi + 0x234], eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x38], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x38], 0
call sub.MFC42.DLL_CString::CString
push ebp
mov ecx, esi
call fcn.0040c770
lea ecx, [esp + 0x18]
mov dword [esp + 0x38], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x2c
ret