Function at 0x140045410
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3f0]
sub rsp, 0x4f0
mov rax, qword [0x1400f2040]
xor rax, rsp
mov qword [rbp + 0x3e0], rax
mov r15, rcx
mov qword [rsp + 0x70], rcx
xor ebx, ebx
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x40], xmm1
lea r8d, [rbx + 0xb]
lea rdx, str.InstallPath
lea rcx, [rbp - 0x50]
call fcn.14000ef90
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x58], xmm1
lea r8d, [rbx + 0x20]
lea rdx, str.SOFTWAREWow6432NodeValveSteam
lea rcx, [rsp + 0x48]
call fcn.14000ef90
nop
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rdx, qword [rsp + 0x48]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x1400454f0
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], rbx
mov qword [rbp - 0x58], rbx
xor r8d, r8d
lea rdx, [0x1400c3e29]
jmp 0x14004558e
mov dword [rbp - 0x30], 0x400
mov dword [rbp - 0x28], 1
lea rdx, [rbp - 0x50]
cmp qword [rbp - 0x38], 0xf
cmova rdx, qword [rbp - 0x50]
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x20]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x28]
xor r8d, r8d
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov rcx, qword [rsp + 0x70]
test eax, eax
je 0x14004555a
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], rbx
mov qword [rbp - 0x58], rbx
xor r8d, r8d
lea rdx, [0x1400c3e29]
jmp 0x14004558e
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], rbx
mov qword [rbp - 0x58], rbx
lea rax, [rbp - 0x20]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140045580
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x70]
call fcn.14000ef90
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0xf
jbe 0x1400455d8
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400455d3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400455d3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140025c10
movdqa xmm0, xmmword [0x1400dff00]
movdqu xmmword [rsp + 0x58], xmm0
mov byte [rsp + 0x48], 0
mov rdx, qword [rbp - 0x38]
cmp rdx, 0xf
jbe 0x140045629
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140045624
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140045624
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140025c10
movdqa xmm0, xmmword [0x1400dff00]
movdqu xmmword [rbp - 0x40], xmm0
mov byte [rbp - 0x50], 0
xorps xmm0, xmm0
cmp qword [rbp - 0x60], 0
jne 0x1400456d5
movups xmmword [r15], xmm0
mov qword [r15 + 0x10], rbx
mov qword [r15 + 0x18], rbx
xor r8d, r8d
lea rdx, [0x1400c3e29]
mov rcx, r15
call fcn.14000ef90
nop
mov rdx, qword [rbp - 0x58]
cmp rdx, 0xf
jbe 0x1400456a2
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004569d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140045ae3
call fcn.140025c10
mov rax, r15
mov rcx, qword [rbp + 0x3e0]
xor rcx, rsp
call fcn.140025bf0
lea r11, [rsp + 0x4f0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
xor eax, eax
movups xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], rax
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x78]
call fcn.140045b10
nop
mov rsi, qword [rsp + 0x78]
mov rax, qword [rbp - 0x80]
mov qword [rbp - 0x28], rax
cmp rsi, rax
je 0x140045a26
lea r8, str._steamappscommonRust
mov edx, 0x16
movabs rdi, 0x7fffffffffffffff
mov rcx, qword [rsi + 0x10]
mov rax, rdi
sub rax, rcx
cmp rax, rdx
jb 0x140045aea
mov r9, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x14004573b
mov r9, qword [rsi]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], rcx
lea rcx, [rbp - 0x50]
call fcn.140010680
nop
mov rax, rdi
mov r12, qword [rbp - 0x40]
sub rax, r12
cmp rax, 9
jb 0x140045af6
lea rdx, [rbp - 0x50]
mov r13, qword [rbp - 0x38]
cmp r13, 0xf
seta byte [rsp + 0x40]
mov r14, qword [rbp - 0x50]
cmova rdx, r14
mov qword [rsp + 0x70], rdx
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rbx
lea rax, [r12 + 9]
mov ebx, 0xf
lea rdi, [rsp + 0x48]
cmp rax, rbx
jbe 0x140045849
mov rbx, rax
or rbx, 0xf
movabs rcx, 0x7fffffffffffffff
cmp rbx, rcx
jbe 0x1400457d9
mov rbx, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x140045800
cmp rbx, 0x16
mov ecx, 0x16
cmovb rbx, rcx
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x140045829
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140045af0
mov rcx, rax
call fcn.140025c18
test rax, rax
je 0x1400459a6
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
lea rax, [r12 + 9]
mov rdx, qword [rsp + 0x70]
jmp 0x140045844
test rcx, rcx
je 0x140045842
call fcn.140025c18
mov rdi, rax
lea rax, [r12 + 9]
mov rdx, qword [rsp + 0x70]
jmp 0x140045844
xor edi, edi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rbx
mov r8, r12
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
movsd xmm0, qword [str.Rust.exe]
movsd qword [r12 + rdi], xmm0
movzx eax, byte [0x1400c3fc0]
mov byte [r12 + rdi + 8], al
mov byte [rdi + r12 + 9], 0
xor edx, edx
mov r8d, pe_nt_image_headers64
lea rcx, [rbp - 0x20]
call sub.VCRUNTIME140.dll_memset
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rdx, qword [rsp + 0x48]
lea rcx, [rbp - 0x20]
call fcn.14000af90
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea r12, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x20], r12
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x24], edx
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x20]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::good_void_const___ptr64]
movzx ebx, al
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x20], r12
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x24], edx
lea rcx, [rbp - 0x10]
call fcn.14000af20
lea rcx, [rbp - 8]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x90]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0xf
jbe 0x140045960
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004595b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400459a6
call fcn.140025c10
test bl, bl
jne 0x1400459b4
cmp byte [rsp + 0x40], bl
je 0x140045997
lea rdx, [r13 + 1]
mov rax, r14
cmp rdx, 0x1000
jb 0x14004598f
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400459ad
mov rcx, r14
call fcn.140025c10
add rsi, 0x20
xor ebx, ebx
cmp rsi, qword [rbp - 0x28]
jmp 0x1400456ff
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
xor ebx, ebx
movups xmm0, xmmword [rbp - 0x50]
movups xmmword [r15], xmm0
movups xmm1, xmmword [rbp - 0x40]
movups xmmword [r15 + 0x10], xmm1
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140045667
mov rdx, qword [rbp - 0x80]
call fcn.14000f140
mov rdx, qword [rbp - 0x78]
mov rcx, qword [rsp + 0x78]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
mov rax, rcx
cmp rdx, 0x1000
jb 0x140045a0f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140045a8c
call fcn.140025c10
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], rbx
jmp 0x140045667
xorps xmm0, xmm0
movups xmmword [r15], xmm0
mov qword [r15 + 0x10], rbx
mov qword [r15 + 0x18], rbx
xor r8d, r8d
lea rdx, [0x1400c3e29]
mov rcx, r15
call fcn.14000ef90
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140045aa5
mov rdx, qword [rbp - 0x80]
call fcn.14000f140
mov rdx, qword [rbp - 0x78]
mov rcx, qword [rsp + 0x78]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
mov rax, rcx
cmp rdx, 0x1000
jb 0x140045a93
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140045a93
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140025c10
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], rbx
mov rdx, qword [rbp - 0x58]
cmp rdx, 0xf
jbe 0x1400456a2
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004569d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004569d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.140001680
nop
call fcn.1400015e0
int3
call fcn.140001680
int3