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

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x108]
sub rsp, 0x208
mov r13, r9
mov ebx, r8d
mov r15, rdx
mov r12, rcx
xor r8d, r8d
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x78], 7
mov word [rsp + 0x60], r8w
mov r11d, r8d
mov qword [rbp - 0x48], r8
mov edx, 7
mov qword [rbp - 0x40], rdx
mov word [rbp - 0x58], r8w
mov r14d, ebx
mov dword [rsp + 0x40], ebx
lea eax, [rbx + 0x738]
mov edi, dword [rbp + 0x160]
mov r10, qword [rsp + 0x58]
mov qword [rsp + 0x30], r10
cmp ebx, eax
jae 0x18003af5a
mov ebx, dword [rbp + 0x160]
mov ecx, dword [rbp + 0x160]
nop dword [rax + rax]
cmp r14d, 0x183
ja 0x18003ae44
je 0x18003ad3a
mov eax, r14d
sub eax, 0x33
je 0x18003ac75
sub eax, 0x3e
je 0x18003aa47
sub eax, 0x6a
je 0x18003ad2f
sub eax, 0x3e
je 0x18003aa0b
cmp eax, 5
jne 0x18003af23
mov r9, r12
lea r8d, [rax - 4]
mov edx, dword [r13 + 0x84]
mov rcx, qword [r13 + 8]
call qword [sym.imp.ADVAPI32.dll_CryptGenKey]
mov dword [rsp + 0x38], eax
cmp eax, 0
je 0x18003aa34
mov esi, 0x74
mov r14d, 0x800
mov eax, esi
sub eax, 0x73
je 0x18003a9c5
cmp eax, 1
jne 0x18003a9ec
mov word [r15], r14w
jmp 0x18003a9ec
lea rax, [r15 + 4]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8d, [r9 + 1]
mov rdx, qword [r13 + 0x10]
mov rcx, qword [r12]
call qword [sym.imp.ADVAPI32.dll_CryptExportKey]
mov dword [rsp + 0x38], eax
dec esi
cmp esi, 0x72
ja 0x18003a9b3
mov r14d, dword [rsp + 0x40]
mov r10, qword [rsp + 0x30]
mov ecx, dword [rbp + 0x160]
xor r8d, r8d
jmp 0x18003af23
mov eax, dword [r15]
mov dword [rsp + 0x40], eax
lea r9, [rsp + 0x40]
lea r8, [rbp - 0x38]
mov edx, 0x4e
mov rcx, r13
call fcn.180028930
test r12, r12
je 0x18003aa34
add rax, r13
mov qword [r12], rax
mov r10, qword [rsp + 0x30]
mov ecx, dword [rbp + 0x160]
xor r8d, r8d
jmp 0x18003af23
cmp dword [r15], 0
jne 0x18003af23
mov r9, r13
xor r8d, r8d
xor edx, edx
mov ecx, 0xc6
call fcn.180023ea0
cmp rax, 2
jbe 0x18003ac5b
mov r12d, 2
lea rsi, [0x180061bb8]
mov r15d, 0x46
lea eax, [r15 - 0x40]
cmp eax, 8
ja case.0x18003aa9e.67
lea rdx, [0x180000000]
mov ecx, dword [rdx + rax*4 + 0x3b534]
add rcx, rdx
jmp rcx
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x800c
mov rcx, qword [r13 + 8]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
mov dword [rsp + 0x50], eax
jmp case.0x18003aa9e.67
test r12, r12
je 0x18003ac47
movzx ebx, byte [r13]
movzx eax, byte [rsi]
sub ebx, eax
jmp case.0x18003aa9e.67
mov ecx, dword [rsp + 0x50]
test ecx, ecx
je 0x18003abae
mov r14d, 0x34
mov eax, r14d
sub eax, 0x34
je 0x18003ab17
cmp eax, 1
jne 0x18003aba1
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov ecx, dword [rsp + 0x50]
jmp 0x18003aba1
movzx r8d, word [rsi]
lea rdx, [rsi + 4]
xor r9d, r9d
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
mov ecx, eax
mov dword [rsp + 0x50], eax
test eax, eax
je 0x18003aba1
mov ebx, 0x50
nop dword [rax]
mov eax, ebx
sub eax, 0x50
je 0x18003ab8d
sub eax, 1
je 0x18003ab5b
cmp eax, 1
jne 0x18003ab96
movzx eax, word [rsp + 0x48]
add word [rsi], ax
jmp 0x18003ab96
movzx ecx, word [rsi]
add rcx, 4
add rcx, rsi
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 2]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_CryptSignHashW]
mov ecx, eax
jmp 0x18003ab96
mov eax, 0x100
mov dword [rsp + 0x48], eax
inc ebx
cmp ebx, 0x53
jb 0x18003ab40
mov dword [rsp + 0x50], ecx
inc r14d
cmp r14d, 0x36
jb 0x18003aaf2
mov ebx, ecx
jmp case.0x18003aa9e.67
cmp byte [r13], 0
je 0x18003ac0a
nop dword [rax]
cmp byte [rsi], 0
je 0x18003ac0a
test r12, r12
je 0x18003ac0a
mov ecx, 0xe0
nop
mov eax, ecx
sub eax, 0xde
je 0x18003abf6
sub eax, 1
je 0x18003abee
cmp eax, 1
jne 0x18003abf9
movzx eax, byte [rsi]
cmp byte [r13], al
jne 0x18003ac0a
jmp 0x18003abf9
inc r13
inc rsi
jmp 0x18003abf9
dec r12
dec ecx
cmp ecx, 0xdd
ja 0x18003abd0
cmp byte [r13], 0
jne 0x18003abc0
mov r15d, 0x46
inc r15d
cmp r15d, 0x4c
jb 0x18003aa80
test ebx, ebx
jne 0x18003ac4f
xor r8d, r8d
mov r15, qword [rbp + 0x158]
mov dword [r15], 0x10
mov r14d, dword [rsp + 0x40]
mov r10, qword [rsp + 0x30]
mov ecx, dword [rbp + 0x160]
jmp 0x18003af23
xor r8d, r8d
mov ebx, r8d
jmp 0x18003ac24
mov r14d, dword [rsp + 0x40]
mov r15, qword [rbp + 0x158]
mov dword [r15], 0xa
mov r10, qword [rsp + 0x30]
mov ecx, dword [rbp + 0x160]
xor r8d, r8d
jmp 0x18003af23
mov r14d, 0x104
nop dword [rax + rax]
mov esi, 0xd1
cmp esi, 0xd1
je 0x18003aca8
cmp esi, 0xa277
jne 0x18003ad0d
cmp dword [rbp - 0x80], 0x7a
jne 0x18003ad24
add r14d, 0x104
jmp 0x18003ad0d
mov edx, r14d
cmp rdx, qword [rsp + 0x70]
ja 0x18003accf
mov qword [rsp + 0x70], rdx
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rax, qword [rsp + 0x60]
mov word [rax + rdx*2], r8w
jmp 0x18003ace1
xor r8d, r8d
sub rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x60]
call fcn.180030ef0
lea rdx, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rdx, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x70]
mov rcx, qword [r13]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x80], eax
xor r8d, r8d
add esi, 0xa1a6
cmp esi, 0x1434c
jbe 0x18003ac85
jmp 0x18003ac80
mov r10, qword [rsp + 0x30]
mov ecx, dword [rbp + 0x160]
mov r14d, 0xdb
jmp 0x18003af23
lea rsi, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rsi, qword [rsp + 0x60]
cmp qword [rsp + 0x70], 0
je 0x18003ae2a
mov r12d, 0x100
mov r8d, r12d
xor edx, edx
lea rcx, [rbp]
call fcn.180043230
lea rcx, [0x180063810]
movzx eax, word [rcx]
cmp ax, r12w
jae 0x18003ade5
movzx eax, al
mov byte [rbp + rax], 1
add rcx, 2
lea rax, [0x180063814]
cmp rcx, rax
jne 0x18003ad72
mov rcx, qword [rsp + 0x70]
dec rcx
mov rax, 0xffffffffffffffff
cmp rcx, rax
cmovb rax, rcx
lea r10, [rsi + rax*2]
nop dword [rax]
movzx eax, word [r10]
cmp ax, r12w
jae 0x18003adc1
cmp byte [rbp + rax], 0
jne 0x18003adcc
cmp r10, rsi
je 0x18003ae2a
sub r10, 2
jmp 0x18003adb0
sub r10, rsi
sar r10, 1
mov qword [rsp + 0x30], r10
mov ecx, dword [rbp + 0x160]
xor r8d, r8d
jmp 0x18003af23
mov rcx, qword [rsp + 0x70]
dec rcx
mov rax, 0xffffffffffffffff
cmp rcx, rax
cmovb rax, rcx
lea r10, [rsi + rax*2]
nop
mov ecx, 2
lea rax, [0x180063810]
movzx edx, word [r10]
cmp word [rax], dx
je 0x18003adcc
add rax, 2
sub rcx, 1
jne 0x18003ae10
cmp r10, rsi
je 0x18003ae2a
sub r10, 2
jmp 0x18003ae00
mov r10, 0xffffffffffffffff
mov qword [rsp + 0x30], r10
mov ecx, dword [rbp + 0x160]
xor r8d, r8d
jmp 0x18003af23
mov eax, r14d
sub eax, 0x1c1
je 0x18003af20
sub eax, 5
je 0x18003af1a
sub eax, 0x65
je 0x18003af0e
sub eax, 0x3e
je 0x18003ae72
cmp eax, 5
jne 0x18003af23
mov r9, qword [rbp - 0x58]
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x18003aeb6
lea rdx, [rdx*2 + 2]
mov rax, r9
cmp rdx, 0x1000
jb 0x18003aead
add rdx, 0x27
mov r9, qword [r9 - 8]
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003b51a
mov rcx, r9
call fcn.180040b40
nop
mov rdx, qword [rsp + 0x78]
cmp rdx, 8
jb 0x18003aef8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003aef3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003b514
call fcn.180040b40
mov eax, edi
add rsp, 0x208
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp r10, 0xffffffffffffffff
je 0x18003ae72
jmp 0x18003af23
mov edi, dword [rsp + 0x38]
jmp 0x18003af23
mov edi, dword [rbp - 0x38]
add r14d, 0xa8
mov dword [rsp + 0x40], r14d
lea eax, [rcx + 0x738]
cmp r14d, eax
mov r13, qword [rbp + 0x168]
mov r12, qword [rbp + 0x150]
jb 0x18003a940
mov r11, qword [rbp - 0x48]
mov rdx, qword [rbp - 0x40]
mov ebx, dword [rbp + 0x160]
mov r15d, ebx
imul eax, ebx, 0x16b
mov dword [rbp - 0x80], eax
cmp ebx, eax
ja 0x18003ae72
mov ecx, 0x22
mov esi, 0x3a22
mov r8d, 0x6222
mov r9, qword [rbp - 0x58]
mov qword [rsp + 0x38], r9
mov r14, qword [rsp + 0x58]
mov eax, 0x2c
cmp r15d, 0x1a7f
ja 0x18003b355
je 0x18003b2b8
cmp r15d, 0x33
je 0x18003b251
cmp r15d, 0x11a
je 0x18003b247
cmp r15d, 0x6c6
je 0x18003b224
cmp r15d, 0xd59
je 0x18003b15b
cmp r15d, 0x13ec
jne 0x18003b4e9
lea rdx, [r10 + 1]
xor eax, eax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], 7
mov word [rbp - 0x78], ax
mov rcx, qword [rsp + 0x70]
cmp rcx, rdx
jb 0x18003b526
sub rcx, rdx
mov r8, qword [rsp + 0x58]
cmp rcx, r8
cmovb r8, rcx
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rax, qword [rsp + 0x60]
lea rdx, [rax + rdx*2]
lea rcx, [rbp - 0x78]
call fcn.1800311d0
nop
lea r13, [rbp - 0x78]
mov rsi, qword [rbp - 0x78]
mov rbx, qword [rbp - 0x60]
cmp rbx, 8
cmovae r13, rsi
mov r12, qword [rbp - 0x68]
cmp r12, 8
jae 0x18003b061
movups xmm0, xmmword [r13]
mov qword [rbp - 0x18], 7
jmp 0x18003b0a9
mov rbx, r12
or rbx, 7
movabs rax, 0x7ffffffffffffffe
cmp rbx, rax
cmova rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x30]
call fcn.180030c70
mov qword [rbp - 0x30], rax
lea r8, [r12*2 + 2]
mov rdx, r13
mov rcx, rax
call fcn.180042e20
mov qword [rbp - 0x18], rbx
movups xmm0, xmmword [rbp - 0x30]
mov rbx, qword [rbp - 0x60]
movups xmmword [rbp - 0x10], xmm0
mov qword [rbp - 0x20], r12
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x18003b0f2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003b0ed
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003b520
call fcn.180040b40
movups xmm0, xmmword [rbp - 0x10]
movups xmmword [rbp - 0x58], xmm0
movups xmm0, xmmword [rbp - 0x20]
movups xmmword [rbp - 0x48], xmm0
cmp rbx, 8
jb 0x18003b13d
lea rdx, [rbx*2 + 2]
mov rax, rsi
cmp rdx, 0x1000
jb 0x18003b135
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003b52c
mov rcx, rsi
call fcn.180040b40
mov r9, qword [rbp - 0x58]
mov qword [rsp + 0x38], r9
mov ebx, dword [rbp + 0x160]
mov r10, qword [rsp + 0x30]
mov esi, 0x3a22
jmp 0x18003b4de
xor eax, eax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], 7
mov word [rbp - 0x78], ax
lea r8, [r10 + 1]
cmp qword [rsp + 0x70], r8
cmovb r8, qword [rsp + 0x70]
lea rdx, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rdx, qword [rsp + 0x60]
lea rcx, [rbp - 0x78]
call fcn.1800311d0
lea rbx, [r13 + 8]
lea rax, [rbp - 0x78]
cmp rbx, rax
je 0x18003b1cf
mov rcx, rbx
call fcn.18002fae0
movups xmm0, xmmword [rbp - 0x78]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rbp - 0x68]
movups xmmword [rbx + 0x10], xmm1
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x30]
mov ebx, dword [rbp + 0x160]
jmp 0x18003b4de
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x18003b1ba
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003b20a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003b52c
call fcn.180040b40
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x30]
mov ebx, dword [rbp + 0x160]
jmp 0x18003b4de
cmp r14, 0xffffffffffffffff
je 0x18003b4e9
mov r8, r14
sub r8, r10
dec r8
mov qword [rsp + 0x58], r8
mov r8d, 0x6222
jmp 0x18003b4e9
mov word [rsp + 0x48], ax
jmp 0x18003b4e9
mov qword [rsp + 0x58], 0xffffffffffffffff
lea rdx, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x18003b2ac
dec rcx
mov rax, 0xffffffffffffffff
cmp rcx, rax
cmovb rax, rcx
lea r14, [rdx + rax*2]
cmp word [r14], 0x2e
je 0x18003b2a1
cmp r14, rdx
je 0x18003b2ac
sub r14, 2
cmp word [r14], 0x2e
jne 0x18003b291
sub r14, rdx
sar r14, 1
jmp 0x18003b4e4
mov r14, 0xffffffffffffffff
jmp 0x18003b4e4
lea rcx, [r13 + 0x28]
mov rdx, qword [rcx + 0x10]
cmp r11, rdx
ja 0x18003b2dd
mov qword [rcx + 0x10], r11
cmp qword [rcx + 0x18], 0x10
jb 0x18003b2d3
mov rcx, qword [rcx]
mov byte [rcx + r11], 0
jmp 0x18003b4e4
mov rsi, r11
sub rsi, rdx
mov r8, qword [rcx + 0x18]
mov rax, r8
sub rax, rdx
cmp rsi, rax
ja 0x18003b32e
mov qword [rcx + 0x10], r11
cmp r8, 0x10
jb 0x18003b2ff
mov rcx, qword [rcx]
lea rbx, [rcx + rdx]
mov r8, rsi
xor edx, edx
mov rcx, rbx
call fcn.180043230
mov byte [rsi + rbx], 0
mov r9, qword [rsp + 0x38]
mov ebx, dword [rbp + 0x160]
mov r10, qword [rsp + 0x30]
mov esi, 0x3a22
jmp 0x18003b4de
mov byte [rsp + 0x20], 0
mov r9, rsi
xor r8d, r8d
mov rdx, rsi
call fcn.1800028b0
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x30]
mov esi, 0x3a22
jmp 0x18003b4de
cmp r15d, 0x2112
je 0x18003b498
cmp r15d, 0x2574
je 0x18003b48e
cmp r15d, 0x49ce
je 0x18003b487
cmp r15d, 0x6e28
je 0x18003b3e3
cmp r15d, 0x9282
jne 0x18003b4e9
mov rcx, qword [r12 + 0x10]
mov rdx, qword [r12 + 0x18]
cmp rcx, rdx
jae 0x18003b3c2
lea rax, [rcx + 1]
mov qword [r12 + 0x10], rax
mov rax, r12
cmp rdx, 0x10
jb 0x18003b3b7
mov rax, qword [r12]
mov word [rax + rcx], 0x22
jmp 0x18003b4e4
mov r9b, 0x22
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, r12
call fcn.1800025d0
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x30]
jmp 0x18003b4de
lea rax, [rsp + 0x48]
mov rsi, 0xffffffffffffffff
nop
inc rsi
cmp byte [rax + rsi], 0
jne 0x18003b3f0
mov rcx, qword [r12 + 0x10]
mov rdx, qword [r12 + 0x18]
mov rax, rdx
sub rax, rcx
cmp rsi, rax
ja 0x18003b444
lea rax, [rcx + rsi]
mov qword [r12 + 0x10], rax
mov rax, r12
cmp rdx, 0x10
jb 0x18003b424
mov rax, qword [r12]
lea rbx, [rax + rcx]
mov r8, rsi
lea rdx, [rsp + 0x48]
mov rcx, rbx
call fcn.180042e20
mov byte [rsi + rbx], 0
mov ebx, dword [rbp + 0x160]
jmp 0x18003b45c
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x48]
xor r8d, r8d
mov rdx, rsi
mov rcx, r12
call fcn.180002730
mov rdx, r13
cmp qword [r13 + 0x18], 0x10
jb 0x18003b46a
mov rdx, qword [r13]
mov r8, qword [r13 + 0x10]
mov rcx, r12
call fcn.180030ce0
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x30]
mov esi, 0x3a22
jmp 0x18003b4de
mov word [rsp + 0x4d], cx
jmp 0x18003b4e9
mov dword [rsp + 0x49], 0x3a226222
jmp 0x18003b4e9
xor eax, eax
mov ecx, eax
test r11, r11
je 0x18003b4e4
nop dword [rax]
nop word [rax + rax]
lea rax, [rbp - 0x58]
cmp rdx, 8
cmovae rax, r9
lea rdx, [r13 + 0x28]
cmp qword [r13 + 0x40], 0x10
jb 0x18003b4cb
mov rdx, qword [r13 + 0x28]
movzx eax, byte [rax + rcx*2]
mov byte [rdx + rcx], al
inc rcx
cmp rcx, r11
mov rdx, qword [rbp - 0x40]
jb 0x18003b4b0
mov r8d, 0x6222
mov ecx, 0x22
imul eax, ebx, 0x21
add r15d, eax
cmp r15d, dword [rbp - 0x80]
ja 0x18003ae76
mov r13, qword [rbp + 0x168]
mov r12, qword [rbp + 0x150]
mov r11, qword [rbp - 0x48]
mov rdx, qword [rbp - 0x40]
jmp 0x18003af8c
call fcn.180046e04
nop
call fcn.180046e04
nop
call fcn.180046e04
nop
call fcn.18002fe70
int3
call fcn.180046e04
int3