Function at 0x14007e410
Capabilities:
Query or enumerate registry key
Set registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x1e0]
sub rsp, 0x2e0
mov rax, qword [0x14049f3c0]
xor rax, rsp
mov qword [rbp + 0x1d0], rax
mov r15, r9
mov r14, r8
mov rsi, rdx
xor edi, edi
cmp rcx, 0xffffffff80000001
jne 0x14007e6d7
mov r12d, edi
nop word [rax + rax]
xor edx, edx
mov r8d, 0x200
lea rcx, [rbp - 0x30]
call fcn.14030b3a0
mov dword [rbp - 0x60], 0x100
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
lea r9, [rbp - 0x60]
lea r8, [rbp - 0x30]
mov edx, r12d
mov rcx, 0xffffffff80000003
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov ebx, eax
inc r12d
test eax, eax
jne 0x14007e6c1
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
mov qword [rbp - 0x48], rdi
mov qword [rbp - 0x40], rdi
lea rax, [rbp - 0x30]
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x14007e4d0
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x58]
call fcn.140031e00
nop
lea rcx, [rbp - 0x58]
cmp qword [rbp - 0x40], 7
cmova rcx, qword [rbp - 0x58]
mov qword [rsp + 0x20], 8
lea r9, str._Classes
xor r8d, r8d
mov rdx, qword [rbp - 0x48]
call fcn.140060cc0
cmp rax, 0xffffffffffffffff
je 0x14007e527
lea rcx, [rbp - 0x58]
call fcn.1400166f0
jmp 0x14007e460
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rdi
mov r8d, 9
lea rdx, str.filecache
lea rcx, [rsp + 0x50]
call fcn.140031e00
nop
mov r9b, 1
xor r8d, r8d
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x58]
call fcn.1400a4350
cmp rax, qword [rbp - 0x48]
setb bl
lea rcx, [rsp + 0x50]
call fcn.1400166f0
test bl, bl
je 0x14007e588
lea rcx, [rbp - 0x58]
call fcn.1400166f0
jmp 0x14007e460
mov qword [rbp - 0x70], rdi
lea r8, [rbp - 0x70]
lea rdx, [rbp - 0x30]
mov rcx, 0xffffffff80000003
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
mov ebx, eax
test eax, eax
jne 0x14007e6b8
mov byte [rsp + 0x20], al
mov r9, r15
mov r8, r14
mov rdx, rsi
mov rcx, qword [rbp - 0x70]
call fcn.14007e410
test al, al
jne 0x14007e6ad
lea rcx, [rsp + 0x70]
call fcn.14009ece0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 7
jbe 0x14007e5e2
mov rax, qword [rax]
mov rdx, rax
lea rcx, [0x1404b3c00]
call fcn.140060f60
lea rdx, str.D:JenkinsworkspaceA_MBAM3_UPDATEREXE_srcmbupdatrRegistry.cpp
mov rcx, rax
call fcn.140049e60
mov rcx, rax
lea rdx, [0x14041b3dc]
call fcn.140049e60
mov edx, 0x8b
mov rcx, rax
call fcn.1400476f0
mov rcx, rax
lea rdx, str.:_Failed_to_add_reg_string_value
call fcn.140049e60
mov rdx, r14
cmp qword [r14 + 0x18], 7
jbe 0x14007e638
mov rdx, qword [r14]
mov r8, qword [r14 + 0x10]
mov rcx, rax
call fcn.140060f60
lea rdx, str._under_regkey_HKU_
mov rcx, rax
call fcn.140049e60
mov rdx, rsi
cmp qword [rsi + 0x18], 7
jbe 0x14007e660
mov rdx, qword [rsi]
mov r8, qword [rsi + 0x10]
mov rcx, rax
call fcn.140060f60
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.14002fc90
movzx edx, ax
mov rcx, rbx
call fcn.140072fb0
mov rcx, rbx
call fcn.14002eff0
nop
lea rcx, [rsp + 0x70]
call fcn.1400166f0
nop
lea rcx, [rbp - 0x58]
call fcn.1400166f0
jmp 0x14007e460
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
lea rcx, [rbp - 0x58]
call fcn.1400166f0
test ebx, ebx
je 0x14007e460
cmp ebx, 0x103
sete al
jmp 0x14007e941
mov qword [rbp - 0x68], rdi
cmp qword [rdx + 0x18], 7
jbe 0x14007e6e5
mov rdx, qword [rdx]
mov qword [rsp + 0x40], rdi
lea rax, [rbp - 0x68]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0xf003f
mov dword [rsp + 0x20], edi
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov ebx, eax
test eax, eax
je 0x14007e7f6
lea rcx, [rsp + 0x70]
call fcn.14009ece0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 7
jbe 0x14007e733
mov rax, qword [rax]
mov rdx, rax
lea rcx, [0x1404b3c00]
call fcn.140060f60
lea rdx, str.D:JenkinsworkspaceA_MBAM3_UPDATEREXE_srcmbupdatrRegistry.cpp
mov rcx, rax
call fcn.140049e60
mov rcx, rax
lea rdx, [0x14041b3dc]
call fcn.140049e60
mov edx, 0x98
mov rcx, rax
call fcn.1400476f0
mov rcx, rax
lea rdx, [0x14041a458]
call fcn.140049e60
mov rcx, rax
lea rdx, str.Failed_to_create_key
call fcn.140049e60
mov r8, qword [rsi + 0x10]
cmp qword [rsi + 0x18], 7
jbe 0x14007e799
mov rsi, qword [rsi]
mov rdx, rsi
mov rcx, rax
call fcn.140060f60
lea rdx, [0x14041a458]
mov rcx, rax
call fcn.140049e60
mov edx, ebx
mov rcx, rax
call fcn.1400476f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.14002fc90
movzx edx, ax
mov rcx, rbx
call fcn.140072fb0
mov rcx, rbx
call fcn.14002eff0
nop
lea rcx, [rsp + 0x70]
call fcn.1400166f0
xor al, al
jmp 0x14007e941
mov eax, dword [r15 + 0x10]
lea eax, [rax*2 + 2]
cmp qword [r15 + 0x18], 7
jbe 0x14007e80b
mov r15, qword [r15]
mov rdx, r14
cmp qword [r14 + 0x18], 7
jbe 0x14007e818
mov rdx, qword [r14]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r15
mov r9d, 1
xor r8d, r8d
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ebx, eax
test eax, eax
je 0x14007e93f
lea rcx, [rsp + 0x70]
call fcn.14009ece0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 7
jbe 0x14007e857
mov rax, qword [rax]
mov rdx, rax
lea rcx, [0x1404b3c00]
call fcn.140060f60
lea rdx, str.D:JenkinsworkspaceA_MBAM3_UPDATEREXE_srcmbupdatrRegistry.cpp
mov rcx, rax
call fcn.140049e60
mov rcx, rax
lea rdx, [0x14041b3dc]
call fcn.140049e60
mov edx, 0x9e
mov rcx, rax
call fcn.1400476f0
mov rcx, rax
lea rdx, [0x14041a458]
call fcn.140049e60
mov rcx, rax
lea rdx, str.Failed_to_set_value
call fcn.140049e60
mov r8, qword [rsi + 0x10]
cmp qword [rsi + 0x18], 7
jbe 0x14007e8bd
mov rsi, qword [rsi]
mov rdx, rsi
mov rcx, rax
call fcn.140060f60
lea rdx, [0x140424150]
mov rcx, rax
call fcn.140049e60
mov r8, qword [r14 + 0x10]
cmp qword [r14 + 0x18], 7
jbe 0x14007e8e5
mov r14, qword [r14]
mov rdx, r14
mov rcx, rax
call fcn.140060f60
lea rdx, [0x14041a458]
mov rcx, rax
call fcn.140049e60
mov edx, ebx
mov rcx, rax
call fcn.1400476f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.14002fc90
movzx edx, ax
mov rcx, rbx
call fcn.140072fb0
mov rcx, rbx
call fcn.14002eff0
nop
lea rcx, [rsp + 0x70]
call fcn.1400166f0
xor al, al
jmp 0x14007e941
mov al, 1
mov rcx, qword [rbp + 0x1d0]
xor rcx, rsp
call fcn.1402ba9b0
add rsp, 0x2e0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret