Function at 0x14000577a
Capabilities:
Create new key via cryptacquirecontext
Initialize hashing via wincrypt

Disassembly:
push rbp
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x90]
mov dword [rbp + 0x20], ecx
mov qword [rbp + 0x28], rdx
mov dword [rbp + 0x30], r8d
mov qword [rbp + 0x38], r9
mov dword [rbp - 4], 0
lea rax, [rbp - 0x38]
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 0x18
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
call rax
test eax, eax
je 0x140005a73
mov rax, qword [rbp - 0x38]
mov edx, dword [rbp + 0x20]
lea rcx, [rbp - 0x40]
mov qword [rsp + 0x20], rcx
mov r9d, 0
mov r8d, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
call rax
test eax, eax
je 0x140005a5e
mov rax, qword [rbp - 0x40]
lea rdx, [rbp - 0x44]
mov dword [rsp + 0x20], 0
mov r9, rdx
mov r8d, 0
mov edx, 2
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
call rax
test eax, eax
je 0x140005a4e
mov eax, dword [rbp + 0x40]
add rax, 4
mov rdx, rax
mov ecx, 0x40
mov rax, qword [sym.imp.KERNEL32.dll_LocalAlloc]
call rax
mov qword [rbp - 0x18], rax
cmp qword [rbp - 0x18], 0
je 0x140005a4e
mov eax, dword [rbp - 0x44]
mov eax, eax
mov rdx, rax
mov ecx, 0x40
mov rax, qword [sym.imp.KERNEL32.dll_LocalAlloc]
call rax
mov qword [rbp - 0x20], rax
cmp qword [rbp - 0x20], 0
je 0x140005a3e
mov eax, dword [rbp - 0x44]
mov eax, eax
mov rdx, rax
mov ecx, 0x40
mov rax, qword [sym.imp.KERNEL32.dll_LocalAlloc]
call rax
mov qword [rbp - 0x28], rax
cmp qword [rbp - 0x28], 0
je 0x140005a2e
mov dword [rbp - 4], 1
mov ecx, dword [rbp + 0x40]
mov rdx, qword [rbp + 0x38]
mov rax, qword [rbp - 0x18]
mov r8, rcx
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov dword [rbp - 8], 1
jmp 0x140005a14
mov edx, dword [rbp + 0x40]
mov rax, qword [rbp - 0x18]
lea rbx, [rdx + rax]
mov eax, dword [rbp - 8]
mov ecx, eax
call fcn.14000a4a0
mov dword [rbx], eax
mov ecx, dword [rbp - 0x44]
mov eax, dword [rbp + 0x40]
lea r8d, [rax + 4]
mov r9, qword [rbp - 0x18]
mov r10d, dword [rbp + 0x30]
mov rdx, qword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
mov dword [rsp + 0x30], ecx
mov rcx, qword [rbp - 0x28]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r8d
mov r8d, r10d
mov ecx, eax
call fcn.14000527a
mov eax, dword [rbp - 0x44]
mov ecx, eax
mov rdx, qword [rbp - 0x28]
mov rax, qword [rbp - 0x20]
mov r8, rcx
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov dword [rbp - 0xc], 1
jmp 0x1400059d3
mov r8d, dword [rbp - 0x44]
mov ecx, dword [rbp - 0x44]
mov r9, qword [rbp - 0x28]
mov r10d, dword [rbp + 0x30]
mov rdx, qword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
mov dword [rsp + 0x30], r8d
mov r8, qword [rbp - 0x28]
mov qword [rsp + 0x28], r8
mov dword [rsp + 0x20], ecx
mov r8d, r10d
mov ecx, eax
call fcn.14000527a
mov dword [rbp - 0x10], 0
jmp 0x1400059a9
mov edx, dword [rbp - 0x10]
mov rax, qword [rbp - 0x20]
add rax, rdx
movzx r8d, byte [rax]
mov edx, dword [rbp - 0x10]
mov rax, qword [rbp - 0x28]
add rax, rdx
movzx ecx, byte [rax]
mov edx, dword [rbp - 0x10]
mov rax, qword [rbp - 0x20]
add rax, rdx
mov edx, r8d
xor edx, ecx
mov byte [rax], dl
add dword [rbp - 0x10], 1
mov eax, dword [rbp - 0x44]
cmp dword [rbp - 0x10], eax
jb 0x140005979
cmp dword [rbp + 0x60], 0
je 0x1400059cf
mov eax, dword [rbp - 0x44]
mov ecx, eax
mov rdx, qword [rbp - 0x20]
mov rax, qword [rbp - 0x28]
mov r8, rcx
mov rcx, rax
call sub.msvcrt.dll_memcpy
add dword [rbp - 0xc], 1
mov eax, dword [rbp - 0xc]
cmp eax, dword [rbp + 0x48]
jb 0x14000593e
mov eax, dword [rbp - 0x44]
mov edx, dword [rbp + 0x58]
cmp edx, eax
cmovbe eax, edx
mov dword [rbp - 0x2c], eax
mov ecx, dword [rbp - 0x2c]
mov rdx, qword [rbp - 0x20]
mov rax, qword [rbp + 0x50]
mov r8, rcx
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov eax, dword [rbp - 0x2c]
add qword [rbp + 0x50], rax
mov eax, dword [rbp - 0x2c]
sub dword [rbp + 0x58], eax
add dword [rbp - 8], 1
cmp dword [rbp + 0x58], 0
jne 0x1400058ce
mov rax, qword [rbp - 0x28]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov rax, qword [rbp - 0x20]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov rax, qword [rbp - 0x18]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov rax, qword [rbp - 0x40]
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
call rax
mov rax, qword [rbp - 0x38]
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call rax
mov eax, dword [rbp - 4]
add rsp, 0x98
pop rbx
pop rbp
ret