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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov rdi, qword [rsp + 0x60]
lea eax, [rdx + 0x49b]
mov dword [rsp + 0x50], eax
mov r10, r8
mov ebp, edx
mov r13, rcx
cmp edx, eax
jae 0x180038fa7
movsxd r11, dword [rsp + 0x38]
xor r14d, r14d
mov r15, qword [rsp + 0x68]
mov r8, r11
mov rdx, qword [0x18007dae0]
mov ebx, dword [rsp + 0xb8]
mov qword [rsp + 0x40], r11
cmp ebp, 0x121
ja 0x180038e3f
je 0x180038e17
mov eax, ebp
sub eax, 0x4d
je 0x180038bc9
sub eax, 0x44
je 0x180038b22
sub eax, 0x3f
je 0x180038b05
cmp eax, 0x48
jne 0x180038f76
cmp dword [r9], 1
mov dword [rsp + 0x30], 1
jle 0x180038f76
mov eax, 1
lea r15, [0x180000000]
nop word [rax + rax]
cdqe
mov rcx, qword [r10 + rax*8]
cmp byte [rcx], 0x2d
je 0x18003892a
cmp byte [rcx + 1], 0x2f
je 0x18003892a
mov qword [r13 + 0x18], rcx
jmp 0x180038ade
mov r14d, 0x1f
mov eax, r14d
sub eax, 0x1d
je 0x180038ac5
sub eax, 1
je 0x18003898f
cmp eax, 1
jne 0x180038ad1
movsxd rax, dword [rsp + 0x30]
mov rcx, qword [r10 + rax*8]
movsx ebp, byte [rcx + 1]
lea eax, [rbp - 0x34]
cmp eax, 0x3c
ja case.0x180038979.57
cdqe
movzx eax, byte [r15 + rax + 0x38fdc]
mov ecx, dword [r15 + rax*4 + 0x38fc4]
add rcx, r15
jmp rcx
mov dword [r13 + 0x24], 2
mov ebp, dword [rsp + 0xb8]
mov r10, qword [rsp + 0xc0]
mov r14d, 0x1e
mov r9, qword [rsp + 0xc8]
jmp 0x180038ad1
mov dword [r13 + 0x24], 0x17
jmp 0x180038988
mov eax, 0xbc
nop
cmp eax, 0xbc
je 0x1800389e6
add eax, 0x63
cmp eax, 0x11f
jb 0x1800389c0
mov esi, 0xbd
mov eax, esi
sub eax, 0xbd
je 0x1800389f0
cmp eax, 1
je 0x180038988
jmp 0x180038a2e
mov dword [r13 + 0x28], 1
jmp 0x180038988
mov eax, dword [r9]
lea r8, [rsp + 0x30]
lea r9, [rsp + 0x48]
mov dword [rsp + 0x48], eax
mov rdx, r10
mov ecx, 0x3c
call fcn.18000a710
mov rcx, rax
mov qword [r13 + 0x10], rax
call fcn.1800485b4
mov r10, qword [rsp + 0xc0]
mov r9, qword [rsp + 0xc8]
mov dword [r13 + 0x20], eax
inc esi
cmp esi, 0xbf
jb 0x1800389d6
mov esi, 0x12a
nop dword [rax]
mov eax, esi
sub eax, 0x12a
je 0x180038a54
cmp eax, 0x1e
je 0x180038988
jmp 0x180038a63
xor edx, edx
xor ecx, ecx
mov r8d, 0x10b
call fcn.18003e000
add esi, 0x1e
cmp esi, 0x166
jb 0x180038a40
mov esi, 0x5b
mov eax, esi
sub eax, 0x5b
je 0x180038a93
cmp eax, 0x3d
jne 0x180038aa1
xor edx, edx
xor ecx, ecx
mov r8d, 0x10b
call fcn.18003e000
jmp 0x180038988
mov edx, ebp
lea rcx, str.TSPI_providerInstall
call fcn.18003efe0
add esi, 0x3d
cmp esi, 0xd5
jb 0x180038a73
mov r10, qword [rsp + 0xc0]
mov r9, qword [rsp + 0xc8]
mov ebp, dword [rsp + 0xb8]
jmp 0x180038ad1
mov ebp, pe_nt_image_headers64
mov dword [rsp + 0xb8], ebp
dec r14d
cmp r14d, 0x1c
ja 0x180038930
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
cmp eax, dword [r9]
jl 0x180038910
mov rdx, qword [0x18007dae0]
xor r14d, r14d
mov r15, qword [rsp + 0x68]
jmp 0x180038f76
test r9, r9
je 0x180038b18
lea rax, [r15 + r13]
mov qword [r9], rax
mov rdx, qword [0x18007dae0]
mov rdi, qword [rsp + 0x60]
jmp 0x180038f76
test r13, r13
je 0x180038f76
mov esi, 0x1e
cmp esi, 0x1e
je 0x180038b90
cmp esi, 0xca
je 0x180038b6f
cmp esi, 0x176
je 0x180038b5c
cmp esi, 0x222
jne 0x180038bab
mov rdx, r13
mov ecx, 4
call fcn.18001eae0
jmp 0x180038ba3
mov rdx, qword [r13 + 0x320]
mov ecx, 4
call fcn.18001eae0
jmp 0x180038ba3
test r9, r9
je 0x180038b7b
mov eax, dword [r13 + 0x10]
mov dword [r9], eax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x121
mov rcx, r13
call fcn.180038850
jmp 0x180038ba3
mov r9d, 0x9f
xor r8d, r8d
xor edx, edx
mov rcx, r13
call fcn.18001dbb0
mov r9, qword [rsp + 0xc8]
add esi, 0xac
cmp esi, 0x2ce
jb 0x180038b30
mov rdx, qword [0x18007dae0]
jmp 0x180038f76
mov eax, dword [r10]
test eax, eax
jne 0x180038dde
mov r9, r13
xor r8d, r8d
xor edx, edx
mov ecx, 0xc6
call fcn.180023ea0
cmp rax, 2
jbe 0x180038dcb
mov r12d, 2
lea rsi, [0x180061bb8]
mov r15, r13
mov r14d, 0x46
nop word [rax + rax]
lea eax, [r14 - 0x40]
cmp eax, 8
ja case.0x180038c2e.67
lea rdx, [0x180000000]
mov ecx, dword [rdx + rax*4 + 0x3901c]
add rcx, rdx
jmp rcx
mov rcx, qword [r15 + 8]
lea rax, [rsp + 0x58]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov edx, 0x800c
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
mov dword [rsp + 0x34], eax
jmp case.0x180038c2e.67
test r12, r12
je 0x180038dc0
movzx ebx, byte [r15]
movzx eax, byte [rsi]
sub ebx, eax
jmp case.0x180038c2e.67
mov ecx, dword [rsp + 0x34]
test ecx, ecx
je 0x180038d3b
mov ebp, 0x34
mov eax, ebp
sub eax, 0x34
je 0x180038ca4
cmp eax, 1
jne 0x180038d30
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov ecx, dword [rsp + 0x34]
jmp 0x180038d30
movzx r8d, word [rsi]
lea rdx, [rsi + 4]
mov rcx, qword [rsp + 0x58]
xor r9d, r9d
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
mov dword [rsp + 0x34], eax
mov ecx, eax
test eax, eax
je 0x180038d30
mov ebx, 0x50
nop dword [rax]
mov eax, ebx
sub eax, 0x50
je 0x180038d1d
sub eax, 1
je 0x180038ceb
cmp eax, 1
jne 0x180038d25
movzx eax, word [rsp + 0x3c]
add word [rsi], ax
jmp 0x180038d25
movzx ecx, word [rsi]
lea rax, [rsp + 0x3c]
add rcx, 4
mov qword [rsp + 0x28], rax
add rcx, rsi
xor r9d, r9d
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, qword [rsp + 0x58]
lea edx, [r9 + 2]
call qword [sym.imp.ADVAPI32.dll_CryptSignHashW]
mov ecx, eax
jmp 0x180038d25
mov dword [rsp + 0x3c], 0x100
inc ebx
cmp ebx, 0x53
jb 0x180038cd0
mov dword [rsp + 0x34], ecx
inc ebp
cmp ebp, 0x36
jb 0x180038c80
mov ebx, ecx
jmp case.0x180038c2e.67
cmp byte [r15], 0
je 0x180038d8c
cmp byte [rsi], 0
je 0x180038d8c
test r12, r12
je 0x180038d8c
mov ecx, 0xe0
mov eax, ecx
sub eax, 0xde
je 0x180038d79
sub eax, 1
je 0x180038d71
cmp eax, 1
jne 0x180038d7c
movzx eax, byte [rsi]
cmp byte [r15], al
jne 0x180038d8c
jmp 0x180038d7c
inc r15
inc rsi
jmp 0x180038d7c
dec r12
dec ecx
cmp ecx, 0xdd
ja 0x180038d54
cmp byte [r15], 0
jne 0x180038d45
mov r14d, 0x46
inc r14d
cmp r14d, 0x4c
jb 0x180038c10
test ebx, ebx
jne 0x180038dc4
mov rax, qword [rsp + 0xc0]
mov ebp, dword [rsp + 0xb8]
mov dword [rax], 0x10
mov eax, 0x10
jmp 0x180038dde
xor ebx, ebx
jmp 0x180038da3
mov ebp, dword [rsp + 0xb8]
mov rax, qword [rsp + 0xc0]
mov dword [rax], 0xa
mov eax, 0xa
lea r9, [rsp + 0x60]
mov dword [rsp + 0xb8], eax
mov r8d, 0xf1
lea rcx, [rsp + 0xb8]
mov rdx, r13
call fcn.180035970
mov rdx, qword [0x18007dae0]
mov r15, rax
mov qword [rsp + 0x68], rax
xor r14d, r14d
jmp 0x180038f76
mov r8, qword [0x18007dae8]
test r8, r8
je 0x180038fa7
xor edx, edx
mov ecx, 0xf4
call fcn.18000db70
mov rdx, qword [0x18007dae0]
jmp 0x180038f76
mov eax, ebp
sub eax, 0x153
je 0x180038fa7
sub eax, 0x51
je 0x180038f30
sub eax, 0x83
je 0x180038f71
cmp eax, 0x83
jne 0x180038f76
mov eax, dword [0x18007dadc]
cmp r11d, eax
jge 0x180038f13
dec eax
mov dword [0x18007dadc], eax
test eax, eax
jle 0x180038ed3
cmp r11d, eax
jge 0x180038f13
nop
mov ecx, 0x85
cmp ecx, 0x85
jne 0x180038eb3
mov rax, qword [rdx + r8*8 + 8]
inc r11d
mov qword [rdx + r8*8], rax
inc r8
mov rdx, qword [0x18007dae0]
add ecx, 0x14
cmp ecx, 0x99
jb 0x180038e95
cmp r11d, dword [0x18007dadc]
mov dword [rsp + 0x38], r11d
mov qword [rsp + 0x40], r8
jl 0x180038e90
jmp 0x180038f13
mov esi, 0x10a
cmp esi, 0x10a
je 0x180038efe
cmp esi, 0x191
jne 0x180038f05
mov ecx, 4
call fcn.18001eae0
mov rdx, r14
mov qword [0x18007dae0], rdx
jmp 0x180038f05
mov dword [0x18007dad8], r14d
add esi, 0x87
cmp esi, 0x218
jb 0x180038ed8
mov rdx, qword [0x18007dae8]
mov r8d, 0x9b
xor ecx, ecx
call fcn.180023020
mov rdx, qword [0x18007dae0]
jmp 0x180038f76
cmp dword [0x18007dadc], 0
mov r11d, r14d
mov dword [rsp + 0x38], r14d
mov r8, r14
mov qword [rsp + 0x40], r14
jle 0x180038f76
nop dword [rax]
cmp r13, qword [rdx + r8*8]
je 0x180038f71
inc r11d
inc r8
cmp r11d, dword [0x18007dadc]
mov dword [rsp + 0x38], r11d
mov qword [rsp + 0x40], r8
jl 0x180038f50
jmp 0x180038f76
mov ebp, 0x227
mov r10, qword [rsp + 0xc0]
add ebp, 0x83
mov r9, qword [rsp + 0xc8]
mov r8, qword [rsp + 0x40]
mov r11d, dword [rsp + 0x38]
mov dword [rsp + 0xb8], ebp
cmp ebp, dword [rsp + 0x50]
jb 0x1800388b4
mov rbx, qword [rsp + 0xb0]
mov rax, rdi
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret