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

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xc0
mov r12, r8
mov r13, rdx
xor r14d, r14d
mov ebx, r14d
mov dword [rbp + 0x7f], ebx
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xf], xmm0
mov qword [rbp + 0x1f], r14
mov edi, ecx
mov dword [rbp - 9], ecx
lea esi, [rcx + 0xe4c]
mov dword [rbp - 5], esi
lea r11d, [r14 + 0x6f]
lea r8, [0x180000000]
cmp ecx, esi
jae 0x180007ef1
lea ecx, [r14 + 0x48]
mov r10d, 0xff00
mov r9d, 0x16
movabs rdx, 0x7fffffffffffffff
cmp edi, 0x231
ja 0x1800079eb
je 0x1800079b6
cmp edi, 0x114
ja 0x1800078dc
je 0x18000789e
mov eax, edi
sub eax, 0x2b
je 0x180007ecc
sub eax, 0x98
je 0x180007e94
sub eax, 0x1c
je 0x180007842
sub eax, 3
je 0x180007ecc
cmp eax, 0x14
jne 0x180007ecc
mov word [rbp - 0x19], 0x48
jmp 0x180007ecc
lea rax, [rbp + 0xf]
mov qword [rsp + 0x20], rax
mov r9d, 0xbe
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.1800083e0
test al, al
jne 0x180007ebb
mov eax, 0x1f
nop word [rax + rax]
cmp eax, 0x1f
je 0x180007885
cmp eax, 0x158e
jne 0x18000788d
mov byte [rbp - 0x69], 0
jmp 0x1800082f2
mov dword [r12], 1
add eax, 0x156f
cmp eax, 0x2ade
jbe 0x180007870
jmp 0x180007ebb
mov ebx, 0x105
mov eax, ebx
sub eax, 0x105
je 0x1800078b7
cmp eax, 1
je 0x1800082f2
jmp 0x1800078ca
mov r8, qword [r12]
mov edx, 0x1f
xor ecx, ecx
call fcn.1800064c0
mov dword [rbp - 0x69], eax
inc ebx
cmp ebx, 0x107
jb 0x1800078a3
mov ebx, dword [rbp + 0x7f]
jmp 0x180007ebb
mov eax, edi
sub eax, 0x17a
je 0x180007934
sub eax, 0x1c
je 0x18000792b
sub eax, 3
je 0x180007ecc
cmp eax, 0x14
jne 0x180007ecc
lea r8d, [rax - 0xf]
lea rdx, [0x180064028]
lea rcx, [rbp - 0x19]
call fcn.180047330
mov r8d, 2
lea rdx, [0x180064046]
lea rcx, [rbp - 0x19]
call fcn.180047330
jmp 0x180007ebb
mov dword [r12], r14d
jmp 0x180007ecc
cmp dword [rbp - 0x65], 0
je 0x180007ecc
mov ebx, 0x2b
mov eax, ebx
sub eax, 0x2b
je 0x18000795b
cmp eax, 1
jne 0x1800079a7
mov rcx, qword [rbp + 7]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
jmp 0x1800079a7
movzx r8d, word [r13]
lea rdx, [r13 + 4]
xor r9d, r9d
mov rcx, qword [rbp + 7]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
mov dword [rbp - 0x65], eax
cmp eax, 0
je 0x1800079a7
movzx eax, word [r13]
lea rdx, [r13 + 4]
add rdx, rax
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
mov r9, qword [r12 + 0x28]
mov r8d, 0x100
mov rcx, qword [rbp + 7]
call qword [sym.imp.ADVAPI32.dll_CryptVerifySignatureW]
mov dword [rbp - 0x65], eax
inc ebx
cmp ebx, 0x2d
jb 0x180007943
mov ebx, dword [rbp + 0x7f]
jmp 0x180007ebb
mov eax, 0xae
nop dword [rax + rax]
cmp eax, 0xae
je 0x1800079d4
cmp eax, 0x141
je 0x1800082f2
jmp 0x1800079da
mov ecx, dword [rbp - 0x65]
mov dword [rbp - 0x69], ecx
add eax, 0x93
cmp eax, 0x1d4
jb 0x1800079c0
jmp 0x180007ec7
cmp edi, 0x307
ja 0x180007e44
je 0x180007a59
mov eax, edi
sub eax, 0x24d
je 0x180007a32
sub eax, 3
je 0x180007ecc
sub eax, 0x14
je 0x180007a24
cmp eax, 0xa0
jne 0x180007ecc
mov byte [rbp - 0x69], 1
jmp 0x180007ecc
mov word [rbp - 0x41], cx
mov word [rbp - 0x40], r11w
jmp 0x180007ecc
mov rax, qword [rbp + 0xf]
cmp rax, qword [rbp + 0x17]
je 0x180007ecc
cmp dword [rax + 8], 0
jne 0x180007a4a
inc dword [r12]
add rax, 0x20
cmp rax, qword [rbp + 0x17]
jne 0x180007a40
jmp 0x180007ecc
cmp qword [r12 + 0x10], 0x35
jb 0x180007ecc
mov r15d, r14d
nop dword [rax + rax]
cmp r15d, 7
ja case.0x180007a88.0
mov eax, r15d
mov ecx, dword [r8 + rax*4 + 0x8368]
add rcx, r8
jmp rcx
mov qword [rbp - 0x49], 0xf
mov byte [rbp - 0x61], 0
mov esi, 0xb
cmp qword [r12 + 0x10], rsi
cmovb rsi, qword [r12 + 0x10]
mov r14, r12
cmp qword [r12 + 0x18], 0x10
jb 0x180007ab5
mov r14, qword [r12]
cmp rsi, 0xf
ja 0x180007ae2
mov qword [rbp - 0x51], rsi
mov r8, rsi
mov rdx, r14
lea rcx, [rbp - 0x61]
call fcn.180042e20
mov byte [rbp + rsi - 0x61], 0
or ebx, 1
lea rcx, [0x18007c848]
jmp 0x180007dc5
cmp rsi, rdx
ja 0x18000835c
mov rdi, rsi
or rdi, 0xf
cmp rdi, rdx
jbe 0x180007afc
mov rdi, rdx
jmp 0x180007b04
cmp rdi, 0x16
cmovb rdi, r9
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x180007b3d
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180008350
mov rcx, rax
call fcn.180040b04
test rax, rax
je 0x180008356
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x180007b4e
test rcx, rcx
je 0x180007b4c
call fcn.180040b04
mov rbx, rax
jmp 0x180007b4e
xor ebx, ebx
mov qword [rbp - 0x51], rsi
mov qword [rbp - 0x49], rdi
mov r8, rsi
mov rdx, r14
mov rcx, rbx
call fcn.180042e20
mov byte [rbx + rsi], 0
mov qword [rbp - 0x61], rbx
mov ebx, dword [rbp + 0x7f]
or ebx, 1
lea rcx, [0x18007c848]
jmp 0x180007dc5
mov qword [rbp - 0x49], 0xf
mov byte [rbp - 0x61], 0
mov rax, qword [r12 + 0x10]
cmp rax, 0xb
jb 0x180008362
add rax, 0xfffffffffffffff5
mov esi, 6
cmp rax, rsi
cmovb rsi, rax
mov rax, r12
cmp qword [r12 + 0x18], 0x10
jb 0x180007bb8
mov rax, qword [r12]
lea r14, [rax + 0xb]
cmp rsi, 0xf
ja 0x180007bdf
mov qword [rbp - 0x51], rsi
mov r8, rsi
mov rdx, r14
lea rcx, [rbp - 0x61]
call fcn.180042e20
mov byte [rbp + rsi - 0x61], 0
jmp 0x180007c6c
cmp rsi, rdx
ja 0x18000835c
mov rdi, rsi
or rdi, 0xf
cmp rdi, rdx
jbe 0x180007bf9
mov rdi, rdx
jmp 0x180007c01
cmp rdi, 0x16
cmovb rdi, r9
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x180007c3a
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180008350
mov rcx, rax
call fcn.180040b04
test rax, rax
je 0x180008356
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x180007c4b
test rcx, rcx
je 0x180007c49
call fcn.180040b04
mov rbx, rax
jmp 0x180007c4b
xor ebx, ebx
mov qword [rbp - 0x51], rsi
mov qword [rbp - 0x49], rdi
mov r8, rsi
mov rdx, r14
mov rcx, rbx
call fcn.180042e20
mov byte [rbx + rsi], 0
mov qword [rbp - 0x61], rbx
mov ebx, dword [rbp + 0x7f]
or ebx, 2
mov dword [rbp + 0x7f], ebx
lea rdx, [rbp - 0x61]
lea rcx, [0x18007c868]
call fcn.180005ac0
mov rax, qword [rbp - 0x49]
cmp rax, 0x10
jb 0x180007cbe
lea rdx, [rax + 1]
mov rcx, qword [rbp - 0x61]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180007cb9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180008356
call fcn.180040b40
mov qword [rbp - 0x49], 0xf
mov byte [rbp - 0x61], 0
mov rax, qword [r12 + 0x10]
cmp rax, 0x11
jb 0x180008362
add rax, 0xffffffffffffffef
mov esi, 0x24
cmp rax, rsi
cmovb rsi, rax
mov rax, r12
cmp qword [r12 + 0x18], 0x10
jb 0x180007cf8
mov rax, qword [r12]
lea r14, [rax + 0x11]
cmp rsi, 0xf
ja 0x180007d1f
mov qword [rbp - 0x51], rsi
mov r8, rsi
mov rdx, r14
lea rcx, [rbp - 0x61]
call fcn.180042e20
mov byte [rbp + rsi - 0x61], 0
jmp 0x180007dbb
movabs rax, 0x7fffffffffffffff
cmp rsi, rax
ja 0x18000835c
mov rdi, rsi
or rdi, 0xf
cmp rdi, rax
jbe 0x180007d43
mov rdi, rax
jmp 0x180007d50
cmp rdi, 0x16
mov eax, 0x16
cmovb rdi, rax
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x180007d89
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180008350
mov rcx, rax
call fcn.180040b04
test rax, rax
je 0x180008356
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x180007d9a
test rcx, rcx
je 0x180007d98
call fcn.180040b04
mov rbx, rax
jmp 0x180007d9a
xor ebx, ebx
mov qword [rbp - 0x51], rsi
mov qword [rbp - 0x49], rdi
mov r8, rsi
mov rdx, r14
mov rcx, rbx
call fcn.180042e20
mov byte [rbx + rsi], 0
mov qword [rbp - 0x61], rbx
mov ebx, dword [rbp + 0x7f]
or ebx, 4
lea rcx, [0x18007c828]
mov dword [rbp + 0x7f], ebx
lea rdx, [rbp - 0x61]
call fcn.180005ac0
mov rax, qword [rbp - 0x49]
cmp rax, 0x10
jb 0x180007e0d
lea rdx, [rax + 1]
mov rcx, qword [rbp - 0x61]
cmp rdx, 0x1000
mov rax, rcx
jb 0x180007e08
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180008356
call fcn.180040b40
mov r9d, 0x16
lea r8, [0x180000000]
movabs rdx, 0x7fffffffffffffff
inc r15d
lea eax, [r15 + 0xca]
cmp eax, 0xd2
jb 0x180007a70
mov edi, dword [rbp - 9]
mov esi, dword [rbp - 5]
xor r14d, r14d
jmp 0x180007ebb
mov eax, edi
sub eax, 0x3bb
je 0x1800082f2
sub eax, 3
je 0x180007ecc
sub eax, 0xb7
je 0x180007ecc
cmp eax, 0xb7
jne 0x180007ecc
mov eax, 0xd2
nop dword [rax]
cmp eax, 0xd2
je 0x180007e84
cmp eax, 0x4d1c
je 0x1800082f2
jmp 0x180007e88
mov byte [rbp - 0x69], 0
add eax, 0x4c4a
cmp eax, 0x9894
jbe 0x180007e70
add word [r13], r10w
lea rax, [rbp + 7]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x800c
mov rcx, qword [r12 + 8]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
mov dword [rbp - 0x65], eax
mov r10d, 0xff00
mov r11d, 0x6f
mov ecx, 0x48
add edi, 0xb7
mov dword [rbp - 9], edi
cmp edi, esi
jae 0x180007eee
lea r8, [0x180000000]
jmp 0x1800077d6
mov byte [rbp - 0x69], 1
jmp 0x1800082f2
mov ecx, dword [rbp + 0x67]
lea eax, [rcx - 0x15]
cmp ecx, eax
jbe 0x1800082f2
lea esi, [rcx - 0xe2]
mov r14d, 0x15
mov r8d, 0x7473
lea r15, [0x18007c8a0]
lea ebx, [r14 + 0x4e]
lea edx, [rbx + 0x11]
lea edi, [rbx + 6]
lea r9d, [r14 + 0x50]
mov r10d, 0x6e6e
lea r11d, [r14 + 0x59]
nop dword [rax]
cmp esi, 0x14
ja case.default.0x180007f51
lea rcx, [0x180000000]
mov ecx, dword [rcx + rsi*4 + 0x8388]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov word [rbp - 0x3f], r8w
mov byte [rbp - 0x3d], 0
jmp case.default.0x180007f51
mov rdx, r15
cmp qword [0x18007c8b8], 0x10
cmovae rdx, qword [0x18007c8a0]
mov r8, qword [0x18007c8b0]
mov rcx, r13
call fcn.180030ce0
jmp 0x1800082cb
lea rax, [r12 + 0x20]
cmp qword [rax + 0x18], 0x10
jb 0x180007f97
mov rax, qword [rax]
cmp byte [rax], 0x2f
je case.default.0x180007f51
mov rcx, qword [r13 + 0x10]
mov rdx, qword [r13 + 0x18]
cmp rcx, rdx
jae 0x180007fcd
lea rax, [rcx + 1]
mov qword [r13 + 0x10], rax
mov rax, r13
cmp rdx, 0x10
jb 0x180007fc2
mov rax, qword [r13]
mov word [rax + rcx], 0x2f
jmp 0x1800082e1
mov r9b, 0x2f
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, r13
call fcn.1800025d0
jmp 0x1800082cb
lea rdx, [r12 + 0x20]
cmp qword [r12 + 0x38], 0x10
jb 0x180007ff6
mov rdx, qword [r12 + 0x20]
mov r8, qword [r12 + 0x30]
mov rcx, r13
call fcn.180030ce0
jmp 0x1800082cb
mov rdx, r15
cmp qword [0x18007c8b8], 0x10
cmovae rdx, qword [0x18007c8a0]
mov r8, qword [0x18007c8b0]
mov rcx, r13
call fcn.180030ce0
mov rdx, r12
cmp qword [r12 + 0x18], 0x10
jb 0x180008039
mov rdx, qword [r12]
lea r9, [rbp - 0x41]
mov r8d, 0x49
mov rcx, r13
call fcn.180019b70
jmp 0x1800082cb
mov rcx, qword [r13 + 0x10]
mov rdx, qword [r13 + 0x18]
cmp rcx, rdx
jae 0x18000807d
lea rax, [rcx + 1]
mov qword [r13 + 0x10], rax
mov rax, r13
cmp rdx, 0x10
jb 0x180008072
mov rax, qword [r13]
mov word [rax + rcx], 0x20
jmp 0x1800082e1
mov r9b, 0x20
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, r13
call fcn.1800025d0
jmp 0x1800082cb
mov word [rbp - 0x35], r9w
jmp case.default.0x180007f51
mov word [rbp - 0x37], r10w
jmp case.default.0x180007f51
mov word [rbp - 0x34], bx
mov word [rbp - 0x33], dx
jmp case.default.0x180007f51
mov dword [rbp - 0x24], 0x656741
mov r8d, 2
lea rdx, [0x180061fd4]
lea rcx, [rbp - 0x21]
call fcn.1800474e0
jmp 0x1800082cb
mov eax, dword [str.close]
mov dword [rbp - 1], eax
movzx eax, word [0x1800617c4]
mov word [rbp + 3], ax
mov eax, 0x43
mov word [rbp - 0x39], ax
jmp case.default.0x180007f51
movzx eax, word [0x180064058]
mov word [rbp - 0x26], ax
movzx eax, byte [0x18006405a]
mov byte [rbp - 0x24], al
jmp case.default.0x180007f51
movzx eax, word [0x18006405c]
mov word [rbp - 0x29], ax
movzx eax, byte [0x18006405e]
mov byte [rbp - 0x27], al
mov r8d, 1
lea rdx, [0x180061fd0]
lea rcx, [rbp - 0x29]
call fcn.180047330
jmp 0x1800082cb
mov word [rbp - 0x30], r11w
jmp case.default.0x180007f51
lea r9, [rbp - 0x39]
mov r8d, 0x49
lea rdx, [rbp - 1]
mov rcx, r13
call fcn.180019b70
lea rdx, [r12 + 0x40]
cmp qword [rdx + 0x18], 0x10
jb 0x180008172
mov rdx, qword [rdx]
lea r9, [rbp - 0x29]
mov r8d, 0x49
mov rcx, r13
call fcn.180019b70
jmp 0x1800082cb
mov eax, 0x6f
mov word [rbp - 0x38], ax
jmp case.default.0x180007f51
mov word [rbp - 0x32], di
mov eax, 0x6f
mov word [rbp - 0x31], ax
jmp case.default.0x180007f51
mov word [rbp - 0x20], dx
mov rcx, qword [r13 + 0x10]
mov rdx, qword [r13 + 0x18]
mov rax, rdx
sub rax, rcx
cmp rax, 3
jb 0x1800081fd
lea rax, [rcx + 3]
mov qword [r13 + 0x10], rax
mov rax, r13
cmp rdx, 0x10
jb 0x1800081d6
mov rax, qword [r13]
lea rbx, [rcx + rax]
mov r8d, 3
lea rdx, [0x180064060]
mov rcx, rbx
call fcn.180042e20
mov byte [rbx + 3], 0
mov ebx, 0x63
jmp 0x1800082cb
mov qword [rsp + 0x20], 3
lea r9, [0x180064060]
xor r8d, r8d
lea edx, [r8 + 3]
mov rcx, r13
call fcn.180002730
jmp 0x1800082cb
mov rcx, qword [r13 + 0x10]
mov rdx, qword [r13 + 0x18]
cmp rcx, rdx
jae 0x18000807d
lea rax, [rcx + 1]
mov qword [r13 + 0x10], rax
mov rax, r13
cmp rdx, 0x10
jb 0x180008247
mov rax, qword [r13]
mov word [rcx + rax], 0x20
jmp 0x1800082e1
lea rax, [rbp - 0x19]
mov rdi, 0xffffffffffffffff
nop dword [rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x180008260
mov rcx, qword [r13 + 0x10]
mov rdx, qword [r13 + 0x18]
mov rax, rdx
sub rax, rcx
cmp rdi, rax
ja 0x1800082af
lea rax, [rcx + rdi]
mov qword [r13 + 0x10], rax
mov rax, r13
cmp rdx, 0x10
jb 0x180008291
mov rax, qword [r13]
lea rbx, [rax + rcx]
mov r8, rdi
lea rdx, [rbp - 0x19]
mov rcx, rbx
call fcn.180042e20
mov byte [rbx + rdi], 0
mov ebx, 0x63
jmp 0x1800082c6
mov qword [rsp + 0x20], rdi
lea r9, [rbp - 0x19]
xor r8d, r8d
mov rdx, rdi
mov rcx, r13
call fcn.180002730
mov edi, 0x69
mov r11d, 0x6e
mov r10d, 0x6e6e
lea r9d, [r11 - 9]
mov r8d, 0x7473
mov edx, 0x74
dec esi
sub r14, 1
jne 0x180007f30
mov rcx, qword [rbp + 0xf]
test rcx, rcx
je 0x18000832c
mov rdx, qword [rbp + 0x1f]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
mov rax, rcx
cmp rdx, 0x1000
jb 0x180008327
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000834a
call fcn.180040b40
mov eax, dword [rbp - 0x69]
mov rbx, qword [rsp + 0x108]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180046e04
nop
call fcn.18002f970
nop
call fcn.180046e04
int3
call fcn.18002fe10
int3
call fcn.18002fe70
int3