Function at 0x180009c40
Capabilities:
Check if file exists
Check mutex on windows

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x160
mov qword [rsp + 0x158], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov r13, r8
mov r14, rdx
mov r15, rcx
xor r12d, r12d
mov qword [rsp + 0x40], r12
lea rdx, str.BaseNamedObjects
lea rcx, [rax - 0x40]
call sub.ntdll.dll_RtlInitUnicodeString
mov dword [rsp + 0x118], 0x30
mov qword [rsp + 0x120], r12
lea rax, [rsp + 0x148]
mov qword [rsp + 0x128], rax
mov dword [rsp + 0x130], reloc.msi.dll_MsiGetProductInfoFromScriptA
mov qword [rsp + 0x138], r12
mov qword [rsp + 0x140], r12
lea r8, [rsp + 0x118]
lea edx, [r12 + 1]
lea rcx, [rsp + 0x40]
call qword [sym.imp.ntdll.dll_ZwOpenDirectoryObject]
test eax, eax
jns 0x180009d0d
mov ecx, eax
call qword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
mov ebx, eax
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x180009d06
cmp rcx, 0xffffffffffffffff
je 0x180009d06
call qword [sym.imp.ntdll.dll_ZwClose]
mov eax, ebx
jmp 0x18000a874
mov bpl, 1
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x80], r12
mov dword [rsp + 0x88], r12d
mov edx, 0x120
lea rcx, [rsp + 0x70]
call fcn.180009590
test al, al
je 0x18000a849
mov edx, 0x120
mov rcx, qword [rsp + 0x78]
sub rdx, rcx
mov rax, qword [rsp + 0x70]
add rcx, rax
call fcn.1800096a0
mov qword [rsp + 0x78], 0x120
lea rdx, [rsp + 0xf8]
mov rcx, r15
call fcn.18000b530
nop
mov rdx, rax
lea rcx, [rsp + 0x110]
call fcn.180009b20
nop
mov rdx, qword [rax]
lea rcx, [rsp + 0x50]
call fcn.180009700
nop
mov rdx, qword [rsp + 0x110]
add rdx, 0xffffffffffffffe8
or rdi, 0xffffffffffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180009dbb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0xf8]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180009ddd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov dword [rsp + 0xa8], r12d
lea rax, [rsp + 0x98]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov r9b, 1
mov r8d, 0x120
mov rbx, qword [rsp + 0x70]
mov rdx, rbx
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntdll.dll_ZwQueryDirectoryObject]
cmp eax, 0x8000001a
je 0x18000a7fc
nop dword [rax + rax]
test eax, eax
jns 0x180009ee1
cmp eax, 0xc0000023
jne 0x18000a522
mov esi, dword [rsp + 0x98]
cmp rsi, qword [rsp + 0x78]
jbe 0x18000a4c5
test rsi, rsi
jne 0x180009e81
test rbx, rbx
je 0x180009e6f
mov rcx, rbx
call fcn.18000be48
mov rbx, r12
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x80], r12
jmp 0x18000a428
cmp rsi, qword [rsp + 0x80]
ja 0x180009ea9
mov rdx, rsi
mov rax, qword [rsp + 0x78]
sub rdx, rax
lea rcx, [rax + rbx]
call fcn.1800096a0
mov qword [rsp + 0x78], rsi
jmp 0x18000a428
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.180009590
test al, al
je 0x18000a470
mov rdx, rsi
mov rax, qword [rsp + 0x78]
sub rdx, rax
mov rbx, qword [rsp + 0x70]
lea rcx, [rax + rbx]
call fcn.1800096a0
mov qword [rsp + 0x78], rsi
jmp 0x18000a428
mov byte [rsp + 0x1a8], 0
xor r8d, r8d
lea rdx, [rsp + 0x48]
mov rcx, r15
call fcn.18000b3b0
nop
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0xb8]
call sub.ntdll.dll_RtlInitUnicodeString
movzx r11d, word [rsp + 0xb8]
cmp word [rbx], r11w
ja 0x180009f50
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a41b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov rbx, qword [rsp + 0x70]
movzx ebp, byte [rsp + 0x1a8]
jmp 0x18000a428
lea rdx, [rbx + 0x10]
mov r8b, 1
lea rcx, [0x18001cc28]
call sub.ntdll.dll_RtlEqualUnicodeString
test al, al
jne 0x180009f9c
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a41b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov rbx, qword [rsp + 0x70]
mov bpl, byte [rsp + 0x1a8]
jmp 0x18000a428
movzx eax, word [rsp + 0xb8]
mov word [rsp + 0xd0], ax
mov word [rsp + 0xd2], ax
mov rax, qword [rbx + 8]
mov qword [rsp + 0xd8], rax
mov r8b, 1
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0xd0]
call sub.ntdll.dll_RtlEqualUnicodeString
test al, al
jne 0x18000a011
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a41b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov rbx, qword [rsp + 0x70]
mov bpl, byte [rsp + 0x1a8]
jmp 0x18000a428
movzx ecx, word [rbx]
movzx eax, word [rsp + 0xb8]
sub cx, ax
mov word [rsp + 0xe0], cx
mov word [rsp + 0xe2], cx
mov rcx, rax
shr rcx, 1
mov rax, qword [rbx + 8]
lea rcx, [rax + rcx*2]
mov qword [rsp + 0xe8], rcx
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x68]
call fcn.180009a40
nop
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0xc8]
mov rcx, r15
call fcn.18000b3b0
nop
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.180009b20
nop
mov rdx, qword [rsp + 0xc8]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a0a1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov r8, qword [rsp + 0x90]
xor edx, edx
mov ecx, 0x100000
call qword [sym.imp.KERNEL32.dll_OpenMutexW]
mov rsi, rax
mov qword [rsp + 0xb0], rax
test rax, rax
jne 0x18000a153
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp eax, 2
jne 0x18000a57c
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a0fe
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a11e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a41b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov rbx, qword [rsp + 0x70]
mov bpl, byte [rsp + 0x1a8]
jmp 0x18000a428
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x108]
mov rcx, r15
call fcn.18000b3e0
nop
mov rdx, rax
lea rcx, [rsp + 0xa0]
call fcn.180009b20
nop
mov rdx, qword [rsp + 0x108]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a19c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov r8, qword [rsp + 0xa0]
xor edx, edx
lea ecx, [rdx + 2]
call qword [sym.imp.KERNEL32.dll_OpenEventW]
mov r12, rax
mov qword [rsp + 0x100], rax
test rax, rax
jne 0x18000a295
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp eax, 2
jne 0x18000a719
or edx, 0xffffffff
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
je 0x18000a62a
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0xb0], r12
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a21d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a240
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a260
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a41b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov rbx, qword [rsp + 0x70]
mov bpl, byte [rsp + 0x1a8]
jmp 0x18000a428
mov ebp, dword [r13]
inc ebp
mov eax, MsiDatabaseExportA
mul rbp
cmovo rax, rdi
add rax, 8
cmovb rax, rdi
mov rcx, rax
call fcn.18000bbc0
test rax, rax
je 0x18000a2ea
mov dword [rax], ebp
lea rbx, [rax + 8]
lea rax, [0x180002db0]
mov qword [rsp + 0x20], rax
lea r9, [0x1800093d0]
mov r8d, ebp
mov edx, MsiDatabaseExportA
mov rcx, rbx
call fcn.18000d35c
xor r9d, r9d
jmp 0x18000a2f0
xor r9d, r9d
mov rbx, r9
mov qword [rsp + 0xf0], rbx
mov r8d, r9d
cmp dword [r13], 0
jbe 0x18000a33e
mov rdx, r9
nop word [rax + rax]
mov rax, qword [r14]
mov rcx, qword [rdx + rax]
mov qword [rdx + rax], r9
mov qword [rdx + rbx], rcx
mov rcx, qword [r14]
mov rax, qword [rdx + rcx + 8]
mov qword [rdx + rcx + 8], r9
mov qword [rdx + rbx + 8], rax
inc r8d
add rdx, 0x10
cmp r8d, dword [r13]
jb 0x18000a310
mov qword [rsp + 0xb0], r9
mov eax, dword [r13]
add rax, rax
mov qword [rbx + rax*8], rsi
mov qword [rsp + 0x100], r9
mov eax, dword [r13]
add rax, rax
mov qword [rbx + rax*8 + 8], r12
mov rcx, qword [r14]
mov qword [rsp + 0xf0], rcx
mov qword [r14], rbx
inc dword [r13]
test rcx, rcx
je 0x18000a387
mov edx, 3
call fcn.180002d30
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a3aa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a3cd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a3ed
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a41b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov rbx, qword [rsp + 0x70]
mov bpl, byte [rsp + 0x1a8]
jmp 0x18000a428
mov rbx, qword [rsp + 0x70]
mov bpl, byte [rsp + 0x1a8]
lea rax, [rsp + 0x98]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], bpl
mov r9b, 1
mov r8d, dword [rsp + 0x78]
mov rdx, rbx
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntdll.dll_ZwQueryDirectoryObject]
cmp eax, 0x8000001a
je 0x18000a7fc
xor r12d, r12d
jmp 0x180009e30
cmp byte [rsp + 0x60], 0
je 0x18000a48a
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rsp + 0x60], 0
lea rcx, [rsp + 0x50]
call fcn.1800023b0
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x18000a4a5
call fcn.18000be48
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18000a4bb
cmp rcx, 0xffffffffffffffff
je 0x18000a4bb
call qword [sym.imp.ntdll.dll_ZwClose]
mov eax, 8
jmp 0x18000a874
mov ecx, 0xc0000023
call qword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
mov edi, eax
cmp byte [rsp + 0x60], 0
je 0x18000a4ec
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rsp + 0x60], 0
lea rcx, [rsp + 0x50]
call fcn.1800023b0
nop
test rbx, rbx
je 0x18000a505
mov rcx, rbx
call fcn.18000be48
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18000a51b
cmp rcx, 0xffffffffffffffff
je 0x18000a51b
call qword [sym.imp.ntdll.dll_ZwClose]
mov eax, edi
jmp 0x18000a874
mov ecx, eax
call qword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
mov edi, eax
cmp byte [rsp + 0x60], 0
je 0x18000a546
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rsp + 0x60], 0
lea rcx, [rsp + 0x50]
call fcn.1800023b0
nop
test rbx, rbx
je 0x18000a55f
mov rcx, rbx
call fcn.18000be48
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18000a575
cmp rcx, 0xffffffffffffffff
je 0x18000a575
call qword [sym.imp.ntdll.dll_ZwClose]
mov eax, edi
jmp 0x18000a874
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a59f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a5bf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x18000a5dd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
cmp byte [rsp + 0x60], 0
je 0x18000a5f7
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rsp + 0x60], 0
lea rcx, [rsp + 0x50]
call fcn.1800023b0
nop
mov rcx, qword [rsp + 0x70]
call fcn.18000be48
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18000a623
cmp rcx, 0xffffffffffffffff
je 0x18000a623
call qword [sym.imp.ntdll.dll_ZwClose]
mov eax, ebx
jmp 0x18000a874
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov ecx, edi
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18000a656
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.msi.dll_MsiConfigureFeatureFromDescriptorA + 8]
nop
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0xb0], 0
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a68e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a6ae
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x18000a6cc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
cmp byte [rsp + 0x60], 0
je 0x18000a6e6
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rsp + 0x60], 0
lea rcx, [rsp + 0x50]
call fcn.1800023b0
nop
mov rcx, qword [rsp + 0x70]
call fcn.18000be48
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18000a712
cmp rcx, 0xffffffffffffffff
je 0x18000a712
call qword [sym.imp.ntdll.dll_ZwClose]
mov eax, ebx
jmp 0x18000a874
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a73c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0xb0], 0
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a774
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a794
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x18000a7b2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
nop
cmp byte [rsp + 0x60], 0
je 0x18000a7cc
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rsp + 0x60], 0
lea rcx, [rsp + 0x50]
call fcn.1800023b0
nop
mov rcx, qword [rsp + 0x70]
call fcn.18000be48
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18000a7f8
cmp rcx, 0xffffffffffffffff
je 0x18000a7f8
call qword [sym.imp.ntdll.dll_ZwClose]
mov eax, ebx
jmp 0x18000a874
cmp byte [rsp + 0x60], 0
je 0x18000a816
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rsp + 0x60], 0
lea rcx, [rsp + 0x50]
call fcn.1800023b0
nop
test rbx, rbx
je 0x18000a82f
mov rcx, rbx
call fcn.18000be48
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18000a845
cmp rcx, 0xffffffffffffffff
je 0x18000a845
call qword [sym.imp.ntdll.dll_ZwClose]
xor eax, eax
jmp 0x18000a874
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x18000a859
call fcn.18000be48
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18000a86f
cmp rcx, 0xffffffffffffffff
je 0x18000a86f
call qword [sym.imp.ntdll.dll_ZwClose]
mov eax, 8
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret