Function at 0x140051b10
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [rcx]
lea rdx, [0x14022b548]
mov qword [rcx + 8], rax
xor r14d, r14d
lea rax, [rbp - 0x38]
mov dword [rbp + 0x38], r14d
mov rdi, rcx
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
mov dword [rbp + 0x30], r14d
xor r8d, r8d
mov qword [rbp - 0x38], r14
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
test eax, eax
je 0x140051bb0
lea rbx, str.__ReadEcoReportData_
mov r8d, 0x103
mov qword [rsp + 0x28], rbx
lea r9, [0x1402a214c]
lea rdx, str.c:users_scddocumentsmyworkproject__dynabooksystemdriverdsd_for_tos6208_v6dsd_branch_dev_6.01.0029.xxcentennial_rs5dynabookecoserviceincludeecohistoryreg.h
mov dword [rsp + 0x20], r14d
lea rcx, [rbp - 0x28]
call fcn.140008c40
mov rcx, rax
lea rdx, str.ReadEcoReportData_RegOpenKeyEx_failed__d
mov r8d, esi
call fcn.140008d50
xor al, al
add rsp, 0x70
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, qword [rbp - 0x38]
lea rax, [rbp - 0x40]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x48]
lea rax, [rbp + 0x38]
mov dword [rbp + 0x48], 4
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, [0x14022b5f8]
mov dword [rbp - 0x40], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
test eax, eax
je 0x140051c45
mov r8d, 0x10b
lea rbx, str.__ReadEcoReportData_
mov qword [rsp + 0x28], rbx
lea r9, [0x1402a214c]
lea rdx, str.c:users_scddocumentsmyworkproject__dynabooksystemdriverdsd_for_tos6208_v6dsd_branch_dev_6.01.0029.xxcentennial_rs5dynabookecoserviceincludeecohistoryreg.h
mov dword [rsp + 0x20], r14d
lea rcx, [rbp - 0x28]
call fcn.140008c40
mov r8d, esi
mov rcx, rax
lea rdx, str.ReadEcoReportData_RegQueryValueEx_failed__d
call fcn.140008d50
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor al, al
add rsp, 0x70
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, qword [rbp - 0x38]
lea rax, [rbp - 0x40]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x48]
lea rax, [rbp + 0x30]
xor r8d, r8d
lea rdx, [0x14022b5d8]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
test eax, eax
je 0x140051c80
mov r8d, 0x111
jmp 0x140051bf4
mov rcx, qword [rbp - 0x38]
lea rax, [rbp + 0x40]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x48]
xor r8d, r8d
mov qword [rsp + 0x20], r14
lea rdx, [0x14022b618]
mov dword [rbp + 0x40], r14d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea rbx, str.__ReadEcoReportData_
mov esi, eax
test eax, eax
je 0x140051cc2
mov r8d, 0x119
jmp 0x140051bfb
mov edx, dword [rbp + 0x38]
cmp edx, 0xe42
ja 0x140051cd9
mov eax, dword [rbp + 0x30]
cmp dword [rbp + 0x40], eax
je 0x140051dfa
mov qword [rsp + 0x28], rbx
lea r9, [0x1402a214c]
mov r8d, 0x120
mov dword [rsp + 0x20], r14d
lea rdx, str.c:users_scddocumentsmyworkproject__dynabooksystemdriverdsd_for_tos6208_v6dsd_branch_dev_6.01.0029.xxcentennial_rs5dynabookecoserviceincludeecohistoryreg.h
lea rcx, [rbp - 0x28]
call fcn.140008c40
mov r9d, dword [rbp + 0x38]
lea rdx, str.ReadEcoReportData_Invalid_data_count:_size__d__count__d__data_size__d
mov r8d, dword [rbp + 0x30]
mov rcx, rax
mov eax, dword [rbp + 0x40]
mov dword [rsp + 0x20], eax
call fcn.140008d50
mov r8d, dword [rbp + 0x40]
lea r9, [0x1402a214c]
movabs rax, 0xaaaaaaaaaaaaaaab
mov qword [rsp + 0x28], rbx
mul r8
mov ecx, r8d
shr rdx, 3
lea rax, [rdx + rdx*2]
shl rax, 2
sub rcx, rax
lea rcx, [rbp - 0x28]
je 0x140051d88
mov r8d, 0x123
mov dword [rsp + 0x20], r14d
lea rdx, str.c:users_scddocumentsmyworkproject__dynabooksystemdriverdsd_for_tos6208_v6dsd_branch_dev_6.01.0029.xxcentennial_rs5dynabookecoserviceincludeecohistoryreg.h
call fcn.140008c40
mov r8d, dword [rbp + 0x40]
lea rdx, str.ReadEcoReportData_invalid_data_size__d__sizeof_EcoHistoryData___d
mov rcx, rax
mov r9d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
call fcn.140008d50
jmp 0x140051c2e
mov dword [rbp + 0x38], edx
cmp edx, 0xe42
lea rdx, str.c:users_scddocumentsmyworkproject__dynabooksystemdriverdsd_for_tos6208_v6dsd_branch_dev_6.01.0029.xxcentennial_rs5dynabookecoserviceincludeecohistoryreg.h
mov dword [rbp + 0x30], r8d
jbe 0x140051dca
mov r8d, 0x12a
mov dword [rsp + 0x20], r14d
call fcn.140008c40
mov r9d, dword [rbp + 0x38]
lea rdx, str.ReadEcoReportData_Invalid_data_count:_size__d__count__d
mov r8d, dword [rbp + 0x30]
mov rcx, rax
call fcn.140008d50
jmp 0x140051c2e
mov r8d, 0x12e
mov dword [rsp + 0x20], 3
call fcn.140008c40
mov r9d, dword [rbp + 0x38]
lea rdx, str.ReadEcoReportData_Get_data_from_data_size:_size__d__count__d
mov r8d, dword [rbp + 0x30]
mov rcx, rax
call fcn.140008d50
mov edx, dword [rbp + 0x38]
mov eax, dword [rbp + 0x30]
mov r9d, edx
lea rcx, [r9 + r9*2]
shl rcx, 2
cmp rcx, rax
je 0x140051e4d
mov qword [rsp + 0x28], rbx
lea r9, [0x1402a214c]
mov r8d, 0x133
mov dword [rsp + 0x20], r14d
lea rdx, str.c:users_scddocumentsmyworkproject__dynabooksystemdriverdsd_for_tos6208_v6dsd_branch_dev_6.01.0029.xxcentennial_rs5dynabookecoserviceincludeecohistoryreg.h
lea rcx, [rbp - 0x28]
call fcn.140008c40
mov r9d, dword [rbp + 0x38]
lea rdx, str.ReadEcoReportData_Invalid_size:_size__d__count__d
mov r8d, dword [rbp + 0x30]
mov rcx, rax
call fcn.140008d50
jmp 0x140051c2e
test edx, edx
je 0x140051eca
mov r8, rdi
mov rdx, r9
mov rcx, rdi
call fcn.140049cb0
mov eax, dword [rbp + 0x30]
lea rcx, [rbp - 0x40]
mov qword [rsp + 0x28], rcx
lea r9, [rbp + 0x48]
mov rcx, qword [rbp - 0x38]
lea rdx, [0x14022b618]
mov dword [rbp - 0x40], eax
xor r8d, r8d
mov rax, qword [rdi]
mov qword [rsp + 0x20], rax
mov dword [rbp + 0x48], 3
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
test eax, eax
je 0x140051eca
mov qword [rsp + 0x28], rbx
lea r9, [0x1402a214c]
mov r8d, 0x140
mov dword [rsp + 0x20], r14d
lea rdx, str.c:users_scddocumentsmyworkproject__dynabooksystemdriverdsd_for_tos6208_v6dsd_branch_dev_6.01.0029.xxcentennial_rs5dynabookecoserviceincludeecohistoryreg.h
lea rcx, [rbp - 0x28]
call fcn.140008c40
mov r8d, edi
jmp 0x140051c1f
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, 1
add rsp, 0x70
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret