Function at 0x401be2
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
sub rsp, 0x360
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x2f0], ecx
mov qword [rbp + 0x2f8], rdx
call dbg.__main
lea rcx, [0x00404040]
call sym.op_char_
lea rax, [rbp + 0x2d0]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
mov r8d, 0
lea rdx, [0x00404040]
mov rcx, 0xffffffff80000001
mov rax, qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
call rax
mov dword [rbp + 0x2dc], eax
cmp dword [rbp + 0x2dc], 0
je 0x401c7b
mov rcx, qword [rbp + 0x2d0]
mov edx, dword [rbp + 0x2dc]
mov rax, qword [rbp + 0x2f8]
mov r9, rcx
mov r8d, edx
mov rdx, rax
mov ecx, dword [rbp + 0x2f0]
call sym.first_pass_int__char__long__HKEY___
jmp 0x401ffb
mov dword [rbp + 0x1bc], 0x100
mov rax, qword [rbp + 0x2d0]
lea rcx, [rbp + 0x2cc]
lea rdx, [rbp + 0x1bc]
mov qword [rsp + 0x28], rdx
lea rdx, [rbp + 0x1c0]
mov qword [rsp + 0x20], rdx
mov r9, rcx
mov r8d, 0
lea rdx, str.error
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
call rax
mov dword [rbp + 0x2dc], eax
cmp dword [rbp + 0x2dc], 0
je 0x401cec
lea rcx, str.Error_getting_key
call sym.puts
mov eax, 1
jmp 0x401ffb
mov rax, qword [rbp + 0x2d0]
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_RegCloseKey]
call rax
cmp dword [rbp + 0x2f0], 1
jle 0x401f24
mov rax, qword [rbp + 0x2f8]
add rax, 8
mov rax, qword [rax]
lea rdx, [0x004050e6]
mov rcx, rax
call sym.strcmp
test eax, eax
jne 0x401e0d
cmp dword [rbp + 0x2f0], 2
jg 0x401d6a
mov rax, qword [rbp + 0x2f8]
add rax, 8
mov rax, qword [rax]
add rax, 1
movzx eax, byte [rax]
movsx eax, al
mov edx, eax
lea rcx, str.Option___c_requires_a_filename_n
call sym.printf
mov eax, 1
jmp 0x401ffb
cmp dword [rbp + 0x2f0], 3
jne 0x401e03
lea rcx, str.Enter_key:
call sym.printf
lea rax, [rbp + 0xb0]
mov rdx, rax
lea rcx, str._255s
call sym.scanf
lea rdx, [rbp + 0xb0]
lea rax, [rbp + 0x1c0]
mov rcx, rax
call sym.strcmp
test eax, eax
je 0x401dc9
lea rcx, str.Wrong_key
call sym.puts
mov eax, 1
jmp 0x401ffb
mov rax, qword [rbp + 0x2f8]
add rax, 0x10
mov rax, qword [rax]
mov rdx, rax
lea rcx, str.Encrypting_decrypting_file__s_n
call sym.printf
mov rax, qword [rbp + 0x2f8]
add rax, 0x10
mov rax, qword [rax]
lea rdx, [rbp + 0x1c0]
mov rcx, rax
call sym.encrypt_decrypt_file_char__char_
mov eax, 0
jmp 0x401ffb
mov rax, qword [rbp + 0x2f8]
add rax, 8
mov rax, qword [rax]
lea rdx, [0x004050e9]
mov rcx, rax
call sym.strcmp
test eax, eax
jne 0x401f0e
cmp dword [rbp + 0x2f0], 2
jg 0x401e6b
mov rax, qword [rbp + 0x2f8]
add rax, 8
mov rax, qword [rax]
add rax, 1
movzx eax, byte [rax]
movsx eax, al
mov edx, eax
lea rcx, str.Option___c_requires_a_folder_name_n
call sym.printf
mov eax, 1
jmp 0x401ffb
cmp dword [rbp + 0x2f0], 3
jne 0x401f04
lea rcx, str.Enter_key:
call sym.printf
lea rax, [rbp + 0xb0]
mov rdx, rax
lea rcx, str._255s
call sym.scanf
lea rdx, [rbp + 0xb0]
lea rax, [rbp + 0x1c0]
mov rcx, rax
call sym.strcmp
test eax, eax
je 0x401eca
lea rcx, str.Wrong_key
call sym.puts
mov eax, 1
jmp 0x401ffb
mov rax, qword [rbp + 0x2f8]
add rax, 0x10
mov rax, qword [rax]
mov rdx, rax
lea rcx, str.Encrypting_decrypting_folder__s_n
call sym.printf
mov rax, qword [rbp + 0x2f8]
add rax, 0x10
mov rax, qword [rax]
lea rdx, [rbp + 0x1c0]
mov rcx, rax
call sym.encrypt_decrypt_folder_char__char_
mov eax, 0
jmp 0x401ffb
lea rcx, str.Unrecognized_option
call sym.puts
mov eax, 1
jmp 0x401ffb
cmp dword [rbp + 0x2f0], 1
jne 0x401ff6
lea rax, [rbp + 0xb0]
mov edx, 0x104
mov rcx, rax
call sym.getcwd
test rax, rax
setne al
test al, al
je 0x401f9d
lea rax, [rbp + 0xb0]
mov rdx, rax
lea rcx, str.Current_working_dir:__s_n
call sym.printf
lea rcx, str.Enter_key:
call sym.printf
lea rax, [rbp - 0x50]
mov rdx, rax
lea rcx, str._255s
call sym.scanf
lea rdx, [rbp - 0x50]
lea rax, [rbp + 0x1c0]
mov rcx, rax
call sym.strcmp
test eax, eax
jne 0x401fb0
jmp 0x401fc3
lea rcx, str.getcwd___error
call sym.perror
mov eax, 1
jmp 0x401ffb
lea rcx, str.Wrong_key
call sym.puts
mov eax, 1
jmp 0x401ffb
lea rax, [rbp + 0xb0]
mov rdx, rax
lea rcx, str.Encrypting_decrypting_current_folder__s_n
call sym.printf
lea rdx, [rbp + 0x1c0]
lea rax, [rbp + 0xb0]
mov rcx, rax
call sym.encrypt_decrypt_folder_char__char_
mov eax, 0
jmp 0x401ffb
mov eax, 0
add rsp, 0x360
pop rbp
ret