Function at 0x14007f370
Capabilities:
Persist via default file association registry key
Query or enumerate registry value
Set registry value

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rdi
push r13
push r14
lea rbp, [rax - 0x5c8]
sub rsp, 0x6a8
mov rdi, r9
mov r13, r8
test r8, r8
je 0x14007f9fe
test r9, r9
je 0x14007f9fe
mov r14, qword [rbp + 0x5f0]
test r14, r14
je 0x14007f9fe
cmp qword [rbp + 0x5f8], 0
je 0x14007f9fe
mov qword [rax - 0x30], rsi
test rdx, rdx
mov qword [rsp + 0x28], r8
lea rsi, [0x1401b76c0]
mov qword [rax - 0x38], r15
lea r8, str.Register_type__s__s__s
mov rcx, rsi
mov qword [rax - 0x28], rbx
cmovne rcx, rdx
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x38], rcx
lea rdx, str.Install
mov r9, rcx
lea rcx, [0x140229810]
call fcn.140092000
xor r15d, r15d
mov dword [rsp + 0x54], 0x100
lea rcx, [0x1401b7740]
mov dword [rsp + 0x50], r15d
lea rax, [rsp + 0x58]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], rax
xor edx, edx
lea rax, [rbp + 0x178]
mov qword [rbp + 0x160], rcx
mov r8d, 0x206
mov qword [rbp + 0x168], rax
lea rcx, [rbp + 0x382]
mov word [rsp + 0x58], r15w
mov dword [rbp + 0x170], r15d
mov dword [rbp + 0x174], 0x100
mov word [rbp + 0x178], r15w
call fcn.14014e180
mov r8, rdi
lea rdx, str._s_shellopencommand
lea rcx, [rsp + 0x40]
call fcn.1400038c0
mov rdx, qword [rsp + 0x48]
xor eax, eax
mov dword [rbp + 0x5d0], 0x206
mov dword [rbp + 0x380], eax
test rdx, rdx
je 0x14007f524
lea rax, [rsp + 0x30]
mov qword [rsp + 0x30], r15
mov r9d, 0x20119
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov dword [rbp + 0x5e0], r15d
mov rcx, 0xffffffff80000000
xor bl, bl
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14007f520
mov rcx, qword [rsp + 0x30]
lea rax, [rbp + 0x5d0]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x5e0]
lea rax, [rbp + 0x380]
xor r8d, r8d
mov rdx, rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x30]
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
sete bl
test bl, bl
jne 0x14007f52c
mov word [rbp + 0x380], r15w
mov r9, qword [rbp + 0x5f8]
lea rdx, str._s__s
mov r8, r13
lea rcx, [rbp + 0x160]
call fcn.1400038c0
mov rcx, qword [rbp + 0x168]
test rcx, rcx
je 0x14007f563
lea rdx, [rbp + 0x380]
call fcn.14003e940
jmp 0x14007f570
cmp dword [rbp + 0x170], 1
mov eax, r15d
setae al
test eax, eax
je 0x14007f9d8
mov rdx, rdi
mov rcx, 0xffffffff80000000
call fcn.140003ea0
mov rbx, 0xffffffffffffffff
mov rax, rbx
cmp word [r14 + rax*2 + 2], r15w
lea rax, [rax + 1]
jne 0x14007f591
lea esi, [rax*2 + 2]
test esi, esi
je 0x14007f609
lea rax, [rbp + 0x5d0]
mov qword [rbp + 0x5d0], r15
mov r9d, 0x20106
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rdi
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14007f609
mov rcx, qword [rbp + 0x5d0]
lea r9d, [rax + 1]
mov dword [rsp + 0x28], esi
lea rdx, [0x1401b76c0]
xor r8d, r8d
mov qword [rsp + 0x20], r14
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp + 0x5d0]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r8, rdi
lea rdx, str._sDefaultIcon
lea rcx, [rsp + 0x40]
call fcn.1400038c0
mov r9d, dword [rbp + 0x600]
lea rdx, str._s__d
mov r8, r13
lea rcx, [rbp + 0x160]
call fcn.1400038c0
mov rdx, qword [rsp + 0x48]
mov rcx, 0xffffffff80000000
call fcn.140003ea0
mov rsi, qword [rbp + 0x168]
mov rax, rbx
nop word [rax + rax]
cmp word [rsi + rax*2 + 2], r15w
lea rax, [rax + 1]
jne 0x14007f660
mov rdx, qword [rsp + 0x48]
lea r15d, [rax*2 + 2]
test rdx, rdx
je 0x14007f6eb
test rsi, rsi
je 0x14007f6eb
test r15d, r15d
je 0x14007f6eb
lea rax, [rbp + 0x5d0]
mov qword [rbp + 0x5d0], 0
mov r9d, 0x20106
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14007f6eb
mov rcx, qword [rbp + 0x5d0]
lea r9d, [rax + 1]
mov dword [rsp + 0x28], r15d
lea rdx, [0x1401b76c0]
xor r8d, r8d
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp + 0x5d0]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r8, rdi
lea rdx, str._s_shellopencommand
lea rcx, [rsp + 0x40]
call fcn.1400038c0
mov r9, qword [rbp + 0x5f8]
lea rdx, str._s__s
mov r8, r13
lea rcx, [rbp + 0x160]
call fcn.1400038c0
mov rdx, qword [rsp + 0x48]
mov rcx, 0xffffffff80000000
call fcn.140003ea0
mov rsi, qword [rbp + 0x168]
mov rax, rbx
nop word [rax + rax]
cmp word [rsi + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x14007f740
mov rdx, qword [rsp + 0x48]
lea r15d, [rax*2 + 2]
test rdx, rdx
je 0x14007f7d0
test rsi, rsi
je 0x14007f7d0
test r15d, r15d
je 0x14007f7d0
lea rax, [rbp + 0x5d0]
mov qword [rbp + 0x5d0], 0
mov r9d, 0x20106
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14007f7d0
mov rcx, qword [rbp + 0x5d0]
lea r9d, [rax + 1]
mov dword [rsp + 0x28], r15d
xor r8d, r8d
lea r15, [0x1401b76c0]
mov qword [rsp + 0x20], rsi
mov rdx, r15
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp + 0x5d0]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14007f7d7
lea r15, [0x1401b76c0]
cmp byte [rbp + 0x608], 0
je 0x14007f879
mov r8, rdi
lea rdx, str._sShellNew
lea rcx, [rsp + 0x40]
call fcn.1400038c0
mov rdx, qword [rsp + 0x48]
mov rcx, 0xffffffff80000000
call fcn.140003ea0
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x14007f879
lea rax, [rbp + 0x5d0]
mov qword [rbp + 0x5d0], 0
mov r9d, 0x20106
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14007f879
mov rcx, qword [rbp + 0x5d0]
lea r9d, [rax + 1]
mov dword [rsp + 0x28], 2
lea rdx, str.NullFile
xor r8d, r8d
mov qword [rsp + 0x20], r15
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp + 0x5d0]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rsi, qword [rbp + 0x5d8]
test rsi, rsi
je 0x14007f9ad
mov rdx, rsi
mov rcx, 0xffffffff80000000
call fcn.140003ea0
nop dword [rax + rax]
cmp word [rdi + rbx*2 + 2], 0
lea rbx, [rbx + 1]
jne 0x14007f8a0
lea ebx, [rbx*2 + 2]
test ebx, ebx
je 0x14007f918
lea rax, [rbp + 0x5d0]
mov qword [rbp + 0x5d0], 0
mov r9d, 0x20106
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rsi
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14007f918
mov rcx, qword [rbp + 0x5d0]
lea r9d, [rax + 1]
mov dword [rsp + 0x28], ebx
xor r8d, r8d
mov rdx, r15
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp + 0x5d0]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r8, rsi
lea rdx, str._sShellNew
lea rcx, [rsp + 0x40]
call fcn.1400038c0
mov rdx, qword [rsp + 0x48]
mov rcx, 0xffffffff80000000
call fcn.140003ea0
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x14007f9ad
lea rax, [rbp + 0x5d0]
mov qword [rbp + 0x5d0], 0
mov r9d, 0x20106
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14007f9ad
mov rcx, qword [rbp + 0x5d0]
lea r9d, [rax + 1]
mov dword [rsp + 0x28], 2
lea rdx, str.NullFile
xor r8d, r8d
mov qword [rsp + 0x20], r15
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp + 0x5d0]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r9, qword [rsp + 0x38]
lea r8, str.Register_type__s__s__s_done
mov qword [rsp + 0x28], r13
lea rdx, str.Install
lea rcx, [0x140229810]
mov qword [rsp + 0x20], r14
call fcn.140092000
mov al, 1
mov r15, qword [rsp + 0x690]
mov rsi, qword [rsp + 0x698]
mov rbx, qword [rsp + 0x6a0]
add rsp, 0x6a8
pop r14
pop r13
pop rdi
pop rbp
ret
xor al, al
add rsp, 0x6a8
pop r14
pop r13
pop rdi
pop rbp
ret