Function at 0x1800120e0
Capabilities:
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
mov r11, rsp
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x140
mov eax, dword [r8 + 8]
lea rsi, [r8 + 8]
and eax, 0x1fffffff
movzx r15d, r9b
cmp dword [rcx + 0xa9], 0xf4a23f1f
mov r14, r8
mov rdi, rdx
mov dword [r11 - 0x48], 0x1b4affbc
sete r8b
mov dword [r11 + 0x14], 0x3a7a3b01
mov rdx, r14
mov dword [r11 - 0x40], eax
mov rbp, rcx
call fcn.18001a050
mov eax, dword [rsi]
xor r12d, r12d
and eax, 0x1fffffff
mov dword [rsp + 0x188], r12d
xor edx, edx
mov dword [rsp + 0x134], eax
mov rcx, rdi
call fcn.18002cb90
mov edx, 0x10c
mov qword [rdi], r12
mov rcx, rdi
mov dword [rdi + 8], r12d
call fcn.18002dcf0
mov rcx, rdi
call fcn.18001c540
lea ebx, [rax + 8]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, ebx
lea edx, [r12 + 8]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rdi], rax
test rax, rax
je 0x180012242
mov edx, dword [rdi + 8]
lea ecx, [r12 + 2]
and edx, 0x1fffffff
add rdx, rax
lea rax, [rsp + 0x30]
lea rdx, [rdx + 0x80]
movups xmm0, xmmword [rax]
lea rax, [rax + 0x80]
movups xmmword [rdx - 0x80], xmm0
movups xmm1, xmmword [rax - 0x70]
movups xmmword [rdx - 0x70], xmm1
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rdx - 0x60], xmm0
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rdx - 0x50], xmm1
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rdx - 0x40], xmm0
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rdx - 0x30], xmm1
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rdx - 0x20], xmm0
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rdx - 0x10], xmm1
sub rcx, 1
jne 0x1800121b3
mov rcx, qword [rax]
mov qword [rdx], rcx
mov ecx, dword [rax + 8]
mov dword [rdx + 8], ecx
mov ecx, dword [rdi + 8]
mov ebx, ecx
mov eax, ecx
and ebx, 0x1fffffff
add ebx, 0x10c
xor eax, ebx
mov edx, ebx
and eax, 0x1fffffff
xor eax, ecx
mov rcx, rdi
mov dword [rdi + 8], eax
call fcn.18002dcf0
mov rax, qword [rdi]
mov byte [rbx + rax], r12b
mov eax, dword [rsi]
mov r8d, eax
and r8d, 0x1fffffff
test eax, eax
je 0x180012255
mov rsi, qword [r14]
mov rdx, rsi
mov rcx, rdi
call fcn.180033b10
mov eax, dword [rdi + 8]
mov esi, r12d
and eax, 0x1fffffff
add eax, 8
cmp eax, 0x1fffffff
cmovbe esi, eax
test esi, esi
je 0x1800122c4
cmp qword [rdi], r12
je 0x1800122c4
mov rcx, rdi
call fcn.18001c540
mov edx, esi
mov rcx, rdi
mov ebx, eax
call fcn.18002dcf0
mov rcx, rdi
call fcn.18001c540
mov esi, eax
cmp ebx, eax
je 0x180012318
mov rbx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea r9d, [rsi + 8]
mov r8, rbx
mov rcx, rax
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov qword [rdi], rax
jmp 0x180012318
mov rbx, qword [rdi]
test rbx, rbx
jne 0x1800122fd
mov edx, esi
mov rcx, rdi
call fcn.18002dcf0
mov rcx, rdi
call fcn.18001c540
lea ebx, [rax + 8]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rdi], rax
jmp 0x180012318
test esi, esi
jne 0x180012318
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rdi], r12
mov rdx, qword [rdi]
test rdx, rdx
je 0x180012362
mov ecx, dword [rdi + 8]
mov rax, qword [rsp + 0x188]
and ecx, 0x1fffffff
mov qword [rcx + rdx], rax
mov ecx, dword [rdi + 8]
mov ebx, ecx
mov eax, ecx
and ebx, 0x1fffffff
add ebx, 8
xor eax, ebx
mov edx, ebx
and eax, 0x1fffffff
xor eax, ecx
mov rcx, rdi
mov dword [rdi + 8], eax
call fcn.18002dcf0
mov rax, qword [rdi]
mov byte [rbx + rax], r12b
mov rcx, qword [rbp + 0x10]
lea rax, [rsp + 0x180]
mov edx, r15d
mov dword [rsp + 0x198], 0x100
xor edx, 1
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [rdx*8 + 0x8004]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x1800123a5
mov eax, 0xffffffff
jmp 0x180012456
mov r8d, dword [rdi + 8]
xor r9d, r9d
mov rdx, qword [rdi]
and r8d, 0x1fffffff
mov rcx, qword [rsp + 0x180]
sub r8d, 0x100
add rdx, 0x100
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x1800123eb
mov rcx, qword [rsp + 0x180]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov eax, 0xfffffffd
jmp 0x180012456
mov rax, qword [rdi]
lea rcx, [rsp + 0x198]
mov qword [rsp + 0x28], rcx
xor r9d, r9d
mov rcx, qword [rsp + 0x180]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea edx, [r9 + 1]
call qword [sym.imp.ADVAPI32.dll_CryptSignHashA]
mov rcx, qword [rsp + 0x180]
test eax, eax
jne 0x180012431
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov eax, 0xfffffffc
jmp 0x180012456
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov edx, dword [rsp + 0x198]
mov rcx, qword [rdi]
call fcn.180008a20
mov rcx, rdi
call fcn.1800199d0
mov eax, dword [rdi + 8]
and eax, 0x1fffffff
add rsp, 0x140
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret