Function at 0x14023c990
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x130]
sub rsp, 0x230
mov rax, qword [0x14035dc30]
xor rax, rsp
mov qword [rbp + 0x120], rax
mov qword [rbp - 0x68], r8
mov r12, rdx
mov qword [rbp - 0x78], rdx
mov rdi, rcx
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 1
xor r8d, r8d
xor edx, edx
add rcx, 0x10
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
lea rsi, [0x1402f713c]
lea r15, str.E:BT_ff36c628_e6d7_4f32_a2f8_2ac138f13027MCSP_DBSplit_2_6McCSPService_srcMcHardwareId.cpp
test eax, eax
jne 0x14023ca6c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x80090016
jne 0x14023ca2b
mov dword [rsp + 0x20], 0xf0000008
mov r9d, 1
xor r8d, r8d
xor edx, edx
lea rcx, [rdi + 0x10]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x14023ca6c
call fcn.1400dd650
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x68], eax
lea rax, str.Failed_to_acquire_crypt_context._Error__u
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], 0xda
jmp 0x14023cacd
lea r14, [rdi + 0x18]
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8003
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x14023caf5
call fcn.1400dd650
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x68], eax
lea rax, str.Failed_to_create_crypto_hash_for_SHA1._Error__u
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], 0xd5
mov qword [rsp + 0x28], r15
lea rax, str.McAfee::MCSP::CMcHardwareId::InitCrypto
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea edx, [r9 - 3]
mov rcx, rbx
call fcn.1400dd8b0
jmp 0x14023cafa
cmp eax, 1
je 0x14023cb59
call fcn.1400dd650
lea rcx, str.crypto_initilization_failed
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], 0x17f
mov qword [rsp + 0x28], r15
lea rcx, str.McAfee::MCSP::CMcHardwareId::GetMachineId
mov qword [rsp + 0x20], rcx
mov r9d, 4
xor r8d, r8d
lea edx, [r9 - 3]
mov rcx, rax
call fcn.1400dd8b0
xor al, al
jmp 0x14023d1be
mov byte [rsp + 0x70], 0
xor r15d, r15d
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x50], r15
mov r13d, 7
mov qword [rbp - 0x48], r13
mov word [rbp - 0x60], r15w
lea rdx, [rbp - 0x60]
mov rcx, rdi
call fcn.14023c000
lea rsi, [0x1402f713c]
lea rdi, str.E:BT_ff36c628_e6d7_4f32_a2f8_2ac138f13027MCSP_DBSplit_2_6McCSPService_srcMcHardwareId.cpp
lea rbx, str.McAfee::MCSP::CMcHardwareId::GetMachineId
test al, al
jne 0x14023ccb2
call fcn.1400dd650
lea rcx, str.GetHardwareIdFromWMI_failed.so_generate_it_from_machine_name.
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], 0x187
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
lea r9d, [r15 + 4]
xor r8d, r8d
lea edx, [r15 + 1]
mov rcx, rax
call fcn.1400dd8b0
lea rcx, [rbp - 0x10]
call fcn.140104200
mov rbx, rax
lea rax, [rbp - 0x60]
cmp rax, rbx
je 0x14023cc6d
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x14023cc45
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14023cc40
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14023d1ee
call fcn.140269844
mov qword [rbp - 0x50], r15
mov qword [rbp - 0x48], r13
mov word [rbp - 0x60], r15w
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x60], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp - 0x50], xmm1
mov qword [rbx + 0x10], r15
mov qword [rbx + 0x18], r13
mov word [rbx], r15w
mov rdx, qword [rbp + 8]
cmp rdx, 8
jb 0x14023ccad
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14023cca8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14023d1ee
call fcn.140269844
mov byte [rsp + 0x70], 1
lea rdx, [rbp - 0x60]
cmp qword [rbp - 0x48], 8
cmovae rdx, qword [rbp - 0x60]
lea rax, [rbp + 0x18]
mov qword [rbp + 0x10], rax
mov r8d, 3
lea rcx, [rbp + 0x10]
call fcn.14023d3f0
nop
mov rdx, qword [rbp + 0x10]
mov r15, 0xffffffffffffffff
mov rax, r15
inc rax
cmp byte [rdx + rax], 0
jne 0x14023cce6
xor r9d, r9d
mov r8d, eax
mov rcx, qword [r14]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x14023cd1e
call fcn.1400dd650
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0x190
lea rdx, str.Failed_to_hash_plain_text_machineid_Error__u
jmp 0x14023cd5a
xor ebx, ebx
mov dword [rsp + 0x74], ebx
mov dword [rsp + 0x20], ebx
lea r9, [rsp + 0x74]
xor r8d, r8d
lea edx, [rbx + 2]
mov rcx, qword [r14]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
jne 0x14023cdae
call fcn.1400dd650
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0x197
lea rdx, str.Failed_in_getting_hash_param_length_Error__u
mov dword [rsp + 0x68], eax
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], ecx
mov qword [rsp + 0x28], rdi
lea rcx, str.McAfee::MCSP::CMcHardwareId::GetMachineId
mov qword [rsp + 0x20], rcx
mov r9d, 4
xor r8d, r8d
lea edx, [r9 - 3]
mov rcx, rbx
call fcn.1400dd8b0
xor sil, sil
jmp 0x14023d16b
mov ecx, dword [rsp + 0x74]
inc ecx
call fcn.140269b2c
mov rdi, rax
mov qword [rbp - 0x70], rax
mov dword [rsp + 0x20], ebx
lea r9, [rsp + 0x74]
mov r8, rax
mov edx, 2
mov rcx, qword [r14]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
jne 0x14023ce52
call fcn.1400dd650
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x68], eax
lea rax, str.Failed_in_getting_has_param_with_buffer_Error__u
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], 0x19e
lea rcx, str.E:BT_ff36c628_e6d7_4f32_a2f8_2ac138f13027MCSP_DBSplit_2_6McCSPService_srcMcHardwareId.cpp
mov qword [rsp + 0x28], rcx
lea rcx, str.McAfee::MCSP::CMcHardwareId::GetMachineId
mov qword [rsp + 0x20], rcx
mov r9d, 4
xor r8d, r8d
lea edx, [r9 - 3]
mov rcx, rbx
call fcn.1400dd8b0
xor sil, sil
jmp 0x14023d162
call fcn.1400256d0
mov rcx, rax
test rax, rax
je 0x14023d1f4
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400ac8a1.0]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x78], rbx
xor edx, edx
mov r14d, edx
cmp dword [rsp + 0x74], edx
jbe 0x14023ced3
nop dword [rax]
nop dword [rax + rax]
mov eax, r14d
movzx r8d, byte [rax + rdi]
lea rdx, str._02x
lea rcx, [rsp + 0x78]
call fcn.14009f1d0
mov rbx, qword [rsp + 0x78]
mov r8, r15
inc r8
cmp word [rbx + r8*2], 0
jne 0x14023ceb1
mov rdx, rbx
mov rcx, r12
call fcn.140032240
inc r14d
cmp r14d, dword [rsp + 0x74]
jb 0x14023ce90
xor edx, edx
cmp byte [rsp + 0x70], 0
je 0x14023cfdb
mov r12, qword [r12 + 0x10]
movabs rcx, 0x7ffffffffffffffe
mov rax, rcx
sub rax, r12
cmp rax, 3
jb 0x14023d1ff
mov rax, qword [rbp - 0x78]
mov qword [rbp - 0x80], rax
cmp qword [rax + 0x18], 8
jb 0x14023cf13
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x40], rdx
lea r14, [r12 + 3]
lea rdi, [rbp - 0x40]
cmp r14, 7
jbe 0x14023cf57
mov r13, r14
or r13, 7
cmp r13, rcx
jbe 0x14023cf37
mov r13, rcx
jmp 0x14023cf43
mov eax, 0xa
cmp r13, rax
cmovb r13, rax
lea rdx, [r13 + 1]
lea rcx, [rbp - 0x40]
call fcn.140026230
mov rdi, rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], r13
mov r8d, dword [0x1402e63b8]
mov dword [rdi], r8d
movzx r8d, word [0x1402e63bc]
mov word [rdi + 4], r8w
lea rcx, [rdi + 6]
lea r8, [r12 + r12]
mov rdx, qword [rbp - 0x80]
call fcn.14026bb50
xor eax, eax
mov word [rdi + r14*2], ax
lea rdx, [rbp - 0x40]
mov rcx, qword [rbp - 0x78]
call fcn.14003a020
mov rdx, qword [rbp - 0x28]
cmp rdx, 8
jb 0x14023cfdb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14023cfd6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14023d205
call fcn.140269844
lea rcx, [rbp - 0x20]
call qword [sym.imp.ole32.dll_CoCreateGuid]
mov edi, eax
test eax, eax
jns 0x14023d056
call fcn.1400dd650
mov dword [rsp + 0x68], edi
lea rcx, str.Failed_to_CoCreateGuid:_HRESULT__x
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], 0x1b2
lea rcx, str.E:BT_ff36c628_e6d7_4f32_a2f8_2ac138f13027MCSP_DBSplit_2_6McCSPService_srcMcHardwareId.cpp
mov qword [rsp + 0x28], rcx
lea rcx, str.McAfee::MCSP::CMcHardwareId::GetMachineId
mov qword [rsp + 0x20], rcx
mov r9d, 4
xor r8d, r8d
lea edx, [r9 - 3]
mov rcx, rax
call fcn.1400dd8b0
xor sil, sil
jmp 0x14023d13e
xorps xmm0, xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
movups xmmword [rbp + 0x100], xmm0
movups xmmword [rbp + 0x110], xmm0
mov r8d, 0x40
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x20]
call qword [sym.imp.ole32.dll_StringFromGUID2]
test eax, eax
jne 0x14023d110
call fcn.1400dd650
lea rcx, str.Failed_to_Convert_GUID_to_string
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], 0x1b8
lea rcx, str.E:BT_ff36c628_e6d7_4f32_a2f8_2ac138f13027MCSP_DBSplit_2_6McCSPService_srcMcHardwareId.cpp
mov qword [rsp + 0x28], rcx
lea rcx, str.McAfee::MCSP::CMcHardwareId::GetMachineId
mov qword [rsp + 0x20], rcx
mov r9d, 4
xor r8d, r8d
lea edx, [r9 - 3]
mov rcx, rax
call fcn.1400dd8b0
xor sil, sil
jmp 0x14023d13e
lea rax, [rbp + 0xa0]
mov r8, r15
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x14023d120
lea rdx, [rbp + 0xa0]
mov rcx, qword [rbp - 0x68]
call fcn.140025e70
mov sil, 1
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x14023d15e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400ac8a1.0]
mov rdi, qword [rbp - 0x70]
mov rcx, rdi
call fcn.140269844
nop
lea rax, [rbp + 0x18]
mov rcx, qword [rbp + 0x10]
cmp rcx, rax
je 0x14023d17e
call fcn.1402767a0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x14023d1ba
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14023d1b5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14023d1e8
call fcn.140269844
movzx eax, sil
mov rcx, qword [rbp + 0x120]
xor rcx, rsp
call fcn.140269300
mov rbx, qword [rsp + 0x288]
add rsp, 0x230
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140277ff8
nop
call fcn.140277ff8
nop
mov ecx, 0x80004005
call fcn.1400264e0
nop
call fcn.1400255b0
int3
call fcn.140277ff8
int3