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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r15
lea rbp, [rsp - 0x788]
sub rsp, 0x888
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x770], rax
xor r12d, r12d
lea rax, [rsp + 0x68]
mov rbx, rdx
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x38], rax
mov r15d, r9d
mov rsi, r8
mov rdi, rcx
mov rdx, rcx
mov qword [rsp + 0x30], r12
xor r9d, r9d
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 0x2001f
mov qword [rsp + 0x50], r12
mov dword [rsp + 0x20], r12d
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x140001f64
lea rcx, str.RegistryAddStringToList:_RegCreateKeyEx__ts_failed_with_error__ld__n
mov r8d, eax
mov rdx, rdi
call fcn.140003308
lea rcx, [rbp + 0x372]
xor edx, edx
mov r8d, 0x3fe
mov word [rbp + 0x370], r12w
call fcn.1400039a0
lea rcx, [rsp + 0x72]
xor edx, edx
mov r8d, 0x3fe
mov word [rsp + 0x70], r12w
call fcn.1400039a0
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x370]
lea r9, [rsp + 0x5c]
xor r8d, r8d
mov rdx, rbx
mov dword [rsp + 0x58], 0x400
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov r8d, dword [rsp + 0x5c]
mov edi, eax
test eax, eax
jne 0x140001fdd
cmp r8d, 1
je 0x140001ff3
lea rcx, str.RegistryAddStringToList:_RegQueryValueEx_failed_with__d__key_type__0x_x__n
mov edx, eax
call fcn.140003308
test edi, edi
jne 0x14000219f
lea rdx, [0x14000fa34]
lea rcx, [rbp + 0x370]
call fcn.140003a8c
mov rbx, rax
test rax, rax
je 0x14000210d
mov qword [rsp + 0x8d8], r13
mov qword [rsp + 0x880], r14
mov r14d, dword [rbp + 0x7e0]
nop dword [rax]
lea rdx, [0x14000fa34]
xor ecx, ecx
call fcn.140003a8c
mov r13, rax
cmp r12d, r15d
jne 0x14000208c
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x70]
repne scasw ax, word [rdi]
xor ecx, ecx
nop word [rax + rax]
movzx eax, word [rsi + rcx]
add rcx, 2
mov word [rdi + rcx - 4], ax
test ax, ax
jne 0x140002060
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x70]
repne scasw ax, word [rdi]
mov eax, dword [0x14000fa34]
inc r12d
mov dword [rdi - 2], eax
mov rdx, rsi
mov rcx, rbx
call fcn.140003d9c
test eax, eax
jne 0x1400020a1
test r14b, 1
jne 0x1400020b0
mov rdx, rsi
mov rcx, rbx
call fcn.140003d9c
test eax, eax
je 0x1400020ec
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x70]
repne scasw ax, word [rdi]
xor ecx, ecx
movzx eax, word [rbx + rcx]
add rcx, 2
mov word [rdi + rcx - 4], ax
test ax, ax
jne 0x1400020c0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x70]
repne scasw ax, word [rdi]
mov eax, dword [0x14000fa34]
inc r12d
mov dword [rdi - 2], eax
mov rbx, r13
test r13, r13
jne 0x140002030
mov r14, qword [rsp + 0x880]
mov r13, qword [rsp + 0x8d8]
cmp r15d, r12d
jb 0x140002132
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x70]
repne scasw ax, word [rdi]
xor ecx, ecx
nop dword [rax]
movzx eax, word [rsi + rcx]
add rcx, 2
mov word [rdi + rcx - 4], ax
test ax, ax
jne 0x140002120
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x70]
repne scasw ax, word [rdi]
not rcx
cmp word [rsp + rcx*2 + 0x6c], 0x2c
jne 0x140002150
mov word [rsp + rcx*2 + 0x6c], ax
mov rdx, qword [rsp + 0x60]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x70]
mov r9d, 1
xor r8d, r8d
repne scasw ax, word [rdi]
lea rax, [rsp + 0x70]
not rcx
add rcx, rcx
mov dword [rsp + 0x28], ecx
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
test eax, eax
je 0x14000219f
lea rcx, str.RegistryAddStringToList:_RegSetValueEx_failed_with__ld__n
mov edx, eax
call fcn.140003308
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
neg edi
sbb eax, eax
and eax, 2
mov rcx, qword [rbp + 0x770]
xor rcx, rsp
call fcn.140003450
add rsp, 0x888
pop r15
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret