Function at 0x1400e63c0
Capabilities:
Link many functions at runtime

Disassembly:
push rbx
sub rsp, 0x20
cmp byte [0x1402c3344], 0
mov rbx, rcx
jne 0x1400e6418
cmp qword [0x1402c33b8], 0
jne 0x1400e6690
lea rcx, str.ncrypt.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x1402c33b8], rax
test rax, rax
jne 0x1400e6420
mov rcx, rbx
mov byte [0x1402c3344], 1
call fcn.140055c70
mov rax, qword [rbx]
lea rdx, str.Failed_to_load_ncrypt.dll
mov rcx, rbx
call qword [rax + 0x28]
xor al, al
add rsp, 0x20
pop rbx
ret
lea rdx, str.NCryptDecrypt
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c3358], rax
test rax, rax
jne 0x1400e6466
lea rdx, str.NCryptDecrypt_function_not_found.
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
xor al, al
mov byte [0x1402c3344], 1
mov qword [0x1402c33b8], 0
add rsp, 0x20
pop rbx
ret
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptOpenKey
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c3398], rax
test rax, rax
jne 0x1400e648f
lea rdx, str.NCryptOpenKey_function_not_found.
jmp 0x1400e6443
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptImportKey
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c33a0], rax
test rax, rax
jne 0x1400e64b8
lea rdx, str.NCryptImportKey_function_not_found.
jmp 0x1400e6443
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptCreatePersistedKey
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c33a8], rax
test rax, rax
jne 0x1400e64e4
lea rdx, str.NCryptCreatePersistedKey_function_not_found.
jmp 0x1400e6443
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptFinalizeKey
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c33b0], rax
test rax, rax
jne 0x1400e6510
lea rdx, str.NCryptFinalizeKey_function_not_found.
jmp 0x1400e6443
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptExportKey
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c3390], rax
test rax, rax
jne 0x1400e653c
lea rdx, str.NCryptExportKey_function_not_found.
jmp 0x1400e6443
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptEnumKeys
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c3380], rax
test rax, rax
jne 0x1400e6568
lea rdx, str.NCryptEnumKeys_function_not_found.
jmp 0x1400e6443
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptFreeBuffer
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c3388], rax
test rax, rax
jne 0x1400e6594
lea rdx, str.NCryptFreeBuffer_function_not_found.
jmp 0x1400e6443
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptEnumStorageProviders
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c3378], rax
test rax, rax
jne 0x1400e65c0
lea rdx, str.NCryptEnumStorageProviders_function_not_found.
jmp 0x1400e6443
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptOpenStorageProvider
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c3370], rax
test rax, rax
jne 0x1400e65ec
lea rdx, str.NCryptOpenStorageProvider_function_not_found.
jmp 0x1400e6443
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptSignHash
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c3360], rax
test rax, rax
jne 0x1400e6618
lea rdx, str.NCryptSignHash_function_not_found.
jmp 0x1400e6443
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptFreeObject
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c3350], rax
test rax, rax
je 0x1400e660c
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptSetProperty
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c3368], rax
test rax, rax
jne 0x1400e6664
lea rdx, str.NCryptSetProperty_function_not_found.
jmp 0x1400e6443
mov rcx, qword [0x1402c33b8]
lea rdx, str.NCryptGetProperty
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402c3348], rax
test rax, rax
jne 0x1400e6690
lea rdx, str.NCryptGetProperty_function_not_found.
jmp 0x1400e6443
mov al, 1
add rsp, 0x20
pop rbx
ret