Function at 0x14002d540
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xc8
mov qword [rbp - 0x11], 0xfffffffffffffffe
xor r13b, r13b
xor r14d, r14d
mov qword [rbp - 9], r14
mov qword [rbp - 1], r14
mov qword [rbp + 7], r14
mov qword [rbp - 0x39], r14
mov dword [rbp - 0x31], r14d
mov qword [rbp - 0x29], r14
mov r15d, r14d
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp + 0x7f], rbx
mov dword [rbp + 0x6f], 0x104
mov r9d, 0x2001f
lea r8, str.SOFTWARESony_CorporationVAIO_UpdatePatchListFromVUAX
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x39]
call fcn.140008440
or r12d, 0xffffffff
test eax, eax
jne 0x14002d6e2
mov rsi, qword [rbp - 0x39]
nop word [rax + rax]
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x14002d606
mov edx, 0x104
lea rcx, [rbp + 0x7f]
call fcn.140001c20
mov rbx, qword [rbp + 0x7f]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
lea r9, [rbp + 0x6f]
mov r8, rbx
mov edx, r15d
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0x103
je 0x14002d6cc
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_wcsnlen]
test eax, eax
js 0x14002d6c1
cmp eax, dword [rbx - 0xc]
jg 0x14002d6c1
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r14w
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14002d6a7
cmp dword [rdx + 0x10], 0
jge 0x14002d67b
cmp dword [rbx - 0xc], 0
jl 0x14002d6b6
mov dword [rbx - 0x10], r14d
mov word [rbx], r14w
jmp 0x14002d6a7
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d692
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp + 0x7f], rbx
mov rsi, qword [rbp - 0x39]
mov dword [rbp + 0x6f], 0x104
inc r15d
jmp 0x14002d5e0
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 0x80070057
call fcn.140001000
int3
test rsi, rsi
je 0x14002d6de
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x39], r14
mov dword [rbp - 0x31], r14d
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x69], rbx
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rbp - 0x59], rsi
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x51], rdi
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x49], rax
mov dword [rbp + 0x77], r14d
lea rcx, [rbp - 0x21]
call fcn.1400386c0
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x41], rax
test r15d, r15d
jle 0x14002d9fe
nop word [rax + rax]
lea rdx, [rbx - 0x18]
mov r13, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14002d7d8
cmp dword [rdx + 0x10], 0
jge 0x14002d7a7
cmp dword [rbx - 0xc], 0
jl 0x14002d9bf
xor eax, eax
mov dword [rbx - 0x10], eax
mov word [rbx], ax
jmp 0x14002d7d8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d7be
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x69], rbx
mov rdi, qword [rbp - 0x51]
mov rsi, qword [rbp - 0x59]
lea rdx, [rsi - 0x18]
mov r13, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14002d833
cmp dword [rdx + 0x10], 0
jge 0x14002d802
cmp dword [rsi - 0xc], 0
jl 0x14002d9ca
xor r13d, r13d
mov dword [rsi - 0x10], r13d
mov word [rsi], r13w
jmp 0x14002d836
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d819
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x59], rax
mov rdi, qword [rbp - 0x51]
mov rbx, qword [rbp - 0x69]
xor r13d, r13d
lea rdx, [rdi - 0x18]
mov rsi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14002d889
cmp dword [rdx + 0x10], 0
jge 0x14002d85d
cmp dword [rdi - 0xc], 0
jl 0x14002d9d5
mov dword [rdi - 0x10], r13d
mov word [rdi], r13w
jmp 0x14002d889
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d874
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x51], rax
mov rbx, qword [rbp - 0x69]
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14002d8d8
cmp dword [rdx + 0x10], 0
jge 0x14002d8b0
cmp dword [rbx - 0xc], 0
jl 0x14002d9e0
mov dword [rbx - 0x10], r13d
mov word [rbx], r13w
jmp 0x14002d8d8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d8c7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x69], rax
mov rax, qword [rbp - 0x49]
lea rdx, [rax - 0x18]
mov rbx, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14002d92b
cmp dword [rdx + 0x10], 0
jge 0x14002d903
cmp dword [rax - 0xc], 0
jl 0x14002d9eb
mov dword [rax - 0x10], r13d
mov word [rax], r13w
jmp 0x14002d92b
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d91a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x49], rax
mov qword [rbp - 0x61], r13
lea rdx, [rbp - 0x69]
mov ecx, r14d
call fcn.140066f50
lea r8, [rbp - 0x41]
mov rbx, qword [rbp - 0x69]
mov rdx, rbx
mov rdi, qword [rbp + 0x67]
mov rcx, qword [rdi + 0x30]
call fcn.14006cda0
mov rcx, qword [rbp - 0x41]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14002d9aa
lea r8, [rbp + 0x77]
mov rdx, rbx
mov rcx, qword [rdi + 0x30]
call fcn.1400672e0
cmp dword [rbp + 0x77], 2
jne 0x14002d9f6
lea rcx, [rbp - 0x21]
call fcn.1400412b0
test al, al
je 0x14002d9f6
cmp dword [rbx - 0x10], 0
jl 0x14002d9aa
lea rdx, str.vusrv.sm.sony.co.jp
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_wcsstr]
test rax, rax
je 0x14002d9aa
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
jne 0x14002d9f6
inc r14d
cmp r14d, r15d
jge 0x14002d9fb
mov rdi, qword [rbp - 0x51]
mov rsi, qword [rbp - 0x59]
jmp 0x14002d780
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 0x80070057
call fcn.140001000
int3
mov r13b, 1
jmp 0x14002d9fe
xor r13b, r13b
mov rdx, qword [rbp - 0x41]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002da1e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp - 0x49]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002da3d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp - 0x51]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002da5c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp - 0x59]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002da7b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp - 0x69]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002da9b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0x7f]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14002dabc
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
nop
mov rcx, qword [rbp - 0x39]
test rcx, rcx
je 0x14002dacc
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
movzx eax, r13b
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret