Function at 0x14000b8f0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x80
lea rbp, [rsp + 0x40]
mov qword [rbp + 0x70], rbx
mov qword [rbp + 0x78], rsi
mov qword [rbp + 0x80], rdi
mov rax, qword [0x1400623d0]
xor rax, rbp
mov qword [rbp + 0x38], rax
xor r14d, r14d
lea r8, str.HARDWAREDESCRIPTIONSystemBIOS
lea rcx, [rbp + 0x10]
mov r9d, 0x20019
mov rdx, 0xffffffff80000002
lea r13d, [r14 + 0x40]
mov qword [rbp + 0x10], r14
mov dword [rbp + 0x18], r14d
mov qword [rbp + 0x20], r14
call fcn.140011540
or rdi, 0xffffffffffffffff
lea r15, [0x1400661a0]
test eax, eax
jne 0x14000ba22
mov rsi, qword [rbp + 0x10]
lea rax, [rbp]
lea r9, [rbp + 4]
mov qword [rsp + 0x28], rax
lea rdx, str.SystemFamily
xor r8d, r8d
mov rcx, rsi
mov dword [rbp], 0x80
mov r13d, r14d
mov qword [rsp + 0x20], r15
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, eax
test eax, eax
jne 0x14000b9df
mov eax, dword [rbp + 4]
dec eax
cmp eax, 1
jbe 0x14000b9ae
lea ebx, [rdi + 0xe]
jmp 0x14000b9df
mov ecx, dword [rbp]
test ecx, ecx
je 0x14000b9ce
test cl, 1
jne 0x14000b9c7
mov eax, ecx
shr rax, 1
cmp word [r15 + rax*2 - 2], r13w
je 0x14000b9d6
mov ebx, 0xd
jmp 0x14000b9df
mov word [0x1400661a0], r14w
mov r13d, ecx
mov ebx, r14d
shr r13d, 1
lea rcx, [0x140048038]
mov r8d, 5
mov rdx, r15
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x14000ba01
mov word [0x1400661b6], r14w
test rsi, rsi
je 0x14000ba16
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rsi, r14
mov qword [rbp + 0x10], r14
mov dword [rbp + 0x18], r14d
test ebx, ebx
je 0x14000bc18
mov edx, 0x400
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
lea r8, str.SYSTEMCurrentControlSetServicesmssmbiosData
lea rcx, [rbp + 0x10]
mov r9d, 0x20019
mov rdx, 0xffffffff80000002
mov dword [rbp], 0x400
mov r12, rax
mov qword [rbp + 8], rax
mov r15, rax
call fcn.140011540
mov rsi, qword [rbp + 0x10]
test eax, eax
jne 0x14000badd
lea rax, [rbp]
lea r9, [rbp + 4]
lea rdx, str.SMBiosData
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x20], r15
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000ba97
cmp dword [rbp + 4], 3
je 0x14000badd
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov edx, dword [rbp]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
lea r9, [rbp + 4]
lea rdx, str.SMBiosData
mov r15, rax
mov r12, rax
mov qword [rbp + 8], rax
lea rax, [rbp]
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp dword [rbp], r14d
jbe 0x14000bbef
movabs rbx, 0xffffffffffffff0
xor r12d, r12d
nop word [rax + rax]
xor eax, eax
inc r15
lea rcx, str.103C_
lea r8d, [rax + 5]
mov rdx, r15
mov word [rbp + 0x28], r12w
mov qword [rbp + 0x2a], rax
mov dword [rbp + 0x32], eax
mov word [rbp + 0x36], ax
call fcn.1400446a0
test eax, eax
jne 0x14000bbde
lea r8d, [rax + 0xb]
lea rcx, [rbp + 0x28]
mov rdx, r15
call fcn.14001ac10
lea rax, [rbp + 0x28]
mov rcx, rdi
inc rcx
cmp byte [rax + rcx], r12b
jne 0x14000bb47
inc ecx
cmp ecx, 0x3fffffff
jg 0x14000bbac
movsxd rax, ecx
add rax, rax
lea rdx, [rax + 0xf]
cmp rdx, rax
ja 0x14000bb6c
mov rdx, rbx
and rdx, 0xfffffffffffffff0
mov rax, rdx
call fcn.14001d860
sub rsp, rdx
lea rbx, [rsp + 0x40]
test rbx, rbx
je 0x14000bbac
mov dword [rsp + 0x28], ecx
xor edx, edx
lea r8, [rbp + 0x28]
lea ecx, [rdx + 3]
mov r9d, edi
mov word [rbx], r12w
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
cmove rbx, r12
jmp 0x14000bbaf
mov rbx, r12
lea rcx, [0x1400661a0]
nop word [rax + rax]
movzx eax, word [rbx]
lea rcx, [rcx + 2]
lea rbx, [rbx + 2]
mov word [rcx - 2], ax
test ax, ax
jne 0x14000bbc0
movabs rbx, 0xffffffffffffff0
inc r14d
cmp r14d, dword [rbp]
jb 0x14000bb00
mov r12, qword [rbp + 8]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LocalFree]
test rsi, rsi
je 0x14000bc0e
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor r14d, r14d
mov esi, r14d
jmp 0x14000bc11
xor r14d, r14d
lea r15, [0x1400661a0]
mov rbx, qword [rbp + 0x20]
mov qword [rbp + 8], r14
test rbx, rbx
je 0x14000bc97
cmp qword [rbx], 0
je 0x14000bc8a
lea rcx, str.Advapi32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
jne 0x14000bc44
mov eax, 1
jmp 0x14000bcbd
lea rdx, str.RegOpenKeyTransactedW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x14000bc90
mov rdx, qword [rbx]
mov qword [rsp + 0x30], r14
mov r9d, 0x20019
mov qword [rsp + 0x28], rdx
lea rdx, [rbp + 8]
xor r8d, r8d
mov qword [rsp + 0x20], rdx
lea rdx, str.SOFTWAREHPHP_Image
mov rcx, 0xffffffff80000002
call rax
jmp 0x14000bcbd
cmp dword [rbx + 8], 0
jne 0x14000bc97
mov eax, 1
jmp 0x14000bcbd
lea rax, [rbp + 8]
lea rdx, str.SOFTWAREHPHP_Image
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14000bd64
mov eax, r14d
test rsi, rsi
je 0x14000bcd6
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rbp + 8]
mov rsi, rcx
test eax, eax
jne 0x14000bd64
lea eax, [r13*2]
lea r9, [rbp + 4]
lea rdx, str.ImageBuild
mov dword [rbp], eax
lea rax, [rbp]
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000bd2e
mov eax, dword [rbp + 4]
dec eax
cmp eax, 1
ja 0x14000bd2e
cmp dword [rbp], 0
jne 0x14000bd2e
mov word [0x1400661a0], r14w
lea rcx, [0x140048118]
mov rdx, r15
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x14000bd52
lea rdx, str.103C_5336AN
mov rcx, r15
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x14000bd64
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rsi, r14
inc rdi
cmp word [r15 + rdi*2], 0
jne 0x14000bd64
test edi, edi
je 0x14000bda1
lea eax, [rdi - 2]
lea rcx, [0x140064d78]
lea rdx, [r15 + rax*2]
sub rcx, rdx
nop word [rax + rax]
movzx eax, word [rdx]
lea rdx, [rdx + 2]
mov word [rcx + rdx - 2], ax
test ax, ax
jne 0x14000bd90
lea rdx, [0x140048138]
lea rcx, [0x140064d78]
call fcn.14001b25c
test eax, eax
jne 0x14000bdc4
lea rdx, [0x140048140]
jmp 0x14000bf51
lea rdx, [0x140048148]
lea rcx, [0x140064d78]
call fcn.14001b25c
test eax, eax
jne 0x14000bde7
lea rdx, [0x140048140]
jmp 0x14000bf51
lea rdx, [0x140048150]
lea rcx, [0x140064d78]
call fcn.14001b25c
test eax, eax
jne 0x14000be0a
lea rdx, [0x140048140]
jmp 0x14000bf51
lea rdx, [0x140048158]
lea rcx, [0x140064d78]
call fcn.14001b25c
test eax, eax
jne 0x14000be2d
lea rdx, [0x140048118]
jmp 0x14000bf51
lea rdx, [0x140048160]
lea rcx, [0x140064d78]
call fcn.14001b25c
test eax, eax
jne 0x14000be50
lea rdx, [0x140048118]
jmp 0x14000bf51
lea rdx, [0x140048168]
lea rcx, [0x140064d78]
call fcn.14001b25c
test eax, eax
jne 0x14000be73
lea rdx, [0x140048118]
jmp 0x14000bf51
lea rdx, [0x140048170]
lea rcx, [0x140064d78]
call fcn.14001b25c
test eax, eax
je 0x14000bf4a
lea rdx, [0x140048180]
lea rcx, [0x140064d78]
call fcn.14001b25c
test eax, eax
je 0x14000bf4a
lea rdx, [0x140048188]
lea rcx, [0x140064d78]
call fcn.14001b25c
test eax, eax
jne 0x14000becc
lea rdx, [0x140048190]
jmp 0x14000bf51
lea rdx, [0x140048198]
lea rcx, [0x140064d78]
call fcn.14001b25c
test eax, eax
jne 0x14000beec
lea rdx, [0x140048190]
jmp 0x14000bf51
lea rdx, [0x1400481a0]
lea rcx, [0x140064d78]
call fcn.14001b25c
test eax, eax
jne 0x14000bf0c
lea rdx, [0x1400481a8]
jmp 0x14000bf51
lea rdx, [0x1400481b0]
lea rcx, [0x140064d78]
call fcn.14001b25c
test eax, eax
jne 0x14000bf2c
lea rdx, [0x140048118]
jmp 0x14000bf51
lea rdx, [0x140047f9c]
lea rcx, [0x140064d78]
call fcn.14001b25c
lea rdx, [0x140048190]
test eax, eax
je 0x14000bf51
lea rdx, [0x140048178]
lea rcx, [0x140066180]
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
test rsi, rsi
je 0x14000bf6c
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rbp + 0x38]
xor rcx, rbp
call fcn.14001a120
mov rbx, qword [rbp + 0x70]
mov rsi, qword [rbp + 0x78]
mov rdi, qword [rbp + 0x80]
lea rsp, [rbp + 0x40]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret