Function at 0x18000d290
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 [0x180037318]
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 0x18000d34d
mov r8d, 0x410
lea rdx, str.ACB3FAA1_462D_475C_AC34_B1BD33673C0D
lea rcx, [rsp + 0x28]
call fcn.18000cde0
nop
lea rcx, [rsp + 0x28]
call fcn.18000b940
mov rbp, rax
test rax, rax
je 0x18000d341
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 0x18000d341
mov ecx, 0x8007000e
call fcn.180001000
nop
lea rcx, [rsp + 0x28]
call fcn.18000ca20
jmp 0x18000d39d
mov word [rsp + 0x60], 0
xor edx, edx
mov r8d, 0x616
lea rcx, [rsp + 0x62]
call fcn.180011580
mov edx, 0x30c
lea rcx, [rsp + 0x60]
call fcn.18000ca80
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 0x18000d39d
mov ecx, 0x8007000e
call fcn.180001000
int3
lea rcx, [0x18002bbb8]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, [0x18002bbb8]
lea rcx, [rsp + 0x20]
call fcn.18000d060
test eax, eax
jns 0x18000d3ca
mov ecx, eax
call fcn.180001000
int3
sub ebx, 1
je 0x18000d4f5
sub ebx, 1
je 0x18000d498
sub ebx, 4
je 0x18000d42f
cmp ebx, 1
je 0x18000d3fe
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rbx, r12
mov qword [rsp + 0x20], rbx
jmp 0x18000d527
lea rcx, str.System
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str.System
lea rcx, [rsp + 0x20]
call fcn.18000d060
test eax, eax
jns 0x18000d522
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.18000d060
test eax, eax
jns 0x18000d45c
mov ecx, eax
call fcn.180001000
int3
test rsi, rsi
je 0x18000d522
cmp word [rsi], 0
je 0x18000d522
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.18000d060
test eax, eax
jns 0x18000d522
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.18000d060
test eax, eax
jns 0x18000d4c5
mov ecx, eax
call fcn.180001000
int3
test rsi, rsi
je 0x18000d522
cmp word [rsi], 0
je 0x18000d522
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.18000d060
test eax, eax
jns 0x18000d522
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.18000d060
test eax, eax
jns 0x18000d522
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 0x18000d5db
lea rcx, str..dat
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str..dat
lea rcx, [rsp + 0x20]
call fcn.18000d060
test eax, eax
jns 0x18000d565
mov ecx, eax
call fcn.180001000
int3
test r13, r13
je 0x18000d57f
mov rdx, r13
mov rcx, rdi
call fcn.18000f660
mov byte [rdi + 0x20], al
mov rbx, qword [rsp + 0x20]
jmp 0x18000d5db
call qword [0x1800371a0]
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x18000d5db
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.18000c690
nop
lea rcx, [rsp + 0x28]
call fcn.18000b690
test al, al
je 0x18000d5d1
mov rdx, rbx
mov rcx, rdi
call fcn.18000f6c0
test eax, eax
setns al
mov byte [rdi + 0x20], al
lea rcx, [rsp + 0x28]
call fcn.18000b6f0
nop
lea rcx, [rsp + 0x28]
call fcn.18000c9a0
cmp byte [rdi + 0x20], 0
je 0x18000d625
mov rcx, qword [rdi + 0x28]
cmp rcx, rbx
je 0x18000d625
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test rbx, rbx
je 0x18000d60c
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 0x18000d625
test r12, r12
jne 0x18000d625
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.1800111b0
mov rbx, qword [rsp + 0x6c8]
add rsp, 0x690
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret