Function at 0x140002150
Capabilities:
Delete registry key
Delete registry value
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x30
xor ebx, ebx
mov r15d, pe_nt_image_headers64
mov r14d, ebx
test r14d, r14d
mov ebp, 0x200
cmovne ebp, r15d
cmp dword [0x140035964], 0
jne 0x1400021c4
lea rcx, str.ADVAPI32.DLL
mov dword [0x140035964], 1
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x140035968], rax
test rax, rax
je 0x1400021c4
lea rdx, str.RegDeleteKeyExA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140035970], rax
jmp 0x1400021cb
mov rax, qword [0x140035970]
lea rdx, str.CLSID51EEE242_AD87_11d3_9C1E_0090278BBD99InProcServer32
mov rcx, 0xffffffff80000000
test rax, rax
je 0x1400021e8
xor r9d, r9d
mov r8d, ebp
call rax
jmp 0x1400021ee
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
lea edi, [rbx + 1]
cmove edi, ebx
cmp dword [0x140035964], 0
jne 0x14000223b
lea rcx, str.ADVAPI32.DLL
mov dword [0x140035964], 1
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x140035968], rax
test rax, rax
je 0x14000223b
lea rdx, str.RegDeleteKeyExA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140035970], rax
jmp 0x140002242
mov rax, qword [0x140035970]
lea rdx, str.CLSID51EEE242_AD87_11d3_9C1E_0090278BBD99
mov rcx, 0xffffffff80000000
test rax, rax
je 0x14000225f
xor r9d, r9d
mov r8d, ebp
call rax
jmp 0x140002265
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
lea ebx, [rdi + 1]
cmove ebx, edi
cmp dword [0x140035964], 0
jne 0x1400022b2
lea rcx, str.ADVAPI32.DLL
mov dword [0x140035964], 1
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x140035968], rax
test rax, rax
je 0x1400022b2
lea rdx, str.RegDeleteKeyExA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140035970], rax
jmp 0x1400022b9
mov rax, qword [0x140035970]
lea rdx, str._shellexContextMenuHandlersgvim
mov rcx, 0xffffffff80000000
test rax, rax
je 0x1400022d6
xor r9d, r9d
mov r8d, ebp
call rax
jmp 0x1400022dc
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
lea edi, [rbx + 1]
mov r9d, ebp
lea rax, [rsp + 0x50]
cmove edi, ebx
mov qword [rsp + 0x20], rax
or r9d, 0xf003f
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionShell_ExtensionsApproved
xor r8d, r8d
mov rcx, 0xffffffff80000002
lea esi, [rdi + 1]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x14000233a
mov rcx, qword [rsp + 0x50]
lea rdx, str.51EEE242_AD87_11d3_9C1E_0090278BBD99
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov rcx, qword [rsp + 0x50]
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
cmove esi, edi
cmp dword [0x140035964], 0
jne 0x14000237f
lea rcx, str.ADVAPI32.DLL
mov dword [0x140035964], 1
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x140035968], rax
test rax, rax
je 0x14000237f
lea rdx, str.RegDeleteKeyExA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140035970], rax
jmp 0x140002386
mov rax, qword [0x140035970]
lea rdx, str.SoftwareVimGvim
mov rcx, 0xffffffff80000002
test rax, rax
je 0x1400023a3
xor r9d, r9d
mov r8d, ebp
call rax
jmp 0x1400023a9
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
lea edi, [rsi + 1]
cmove edi, esi
cmp dword [0x140035964], 0
jne 0x1400023f6
lea rcx, str.ADVAPI32.DLL
mov dword [0x140035964], 1
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x140035968], rax
test rax, rax
je 0x1400023f6
lea rdx, str.RegDeleteKeyExA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140035970], rax
jmp 0x1400023fd
mov rax, qword [0x140035970]
lea rdx, str.SoftwareVim
mov rcx, 0xffffffff80000002
test rax, rax
je 0x14000241a
xor r9d, r9d
mov r8d, ebp
call rax
jmp 0x140002420
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
lea ebx, [rdi + 1]
cmove ebx, edi
inc r14d
cmp r14d, 2
jl 0x140002173
cmp ebx, 0xc
jne 0x140002443
lea rcx, str.No_Vim_popup_registry_entries_could_be_removed_n
jmp 0x140002457
test ebx, ebx
lea rcx, str.Some_Vim_popup_registry_entries_could_not_be_removed_n
lea rax, str.The_Vim_popup_registry_entries_have_been_removed_n
cmovle rcx, rax
call fcn.1400019e0
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret