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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rsi, r8
mov rbx, rcx
mov edi, 0xffffff18
test rcx, rcx
je 0x1400ad6c7
test r8, r8
je 0x1400ad6c7
cmp edx, 0x11
ja case.0x1400ad4a9.0
movsxd rax, edx
lea rcx, [0x140000000]
mov edx, dword [rcx + rax*4 + 0xad6dc]
add rdx, rcx
jmp rdx
mov eax, dword [rbx]
xor edi, edi
mov qword [rsp + 0x30], rbp
lea rbp, [rbx + 0xc]
mov byte [rax + rbp], 0x80
mov ecx, dword [rbx]
inc ecx
mov dword [rbx], ecx
cmp ecx, 0x38
jbe 0x1400ad4ef
mov r8d, 0x40
xor edx, edx
sub r8d, ecx
add rcx, rbp
call fcn.1400fcb30
mov rdx, rbp
mov dword [rbx], 0x40
mov rcx, rbx
call fcn.1400c2d10
mov ecx, edi
mov dword [rbx], edi
mov r8d, 0x38
xor edx, edx
sub r8d, ecx
add rcx, rbp
call fcn.1400fcb30
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.1400c2d10
movups xmm0, xmmword [rbx + 0x4c]
mov rbp, qword [rsp + 0x30]
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 rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rdx, rsi
mov rcx, rbx
call fcn.1400b10d0
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rdx, rsi
mov rcx, rbx
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
jmp fcn.1400bec50
mov rcx, rbx
call fcn.1400b3eb0
test eax, eax
jne 0x1400ad57f
movups xmm0, xmmword [rbx]
xor edi, edi
movabs rax, 0xcbbb9d5dc1059ed8
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], rax
movabs rax, 0x629a292a367cd507
mov qword [rbx + 8], rax
movabs rax, 0x9159015a3070dd17
mov qword [rbx + 0x10], rax
movabs rax, 0x152fecd8f70e5939
mov qword [rbx + 0x18], rax
movabs rax, 0x67332667ffc00b31
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 eax, edi
mov dword [rbx + 0xc0], edi
mov qword [rbx + 0xc8], rdi
mov qword [rbx + 0xd0], rdi
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rdx, rsi
mov rcx, rbx
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
jmp fcn.1400b3fd0
mov rdx, rsi
mov rcx, rbx
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
jmp 0x1400b41b0
mov rdx, rsi
mov rcx, rbx
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
jmp 0x1400b42a0
mov edi, 0xffffff53
mov eax, edi
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x38]
mov eax, 0xffffff53
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, rdx
mov rbx, rcx
test rcx, rcx
je 0x1400b4285
test rdx, rdx
je 0x1400b4285
call fcn.1400b3eb0
test eax, eax
jne 0x1400b428a
movups xmm0, xmmword [rbx]
movups xmmword [rdi], xmm0
movsd xmm1, qword [rbx + 0x10]
movsd qword [rdi + 0x10], xmm1
mov eax, dword [rbx + 0x18]
mov dword [rdi + 0x18], eax
movabs rax, 0x8c3d37c819544da2
mov qword [rbx], rax
movabs rax, 0x73e1996689dcd4d6
mov qword [rbx + 8], rax
movabs rax, 0x1dfab7ae32ff9c82
mov qword [rbx + 0x10], rax
movabs rax, 0x679dd514582f9fcf
mov qword [rbx + 0x18], rax
movabs rax, 0xf6d2b697bd44da8
mov qword [rbx + 0x20], rax
movabs rax, 0x77e36f7304c48942
mov qword [rbx + 0x28], rax
movabs rax, 0x3f9d85a86a1d36c8
mov qword [rbx + 0x30], rax
movabs rax, 0x1112e6ad91d692a1
mov qword [rbx + 0x38], rax
xor eax, eax
mov dword [rbx + 0xc0], eax
mov qword [rbx + 0xc8], rax
mov qword [rbx + 0xd0], rax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov eax, 0xffffff53
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, rdx
mov rbx, rcx
test rcx, rcx
je 0x1400b436d
test rdx, rdx
je 0x1400b436d
call fcn.1400b3eb0
test eax, eax
jne 0x1400b4372
movups xmm0, xmmword [rbx]
movabs rax, 0x22312194fc2bf72c
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rdi + 0x10], xmm1
mov qword [rbx], rax
movabs rax, 0x9f555fa3c84c64c2
mov qword [rbx + 8], rax
movabs rax, 0x2393b86b6f53b151
mov qword [rbx + 0x10], rax
movabs rax, 0x963877195940eabd
mov qword [rbx + 0x18], rax
movabs rax, 0x96283ee2a88effe3
mov qword [rbx + 0x20], rax
movabs rax, 0xbe5e1e2553863992
mov qword [rbx + 0x28], rax
movabs rax, 0x2b0199fc2c85b8aa
mov qword [rbx + 0x30], rax
movabs rax, 0xeb72ddc81c52ca2
mov qword [rbx + 0x38], rax
xor eax, eax
mov dword [rbx + 0xc0], eax
mov qword [rbx + 0xc8], rax
mov qword [rbx + 0xd0], rax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov eax, 0xffffff53
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret