user: 下面的汇编指令对应的C源代码是什么：

```asm
<init_interrupts>:
  endbr64
  sub    $0x8,%rsp
  xor    %eax,%eax
  call   <disable_interrupts@plt>
  xor    %esi,%esi
  mov    $0x21,%edi
  call   <outb@plt>
  xor    %esi,%esi
  mov    $0xa1,%edi
  call   <outb@plt>
  mov    D16(%rip),%rsi
  mov    $0x20,%edi
  call   <create_gate@plt>
  mov    D157(%rip),%rsi
  mov    $0x21,%edi
  call   <create_gate@plt>
  mov    D29(%rip),%rsi
  mov    $0x22,%edi
  call   <create_gate@plt>
  mov    D229(%rip),%rsi
  mov    $0x23,%edi
  call   <create_gate@plt>
  mov    D286(%rip),%rsi
  mov    $0x24,%edi
  call   <create_gate@plt>
  mov    D267(%rip),%rsi
  mov    $0x25,%edi
  call   <create_gate@plt>
  mov    D263(%rip),%rsi
  mov    $0x26,%edi
  call   <create_gate@plt>
  mov    D46(%rip),%rsi
  mov    $0x27,%edi
  call   <create_gate@plt>
  mov    D34(%rip),%rsi
  mov    $0x28,%edi
  call   <create_gate@plt>
  mov    D37(%rip),%rsi
  mov    $0x29,%edi
  call   <create_gate@plt>
  mov    D21(%rip),%rsi
  mov    $0x2a,%edi
  call   <create_gate@plt>
  mov    D77(%rip),%rsi
  mov    $0x2b,%edi
  call   <create_gate@plt>
  mov    D214(%rip),%rsi
  mov    $0x2c,%edi
  call   <create_gate@plt>
  mov    D17(%rip),%rsi
  mov    $0x2d,%edi
  call   <create_gate@plt>
  mov    D243(%rip),%rsi
  mov    $0x2e,%edi
  call   <create_gate@plt>
  mov    D126(%rip),%rsi
  mov    $0x2f,%edi
  call   <create_gate@plt>
  mov    D30(%rip),%rsi
  xor    %edi,%edi
  call   <create_gate@plt>
  mov    D162(%rip),%rsi
  mov    $0x1,%edi
  call   <create_gate@plt>
  mov    D314(%rip),%rsi
  mov    $0x2,%edi
  call   <create_gate@plt>
  mov    D349(%rip),%rsi
  mov    $0x3,%edi
  call   <create_gate@plt>
  mov    D210(%rip),%rsi
  mov    $0x4,%edi
  call   <create_gate@plt>
  mov    D340(%rip),%rsi
  mov    $0x5,%edi
  call   <create_gate@plt>
  mov    D86(%rip),%rsi
  mov    $0x6,%edi
  call   <create_gate@plt>
  mov    D315(%rip),%rsi
  mov    $0x7,%edi
  call   <create_gate@plt>
  mov    D352(%rip),%rsi
  mov    $0x8,%edi
  call   <create_gate@plt>
  mov    D105(%rip),%rsi
  mov    $0x9,%edi
  call   <create_gate@plt>
  mov    D52(%rip),%rsi
  mov    $0xa,%edi
  call   <create_gate@plt>
  mov    D56(%rip),%rsi
  mov    $0xb,%edi
  call   <create_gate@plt>
  mov    D143(%rip),%rsi
  mov    $0xc,%edi
  call   <create_gate@plt>
  mov    D270(%rip),%rsi
  mov    $0xd,%edi
  call   <create_gate@plt>
  mov    D125(%rip),%rsi
  mov    $0xe,%edi
  call   <create_gate@plt>
  mov    D253(%rip),%rsi
  mov    $0xf,%edi
  call   <create_gate@plt>
  mov    D94(%rip),%rsi
  mov    $0x10,%edi
  call   <create_gate@plt>
  mov    D285(%rip),%rsi
  mov    $0x11,%edi
  call   <create_gate@plt>
  mov    D64(%rip),%rsi
  mov    $0x12,%edi
  call   <create_gate@plt>
  mov    D248(%rip),%rsi
  mov    $0x13,%edi
  call   <create_gate@plt>
  xor    %eax,%eax
  add    $0x8,%rsp
  jmp    10b0 <enable_interrupts@plt>
```

assistant: ```c
void init_interrupts() {
  disable_interrupts();
  outb(0x21, 0);
  outb(0xa1, 0);
  extern void irq0();
  create_gate(32, irq0);
  ;
  extern void irq1();
  create_gate(33, irq1);
  ;
  extern void irq2();
  create_gate(34, irq2);
  ;
  extern void irq3();
  create_gate(35, irq3);
  ;
  extern void irq4();
  create_gate(36, irq4);
  ;
  extern void irq5();
  create_gate(37, irq5);
  ;
  extern void irq6();
  create_gate(38, irq6);
  ;
  extern void irq7();
  create_gate(39, irq7);
  ;
  extern void irq8();
  create_gate(40, irq8);
  ;
  extern void irq9();
  create_gate(41, irq9);
  ;
  extern void irq10();
  create_gate(42, irq10);
  ;
  extern void irq11();
  create_gate(43, irq11);
  ;
  extern void irq12();
  create_gate(44, irq12);
  ;
  extern void irq13();
  create_gate(45, irq13);
  ;
  extern void irq14();
  create_gate(46, irq14);
  ;
  extern void irq15();
  create_gate(47, irq15);
  ;
  extern void isr0();
  create_gate(0, isr0);
  ;
  extern void isr1();
  create_gate(1, isr1);
  ;
  extern void isr2();
  create_gate(2, isr2);
  ;
  extern void isr3();
  create_gate(3, isr3);
  ;
  extern void isr4();
  create_gate(4, isr4);
  ;
  extern void isr5();
  create_gate(5, isr5);
  ;
  extern void isr6();
  create_gate(6, isr6);
  ;
  extern void isr7();
  create_gate(7, isr7);
  ;
  extern void isr8();
  create_gate(8, isr8);
  ;
  extern void isr9();
  create_gate(9, isr9);
  ;
  extern void isr10();
  create_gate(10, isr10);
  ;
  extern void isr11();
  create_gate(11, isr11);
  ;
  extern void isr12();
  create_gate(12, isr12);
  ;
  extern void isr13();
  create_gate(13, isr13);
  ;
  extern void isr14();
  create_gate(14, isr14);
  ;
  extern void isr15();
  create_gate(15, isr15);
  ;
  extern void isr16();
  create_gate(16, isr16);
  ;
  extern void isr17();
  create_gate(17, isr17);
  ;
  extern void isr18();
  create_gate(18, isr18);
  ;
  extern void isr19();
  create_gate(19, isr19);
  ;
  enable_interrupts();
}
```