Function at 0x14003ab30
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.1400694ec
mov rdx, rax
xor esi, esi
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003ab93
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 0x14003abd6
movzx ebx, dx
mov ecx, ebx
call fcn.140068f14
test rax, rax
je 0x14003abe7
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140011830
jmp 0x14003abe7
mov r8d, 8
lea rcx, [rsp + 0x40]
call fcn.140011b80
nop
call fcn.1400694ec
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003ac06
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 0x14003ac4a
movzx ebx, r13w
mov ecx, ebx
call fcn.140068f14
test rax, rax
je 0x14003ac5b
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.140011830
jmp 0x14003ac5b
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.1400694ec
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003acaa
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 0x14003ad01
test r14, 0xffffffffffff0000
jne 0x14003acf1
movzx r15d, r14w
mov ecx, r15d
call fcn.140068f14
test rax, rax
je 0x14003ad18
mov r8d, r15d
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140011830
jmp 0x14003ad13
mov rax, rdi
inc rax
cmp word [r14 + rax*2], 0
jne 0x14003acf4
jmp 0x14003ad03
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 0x14003ad28
mov eax, esi
jmp 0x14003ad2d
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x14003ad4c
lea rdx, str.IsNotValid
lea rcx, [rsp + 0x20]
call fcn.140028e50
mov rbx, qword [rsp + 0x20]
call fcn.1400694ec
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003ad6b
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 0x14003ad9c
mov eax, esi
jmp 0x14003adaa
mov rax, rdi
nop
inc rax
cmp word [rbx + rax*2], 0
jne 0x14003ada0
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0xc8]
call fcn.140011b80
nop
lea rcx, [rbp + 0xc0]
call fcn.14003e710
mov rdx, qword [rbp + 0xc8]
test rdx, rdx
jne 0x14003add9
mov eax, esi
jmp 0x14003adea
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x14003ade0
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.140053410
nop
mov rcx, qword [rsp + 0x58]
call fcn.1401f4990
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 0x14003ae36
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 0x14003aee9
lea r8, str.Str.PathTooLong
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x50]
call fcn.140053410
nop
lea r8, str.Str.ProductDisplayName
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x50]
call fcn.140053410
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 0x14003aeb3
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.1400235c0
nop
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003aee2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor bl, bl
jmp 0x14003b836
lea rdx, [rbp]
lea rcx, [rbp + 0xc0]
call fcn.14003e480
nop
mov rbx, qword [rax]
call fcn.1400694ec
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003af1c
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 0x14003af46
mov eax, esi
jmp 0x14003af5a
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x14003af50
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 0x14003af85
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edx, 2
lea rcx, [rbp + 0x110]
call fcn.14003d060
test al, al
jne 0x14003aff8
lea r8, str.Str.NoFolderAccess
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x50]
call fcn.140053410
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.1400235c0
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003aff1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor bl, bl
jmp 0x14003b813
call fcn.1400694ec
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003b017
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, [0x14029d728]
test rdx, 0xffffffffffff0000
jne 0x14003b05a
movzx ebx, dx
mov ecx, ebx
call fcn.140068f14
test rax, rax
je 0x14003b06b
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.140011830
jmp 0x14003b06b
mov r8d, 7
lea rcx, [rsp + 0x50]
call fcn.140011b80
nop
test r14, r14
jne 0x14003b074
mov eax, esi
jmp 0x14003b08b
mov rax, rdi
nop word [rax + rax]
inc rax
cmp word [r14 + rax*2], 0
jne 0x14003b080
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.1401f6660
test rax, rax
je 0x14003b112
sub rax, rbx
sar rax, 1
test eax, eax
js 0x14003b112
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 0x14003b0dc
mov eax, esi
jmp 0x14003b0ea
mov rax, rdi
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x14003b0e0
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 0x14003b112
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 0x14003b134
cmp r13, rax
je 0x14003b134
lea rcx, [0x140299a44]
cmp rcx, rax
jne 0x14003b1f1
call fcn.1400694ec
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14003b153
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 0x14003b198
movzx r14d, dx
mov ecx, r14d
call fcn.140068f14
test rax, rax
je 0x14003b1ad
mov r8d, r14d
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140011830
jmp 0x14003b1a8
mov r8d, 9
lea rcx, [rsp + 0x48]
call fcn.140011b80
mov rbx, qword [rsp + 0x48]
mov dword [rbp + 0xd0], esi
test rbx, rbx
jne 0x14003b1bc
mov eax, esi
jmp 0x14003b1ca
mov rax, rdi
nop
inc rax
cmp word [rbx + rax*2], 0
jne 0x14003b1c0
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 0x14003b1f1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edx, 1
lea rcx, [rbp + 0xc0]
call fcn.14003d060
test al, al
jne 0x14003b368
nop word [rax + rax]
lea rcx, [rbp + 0xc0]
call fcn.14003c8c0
lea rdx, [rbp + 8]
lea rcx, [rbp + 0xc0]
call fcn.14003bfc0
mov rcx, qword [rax]
movzx eax, word [rcx]
cmp ax, word [0x140296e0c]
jne 0x14003b23f
mov eax, esi
jmp 0x14003b244
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 0x14003b261
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
jne 0x14003b27f
mov edx, 1
lea rcx, [rbp + 0xc0]
call fcn.14003d060
test al, al
je 0x14003b210
jmp 0x14003b368
call fcn.1400694ec
mov rcx, rax
test rax, rax
setne sil
test esi, esi
jne 0x14003b29d
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.14003f4a0
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 0x14003b2f0
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.140053410
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.1400235c0
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b348
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 0x14003b361
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor bl, bl
jmp 0x14003b7f9
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0x70]
call fcn.14003beb0
nop
mov rdx, qword [rsp + 0x20]
lea rcx, [rbp + 0x20]
call fcn.14003be00
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.14003bfc0
nop
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x20]
call fcn.14003bfc0
nop
mov ecx, esi
mov rax, qword [rsp + 0x30]
test rax, rax
setne cl
test ecx, ecx
jne 0x14003b3d4
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 0x14003b3f6
add rcx, 2
test dx, dx
jne 0x14003b3e0
mov eax, esi
jmp 0x14003b3fb
sbb eax, eax
or eax, 1
test eax, eax
setne al
test al, al
je 0x14003b663
mov rdx, r13
lea rcx, [rbp + 0x20]
call fcn.14003cc30
mov ebx, eax
test eax, eax
je 0x14003b4ee
call fcn.1400694ec
mov rcx, rax
test rax, rax
setne sil
test esi, esi
jne 0x14003b43c
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.14003f4a0
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 0x14003b48c
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.140053410
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.1400235c0
nop
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b4e4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x70]
jmp 0x14003b747
lea rdx, [rbp - 0x18]
lea rcx, [rbp + 0x20]
call fcn.14003bfc0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x30]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14003b555
cmp dword [rbx + 0x10], 0
jl 0x14003b546
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14003b546
call fcn.1400116e0
mov r14, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x14003b53b
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 0x14003b555
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 0x14003b56d
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 0x14003b658
mov rcx, qword [rsp + 0x78]
mov r8, rax
sub r8, rcx
nop dword [rax]
movzx edx, word [rcx]
cmp dx, word [rcx + r8]
jne 0x14003b5a7
add rcx, 2
test dx, dx
jne 0x14003b590
mov ecx, esi
jmp 0x14003b5ac
sbb ecx, ecx
or ecx, 1
test ecx, ecx
setne cl
test cl, cl
je 0x14003b78e
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea rdx, [rbp - 8]
lea rcx, [rbp + 0x20]
call fcn.14003bfc0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x30]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14003b629
cmp dword [rbx + 0x10], 0
jl 0x14003b61a
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14003b61a
call fcn.1400116e0
mov r14, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x14003b60f
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 0x14003b629
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 0x14003b641
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rcx, [rbp + 0x20]
call fcn.14003c8c0
mov rax, qword [rsp + 0x30]
test rax, rax
jne 0x14003b582
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rdx, qword [rsp + 0x40]
lea rcx, [rbp + 0xc0]
call fcn.14003c130
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 0x14003b764
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x14003b764
mov r8, r13
mov edx, eax
lea rcx, [rsp + 0x68]
call fcn.14003f4a0
nop
lea r8, str.Str.NoFolderAccess
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x50]
call fcn.140053410
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.1400235c0
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003b728
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 0x14003b742
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 0x14003b75b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor bl, bl
mov rax, qword [rsp + 0x30]
jmp 0x14003b790
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 0x14003b789
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 0x14003b7a5
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 0x14003b7bf
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 0x14003b7dc
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 0x14003b7f9
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 0x14003b813
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 0x14003b836
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 0x14003b850
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 0x14003b873
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 0x14003b88d
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 0x14003b8c8
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 0x14003b8e2
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.1401f2f70
mov rbx, qword [rsp + 0x2c0]
add rsp, 0x270
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret