Function at 0x14003d178
Capabilities:
Hash data via bcrypt

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x168]
sub rsp, 0x250
mov rax, qword [0x14006c8a8]
xor rax, rsp
mov qword [rbp + 0x140], rax
mov rdi, rdx
mov rbx, rcx
xor esi, esi
test rcx, rcx
je 0x14003d5ab
test rdx, rdx
je 0x14003d5ab
mov rcx, qword [rcx + 0x28]
call fcn.14003a4f8
mov byte [rsp + 0x41], 1
lea rcx, [rbp - 0x40]
call fcn.14004b380
nop
mov eax, dword [rbx + 0x30]
mov dword [rbp + 0x84], eax
lea rdx, [rbx + 4]
lea r15d, [rsi + 0x22]
mov r8d, r15d
lea rcx, [rbp + 0x90]
call fcn.140042b10
mov ebx, eax
test eax, eax
jns 0x14003d210
mov r9d, eax
mov edx, 0x37f
jmp 0x14003d581
lea rdx, [0x14006d348]
mov ecx, 0x318
call fcn.14004e318
mov qword [rbp - 0x50], rax
test rax, rax
je 0x14003d234
mov rcx, rax
call fcn.140045f90
jmp 0x14003d237
mov rax, rsi
mov qword [rbp + 0x68], rax
test rax, rax
jne 0x14003d24f
mov ebx, 0x8007000e
mov edx, 0x382
jmp 0x14003d57e
mov r8b, 0x40
xor edx, edx
mov rcx, rax
call fcn.14003f38c
mov ebx, eax
test eax, eax
jns 0x14003d26f
mov r9d, eax
mov edx, 0x386
jmp 0x14003d581
xor edx, edx
lea rcx, [rbp - 0x40]
call fcn.140048438
mov ecx, eax
call fcn.140040994
mov ebx, eax
test eax, eax
jns 0x14003d294
mov r9d, eax
mov edx, 0x388
jmp 0x14003d581
mov rdx, qword [rbp + 0x88]
test byte [rdx + 0x3c], 0x40
jne 0x14003d574
test dword [rdx + 0x3c], 0x400
je 0x14003d574
mov r14d, 0x20
cmp word [rdx + 0x78], r14w
jne 0x14003d56d
mov r8d, r14d
mov rdx, qword [rdx + 0x80]
mov rcx, rdi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
test eax, eax
jne 0x14003d56d
mov qword [rsp + 0x50], rsi
mov rdi, qword [rsp + 0x50]
test rdi, rdi
je 0x14003d310
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
mov rcx, rdi
call fcn.14003e384
mov ecx, ebx
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
nop dword [rax + rax]
mov qword [rsp + 0x50], rsi
xor r9d, r9d
xor r8d, r8d
lea rdx, str.SHA256
lea rcx, [rsp + 0x50]
call qword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
nop dword [rax + rax]
test eax, eax
jns 0x14003d359
mov rcx, qword [rbp + 0x168]
mov r9d, eax
lea r8, str.onecoreds_security_trustletutils_vtl1lib_tpmcommands.cpp
mov edx, 0x3a1
call fcn.140022ba8
mov ebx, eax
jmp 0x14003d55b
mov qword [rsp + 0x48], rsi
mov rdi, qword [rsp + 0x48]
test rdi, rdi
je 0x14003d393
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
mov rcx, rdi
call qword [sym.imp.bcrypt.dll_BCryptDestroyHash]
nop dword [rax + rax]
mov ecx, ebx
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
nop dword [rax + rax]
mov qword [rsp + 0x48], rsi
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.bcrypt.dll_BCryptCreateHash]
nop dword [rax + rax]
test eax, eax
jns 0x14003d3e7
mov rcx, qword [rbp + 0x168]
mov r9d, eax
lea r8, str.onecoreds_security_trustletutils_vtl1lib_tpmcommands.cpp
mov edx, 0x3ab
call fcn.140022ba8
mov ebx, eax
jmp 0x14003d544
lea rax, method.std::_Ref_count_obj_class_nlohmann::detail::output_vector_adapter_unsigned_char__.virtual_24
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], rsi
mov dword [rsp + 0x78], esi
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], rsi
mov byte [rbp - 0x70], sil
lea rax, [0x140053fd0]
mov qword [rsp + 0x60], rax
mov word [rbp - 0x68], si
mov qword [rbp - 0x60], rsi
lea rcx, [rsp + 0x60]
call fcn.1400404fc
mov ebx, eax
test eax, eax
jns 0x14003d43e
mov r9d, eax
mov edx, 0x3ae
jmp 0x14003d522
movzx r8d, word [rbp - 0x68]
xor r9d, r9d
mov rdx, qword [rbp - 0x60]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
nop dword [rax + rax]
test eax, eax
jns 0x14003d466
mov edx, 0x3b3
jmp 0x14003d4cc
movzx r8d, word [rbp + 0xc8]
xor r9d, r9d
mov rdx, qword [rbp + 0xd0]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
nop dword [rax + rax]
test eax, eax
jns 0x14003d494
mov edx, 0x3b9
jmp 0x14003d4cc
xorps xmm0, xmm0
movups xmmword [rbp + 0x120], xmm0
movups xmmword [rbp + 0x130], xmm0
xor r9d, r9d
mov r8d, r14d
lea rdx, [rbp + 0x120]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.bcrypt.dll_BCryptFinishHash]
nop dword [rax + rax]
test eax, eax
jns 0x14003d4e6
mov edx, 0x3c0
mov rcx, qword [rbp + 0x168]
mov r9d, eax
lea r8, str.onecoreds_security_trustletutils_vtl1lib_tpmcommands.cpp
call fcn.140022ba8
mov ebx, eax
jmp 0x14003d539
cmp word [rbp + 0x110], r15w
je 0x14003d4f7
mov edx, 0x3c3
jmp 0x14003d51a
mov rdx, qword [rbp + 0x118]
add rdx, 2
mov r8, r14
lea rcx, [rbp + 0x120]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
test eax, eax
je 0x14003d537
mov edx, 0x3c8
mov ebx, 0x80090032
mov r9d, ebx
mov rcx, qword [rbp + 0x168]
lea r8, str.onecoreds_security_trustletutils_vtl1lib_tpmcommands.cpp
call fcn.140004430
jmp 0x14003d539
mov ebx, esi
lea rcx, [rsp + 0x60]
call fcn.140042a30
nop
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14003d55b
call qword [sym.imp.bcrypt.dll_BCryptDestroyHash]
nop dword [rax + rax]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14003d56b
call fcn.14003e384
nop
jmp 0x14003d595
mov edx, 0x397
jmp 0x14003d579
mov edx, 0x38e
mov ebx, 0x80090032
mov r9d, ebx
lea r8, str.onecoreds_security_trustletutils_vtl1lib_tpmcommands.cpp
mov rcx, qword [rbp + 0x168]
call fcn.140004430
nop
lea rcx, [rbp - 0x40]
call fcn.14004b488
nop
mov byte [rsp + 0x41], sil
call fcn.14003a64c
jmp 0x14003d5cb
mov rcx, qword [rbp + 0x168]
mov ebx, 0x80070057
mov r9d, ebx
lea r8, str.onecoreds_security_trustletutils_vtl1lib_tpmcommands.cpp
mov edx, 0x375
call fcn.140004430
mov eax, ebx
mov rcx, qword [rbp + 0x140]
xor rcx, rsp
call fcn.14004cea0
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret