Function at 0x180047ac0
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 [0x180295a70]
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 0x180047b7d
mov r8d, 0x410
lea rdx, str.ACB3FAA1_462D_475C_AC34_B1BD33673C0D
lea rcx, [rsp + 0x28]
call fcn.18003ae70
nop
lea rcx, [rsp + 0x28]
call fcn.180038df0
mov rbp, rax
test rax, rax
je 0x180047b71
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 0x180047b71
mov ecx, 0x8007000e
call fcn.180001000
nop
lea rcx, [rsp + 0x28]
call fcn.18003a3b0
jmp 0x180047bcd
mov word [rsp + 0x60], 0
xor edx, edx
mov r8d, 0x616
lea rcx, [rsp + 0x62]
call fcn.1801603e0
mov edx, 0x30c
lea rcx, [rsp + 0x60]
call fcn.18003a440
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 0x180047bcd
mov ecx, 0x8007000e
call fcn.180001000
int3
lea rcx, [0x1801918f8]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, [0x1801918f8]
lea rcx, [rsp + 0x20]
call fcn.18000cb24
test eax, eax
jns 0x180047bfa
mov ecx, eax
call fcn.180001000
int3
sub ebx, 1
je 0x180047d25
sub ebx, 1
je 0x180047cc8
sub ebx, 4
je 0x180047c5f
cmp ebx, 1
je 0x180047c2e
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rbx, r12
mov qword [rsp + 0x20], rbx
jmp 0x180047d57
lea rcx, str.System
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str.System
lea rcx, [rsp + 0x20]
call fcn.18000cb24
test eax, eax
jns 0x180047d52
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.18000cb24
test eax, eax
jns 0x180047c8c
mov ecx, eax
call fcn.180001000
int3
test rsi, rsi
je 0x180047d52
cmp word [rsi], 0
je 0x180047d52
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.18000cb24
test eax, eax
jns 0x180047d52
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.18000cb24
test eax, eax
jns 0x180047cf5
mov ecx, eax
call fcn.180001000
int3
test rsi, rsi
je 0x180047d52
cmp word [rsi], 0
je 0x180047d52
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.18000cb24
test eax, eax
jns 0x180047d52
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.18000cb24
test eax, eax
jns 0x180047d52
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 0x180047e0b
lea rcx, str..dat
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str..dat
lea rcx, [rsp + 0x20]
call fcn.18000cb24
test eax, eax
jns 0x180047d95
mov ecx, eax
call fcn.180001000
int3
test r13, r13
je 0x180047daf
mov rdx, r13
mov rcx, rdi
call fcn.180048920
mov byte [rdi + 0x20], al
mov rbx, qword [rsp + 0x20]
jmp 0x180047e0b
call qword [0x1802886b0]
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x180047e0b
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.18003a020
nop
lea rcx, [rsp + 0x28]
call fcn.180038b40
test al, al
je 0x180047e01
mov rdx, rbx
mov rcx, rdi
call fcn.180048980
test eax, eax
setns al
mov byte [rdi + 0x20], al
lea rcx, [rsp + 0x28]
call fcn.180038ba0
nop
lea rcx, [rsp + 0x28]
call fcn.18003a330
cmp byte [rdi + 0x20], 0
je 0x180047e55
mov rcx, qword [rdi + 0x28]
cmp rcx, rbx
je 0x180047e55
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test rbx, rbx
je 0x180047e3c
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 0x180047e55
test r12, r12
jne 0x180047e55
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.1801604e0
mov rbx, qword [rsp + 0x6c8]
add rsp, 0x690
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret