Function at 0x14012da50
Capabilities:
Hash data using sha384
Hash data using sha512
Hash data with md5

Disassembly:
push rbx
push rsi
sub rsp, 0x38
mov rsi, rdx
mov rbx, rcx
test rcx, rcx
je 0x14012e06f
test rdx, rdx
je 0x14012e06f
cmp byte [rcx + 0x229], 0
jne 0x14012da85
call fcn.14012d9a0
test eax, eax
jne 0x14012e074
movzx ecx, byte [rbx + 0x228]
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r15
sub ecx, 3
je 0x14012dea2
sub ecx, 1
je 0x14012de33
sub ecx, 2
je 0x14012ddc4
sub ecx, 1
je 0x14012dc41
cmp ecx, 1
jne 0x14012e045
lea rbp, [rbx + 0x1e0]
test rbp, rbp
je 0x14012e045
mov rcx, rbx
call fcn.14012cff0
test eax, eax
jne 0x14012e04a
movups xmm0, xmmword [rbx]
xor edi, edi
lea rdx, [rbx + 0x160]
movabs rax, 0x510e527fade682d1
movabs r14, 0x6a09e667f3bcc908
movabs r15, 0xbb67ae8584caa73b
movabs r12, 0x3c6ef372fe94f82b
movabs r13, 0xa54ff53a5f1d36f1
movups xmmword [rbp], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rbp + 0x20], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rbp + 0x30], xmm1
mov qword [rbx + 0x20], rax
movabs rax, 0x9b05688c2b3e6c1f
mov qword [rbx + 0x28], rax
movabs rax, 0x1f83d9abfb41bd6b
mov qword [rbx + 0x30], rax
movabs rax, 0x5be0cd19137e2179
mov qword [rbx + 0x38], rax
mov qword [rbx], r14
mov qword [rbx + 8], r15
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], r13
mov dword [rbx + 0xc0], edi
mov qword [rbx + 0xc8], rdi
mov qword [rbx + 0xd0], rdi
test rdx, rdx
je 0x14012e045
mov r8d, pe_nt_image_headers64
mov rcx, rbx
call fcn.14012ce50
test eax, eax
jne 0x14012e04a
mov r8d, 0x40
mov rdx, rbp
mov rcx, rbx
call fcn.14012ce50
test eax, eax
jne 0x14012e04a
mov rcx, rbx
call fcn.14012cff0
test eax, eax
jne 0x14012e04a
movups xmm0, xmmword [rbx]
movabs rax, 0x510e527fade682d1
movups xmmword [rsi], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rsi + 0x20], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rsi + 0x30], xmm1
mov qword [rbx + 0x20], rax
movabs rax, 0x9b05688c2b3e6c1f
mov qword [rbx + 0x28], rax
movabs rax, 0x1f83d9abfb41bd6b
mov qword [rbx + 0x30], rax
movabs rax, 0x5be0cd19137e2179
jmp 0x14012dd96
lea rbp, [rbx + 0x1e0]
test rbp, rbp
je 0x14012e045
mov rcx, rbx
call fcn.14012cff0
test eax, eax
jne 0x14012e04a
movups xmm0, xmmword [rbx]
xor edi, edi
lea rdx, [rbx + 0x160]
movabs rax, 0x67332667ffc00b31
movabs r14, 0xcbbb9d5dc1059ed8
movabs r15, 0x629a292a367cd507
movabs r12, 0x9159015a3070dd17
movabs r13, 0x152fecd8f70e5939
movups xmmword [rbp], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rbp + 0x20], xmm0
mov qword [rbx + 0x20], rax
movabs rax, 0x8eb44a8768581511
mov qword [rbx + 0x28], rax
movabs rax, 0xdb0c2e0d64f98fa7
mov qword [rbx + 0x30], rax
movabs rax, 0x47b5481dbefa4fa4
mov qword [rbx + 0x38], rax
mov qword [rbx], r14
mov qword [rbx + 8], r15
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], r13
mov dword [rbx + 0xc0], edi
mov qword [rbx + 0xc8], rdi
mov qword [rbx + 0xd0], rdi
test rdx, rdx
je 0x14012e045
mov r8d, pe_nt_image_headers64
mov rcx, rbx
call fcn.14012ce50
test eax, eax
jne 0x14012e04a
mov r8d, 0x30
mov rdx, rbp
mov rcx, rbx
call fcn.14012ce50
test eax, eax
jne 0x14012e04a
mov rcx, rbx
call fcn.14012cff0
test eax, eax
jne 0x14012e04a
movups xmm0, xmmword [rbx]
movabs rax, 0x67332667ffc00b31
movups xmmword [rsi], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rsi + 0x20], xmm0
mov qword [rbx + 0x20], rax
movabs rax, 0x8eb44a8768581511
mov qword [rbx + 0x28], rax
movabs rax, 0xdb0c2e0d64f98fa7
mov qword [rbx + 0x30], rax
movabs rax, 0x47b5481dbefa4fa4
mov qword [rbx + 0x18], r13
mov qword [rbx + 0x10], r12
mov qword [rbx + 8], r15
mov qword [rbx], r14
mov qword [rbx + 0x38], rax
mov eax, edi
mov dword [rbx + 0xc0], edi
mov qword [rbx + 0xc8], rdi
mov qword [rbx + 0xd0], rdi
jmp 0x14012de8f
lea rdi, [rbx + 0x1e0]
mov rcx, rbx
mov rdx, rdi
call fcn.14012f090
test eax, eax
jne 0x14012e04a
lea rdx, [rbx + 0x160]
test rdx, rdx
je 0x14012e045
mov r8d, 0x40
mov rcx, rbx
call fcn.14012e6f0
test eax, eax
jne 0x14012e04a
test rdi, rdi
je 0x14012e045
mov r8d, 0x20
mov rdx, rdi
mov rcx, rbx
call fcn.14012e6f0
test eax, eax
jne 0x14012e04a
mov rdx, rsi
mov rcx, rbx
call fcn.14012f090
jmp 0x14012de8f
lea rdx, [rbx + 0x1e0]
mov rcx, rbx
call fcn.14012a5b0
test eax, eax
jne 0x14012e04a
lea rdx, [rbx + 0x160]
mov r8d, 0x40
mov rcx, rbx
call fcn.14012a110
test eax, eax
jne 0x14012e04a
mov r8d, 0x14
lea rdx, [rbx + 0x1e0]
mov rcx, rbx
call fcn.14012a110
test eax, eax
jne 0x14012e04a
mov rdx, rsi
mov rcx, rbx
call fcn.14012a5b0
test eax, eax
jne 0x14012e04a
mov byte [rbx + 0x229], al
jmp 0x14012e04a
lea r14, [rbx + 0x1e0]
test r14, r14
je 0x14012e045
mov eax, dword [rbx]
lea rbp, [rbx + 0xc]
xor edi, edi
mov byte [rax + rbp], pe_nt_image_headers64
mov ecx, dword [rbx]
inc ecx
mov dword [rbx], ecx
cmp ecx, 0x38
jbe 0x14012def1
mov r8d, 0x40
xor edx, edx
sub r8d, ecx
add rcx, rbp
call fcn.140169130
mov rdx, rbp
mov dword [rbx], 0x40
mov rcx, rbx
call fcn.140131fb0
mov ecx, edi
mov dword [rbx], edi
mov r15d, 0x38
xor edx, edx
mov r8d, r15d
sub r8d, ecx
add rcx, rbp
call fcn.140169130
mov edx, dword [rbx + 4]
mov ecx, edx
mov eax, dword [rbx + 8]
shr ecx, 0x1d
lea ecx, [rcx + rax*8]
lea eax, [rdx*8]
mov dword [rbx + 8], ecx
mov dword [rbx + 4], eax
mov rdx, rbp
mov dword [rbp + 0x38], eax
mov rcx, rbx
mov eax, dword [rbx + 8]
mov dword [rbp + 0x3c], eax
call fcn.140131fb0
movups xmm0, xmmword [rbx + 0x4c]
lea rdx, [rbx + 0x160]
mov r8d, 0x40
mov rcx, rbx
movups xmmword [r14], xmm0
mov dword [rbx + 0x4c], 0x67452301
mov dword [rbx + 0x50], 0xefcdab89
mov dword [rbx + 0x54], 0x98badcfe
mov dword [rbx + 0x58], 0x10325476
mov qword [rbx], rdi
mov dword [rbx + 8], edi
call fcn.1401327a0
test eax, eax
jne 0x14012e04a
mov r8d, reloc.WS2_32.dll_recv
mov rdx, r14
mov rcx, rbx
call fcn.1401327a0
test eax, eax
jne 0x14012e04a
mov eax, dword [rbx]
mov byte [rax + rbp], pe_nt_image_headers64
mov ecx, dword [rbx]
inc ecx
mov dword [rbx], ecx
cmp ecx, r15d
jbe 0x14012dfcf
mov r8d, 0x40
xor edx, edx
sub r8d, ecx
add rcx, rbp
call fcn.140169130
mov rdx, rbp
mov dword [rbx], 0x40
mov rcx, rbx
call fcn.140131fb0
mov ecx, edi
mov dword [rbx], edi
sub r15d, ecx
xor edx, edx
mov r8d, r15d
add rcx, rbp
call fcn.140169130
mov r8d, dword [rbx + 4]
mov rdx, rbp
mov eax, dword [rbx + 8]
mov ecx, r8d
shr ecx, 0x1d
lea ecx, [rcx + rax*8]
mov dword [rbx + 8], ecx
lea eax, [r8*8]
mov dword [rbx + 4], eax
mov rcx, rbx
mov dword [rbp + 0x38], eax
mov eax, dword [rbx + 8]
mov dword [rbp + 0x3c], eax
call fcn.140131fb0
movups xmm0, xmmword [rbx + 0x4c]
mov eax, edi
movups xmmword [rsi], xmm0
mov dword [rbx + 0x4c], 0x67452301
mov dword [rbx + 0x50], 0xefcdab89
mov dword [rbx + 0x54], 0x98badcfe
mov dword [rbx + 0x58], 0x10325476
mov qword [rbx], rdi
mov dword [rbx + 8], edi
mov byte [rbx + 0x229], 0
jmp 0x14012e04a
mov eax, 0xffffff53
mov r15, qword [rsp + 0x20]
mov r14, qword [rsp + 0x28]
mov r13, qword [rsp + 0x30]
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
add rsp, 0x38
pop rsi
pop rbx
ret
mov eax, 0xffffff53
add rsp, 0x38
pop rsi
pop rbx
ret