Function at 0x1400044e8
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1b0
lea rbp, [rsp + 0x60]
mov qword [rbp + 0x1a0], rbx
mov rax, qword [0x140017008]
xor rax, rbp
mov qword [rbp + 0x140], rax
mov r14d, r8d
mov rsi, rdx
mov rbx, rcx
xor r15d, r15d
mov qword [rbp + 8], r15
test rdx, rdx
je 0x140004aa5
lea r12d, [r15 + 1]
mov eax, dword [0x1400108d0]
cmp dword [rcx], eax
jne 0x140004563
mov eax, dword [0x1400108d4]
cmp dword [rcx + 4], eax
jne 0x140004563
mov eax, dword [0x1400108d8]
cmp dword [rcx + 8], eax
jne 0x140004563
mov eax, dword [0x1400108dc]
cmp dword [rcx + 0xc], eax
mov eax, r12d
je 0x140004566
mov eax, r15d
test eax, eax
jne 0x140004aa5
lea rax, [rbp + 8]
mov qword [rsp + 0x20], rax
lea r9, [0x140011548]
lea rcx, [0x1400108c0]
call fcn.14000c060
test eax, eax
js 0x140004aa5
jmp 0x1400045f7
mov rax, qword [rsi + 8]
movups xmm0, xmmword [rax]
movdqu xmmword [rbp + 0x30], xmm0
lea r9, [rbp + 0x30]
mov r8d, r12d
mov rdx, rbx
test r14d, r14d
je 0x1400045d7
cmp ecx, r12d
mov rcx, qword [rbp + 8]
mov rax, qword [rcx]
jne 0x1400045c1
mov rax, qword [rax + 0x28]
jmp 0x1400045c5
mov rax, qword [rax + 0x38]
call qword [0x140010580]
mov edi, eax
test eax, eax
js 0x140004aa8
jmp 0x1400045f3
cmp ecx, r12d
mov rcx, qword [rbp + 8]
mov rax, qword [rcx]
jne 0x1400045e9
mov rax, qword [rax + 0x30]
jmp 0x1400045ed
mov rax, qword [rax + 0x40]
call qword [0x140010580]
add rsi, 0x10
mov ecx, dword [rsi]
test ecx, ecx
jne 0x140004594
test r14d, r14d
jne 0x140004aa5
lea r8d, [rcx + 0x40]
lea rdx, [rbp + 0xc0]
mov rcx, rbx
call qword [sym.imp.ole32.dll_StringFromGUID2]
test eax, eax
jne 0x140004626
lea edi, [rax + 0xd]
jmp 0x140004aa8
mov rbx, r15
lea rcx, [rbp + 0xc0]
or r14, 0xffffffffffffffff
mov rax, r14
inc rax
cmp word [rcx + rax*2], r15w
jne 0x140004637
add eax, r12d
cdqe
lea rsi, [rax + rax]
mov eax, 0x80000000
add rax, rsi
mov ecx, 0xffffffff
cmp rax, rcx
ja 0x140004700
movsxd rdi, esi
cmp esi, 0x400
jg 0x14000469d
mov rcx, rdi
call fcn.140006ddc
test al, al
je 0x14000469d
lea rax, [rdi + 0xf]
cmp rax, rdi
ja 0x14000468a
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.14000f1e0
sub rsp, rax
lea rdi, [rsp + 0x60]
jmp 0x1400046c6
mov rax, rdi
not rax
cmp rax, 0x10
jb 0x140004af4
lea rcx, [rdi + 0x10]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
je 0x140004700
mov qword [rax], r15
mov rbx, rax
lea rdi, [rax + 0x10]
test rdi, rdi
je 0x140004700
mov byte [rdi], r15b
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rdi
mov r9d, r14d
lea r8, [rbp + 0xc0]
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb rsi, rsi
and rsi, rdi
jmp 0x140004703
mov rsi, r15
test rsi, rsi
je 0x140004aa0
lea r8, str.CLSID_
mov edi, 0x80
mov edx, edi
lea rcx, [rbp + 0x40]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
test eax, eax
je 0x14000474c
cmp eax, 0xc
je 0x140004ae9
cmp eax, 0x16
je 0x140004b0a
cmp eax, 0x22
je 0x140004b0a
cmp eax, 0x50
jne 0x140004aff
mov r8, rsi
mov rdx, rdi
lea rcx, [rbp + 0x40]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcat_s]
test eax, eax
je 0x140004784
cmp eax, 0xc
je 0x140004ae9
cmp eax, 0x16
je 0x140004b0a
cmp eax, 0x22
je 0x140004b0a
cmp eax, 0x50
jne 0x140004aff
lea r8, [0x140011558]
mov rdx, rdi
lea rcx, [rbp + 0x40]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcat_s]
test eax, eax
je 0x1400047c0
cmp eax, 0xc
je 0x140004ae9
cmp eax, 0x16
je 0x140004b0a
cmp eax, 0x22
je 0x140004b0a
cmp eax, 0x50
jne 0x140004aff
mov rdi, r15
mov qword [rbp + 0x18], r15
mov dword [rbp + 0x20], r15d
mov qword [rbp + 0x28], r15
mov dword [rbp], r15d
mov qword [rbp + 0x10], r15
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, [rbp + 0x40]
mov r13, 0xffffffff80000000
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x14000480c
mov eax, r15d
mov rdi, qword [rbp + 0x10]
mov qword [rbp + 0x18], rdi
test eax, eax
jne 0x1400048dd
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
lea rax, [rbp]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
movsxd r14, eax
test rdi, rdi
je 0x140004866
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp + 0x18], r15
test r14, r14
jne 0x1400048dd
cmp dword [rbp], r15d
jne 0x1400048dd
cmp byte [0x140018bd8], r15b
jne 0x1400048b5
lea rcx, str.Advapi32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x1400048a5
lea rdx, str.RegDeleteKeyExA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140018bd0], rax
jmp 0x1400048ac
mov rax, qword [0x140018bd0]
mov byte [0x140018bd8], r12b
jmp 0x1400048bc
mov rax, qword [0x140018bd0]
lea rdx, [rbp + 0x40]
mov rcx, r13
test rax, rax
je 0x1400048d6
xor r9d, r9d
xor r8d, r8d
call qword [0x140010580]
jmp 0x1400048dd
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
nop
lea r8, str.CLSID_
mov edi, 0x80
mov edx, edi
lea rcx, [rbp + 0x40]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
test eax, eax
je 0x14000491d
cmp eax, 0xc
je 0x140004ae9
cmp eax, 0x16
je 0x140004b0a
cmp eax, 0x22
je 0x140004b0a
cmp eax, 0x50
jne 0x140004aff
mov r8, rsi
mov rdx, rdi
lea rcx, [rbp + 0x40]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcat_s]
test eax, eax
je 0x140004955
cmp eax, 0xc
je 0x140004ae9
cmp eax, 0x16
je 0x140004b0a
cmp eax, 0x22
je 0x140004b0a
cmp eax, 0x50
jne 0x140004aff
lea r8, str.Implemented_Categories
mov rdx, rdi
lea rcx, [rbp + 0x40]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcat_s]
test eax, eax
je 0x140004991
cmp eax, 0xc
je 0x140004ae9
cmp eax, 0x16
je 0x140004b0a
cmp eax, 0x22
je 0x140004b0a
cmp eax, 0x50
jne 0x140004aff
mov r9d, 0x20019
lea r8, [rbp + 0x40]
mov rdx, r13
lea rcx, [rbp + 0x18]
call fcn.1400075a4
mov rdi, qword [rbp + 0x18]
test eax, eax
jne 0x140004a7b
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
lea rax, [rbp]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
movsxd rsi, eax
test rdi, rdi
je 0x140004a04
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdi, r15
test rsi, rsi
jne 0x140004a7b
cmp dword [rbp], r15d
jne 0x140004a7b
cmp byte [0x140018bd8], r15b
jne 0x140004a53
lea rcx, str.Advapi32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x140004a43
lea rdx, str.RegDeleteKeyExA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140018bd0], rax
jmp 0x140004a4a
mov rax, qword [0x140018bd0]
mov byte [0x140018bd8], r12b
jmp 0x140004a5a
mov rax, qword [0x140018bd0]
lea rdx, [rbp + 0x40]
mov rcx, r13
test rax, rax
je 0x140004a74
xor r9d, r9d
xor r8d, r8d
call qword [0x140010580]
jmp 0x140004a7b
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
nop
test rdi, rdi
je 0x140004a89
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x140004aa0
mov rcx, rbx
mov rbx, qword [rbx]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test rbx, rbx
jne 0x140004a94
mov edi, r15d
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x140004abe
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x10]
call qword [0x140010580]
mov eax, edi
mov rcx, qword [rbp + 0x140]
xor rcx, rbp
call fcn.14000e0a0
mov rbx, qword [rbp + 0x1a0]
lea rsp, [rbp + 0x150]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x8007000e
call fcn.1400074c0
int3
mov ecx, 0x80070216
call fcn.1400074c0
int3
mov ecx, 0x80004005
call fcn.1400074c0
int3
mov ecx, 0x80070057
call fcn.1400074c0
int3