Function at 0x140018100
Capabilities:
Delete directory

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
xor r15d, r15d
or rsi, 0xffffffffffffffff
mov dword [rbp + 0x40], r15d
mov r13, rdx
mov r12, rcx
mov r14d, r15d
lea edx, [rsi + 2]
lea r8d, [r15 + 0x5c]
test rcx, rcx
je 0x1400183a9
mov rbx, rsi
inc rbx
cmp word [rcx + rbx*2], r15w
jne 0x14001813e
test ebx, ebx
je 0x140018158
lea eax, [rbx - 1]
cmp r8w, word [rcx + rax*2]
cmovne r14d, edx
mov rcx, qword gs:[0x60]
lea eax, [r14 + 0x13]
add eax, ebx
mov edx, 8
mov r15d, eax
mov rcx, qword [rcx + 0x30]
lea r8, [rax + rax]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov rdi, rax
test rax, rax
jne 0x1400182de
mov rax, qword gs:[0x30]
xor r15d, r15d
mov dword [rax + 0x68], 8
mov rdi, r15
mov rax, qword gs:[0x30]
mov dword [rax + 0x68], 0x57
mov rbx, r15
mov rcx, rbx
call fcn.140004f5c
test eax, eax
je 0x14001822b
test r13, r13
je 0x14001822b
test rbx, rbx
je 0x140018214
mov rcx, rbx
call fcn.1400184f8
mov rsi, rax
test rax, rax
je 0x140018214
lea rdx, str.InstallCopyCodeUpdate
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
nop dword [rax + rax]
test rax, rax
je 0x140018205
mov rdx, r13
mov rcx, rdi
call qword [0x140028b50]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
nop dword [rax + rax]
mov rcx, rdi
call fcn.1400049ac
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
nop dword [rax + rax]
lea rcx, str.WinSetup.dll
call fcn.1400184f8
mov rsi, rax
test rax, rax
je 0x140018278
lea rdx, str.InstallSetupUpdates
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
nop dword [rax + rax]
test rax, rax
je 0x140018269
mov rdx, r13
mov rcx, r12
call qword [0x140028b50]
mov dword [rbp + 0x40], eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
nop dword [rax + rax]
test rdi, rdi
je 0x14001829d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test rbx, rbx
je 0x1400182c2
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov eax, dword [rbp + 0x40]
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rax, [rbp + 0x50]
mov r9d, ebx
mov qword [rsp + 0x28], rax
mov r8, r12
lea rax, [rbp + 0x58]
mov rdx, r15
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.140008850
xor r15d, r15d
mov ebx, eax
test eax, eax
js 0x140018377
test r14d, r14d
je 0x14001833b
mov rdx, qword [rbp + 0x50]
lea rax, [rbp + 0x50]
mov rcx, qword [rbp + 0x58]
lea r9d, [r15 + 1]
mov qword [rsp + 0x28], rax
lea r8, [0x140028e20]
lea rax, [rbp + 0x58]
mov qword [rsp + 0x20], rax
call fcn.140008850
mov ebx, eax
test ebx, ebx
js 0x140018377
mov rdx, qword [rbp + 0x50]
lea r8, str.WinSetupDUCopyCode
mov rcx, qword [rbp + 0x58]
mov r9d, 0x12
call fcn.140003a3c
mov ebx, eax
test eax, eax
js 0x140018377
mov rax, qword gs:[0x30]
mov edx, 1
mov dword [rax + 0x68], r15d
lea r8d, [rdx + 0x5b]
jmp 0x1400183bc
mov rcx, qword gs:[0x60]
mov r8, rdi
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov rax, qword gs:[0x30]
movzx ecx, bx
mov dword [rax + 0x68], ecx
jmp 0x1400181a2
mov rax, qword gs:[0x30]
mov rdi, r15
mov dword [rax + 0x68], 0x57
mov r14d, r15d
test rdi, rdi
je 0x1400181a5
inc rsi
cmp word [rdi + rsi*2], r15w
jne 0x1400183c8
test esi, esi
je 0x1400183e2
lea eax, [rsi - 1]
cmp r8w, word [rdi + rax*2]
cmovne r14d, edx
mov rcx, qword gs:[0x60]
lea eax, [r14 + 0xd]
add eax, esi
mov edx, 8
mov r15d, eax
mov rcx, qword [rcx + 0x30]
lea r8, [rax + rax]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov rbx, rax
test rax, rax
jne 0x14001842d
mov rax, qword gs:[0x30]
xor r15d, r15d
mov dword [rax + 0x68], 8
jmp 0x1400181b5
lea rax, [rbp - 0x10]
mov r9d, esi
mov qword [rsp + 0x28], rax
mov r8, rdi
lea rax, [rbp - 8]
mov rdx, r15
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.140008850
xor r15d, r15d
mov esi, eax
test eax, eax
js 0x1400184c0
test r14d, r14d
je 0x14001848a
mov rdx, qword [rbp - 0x10]
lea rax, [rbp - 0x10]
mov rcx, qword [rbp - 8]
lea r9d, [r15 + 1]
mov qword [rsp + 0x28], rax
lea r8, [0x140028e20]
lea rax, [rbp - 8]
mov qword [rsp + 0x20], rax
call fcn.140008850
mov esi, eax
test esi, esi
js 0x1400184c0
mov rdx, qword [rbp - 0x10]
lea r8, str.WinSetup.dll
mov rcx, qword [rbp - 8]
mov r9d, 0xc
call fcn.140003a3c
mov esi, eax
test eax, eax
js 0x1400184c0
mov rax, qword gs:[0x30]
mov dword [rax + 0x68], r15d
jmp 0x1400181b8
mov rcx, qword gs:[0x60]
mov r8, rbx
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov rax, qword gs:[0x30]
movzx ecx, si
mov dword [rax + 0x68], ecx
jmp 0x1400181b5