Function at 0x1400f41e0
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x48], rbx
mov rbx, rcx
lea rax, [0x140221aa8]
mov qword [rcx], rax
mov eax, dword [str.Crypto]
mov dword [rcx + 0x268], eax
movzx eax, word [0x140221ab4]
mov word [rcx + 0x26c], ax
movzx eax, byte [0x140221ab6]
mov byte [rcx + 0x26e], al
xor edi, edi
mov qword [rcx + 8], rdi
mov qword [rcx + 0x10], rdx
mov dword [rcx + 0x18], r8d
mov dword [rcx + 0x1c], r9d
mov dword [rcx + 0x20], 0x8004
mov eax, dword [rsp + 0x60]
mov dword [rcx + 0x24], eax
mov eax, dword [rsp + 0x68]
mov dword [rcx + 0x264], eax
add rcx, 0x28
xor edx, edx
mov r8d, 0x100
call fcn.140141ad0
mov qword [rbx + 0x128], rdi
mov qword [rbx + 0x130], rdi
mov qword [rbx + 0x138], rdi
lea rcx, [rbx + 0x140]
xor edx, edx
mov r8d, 0x104
call fcn.140141ad0
mov qword [rbx + 0x248], rdi
mov dword [rbx + 0x250], edi
mov qword [rbx + 0x258], rdi
mov dword [rbx + 0x260], edi
mov dword [rbx + 0x2a8], edi
lea rcx, str.CRYPT32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [rbx + 0x2b0], rax
test rax, rax
je 0x1400f435b
cmp dword [rbx + 0x264], edi
jne 0x1400f435b
mov dword [rbx + 0x2a8], 1
lea rdx, str.CryptMemRealloc
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x2c0], rax
test rax, rax
je 0x1400f4320
inc dword [rbx + 0x2a8]
lea rdx, str.CryptMemAlloc
mov rcx, qword [rbx + 0x2b0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x2c8], rax
cmp qword [rbx + 0x2c8], rdi
je 0x1400f434a
inc dword [rbx + 0x2a8]
lea rdx, str.CryptMemFree
mov rcx, qword [rbx + 0x2b0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x2d0], rax
cmp qword [rbx + 0x2d0], rdi
je 0x1400f4385
inc dword [rbx + 0x2a8]
jmp 0x1400f4385
lea rax, [0x1400f4a50]
mov qword [rbx + 0x2c0], rax
lea rax, [0x1400f4a30]
mov qword [rbx + 0x2c8], rax
lea rax, [0x1400f4a40]
mov qword [rbx + 0x2d0], rax
lea rcx, [0x140221af8]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [rbx + 0x2b8], rax
test rax, rax
je 0x1400f46d3
mov dword [rbx + 0x2a8], 0x65
lea rdx, str.CryptAcquireContextA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x2d8], rax
test rax, rax
je 0x1400f43e9
inc dword [rbx + 0x2a8]
lea rdx, [0x140221b20]
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x2e0], rax
cmp qword [rbx + 0x2e0], rdi
je 0x1400f4413
inc dword [rbx + 0x2a8]
lea rdx, str.CryptGetProvParam
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x2e8], rax
cmp qword [rbx + 0x2e8], rdi
je 0x1400f443d
inc dword [rbx + 0x2a8]
lea rdx, str.CryptGenKey
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x2f0], rax
cmp qword [rbx + 0x2f0], rdi
je 0x1400f4467
inc dword [rbx + 0x2a8]
lea rdx, str.CryptDestroyKey
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x2f8], rax
cmp qword [rbx + 0x2f8], rdi
je 0x1400f4491
inc dword [rbx + 0x2a8]
lea rdx, str.CryptGetUserKey
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x300], rax
cmp qword [rbx + 0x300], rdi
je 0x1400f44bb
inc dword [rbx + 0x2a8]
lea rdx, str.CryptDeriveKey
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x308], rax
cmp qword [rbx + 0x308], rdi
je 0x1400f44e5
inc dword [rbx + 0x2a8]
lea rdx, str.CryptExportKey
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x310], rax
cmp qword [rbx + 0x310], rdi
je 0x1400f450f
inc dword [rbx + 0x2a8]
lea rdx, str.CryptImportKey
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x318], rax
cmp qword [rbx + 0x318], rdi
je 0x1400f4539
inc dword [rbx + 0x2a8]
lea rdx, str.CryptGetKeyParam
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x320], rax
cmp qword [rbx + 0x320], rdi
je 0x1400f4563
inc dword [rbx + 0x2a8]
lea rdx, str.CryptEncrypt
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x328], rax
cmp qword [rbx + 0x328], rdi
je 0x1400f458d
inc dword [rbx + 0x2a8]
lea rdx, str.CryptDecrypt
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x330], rax
cmp qword [rbx + 0x330], rdi
je 0x1400f45b7
inc dword [rbx + 0x2a8]
lea rdx, str.CryptCreateHash
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x338], rax
cmp qword [rbx + 0x338], rdi
je 0x1400f45e1
inc dword [rbx + 0x2a8]
lea rdx, str.CryptDestroyHash
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x340], rax
cmp qword [rbx + 0x340], rdi
je 0x1400f460b
inc dword [rbx + 0x2a8]
lea rdx, str.CryptHashData
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x348], rax
cmp qword [rbx + 0x348], rdi
je 0x1400f4667
cmp dword [rbx + 0x264], edi
jne 0x1400f463d
inc dword [rbx + 0x2a8]
lea rdx, str.CryptDuplicateHash
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x350], rax
cmp qword [rbx + 0x348], rdi
je 0x1400f4667
inc dword [rbx + 0x2a8]
lea rdx, str.CryptGetHashParam
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x358], rax
cmp qword [rbx + 0x358], rdi
je 0x1400f4691
inc dword [rbx + 0x2a8]
lea rdx, str.CryptSignHashA
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x360], rax
cmp qword [rbx + 0x360], rdi
je 0x1400f46bb
inc dword [rbx + 0x2a8]
lea rdx, str.CryptVerifySignatureA
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x368], rax
cmp qword [rbx + 0x368], rdi
je 0x1400f4758
inc dword [rbx + 0x2a8]
jmp 0x1400f4758
mov qword [rbx + 0x2d8], rdi
mov qword [rbx + 0x2e0], rdi
mov qword [rbx + 0x2e8], rdi
mov qword [rbx + 0x2f0], rdi
mov qword [rbx + 0x2f8], rdi
mov qword [rbx + 0x300], rdi
mov qword [rbx + 0x308], rdi
mov qword [rbx + 0x310], rdi
mov qword [rbx + 0x318], rdi
mov qword [rbx + 0x320], rdi
mov qword [rbx + 0x328], rdi
mov qword [rbx + 0x330], rdi
mov qword [rbx + 0x338], rdi
mov qword [rbx + 0x340], rdi
mov qword [rbx + 0x348], rdi
mov qword [rbx + 0x350], rdi
mov qword [rbx + 0x358], rdi
mov qword [rbx + 0x360], rdi
mov qword [rbx + 0x368], rdi
mov rax, rbx
jmp 0x1400f4762
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret