Function at 0x14007ec10
Capabilities:
Hash data using sha1
Hash data using sha256
Hash data using sha384
Hash data using sha512

Disassembly:
sub rsp, 0x28
mov r8, rcx
cmp edx, 0x16
ja case.default.0x14007ec35
movsxd rax, edx
lea r9, [0x140000000]
mov eax, dword [r9 + rax*4 + 0x7ef30]
add rax, r9
jmp rax
mov dword [rcx], 0x67452301
mov dword [rcx + 4], 0xefcdab89
mov dword [rcx + 8], 0x98badcfe
mov dword [rcx + 0xc], 0x10325476
mov dword [rcx + 0x10], 0xc3d2e1f0
xor edx, edx
mov qword [rcx + 0x18], rdx
add rsp, 0x28
ret
mov dword [rcx + 8], 0x67452301
mov dword [rcx + 0xc], 0xefcdab89
mov dword [rcx + 0x10], 0x98badcfe
mov dword [rcx + 0x14], 0x10325476
xor edx, edx
mov qword [rcx], rdx
add rsp, 0x28
ret
mov dword [rcx], 0x67452301
mov dword [rcx + 4], 0xefcdab89
mov dword [rcx + 8], 0x98badcfe
mov qword [rcx + 0xc], 0x10325476
xor edx, edx
mov dword [rcx + 0x14], edx
add rsp, 0x28
ret
test r8, r8
je case.default.0x14007ec35
xor edx, edx
mov qword [rcx + 0x20], rdx
mov word [rcx + 0x28], dx
mov eax, dword [0x140378620]
mov dword [rcx], eax
mov eax, dword [0x140378624]
mov dword [rcx + 4], eax
mov eax, dword [0x140378628]
mov dword [rcx + 8], eax
mov eax, dword [0x14037862c]
mov dword [rcx + 0xc], eax
mov eax, dword [0x140378630]
mov dword [rcx + 0x10], eax
mov eax, dword [0x140378634]
mov dword [rcx + 0x14], eax
mov eax, dword [0x140378638]
mov dword [rcx + 0x18], eax
mov eax, dword [0x14037863c]
mov dword [rcx + 0x1c], eax
mov qword [rcx + 0x6c], rdx
add rsp, 0x28
ret
test r8, r8
je case.default.0x14007ec35
xor edx, edx
mov qword [rcx + 0x20], rdx
mov word [rcx + 0x28], dx
mov eax, dword [0x140378640]
mov dword [rcx], eax
mov eax, dword [0x140378644]
mov dword [rcx + 4], eax
mov eax, dword [0x140378648]
mov dword [rcx + 8], eax
mov eax, dword [0x14037864c]
mov dword [rcx + 0xc], eax
mov eax, dword [0x140378650]
mov dword [rcx + 0x10], eax
mov eax, dword [0x140378654]
mov dword [rcx + 0x14], eax
mov eax, dword [0x140378658]
mov dword [rcx + 0x18], eax
mov eax, dword [0x14037865c]
mov dword [rcx + 0x1c], eax
mov qword [rcx + 0x6c], rdx
add rsp, 0x28
ret
test r8, r8
je case.default.0x14007ec35
xor edx, edx
mov word [rcx + 0x50], dx
mov qword [rcx + 0x48], rdx
mov qword [rcx + 0x40], rdx
mov rax, qword [0x140378660]
mov qword [rcx], rax
mov rax, qword [0x140378668]
mov qword [rcx + 8], rax
mov rax, qword [0x140378670]
mov qword [rcx + 0x10], rax
mov rax, qword [0x140378678]
mov qword [rcx + 0x18], rax
mov rax, qword [0x140378680]
mov qword [rcx + 0x20], rax
mov rax, qword [0x140378688]
mov qword [rcx + 0x28], rax
mov rax, qword [0x140378690]
mov qword [rcx + 0x30], rax
mov rax, qword [0x140378698]
mov qword [rcx + 0x38], rax
mov qword [rcx + 0xd4], rdx
add rsp, 0x28
ret
test r8, r8
je case.default.0x14007ec35
xor edx, edx
mov word [rcx + 0x50], dx
mov qword [rcx + 0x48], rdx
mov qword [rcx + 0x40], rdx
mov rax, qword [0x1403786a0]
mov qword [rcx], rax
mov rax, qword [0x1403786a8]
mov qword [rcx + 8], rax
mov rax, qword [0x1403786b0]
mov qword [rcx + 0x10], rax
mov rax, qword [0x1403786b8]
mov qword [rcx + 0x18], rax
mov rax, qword [0x1403786c0]
mov qword [rcx + 0x20], rax
mov rax, qword [0x1403786c8]
mov qword [rcx + 0x28], rax
mov rax, qword [0x1403786d0]
mov qword [rcx + 0x30], rax
mov rax, qword [0x1403786d8]
mov qword [rcx + 0x38], rax
mov qword [rcx + 0xd4], rdx
add rsp, 0x28
ret
movsxd rax, edx
mov ecx, dword [r9 + rax*4 + 0x7ef8c]
add rcx, r9
jmp rcx
mov edx, 0xa0
mov rcx, r8
call fcn.14004a460
nop
add rsp, 0x28
ret
mov edx, 0x80
mov rcx, r8
call fcn.14004a460
nop
add rsp, 0x28
ret
mov edx, 0xe0
mov rcx, r8
call fcn.14004a460
nop
add rsp, 0x28
ret
mov edx, 0x100
mov rcx, r8
call fcn.14004a460
nop
add rsp, 0x28
ret
mov edx, 0x180
mov rcx, r8
call fcn.14004a460
nop
add rsp, 0x28
ret
mov edx, 0x200
mov rcx, r8
call fcn.14004a460
nop
add rsp, 0x28
ret
mov ecx, edx
call fcn.14007e9f0
movsxd rdx, eax
mov rcx, r8
add rsp, 0x28
jmp 0x140080b60
mov ecx, edx
call fcn.14007e9f0
movsxd rdx, eax
mov rcx, r8
add rsp, 0x28
jmp 0x140081250
add rsp, 0x28
ret
push rbp
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x14037da00]
xor rax, rsp
mov qword [rbp - 0x10], rax
lea rax, [rdx - 1]
cmp rax, 0x3f
ja 0x140080bce
xor eax, eax
mov byte [rbp - 0x50], dl
xorps xmm0, xmm0
mov qword [rbp - 0x3e], rax
xorps xmm1, xmm1
mov dword [rbp - 0x36], eax
lea rdx, [rbp - 0x50]
mov word [rbp - 0x32], ax
movups xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x4f], 0x10100
movups xmmword [rbp - 0x20], xmm1
mov qword [rbp - 0x47], 0
mov byte [rbp - 0x3f], 0
call fcn.140080bf0
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140214310
add rsp, 0x70
pop rbp
ret
mov eax, 0xffffffff
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140214310
add rsp, 0x70
pop rbp
ret
sub rsp, 0x58
mov rax, qword [0x14037da00]
xor rax, rsp
mov qword [rsp + 0x40], rax
lea rax, [rdx - 1]
cmp rax, 0x1f
ja 0x1400812b6
xor eax, eax
mov byte [rsp + 0x20], dl
lea rdx, [rsp + 0x20]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x21], 0x10100
mov dword [rsp + 0x29], 0
mov word [rsp + 0x2d], 0
mov byte [rsp + 0x2f], 0
call fcn.1400812d0
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140214310
add rsp, 0x58
ret
mov eax, 0xffffffff
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140214310
add rsp, 0x58
ret