Function at 0x140020390
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x270
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x2b0], rbx
mov rax, qword [0x14003e010]
xor rax, rsp
mov qword [rsp + 0x260], rax
mov rbx, rdx
mov r14, rcx
mov qword [rsp + 0x38], rcx
call fcn.140001540
mov rcx, rax
test rax, rax
je 0x140020612
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140027f5e.0]
add rax, 0x18
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x40], 0x104
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.CurrentBuild
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea r8, [rsp + 0x50]
lea rdx, [0x14002e674]
lea rcx, [rsp + 0x38]
call fcn.14000b890
mov rbx, qword [rsp + 0x38]
mov rsi, rbx
xor r15d, r15d
mov edi, r15d
movzx eax, word [rbx]
lea ebp, [r15 + 1]
test ax, ax
je 0x1400204c7
movzx ecx, ax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswspace]
test eax, eax
je 0x140020472
mov rax, rsi
test rdi, rdi
cmovne rax, rdi
mov rdi, rax
jmp 0x140020475
mov rdi, r15
add rsi, 2
movzx eax, word [rsi]
test ax, ax
jne 0x140020456
test rdi, rdi
je 0x1400204c7
sub rdi, rbx
sar rdi, 1
test edi, edi
js 0x14002061d
mov ecx, ebp
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x1400204b3
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.14000b430
mov rbx, qword [rsp + 0x38]
cmp edi, dword [rbx - 0xc]
jg 0x140020633
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov word [rbx + rax*2], r15w
mov rdi, rbx
movzx ecx, word [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswspace]
test eax, eax
je 0x14002058b
nop dword [rax + rax]
add rdi, 2
movzx ecx, word [rdi]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswspace]
test eax, eax
jne 0x1400204e0
cmp rdi, rbx
je 0x14002058b
sub rdi, rbx
sar rdi, 1
mov edx, dword [rbx - 0x10]
test edx, edx
js 0x140020628
sub ebp, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edx
or eax, ebp
jge 0x140020526
lea rcx, [rsp + 0x38]
call fcn.14000b430
mov rbx, qword [rsp + 0x38]
movsxd rax, edi
lea rdx, [rbx + rax*2]
mov ecx, dword [rbx - 0x10]
mov esi, ecx
sub esi, edi
lea eax, [rsi + 1]
movsxd r8, eax
add r8, r8
je 0x14002056f
test rdx, rdx
jne 0x140020555
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0x16
jmp 0x1400205f6
lea eax, [rcx + 1]
movsxd rcx, eax
add rcx, rcx
cmp rcx, r8
jb 0x1400205e9
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
test esi, esi
js 0x140020607
cmp esi, dword [rbx - 0xc]
jg 0x140020607
mov dword [rbx - 0x10], esi
movsxd rax, esi
mov word [rbx + rax*2], r15w
lea rcx, [rbx - 0x18]
call fcn.14000b250
add rax, 0x18
mov qword [r14], rax
mov ecx, 0xffffffff
lock xadd dword [rbx - 8], ecx
sub ecx, 1
jg 0x1400205bf
mov rcx, qword [rbx - 0x18]
mov r8, qword [rcx]
lea rdx, [rbx - 0x18]
mov rax, qword [r8 + 8]
call qword [case.0x140027f5e.0]
mov rax, r14
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.140027890
mov rbx, qword [rsp + 0x2b0]
add rsp, 0x270
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
nop
mov dword [rax], 0x22
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo]
mov ecx, 0x80070057
call fcn.140001280
int3
mov ecx, 0x80070057
call fcn.140001280
nop
mov ecx, 0x80004005
call fcn.140001280
nop
mov ecx, 0x80070057
call fcn.140001280
int3
mov ecx, 0x80070057
call fcn.140001280
int3
mov ecx, 0x80070057
call fcn.140001280
int3