Function at 0x140045190
Capabilities:
Hash data via bcrypt

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov qword [rbp], 0xfffffffffffffffe
mov rdi, rdx
mov rsi, rcx
mov eax, dword [0x1400c6e74]
mov ecx, dword [0x1400c6e78]
shrd ecx, eax, 0x16
xor ecx, 0x3b4f2f7d
mov eax, ecx
lea rax, [rax*8 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.140095c50
sub rsp, rax
mov rbx, rsp
mov eax, dword [0x1400c6e7c]
mov ecx, dword [0x1400c6e80]
shrd ecx, eax, 5
xor ecx, 0x4200825d
mov eax, ecx
lea rax, [rax*8 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.140095c50
sub rsp, rax
mov r12, rsp
mov eax, dword [0x1400c6e84]
mov ecx, dword [0x1400c6e88]
shrd ecx, eax, 0x17
xor ecx, 0xec36eae7
mov eax, ecx
shl rax, 5
call fcn.140095c50
sub rsp, rax
mov r13, rsp
imul eax, dword [0x1400c6e8c], 0x24dc6bd0
imul ecx, dword [0x1400c6e90], 0x508a7a11
add eax, ecx
add eax, 0x96898386
imul rax, rax, 0xf8
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.140095c50
sub rsp, rax
mov r15, rsp
mov eax, dword [0x1400c6e94]
mov ecx, dword [0x1400c6e98]
shrd ecx, eax, 0x17
xor ecx, 0xe4d70401
mov eax, ecx
shl rax, 4
call fcn.140095c50
sub rsp, rax
mov qword [rbp - 8], rsp
mov qword [rbx], 0
mov qword [r12], 0
mov eax, dword [0x1400c6e9c]
mov ecx, dword [0x1400c6ea0]
shrd ecx, eax, 2
mov r9d, ecx
xor r9d, 0x9c265060
sub rsp, 0x20
lea rdx, str.SHA256
mov rcx, rbx
xor r8d, r8d
call sub.bcrypt.dll_BCryptOpenAlgorithmProvider
add rsp, 0x20
mov r14d, eax
sub rsp, 0x20
call fcn.140075830
add rsp, 0x20
imul eax, dword [0x1400c6ea4], 0xa6b9a619
imul ecx, dword [0x1400c6ea8], 0xdbae3e11
add eax, ecx
add eax, 0x62643379
cmp r14d, eax
jne 0x1400453f7
mov qword [rbp - 0x10], rsi
mov qword [rbp - 0x18], r15
mov r15, rbx
mov rbx, r12
imul eax, dword [0x1400c6ec4], 0x86fef771
mov rcx, qword [r15]
imul edx, dword [0x1400c6ec8], 0x18010a16
lea r9d, [rax + rdx]
add r9d, 0x8b2de525
mov eax, dword [0x1400c6ecc]
mov edx, dword [0x1400c6ed0]
shrd edx, eax, 7
imul eax, dword [0x1400c6ed4], 0xbafa050
imul r8d, dword [0x1400c6ed8], 0x6ba3b726
xor edx, 0x78c8d174
add eax, r8d
add eax, 0xd587af2c
sub rsp, 0x40
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], 0
mov rdx, r12
xor r8d, r8d
call sub.bcrypt.dll_BCryptCreateHash
add rsp, 0x40
mov r14d, eax
sub rsp, 0x20
call fcn.140075a00
add rsp, 0x20
imul eax, dword [0x1400c6edc], 0x714d5f0b
imul ecx, dword [0x1400c6ee0], 0x30b66659
add eax, ecx
add eax, 0xbdc9ddaa
cmp r14d, eax
jne 0x1400454cd
mov r14d, dword [rdi + 0x10]
mov r12, qword [rdi + 0x18]
sub rsp, 0x20
call fcn.140075c20
add rsp, 0x20
cdqe
lea rcx, [0x140099e60]
cmp r12, qword [rcx + rax*8]
jbe 0x1400455d1
mov rdx, qword [rdi]
jmp 0x1400455d4
xorps xmm0, xmm0
movups xmmword [rsi + 0x10], xmm0
mov rax, qword [0x1400c6eb0]
mov rdx, qword [0x1400c6eb8]
shrd rdx, rax, 0xa
movups xmmword [rsi], xmm0
movabs rcx, 0xb0ced401cef7e794
xor rcx, rdx
sub rsp, 0x20
call fcn.140095bc8
add rsp, 0x20
mov rdi, rax
mov qword [rsi], rax
sub rsp, 0x20
call fcn.1400758a0
add rsp, 0x20
cdqe
lea rcx, [0x140099de0]
mov rax, qword [rcx + rax*8]
mov qword [rsi + 0x10], rax
sub rsp, 0x20
call fcn.140075920
add rsp, 0x20
cdqe
lea rcx, [0x140099e00]
mov rax, qword [rcx + rax*8]
mov qword [rsi + 0x18], rax
sub rsp, 0x20
lea rcx, [0x1400e3000]
lea rdx, [0x14009964a]
call fcn.140058900
add rsp, 0x20
movups xmm0, xmmword [0x1400e3000]
movups xmmword [rdi], xmm0
mov rax, qword [0x1400e300d]
mov qword [rdi + 0xd], rax
sub rsp, 0x20
call fcn.140075990
add rsp, 0x20
movzx eax, byte [0x1400c6ec0]
movzx ecx, byte [0x1400c6ec1]
shr cl, 3
shl al, 5
or al, cl
xor al, 0xd1
mov byte [rdi + 0x15], al
jmp 0x140045a57
imul eax, dword [0x1400c6ee4], 0xa444c569
imul edx, dword [0x1400c6ee8], 0x5b5a4240
mov rcx, qword [r15]
add edx, eax
add edx, 0x14b5b817
sub rsp, 0x20
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
add rsp, 0x20
xorps xmm0, xmm0
mov rsi, qword [rbp - 0x10]
movups xmmword [rsi], xmm0
mov rax, qword [0x1400c6ef0]
mov rdx, qword [0x1400c6ef8]
shrd rdx, rax, 0x30
movups xmmword [rsi + 0x10], xmm0
movabs rcx, 0x37fd806d9ab597f8
xor rcx, rdx
sub rsp, 0x20
call fcn.140095bc8
add rsp, 0x20
mov rdi, rax
mov qword [rsi], rax
sub rsp, 0x20
call fcn.140075a90
add rsp, 0x20
cdqe
lea rcx, [0x140099e20]
mov rax, qword [rcx + rax*8]
mov qword [rsi + 0x10], rax
sub rsp, 0x20
call fcn.140075b00
add rsp, 0x20
cdqe
lea rcx, [0x140099e40]
mov rax, qword [rcx + rax*8]
mov qword [rsi + 0x18], rax
sub rsp, 0x20
lea rcx, [0x1400e301c]
lea rdx, [0x14009968d]
call fcn.14005a6d0
add rsp, 0x20
movups xmm0, xmmword [0x1400e301c]
movups xmmword [rdi], xmm0
movzx eax, byte [0x1400e302c]
mov byte [rdi + 0x10], al
sub rsp, 0x20
call fcn.140075b90
add rsp, 0x20
movzx eax, byte [0x1400c6f00]
movzx ecx, byte [0x1400c6f01]
shr cl, 1
shl al, 7
or al, cl
xor al, 0x8a
mov byte [rdi + 0x11], al
jmp 0x140045a57
mov rdx, rdi
imul eax, dword [0x1400c6f04], 0x9b4643fd
imul r8d, dword [0x1400c6f08], 0xc29afea4
mov rcx, qword [rbx]
lea r9d, [rax + r8]
add r9d, 0xbb088cdc
sub rsp, 0x20
mov r8d, r14d
call sub.bcrypt.dll_BCryptHashData
add rsp, 0x20
mov edi, eax
sub rsp, 0x20
call fcn.140075ca0
add rsp, 0x20
imul eax, dword [0x1400c6f0c], 0x34da81aa
imul ecx, dword [0x1400c6f10], 0xe55a7b66
add eax, ecx
add eax, 0x67e9d6b8
mov rcx, qword [rbx]
cmp edi, eax
jne 0x140045851
mov rdi, r13
mov eax, dword [0x1400c6f34]
mov edx, dword [0x1400c6f38]
shrd edx, eax, 0xa
mov r8d, edx
xor r8d, 0xaed71af4
mov eax, dword [0x1400c6f3c]
mov edx, dword [0x1400c6f40]
shrd edx, eax, 0x12
mov r9d, edx
xor r9d, 0xae4dc7b1
sub rsp, 0x20
mov rdx, r13
call sub.bcrypt.dll_BCryptFinishHash
add rsp, 0x20
mov r14d, eax
sub rsp, 0x20
call fcn.140075eb0
add rsp, 0x20
imul eax, dword [0x1400c6f44], 0x56f1c6e9
imul ecx, dword [0x1400c6f48], 0x6c5a64ec
lea r12d, [rax + rcx]
add r12d, 0x4f97ead9
mov rcx, qword [rbx]
sub rsp, 0x20
call sub.bcrypt.dll_BCryptDestroyHash
add rsp, 0x20
mov rcx, qword [r15]
mov eax, dword [0x1400c6f4c]
mov edx, dword [0x1400c6f50]
shrd edx, eax, 0x18
xor edx, 0xa60779db
sub rsp, 0x20
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
add rsp, 0x20
cmp r14d, r12d
jne 0x140045954
mov r14, qword [rbp - 0x18]
mov rcx, r14
imul eax, dword [0x1400c6f6c], 0x8c43f86e
imul edx, dword [0x1400c6f70], 0x206d1545
mov rbx, qword [rbp - 8]
add edx, eax
add edx, 0x7fcb53f2
sub rsp, 0x20
mov qword [rbp - 8], r14
call fcn.140045ab0
add rsp, 0x20
add r14, 0x10
xor r13d, r13d
sub rsp, 0x20
call fcn.1400760a0
add rsp, 0x20
cdqe
lea rcx, [0x140099ef8]
cmp r13d, dword [rcx + rax*4]
jae 0x140045a2b
mov rsi, qword [rbp - 8]
mov rax, qword [rsi + 0x10]
movsxd r12, dword [rax + 4]
mov r15d, dword [rsi + r12 + 0x28]
sub rsp, 0x20
call fcn.140076120
add rsp, 0x20
cdqe
lea rcx, [0x140099f04]
and r15d, dword [rcx + rax*4]
sub rsp, 0x20
call fcn.1400761b0
add rsp, 0x20
cdqe
lea rcx, [0x140099f10]
or r15d, dword [rcx + rax*4]
mov dword [rsi + r12 + 0x28], r15d
mov rax, qword [0x1400c6f78]
mov rcx, qword [0x1400c6f80]
shrd rcx, rax, 0x12
mov rdx, rcx
movabs rax, 0x59ac969f67c931b8
xor rdx, rax
nop
sub rsp, 0x20
mov rcx, rbx
call sub.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__
add rsp, 0x20
nop
mov rdx, qword [rbx + 8]
mov rax, qword [r14]
movsxd rcx, dword [rax + 4]
add rcx, r14
nop
sub rsp, 0x20
call qword [rbx]
add rsp, 0x20
nop
mov eax, r13d
mov r15d, eax
mov rsi, qword [rbp - 8]
mov rax, qword [rsi + 0x10]
movsxd r12, dword [rax + 4]
sub rsp, 0x20
call fcn.140076240
add rsp, 0x20
cdqe
lea rcx, [0x140099f1c]
movzx eax, byte [rax + rcx]
mov byte [rsi + r12 + 0x68], al
movzx edx, byte [rdi + r15]
nop
sub rsp, 0x20
mov rcx, r14
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
add rsp, 0x20
nop
sub rsp, 0x20
call fcn.1400762b0
add rsp, 0x20
cdqe
lea rcx, [0x140099f20]
add r13d, dword [rcx + rax*4]
jmp 0x140045730
sub rsp, 0x20
call sub.bcrypt.dll_BCryptDestroyHash
add rsp, 0x20
mov rcx, qword [r15]
mov eax, dword [0x1400c6f14]
mov edx, dword [0x1400c6f18]
shrd edx, eax, 0xa
xor edx, 0xbe3a3591
sub rsp, 0x20
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
add rsp, 0x20
xorps xmm0, xmm0
mov rsi, qword [rbp - 0x10]
movups xmmword [rsi], xmm0
mov rax, qword [0x1400c6f20]
mov rdx, qword [0x1400c6f28]
shrd rdx, rax, 0x1d
movups xmmword [rsi + 0x10], xmm0
movabs rcx, 0x9e9ab863489b0da6
xor rcx, rdx
sub rsp, 0x20
call fcn.140095bc8
add rsp, 0x20
mov rdi, rax
mov qword [rsi], rax
sub rsp, 0x20
call fcn.140075d40
add rsp, 0x20
cdqe
lea rcx, [0x140099e80]
mov rax, qword [rcx + rax*8]
mov qword [rsi + 0x10], rax
sub rsp, 0x20
call fcn.140075db0
add rsp, 0x20
cdqe
lea rcx, [0x140099ea0]
mov rax, qword [rcx + rax*8]
mov qword [rsi + 0x18], rax
sub rsp, 0x20
lea rcx, [0x1400e3034]
lea rdx, [0x1400996d4]
call fcn.14005c1d0
add rsp, 0x20
movups xmm0, xmmword [0x1400e3034]
movups xmmword [rdi], xmm0
sub rsp, 0x20
call fcn.140075e30
add rsp, 0x20
movzx eax, byte [0x1400c6f30]
movzx ecx, byte [0x1400c6f31]
imul eax, eax, 0x4d
imul ecx, ecx, 0xffffffa2
add cl, al
add cl, 0xb
mov byte [rdi + 0x10], cl
jmp 0x140045a57
xorps xmm0, xmm0
mov rsi, qword [rbp - 0x10]
movups xmmword [rsi + 0x10], xmm0
mov rax, qword [0x1400c6f58]
mov rdx, qword [0x1400c6f60]
shrd rdx, rax, 0xd
movups xmmword [rsi], xmm0
movabs rcx, 0x5cbc917e05cfb425
xor rcx, rdx
sub rsp, 0x20
call fcn.140095bc8
add rsp, 0x20
mov rdi, rax
mov qword [rsi], rax
sub rsp, 0x20
call fcn.140075f30
add rsp, 0x20
cdqe
lea rcx, [0x140099ec0]
mov rax, qword [rcx + rax*8]
mov qword [rsi + 0x10], rax
sub rsp, 0x20
call fcn.140075fc0
add rsp, 0x20
cdqe
lea rcx, [0x140099ee0]
mov rax, qword [rcx + rax*8]
mov qword [rsi + 0x18], rax
sub rsp, 0x20
lea rcx, [0x1400e304c]
lea rdx, [0x140099717]
call fcn.14005da30
add rsp, 0x20
movups xmm0, xmmword [0x1400e304c]
movups xmmword [rdi], xmm0
movzx eax, word [0x1400e305c]
mov word [rdi + 0x10], ax
sub rsp, 0x20
call fcn.140076030
add rsp, 0x20
movzx eax, byte [0x1400c6f68]
movzx ecx, byte [0x1400c6f69]
shr cl, 6
shl al, 2
or al, cl
xor al, 0xf5
mov byte [rdi + 0x12], al
jmp 0x140045a57
nop
sub rsp, 0x20
mov rcx, qword [rbp - 8]
mov rdx, qword [rbp - 0x10]
call fcn.140045d60
add rsp, 0x20
nop
sub rsp, 0x20
mov rcx, qword [rbp - 8]
call fcn.140045f00
add rsp, 0x20
mov rsi, qword [rbp - 0x10]
mov rax, rsi
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret