Function at 0x180078320
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x4e0
mov qword [rsp + 0xc0], 0xfffffffffffffffe
mov rax, qword [0x18013e1e0]
xor rax, rsp
mov qword [rsp + 0x4d0], rax
mov r13, r9
mov rsi, r8
mov r12, rdx
mov rdi, rcx
mov r14, qword [rsp + 0x540]
xor ebx, ebx
mov qword [rsp + 0x68], rbx
mov ecx, 0x507
mov dword [rsp + 0x54], ecx
mov dword [rsp + 0x60], ebx
mov word [rsp + 0xd0], bx
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rsp + 0xd2]
call fcn.1800c31a0
cmp qword [r12 + 0x18], rbx
je 0x1800786bb
cmp qword [rsi + 0x18], rbx
je 0x1800786bb
cmp qword [rdi + 0x30], rbx
jne 0x1800783b8
xor al, al
jmp 0x1800786bd
test r14, r14
je 0x1800783c5
mov rcx, r14
call fcn.180066660
cmp qword [rdi + 0x38], 8
jb 0x1800783d2
mov r8, qword [rdi + 0x20]
jmp 0x1800783d6
lea r8, [rdi + 0x20]
mov edx, 0x200
lea rcx, [rsp + 0xd0]
call fcn.1800c0e4c
cmp qword [r12 + 0x20], 8
jb 0x1800783f7
mov r8, qword [r12 + 8]
jmp 0x1800783fc
lea r8, [r12 + 8]
mov edx, 0x200
lea rcx, [rsp + 0xd0]
call fcn.1800c29a4
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x40], rdx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0xf003f
mov dword [rsp + 0x20], ebx
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0xd0]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [rsp + 0x54], eax
test eax, eax
je 0x18007846f
mov dword [rsp + 0x70], 0xffffffff
lea rdx, [0x18013ad60]
lea rcx, [rsp + 0x70]
call fcn.1800c3e40
test r14, r14
je 0x180078651
cmp dword [rsp + 0x60], 2
jne 0x180078651
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x5c], ebx
cmp qword [rsi + 0x20], 8
jb 0x18007849b
lea rdi, [rsi + 8]
mov rdx, qword [rdi]
jmp 0x1800784a2
lea rdi, [rsi + 8]
mov rdx, rdi
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x5c]
xor r8d, r8d
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x180078651
cmp dword [rsp + 0x5c], 1
jne 0x180078651
cmp dword [rsp + 0x58], eax
jbe 0x180078651
lea ecx, [rax + 8]
call fcn.1800c0db0
test rax, rax
je 0x1800784f8
lea rcx, [rsp + 0x78]
mov qword [rax], rcx
jmp 0x1800784fb
mov rax, rbx
mov qword [rsp + 0x78], rax
mov r12, rbx
mov qword [rsp + 0x90], rbx
mov rcx, rbx
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0xa0], rbx
mov r15d, dword [rsp + 0x58]
mov byte [rsp + 0x50], 0
test rax, rax
jne 0x180078542
call fcn.1800c1088
mov rcx, qword [rsp + 0x98]
mov r12, qword [rsp + 0x90]
cmp r12, rcx
jbe 0x18007854c
call fcn.1800c1088
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], r12
movaps xmm0, xmmword [rsp + 0xb0]
movdqa xmmword [rsp + 0xb0], xmm0
lea r9, [rsp + 0x50]
mov r8, r15
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x78]
call fcn.18006a840
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x90]
cmp rax, rcx
jne 0x1800785ae
call fcn.1800c1088
mov rcx, qword [rsp + 0x90]
cmp qword [rsi + 0x20], 8
jb 0x1800785b8
mov rdi, qword [rdi]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x18007861d
mov rax, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x90]
cmp rax, rdx
jne 0x180078601
call fcn.1800c1088
mov rdx, qword [rsp + 0x90]
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rcx, r14
call fcn.180014810
nop
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x18007862f
call fcn.1800bf8b4
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0xa0], rbx
mov rcx, qword [rsp + 0x78]
call fcn.1800bf8b4
mov rax, qword [r13 + 0x18]
cmp qword [r13 + 0x20], 8
jb 0x180078662
mov rcx, qword [r13 + 8]
jmp 0x180078666
lea rcx, [r13 + 8]
cmp qword [rsi + 0x20], 8
jb 0x180078673
mov rdx, qword [rsi + 8]
jmp 0x180078677
lea rdx, [rsi + 8]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
mov dword [rsp + 0x54], eax
jmp 0x1800786a4
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1800786b4
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
sete al
jmp 0x1800786bd
xor al, al
mov rcx, qword [rsp + 0x4d0]
xor rcx, rsp
call fcn.1800bf8d0
add rsp, 0x4e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret