Function at 0x401550
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x90
mov qword [rbp + 0x10], rcx
mov dword [rbp + 0x18], edx
mov qword [rbp + 0x20], r8
mov dword [rbp + 0x28], r9d
lea rcx, str.advapi32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.CryptAcquireContextW
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp - 8], rax
lea rcx, str.advapi32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.CryptCreateHash
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp - 0x10], rax
lea rcx, str.advapi32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.CryptHashData
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp - 0x18], rax
lea rcx, str.advapi32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.CryptDeriveKey
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp - 0x20], rax
lea rcx, str.advapi32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.CryptDecrypt
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp - 0x28], rax
lea rcx, str.advapi32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.CryptReleaseContext
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp - 0x30], rax
lea rcx, str.advapi32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.CryptDestroyHash
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp - 0x38], rax
lea rcx, str.advapi32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.CryptDestroyKey
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp - 0x40], rax
lea rax, [rbp - 0x48]
mov dword [rsp + 0x20], 0xf0000000
mov r10, qword [rbp - 8]
mov r9d, 0x18
mov r8d, 0
mov edx, 0
mov rcx, rax
call r10
test eax, eax
sete al
test al, al
je 0x4016ee
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, str.Failed_in_CryptAcquireContextW___u__n
call sym.printf_char_const__::_
jmp 0x4018a7
mov rcx, qword [rbp - 0x48]
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp - 0x10]
mov r9d, 0
mov r8d, 0
mov edx, 0x800c
call rax
test eax, eax
sete al
test al, al
je 0x401746
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, str.Failed_in_CryptCreateHash___u__n
call sym.printf_char_const__::_
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x30]
mov edx, 0
call rax
jmp 0x4018a7
mov rcx, qword [rbp - 0x50]
mov r8d, dword [rbp + 0x28]
mov rdx, qword [rbp + 0x20]
mov rax, qword [rbp - 0x18]
mov r9d, 0
call rax
test eax, eax
sete al
test al, al
je 0x40179f
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, str.Failed_in_CryptHashData___u__n
call sym.printf_char_const__::_
mov rdx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x38]
mov rcx, rdx
call rax
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x30]
mov edx, 0
call rax
jmp 0x4018a7
mov rdx, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x48]
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp - 0x20]
mov r9d, 0
mov r8, rdx
mov edx, 0x6610
call rax
test eax, eax
sete al
test al, al
je 0x401805
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, str.Failed_in_CryptDeriveKey___u__n
call sym.printf_char_const__::_
mov rdx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x38]
mov rcx, rdx
call rax
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x30]
mov edx, 0
call rax
jmp 0x4018a7
mov rcx, qword [rbp - 0x58]
lea rax, [rbp + 0x18]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x10]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp - 0x28]
mov r9d, 0
mov r8d, 0
mov edx, 0
call rax
test eax, eax
sete al
test al, al
je 0x40187d
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, str.Failed_in_CryptDecrypt___u__n
call sym.printf_char_const__::_
mov rdx, qword [rbp - 0x58]
mov rax, qword [rbp - 0x40]
mov rcx, rdx
call rax
mov rdx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x38]
mov rcx, rdx
call rax
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x30]
mov edx, 0
call rax
jmp 0x4018a7
mov rdx, qword [rbp - 0x58]
mov rax, qword [rbp - 0x40]
mov rcx, rdx
call rax
mov rdx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x38]
mov rcx, rdx
call rax
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x30]
mov edx, 0
call rax
nop
add rsp, 0x90
pop rbp
ret