Function at 0x14003b1f0
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x48]
sub rsp, 0x120
mov qword [rbp - 0x68], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
movzx r13d, r9b
mov r14, r8
mov r12, rdx
mov esi, 0x80004005
lea rcx, [rbp - 0x60]
call fcn.140021c60
nop
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x14003b784
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rcx, [rax + 0x18]
mov qword [rsp + 0x40], rcx
lea r15, str.VersionTxt
xor esi, esi
test r15, 0xffffffffffff0000
jne 0x14003b299
movzx edi, r15w
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003b311
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140001f70
jmp 0x14003b311
mov ebx, dword [rcx - 0x10]
mov rdi, r15
sub rdi, rcx
sar rdi, 1
mov edx, 1
sub edx, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
sub eax, 0xa
or eax, edx
jge 0x14003b2cb
mov edx, 0xa
lea rcx, [rsp + 0x40]
call fcn.140001c20
mov rcx, qword [rsp + 0x40]
movsxd rdx, dword [rcx - 0xc]
mov r9d, reloc.ATL100.DLL_Ordinal_20
add rdx, rdx
cmp rdi, rbx
ja 0x14003b2e9
lea r8, [rcx + rdi*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003b2f2
mov r8, r15
call qword [sym.imp.MSVCR100.dll_memcpy_s]
mov rax, qword [rsp + 0x40]
cmp dword [rax - 0xc], 0xa
jl 0x14003b779
mov dword [rax - 0x10], 0xa
mov rax, qword [rsp + 0x40]
mov word [rax + 0x14], si
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rcx, [rax + 0x18]
mov qword [rsp + 0x38], rcx
lea r15, str.DebugInfoSearch
test r15, 0xffffffffffff0000
jne 0x14003b363
movzx edi, r15w
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003b3db
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140001f70
jmp 0x14003b3db
mov ebx, dword [rcx - 0x10]
mov rdi, r15
sub rdi, rcx
sar rdi, 1
mov edx, 1
sub edx, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
sub eax, 0xf
or eax, edx
jge 0x14003b395
mov edx, Ordinal_17
lea rcx, [rsp + 0x38]
call fcn.140001c20
mov rcx, qword [rsp + 0x38]
movsxd rdx, dword [rcx - 0xc]
mov r9d, reloc.ATL100.DLL_Ordinal_30
add rdx, rdx
cmp rdi, rbx
ja 0x14003b3b3
lea r8, [rcx + rdi*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003b3bc
mov r8, r15
call qword [sym.imp.MSVCR100.dll_memcpy_s]
mov rax, qword [rsp + 0x38]
cmp dword [rax - 0xc], 0xf
jl 0x14003b76e
mov dword [rax - 0x10], 0xf
mov rax, qword [rsp + 0x38]
mov word [rax + 0x1e], si
mov r9, r14
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x60]
call fcn.140021600
movzx edi, al
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
or rbx, 0xffffffffffffffff
mov ecx, ebx
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003b418
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003b437
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test dil, dil
jne 0x14003b784
mov qword [rsp + 0x78], rsi
mov dword [rbp - 0x80], esi
mov qword [rbp - 0x78], rsi
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
test r12, r12
je 0x14003b4ab
test r12, 0xffffffffffff0000
jne 0x14003b498
movzx edi, r12w
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003b4be
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140001f70
jmp 0x14003b4be
xor eax, eax
mov rcx, rbx
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
dec rcx
jmp 0x14003b4ad
mov ecx, esi
mov r8d, ecx
mov rdx, r12
lea rcx, [rsp + 0x48]
call fcn.140001e80
nop
lea r8, [rsp + 0x48]
lea rdx, str.SOFTWARESony_CorporationShared_InfoVersionPath_
lea rcx, [rsp + 0x50]
call fcn.140004230
nop
call fcn.14001a970
cmp eax, 9
jne 0x14003b581
test r13b, r13b
je 0x14003b581
lea r8, [rsp + 0x48]
lea rdx, str.SOFTWAREWOW6432NODESony_CorporationShared_InfoVersionPath_
lea rcx, [rsp + 0x70]
call fcn.140004230
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x50]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14003b562
cmp dword [rdi + 0x10], 0
jl 0x14003b553
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003b553
call fcn.140001b90
mov r12, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003b547
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [r12 + 0x18]
mov qword [rsp + 0x50], rax
jmp 0x14003b562
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x50]
call fcn.140001e80
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003b581
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r9d, 0x20019
mov r8, qword [rsp + 0x50]
mov rdx, 0xffffffff80000002
lea rcx, [rsp + 0x78]
call fcn.140008440
test eax, eax
jne 0x14003b6f2
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x60], rdi
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, 0xff
or eax, ecx
jge 0x14003b5e7
mov edx, 0xff
lea rcx, [rsp + 0x60]
call fcn.140001c20
mov rdi, qword [rsp + 0x60]
mov dword [rsp + 0x58], 0x1fe
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x68]
xor r8d, r8d
lea rdx, str.Version
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14003b6d8
mov eax, dword [rsp + 0x68]
cmp eax, 1
je 0x14003b632
cmp eax, 2
jne 0x14003b6d8
test rdi, rdi
je 0x14003b65a
mov eax, dword [rsp + 0x58]
test eax, eax
je 0x14003b657
test al, 1
jne 0x14003b6d8
shr rax, 1
cmp word [rdi + rax*2 - 2], 0
je 0x14003b65a
jmp 0x14003b6d8
mov word [rdi], si
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_wcsnlen]
test eax, eax
js 0x14003b6cd
cmp eax, dword [rdi - 0xc]
jg 0x14003b6cd
mov dword [rdi - 0x10], eax
cdqe
mov word [rdi + rax*2], si
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.14003ffa0
test al, al
je 0x14003b6d8
mov r8, rdi
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x30]
call fcn.1400405f0
nop
mov rdx, rax
mov rcx, r14
call fcn.140002250
nop
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003b6c6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdi, qword [rsp + 0x60]
jmp 0x14003b6d8
mov ecx, 0x80070057
call fcn.140001000
nop
lea rdx, [rdi - 0x18]
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003b6f2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
lea rdi, [0x1400de328]
mov rsi, qword [r14]
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x14003b70d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
neg al
sbb ecx, ecx
and ecx, 0x20000009
mov esi, ecx
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003b73e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x14003b75c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14003b784
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14003b784
mov ecx, 0x80070057
call fcn.140001000
nop
mov ecx, 0x80070057
call fcn.140001000
nop
lea rcx, [rbp - 0x60]
call fcn.140021ae0
mov eax, esi
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret