Function at 0x140041ee0
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, [0x1400c3fc0]
mov qword [rcx], rax
mov eax, dword [str.Crypto]
mov dword [rcx + 0x268], eax
movzx eax, word [0x1400c3fcc]
mov word [rcx + 0x26c], ax
movzx eax, byte [0x1400c3fce]
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.140060ef0
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.140060ef0
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 0x14004205b
cmp dword [rbx + 0x264], edi
jne 0x14004205b
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 0x140042020
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 0x14004204a
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 0x140042085
inc dword [rbx + 0x2a8]
jmp 0x140042085
lea rax, [0x140042750]
mov qword [rbx + 0x2c0], rax
lea rax, [0x140042730]
mov qword [rbx + 0x2c8], rax
lea rax, [0x140042740]
mov qword [rbx + 0x2d0], rax
lea rcx, [0x1400c4010]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [rbx + 0x2b8], rax
test rax, rax
je 0x1400423d3
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 0x1400420e9
inc dword [rbx + 0x2a8]
lea rdx, str.CryptReleaseContext
mov rcx, qword [rbx + 0x2b8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x2e0], rax
cmp qword [rbx + 0x2e0], rdi
je 0x140042113
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 0x14004213d
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 0x140042167
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 0x140042191
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 0x1400421bb
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 0x1400421e5
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 0x14004220f
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 0x140042239
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 0x140042263
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 0x14004228d
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 0x1400422b7
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 0x1400422e1
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 0x14004230b
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 0x140042367
cmp dword [rbx + 0x264], edi
jne 0x14004233d
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 0x140042367
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 0x140042391
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 0x1400423bb
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 0x140042458
inc dword [rbx + 0x2a8]
jmp 0x140042458
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 0x140042462
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret