Function at 0x7fffb6d9382c
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x18], 0xfffffffffffffffe
mov rdi, rdx
xor r12d, r12d
mov r14d, r12d
mov eax, r12d
jmp 0x7fffb6d93861
cmp word [rdx], 0x2c
je 0x7fffb6d93869
inc rax
lea rdx, [rdi + rax*2]
cmp word [rdx], r12w
jne 0x7fffb6d93854
jmp 0x7fffb6d93876
mov word [rdi + rax*2], r12w
lea r14, [rdi + 2]
lea r14, [r14 + rax*2]
mov qword [rbp - 0x30], r12
lea rax, [rbp - 0x30]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
mov rdx, rdi
call qword [sym.imp.KernelBase.dll_RegOpenKeyExW]
mov ebx, eax
test eax, eax
je 0x7fffb6d93901
mov qword [rsp + 0x20], rdi
lea r9, str.Failed_to_open_registry_key:__s
lea r8, str.ExpandRegistryValue
mov edx, 0xf3f
lea rcx, str.onecore_basecompressdpx_srcdpxjob.cpp
call fcn.7fffb6d96d30
movzx r8d, bx
or r8d, 0x80070000
test ebx, ebx
cmovle r8d, ebx
mov ebx, 0x20247
mov edx, ebx
mov cl, 2
call fcn.7fffb6dc60a0
mov r9d, 0x800700cb
mov r8d, ebx
lea rcx, [rbp - 0x28]
call fcn.7fffb6d81278
lea rdx, [0x7fffb6df49d0]
lea rcx, [rbp - 0x28]
call sub.msvcrt.dll__CxxThrowException
int3
mov rbx, qword [rbp - 0x30]
mov qword [rbp - 0x10], rbx
mov dword [rbp + 0x50], r12d
mov dword [rbp + 0x48], r12d
lea rax, [rbp + 0x48]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x50]
xor r8d, r8d
mov rdx, r14
mov rcx, rbx
call qword [sym.imp.KernelBase.dll_RegQueryValueExW]
mov esi, eax
test eax, eax
je 0x7fffb6d939a3
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
lea r9, str.Failed_to_query_registry_value:__s__under_key:__s
lea r8, str.ExpandRegistryValue
mov edx, 0xf4f
lea rcx, str.onecore_basecompressdpx_srcdpxjob.cpp
call fcn.7fffb6d96d30
movzx r8d, si
or r8d, 0x80070000
test esi, esi
cmovle r8d, esi
mov ebx, 0x20249
mov edx, ebx
mov cl, 2
call fcn.7fffb6dc60a0
mov r9d, 0x800700cb
mov r8d, ebx
lea rcx, [rbp - 0x28]
call fcn.7fffb6d81278
lea rdx, [0x7fffb6df49d0]
lea rcx, [rbp - 0x28]
call sub.msvcrt.dll__CxxThrowException
int3
mov ecx, dword [rbp + 0x50]
lea eax, [rcx - 1]
cmp eax, 1
jbe 0x7fffb6d93a17
cmp ecx, 7
je 0x7fffb6d93a17
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], ecx
lea r9, str.Invalid_value_type:__d_for_value:__s__under_key:__s
lea r8, str.ExpandRegistryValue
mov edx, 0xf58
lea rcx, str.onecore_basecompressdpx_srcdpxjob.cpp
call fcn.7fffb6d96d30
mov ebx, 0x20248
mov r8d, 0x8007065e
mov edx, ebx
mov cl, 2
call fcn.7fffb6dc60a0
mov r9d, 0x800700cb
mov r8d, ebx
lea rcx, [rbp - 0x28]
call fcn.7fffb6d81278
lea rdx, [0x7fffb6df49d0]
lea rcx, [rbp - 0x28]
call sub.msvcrt.dll__CxxThrowException
int3
mov ecx, dword [rbp + 0x48]
add rcx, 2
call fcn.7fffb6d812a8
mov rsi, rax
mov qword [rbp - 0x20], rax
lea rax, [rbp + 0x48]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x50]
xor r8d, r8d
mov rdx, r14
mov rcx, qword [rbp - 0x30]
call qword [sym.imp.KernelBase.dll_RegQueryValueExW]
mov r15d, eax
test eax, eax
je 0x7fffb6d93abf
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
lea r9, str.Failed_to_query_registry_value:__s__under_key:__s
lea r8, str.ExpandRegistryValue
mov edx, 0xf63
lea rcx, str.onecore_basecompressdpx_srcdpxjob.cpp
call fcn.7fffb6d96d30
movzx r8d, r15w
or r8d, 0x80070000
test r15d, r15d
cmovle r8d, r15d
mov ebx, 0x2024a
mov edx, ebx
mov cl, 2
call fcn.7fffb6dc60a0
mov r9d, 0x800700cb
mov r8d, ebx
lea rcx, [rbp - 0x28]
call fcn.7fffb6d81278
lea rdx, [0x7fffb6df49d0]
lea rcx, [rbp - 0x28]
call sub.msvcrt.dll__CxxThrowException
int3
mov ecx, dword [rbp + 0x50]
lea eax, [rcx - 1]
cmp eax, 1
jbe 0x7fffb6d93b33
cmp ecx, 7
je 0x7fffb6d93b33
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], ecx
lea r9, str.Invalid_value_type:__d_for_value:__s__under_key:__s
lea r8, str.ExpandRegistryValue
mov edx, 0xf6c
lea rcx, str.onecore_basecompressdpx_srcdpxjob.cpp
call fcn.7fffb6d96d30
mov ebx, 0x20248
mov r8d, 0x8007065e
mov edx, ebx
mov cl, 2
call fcn.7fffb6dc60a0
mov r9d, 0x800700cb
mov r8d, ebx
lea rcx, [rbp - 0x28]
call fcn.7fffb6d81278
lea rdx, [0x7fffb6df49d0]
lea rcx, [rbp - 0x28]
call sub.msvcrt.dll__CxxThrowException
int3
mov eax, dword [rbp + 0x48]
mov byte [rax + rsi], r12b
mov eax, dword [rbp + 0x48]
inc eax
mov byte [rax + rsi], r12b
mov rcx, rsi
call fcn.7fffb6d96fec
mov rdi, rax
mov qword [rbp + 0x58], rax
mov qword [rbp - 0x20], r12
test rsi, rsi
je 0x7fffb6d93b68
mov rcx, rsi
call qword [sym.imp.msvcrt.dll_free]
mov rdi, qword [rbp + 0x58]
cmp dword [rbp + 0x50], 2
je 0x7fffb6d93b77
mov qword [rbp + 0x58], r12
jmp 0x7fffb6d93d1c
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KernelBase.dll_ExpandEnvironmentStringsW]
mov esi, eax
test eax, eax
jne 0x7fffb6d93bf4
lea rcx, [rbp + 0x58]
call fcn.7fffb6d8c144
mov rcx, qword [rax]
mov qword [rsp + 0x20], rcx
lea r9, str.Failed_to_expand_environment_variable:__s
lea r8, str.ExpandRegistryValue
mov edx, 0xf81
lea rcx, str.onecore_basecompressdpx_srcdpxjob.cpp
call fcn.7fffb6d96d30
call fcn.7fffb6d96f60
mov r8d, eax
mov ebx, 0x20241
mov edx, ebx
mov cl, 2
call fcn.7fffb6dc60a0
mov r9d, 0x800700cb
mov r8d, ebx
lea rcx, [rbp - 0x28]
call fcn.7fffb6d81278
lea rdx, [0x7fffb6df49d0]
lea rcx, [rbp - 0x28]
call sub.msvcrt.dll__CxxThrowException
int3
lea ecx, [rax + 1]
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.7fffb6d812a8
mov rdi, rax
mov qword [rbp - 8], rax
mov r8d, esi
mov rdx, rax
mov rcx, qword [rbp + 0x58]
call qword [sym.imp.KernelBase.dll_ExpandEnvironmentStringsW]
test eax, eax
jne 0x7fffb6d93c96
lea rcx, [rbp + 0x58]
call fcn.7fffb6d8c144
mov rcx, qword [rax]
mov qword [rsp + 0x20], rcx
lea r9, str.Got_zero_length_for_expanded_environment_variable:__s
lea r8, str.ExpandRegistryValue
mov edx, 0xf8c
lea rcx, str.onecore_basecompressdpx_srcdpxjob.cpp
call fcn.7fffb6d96d30
call fcn.7fffb6d96f60
mov r8d, eax
mov ebx, 0x2023f
mov edx, ebx
mov cl, 2
call fcn.7fffb6dc60a0
mov r9d, 0x800700cb
mov r8d, ebx
lea rcx, [rbp - 0x28]
call fcn.7fffb6d81278
lea rdx, [0x7fffb6df49d0]
lea rcx, [rbp - 0x28]
call sub.msvcrt.dll__CxxThrowException
int3
cmp eax, esi
jbe 0x7fffb6d93d01
lea rcx, [rbp + 0x58]
call fcn.7fffb6d8c144
mov rcx, qword [rax]
mov qword [rsp + 0x20], rcx
lea r9, str.Got_unexpected_length_for_expanded_environment_variable:__s
lea r8, str.ExpandRegistryValue
mov edx, 0xf93
lea rcx, str.onecore_basecompressdpx_srcdpxjob.cpp
call fcn.7fffb6d96d30
mov ebx, 0x20240
mov r8d, 0x7a
mov edx, ebx
mov cl, 2
call fcn.7fffb6dc60a0
mov r9d, 0x800700cb
mov r8d, ebx
lea rcx, [rbp - 0x28]
call fcn.7fffb6d81278
lea rdx, [0x7fffb6df49d0]
lea rcx, [rbp - 0x28]
call sub.msvcrt.dll__CxxThrowException
int3
mov eax, eax
mov word [rdi + rax*2], r12w
mov rcx, qword [rbp + 0x58]
mov qword [rbp + 0x58], r12
test rcx, rcx
je 0x7fffb6d93d1c
call qword [sym.imp.msvcrt.dll_free]
nop
test rbx, rbx
je 0x7fffb6d93d2a
mov rcx, rbx
call qword [sym.imp.KernelBase.dll_RegCloseKey]
mov rax, rdi
add rsp, 0x70
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret