Function at 0x56cb20
Capabilities:
Link many functions at runtime

Disassembly:
mov al, byte [0x72629c]
push ebx
xor ebx, ebx
push esi
cmp al, bl
jne 0x56cd3f
cmp dword [0x726298], ebx
jne 0x56cd44
push str.ncrypt.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, ebx
mov dword [0x726298], eax
jne 0x56cb74
mov esi, dword [esp + 0xc]
mov byte [0x72629c], 1
mov ecx, esi
call fcn.004f01e0
mov eax, dword [esi]
push str.Failed_to_load_ncrypt.dll
mov ecx, esi
call dword [eax + 0x14]
pop esi
xor al, al
pop ebx
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.NCryptDecrypt
push eax
call esi
cmp eax, ebx
mov dword [0x726270], eax
jne 0x56cb9b
mov ecx, dword [esp + 0xc]
push str.NCryptDecrypt_function_not_found.
mov edx, dword [ecx]
jmp 0x56cd2f
mov eax, dword [0x726298]
push str.NCryptOpenKey
push eax
call esi
cmp eax, ebx
mov dword [0x726288], eax
jne 0x56cbc1
mov ecx, dword [esp + 0xc]
push str.NCryptOpenKey_function_not_found.
mov edx, dword [ecx]
jmp 0x56cd2f
mov eax, dword [0x726298]
push str.NCryptImportKey
push eax
call esi
cmp eax, ebx
mov dword [0x72628c], eax
jne 0x56cbe7
mov ecx, dword [esp + 0xc]
push str.NCryptImportKey_function_not_found.
mov edx, dword [ecx]
jmp 0x56cd2f
mov eax, dword [0x726298]
push str.NCryptCreatePersistedKey
push eax
call esi
cmp eax, ebx
mov dword [0x726290], eax
jne 0x56cc0d
mov ecx, dword [esp + 0xc]
push str.NCryptCreatePersistedKey_function_not_found.
mov edx, dword [ecx]
jmp 0x56cd2f
mov eax, dword [0x726298]
push str.NCryptFinalizeKey
push eax
call esi
cmp eax, ebx
mov dword [0x726294], eax
jne 0x56cc33
mov ecx, dword [esp + 0xc]
push str.NCryptFinalizeKey_function_not_found.
mov edx, dword [ecx]
jmp 0x56cd2f
mov eax, dword [0x726298]
push str.NCryptExportKey
push eax
call esi
cmp eax, ebx
mov dword [0x726284], eax
jne 0x56cc59
mov ecx, dword [esp + 0xc]
push str.NCryptExportKey_function_not_found.
mov edx, dword [ecx]
jmp 0x56cd2f
mov eax, dword [0x726298]
push str.NCryptFreeBuffer
push eax
call esi
cmp eax, ebx
mov dword [0x726280], eax
jne 0x56cc7f
mov ecx, dword [esp + 0xc]
push str.NCryptFreeBuffer_function_not_found.
mov edx, dword [ecx]
jmp 0x56cd2f
mov eax, dword [0x726298]
push str.NCryptOpenStorageProvider
push eax
call esi
cmp eax, ebx
mov dword [0x72627c], eax
jne 0x56cca5
mov ecx, dword [esp + 0xc]
push str.NCryptOpenStorageProvider_function_not_found.
mov edx, dword [ecx]
jmp 0x56cd2f
mov eax, dword [0x726298]
push str.NCryptSignHash
push eax
call esi
cmp eax, ebx
mov dword [0x726274], eax
jne 0x56ccc8
mov ecx, dword [esp + 0xc]
push str.NCryptSignHash_function_not_found.
mov edx, dword [ecx]
jmp 0x56cd2f
mov eax, dword [0x726298]
push str.NCryptFreeObject
push eax
call esi
cmp eax, ebx
mov dword [0x72626c], eax
jne 0x56cceb
mov ecx, dword [esp + 0xc]
push str.NCryptSignHash_function_not_found.
mov edx, dword [ecx]
jmp 0x56cd2f
mov eax, dword [0x726298]
push str.NCryptSetProperty
push eax
call esi
cmp eax, ebx
mov dword [0x726278], eax
jne 0x56cd0e
mov ecx, dword [esp + 0xc]
push str.NCryptSetProperty_function_not_found.
mov edx, dword [ecx]
jmp 0x56cd2f
mov eax, dword [0x726298]
push str.NCryptGetProperty
push eax
call esi
cmp eax, ebx
mov dword [0x726268], eax
jne 0x56cd44
mov ecx, dword [esp + 0xc]
push str.NCryptGetProperty_function_not_found.
mov edx, dword [ecx]
call dword [edx + 0x14]
mov byte [0x72629c], 1
mov dword [0x726298], ebx
pop esi
xor al, al
pop ebx
ret
pop esi
mov al, 1
pop ebx
ret