Function at 0x1402c1398
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
sub rsp, 0xb0
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov dil, r8b
mov rbx, rdx
mov esi, 0x57
mov dword [rsp + 0xd8], esi
mov rdx, qword [rdx]
test rdx, rdx
je 0x1402c166c
mov rdx, qword [rdx + 0x40]
lea rcx, [rsp + 0x30]
call fcn.14000cb18
nop
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1402c13fa
lea esi, [rax + 2]
or ebx, 0xffffffff
jmp 0x1402c164c
lea r12, vtable.CppSQLite3DB.0
mov qword [rsp + 0x58], r12
and qword [rsp + 0x60], 0
mov dword [rsp + 0x68], 0x32
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x58]
call fcn.1401a9e20
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
mov rax, qword [rbx]
xor r9d, r9d
test dil, dil
sete r9b
xor r8d, r8d
test dil, dil
setne r8b
mov rax, qword [rax]
mov qword [rsp + 0x20], rax
lea rdx, str.Update_addon_Set_active___d__userDisabled___d_Where_id___s
lea rcx, [rsp + 0x48]
call fcn.14000d9c8
mov r8, qword [rsp + 0x48]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x58]
call fcn.1401aa200
lea rcx, [rsp + 0x80]
call fcn.1401a9f00
mov rax, qword [rbx]
mov rdx, qword [rax + 0x40]
lea rcx, [rsp + 0xe8]
call fcn.14000cb18
nop
lea rcx, [rsp + 0xe8]
call fcn.140050bb8
lea rdx, [0x140367840]
lea rcx, [rsp + 0xe8]
call fcn.14000f884
mov rcx, qword [rbx]
add rcx, 0x98
lea rdx, [rsp + 0xe8]
call fcn.14000c244
mov ecx, 0x30
call fcn.1400be454
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1402c1509
mov rdx, qword [rbx]
add rdx, 0x98
mov rcx, rax
call fcn.14022d1b4
mov rsi, rax
jmp 0x1402c150b
xor esi, esi
mov qword [rsp + 0x38], rsi
and qword [rsp + 0x40], 0
mov rdx, rsi
lea rcx, [rsp + 0x50]
call fcn.14009179c
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rax]
mov qword [rsp + 0x40], rcx
mov qword [rax], rdx
mov rdi, qword [rsp + 0x50]
or ebx, 0xffffffff
test rdi, rdi
je 0x1402c1568
mov eax, ebx
lock xadd dword [rdi + 8], eax
add eax, ebx
jne 0x1402c1568
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
add eax, ebx
jne 0x1402c1568
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x10]
mov r8, rsi
mov rdx, rsi
lea rcx, [rsp + 0x38]
call fcn.1400020a0
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1402c15aa
lea r8, [0x14034fba0]
lea rdx, str.extensions.pendingOperations
call fcn.14022c9d4
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + 0x28], 0
je 0x1402c15aa
lea rdx, [rcx + 8]
call fcn.140223528
xor esi, esi
mov dword [rsp + 0xd8], esi
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x1402c15e6
mov eax, ebx
lock xadd dword [rdi + 8], eax
add eax, ebx
jne 0x1402c15e6
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
add eax, ebx
jne 0x1402c15e6
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x10]
nop
mov rdx, qword [rsp + 0xe8]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1402c1609
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1402c1629
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x1402c163c
mov qword [rsp + 0x58], r12
lea rcx, [rsp + 0x58]
call fcn.1401a9d90
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov ecx, ebx
lock xadd dword [rdx + 0x10], ecx
add ecx, ebx
test ecx, ecx
jg 0x1402c166c
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, esi
mov rbx, qword [rsp + 0xd0]
add rsp, 0xb0
pop r12
pop rdi
pop rsi
ret