user: Converte this assembly snippet into its equivalent C code:

```asm
<UART0ModuleClkConfig>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    $0x44e000e0,%eax
  mov    (%rax),%eax
  mov    $0x44e000e0,%edx
  or     $0x2,%eax
  mov    %eax,(%rdx)
  nop
L63:
  mov    $0x44e000e0,%eax
  mov    (%rax),%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L63
  mov    $0x44e000dc,%eax
  mov    (%rax),%eax
  mov    $0x44e000dc,%edx
  or     $0x2,%eax
  mov    %eax,(%rdx)
  nop
L121:
  mov    $0x44e000dc,%eax
  mov    (%rax),%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L121
  mov    $0x44e0000c,%eax
  mov    (%rax),%eax
  mov    $0x44e0000c,%edx
  or     $0x2,%eax
  mov    %eax,(%rdx)
  nop
L169:
  mov    $0x44e0000c,%eax
  mov    (%rax),%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L169
  mov    $0x44e0012c,%eax
  mov    (%rax),%eax
  mov    $0x44e0012c,%edx
  or     $0x2,%eax
  mov    %eax,(%rdx)
  nop
L184:
  mov    $0x44e0012c,%eax
  mov    (%rax),%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L184
  mov    $0x44e00004,%eax
  mov    (%rax),%eax
  mov    $0x44e00004,%edx
  or     $0x2,%eax
  mov    %eax,(%rdx)
  nop
L96:
  mov    $0x44e00004,%eax
  mov    (%rax),%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L96
  nop
L9:
  mov    $0x44e000e0,%eax
  mov    (%rax),%eax
  and    $0x30000,%eax
  test   %eax,%eax
  jne    L9
  nop
L0:
  mov    $0x44e000dc,%eax
  mov    (%rax),%eax
  and    $0x30000,%eax
  test   %eax,%eax
  jne    L0
  nop
L53:
  mov    $0x44e0000c,%eax
  mov    (%rax),%eax
  and    $0x10,%eax
  cmp    $0x10,%eax
  jne    L53
  nop
L41:
  mov    $0x44e0012c,%eax
  mov    (%rax),%eax
  and    $0x10,%eax
  cmp    $0x10,%eax
  jne    L41
  nop
L59:
  mov    $0x44e00004,%eax
  mov    (%rax),%eax
  and    $0x8,%eax
  cmp    $0x8,%eax
  jne    L59
  mov    $0x44e00404,%eax
  mov    (%rax),%eax
  mov    $0x44e00404,%edx
  or     $0x2,%eax
  mov    %eax,(%rdx)
  nop
L78:
  mov    $0x44e00404,%eax
  mov    (%rax),%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L78
  mov    $0x44e00400,%eax
  mov    (%rax),%eax
  mov    $0x44e00400,%edx
  or     $0x2,%eax
  mov    %eax,(%rdx)
  nop
L28:
  mov    $0x44e00400,%eax
  mov    (%rax),%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L28
  mov    $0x44e00418,%eax
  mov    (%rax),%eax
  mov    $0x44e00418,%edx
  or     $0x2,%eax
  mov    %eax,(%rdx)
  nop
L11:
  mov    $0x44e00418,%eax
  mov    (%rax),%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L11
  mov    $0x44e004b4,%eax
  mov    (%rax),%eax
  mov    $0x44e004b4,%edx
  or     $0x2,%eax
  mov    %eax,(%rdx)
  nop
L69:
  mov    $0x44e004b4,%eax
  mov    (%rax),%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  jne    L69
  nop
L35:
  mov    $0x44e00404,%eax
  mov    (%rax),%eax
  and    $0x30000,%eax
  test   %eax,%eax
  jne    L35
  nop
L13:
  mov    $0x44e00418,%eax
  mov    (%rax),%eax
  and    $0x8,%eax
  cmp    $0x8,%eax
  jne    L13
  nop
L57:
  mov    $0x44e0040c,%eax
  mov    (%rax),%eax
  and    $0x30000,%eax
  test   %eax,%eax
  jne    L57
  nop
L161:
  mov    $0x44e00400,%eax
  mov    (%rax),%eax
  and    $0x4,%eax
  cmp    $0x4,%eax
  jne    L161
  nop
L76:
  mov    $0x44e004cc,%eax
  mov    (%rax),%eax
  and    $0x4,%eax
  cmp    $0x4,%eax
  jne    L76
  nop
L106:
  mov    $0x44e00400,%eax
  mov    (%rax),%eax
  and    $0x1000,%eax
  cmp    $0x1000,%eax
  jne    L106
  nop
L205:
  mov    $0x44e004b4,%eax
  mov    (%rax),%eax
  and    $0x30000,%eax
  test   %eax,%eax
  jne    L205
  nop
  nop
  pop    %rbp
  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)))
    ;
}
```