Function at 0x140002490
Capabilities:
Find taskbar
Query or enumerate registry value
Set registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rax, qword [0x14000e010]
xor rax, rsp
mov qword [rbp + 8], rax
mov rsi, r8
lea rax, [rbp - 0x40]
mov r15, rcx
mov qword [rsp + 0x20], rax
xor r13d, r13d
lea rdx, [0x140008940]
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov r9d, 0x20019
mov ebx, r13d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea rdi, [r13 - 1]
test eax, eax
jne 0x140002590
mov rcx, qword [rbp - 0x40]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea r9, [rbp - 0x30]
xor r8d, r8d
mov qword [rsp + 0x20], r13
lea rdx, str.CurrentBuildNumber
mov dword [rsp + 0x60], r13d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140002590
mov ecx, dword [rsp + 0x60]
mov eax, 2
inc ecx
mul rcx
cmovo rax, rdi
mov rcx, rax
call fcn.140006bdc
mov r8d, dword [rsp + 0x60]
xor edx, edx
inc r8d
mov rcx, rax
mov r14, rax
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rbp - 0x40]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea r9, [rbp - 0x30]
xor r8d, r8d
mov qword [rsp + 0x20], r14
lea rdx, str.CurrentBuildNumber
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140002588
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
mov ebx, eax
mov rcx, r14
call fcn.1400066b0
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14000259f
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp ebx, 0x64
jle 0x1400025c1
nop dword [rax]
nop dword [rax + rax]
mov eax, 0xcccccccd
mul ebx
mov ebx, edx
shr ebx, 3
cmp ebx, 0x64
jg 0x1400025b0
cmp ebx, 0x15
jge 0x1400025cd
xor eax, eax
jmp 0x140002af5
mov ecx, 2
mov qword [rsp + 0x158], r12
call qword [sym.imp.api_ms_win_shcore_scaling_l1_1_1.dll_SetProcessDpiAwareness]
call fcn.140001e10
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
cmp rax, 0x2bf20
mov byte [0x14000e8d1], r13b
mov qword [0x14000e8d8], r13
seta byte [0x14000e8d0]
xor ecx, ecx
call fcn.140005080
lea rax, [0x140008938]
test rsi, rsi
lea rdx, str.HideBatteryGauge
cmove rsi, rax
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x14000274f
lea rdx, str.UnpinFromTaskbar
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x14000274f
lea rdx, str.UnloadBatteryGaugeFromExplorer
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x14000274f
xor r9d, r9d
lea rdx, str.Enter_QSHelper_main_function____CmdLine__s___IsbHideCmd__d_
mov r8, rsi
lea rcx, vtable.CBGSimpleLogger.0
xor r14b, r14b
call fcn.140002070
call fcn.140004800
test al, al
je 0x1400026a2
lea rdx, str.NeedToLaunchInstanceAsUser._so_exit
lea rcx, vtable.CBGSimpleLogger.0
call fcn.140002070
xor eax, eax
jmp 0x140002aed
lea rbx, [0x14000e8f0]
mov qword [0x14000e8b8], r15
mov r8, rbx
mov r9d, 0x200
mov edx, 0x6f
mov rcx, r15
call qword [sym.imp.USER32.dll_LoadStringW]
lea rax, [rbp - 0x40]
mov qword [rbp - 0x40], r13
mov r9d, 0xf003f
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, str.SOFTWARELenovoBatteryGauge
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140002736
nop word [rax + rax]
cmp word [rbx + rdi*2 + 2], r13w
lea rdi, [rdi + 1]
jne 0x140002700
mov rcx, qword [rbp - 0x40]
lea eax, [rdi*2 + 2]
mov dword [rsp + 0x28], eax
lea rdx, str.BatteryGaugeName
mov r9d, 1
mov qword [rsp + 0x20], rbx
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x140002745
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.140003e30
mov r12d, r13d
jmp 0x140002796
mov r9d, 1
lea rdx, str.Enter_QSHelper_main_function____CmdLine__s___IsbHideCmd__d_
mov r8, rsi
lea rcx, vtable.CBGSimpleLogger.0
mov r14b, 1
call fcn.140002070
mov r12d, 1
mov qword [0x14000e8b8], r15
mov r9d, 0x200
lea r8, [0x14000e8f0]
mov rcx, r15
lea edx, [r12 + 0x6e]
call qword [sym.imp.USER32.dll_LoadStringW]
lea rdx, str.Handle_QS_cmd
lea rcx, vtable.CBGSimpleLogger.0
call fcn.140002070
lea rdi, str.LenovoVantageToolbar
test rsi, rsi
je 0x1400029bb
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.USER32.dll_FindWindowW]
mov rbx, rax
test rax, rax
jne 0x140002809
test r14b, r14b
je 0x1400029bb
lea rdx, str.Handle_QS_cmd__hide_1
lea rcx, vtable.CBGSimpleLogger.0
call fcn.140002070
mov rcx, qword [0x14000e8c8]
mov dl, 1
call fcn.140003320
xor r9d, r9d
lea edx, [rbx + 0x10]
xor r8d, r8d
xor ecx, ecx
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x140002862
lea rcx, vtable.CBGSimpleLogger.0
test r14b, r14b
je 0x140002844
lea rdx, str.Handle_QS_cmd__hide_2
call fcn.140002070
mov rcx, qword [0x14000e8c8]
mov dl, 1
call fcn.140003320
xor r9d, r9d
xor r8d, r8d
mov rcx, rbx
lea edx, [r9 + 0x10]
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x140002859
lea rdx, str.Handle_QS_cmd__show_front
call fcn.140002070
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetForegroundWindow]
test r14b, r14b
je 0x14000299e
lea rdx, str.RefreshTrayRect_1
lea rcx, vtable.CBGSimpleLogger.0
call fcn.140002070
xor edx, edx
lea rcx, str.Shell_TrayWnd
call qword [sym.imp.USER32.dll_FindWindowW]
mov rdi, rax
test rax, rax
je 0x1400028c7
lea rdx, [rbp - 0x40]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowRect]
mov r8d, 1
lea rdx, [rbp - 0x40]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.USER32.dll_InvalidateRect]
mov r9d, ebx
lea rdx, str.RefreshTrayRect_2_hTrayWnd0x_X__ret_d
mov r8, rdi
lea rcx, vtable.CBGSimpleLogger.0
call fcn.140002070
mov r8, rdi
lea rdx, str.RefreshTrayRect_3_hTrayWnd0x_X
lea rcx, vtable.CBGSimpleLogger.0
call fcn.140002070
xor edx, edx
lea rcx, str.Shell_TrayWnd
call qword [sym.imp.USER32.dll_FindWindowW]
mov rdi, rax
test rax, rax
je 0x140002946
xor r9d, r9d
lea r8, str.TrayNotifyWnd
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_FindWindowExW]
mov rdi, rax
test rax, rax
je 0x140002946
xor r9d, r9d
lea r8, str.SysPager
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_FindWindowExW]
mov rdi, rax
test rax, rax
je 0x140002946
xor r9d, r9d
lea r8, str.ToolbarWindow32
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_FindWindowExW]
mov rdi, rax
test rdi, rdi
je 0x140002986
lea rdx, [rbp - 0x40]
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowRect]
mov r8d, 1
lea rdx, [rbp - 0x40]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.USER32.dll_InvalidateRect]
mov r9d, ebx
lea rdx, str.RefreshTrayRect_4_hToolbar320x_X__ret_d
mov r8, rdi
lea rcx, vtable.CBGSimpleLogger.0
call fcn.140002070
lea rdx, str.RefreshTrayRect_5_end
lea rcx, vtable.CBGSimpleLogger.0
call fcn.140002070
call fcn.140004c40
mov r8d, r12d
lea rdx, str.HandleCommandWhenRunning:_need_exit._IsHideCmd____d_
lea rcx, vtable.CBGSimpleLogger.0
call fcn.140002070
xor eax, eax
jmp 0x140002aed
lea rdx, str.Begin_to_InitTrayIconWnd
lea rcx, vtable.CBGSimpleLogger.0
call fcn.140002070
lea rax, [0x140002b20]
mov dword [rsp + 0x70], 3
mov edx, 0x6b
mov qword [rsp + 0x78], rax
mov rcx, r15
mov qword [rbp - 0x80], r13
mov qword [rbp - 0x78], r15
call qword [sym.imp.USER32.dll_LoadIconW]
mov edx, 0x7f00
xor ecx, ecx
mov qword [rbp - 0x70], rax
call qword [sym.imp.USER32.dll_LoadCursorW]
movdqa xmm0, xmmword [0x14000a6c0]
lea rcx, [rsp + 0x70]
movdqa xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x50], rdi
call qword [sym.imp.USER32.dll_RegisterClassW]
test ax, ax
jne 0x140002a43
lea rdx, str.Register_Class_failed_for_QS
lea rcx, vtable.CBGSimpleLogger.0
call fcn.140002070
jmp 0x140002aa9
mov ecx, 1
call qword [sym.imp.USER32.dll_GetSystemMetrics]
xor ecx, ecx
lea ebx, [rax - 1]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov qword [rsp + 0x58], r13
mov r9d, 0x80000000
mov qword [rsp + 0x50], r15
dec eax
mov qword [rsp + 0x48], r13
mov r8, rdi
mov qword [rsp + 0x40], r13
mov rdx, rdi
mov dword [rsp + 0x38], 1
mov ecx, 0x80
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov rcx, rax
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
xor r9d, r9d
lea rcx, [rbp - 0x28]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x140002aea
nop
lea rcx, [rbp - 0x28]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp - 0x28]
call qword [sym.imp.USER32.dll_DispatchMessageW]
xor r9d, r9d
lea rcx, [rbp - 0x28]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x140002ac0
mov eax, dword [rbp - 0x18]
mov r12, qword [rsp + 0x158]
mov rcx, qword [rbp + 8]
xor rcx, rsp
call fcn.140006690
add rsp, 0x110
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret