Function at 0x14005c760
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, [0x140232670]
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 0x14005c800
lea rbx, str.__ReadEcoHistory_
mov r8d, 0x86
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.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, [0x1402326c8]
mov dword [rbp - 0x40], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
test eax, eax
je 0x14005c895
mov r8d, 0x8e
lea rbx, str.__ReadEcoHistory_
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.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, [0x1402326b0]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
test eax, eax
je 0x14005c8d0
mov r8d, 0x94
jmp 0x14005c844
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, [0x1402326e8]
mov dword [rbp + 0x40], r14d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea rbx, str.__ReadEcoHistory_
mov esi, eax
test eax, eax
je 0x14005c912
mov r8d, LoadRegTypeLib
jmp 0x14005c84b
mov edx, dword [rbp + 0x38]
cmp edx, 0x3e8
ja 0x14005c929
mov eax, dword [rbp + 0x30]
cmp dword [rbp + 0x40], eax
je 0x14005ca4a
mov qword [rsp + 0x28], rbx
lea r9, [0x1402a214c]
mov r8d, 0xa3
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.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, 4
lea rax, [rdx + rdx*2]
shl rax, 3
sub rcx, rax
lea rcx, [rbp - 0x28]
je 0x14005c9d8
mov r8d, 0xa6
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.invalid_data_size__d__sizeof_EcoHistoryData___d
mov rcx, rax
mov r9d, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.140008d50
jmp 0x14005c87e
mov dword [rbp + 0x38], edx
cmp edx, 0x3e8
lea rdx, str.c:users_scddocumentsmyworkproject__dynabooksystemdriverdsd_for_tos6208_v6dsd_branch_dev_6.01.0029.xxcentennial_rs5dynabookecoserviceincludeecohistoryreg.h
mov dword [rbp + 0x30], r8d
jbe 0x14005ca1a
mov r8d, 0xad
mov dword [rsp + 0x20], r14d
call fcn.140008c40
mov r9d, dword [rbp + 0x38]
lea rdx, str.Invalid_data_count:_size__d__count__d
mov r8d, dword [rbp + 0x30]
mov rcx, rax
call fcn.140008d50
jmp 0x14005c87e
mov r8d, 0xb1
mov dword [rsp + 0x20], 3
call fcn.140008c40
mov r9d, dword [rbp + 0x38]
lea rdx, str.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, 3
cmp rcx, rax
je 0x14005ca9d
mov qword [rsp + 0x28], rbx
lea r9, [0x1402a214c]
mov r8d, UnRegisterTypeLib
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.Invalid_size:_size__d__count__d
mov r8d, dword [rbp + 0x30]
mov rcx, rax
call fcn.140008d50
jmp 0x14005c87e
test edx, edx
je 0x14005cb1a
mov r8, rdi
mov rdx, r9
mov rcx, rdi
call fcn.140059970
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, [0x1402326e8]
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 0x14005cb1a
mov qword [rsp + 0x28], rbx
lea r9, [0x1402a214c]
mov r8d, 0xc2
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 0x14005c86f
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