Function at 0x1400cc988
Capabilities:
Hash data via bcrypt

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f80]
mov eax, 0x2080
call fcn.140001a50
sub rsp, rax
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x1f70], rax
mov rdi, rdx
mov rdx, qword [rdx + 0x28]
mov rsi, r9
mov rax, rdx
mov r13, rcx
sub rax, r8
cmp rax, qword [rdi + 0x30]
jb 0x1400ccfaa
sub rdx, rax
mov qword [rdi + 0x30], rax
cmp rdx, 2
jb 0x1400ccfaa
mov r15d, 1
mov rcx, rdi
call fcn.1400d61f4
test rax, rax
je 0x1400ccfaa
mov rdx, qword [rdi + 0x30]
mov rcx, qword [rdi + 0x28]
sub rcx, rdx
je 0x1400ccfaa
cmp rax, rcx
jg 0x1400ccfaa
lea r12, [rdx + rax]
mov rcx, rdi
mov qword [rsp + 0x40], r12
call fcn.1400d61f4
mov r14, qword [rdi + 0x28]
sub r14, qword [rdi + 0x30]
mov rbx, rax
cmp dword [rsi + 4], r15d
jne 0x1400cca9e
cmp rax, r15
jne 0x1400cca9e
mov rcx, rdi
mov byte [rsi + 0x1e], r15b
call fcn.1400d61f4
mov r15, rax
test al, 1
je 0x1400cca72
mov rcx, rdi
call fcn.1400d61f4
test rax, rax
je 0x1400cca72
mov rdx, qword [r13 + 0xb3a8]
add rdx, rax
mov qword [rsi + 0x20], rdx
test r15b, 2
je 0x1400cca98
mov rcx, rdi
call fcn.1400d61f4
mov r15d, 1
test rax, rax
je 0x1400cca9e
add rax, qword [r13 + 0xb3a8]
mov qword [rsi + 0x30], rax
jmp 0x1400cca9e
mov r15d, 1
mov eax, dword [rsi + 4]
sub eax, 2
cmp eax, r15d
ja 0x1400ccf95
dec rbx
je 0x1400cce13
dec rbx
je 0x1400ccde1
dec rbx
je 0x1400cccdf
dec rbx
je 0x1400ccc82
dec rbx
je 0x1400ccbeb
dec rbx
je 0x1400ccb0c
dec rbx
jne 0x1400ccf95
lea rbx, [rsi + 0x1020]
mov qword [rbx + 8], r14
cmp r14, qword [rbx + 0x10]
jbe 0x1400ccb01
mov rcx, rbx
call fcn.1400cad10
mov rdx, qword [rbx]
mov r8, r14
jmp 0x1400cce06
mov rcx, rdi
call fcn.1400d61f4
lea r12, [rsi + 0x2210]
mov ecx, eax
mov r14, rax
shr ecx, 2
and cl, r15b
mov byte [rsi + 0x210e], cl
mov ecx, eax
shr ecx, 3
and cl, r15b
lea r15, [rsi + 0x2110]
mov byte [rsi + 0x210f], cl
mov byte [r15], 0
mov byte [r12], 0
test al, 1
je 0x1400ccb77
mov rcx, rdi
call fcn.1400d61f4
mov ecx, 0xff
mov rdx, r15
cmp rax, rcx
mov ebx, ecx
mov rcx, rdi
cmovb rbx, rax
mov r8, rbx
call fcn.1400d6244
mov byte [rbx + r15], 0
test r14b, 2
je 0x1400ccba6
mov rcx, rdi
call fcn.1400d61f4
mov ecx, 0xff
mov rdx, r12
cmp rax, rcx
mov ebx, ecx
mov rcx, rdi
cmovb rbx, rax
mov r8, rbx
call fcn.1400d6244
mov byte [rbx + r12], 0
cmp byte [rsi + 0x210e], 0
je 0x1400ccbbd
mov rcx, rdi
call fcn.1400d61f4
mov dword [rsi + 0x2310], eax
cmp byte [rsi + 0x210f], 0
je 0x1400ccbd4
mov rcx, rdi
call fcn.1400d61f4
mov dword [rsi + 0x2314], eax
mov r12, qword [rsp + 0x40]
mov r15d, 1
mov byte [rsi + 0x210d], r15b
jmp 0x1400ccf95
mov rcx, rdi
call fcn.1400d61f4
mov rcx, rdi
mov dword [rsi + 0x1108], eax
call fcn.1400d61f4
mov rcx, rdi
and al, r15b
mov byte [rsi + 0x210c], al
call fcn.1400d61f4
mov byte [rsp + 0x70], 0
mov rbx, rax
cmp rax, 0x1fff
jae 0x1400ccc37
lea rdx, [rsp + 0x70]
mov r8, rax
mov rcx, rdi
call fcn.1400d6244
mov byte [rsp + rbx + 0x70], 0
xor ecx, ecx
mov dl, byte [rsp + rcx + 0x70]
test dl, dl
je 0x1400ccc61
cmp dl, 0x2f
movzx eax, dl
mov r8d, 0x5c
cmove eax, r8d
mov byte [rsp + rcx + 0x70], al
add rcx, r15
cmp rcx, 0x1fff
jb 0x1400ccc39
mov byte [rsp + rcx + 0x70], 0
lea rdx, [rsi + 0x110c]
lea rcx, [rsp + 0x70]
mov r8d, 0x800
call fcn.1400d828c
jmp 0x1400ccf95
cmp r14, r15
jl 0x1400ccf95
mov rcx, rdi
call fcn.1400d61f4
mov rcx, rdi
call fcn.1400d61f4
test eax, eax
je 0x1400ccf95
lea r8, [0x1401322e0]
lea rcx, [rsp + 0x48]
mov r9d, eax
mov edx, SafeArrayGetElement
mov byte [rsi + 0x10f3], r15b
call fcn.1400cae10
lea rcx, [r13 + 0x6940]
lea rdx, [rsp + 0x48]
mov r8d, 0x800
call fcn.1400d767c
jmp 0x1400ccf95
cmp r14, 9
jl 0x1400ccf95
mov rcx, rdi
call fcn.1400d61f4
mov bl, al
mov r14, rax
and bl, r15b
test al, 2
je 0x1400ccd41
mov rcx, rdi
call fcn.1400d61ac
mov r11d, eax
test bl, bl
je 0x1400ccd29
movabs rax, 0x2b6109100
add r11, rax
imul rax, r11, 0x989680
mov qword [rsi + 0x1040], rax
jmp 0x1400ccd41
mov rcx, rdi
call fcn.1400d61ac
mov ecx, eax
shl rcx, 0x20
add rcx, r11
mov qword [rsi + 0x1040], rcx
test r14b, 4
je 0x1400ccd8b
mov rcx, rdi
call fcn.1400d61ac
mov r11d, eax
test bl, bl
je 0x1400ccd73
movabs rax, 0x2b6109100
add r11, rax
imul rax, r11, 0x989680
mov qword [rsi + 0x1048], rax
jmp 0x1400ccd8b
mov rcx, rdi
call fcn.1400d61ac
mov ecx, eax
shl rcx, 0x20
add rcx, r11
mov qword [rsi + 0x1048], rcx
test r14b, 8
je 0x1400ccf95
mov rcx, rdi
call fcn.1400d61ac
mov r11d, eax
test bl, bl
je 0x1400ccdc4
movabs rax, 0x2b6109100
add r11, rax
imul rax, r11, 0x989680
mov qword [rsi + 0x1050], rax
jmp 0x1400ccf95
mov rcx, rdi
call fcn.1400d61ac
mov ecx, eax
shl rcx, 0x20
add rcx, r11
mov qword [rsi + 0x1050], rcx
jmp 0x1400ccf95
mov rcx, rdi
call fcn.1400d61f4
test eax, eax
jne 0x1400ccf95
mov dword [rsi + 0x1070], 2
lea rdx, [rsi + 0x1074]
lea r8d, [rax + 0x20]
mov rcx, rdi
call fcn.1400d6244
jmp 0x1400ccf95
mov rcx, rdi
call fcn.1400d61f4
test eax, eax
je 0x1400cce3d
mov eax, dword [0x140173d98]
test eax, eax
cmove eax, r15d
add dword [0x140173d9c], r15d
mov dword [0x140173d98], eax
jmp 0x1400ccf95
mov rcx, rdi
call fcn.1400d61f4
mov cl, al
shr eax, 1
and cl, r15b
and al, r15b
mov byte [rsi + 0x10ca], al
mov byte [rsi + 0x10c1], cl
mov rcx, qword [rdi + 0x30]
cmp rcx, qword [rdi + 0x28]
jae 0x1400cce76
lea rax, [rcx + 1]
mov qword [rdi + 0x30], rax
mov rax, qword [rdi]
movzx edx, byte [rax + rcx]
jmp 0x1400cce78
xor edx, edx
movzx eax, dl
mov dword [rsi + 0x10ec], eax
cmp eax, 0x18
jbe 0x1400cce9f
mov eax, dword [0x140173d98]
test eax, eax
cmove eax, r15d
add dword [0x140173d9c], r15d
mov dword [0x140173d98], eax
mov r14d, reloc.SHELL32.dll_ILFindLastID
lea rdx, [rsi + 0x10a1]
mov rcx, rdi
mov r8d, r14d
call fcn.1400d6244
lea rdx, [rsi + 0x10b1]
mov r8d, r14d
mov rcx, rdi
call fcn.1400d6244
cmp byte [rsi + 0x10c1], 0
je 0x1400ccf7d
lea rbx, [rsi + 0x10c2]
lea r8d, [r14 - 8]
mov rcx, rdi
mov rdx, rbx
call fcn.1400d6244
mov r14d, 4
lea rdx, [rsp + 0x20]
mov r8d, r14d
mov rcx, rdi
call fcn.1400d6244
lea rdx, [0x140132c08]
lea rcx, [rsp + 0x28]
xor r8d, r8d
call fcn.1400eaa4c
lea rax, vtable.micro::qsec::QSha256.0
lea rcx, [rsp + 0x28]
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x28], rax
call fcn.1400eaaf0
mov rcx, qword [rsp + 0x38]
lea r8d, [r14 + 4]
xor r9d, r9d
mov rdx, rbx
call qword [sym.imp.bcrypt.dll_BCryptHashData]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x28]
call fcn.1400eab70
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x20]
mov r8d, r14d
call qword [sym.imp.msvcrt.dll_memcmp]
lea rcx, [rsp + 0x28]
test eax, eax
sete al
mov byte [rsi + 0x10c1], al
call fcn.1400eaabc
mov byte [rsi + 0x10a0], r15b
mov dword [rsi + 0x109c], 5
mov byte [rsi + 0x109b], r15b
mov qword [rdi + 0x30], r12
mov rax, qword [rdi + 0x28]
sub rax, r12
cmp rax, 2
jae 0x1400cc9f2
mov rcx, qword [rbp + 0x1f70]
xor rcx, rsp
call fcn.140001010
mov rbx, qword [rsp + 0x20d0]
add rsp, 0x2080
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret