Function at 0x1400014d0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x20]
sub rsp, 0x120
mov rax, qword [0x14001e010]
xor rax, rsp
mov qword [rbp + 0x18], rax
lea rax, [rbp - 0x78]
mov r9d, 1
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.SoftwareCTF
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test ebx, ebx
jne 0x140001ce4
mov rcx, qword [rbp - 0x78]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
lea r9, [rbp - 0x50]
xor r15d, r15d
lea rdx, str.Path
xor r8d, r8d
mov qword [rsp + 0x20], r15
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x140001cda
cmp dword [rbp - 0x50], 1
jne 0x140001cda
mov ecx, dword [rbp - 0x80]
call fcn.140002884
mov rcx, qword [rbp - 0x78]
lea rdx, str.Path
mov rsi, rax
xor r9d, r9d
lea rax, [rbp - 0x80]
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x140001cd2
mov r14d, 0x30
mov qword [rbp - 0x20], r15
mov ecx, r14d
call fcn.1400025f8
movups xmm0, xmmword [str.QzpcV2luZG93c1xTeXN0ZW0zMlxjbWQuZXhl]
mov rbx, rax
mov qword [rbp - 0x28], rax
mov rdx, rsi
mov qword [rbp - 0x18], 0x27
movups xmmword [rax], xmm0
lea rcx, [rsp + 0x38]
mov qword [rbp - 0x10], 0x2f
movups xmm1, xmmword [0x14001aa10]
movups xmmword [rax + 0x10], xmm1
mov eax, dword [0x14001aa20]
mov dword [rbx + 0x20], eax
movzx eax, word [0x14001aa24]
mov word [rbx + 0x24], ax
movzx eax, byte [0x14001aa26]
mov byte [rbx + 0x26], al
mov byte [rbx + 0x27], r15b
call fcn.140001d80
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.140001230
mov rcx, rax
cmp qword [rax + 0x18], 0x10
jb 0x140001626
mov rcx, qword [rax]
mov r8, qword [rax + 0x10]
cmp r8, 0x27
jne 0x140001641
mov rdx, rbx
call fcn.140011e90
test eax, eax
jne 0x140001641
mov dil, 1
jmp 0x140001644
xor dil, dil
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x140001681
mov rcx, qword [rsp + 0x58]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000167c
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001d05
call fcn.1400025f0
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], 0xf
mov byte [rsp + 0x58], r15b
cmp rdx, 0x10
jb 0x1400016d1
mov rcx, qword [rsp + 0x38]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400016cc
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001d05
call fcn.1400025f0
mov rdx, r14
mov byte [rsp + 0x38], r15b
mov rcx, rbx
mov qword [rsp + 0x50], 0xf
mov qword [rsp + 0x48], r15
call fcn.1400025f0
test dil, dil
je 0x140001cd2
cmp dword [rbp - 0x80], 1
xorps xmm0, xmm0
mov qword [rsp + 0x150], r12
mov rdi, r15
movdqu xmmword [rbp - 0x48], xmm0
mov rbx, qword [rbp - 0x40]
mov r12, r15
mov qword [rsp + 0x158], r13
mov r13, r15
movdqu xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x38], r15
je 0x14000176e
movzx eax, byte [rdi + rsi]
mov byte [rsp + 0x30], al
cmp rbx, r13
je 0x140001748
mov byte [rbx], al
inc rbx
mov qword [rbp - 0x40], rbx
jmp 0x140001761
lea r8, [rsp + 0x30]
mov rdx, rbx
lea rcx, [rbp - 0x48]
call fcn.140002330
mov r13, qword [rbp - 0x38]
mov rbx, qword [rbp - 0x40]
mov ecx, dword [rbp - 0x80]
inc rdi
dec ecx
cmp rdi, rcx
jb 0x140001730
mov rdi, qword [rbp - 0x68]
mov rsi, r15
mov dword [rbp - 8], 0x9dd457cd
mov dword [rbp - 4], 0xf6608dd5
mov dword [rbp], 0x3ff82b4
mov dword [rbp + 4], 0xe2f8f99d
mov word [rbp + 8], 0x7c2
mov byte [rbp + 0xa], 0xa2
nop dword [rax + rax]
lea r8, [rbp - 8]
add r8, rsi
cmp rdi, r12
je 0x1400017bb
movzx eax, byte [r8]
mov byte [rdi], al
inc rdi
mov qword [rbp - 0x68], rdi
jmp 0x1400017cf
mov rdx, rdi
lea rcx, [rbp - 0x70]
call fcn.140002330
mov r12, qword [rbp - 0x60]
mov rdi, qword [rbp - 0x68]
inc rsi
cmp rsi, 0x13
jb 0x1400017a0
xorps xmm0, xmm0
mov qword [rbp - 0x10], r15
lea rcx, [rbp - 0x28]
mov qword [rbp - 0x18], r15
movdqu xmmword [rbp - 0x28], xmm0
call fcn.140002200
mov r14, qword [rbp - 0x28]
mov eax, r15d
mov rcx, r14
mov r10d, 0x100
mov byte [rcx], al
lea rcx, [rcx + 1]
inc eax
cmp eax, r10d
jl 0x140001801
mov r15, qword [rbp - 0x48]
xor r11d, r11d
sub rbx, r15
mov r9, r14
xor r8d, r8d
nop
movzx esi, byte [r9]
xor edx, edx
mov rax, r11
div rbx
movzx eax, byte [rdx + r15]
add r8d, eax
add r8d, esi
and r8d, 0x800000ff
jge 0x14000184d
dec r8d
or r8d, 0xffffff00
inc r8d
movsxd rcx, r8d
inc r11
movzx eax, byte [rcx + r14]
mov byte [r9], al
inc r9
mov byte [rcx + r14], sil
sub r10, 1
jne 0x140001820
mov rbx, qword [rbp - 0x70]
xor r8d, r8d
xor edx, edx
mov r11, rdi
sub r11, rbx
je 0x1400018e3
mov rsi, rbx
mov qword [rsp + 0x78], r11
inc edx
and edx, 0x800000ff
jge 0x140001895
dec edx
or edx, 0xffffff00
inc edx
movsxd r9, edx
movzx r10d, byte [r9 + r14]
add r8d, r10d
and r8d, 0x800000ff
jge 0x1400018b6
dec r8d
or r8d, 0xffffff00
inc r8d
movsxd rcx, r8d
movzx eax, byte [rcx + r14]
mov byte [r9 + r14], al
mov byte [rcx + r14], r10b
movzx eax, byte [r9 + r14]
add eax, r10d
movzx eax, al
movzx ecx, byte [rax + r14]
xor byte [rsi], cl
inc rsi
sub qword [rsp + 0x78], 1
jne 0x140001881
mov rax, qword [str.dagctf]
xorps xmm0, xmm0
mov dword [rsp + 0x38], eax
movzx eax, word [0x14001aa3c]
mov word [rsp + 0x3c], ax
movzx eax, byte [0x14001aa3e]
mov byte [rsp + 0x3e], al
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 7
mov qword [rsp + 0x50], 0xf
mov byte [rsp + 0x3f], 0
movups xmmword [rbp - 8], xmm0
cmp rbx, rdi
jne 0x14000194a
mov qword [rbp + 8], 0
mov qword [rbp + 0x10], 0xf
mov byte [rbp - 8], 0
jmp 0x140001a48
xor r15d, r15d
mov rsi, rbx
movabs rax, 0x7fffffffffffffff
mov qword [rbp + 8], r15
mov ebx, 0xf
mov qword [rbp + 0x10], rbx
cmp r11, rax
ja 0x140001d0b
cmp r11, 0x10
jb 0x140001a00
mov rbx, r11
or rbx, 0xf
cmp rbx, rax
jbe 0x14000198b
mov rbx, rax
jmp 0x140001997
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
mov rcx, rbx
mov rax, 0xffffffffffffffff
add rcx, 1
cmovb rcx, rax
cmp rcx, 0x1000
jb 0x1400019e1
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140001d11
mov rcx, rax
call fcn.1400025f8
mov rcx, rax
test rax, rax
je 0x140001cff
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1400019ef
test rcx, rcx
je 0x1400019ed
call fcn.1400025f8
jmp 0x1400019ef
xor eax, eax
mov qword [rbp - 8], rax
mov qword [rbp + 0x10], rbx
nop word [rax + rax]
movzx eax, byte [rsi]
lea rcx, [rbp - 8]
cmp rbx, 0x10
cmovae rcx, qword [rbp - 8]
inc rsi
mov byte [rcx + r15], al
mov r15, qword [rbp + 8]
inc r15
mov qword [rbp + 8], r15
cmp rsi, rdi
je 0x140001a2d
mov rbx, qword [rbp + 0x10]
jmp 0x140001a00
cmp qword [rbp + 0x10], 0x10
lea rax, [rbp - 8]
mov rbx, qword [rbp - 0x70]
cmovae rax, qword [rbp - 8]
mov byte [rax + r15], 0
mov r15, qword [rbp - 0x48]
lea r9, [rbp - 8]
lea r8, [rsp + 0x38]
lea rcx, [rbp - 0x48]
call fcn.140002010
movzx eax, word [0x14001aa30]
lea r9, [rbp - 0x70]
xorps xmm0, xmm0
mov qword [rbp - 0x60], 1
movups xmmword [rbp - 0x70], xmm0
lea r8, [rbp - 0x48]
mov byte [rbp - 0x70], al
lea rcx, [rsp + 0x58]
mov byte [rbp - 0x6f], 0
mov qword [rbp - 0x58], 0xf
call fcn.140002010
cmp qword [rsp + 0x70], 0x10
lea rdx, [rsp + 0x58]
lea r8, str.REALLY_
cmovae rdx, qword [rsp + 0x58]
xor r9d, r9d
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
mov rdx, qword [rsp + 0x70]
mov edi, eax
cmp rdx, 0x10
jb 0x140001af3
mov rcx, qword [rsp + 0x58]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001aee
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001cff
call fcn.1400025f0
mov rdx, qword [rbp - 0x30]
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0xf
mov byte [rsp + 0x58], 0
cmp rdx, 0x10
jb 0x140001b45
mov rcx, qword [rbp - 0x48]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001b40
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001cff
call fcn.1400025f0
mov rdx, qword [rsp + 0x50]
cmp rdx, 0x10
jb 0x140001b82
mov rcx, qword [rsp + 0x38]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001b7d
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001cff
call fcn.1400025f0
mov rdx, qword [rbp + 0x10]
cmp rdx, 0x10
jb 0x140001bbd
mov rcx, qword [rbp - 8]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001bb8
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001cff
call fcn.1400025f0
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x140001bf8
mov rcx, qword [rbp - 0x70]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001bf3
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001cff
call fcn.1400025f0
test r14, r14
je 0x140001c31
mov rdx, qword [rbp - 0x18]
mov rax, r14
sub rdx, r14
cmp rdx, 0x1000
jb 0x140001c29
mov r14, qword [r14 - 8]
add rdx, 0x27
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001cff
mov rcx, r14
call fcn.1400025f0
test r15, r15
je 0x140001c69
sub r13, r15
mov rax, r15
cmp r13, 0x1000
jb 0x140001c5e
mov r15, qword [r15 - 8]
add r13, 0x27
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001cff
mov rdx, r13
mov rcx, r15
call fcn.1400025f0
test rbx, rbx
je 0x140001c9d
sub r12, rbx
mov rax, rbx
cmp r12, 0x1000
jb 0x140001c92
mov rbx, qword [rbx - 8]
add r12, 0x27
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001cff
mov rdx, r12
mov rcx, rbx
call fcn.1400025f0
mov r12, qword [rsp + 0x150]
mov eax, edi
mov r13, qword [rsp + 0x158]
mov rcx, qword [rbp + 0x18]
xor rcx, rsp
call fcn.1400025d0
mov rbx, qword [rsp + 0x160]
add rsp, 0x120
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
mov rcx, rsi
call fcn.1400025f0
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor r9d, r9d
lea r8, str.FLAG
lea rdx, str.dagctfEASY_MESSAGE_BOX
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x140001caf
call fcn.140008b1c
int3
call fcn.140008b1c
int3
call fcn.140001210
int3
call fcn.140001170
int3