Function at 0x14015c7f0
Capabilities:
Initialize hashing via wincrypt

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x290]
sub rsp, 0x390
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x3c8], rbx
mov rax, qword [0x14026be10]
xor rax, rsp
mov qword [rbp + 0x280], rax
mov rsi, r9
mov r14, r8
movzx r15d, dl
mov rbx, rcx
mov rdi, qword [rbp + 0x2e0]
xor eax, eax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
lea r8, str.msRsaSignHash
mov rdx, rdi
lea rcx, [rsp + 0x48]
call fcn.140071270
nop
mov rcx, rsi
call fcn.140035e00
mov rdx, rdi
mov rcx, rbx
call fcn.1400ec790
mov rbx, rax
test rax, rax
jne 0x14015c893
mov rax, qword [rdi]
lea rdx, str.Failed_to_get_MsCertificate.
mov rcx, rdi
call qword [rax + 0x28]
jmp 0x14015cafb
xor edx, edx
mov r8d, 0x90
lea rcx, [rbp - 0x10]
call fcn.14016c710
lea rcx, [rbp - 0x10]
call fcn.14002b840
nop
xor edx, edx
mov r8d, 0x90
lea rcx, [rsp + 0x60]
call fcn.14016c710
lea rcx, [rsp + 0x60]
call fcn.14002b840
nop
mov r8, rdi
lea rdx, [rbp - 0x10]
mov rcx, rbx
call fcn.1400e80b0
lea r8, [rbp - 0x10]
lea rdx, str.cert_key_container
mov rcx, rdi
call fcn.140071b70
mov r8, rdi
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.1400e7da0
lea r8, [rsp + 0x60]
lea rdx, str.cert_def_provider
mov rcx, rdi
call fcn.140071b70
lea rcx, [rbp - 0x10]
call fcn.14002ed10
mov rbx, rax
lea rcx, [rsp + 0x60]
call fcn.14002ed10
mov rcx, rax
xor r8d, r8d
mov rdx, rbx
test r15b, r15b
je 0x14015c944
mov qword [rsp + 0x20], rdi
mov r9b, 1
call fcn.140165010
jmp 0x14015c94c
mov r9, rdi
call fcn.140165350
mov rbx, rax
test rax, rax
jne 0x14015c960
lea rdx, str.Failed_to_acquire_CSP.
jmp 0x14015ca86
mov rcx, rbx
call fcn.14002a310
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8008
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x14015c9a6
mov rcx, rdi
call fcn.1400720b0
mov rcx, rbx
call fcn.14006fa10
lea rdx, str.Failed_to_create_HCRYPTHASH
jmp 0x14015ca86
xor r9d, r9d
mov r8, r14
lea edx, [r9 + 2]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptSetHashParam]
test eax, eax
jne 0x14015c9e6
mov rcx, rdi
call fcn.1400720b0
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, rbx
call fcn.14006fa10
lea rdx, str.Failed_to_CryptSetHashParam
jmp 0x14015ca86
mov dword [rsp + 0x38], 0x200
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x80]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptSignHashA]
test eax, eax
jne 0x14015ca93
mov rcx, rdi
call fcn.1400720b0
mov rax, qword [rdi]
lea rdx, str.Failed_to_CryptSignHash_with_AT_KEYEXCHANGE_key.
mov rcx, rdi
call qword [rax + 0x28]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x80]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 2]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptSignHashA]
test eax, eax
jne 0x14015ca93
mov rcx, rdi
call fcn.1400720b0
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, rbx
call fcn.14006fa10
lea rdx, str.Failed_to_CryptSignHash_with_AT_SIGNATURE_key
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
xor bl, bl
jmp 0x14015cae6
cmp byte [rdi + 0xa9], 0
je 0x14015cab0
mov r8d, dword [rsp + 0x38]
lea rdx, str.cryptSigSize
mov rcx, rdi
call fcn.1400717d0
mov r8d, dword [rsp + 0x38]
lea rdx, [rbp + 0x80]
mov rcx, rsi
call fcn.140034960
mov rcx, rsi
call fcn.140038840
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14015cadc
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, rbx
call fcn.14006fa10
mov bl, 1
lea rcx, [rsp + 0x60]
call fcn.14002b890
nop
lea rcx, [rbp - 0x10]
call fcn.14002b890
nop
lea rcx, [rsp + 0x48]
call fcn.140071380
movzx eax, bl
mov rcx, qword [rbp + 0x280]
xor rcx, rsp
call fcn.140168e10
mov rbx, qword [rsp + 0x3c8]
add rsp, 0x390
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret