Function at 0x10003b920
Capabilities:
Query or enumerate registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x970
mov rax, qword [0x100086110]
xor rax, rsp
mov qword [rsp + 0x960], rax
xor r13d, r13d
lea rax, [r11 - 0x668]
mov ebx, r8d
or rbp, 0xffffffffffffffff
mov r14d, edx
mov rsi, rcx
mov dword [rsp + 0x68], ebx
mov qword [rsp + 0x70], r13
mov r12d, r13d
cmp rax, r13
je 0x10003b9b2
lea r9, [0x100025bb8]
cmp r9, r13
je 0x10003b9b2
cmp edx, r13d
lea rcx, [r11 - 0x668]
lea r8, [0x100025a20]
mov edx, 0x105
jne 0x10003b9a4
lea r8, [0x100025aa0]
call fcn.10003a080
cmp eax, r13d
jl 0x10003bcfa
lea rax, [rsp + 0x70]
lea rdx, [rsp + 0x330]
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000000
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, r13d
jne 0x10003bcfa
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r13
lea rax, [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r13
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x60], r13d
mov dword [rsp + 0x64], 0x50
mov qword [rsp + 0x20], r13
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
cmp eax, r13d
jne 0x10003bc8f
mov ecx, dword [rsp + 0x60]
mov eax, 8
mov r15d, r13d
mul rcx
cmovo rax, rbp
mov rcx, rax
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__
mov qword [rsi], rax
cmp rax, r13
je 0x10003baca
xor edi, edi
cmp dword [rsp + 0x60], edi
jle 0x10003baca
mov ecx, 0x20a
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__
mov rcx, qword [rsi]
mov qword [rcx + rdi*8], rax
mov rax, qword [rsi]
cmp qword [rax + rdi*8], r12
jne 0x10003bab6
xor ebx, ebx
test rdi, rdi
jle 0x10003baa6
mov rcx, qword [rsi]
cmp qword [rcx + rbx*8], r12
je 0x10003ba9e
mov rcx, qword [rcx + rbx*8]
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov r11, qword [rsi]
and qword [r11 + rbx*8], r12
inc rbx
cmp rbx, rdi
jl 0x10003ba85
mov rcx, qword [rsi]
test rcx, rcx
je 0x10003bab6
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
and qword [rsi], r12
inc r13d
inc rdi
cmp r13d, dword [rsp + 0x60]
jl 0x10003ba64
mov ebx, dword [rsp + 0x68]
xor r13d, r13d
mov rcx, qword [rsp + 0x70]
cmp qword [rsi], r13
je 0x10003bcf4
lea rax, [rsp + 0x6c]
lea r9, [rsp + 0x64]
lea r8, [rsp + 0x80]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x540]
xor edx, edx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x6c], 0x208
mov qword [rsp + 0x20], r13
mov dword [rsp + 0x64], 0x50
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, r13d
jne 0x10003bc8f
mov rdi, r13
lea rdx, [0x100025bc0]
mov ecx, 0x104
lea rax, [rsp + 0x120]
cmp rax, r13
je 0x10003bb7c
cmp rdx, r13
je 0x10003bb7c
mov r9, rdx
mov rdx, rcx
lea r8, [0x100025a20]
lea rcx, [rsp + 0x120]
cmp r14d, r13d
jne 0x10003bb69
lea r8, [0x100025aa0]
call fcn.10003a080
cmp eax, r13d
jl 0x10003bc22
mov ecx, 0x104
mov rdx, rcx
lea r9, [rsp + 0x120]
lea r8, [rsp + 0x80]
lea rcx, [rsp + 0x750]
call fcn.10003b5f8
lea rcx, [rsp + 0x750]
call fcn.100052d68
mov qword [rsp + 0x78], r13
mov rbx, rax
lea rax, [rsp + 0x78]
cmp rax, r13
je 0x10003bbcf
lea rcx, [rsp + 0x78]
mov edx, r14d
call fcn.10003b820
cmp rbx, qword [rsp + 0x78]
jb 0x10003bc1e
mov rax, qword [rsi]
lea r8, [rsp + 0x540]
mov edx, 0x104
mov rcx, qword [rdi + rax]
lea rax, [rdx + 0x7ffffefa]
cmp rax, r13
je 0x10003bc0a
movzx eax, word [r8]
cmp ax, r13w
je 0x10003bc0a
mov word [rcx], ax
add r8, 2
add rcx, 2
sub rdx, 1
jne 0x10003bbe3
cmp rdx, r13
jne 0x10003bc13
sub rcx, 2
inc r12d
mov word [rcx], r13w
add rdi, 8
mov ebx, dword [rsp + 0x68]
mov eax, dword [rsp + 0x60]
inc r15d
cmp r15d, eax
jae 0x10003bc93
mov rcx, qword [rsp + 0x70]
lea rax, [rsp + 0x6c]
lea r9, [rsp + 0x64]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x540]
lea r8, [rsp + 0x80]
mov qword [rsp + 0x30], rax
mov edx, r15d
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r13
mov dword [rsp + 0x6c], 0x104
mov dword [rsp + 0x64], 0x50
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov ecx, 0x104
lea rdx, [0x100025bc0]
cmp eax, r13d
je 0x10003bb36
mov eax, dword [rsp + 0x60]
cmp eax, r12d
jle 0x10003bce8
cmp qword [rsi], r13
je 0x10003bce8
mov edi, r12d
movsxd rbx, r12d
cmp r12d, eax
jae 0x10003bcd3
shl rbx, 3
mov rcx, qword [rsi]
cmp qword [rbx + rcx], r13
je 0x10003bcc9
mov rcx, qword [rbx + rcx]
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov r11, qword [rsi]
mov qword [rbx + r11], r13
mov eax, dword [rsp + 0x60]
inc edi
add rbx, 8
cmp edi, eax
jb 0x10003bcac
cmp r12d, r13d
jne 0x10003bceb
mov rcx, qword [rsi]
cmp rcx, r13
je 0x10003bcef
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov qword [rsi], r13
cmp r12d, r13d
cmovg ebp, r12d
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebp
mov rcx, qword [rsp + 0x960]
xor rcx, rsp
call fcn.10007fa70
lea r11, [rsp + 0x970]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret