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

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov edi, r9d
mov r10, r8
mov r11, rdx
mov r12, rcx
xor r15d, r15d
mov r9d, r15d
mov dword [rsp + 0x34], r15d
mov qword [rbp - 0x70], r15
mov byte [rbp - 0x68], r9b
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x60], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp - 0x50], xmm1
mov qword [rbp - 0x40], r15
mov byte [rbp - 0x38], r9b
movdqa xmmword [rbp - 0x30], xmm0
mov byte [rbp - 0x20], r9b
mov qword [rbp - 0x18], r15
mov qword [rbp - 0x10], r15
mov byte [rbp - 8], r9b
lea esi, [rdi + 0x6ba]
mov dword [rsp + 0x4c], esi
movabs r8, 0x2aaaaaaaaaaaaaab
cmp edi, esi
jae 0x18003b945
lea ebx, [r15 + 1]
mov r13, qword [rsp + 0x50]
mov r14d, dword [rbp + 0x88]
lea rdx, [0x180000000]
cmp edi, 0x122
ja 0x18003b85e
je 0x18003b856
lea eax, [rdi - 0x2a]
cmp eax, 0xed
ja case.0x18003b63c.49
movzx eax, byte [rdx + rax + 0x3bbc0]
mov ecx, dword [rdx + rax*4 + 0x3bba0]
add rcx, rdx
jmp rcx
mov dword [rsp + 0x40], 0xffffffff
xor r9d, r9d
lea r8d, [r9 + 0x48]
lea rdx, [rsp + 0x40]
mov rcx, r11
call fcn.18000d1e0
mov dword [rsp + 0x30], eax
movabs r8, 0x2aaaaaaaaaaaaaab
jmp case.0x18003b63c.49
mov r9, r11
mov r8, qword [r11 + 0x18]
cmp r8, 0x10
jb 0x18003b67d
mov r9, qword [r11]
mov rcx, r11
jb 0x18003b685
mov rcx, qword [r11]
mov rdx, qword [r11 + 0x10]
add rdx, rcx
mov qword [rbp], rdx
mov rcx, r11
cmp r8, 0x10
jb 0x18003b69c
mov rcx, qword [r11]
mov qword [rsp + 0x28], r9
mov dword [rsp + 0x20], r15d
mov r9, r10
lea r8, [rbp - 0x70]
call fcn.180002a30
test al, al
jne 0x18003b6db
mov ecx, 0x46
nop dword [rax + rax]
mov eax, ecx
sub eax, 0x45
je case.0x18003b63c.45
cmp eax, ebx
jne 0x18003b6d4
mov byte [rsp + 0x30], 0
dec ecx
cmp ecx, 0x44
ja 0x18003b6c0
mov rcx, qword [rbp - 0x58]
sub rcx, qword [rbp - 0x60]
movabs r8, 0x2aaaaaaaaaaaaaab
mov rax, r8
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 2
jae case.0x18003b63c.49
mov eax, 7
cmp eax, 7
je 0x18003b722
cmp eax, 0x24c
je case.0x18003b63c.45
jmp 0x18003b727
mov byte [rsp + 0x30], 0
add eax, 0x245
cmp eax, 0x48a
jbe 0x18003b710
jmp case.0x18003b63c.49
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x33]
xor ecx, ecx
call fcn.180027fc0
movabs r8, 0x2aaaaaaaaaaaaaab
jmp case.0x18003b63c.49
xor eax, eax
lock cmpxchg dword [r11 + 0xc], r15d
mov dword [rsp + 0x30], eax
jmp case.0x18003b63c.49
mov rcx, qword [rbp - 0x58]
sub rcx, qword [rbp - 0x60]
mov rax, r8
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, rbx
ja 0x18003b790
lea rax, [rbp - 0x18]
jmp 0x18003b798
mov rax, qword [rbp - 0x60]
add rax, 0x18
cmp byte [rax + 0x10], 0
je 0x18003b7a8
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x58], xmm0
jmp 0x18003b7b1
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x80], 0xf
mov byte [rsp + 0x68], 0
mov rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
cmp rdx, r8
je 0x18003b7e4
sub r8, rdx
lea rcx, [rsp + 0x68]
call fcn.180031070
mov r9d, dword [rsp + 0x34]
or r9d, 3
mov dword [rsp + 0x34], r9d
lea rdx, [rsp + 0x68]
mov rcx, r12
call fcn.180005ac0
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x18003ba31
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003b835
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003bb92
call fcn.180040b40
movabs r8, 0x2aaaaaaaaaaaaaab
jmp case.0x18003b63c.49
movsxd r13, dword [r10]
mov qword [rsp + 0x50], r13
jmp case.0x18003b63c.49
mov r14d, r15d
jmp case.0x18003b63c.49
cmp edi, 0x19d
ja 0x18003ba40
je 0x18003ba0e
mov eax, edi
sub eax, 0x153
je 0x18003b945
sub eax, 0x30
je 0x18003b8a2
cmp eax, 0xf
jne case.0x18003b63c.49
cmp qword [r12 + 0x10], 0
setne byte [rsp + 0x30]
mov ebx, dword [rsp + 0x30]
mov r15d, ebx
jmp 0x18003b94a
mov eax, dword [r11]
cmp eax, 0xfffffffd
je 0x18003b924
cmp eax, 0xfffffffe
je 0x18003b8e2
cmp eax, 0xffffffff
jne 0x18003b9e1
mov ecx, 0xf4
nop dword [rax]
mov eax, ecx
sub eax, 0xf4
je 0x18003b8d0
cmp eax, 0x7d
je 0x18003b89a
jmp 0x18003b8d7
mov qword [0x18007d740], r13
add ecx, 0x7d
cmp ecx, 0x1ee
jb 0x18003b8c0
cmp r13, qword [0x18007d728]
jb 0x18003b94a
lea rax, [r13 - 1]
test r13, rax
jne 0x18003b94a
mov ecx, 0xf8
nop dword [rax]
mov eax, ecx
sub eax, 0xf8
je 0x18003b90f
cmp eax, ebx
je case.0x18003b63c.45
jmp 0x18003b91a
mov qword [0x18007d730], r13
mov dword [rsp + 0x30], ebx
inc ecx
cmp ecx, 0xfa
jb 0x18003b900
mov ecx, 0x101
nop dword [rax]
mov eax, ecx
sub eax, 0x101
je 0x18003b9c8
cmp eax, ebx
jne 0x18003b9d3
mov r15d, dword [rsp + 0x30]
mov r8, qword [rbp - 0x60]
test r8, r8
je 0x18003b9aa
mov rcx, qword [rbp - 0x50]
sub rcx, r8
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 3
mov rax, r8
cmp rdx, 0x1000
jb 0x18003b9a2
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003bb98
mov rcx, r8
call fcn.180040b40
mov eax, r15d
mov rbx, qword [rsp + 0x170]
add rsp, 0x130
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov qword [0x18007d738], r13
mov dword [rsp + 0x30], ebx
inc ecx
cmp ecx, 0x103
jb 0x18003b930
mov eax, 0x27
cmp eax, 0x27
je 0x18003b9f8
cmp eax, 0x1248
je 0x18003b945
jmp 0x18003b9fd
mov dword [rsp + 0x30], r15d
add eax, 0x1221
cmp eax, 0x2442
jbe 0x18003b9e6
jmp case.0x18003b63c.49
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, qword [r11 + 0x20]
mov edx, 0x8009
mov rcx, qword [r11 + 8]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
mov r14d, eax
movabs r8, 0x2aaaaaaaaaaaaaab
jmp case.0x18003b63c.49
mov eax, edi
sub eax, 0x218
je 0x18003ba57
cmp eax, 0x7b
je case.0x18003b63c.45
jmp case.0x18003b63c.49
test r14d, r14d
je 0x18003bb67
mov esi, 0x116
mov r13, qword [rbp + 0x80]
nop dword [rax]
mov eax, esi
sub eax, 0x116
je 0x18003bb28
sub eax, ebx
je 0x18003ba99
cmp eax, ebx
jne 0x18003bb40
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
jmp 0x18003bb40
xor r9d, r9d
lea r8, [rbp + 8]
lea edx, [r9 + 5]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptSetHashParam]
mov r14d, eax
test eax, eax
je 0x18003bb40
mov edi, 0xd1
nop
cmp edi, 0xd1
je 0x18003bb00
cmp edi, 0x152
jne 0x18003bb18
test r14d, r14d
je 0x18003bb18
mov dword [rsp + 0x48], 0x20
mov dword [rsp + 0x20], r15d
lea r9, [rsp + 0x48]
mov r8, qword [rbp + 0x90]
mov edx, 2
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
jmp 0x18003bb15
xor r9d, r9d
mov r8d, dword [r12]
mov rdx, r13
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
mov r14d, eax
add edi, 0x81
cmp edi, 0x1d3
jb 0x18003bac0
jmp 0x18003bb40
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 8], xmm0
movups xmmword [rbp + 0x18], xmm0
mov qword [rbp + 0x28], rax
mov dword [rbp + 8], 0x800c
inc esi
cmp esi, 0x119
jb 0x18003ba70
mov r13, qword [rsp + 0x50]
mov edi, dword [rbp + 0x88]
mov esi, dword [rsp + 0x4c]
movabs r8, 0x2aaaaaaaaaaaaaab
mov dword [rsp + 0x30], r14d
add edi, 0x7b
mov dword [rbp + 0x88], edi
cmp edi, esi
jae 0x18003b945
mov r10, qword [rbp + 0x80]
mov r11, qword [rbp + 0x78]
mov r9d, dword [rsp + 0x34]
jmp 0x18003b603
call fcn.180046e04
nop
call fcn.180046e04
int3