user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<AESConfigSet>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,-0x4(%rbp)
  mov    %esi,-0x8(%rbp)
  cmpl   $0x44036000,-0x4(%rbp)
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <ASSERT@plt>
  mov    -0x8(%rbp),%eax
  and    $0x4,%eax
  test   %eax,%eax
  setne  %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <ASSERT@plt>
  mov    -0x8(%rbp),%eax
  and    $0x8,%eax
  test   %eax,%eax
  jne    L280
  mov    -0x8(%rbp),%eax
  and    $0x10,%eax
  test   %eax,%eax
  jne    L280
  mov    -0x8(%rbp),%eax
  and    $0x18,%eax
  test   %eax,%eax
  je     L302
L280:
  mov    $0x1,%eax
  jmp    L36
L302:
  mov    $0x0,%eax
L36:
  mov    %eax,%edi
  call   <ASSERT@plt>
  mov    -0x8(%rbp),%eax
  and    $0x20,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x40,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x200,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x400,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x800,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x1000,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x1800,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x2000,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x20004000,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x40,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x20008000,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x20010000,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x20020040,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x20030040,%eax
  test   %eax,%eax
  jne    L175
  mov    -0x8(%rbp),%eax
  and    $0x20040040,%eax
  test   %eax,%eax
  je     L209
L175:
  mov    $0x1,%eax
  jmp    L65
L209:
  mov    $0x0,%eax
L65:
  mov    %eax,%edi
  call   <ASSERT@plt>
  mov    -0x8(%rbp),%eax
  and    $0x40,%eax
  test   %eax,%eax
  jne    L457
  mov    -0x8(%rbp),%eax
  and    $0x20010000,%eax
  test   %eax,%eax
  jne    L457
  mov    -0x8(%rbp),%eax
  and    $0x20020040,%eax
  test   %eax,%eax
  jne    L457
  mov    -0x8(%rbp),%eax
  and    $0x20030040,%eax
  test   %eax,%eax
  jne    L457
  mov    -0x8(%rbp),%eax
  and    $0x20040040,%eax
  test   %eax,%eax
  je     L129
L457:
  mov    -0x8(%rbp),%eax
  and    $0x80,%eax
  test   %eax,%eax
  jne    L47
  mov    -0x8(%rbp),%eax
  and    $0x100,%eax
  test   %eax,%eax
  jne    L47
  mov    -0x8(%rbp),%eax
  and    $0x180,%eax
  test   %eax,%eax
  je     L129
L47:
  mov    $0x1,%eax
  jmp    L77
L129:
  mov    $0x0,%eax
L77:
  mov    %eax,%edi
  call   <ASSERT@plt>
  mov    -0x8(%rbp),%eax
  and    $0x20040040,%eax
  test   %eax,%eax
  je     L300
  mov    -0x8(%rbp),%eax
  and    $0x80000,%eax
  test   %eax,%eax
  jne    L290
  mov    -0x8(%rbp),%eax
  and    $0x100000,%eax
  test   %eax,%eax
  jne    L290
  mov    -0x8(%rbp),%eax
  and    $0x180000,%eax
  test   %eax,%eax
  jne    L290
  mov    -0x8(%rbp),%eax
  and    $0x200000,%eax
  test   %eax,%eax
  jne    L290
  mov    -0x8(%rbp),%eax
  and    $0x280000,%eax
  test   %eax,%eax
  jne    L290
  mov    -0x8(%rbp),%eax
  and    $0x300000,%eax
  test   %eax,%eax
  jne    L290
  mov    -0x8(%rbp),%eax
  and    $0x380000,%eax
  test   %eax,%eax
  je     L300
L290:
  mov    -0x8(%rbp),%eax
  and    $0x400000,%eax
  test   %eax,%eax
  jne    L307
  mov    -0x8(%rbp),%eax
  and    $0x800000,%eax
  test   %eax,%eax
  jne    L307
  mov    -0x8(%rbp),%eax
  and    $0xc00000,%eax
  test   %eax,%eax
  jne    L307
  mov    -0x8(%rbp),%eax
  and    $0x1000000,%eax
  test   %eax,%eax
  jne    L307
  mov    -0x8(%rbp),%eax
  and    $0x1400000,%eax
  test   %eax,%eax
  jne    L307
  mov    -0x8(%rbp),%eax
  and    $0x1800000,%eax
  test   %eax,%eax
  jne    L307
  mov    -0x8(%rbp),%eax
  and    $0x1c00000,%eax
  test   %eax,%eax
  je     L300
L307:
  mov    $0x1,%eax
  jmp    L400
L300:
  mov    $0x0,%eax
L400:
  mov    %eax,%edi
  call   <ASSERT@plt>
  mov    -0x4(%rbp),%eax
  add    $0x50,%eax
  cltq
  mov    (%rax),%eax
  and    $0x20000000,%eax
  test   %eax,%eax
  je     L156
  orl    $0x20000000,-0x8(%rbp)
L156:
  mov    -0x4(%rbp),%eax
  add    $0x50,%eax
  cltq
  mov    %rax,%rdx
  mov    -0x8(%rbp),%eax
  mov    %eax,(%rdx)
  nop
  leave
  ret
```

assistant: ```c
void AESConfigSet(uint32_t ui32Base, uint32_t ui32Config) {
  ASSERT(ui32Base == 0x44036000);
  ASSERT((ui32Config & 0x00000004) || (ui32Config & 0x00000000));
  ASSERT((ui32Config & 0x00000008) || (ui32Config & 0x00000010) || (ui32Config & 0x00000018));
  ASSERT((ui32Config & 0x00000000) || (ui32Config & 0x00000020) || (ui32Config & 0x00000040) || (ui32Config & 0x00000200) || (ui32Config & 0x00000400) || (ui32Config & 0x00000800) || (ui32Config & 0x00001000) || (ui32Config & 0x00001800) || (ui32Config & 0x00002000) || (ui32Config & 0x20004000) || (ui32Config & 0x00000040) || (ui32Config & 0x20008000) || (ui32Config & 0x20010000) || (ui32Config & 0x20020040) || (ui32Config & 0x20030040) || (ui32Config & 0x20040040));
  ASSERT(((ui32Config & 0x00000040) || (ui32Config & 0x20010000) || (ui32Config & 0x20020040) || (ui32Config & 0x20030040) || (ui32Config & 0x20040040)) && ((ui32Config & 0x00000000) || (ui32Config & 0x00000080) || (ui32Config & 0x00000100) || (ui32Config & 0x00000180)));
  ASSERT((ui32Config & 0x20040040) && ((ui32Config & 0x00000000) || (ui32Config & 0x00080000) || (ui32Config & 0x00100000) || (ui32Config & 0x00180000) || (ui32Config & 0x00200000) || (ui32Config & 0x00280000) || (ui32Config & 0x00300000) || (ui32Config & 0x00380000)) && ((ui32Config & 0x00400000) || (ui32Config & 0x00800000) || (ui32Config & 0x00c00000) || (ui32Config & 0x01000000) || (ui32Config & 0x01400000) || (ui32Config & 0x01800000) || (ui32Config & 0x01c00000)));
  if ((*((volatile uint32_t *)(ui32Base + 0x00000050))) & 0x20000000) {
    ui32Config |= 0x20000000;
  }
  (*((volatile uint32_t *)(ui32Base + 0x00000050))) = ui32Config;
}
```