Function at 0x14000ae20
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 [0x14003f2f0]
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.140010850
or rdi, 0xffffffffffffffff
lea r15, [0x140042f20]
test eax, eax
jne 0x14000af52
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 0x14000af0f
mov eax, dword [rbp + 4]
dec eax
cmp eax, 1
jbe 0x14000aede
lea ebx, [rdi + 0xe]
jmp 0x14000af0f
mov ecx, dword [rbp]
test ecx, ecx
je 0x14000aefe
test cl, 1
jne 0x14000aef7
mov eax, ecx
shr rax, 1
cmp word [r15 + rax*2 - 2], r13w
je 0x14000af06
mov ebx, 0xd
jmp 0x14000af0f
mov word [0x140042f20], r14w
mov r13d, ecx
mov ebx, r14d
shr r13d, 1
lea rcx, [0x14002d748]
mov r8d, 5
mov rdx, r15
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x14000af31
mov word [0x140042f36], r14w
test rsi, rsi
je 0x14000af46
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 0x14000b148
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.140010850
mov rsi, qword [rbp + 0x10]
test eax, eax
jne 0x14000b00d
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 0x14000afc7
cmp dword [rbp + 4], 3
je 0x14000b00d
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 0x14000b11f
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.14002a954
test eax, eax
jne 0x14000b10e
lea r8d, [rax + 0xb]
lea rcx, [rbp + 0x28]
mov rdx, r15
call fcn.140016af0
lea rax, [rbp + 0x28]
mov rcx, rdi
inc rcx
cmp byte [rax + rcx], r12b
jne 0x14000b077
inc ecx
cmp ecx, 0x3fffffff
jg 0x14000b0dc
movsxd rax, ecx
add rax, rax
lea rdx, [rax + 0xf]
cmp rdx, rax
ja 0x14000b09c
mov rdx, rbx
and rdx, 0xfffffffffffffff0
mov rax, rdx
call fcn.140018cb0
sub rsp, rdx
lea rbx, [rsp + 0x40]
test rbx, rbx
je 0x14000b0dc
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 0x14000b0df
mov rbx, r12
lea rcx, [0x140042f20]
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 0x14000b0f0
movabs rbx, 0xffffffffffffff0
inc r14d
cmp r14d, dword [rbp]
jb 0x14000b030
mov r12, qword [rbp + 8]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LocalFree]
test rsi, rsi
je 0x14000b13e
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor r14d, r14d
mov esi, r14d
jmp 0x14000b141
xor r14d, r14d
lea r15, [0x140042f20]
mov rbx, qword [rbp + 0x20]
mov qword [rbp + 8], r14
test rbx, rbx
je 0x14000b1c7
cmp qword [rbx], 0
je 0x14000b1ba
lea rcx, str.Advapi32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
jne 0x14000b174
mov eax, 1
jmp 0x14000b1ed
lea rdx, str.RegOpenKeyTransactedW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x14000b1c0
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 0x14000b1ed
cmp dword [rbx + 8], 0
jne 0x14000b1c7
mov eax, 1
jmp 0x14000b1ed
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 0x14000b294
mov eax, r14d
test rsi, rsi
je 0x14000b206
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rbp + 8]
mov rsi, rcx
test eax, eax
jne 0x14000b294
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 0x14000b25e
mov eax, dword [rbp + 4]
dec eax
cmp eax, 1
ja 0x14000b25e
cmp dword [rbp], 0
jne 0x14000b25e
mov word [0x140042f20], r14w
lea rcx, [0x14002d828]
mov rdx, r15
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x14000b282
lea rdx, str.103C_5336AN
mov rcx, r15
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x14000b294
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rsi, r14
inc rdi
cmp word [r15 + rdi*2], 0
jne 0x14000b294
test edi, edi
je 0x14000b2d1
lea eax, [rdi - 2]
lea rcx, [0x140041af8]
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 0x14000b2c0
lea rdx, [0x14002d848]
lea rcx, [0x140041af8]
call fcn.140017124
test eax, eax
jne 0x14000b2f4
lea rdx, [0x14002d850]
jmp 0x14000b481
lea rdx, [0x14002d858]
lea rcx, [0x140041af8]
call fcn.140017124
test eax, eax
jne 0x14000b317
lea rdx, [0x14002d850]
jmp 0x14000b481
lea rdx, [0x14002d860]
lea rcx, [0x140041af8]
call fcn.140017124
test eax, eax
jne 0x14000b33a
lea rdx, [0x14002d850]
jmp 0x14000b481
lea rdx, [0x14002d868]
lea rcx, [0x140041af8]
call fcn.140017124
test eax, eax
jne 0x14000b35d
lea rdx, [0x14002d828]
jmp 0x14000b481
lea rdx, [0x14002d870]
lea rcx, [0x140041af8]
call fcn.140017124
test eax, eax
jne 0x14000b380
lea rdx, [0x14002d828]
jmp 0x14000b481
lea rdx, [0x14002d878]
lea rcx, [0x140041af8]
call fcn.140017124
test eax, eax
jne 0x14000b3a3
lea rdx, [0x14002d828]
jmp 0x14000b481
lea rdx, [0x14002d880]
lea rcx, [0x140041af8]
call fcn.140017124
test eax, eax
je 0x14000b47a
lea rdx, [0x14002d890]
lea rcx, [0x140041af8]
call fcn.140017124
test eax, eax
je 0x14000b47a
lea rdx, [0x14002d898]
lea rcx, [0x140041af8]
call fcn.140017124
test eax, eax
jne 0x14000b3fc
lea rdx, [0x14002d8a0]
jmp 0x14000b481
lea rdx, [0x14002d8a8]
lea rcx, [0x140041af8]
call fcn.140017124
test eax, eax
jne 0x14000b41c
lea rdx, [0x14002d8a0]
jmp 0x14000b481
lea rdx, [0x14002d8b0]
lea rcx, [0x140041af8]
call fcn.140017124
test eax, eax
jne 0x14000b43c
lea rdx, [0x14002d8b8]
jmp 0x14000b481
lea rdx, [0x14002d8c0]
lea rcx, [0x140041af8]
call fcn.140017124
test eax, eax
jne 0x14000b45c
lea rdx, [0x14002d828]
jmp 0x14000b481
lea rdx, [0x14002d6ac]
lea rcx, [0x140041af8]
call fcn.140017124
lea rdx, [0x14002d8a0]
test eax, eax
je 0x14000b481
lea rdx, [0x14002d888]
lea rcx, [0x140042f00]
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
test rsi, rsi
je 0x14000b49c
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rbp + 0x38]
xor rcx, rbp
call fcn.1400161c0
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