Function at 0x14000c270
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r14, r9
mov r15, r8
mov rdi, rdx
mov rsi, rcx
mov rbp, qword [0x14016e368]
movzx eax, byte [rbp]
mov ecx, 0x40
mov edx, 1
call sym.__rust_alloc
test rax, rax
je 0x14000c689
mov rbx, rax
movabs r13, 0x2000000000000000
pxor xmm0, xmm0
movdqu xmmword [rax + 0x30], xmm0
movdqu xmmword [rax + 0x20], xmm0
movdqu xmmword [rax + 0x10], xmm0
movdqu xmmword [rax], xmm0
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 0x40
mov qword [rsp + 0x38], 0x40
cmp r14, 0x41
jb 0x14000c3cc
cmp byte [rdi + 0x70], 0
jne 0x14000c6ff
cmp r14, r13
jae 0x14000c719
lea rax, [r14*8]
add rax, qword [rdi]
jb 0x14000c733
mov qword [rdi], rax
lea rax, [rdi + 0x50]
mov qword [rsp + 0x40], rax
lea rcx, [rdi + 8]
lea r9, [rsp + 0x40]
mov rdx, r15
mov r8, r14
call sym.__crypto::cryptoutil::FixedBuffer64_as_crypto::cryptoutil::FixedBuffer_::input::h3ea1ba1ca3532291
mov rcx, rdi
call sym._ZN6crypto4sha29Engine2566finish17h6361bc73d1478511E.llvm.7797873040375068835
movdqu xmm0, xmmword [rdi + 0x50]
pxor xmm1, xmm1
movdqa xmm2, xmm0
punpckhbw xmm2, xmm1
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpcklbw xmm0, xmm1
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm2
movdqu xmmword [rbx], xmm0
movdqu xmm0, xmmword [rdi + 0x60]
movdqa xmm2, xmm0
punpckhbw xmm2, xmm1
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpcklbw xmm0, xmm1
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm2
movdqu xmmword [rbx + 0x10], xmm0
mov qword [rdi], 0
mov qword [rdi + 0x48], 0
movaps xmm0, xmmword [0x14012b680]
movups xmmword [rdi + 0x60], xmm0
movdqa xmm0, xmmword [0x14012b690]
movdqu xmmword [rdi + 0x50], xmm0
mov byte [rdi + 0x70], 0
jmp 0x14000c3da
mov rcx, rbx
mov rdx, r15
mov r8, r14
call sym.memcpy
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x50], rbx
movdqu xmm0, xmmword [rsp + 0x28]
movdqa xmmword [rsp + 0x40], xmm0
test rbx, rbx
je 0x14000c44a
setns al
js 0x14000c6eb
mov r12, qword [rsp + 0x40]
movzx r14d, al
movzx eax, byte [rbp]
mov rcx, rbx
mov rdx, r14
call sym.__rust_alloc
test rax, rax
je 0x14000c6f2
mov r15, rax
mov r14, rax
mov rcx, r15
mov rdx, r12
mov r8, rbx
call sym.memcpy
mov rcx, r12
cmp rbx, 8
jb 0x14000c4da
cmp rbx, 0x20
jae 0x14000c455
xor eax, eax
jmp 0x14000c4a5
mov r14d, 1
jmp 0x14000c59b
mov rax, rbx
and rax, 0xffffffffffffffe0
xor ecx, ecx
movdqa xmm0, xmmword [str.6666666666666666_]
nop word cs:[rax + rax]
movdqu xmm1, xmmword [r12 + rcx]
movdqu xmm2, xmmword [r12 + rcx + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [r12 + rcx], xmm1
movdqu xmmword [r12 + rcx + 0x10], xmm2
add rcx, 0x20
cmp rax, rcx
jne 0x14000c470
cmp rbx, rax
je 0x14000c4eb
test bl, 0x18
je 0x14000c4d4
mov rdx, rbx
and rdx, 0xfffffffffffffff8
lea rcx, [r12 + rdx]
movabs r8, 0x3636363636363636
nop word [rax + rax]
xor qword [r12 + rax], r8
add rax, 8
cmp rdx, rax
jne 0x14000c4c0
cmp rbx, rdx
jne 0x14000c4da
jmp 0x14000c4eb
add rax, r12
mov rcx, rax
add r12, rbx
nop dword [rax]
xor byte [rcx], 0x36
inc rcx
cmp rcx, r12
jne 0x14000c4e0
mov rcx, r14
cmp rbx, 8
jb 0x14000c58a
cmp rbx, 0x20
jae 0x14000c502
xor eax, eax
jmp 0x14000c555
mov rax, rbx
and rax, 0xffffffffffffffe0
xor ecx, ecx
movdqa xmm0, xmmword [0x14012b6b0]
nop word cs:[rax + rax]
movdqu xmm1, xmmword [r14 + rcx]
movdqu xmm2, xmmword [r14 + rcx + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [r14 + rcx], xmm1
movdqu xmmword [r14 + rcx + 0x10], xmm2
add rcx, 0x20
cmp rax, rcx
jne 0x14000c520
cmp rbx, rax
je 0x14000c59b
test bl, 0x18
je 0x14000c584
mov rdx, rbx
and rdx, 0xfffffffffffffff8
lea rcx, [r15 + rdx]
movabs r8, 0x5c5c5c5c5c5c5c5c
nop word [rax + rax]
xor qword [r14 + rax], r8
add rax, 8
cmp rdx, rax
jne 0x14000c570
cmp rbx, rdx
jne 0x14000c58a
jmp 0x14000c59b
add rax, r15
mov rcx, rax
add r15, rbx
nop dword [rax]
xor byte [rcx], 0x5c
inc rcx
cmp rcx, r15
jne 0x14000c590
mov r8, qword [rsp + 0x50]
mov qword [rsp + 0x70], r8
movdqa xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rbx
cmp byte [rdi + 0x70], 0
jne 0x14000c69a
cmp r8, r13
jae 0x14000c6b7
lea rax, [r8*8]
add rax, qword [rdi]
jb 0x14000c6d1
mov rdx, qword [rsp + 0x60]
mov qword [rdi], rax
lea rax, [rdi + 0x50]
mov qword [rsp + 0x40], rax
lea rcx, [rdi + 8]
lea r9, [rsp + 0x40]
call sym.__crypto::cryptoutil::FixedBuffer64_as_crypto::cryptoutil::FixedBuffer_::input::h3ea1ba1ca3532291
mov rax, qword [rdi + 0x70]
mov qword [rsi + 0xa0], rax
movups xmm0, xmmword [rdi + 0x60]
movups xmmword [rsi + 0x90], xmm0
movups xmm0, xmmword [rdi + 0x50]
movups xmmword [rsi + 0x80], xmm0
movups xmm0, xmmword [rdi + 0x40]
movups xmmword [rsi + 0x70], xmm0
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmm3, xmmword [rdi + 0x30]
movups xmmword [rsi + 0x60], xmm3
movups xmmword [rsi + 0x50], xmm2
movups xmmword [rsi + 0x40], xmm1
movups xmmword [rsi + 0x30], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rsi], xmm0
mov rax, qword [rsp + 0x70]
mov qword [rsi + 0x10], rax
mov rax, qword [rsp + 0x38]
mov qword [rsi + 0x28], rax
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rsi + 0x18], xmm0
mov byte [rsi + 0xa8], 0
mov rax, rsi
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 1
mov edx, 0x40
call dbg.handle_alloc_error
ud2
lea rcx, str.assertion_failed:__self.finished
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_sha2.rs
mov edx, 0x20
call dbg.panic
jmp 0x14000c74b
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0c0]
mov edx, 0x19
call sym.std::panicking::begin_panic::h8a6b93740170dc30
jmp 0x14000c74b
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0a8]
mov edx, 0x19
call dbg.expect_failed
jmp 0x14000c74b
call dbg.capacity_overflow
jmp 0x14000c74b
mov rcx, r14
mov rdx, rbx
call dbg.handle_alloc_error
jmp 0x14000c74b
lea rcx, str.assertion_failed:__self.finished
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_sha2.rs
mov edx, 0x20
call dbg.panic
jmp 0x14000c74b
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0c0]
mov edx, 0x19
call sym.std::panicking::begin_panic::h8a6b93740170dc30
jmp 0x14000c74b
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0a8]
mov edx, 0x19
call dbg.expect_failed
ud2