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

```asm
<UART0ModuleClkConfig>:
  endbr64
  mov    0x44e000e0,%eax
  or     $0x2,%eax
  mov    %eax,0x44e000e0
L143:
  mov    0x44e000e0,%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L143
  mov    0x44e000dc,%eax
  or     $0x2,%eax
  mov    %eax,0x44e000dc
L181:
  mov    0x44e000dc,%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L181
  mov    0x44e0000c,%eax
  or     $0x2,%eax
  mov    %eax,0x44e0000c
L193:
  mov    0x44e0000c,%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L193
  mov    0x44e0012c,%eax
  or     $0x2,%eax
  mov    %eax,0x44e0012c
L27:
  mov    0x44e0012c,%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L27
  mov    0x44e00004,%eax
  or     $0x2,%eax
  mov    %eax,0x44e00004
L80:
  mov    0x44e00004,%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L80
L209:
  mov    0x44e000e0,%eax
  test   $0x30000,%eax
  jne    L209
L174:
  mov    0x44e000dc,%eax
  test   $0x30000,%eax
  jne    L174
L109:
  mov    0x44e0000c,%eax
  test   $0x10,%al
  je     L109
L60:
  mov    0x44e0012c,%eax
  test   $0x10,%al
  je     L60
L186:
  mov    0x44e00004,%eax
  test   $0x8,%al
  je     L186
  mov    0x44e00404,%eax
  or     $0x2,%eax
  mov    %eax,0x44e00404
L148:
  mov    0x44e00404,%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L148
  mov    0x44e00400,%eax
  or     $0x2,%eax
  mov    %eax,0x44e00400
L55:
  mov    0x44e00400,%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L55
  mov    0x44e00418,%eax
  or     $0x2,%eax
  mov    %eax,0x44e00418
L71:
  mov    0x44e00418,%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L71
  mov    0x44e004b4,%eax
  or     $0x2,%eax
  mov    %eax,0x44e004b4
L204:
  mov    0x44e004b4,%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L204
L75:
  mov    0x44e00404,%eax
  test   $0x30000,%eax
  jne    L75
L56:
  mov    0x44e00418,%eax
  test   $0x8,%al
  je     L56
L70:
  mov    0x44e0040c,%eax
  test   $0x30000,%eax
  jne    L70
L189:
  mov    0x44e00400,%eax
  test   $0x4,%al
  je     L189
L138:
  mov    0x44e004cc,%eax
  test   $0x4,%al
  je     L138
L81:
  mov    0x44e00400,%eax
  test   $0x10,%ah
  je     L81
L111:
  mov    0x44e004b4,%eax
  test   $0x30000,%eax
  jne    L111
  ret
```

assistant: ```c
void UART0ModuleClkConfig(void) {
  (*((volatile unsigned int *)(((0x44E00000) + 0) + (0xe0)))) |= (0x2u);
  while ((0x2u) != ((*((volatile unsigned int *)(((0x44E00000) + 0) + (0xe0)))) & (0x00000003u)))
    ;
  (*((volatile unsigned int *)(((0x44E00000) + 0) + (0xdc)))) |= (0x2u);
  while ((0x2u) != ((*((volatile unsigned int *)(((0x44E00000) + 0) + (0xdc)))) & (0x00000003u)))
    ;
  (*((volatile unsigned int *)(((0x44E00000) + 0) + (0xc)))) |= (0x2u);
  while ((0x2u) != ((*((volatile unsigned int *)(((0x44E00000) + 0) + (0xc)))) & (0x00000003u)))
    ;
  (*((volatile unsigned int *)(((0x44E00000) + 0) + (0x12c)))) |= (0x2u);
  while ((0x2u) != ((*((volatile unsigned int *)(((0x44E00000) + 0) + (0x12c)))) & (0x00000003u)))
    ;
  (*((volatile unsigned int *)(((0x44E00000) + 0) + (0x4)))) |= (0x2u);
  while ((0x2u) != ((*((volatile unsigned int *)(((0x44E00000) + 0) + (0x4)))) & (0x00000003u)))
    ;
  while (((0x0u) << (0x00000010u)) != ((*((volatile unsigned int *)(((0x44E00000) + 0) + (0xe0)))) & (0x00030000u)))
    ;
  while (((0x0u) << (0x00000010u)) != ((*((volatile unsigned int *)(((0x44E00000) + 0) + (0xdc)))) & (0x00030000u)))
    ;
  while ((0x00000010u) != ((*((volatile unsigned int *)(((0x44E00000) + 0) + (0xc)))) & (0x00000010u)))
    ;
  while ((0x00000010u) != ((*((volatile unsigned int *)(((0x44E00000) + 0) + (0x12c)))) & (0x00000010u)))
    ;
  while ((0x00000008u) != ((*((volatile unsigned int *)(((0x44E00000) + 0) + (0x4)))) & (0x00000008u)))
    ;
  (*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0x4)))) |= (0x2u);
  while ((0x2u) != ((*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0x4)))) & (0x00000003u)))
    ;
  (*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0x0)))) |= (0x2u);
  while ((0x2u) != ((*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0x0)))) & (0x00000003u)))
    ;
  (*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0x18)))) |= (0x2u);
  while ((0x2u) != ((*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0x18)))) & (0x00000003u)))
    ;
  (*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0xb4)))) |= (0x2u);
  while ((0x2u) != ((*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0xb4)))) & (0x00000003u)))
    ;
  while (((0x0u) << (0x00000010u)) != ((*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0x4)))) & (0x00030000u)))
    ;
  while ((0x00000008u) != ((*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0x18)))) & (0x00000008u)))
    ;
  while (((0x0u) << (0x00000010u)) != ((*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0xc)))) & (0x00030000u)))
    ;
  while ((0x00000004u) != ((*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0x0)))) & (0x00000004u)))
    ;
  while ((0x00000004u) != ((*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0xcc)))) & (0x00000004u)))
    ;
  while ((0x00001000u) != ((*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0x0)))) & (0x00001000u)))
    ;
  while (((0x0u) << (0x00000010u)) != ((*((volatile unsigned int *)(((0x44E00000) + 0x400) + (0xb4)))) & (0x00030000u)))
    ;
}
```