Function at 0x180022cb0
Capabilities:
Check if file exists

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x690
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x6c8], rbx
mov rax, qword [0x18005a960]
xor rax, rsp
mov qword [rsp + 0x680], rax
mov r13, r9
mov rsi, r8
mov ebx, edx
mov rdi, rcx
mov byte [rcx + 0x20], 0
mov rcx, qword [rcx + 0x28]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
xor r12d, r12d
mov qword [rdi + 0x28], r12
mov qword [rsp + 0x20], r12
cmp byte [rsp + 0x6e0], r12b
je 0x180022d6d
mov r8d, 0x410
lea rdx, str.ACB3FAA1_462D_475C_AC34_B1BD33673C0D
lea rcx, [rsp + 0x28]
call fcn.18001f3f0
nop
lea rcx, [rsp + 0x28]
call fcn.18001d110
mov rbp, rax
test rax, rax
je 0x180022d61
xor ecx, ecx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, rbp
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rsp + 0x20], rax
test rax, rax
jne 0x180022d61
mov ecx, 0x8007000e
call fcn.180001000
nop
lea rcx, [rsp + 0x28]
call fcn.18001e920
jmp 0x180022dbd
mov word [rsp + 0x60], 0
xor edx, edx
mov r8d, 0x616
lea rcx, [rsp + 0x62]
call fcn.180026a20
mov edx, 0x30c
lea rcx, [rsp + 0x60]
call fcn.18001e9b0
xor ecx, ecx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
lea rcx, [rsp + 0x60]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rsp + 0x20], rax
test rax, rax
jne 0x180022dbd
mov ecx, 0x8007000e
call fcn.180001000
int3
lea rcx, [0x180042b64]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, [0x180042b64]
lea rcx, [rsp + 0x20]
call fcn.180022a60
test eax, eax
jns 0x180022dea
mov ecx, eax
call fcn.180001000
int3
sub ebx, 1
je 0x180022f15
sub ebx, 1
je 0x180022eb8
sub ebx, 4
je 0x180022e4f
cmp ebx, 1
je 0x180022e1e
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rbx, r12
mov qword [rsp + 0x20], rbx
jmp 0x180022f47
lea rcx, str.System
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str.System
lea rcx, [rsp + 0x20]
call fcn.180022a60
test eax, eax
jns 0x180022f42
mov ecx, eax
call fcn.180001000
int3
lea rcx, str.DLPSettings
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str.DLPSettings
lea rcx, [rsp + 0x20]
call fcn.180022a60
test eax, eax
jns 0x180022e7c
mov ecx, eax
call fcn.180001000
int3
test rsi, rsi
je 0x180022f42
cmp word [rsi], 0
je 0x180022f42
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.180022a60
test eax, eax
jns 0x180022f42
mov ecx, eax
call fcn.180001000
int3
lea rcx, str.Settings
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str.Settings
lea rcx, [rsp + 0x20]
call fcn.180022a60
test eax, eax
jns 0x180022ee5
mov ecx, eax
call fcn.180001000
int3
test rsi, rsi
je 0x180022f42
cmp word [rsi], 0
je 0x180022f42
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.180022a60
test eax, eax
jns 0x180022f42
mov ecx, eax
call fcn.180001000
int3
lea rcx, str.Config
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str.Config
lea rcx, [rsp + 0x20]
call fcn.180022a60
test eax, eax
jns 0x180022f42
mov ecx, eax
call fcn.180001000
int3
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x180022ffb
lea rcx, str..dat
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str..dat
lea rcx, [rsp + 0x20]
call fcn.180022a60
test eax, eax
jns 0x180022f85
mov ecx, eax
call fcn.180001000
int3
test r13, r13
je 0x180022f9f
mov rdx, r13
mov rcx, rdi
call fcn.180024240
mov byte [rdi + 0x20], al
mov rbx, qword [rsp + 0x20]
jmp 0x180022ffb
call qword [0x18005a778]
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x180022ffb
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.18001e590
nop
lea rcx, [rsp + 0x28]
call fcn.18001ce60
test al, al
je 0x180022ff1
mov rdx, rbx
mov rcx, rdi
call fcn.1800242a0
test eax, eax
setns al
mov byte [rdi + 0x20], al
lea rcx, [rsp + 0x28]
call fcn.18001cec0
nop
lea rcx, [rsp + 0x28]
call fcn.18001e8a0
cmp byte [rdi + 0x20], 0
je 0x180023045
mov rcx, qword [rdi + 0x28]
cmp rcx, rbx
je 0x180023045
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test rbx, rbx
je 0x18002302c
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov edx, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_DllRegisterServer]
mov r12, rax
mov qword [rdi + 0x28], r12
test rbx, rbx
je 0x180023045
test r12, r12
jne 0x180023045
mov ecx, 0x8007000e
call fcn.180001000
int3
movzx edi, byte [rdi + 0x20]
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov al, dil
mov rcx, qword [rsp + 0x680]
xor rcx, rsp
call fcn.180026960
mov rbx, qword [rsp + 0x6c8]
add rsp, 0x690
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret