Function at 0x14003ac40
Capabilities:
Create directory
Delete directory

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x170]
sub rsp, 0x270
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov qword [rsp + 0x2c0], rbx
mov rax, qword [0x1402fcb80]
xor rax, rsp
mov qword [rbp + 0x160], rax
mov r14, rdx
mov r12, rcx
call fcn.140069614
mov rdx, rax
xor esi, esi
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003aca3
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea rdx, str.ICAED85B
test rdx, 0xffffffffffff0000
jne 0x14003ace6
movzx ebx, dx
mov ecx, ebx
call fcn.140069024
test rax, rax
je 0x14003acf7
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140011830
jmp 0x14003acf7
mov r8d, 8
lea rcx, [rsp + 0x40]
call fcn.140011b80
nop
call fcn.140069614
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003ad16
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x28], rax
lea r13, [0x140296e0c]
test r13, 0xffffffffffff0000
jne 0x14003ad5a
movzx ebx, r13w
mov ecx, ebx
call fcn.140069024
test rax, rax
je 0x14003ad6b
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.140011830
jmp 0x14003ad6b
xor r8d, r8d
mov rdx, r13
lea rcx, [rsp + 0x28]
call fcn.140011b80
nop
lea rax, vtable.CUtlXProperty.0
mov qword [rbp - 0x50], rax
lea rcx, [rbp - 0x48]
call qword [sym.imp.SetupXML.dll_public:_void___cdecl_CXMLFileManagerInterface::constructor_void____ptr64]
lea rax, vtable.CUtlX.0
mov qword [rbp - 0x48], rax
mov edx, 2
lea rcx, [rbp - 0x48]
call qword [sym.imp.SetupXML.dll_public:_void___cdecl_CXMLFileManagerInterface::SetFileIndex_enum_XMLFILENAMES____ptr64]
nop
call fcn.140069614
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003adba
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x20], rbx
or rdi, 0xffffffffffffffff
test r14, r14
je 0x14003ae11
test r14, 0xffffffffffff0000
jne 0x14003ae01
movzx r15d, r14w
mov ecx, r15d
call fcn.140069024
test rax, rax
je 0x14003ae28
mov r8d, r15d
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140011830
jmp 0x14003ae23
mov rax, rdi
inc rax
cmp word [r14 + rax*2], 0
jne 0x14003ae04
jmp 0x14003ae13
mov eax, esi
mov r8d, eax
mov rdx, r14
lea rcx, [rsp + 0x20]
call fcn.140011b80
mov rbx, qword [rsp + 0x20]
movzx eax, word [rbx]
cmp ax, word [0x140296e0c]
jne 0x14003ae38
mov eax, esi
jmp 0x14003ae3d
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x14003ae5c
lea rdx, str.IsNotValid
lea rcx, [rsp + 0x20]
call fcn.140028f60
mov rbx, qword [rsp + 0x20]
call fcn.140069614
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003ae7b
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp + 0xc8], rax
lea r15, vtable.CUtlCommonPath.0
mov qword [rbp + 0xc0], r15
mov dword [rbp + 0xd0], esi
test rbx, rbx
jne 0x14003aeac
mov eax, esi
jmp 0x14003aeba
mov rax, rdi
nop
inc rax
cmp word [rbx + rax*2], 0
jne 0x14003aeb0
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0xc8]
call fcn.140011b80
nop
lea rcx, [rbp + 0xc0]
call fcn.14003e820
mov rdx, qword [rbp + 0xc8]
test rdx, rdx
jne 0x14003aee9
mov eax, esi
jmp 0x14003aefa
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x14003aef0
mov r8d, eax
lea rcx, [rsp + 0x20]
call fcn.140011b80
lea r8, str.MAX_PATH
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x50]
call fcn.140053520
nop
mov rcx, qword [rsp + 0x58]
call fcn.1401f4aa0
mov ebx, eax
mov edx, 0x104
test eax, eax
cmove ebx, edx
mov rcx, qword [rsp + 0x40]
mov eax, dword [rcx - 0x10]
lea ecx, [rax + rbx]
cmp ecx, edx
jl 0x14003af46
mov ebx, edx
sub ebx, eax
mov r8d, ebx
lea rdx, [0x14029709c]
lea rcx, [rsp + 0x58]
call fcn.140011640
mov rax, qword [rbp + 0xc8]
cmp dword [rax - 0x10], ebx
jle 0x14003aff9
lea r8, str.Str.PathTooLong
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x50]
call fcn.140053520
nop
lea r8, str.Str.ProductDisplayName
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x50]
call fcn.140053520
nop
mov r9, qword [rsp + 0x58]
mov r8, qword [rax]
mov rdx, qword [rbp - 0x78]
lea rcx, [rsp + 0x28]
call fcn.140011640
nop
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003afc3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r9d, 0x1000010
xor r8d, r8d
mov rdx, qword [rsp + 0x28]
mov rcx, r12
call fcn.1400236d0
nop
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003aff2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor bl, bl
jmp 0x14003b946
lea rdx, [rbp]
lea rcx, [rbp + 0xc0]
call fcn.14003e590
nop
mov rbx, qword [rax]
call fcn.140069614
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003b02c
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp + 0x118], rax
mov qword [rbp + 0x110], r15
mov dword [rbp + 0x120], esi
test rbx, rbx
jne 0x14003b056
mov eax, esi
jmp 0x14003b06a
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x14003b060
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x118]
call fcn.140011b80
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b095
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edx, 2
lea rcx, [rbp + 0x110]
call fcn.14003d170
test al, al
jne 0x14003b108
lea r8, str.Str.NoFolderAccess
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x50]
call fcn.140053520
nop
mov r8, qword [rsp + 0x20]
mov rdx, qword [rbp - 0x58]
lea rcx, [rsp + 0x28]
call fcn.140011640
mov r9d, 0x1000010
xor r8d, r8d
mov rdx, qword [rsp + 0x28]
mov rcx, r12
call fcn.1400236d0
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b101
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor bl, bl
jmp 0x14003b923
call fcn.140069614
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003b127
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x50], rax
lea rdx, [0x14029d758]
test rdx, 0xffffffffffff0000
jne 0x14003b16a
movzx ebx, dx
mov ecx, ebx
call fcn.140069024
test rax, rax
je 0x14003b17b
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.140011830
jmp 0x14003b17b
mov r8d, 7
lea rcx, [rsp + 0x50]
call fcn.140011b80
nop
test r14, r14
jne 0x14003b184
mov eax, esi
jmp 0x14003b19b
mov rax, rdi
nop word [rax + rax]
inc rax
cmp word [r14 + rax*2], 0
jne 0x14003b190
mov r8d, eax
mov rdx, r14
lea rcx, [rsp + 0x20]
call fcn.140011b80
mov rdx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
call fcn.1401f6770
test rax, rax
je 0x14003b222
sub rax, rbx
sar rax, 1
test eax, eax
js 0x14003b222
mov rdx, r13
lea rcx, [rbp - 0x68]
call fcn.140011c70
nop
mov dword [rbp + 0xd0], esi
mov rdx, qword [rbp - 0x68]
test rdx, rdx
jne 0x14003b1ec
mov eax, esi
jmp 0x14003b1fa
mov rax, rdi
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x14003b1f0
mov r8d, eax
lea rcx, [rbp + 0xc8]
call fcn.140011b80
nop
mov rdx, qword [rbp - 0x68]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b222
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbp + 0xc8]
cmp dword [rax - 0x10], 0
je 0x14003b244
cmp r13, rax
je 0x14003b244
lea rcx, [0x140299a94]
cmp rcx, rax
jne 0x14003b301
call fcn.140069614
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003b263
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
lea rdx, str.No_Folder
test rdx, 0xffffffffffff0000
jne 0x14003b2a8
movzx r14d, dx
mov ecx, r14d
call fcn.140069024
test rax, rax
je 0x14003b2bd
mov r8d, r14d
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140011830
jmp 0x14003b2b8
mov r8d, 9
lea rcx, [rsp + 0x48]
call fcn.140011b80
mov rbx, qword [rsp + 0x48]
mov dword [rbp + 0xd0], esi
test rbx, rbx
jne 0x14003b2cc
mov eax, esi
jmp 0x14003b2da
mov rax, rdi
nop
inc rax
cmp word [rbx + rax*2], 0
jne 0x14003b2d0
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0xc8]
call fcn.140011b80
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b301
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edx, 1
lea rcx, [rbp + 0xc0]
call fcn.14003d170
test al, al
jne 0x14003b478
nop word [rax + rax]
lea rcx, [rbp + 0xc0]
call fcn.14003c9d0
lea rdx, [rbp + 8]
lea rcx, [rbp + 0xc0]
call fcn.14003c0d0
mov rcx, qword [rax]
movzx eax, word [rcx]
cmp ax, word [0x140296e0c]
jne 0x14003b34f
mov eax, esi
jmp 0x14003b354
sbb eax, eax
or eax, 1
test eax, eax
sete bl
mov rdx, qword [rbp + 8]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b371
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
jne 0x14003b38f
mov edx, 1
lea rcx, [rbp + 0xc0]
call fcn.14003d170
test al, al
je 0x14003b320
jmp 0x14003b478
call fcn.140069614
mov rcx, rax
test rax, rax
setne sil
test esi, esi
jne 0x14003b3ad
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x60], rax
mov r8, r13
mov edx, MsiReinstallFeatureW
lea rcx, [rbp - 0x28]
call fcn.14003f5b0
nop
mov r9, qword [rax]
mov r8, qword [rsp + 0x20]
lea rdx, str._s__n_n__s
lea rcx, [rsp + 0x60]
call fcn.140011640
nop
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b400
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8, str.Str.NoFolderAccess
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x50]
call fcn.140053520
nop
mov r8, qword [rsp + 0x60]
mov rdx, qword [rbp - 0x80]
lea rcx, [rsp + 0x28]
call fcn.140011640
mov r9d, 0x1000010
xor r8d, r8d
mov rdx, qword [rsp + 0x28]
mov rcx, r12
call fcn.1400236d0
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b458
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b471
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor bl, bl
jmp 0x14003b909
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0x70]
call fcn.14003bfc0
nop
mov rdx, qword [rsp + 0x20]
lea rcx, [rbp + 0x20]
call fcn.14003bf10
nop
lea rcx, [rbp + 0x78]
call fcn.140010d90
lea rcx, [rbp + 0x28]
call fcn.140010d90
lea rdx, [rsp + 0x78]
lea rcx, [rbp + 0x70]
call fcn.14003c0d0
nop
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x20]
call fcn.14003c0d0
nop
mov ecx, esi
mov rax, qword [rsp + 0x30]
test rax, rax
setne cl
test ecx, ecx
jne 0x14003b4e4
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rcx, qword [rsp + 0x78]
sub rax, rcx
nop dword [rax]
movzx edx, word [rcx]
cmp dx, word [rcx + rax]
jne 0x14003b506
add rcx, 2
test dx, dx
jne 0x14003b4f0
mov eax, esi
jmp 0x14003b50b
sbb eax, eax
or eax, 1
test eax, eax
setne al
test al, al
je 0x14003b773
mov rdx, r13
lea rcx, [rbp + 0x20]
call fcn.14003cd40
mov ebx, eax
test eax, eax
je 0x14003b5fe
call fcn.140069614
mov rcx, rax
test rax, rax
setne sil
test esi, esi
jne 0x14003b54c
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x70], rax
mov r8, r13
mov edx, ebx
lea rcx, [rbp - 0x20]
call fcn.14003f5b0
nop
mov r9, qword [rax]
mov r8, qword [rsp + 0x20]
lea rdx, str._s__n_n__s
lea rcx, [rsp + 0x70]
call fcn.140011640
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b59c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8, str.Str.NoFolderAccess
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x50]
call fcn.140053520
nop
mov r8, qword [rsp + 0x70]
mov rdx, qword [rbp - 0x70]
lea rcx, [rsp + 0x28]
call fcn.140011640
mov r9d, 0x1000010
xor r8d, r8d
mov rdx, qword [rsp + 0x28]
mov rcx, r12
call fcn.1400236d0
nop
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b5f4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x70]
jmp 0x14003b857
lea rdx, [rbp - 0x18]
lea rcx, [rbp + 0x20]
call fcn.14003c0d0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x30]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14003b665
cmp dword [rbx + 0x10], 0
jl 0x14003b656
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14003b656
call fcn.1400116e0
mov r14, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x14003b64b
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [r14 + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x14003b665
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140011b80
nop
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b67d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ecx, esi
mov rax, qword [rsp + 0x30]
test rax, rax
setne cl
test ecx, ecx
je 0x14003b768
mov rcx, qword [rsp + 0x78]
mov r8, rax
sub r8, rcx
nop dword [rax]
movzx edx, word [rcx]
cmp dx, word [rcx + r8]
jne 0x14003b6b7
add rcx, 2
test dx, dx
jne 0x14003b6a0
mov ecx, esi
jmp 0x14003b6bc
sbb ecx, ecx
or ecx, 1
test ecx, ecx
setne cl
test cl, cl
je 0x14003b89e
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea rdx, [rbp - 8]
lea rcx, [rbp + 0x20]
call fcn.14003c0d0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x30]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14003b739
cmp dword [rbx + 0x10], 0
jl 0x14003b72a
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14003b72a
call fcn.1400116e0
mov r14, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x14003b71f
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [r14 + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x14003b739
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140011b80
nop
mov rdx, qword [rbp - 8]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b751
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rcx, [rbp + 0x20]
call fcn.14003c9d0
mov rax, qword [rsp + 0x30]
test rax, rax
jne 0x14003b692
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rdx, qword [rsp + 0x40]
lea rcx, [rbp + 0xc0]
call fcn.14003c240
mov rdx, qword [rbp + 0xc8]
lea rcx, [rsp + 0x38]
call fcn.140011c70
nop
xor edx, edx
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x14003b874
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x14003b874
mov r8, r13
mov edx, eax
lea rcx, [rsp + 0x68]
call fcn.14003f5b0
nop
lea r8, str.Str.NoFolderAccess
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x50]
call fcn.140053520
nop
mov r8, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x68]
call fcn.1400109d0
mov r8, qword [rsp + 0x68]
mov rdx, qword [rbp - 0x60]
lea rcx, [rsp + 0x28]
call fcn.140011640
mov r9d, 0x1000010
xor r8d, r8d
mov rdx, qword [rsp + 0x28]
mov rcx, r12
call fcn.1400236d0
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b838
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b852
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b86b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor bl, bl
mov rax, qword [rsp + 0x30]
jmp 0x14003b8a0
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b899
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsp + 0x30]
mov bl, 1
lea rdx, [rax - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b8b5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b8cf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rbp + 0x20], r15
mov rdx, qword [rbp + 0x28]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b8ec
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rbp + 0x70], r15
mov rdx, qword [rbp + 0x78]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b909
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b923
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rbp + 0x110], r15
mov rdx, qword [rbp + 0x118]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b946
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b960
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rbp + 0xc0], r15
mov rdx, qword [rbp + 0xc8]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b983
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b99d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rax, vtable.CUtlXProperty.0
mov qword [rbp - 0x50], rax
lea rax, vtable.CUtlX.0
mov qword [rbp - 0x48], rax
lea rcx, [rbp - 0x48]
call qword [sym.imp.SetupXML.dll_public_virtual:_void___cdecl_CXMLFileManagerInterface::destructor_void____ptr64]
nop
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b9d8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b9f2
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
movzx eax, bl
mov rcx, qword [rbp + 0x160]
xor rcx, rsp
call fcn.1401f3080
mov rbx, qword [rsp + 0x2c0]
add rsp, 0x270
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret