Function at 0x14002bbe0
Capabilities:
Authenticate hmac
Encode data using xor
Hash data using sha1
Hash data using sha224
Hash data using sha256

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r14d, r9d
mov rbp, r8
mov rbx, rcx
test rcx, rcx
je case.default.0x14002bda3
test r8, r8
jne 0x14002bc1c
test r9d, r9d
jne case.default.0x14002bda3
lea eax, [rdx - 3]
cmp eax, 5
jbe 0x14002bc30
lea eax, [rdx - 0xa]
cmp eax, 3
ja case.default.0x14002bda3
mov byte [rcx + 0x228], dl
add edx, 0xfffffffd
mov byte [rcx + 0x229], 0
cmp edx, 5
ja case.default.0x14002bc5e
lea r8, [0x140000000]
movsxd rax, edx
mov eax, dword [r8 + rax*4 + 0x2c268]
add rax, r8
jmp rax
mov dword [rcx + 0x58], 0x10325476
xor r15d, r15d
mov dword [rcx + 0x54], 0x98badcfe
mov esi, r15d
mov dword [rcx + 0x50], 0xefcdab89
mov dword [rcx + 0x4c], 0x67452301
mov qword [rcx + 0x60], r15
mov qword [rcx], r15
mov dword [rcx + 8], r15d
mov qword [rcx + 0x220], r15
jmp 0x14002bd6a
mov dword [rcx + 0x5c], 0xc3d2e1f0
jmp case.0x14002bc5e.3
xor r15d, r15d
mov qword [rcx + 0x70], r15
mov esi, r15d
mov dword [rcx], 0xc1059ed8
mov dword [rcx + 4], 0x367cd507
mov dword [rcx + 8], 0x3070dd17
mov dword [rcx + 0xc], 0xf70e5939
mov dword [rcx + 0x10], 0xffc00b31
mov dword [rcx + 0x14], 0x68581511
mov dword [rcx + 0x18], 0x64f98fa7
mov dword [rcx + 0x1c], 0xbefa4fa4
mov qword [rcx + 0x60], r15
mov dword [rcx + 0x68], r15d
mov qword [rcx + 0x220], r15
jmp 0x14002bd6a
xor r15d, r15d
mov qword [rcx + 0x70], r15
mov esi, r15d
mov dword [rcx], 0x6a09e667
mov dword [rcx + 4], 0xbb67ae85
mov dword [rcx + 8], 0x3c6ef372
mov dword [rcx + 0xc], 0xa54ff53a
mov dword [rcx + 0x10], 0x510e527f
mov dword [rcx + 0x14], 0x9b05688c
mov dword [rcx + 0x18], 0x1f83d9ab
mov dword [rcx + 0x1c], 0x5be0cd19
mov qword [rcx + 0x60], r15
mov dword [rcx + 0x68], r15d
mov qword [rcx + 0x220], r15
jmp 0x14002bd6a
xor edx, edx
call fcn.14002b9d0
jmp 0x14002bd56
xor edx, edx
call fcn.140029190
xor r15d, r15d
mov esi, eax
mov qword [rcx + 0x220], r15
test eax, eax
jne 0x14002c242
movzx eax, byte [rcx + 0x228]
lea rdi, [rcx + 0x160]
add eax, 0xfffffffd
mov qword [rsp + 0x28], rdi
lea r12, [rcx + 0xe0]
cmp eax, 5
ja case.default.0x14002bda3
cdqe
mov r13d, 0x20
mov ecx, dword [r8 + rax*4 + 0x2c280]
add rcx, r8
jmp rcx
mov edx, 0x40
mov dword [rsp + 0x60], edx
cmp r14d, edx
jbe 0x14002c056
mov esi, r15d
test rbp, rbp
je 0x14002c22a
mov r8d, dword [rbx]
cmp r8d, edx
jb 0x14002bdd7
mov esi, 0xffffff7c
mov eax, esi
jmp 0x14002c24b
mov ecx, dword [rbx + 4]
lea eax, [rcx + r14]
mov dword [rbx + 4], eax
cmp eax, ecx
jae 0x14002bde8
inc dword [rbx + 8]
lea r13, [rbx + 0xc]
test r8d, r8d
je 0x14002be3f
sub edx, r8d
lea rcx, [r8 + r13]
cmp r14d, edx
cmovb edx, r14d
mov dword [rsp + 0x20], edx
mov edi, edx
mov r8d, edx
mov rdx, rbp
call fcn.1400b14c0
mov eax, dword [rsp + 0x20]
add rbp, rdi
add dword [rbx], eax
sub r14d, eax
cmp dword [rbx], 0x40
jne 0x14002be39
mov rdx, r13
mov rcx, rbx
call fcn.140057fe0
mov esi, eax
test eax, eax
jne 0x14002c22f
mov dword [rbx], r15d
cmp r14d, 0x40
jb 0x14002be8f
mov edi, r14d
shr rdi, 6
nop word [rax + rax]
movups xmm0, xmmword [rbp]
mov rdx, r13
mov rcx, rbx
add r14d, 0xffffffc0
movups xmmword [r13], xmm0
movups xmm1, xmmword [rbp + 0x10]
movups xmmword [r13 + 0x10], xmm1
movups xmm0, xmmword [rbp + 0x20]
movups xmmword [r13 + 0x20], xmm0
movups xmm1, xmmword [rbp + 0x30]
add rbp, 0x40
movups xmmword [r13 + 0x30], xmm1
call fcn.140057fe0
mov esi, eax
sub rdi, 1
jne 0x14002be50
test r14d, r14d
je 0x14002bea5
mov r8d, r14d
mov rdx, rbp
mov rcx, r13
call fcn.1400b14c0
mov dword [rbx], r14d
test esi, esi
jne 0x14002c22f
mov rdx, r12
mov rcx, rbx
call fcn.140058940
mov esi, eax
test eax, eax
jne 0x14002c22f
mov rdi, qword [rsp + 0x28]
lea r14d, [rax + 0x10]
lea r13d, [rax + 0x20]
jmp 0x14002c0f2
mov dword [rsp + 0x60], 0x40
cmp r14d, 0x40
jbe 0x14002c056
mov r8d, r14d
mov rdx, rbp
mov rcx, rbx
call fcn.140036a30
mov esi, eax
test eax, eax
jne 0x14002c22f
mov rdx, r12
mov rcx, rbx
call fcn.140036f30
mov esi, eax
test eax, eax
jne 0x14002c22f
lea r14d, [rax + 0x14]
jmp 0x14002c0f2
mov dword [rsp + 0x60], 0x40
cmp r14d, 0x40
jbe 0x14002c056
test rbp, rbp
je 0x14002c22a
mov r8d, r14d
mov rdx, rbp
mov rcx, rbx
call fcn.140033850
mov esi, eax
test eax, eax
jne 0x14002c22f
mov rdx, r12
mov rcx, rbx
call fcn.140034430
mov esi, eax
test eax, eax
jne 0x14002c22f
lea r14d, [rax + 0x1c]
jmp 0x14002c0f2
mov dword [rsp + 0x60], 0x40
cmp r14d, 0x40
jbe 0x14002c056
test rbp, rbp
je 0x14002c22a
mov r8d, r14d
mov rdx, rbp
mov rcx, rbx
call fcn.140033850
mov esi, eax
test eax, eax
jne 0x14002c22f
mov rdx, r12
mov rcx, rbx
call fcn.1400342c0
mov esi, eax
test eax, eax
jne 0x14002c22f
mov r14d, r13d
jmp 0x14002c0f2
mov dword [rsp + 0x60], 0x80
cmp r14d, 0x80
jbe 0x14002c056
test rbp, rbp
je 0x14002c22a
mov r8d, r14d
mov rdx, rbp
mov rcx, rbx
call fcn.14002a340
mov esi, eax
test eax, eax
jne 0x14002c22f
test r12, r12
je 0x14002c22a
mov rcx, rbx
call fcn.14002a930
mov esi, eax
test eax, eax
jne 0x14002c22f
movups xmm0, xmmword [rbx]
mov rcx, rbx
movups xmmword [r12], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r12 + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [r12 + 0x20], xmm0
call fcn.14002b710
mov esi, eax
test eax, eax
jne 0x14002c22f
lea r14d, [rax + 0x30]
jmp 0x14002c0f2
mov dword [rsp + 0x60], 0x80
cmp r14d, 0x80
ja 0x14002c078
test rbp, rbp
je 0x14002c069
mov r8, r14
mov rdx, rbp
mov rcx, r12
call fcn.1400b14c0
mov ebx, dword [rsp + 0x60]
cmp r14d, ebx
jae 0x14002c109
jmp 0x14002c0f6
test rbp, rbp
je 0x14002c22a
mov r8d, r14d
mov rdx, rbp
mov rcx, rbx
call fcn.14002a340
mov esi, eax
test eax, eax
jne 0x14002c22f
test r12, r12
je 0x14002c22a
mov rcx, rbx
call fcn.14002a930
mov esi, eax
test eax, eax
jne 0x14002c22f
movups xmm0, xmmword [rbx]
mov rcx, rbx
movups xmmword [r12], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r12 + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [r12 + 0x20], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [r12 + 0x30], xmm1
call fcn.1400290f0
mov esi, eax
test eax, eax
jne 0x14002c22f
mov r14d, 0x40
mov ebx, dword [rsp + 0x60]
mov r8d, ebx
mov ecx, r14d
sub r8d, r14d
add rcx, r12
xor edx, edx
call fcn.1400b1300
mov r14d, dword [rsp + 0x60]
test r14d, r14d
je 0x14002c22f
cmp r14d, 0x40
jb 0x14002c1f7
lea eax, [r14 - 1]
lea rdx, [rax + r12]
add rax, rdi
cmp r12, rax
ja 0x14002c13a
cmp rdx, rdi
jae 0x14002c1f7
movdqa xmm3, xmmword [0x1400fd000]
movdqa xmm4, xmmword [0x1400fcfd0]
nop word [rax + rax]
mov eax, r15d
movdqa xmm0, xmm3
movdqa xmm1, xmm4
add r15d, 0x40
movdqu xmm2, xmmword [rax + r12]
pxor xmm0, xmm2
pxor xmm1, xmm2
movdqu xmmword [rax + r12], xmm1
movdqu xmmword [rax + rdi], xmm0
lea eax, [r13 - 0x10]
movdqa xmm0, xmm3
movdqa xmm1, xmm4
movdqu xmm2, xmmword [rax + r12]
pxor xmm0, xmm2
pxor xmm1, xmm2
movdqu xmmword [rax + r12], xmm1
movdqu xmmword [rax + rdi], xmm0
mov eax, r13d
movdqa xmm0, xmm3
movdqa xmm1, xmm4
movdqu xmm2, xmmword [rax + r12]
pxor xmm0, xmm2
pxor xmm1, xmm2
movdqu xmmword [rax + r12], xmm1
movdqu xmmword [rax + rdi], xmm0
lea eax, [r13 + 0x10]
add r13d, 0x40
movdqa xmm0, xmm3
movdqa xmm1, xmm4
movdqu xmm2, xmmword [rax + r12]
pxor xmm0, xmm2
pxor xmm1, xmm2
movdqu xmmword [rax + rdi], xmm0
movdqu xmmword [rax + r12], xmm1
cmp r15d, r14d
jb 0x14002c150
mov eax, esi
jmp 0x14002c24b
mov ecx, r15d
add rcx, r12
sub r14d, r15d
mov edx, r14d
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
xor al, 0x5c
mov byte [rcx + 0x7f], al
xor byte [rcx - 1], 0x36
sub rdx, 1
jne 0x14002c210
mov eax, esi
jmp 0x14002c24b
mov esi, 0xffffff53
mov eax, esi
jmp 0x14002c24b
xor r15d, r15d
mov esi, 0xffffff53
mov qword [rcx + 0x220], r15
mov eax, esi
jmp 0x14002c24b
mov eax, 0xffffff53
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret