Function at 0x180005d60
Capabilities:
Persist via contextmenuhandlers registry key
Set registry value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x160
mov rax, qword [0x18002f048]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov ecx, 1
call fcn.180004f30
xor r14d, r14d
lea rdi, str._shellexContextMenuHandlersCouponShell
mov ebx, r14d
lea rbp, [r14 - 1]
nop word [rax + rax]
mov rdx, qword [rdi]
lea r8, [rsp + 0x30]
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x180005dfd
mov r9, qword [section..data]
mov rax, rbp
inc rax
cmp word [r9 + rax*2], r14w
jne 0x180005dd3
mov rcx, qword [rsp + 0x30]
xor edx, edx
mov dword [rsp + 0x20], eax
lea r8d, [rdx + 1]
call qword [sym.imp.ADVAPI32.dll_RegSetValueW]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc ebx
add rdi, 8
cmp ebx, 4
jb 0x180005db0
call fcn.180002c40
mov rcx, rax
test rax, rax
je 0x180005fe2
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
lea r8, str.CouponShell
lea rdx, str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerShellIconOverlayIdentifiers_s
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x38]
call fcn.180001fb0
mov rbx, qword [rsp + 0x38]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x40], rax
test rbx, rbx
jne 0x180005e5e
mov qword [rsp + 0x40], r14
jmp 0x180005f3a
mov qword [rsp + 0x170], rsi
mov rsi, rbp
nop dword [rax]
inc rsi
cmp byte [rbx + rsi], r14b
jne 0x180005e70
inc esi
lea r8, [rsp + 0x48]
mov edx, esi
lea rcx, [rsp + 0x40]
mov r9d, 0x80
call fcn.1800010f0
mov rax, qword [rsp + 0x40]
xor edx, edx
mov dword [rsp + 0x28], esi
mov r9d, esi
mov r8, rbx
mov qword [rsp + 0x20], rax
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
mov edi, r14d
sete dil
test eax, eax
jne 0x180005f25
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x180005f25
mov dword [rsp + 0x28], r14d
lea ecx, [rax - 0x77]
mov r9d, esi
mov qword [rsp + 0x20], r14
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov r9d, 0x80
lea r8, [rsp + 0x48]
mov edx, eax
lea rcx, [rsp + 0x40]
mov edi, eax
call fcn.1800010f0
mov rax, qword [rsp + 0x40]
xor edx, edx
mov dword [rsp + 0x28], edi
mov r9d, esi
mov r8, rbx
mov qword [rsp + 0x20], rax
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
mov edi, r14d
sete dil
mov rsi, qword [rsp + 0x170]
test edi, edi
jne 0x180005fc7
mov r14, qword [rsp + 0x40]
mov rcx, qword [section..data]
mov rax, rbp
inc rax
cmp word [rcx + rax*2], 0
jne 0x180005f44
mov dword [rsp + 0x28], eax
mov r9d, 1
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov rdx, r14
call qword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x48]
cmp rcx, rax
je 0x180005f84
call fcn.18000e6b4
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], ebp
sub ebp, 1
jg 0x180005f9b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.18000a020
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x48]
mov r8d, 0x80
call fcn.180001180
call fcn.180001720
int3
mov ecx, 0x80004005
call fcn.1800016f0
int3