Function at 0x1000c4398
Capabilities:
Generate random numbers via winapi
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0xa0
mov rax, qword [0x10010f190]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov r12, qword [rsp + reloc.certcli.dll_Ordinal_256]
xor edi, edi
xor esi, esi
and qword [rsp + 0x48], rdi
and qword [rsp + 0x38], rdi
mov r13d, r9d
mov r14, r8
mov ebx, edx
mov rbp, rcx
mov qword [rsp + 0x40], rdi
cmp edx, 2
je 0x1000c4425
cmp edx, 1
je 0x1000c4425
lea r8, [rsp + 0x40]
call fcn.1000c41dc
mov ebx, eax
test eax, eax
je 0x1000c4418
xor r9d, r9d
mov r8d, eax
mov edx, 0x77901a4
xor ecx, ecx
call fcn.1000b51b8
mov rdi, qword [rsp + 0x40]
jmp 0x1000c45e0
mov rdi, qword [rsp + 0x40]
mov ebx, 2
mov rbp, rdi
lea rax, [rsp + 0x38]
xor r9d, r9d
xor r8d, r8d
mov edx, r13d
mov rcx, rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x1000c445b
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x78401a4
jmp 0x1000c457f
mov r13d, Ordinal_65
lea r8, [rsp + 0x50]
mov rcx, rbp
mov edx, r13d
call qword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
jne 0x1000c448c
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x78a01a4
jmp 0x1000c457f
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x50]
xor r9d, r9d
mov r8d, r13d
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x1000c44bc
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x78f01a4
jmp 0x1000c457f
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
xor r9d, r9d
mov qword [rsp + 0x28], rax
and qword [rsp + 0x20], rsi
xor r8d, r8d
mov edx, ebx
call qword [sym.imp.ADVAPI32.dll_CryptSignHashW]
test eax, eax
jne 0x1000c44f8
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x79501a4
jmp 0x1000c457f
mov edx, dword [rsp + 0x30]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
xor r9d, r9d
mov rsi, rax
test rax, rax
jne 0x1000c451e
mov ebx, 0x8007000e
mov edx, 0x79b01a4
mov r8d, ebx
jmp 0x1000c4587
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov edx, ebx
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_CryptSignHashW]
test eax, eax
jne 0x1000c4554
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x7a001a4
jmp 0x1000c457f
lea r9, [rsp + 0x48]
mov r8, r14
mov edx, 1
mov rcx, rbp
call qword [sym.imp.CRYPT32.dll_CryptImportPublicKeyInfo]
test eax, eax
jne 0x1000c4590
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x7ab01a4
mov r8d, eax
xor r9d, r9d
mov ebx, eax
xor ecx, ecx
call fcn.1000b51b8
jmp 0x1000c45e0
mov r9, qword [rsp + 0x48]
mov r8d, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
and dword [rsp + 0x28], 0
and dword [r12], 0
and qword [rsp + 0x20], 0
mov rdx, rsi
call qword [sym.imp.ADVAPI32.dll_CryptVerifySignatureW]
test eax, eax
jne 0x1000c45de
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
xor r9d, r9d
mov edx, 0x7b201a4
mov r8d, eax
xor ecx, ecx
mov dword [r12], eax
call fcn.1000b51b8
xor ebx, ebx
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1000c45f0
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1000c4600
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
test rsi, rsi
je 0x1000c460e
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
test rdi, rdi
je 0x1000c461e
xor edx, edx
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, ebx
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.1000ef870
add rsp, 0xa0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret