user: 提供的汇编代码用C语言表示会是什么样子：

```asm
<aegis128_enc_aut_step>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x38,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    %rsi,-0x30(%rbp)
  mov    %rdx,-0x38(%rbp)
  mov    -0x28(%rbp),%rax
  mov    %rax,%rdi
  call   <_mm_load_si128@plt>
  mov    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x1c(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%edx
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_and_si128@plt>
  mov    %eax,-0x18(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%edx
  mov    -0x20(%rbp),%eax
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_xor_si128@plt>
  mov    %eax,-0x14(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%edx
  mov    -0x14(%rbp),%eax
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_xor_si128@plt>
  mov    %eax,-0x14(%rbp)
  mov    -0x18(%rbp),%edx
  mov    -0x14(%rbp),%eax
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_xor_si128@plt>
  mov    %eax,-0x14(%rbp)
  mov    -0x14(%rbp),%edx
  mov    -0x30(%rbp),%rax
  mov    %edx,%esi
  mov    %rax,%rdi
  call   <_mm_store_si128@plt>
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%edx
  mov    -0x38(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  mov    -0x38(%rbp),%rcx
  lea    0x10(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_aesenc_si128@plt>
  mov    %eax,(%rbx)
  mov    -0x38(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%edx
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  mov    -0x38(%rbp),%rcx
  lea    0xc(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_aesenc_si128@plt>
  mov    %eax,(%rbx)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%edx
  mov    -0x38(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  mov    -0x38(%rbp),%rcx
  lea    0x8(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_aesenc_si128@plt>
  mov    %eax,(%rbx)
  mov    -0x38(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%edx
  mov    -0x38(%rbp),%rax
  mov    (%rax),%eax
  mov    -0x38(%rbp),%rcx
  lea    0x4(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_aesenc_si128@plt>
  mov    %eax,(%rbx)
  mov    -0x38(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x1c(%rbp),%eax
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_aesenc_si128@plt>
  mov    -0x38(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x38(%rbp),%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%edx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_xor_si128@plt>
  mov    -0x38(%rbp),%rdx
  mov    %eax,(%rdx)
  nop
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

assistant: ```c
void aegis128_enc_aut_step(const unsigned char *plaintextblk, unsigned char *ciphertextblk, __m128i *state) {
  __m128i t, ct;
  __m128i msg = _mm_load_si128((__m128i *)plaintextblk);
  __m128i tmp = state[4];
  t = _mm_and_si128(state[2], state[3]);
  ct = _mm_xor_si128(msg, state[4]);
  ct = _mm_xor_si128(ct, state[1]);
  ct = _mm_xor_si128(ct, t);
  _mm_store_si128((__m128i *)ciphertextblk, ct);
  state[4] = _mm_aesenc_si128(state[3], state[4]);
  state[3] = _mm_aesenc_si128(state[2], state[3]);
  state[2] = _mm_aesenc_si128(state[1], state[2]);
  state[1] = _mm_aesenc_si128(state[0], state[1]);
  state[0] = _mm_aesenc_si128(tmp, state[0]);
  state[0] = _mm_xor_si128(state[0], msg);
}
```