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

```asm
<GPIO_event_config>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x14(%rbp)
  mov    %esi,-0x18(%rbp)
  mov    -0x14(%rbp),%eax
  sub    $0x20,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  je     L123
  cmpl   $0x0,-0x4(%rbp)
  jns    L67
  mov    $0x20004c,%edx
  mov    -0x14(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %eax,(%rdx)
  jmp    L123
L67:
  mov    $0x200050,%edx
  mov    -0x4(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %eax,(%rdx)
L123:
  mov    -0x18(%rbp),%eax
  and    $0x2,%eax
  test   %eax,%eax
  je     L137
  cmpl   $0x0,-0x4(%rbp)
  jns    L130
  mov    $0x200058,%edx
  mov    -0x14(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %eax,(%rdx)
  jmp    L137
L130:
  mov    $0x20005c,%edx
  mov    -0x4(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %eax,(%rdx)
L137:
  mov    -0x18(%rbp),%eax
  and    $0x4,%eax
  test   %eax,%eax
  je     L150
  cmpl   $0x0,-0x4(%rbp)
  jns    L100
  mov    $0x200064,%edx
  mov    -0x14(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %eax,(%rdx)
  jmp    L150
L100:
  mov    $0x200068,%edx
  mov    -0x4(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %eax,(%rdx)
L150:
  mov    -0x18(%rbp),%eax
  and    $0x8,%eax
  test   %eax,%eax
  je     L178
  cmpl   $0x0,-0x4(%rbp)
  jns    L60
  mov    $0x200070,%edx
  mov    -0x14(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %eax,(%rdx)
  jmp    L178
L60:
  mov    $0x200074,%edx
  mov    -0x4(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %eax,(%rdx)
L178:
  mov    -0x18(%rbp),%eax
  and    $0x10,%eax
  test   %eax,%eax
  je     L118
  cmpl   $0x0,-0x4(%rbp)
  jns    L113
  mov    $0x20007c,%edx
  mov    -0x14(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %eax,(%rdx)
  jmp    L118
L113:
  mov    $0x200080,%edx
  mov    -0x4(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %eax,(%rdx)
L118:
  mov    -0x18(%rbp),%eax
  and    $0x20,%eax
  test   %eax,%eax
  je     L30
  cmpl   $0x0,-0x4(%rbp)
  jns    L47
  mov    $0x200088,%edx
  mov    -0x14(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %eax,(%rdx)
  jmp    L30
L47:
  mov    $0x20008c,%edx
  mov    -0x4(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %eax,(%rdx)
L30:
  nop
  pop    %rbp
  ret
```

assistant: ```c
void GPIO_event_config(uint8_t pin, uint8_t type) {
  ;
  int8_t ev1 = pin - 32;
  if (type & 1) {
    if (ev1 < 0)
      (*((volatile uint32_t *)(0x0020004C))) = (1 << pin);
    else
      (*((volatile uint32_t *)(0x00200050))) = (1 << ev1);
  }
  if (type & 2) {
    if (ev1 < 0)
      (*((volatile uint32_t *)(0x00200058))) = (1 << pin);
    else
      (*((volatile uint32_t *)(0x0020005C))) = (1 << ev1);
  }
  if (type & 4) {
    if (ev1 < 0)
      (*((volatile uint32_t *)(0x00200064))) = (1 << pin);
    else
      (*((volatile uint32_t *)(0x00200068))) = (1 << ev1);
  }
  if (type & 8) {
    if (ev1 < 0)
      (*((volatile uint32_t *)(0x00200070))) = (1 << pin);
    else
      (*((volatile uint32_t *)(0x00200074))) = (1 << ev1);
  }
  if (type & 16) {
    if (ev1 < 0)
      (*((volatile uint32_t *)(0x0020007C))) = (1 << pin);
    else
      (*((volatile uint32_t *)(0x00200080))) = (1 << ev1);
  }
  if (type & 32) {
    if (ev1 < 0)
      (*((volatile uint32_t *)(0x00200088))) = (1 << pin);
    else
      (*((volatile uint32_t *)(0x0020008C))) = (1 << ev1);
  }
}
```