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

```asm
<get_c437_from_unicode>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x4(%rbp)
  cmpl   $0x7f,-0x4(%rbp)
  ja     L1891
  mov    -0x4(%rbp),%eax
  jmp    L842
L1891:
  cmpl   $0x266b,-0x4(%rbp)
  ja     L1832
  cmpl   $0x2500,-0x4(%rbp)
  jae    L1879
  cmpl   $0x2321,-0x4(%rbp)
  je     L2000
  cmpl   $0x2321,-0x4(%rbp)
  ja     L1832
  cmpl   $0x2320,-0x4(%rbp)
  je     L1296
  cmpl   $0x2320,-0x4(%rbp)
  ja     L1832
  cmpl   $0x2310,-0x4(%rbp)
  je     L674
  cmpl   $0x2310,-0x4(%rbp)
  ja     L1832
  cmpl   $0x2302,-0x4(%rbp)
  je     L1518
  cmpl   $0x2302,-0x4(%rbp)
  ja     L1832
  cmpl   $0x2265,-0x4(%rbp)
  je     L733
  cmpl   $0x2265,-0x4(%rbp)
  ja     L1832
  cmpl   $0x2264,-0x4(%rbp)
  je     L112
  cmpl   $0x2264,-0x4(%rbp)
  ja     L1832
  cmpl   $0x2261,-0x4(%rbp)
  je     L975
  cmpl   $0x2261,-0x4(%rbp)
  ja     L1832
  cmpl   $0x2248,-0x4(%rbp)
  ja     L1832
  cmpl   $0x2219,-0x4(%rbp)
  jae    L846
  cmpl   $0x21a8,-0x4(%rbp)
  ja     L1832
  cmpl   $0x2190,-0x4(%rbp)
  jae    L421
  cmpl   $0x20a7,-0x4(%rbp)
  je     L1097
  cmpl   $0x20a7,-0x4(%rbp)
  ja     L1832
  cmpl   $0x207f,-0x4(%rbp)
  je     L584
  cmpl   $0x207f,-0x4(%rbp)
  ja     L1832
  cmpl   $0x203c,-0x4(%rbp)
  ja     L1832
  cmpl   $0x201c,-0x4(%rbp)
  jae    L1628
  cmpl   $0x192,-0x4(%rbp)
  ja     L976
  cmpl   $0xa0,-0x4(%rbp)
  jae    L1840
  jmp    L1832
L1879:
  mov    -0x4(%rbp),%eax
  sub    $0x2500,%eax
  cmp    $0x16b,%eax
  ja     L1832
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D115(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D115(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
L846:
  mov    -0x4(%rbp),%eax
  sub    $0x2219,%eax
  cmp    $0x2f,%eax
  ja     L1832
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D48(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D48(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
L421:
  mov    -0x4(%rbp),%eax
  sub    $0x2190,%eax
  cmp    $0x18,%eax
  ja     L1832
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D38(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D38(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
L1628:
  mov    -0x4(%rbp),%eax
  sub    $0x201c,%eax
  cmp    $0x20,%eax
  ja     L1832
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D82(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D82(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
L1256:
  mov    -0x4(%rbp),%eax
  sub    $0x393,%eax
  cmp    $0x33,%eax
  ja     L1832
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D61(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D61(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
L1840:
  mov    -0x4(%rbp),%eax
  sub    $0xa0,%eax
  cmp    $0xf2,%eax
  ja     L1832
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D27(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D27(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
L976:
  cmpl   $0x3c6,-0x4(%rbp)
  ja     L1832
  cmpl   $0x393,-0x4(%rbp)
  jae    L1256
  jmp    L1832
  mov    $0xff,%eax
  jmp    L842
  mov    $0xad,%eax
  jmp    L842
  mov    $0x9b,%eax
  jmp    L842
  mov    $0x9c,%eax
  jmp    L842
  mov    $0x9d,%eax
  jmp    L842
  mov    $0x15,%eax
  jmp    L842
  mov    $0xa6,%eax
  jmp    L842
  mov    $0xae,%eax
  jmp    L842
  mov    $0xaa,%eax
  jmp    L842
  mov    $0xf8,%eax
  jmp    L842
  mov    $0xf1,%eax
  jmp    L842
  mov    $0xfd,%eax
  jmp    L842
  mov    $0xe6,%eax
  jmp    L842
  mov    $0xfa,%eax
  jmp    L842
  mov    $0xa7,%eax
  jmp    L842
  mov    $0xaf,%eax
  jmp    L842
  mov    $0xac,%eax
  jmp    L842
  mov    $0xab,%eax
  jmp    L842
  mov    $0xa8,%eax
  jmp    L842
  mov    $0x8e,%eax
  jmp    L842
  mov    $0x8f,%eax
  jmp    L842
  mov    $0x92,%eax
  jmp    L842
  mov    $0x80,%eax
  jmp    L842
  mov    $0x90,%eax
  jmp    L842
  mov    $0xa5,%eax
  jmp    L842
  mov    $0x99,%eax
  jmp    L842
  mov    $0x9a,%eax
  jmp    L842
  mov    $0xe1,%eax
  jmp    L842
  mov    $0x85,%eax
  jmp    L842
  mov    $0xa0,%eax
  jmp    L842
  mov    $0x83,%eax
  jmp    L842
  mov    $0x84,%eax
  jmp    L842
  mov    $0x86,%eax
  jmp    L842
  mov    $0x91,%eax
  jmp    L842
  mov    $0x87,%eax
  jmp    L842
  mov    $0x8a,%eax
  jmp    L842
  mov    $0x82,%eax
  jmp    L842
  mov    $0x88,%eax
  jmp    L842
  mov    $0x89,%eax
  jmp    L842
  mov    $0x8d,%eax
  jmp    L842
  mov    $0xa1,%eax
  jmp    L842
  mov    $0x8c,%eax
  jmp    L842
  mov    $0x8b,%eax
  jmp    L842
  mov    $0xa4,%eax
  jmp    L842
  mov    $0x95,%eax
  jmp    L842
  mov    $0xa2,%eax
  jmp    L842
  mov    $0x93,%eax
  jmp    L842
  mov    $0x94,%eax
  jmp    L842
  mov    $0xf6,%eax
  jmp    L842
  mov    $0x97,%eax
  jmp    L842
  mov    $0xa3,%eax
  jmp    L842
  mov    $0x96,%eax
  jmp    L842
  mov    $0x81,%eax
  jmp    L842
  mov    $0x98,%eax
  jmp    L842
  mov    $0x9f,%eax
  jmp    L842
  mov    $0xe2,%eax
  jmp    L842
  mov    $0xe9,%eax
  jmp    L842
  mov    $0xe4,%eax
  jmp    L842
  mov    $0xe8,%eax
  jmp    L842
  mov    $0xea,%eax
  jmp    L842
  mov    $0xe0,%eax
  jmp    L842
  mov    $0xeb,%eax
  jmp    L842
  mov    $0xee,%eax
  jmp    L842
  mov    $0xe3,%eax
  jmp    L842
  mov    $0xe5,%eax
  jmp    L842
  mov    $0xe7,%eax
  jmp    L842
  mov    $0xed,%eax
  jmp    L842
  mov    $0x22,%eax
  jmp    L842
  mov    $0x22,%eax
  jmp    L842
  mov    $0x22,%eax
  jmp    L842
  mov    $0x7,%eax
  jmp    L842
  mov    $0x13,%eax
  jmp    L842
L584:
  mov    $0xfc,%eax
  jmp    L842
L1097:
  mov    $0x9e,%eax
  jmp    L842
  mov    $0x1b,%eax
  jmp    L842
  mov    $0x18,%eax
  jmp    L842
  mov    $0x1a,%eax
  jmp    L842
  mov    $0x19,%eax
  jmp    L842
  mov    $0x1d,%eax
  jmp    L842
  mov    $0x12,%eax
  jmp    L842
  mov    $0x17,%eax
  jmp    L842
  mov    $0xf9,%eax
  jmp    L842
  mov    $0xfb,%eax
  jmp    L842
  mov    $0xec,%eax
  jmp    L842
  mov    $0x1c,%eax
  jmp    L842
  mov    $0xef,%eax
  jmp    L842
  mov    $0xf7,%eax
  jmp    L842
L975:
  mov    $0xf0,%eax
  jmp    L842
L112:
  mov    $0xf3,%eax
  jmp    L842
L733:
  mov    $0xf2,%eax
  jmp    L842
L1518:
  mov    $0x7f,%eax
  jmp    L842
L674:
  mov    $0xa9,%eax
  jmp    L842
L1296:
  mov    $0xf4,%eax
  jmp    L842
L2000:
  mov    $0xf5,%eax
  jmp    L842
  mov    $0xc4,%eax
  jmp    L842
  mov    $0xb3,%eax
  jmp    L842
  mov    $0xda,%eax
  jmp    L842
  mov    $0xbf,%eax
  jmp    L842
  mov    $0xc0,%eax
  jmp    L842
  mov    $0xd9,%eax
  jmp    L842
  mov    $0xc3,%eax
  jmp    L842
  mov    $0xb4,%eax
  jmp    L842
  mov    $0xc2,%eax
  jmp    L842
  mov    $0xc1,%eax
  jmp    L842
  mov    $0xc5,%eax
  jmp    L842
  mov    $0xcd,%eax
  jmp    L842
  mov    $0xba,%eax
  jmp    L842
  mov    $0xd5,%eax
  jmp    L842
  mov    $0xd6,%eax
  jmp    L842
  mov    $0xc9,%eax
  jmp    L842
  mov    $0xb8,%eax
  jmp    L842
  mov    $0xb7,%eax
  jmp    L842
  mov    $0xbb,%eax
  jmp    L842
  mov    $0xd4,%eax
  jmp    L842
  mov    $0xd3,%eax
  jmp    L842
  mov    $0xc8,%eax
  jmp    L842
  mov    $0xbe,%eax
  jmp    L842
  mov    $0xbd,%eax
  jmp    L842
  mov    $0xbc,%eax
  jmp    L842
  mov    $0xc6,%eax
  jmp    L842
  mov    $0xc7,%eax
  jmp    L842
  mov    $0xcc,%eax
  jmp    L842
  mov    $0xb5,%eax
  jmp    L842
  mov    $0xb6,%eax
  jmp    L842
  mov    $0xb9,%eax
  jmp    L842
  mov    $0xd1,%eax
  jmp    L842
  mov    $0xd2,%eax
  jmp    L842
  mov    $0xcb,%eax
  jmp    L842
  mov    $0xcf,%eax
  jmp    L842
  mov    $0xd0,%eax
  jmp    L842
  mov    $0xca,%eax
  jmp    L842
  mov    $0xd8,%eax
  jmp    L842
  mov    $0xd7,%eax
  jmp    L842
  mov    $0xce,%eax
  jmp    L842
  mov    $0xdf,%eax
  jmp    L842
  mov    $0xdc,%eax
  jmp    L842
  mov    $0xdb,%eax
  jmp    L842
  mov    $0xdd,%eax
  jmp    L842
  mov    $0xde,%eax
  jmp    L842
  mov    $0xb0,%eax
  jmp    L842
  mov    $0xb1,%eax
  jmp    L842
  mov    $0xb2,%eax
  jmp    L842
  mov    $0xfe,%eax
  jmp    L842
  mov    $0x16,%eax
  jmp    L842
  mov    $0x1e,%eax
  jmp    L842
  mov    $0x10,%eax
  jmp    L842
  mov    $0x1f,%eax
  jmp    L842
  mov    $0x11,%eax
  jmp    L842
  mov    $0x9,%eax
  jmp    L842
  mov    $0x8,%eax
  jmp    L842
  mov    $0xa,%eax
  jmp    L842
  mov    $0x1,%eax
  jmp    L842
  mov    $0x2,%eax
  jmp    L842
  mov    $0xf,%eax
  jmp    L842
  mov    $0xc,%eax
  jmp    L842
  mov    $0xb,%eax
  jmp    L842
  mov    $0x6,%eax
  jmp    L842
  mov    $0x5,%eax
  jmp    L842
  mov    $0x3,%eax
  jmp    L842
  mov    $0x4,%eax
  jmp    L842
  mov    $0xd,%eax
  jmp    L842
  mov    $0xe,%eax
  jmp    L842
L1832:
  mov    $0xfe,%eax
L842:
  pop    %rbp
  ret
```

assistant: ```c
uint8_t get_c437_from_unicode(unsigned uni) {
  if (uni < 0x80)
    return uni;
  switch (uni) {
  case (0x0000A0):
    return 0xFF;
    ;
  case (0x0000A1):
    return 0xAD;
    ;
  case (0x0000A2):
    return 0x9B;
    ;
  case (0x0000A3):
    return 0x9C;
    ;
  case (0x0000A5):
    return 0x9D;
    ;
  case (0x0000A7):
    return 0x15;
    ;
  case (0x0000AA):
    return 0xA6;
    ;
  case (0x0000AB):
    return 0xAE;
    ;
  case (0x0000AC):
    return 0xAA;
    ;
  case (0x0000B0):
    return 0xF8;
    ;
  case (0x0000B1):
    return 0xF1;
    ;
  case (0x0000B2):
    return 0xFD;
    ;
  case (0x0000B5):
    return 0xE6;
    ;
  case (0x0000B7):
    return 0xFA;
    ;
  case (0x0000BA):
    return 0xA7;
    ;
  case (0x0000BB):
    return 0xAF;
    ;
  case (0x0000BC):
    return 0xAC;
    ;
  case (0x0000BD):
    return 0xAB;
    ;
  case (0x0000BF):
    return 0xA8;
    ;
  case (0x0000C4):
    return 0x8E;
    ;
  case (0x0000C5):
    return 0x8F;
    ;
  case (0x0000C6):
    return 0x92;
    ;
  case (0x0000C7):
    return 0x80;
    ;
  case (0x0000C9):
    return 0x90;
    ;
  case (0x0000D1):
    return 0xA5;
    ;
  case (0x0000D6):
    return 0x99;
    ;
  case (0x0000DC):
    return 0x9A;
    ;
  case (0x0000DF):
    return 0xE1;
    ;
  case (0x0000E0):
    return 0x85;
    ;
  case (0x0000E1):
    return 0xA0;
    ;
  case (0x0000E2):
    return 0x83;
    ;
  case (0x0000E4):
    return 0x84;
    ;
  case (0x0000E5):
    return 0x86;
    ;
  case (0x0000E6):
    return 0x91;
    ;
  case (0x0000E7):
    return 0x87;
    ;
  case (0x0000E8):
    return 0x8A;
    ;
  case (0x0000E9):
    return 0x82;
    ;
  case (0x0000EA):
    return 0x88;
    ;
  case (0x0000EB):
    return 0x89;
    ;
  case (0x0000EC):
    return 0x8D;
    ;
  case (0x0000ED):
    return 0xA1;
    ;
  case (0x0000EE):
    return 0x8C;
    ;
  case (0x0000EF):
    return 0x8B;
    ;
  case (0x0000F1):
    return 0xA4;
    ;
  case (0x0000F2):
    return 0x95;
    ;
  case (0x0000F3):
    return 0xA2;
    ;
  case (0x0000F4):
    return 0x93;
    ;
  case (0x0000F6):
    return 0x94;
    ;
  case (0x0000F7):
    return 0xF6;
    ;
  case (0x0000F9):
    return 0x97;
    ;
  case (0x0000FA):
    return 0xA3;
    ;
  case (0x0000FB):
    return 0x96;
    ;
  case (0x0000FC):
    return 0x81;
    ;
  case (0x0000FF):
    return 0x98;
    ;
  case (0x000192):
    return 0x9F;
    ;
  case (0x000393):
    return 0xE2;
    ;
  case (0x000398):
    return 0xE9;
    ;
  case (0x0003A3):
    return 0xE4;
    ;
  case (0x0003A6):
    return 0xE8;
    ;
  case (0x0003A9):
    return 0xEA;
    ;
  case (0x0003B1):
    return 0xE0;
    ;
  case (0x0003B4):
    return 0xEB;
    ;
  case (0x0003B5):
    return 0xEE;
    ;
  case (0x0003C0):
    return 0xE3;
    ;
  case (0x0003C3):
    return 0xE5;
    ;
  case (0x0003C4):
    return 0xE7;
    ;
  case (0x0003C6):
    return 0xED;
    ;
  case (0x00201C):
    return 0x22;
    ;
  case (0x00201D):
    return 0x22;
    ;
  case (0x00201E):
    return 0x22;
    ;
  case (0x002022):
    return 0x07;
    ;
  case (0x00203C):
    return 0x13;
    ;
  case (0x00207F):
    return 0xFC;
    ;
  case (0x0020A7):
    return 0x9E;
    ;
  case (0x002190):
    return 0x1B;
    ;
  case (0x002191):
    return 0x18;
    ;
  case (0x002192):
    return 0x1A;
    ;
  case (0x002193):
    return 0x19;
    ;
  case (0x002194):
    return 0x1D;
    ;
  case (0x002195):
    return 0x12;
    ;
  case (0x0021A8):
    return 0x17;
    ;
  case (0x002219):
    return 0xF9;
    ;
  case (0x00221A):
    return 0xFB;
    ;
  case (0x00221E):
    return 0xEC;
    ;
  case (0x00221F):
    return 0x1C;
    ;
  case (0x002229):
    return 0xEF;
    ;
  case (0x002248):
    return 0xF7;
    ;
  case (0x002261):
    return 0xF0;
    ;
  case (0x002264):
    return 0xF3;
    ;
  case (0x002265):
    return 0xF2;
    ;
  case (0x002302):
    return 0x7F;
    ;
  case (0x002310):
    return 0xA9;
    ;
  case (0x002320):
    return 0xF4;
    ;
  case (0x002321):
    return 0xF5;
    ;
  case (0x002500):
    return 0xC4;
    ;
  case (0x002502):
    return 0xB3;
    ;
  case (0x00250C):
    return 0xDA;
    ;
  case (0x002510):
    return 0xBF;
    ;
  case (0x002514):
    return 0xC0;
    ;
  case (0x002518):
    return 0xD9;
    ;
  case (0x00251C):
    return 0xC3;
    ;
  case (0x002524):
    return 0xB4;
    ;
  case (0x00252C):
    return 0xC2;
    ;
  case (0x002534):
    return 0xC1;
    ;
  case (0x00253C):
    return 0xC5;
    ;
  case (0x002550):
    return 0xCD;
    ;
  case (0x002551):
    return 0xBA;
    ;
  case (0x002552):
    return 0xD5;
    ;
  case (0x002553):
    return 0xD6;
    ;
  case (0x002554):
    return 0xC9;
    ;
  case (0x002555):
    return 0xB8;
    ;
  case (0x002556):
    return 0xB7;
    ;
  case (0x002557):
    return 0xBB;
    ;
  case (0x002558):
    return 0xD4;
    ;
  case (0x002559):
    return 0xD3;
    ;
  case (0x00255A):
    return 0xC8;
    ;
  case (0x00255B):
    return 0xBE;
    ;
  case (0x00255C):
    return 0xBD;
    ;
  case (0x00255D):
    return 0xBC;
    ;
  case (0x00255E):
    return 0xC6;
    ;
  case (0x00255F):
    return 0xC7;
    ;
  case (0x002560):
    return 0xCC;
    ;
  case (0x002561):
    return 0xB5;
    ;
  case (0x002562):
    return 0xB6;
    ;
  case (0x002563):
    return 0xB9;
    ;
  case (0x002564):
    return 0xD1;
    ;
  case (0x002565):
    return 0xD2;
    ;
  case (0x002566):
    return 0xCB;
    ;
  case (0x002567):
    return 0xCF;
    ;
  case (0x002568):
    return 0xD0;
    ;
  case (0x002569):
    return 0xCA;
    ;
  case (0x00256A):
    return 0xD8;
    ;
  case (0x00256B):
    return 0xD7;
    ;
  case (0x00256C):
    return 0xCE;
    ;
  case (0x002580):
    return 0xDF;
    ;
  case (0x002584):
    return 0xDC;
    ;
  case (0x002588):
    return 0xDB;
    ;
  case (0x00258C):
    return 0xDD;
    ;
  case (0x002590):
    return 0xDE;
    ;
  case (0x002591):
    return 0xB0;
    ;
  case (0x002592):
    return 0xB1;
    ;
  case (0x002593):
    return 0xB2;
    ;
  case (0x0025A0):
    return 0xFE;
    ;
  case (0x0025AC):
    return 0x16;
    ;
  case (0x0025B2):
    return 0x1E;
    ;
  case (0x0025BA):
    return 0x10;
    ;
  case (0x0025BC):
    return 0x1F;
    ;
  case (0x0025C4):
    return 0x11;
    ;
  case (0x0025CB):
    return 0x09;
    ;
  case (0x0025D8):
    return 0x08;
    ;
  case (0x0025D9):
    return 0x0A;
    ;
  case (0x00263A):
    return 0x01;
    ;
  case (0x00263B):
    return 0x02;
    ;
  case (0x00263C):
    return 0x0F;
    ;
  case (0x002640):
    return 0x0C;
    ;
  case (0x002642):
    return 0x0B;
    ;
  case (0x002660):
    return 0x06;
    ;
  case (0x002663):
    return 0x05;
    ;
  case (0x002665):
    return 0x03;
    ;
  case (0x002666):
    return 0x04;
    ;
  case (0x00266A):
    return 0x0D;
    ;
  case (0x00266B):
    return 0x0E;
    ;
  }
  return 0xFE;
}
```