Function at 0x180023040
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 [0x180057b40]
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 0x180023100
mov r9b, 1
mov r8d, 0x410
lea rdx, str.ACB3FAA1_462D_475C_AC34_B1BD33673C0D
lea rcx, [rsp + 0x28]
call fcn.180021fc0
nop
lea rcx, [rsp + 0x28]
call fcn.1800205b0
mov rbp, rax
test rax, rax
je 0x1800230f4
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 0x1800230f4
mov ecx, 0x8007000e
call fcn.180001000
nop
lea rcx, [rsp + 0x28]
call fcn.1800218c0
jmp 0x180023150
mov word [rsp + 0x60], 0
xor edx, edx
mov r8d, 0x616
lea rcx, [rsp + 0x62]
call fcn.180026db0
mov edx, 0x30c
lea rcx, [rsp + 0x60]
call fcn.180021b20
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 0x180023150
mov ecx, 0x8007000e
call fcn.180001000
int3
lea rcx, [0x180042bc4]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, [0x180042bc4]
lea rcx, [rsp + 0x20]
call fcn.180022df0
test eax, eax
jns 0x18002317d
mov ecx, eax
call fcn.180001000
int3
sub ebx, 1
je 0x1800232a8
sub ebx, 1
je 0x18002324b
sub ebx, 4
je 0x1800231e2
cmp ebx, 1
je 0x1800231b1
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rbx, r12
mov qword [rsp + 0x20], rbx
jmp 0x1800232da
lea rcx, str.System
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str.System
lea rcx, [rsp + 0x20]
call fcn.180022df0
test eax, eax
jns 0x1800232d5
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.180022df0
test eax, eax
jns 0x18002320f
mov ecx, eax
call fcn.180001000
int3
test rsi, rsi
je 0x1800232d5
cmp word [rsi], 0
je 0x1800232d5
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.180022df0
test eax, eax
jns 0x1800232d5
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.180022df0
test eax, eax
jns 0x180023278
mov ecx, eax
call fcn.180001000
int3
test rsi, rsi
je 0x1800232d5
cmp word [rsi], 0
je 0x1800232d5
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.180022df0
test eax, eax
jns 0x1800232d5
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.180022df0
test eax, eax
jns 0x1800232d5
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 0x18002338e
lea rcx, str..dat
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str..dat
lea rcx, [rsp + 0x20]
call fcn.180022df0
test eax, eax
jns 0x180023318
mov ecx, eax
call fcn.180001000
int3
test r13, r13
je 0x180023332
mov rdx, r13
mov rcx, rdi
call fcn.1800245d0
mov byte [rdi + 0x20], al
mov rbx, qword [rsp + 0x20]
jmp 0x18002338e
call qword [0x180057950]
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x18002338e
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.180021530
nop
lea rcx, [rsp + 0x28]
call fcn.180020300
test al, al
je 0x180023384
mov rdx, rbx
mov rcx, rdi
call fcn.180024630
test eax, eax
setns al
mov byte [rdi + 0x20], al
lea rcx, [rsp + 0x28]
call fcn.180020360
nop
lea rcx, [rsp + 0x28]
call fcn.180021840
cmp byte [rdi + 0x20], 0
je 0x1800233d8
mov rcx, qword [rdi + 0x28]
cmp rcx, rbx
je 0x1800233d8
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test rbx, rbx
je 0x1800233bf
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 0x1800233d8
test r12, r12
jne 0x1800233d8
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.180026cf0
mov rbx, qword [rsp + 0x6c8]
add rsp, 0x690
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret