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

```asm
<doMirror>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  and    $0xff00,%eax
  test   %eax,%eax
  jne    L1518
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0xbb,%eax
  je     L101
  cmp    $0xbb,%eax
  ja     L2007
  cmp    $0xab,%eax
  je     L458
  cmp    $0xab,%eax
  ja     L2007
  cmp    $0x7d,%eax
  je     L3534
  cmp    $0x7d,%eax
  ja     L2007
  cmp    $0x7b,%eax
  je     L202
  cmp    $0x7b,%eax
  ja     L2007
  cmp    $0x5d,%eax
  je     L137
  cmp    $0x5d,%eax
  ja     L2007
  cmp    $0x5b,%eax
  je     L965
  cmp    $0x5b,%eax
  ja     L2007
  cmp    $0x3e,%eax
  je     L3300
  cmp    $0x3e,%eax
  ja     L2007
  cmp    $0x3c,%eax
  je     L2651
  cmp    $0x3c,%eax
  ja     L2007
  cmp    $0x28,%eax
  je     L1140
  cmp    $0x29,%eax
  je     L3583
  jmp    L2007
L1140:
  mov    -0x8(%rbp),%rax
  movl   $0x29,(%rax)
  jmp    L2007
L3583:
  mov    -0x8(%rbp),%rax
  movl   $0x28,(%rax)
  jmp    L2007
L2651:
  mov    -0x8(%rbp),%rax
  movl   $0x3e,(%rax)
  jmp    L2007
L3300:
  mov    -0x8(%rbp),%rax
  movl   $0x3c,(%rax)
  jmp    L2007
L965:
  mov    -0x8(%rbp),%rax
  movl   $0x5d,(%rax)
  jmp    L2007
L137:
  mov    -0x8(%rbp),%rax
  movl   $0x5b,(%rax)
  jmp    L2007
L202:
  mov    -0x8(%rbp),%rax
  movl   $0x7d,(%rax)
  jmp    L2007
L3534:
  mov    -0x8(%rbp),%rax
  movl   $0x7b,(%rax)
  jmp    L2007
L458:
  mov    -0x8(%rbp),%rax
  movl   $0xbb,(%rax)
  jmp    L2007
L101:
  mov    -0x8(%rbp),%rax
  movl   $0xab,(%rax)
  jmp    L2007
L1518:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  and    $0xff00,%eax
  cmp    $0x2000,%eax
  jne    L2385
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x208e,%eax
  je     L1432
  cmp    $0x208e,%eax
  ja     L2007
  cmp    $0x208d,%eax
  je     L450
  cmp    $0x208d,%eax
  ja     L2007
  cmp    $0x207e,%eax
  je     L1694
  cmp    $0x207e,%eax
  ja     L2007
  cmp    $0x207d,%eax
  je     L680
  cmp    $0x207d,%eax
  ja     L2007
  cmp    $0x2046,%eax
  je     L3187
  cmp    $0x2046,%eax
  ja     L2007
  cmp    $0x2045,%eax
  je     L3543
  cmp    $0x2045,%eax
  ja     L2007
  cmp    $0x2039,%eax
  je     L3207
  cmp    $0x203a,%eax
  je     L1955
  jmp    L2007
L3207:
  mov    -0x8(%rbp),%rax
  movl   $0x203a,(%rax)
  jmp    L2007
L1955:
  mov    -0x8(%rbp),%rax
  movl   $0x2039,(%rax)
  jmp    L2007
L3543:
  mov    -0x8(%rbp),%rax
  movl   $0x2046,(%rax)
  jmp    L2007
L3187:
  mov    -0x8(%rbp),%rax
  movl   $0x2045,(%rax)
  jmp    L2007
L680:
  mov    -0x8(%rbp),%rax
  movl   $0x207e,(%rax)
  jmp    L2007
L1694:
  mov    -0x8(%rbp),%rax
  movl   $0x207d,(%rax)
  jmp    L2007
L450:
  mov    -0x8(%rbp),%rax
  movl   $0x208e,(%rax)
  jmp    L2007
L1432:
  mov    -0x8(%rbp),%rax
  movl   $0x208d,(%rax)
  jmp    L2007
L2385:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  and    $0xff00,%eax
  cmp    $0x2200,%eax
  jne    L669
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  sub    $0x2208,%eax
  cmp    $0xf6,%eax
  ja     L2007
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D54(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D54(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x8(%rbp),%rax
  movl   $0x220b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x220c,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x220d,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2208,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2209,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x220a,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29f5,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x223d,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x223c,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22cd,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2253,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2252,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2255,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2254,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2265,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2264,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2267,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2266,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2269,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2268,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x226b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x226a,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x226f,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x226e,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2271,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2270,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2273,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2272,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2275,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2274,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2277,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2276,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2279,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2278,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x227b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x227a,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x227d,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x227c,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x227f,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x227e,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2281,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2280,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2283,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2282,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2285,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2284,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2287,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2286,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2289,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2288,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x228b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x228a,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2290,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x228f,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2292,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2291,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29b8,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22a3,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22a2,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ade,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ae4,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ae3,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ae5,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22b1,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22b0,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22b3,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22b2,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22b5,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22b4,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22b7,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22b6,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22ca,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22c9,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22cc,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22cb,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2243,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22d1,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22d0,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22d7,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22d6,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22d9,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22d8,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22db,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22da,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22dd,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22dc,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22df,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22de,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22e1,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22e0,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22e3,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22e2,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22e5,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22e4,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22e7,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22e6,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22e9,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22e8,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22eb,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22ea,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22ed,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22ec,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22f1,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22f0,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22fa,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22fb,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22fc,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22fd,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22fe,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22f2,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22f3,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22f4,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22f6,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22f7,(%rax)
  jmp    L2007
L669:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  and    $0xff00,%eax
  cmp    $0x2300,%eax
  jne    L2937
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  sub    $0x2308,%eax
  cmp    $0x22,%eax
  ja     L2007
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D118(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D118(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x8(%rbp),%rax
  movl   $0x2309,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2308,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x230b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x230a,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x232a,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2329,(%rax)
  jmp    L2007
L2937:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  and    $0xff00,%eax
  cmp    $0x2700,%eax
  jne    L1134
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  sub    $0x2768,%eax
  cmp    $0x83,%eax
  ja     L2007
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D79(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D79(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x8(%rbp),%rax
  movl   $0x2769,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2768,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x276b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x276a,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x276d,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x276c,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x276f,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x276e,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2771,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2770,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2773,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2772,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2775,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2774,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27d6,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27d5,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27de,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27dd,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27e3,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27e2,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27e5,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27e4,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27e7,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27e6,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27e9,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27e8,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27eb,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x27ea,(%rax)
  jmp    L2007
L1134:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  and    $0xff00,%eax
  cmp    $0x2900,%eax
  jne    L1626
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  sub    $0x2983,%eax
  cmp    $0x7a,%eax
  ja     L2007
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D110(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D110(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x8(%rbp),%rax
  movl   $0x2984,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2983,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2986,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2985,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2988,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2987,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x298a,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2989,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x298c,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x298b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2990,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x298f,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x298e,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x298d,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2992,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2991,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2994,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2993,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2996,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2995,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2998,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2997,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2298,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29c1,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29c0,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29c5,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29c4,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29d0,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29cf,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29d2,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29d1,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29d5,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29d4,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29d9,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29d8,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29db,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29da,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2215,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29f9,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29f8,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29fd,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x29fc,(%rax)
  jmp    L2007
L1626:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  and    $0xff00,%eax
  cmp    $0x2a00,%eax
  jne    L2550
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  sub    $0x2a2b,%eax
  cmp    $0xcf,%eax
  ja     L2007
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D114(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D114(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x8(%rbp),%rax
  movl   $0x2a2c,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a2b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a2c,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a2d,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a35,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a34,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a3d,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a3c,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a65,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a64,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a7a,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a79,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a7e,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a7d,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a80,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a7f,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a82,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a81,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a84,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a83,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a8c,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a8b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a92,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a91,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a94,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a93,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a96,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a95,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a98,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a97,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a9a,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a99,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a9c,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2a9b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aa2,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aa1,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aa7,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aa6,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aa9,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aa8,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aab,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aaa,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aad,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aac,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ab0,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aaf,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ab4,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ab3,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2abc,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2abb,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2abe,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2abd,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ac0,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2abf,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ac2,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ac1,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ac4,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ac3,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ac6,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ac5,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ace,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2acd,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ad0,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2acf,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ad2,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ad1,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ad4,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ad3,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ad6,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2ad5,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22a6,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22a9,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22a8,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x22ab,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aed,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2aec,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2af8,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2af7,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2afa,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x2af9,(%rax)
  jmp    L2007
L2550:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  and    $0xff00,%eax
  cmp    $0x3000,%eax
  jne    L2766
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  sub    $0x3008,%eax
  cmp    $0x13,%eax
  ja     L2007
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D109(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D109(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x8(%rbp),%rax
  movl   $0x3009,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x3008,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x300b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x300a,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x300d,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x300c,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x300f,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x300e,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x3011,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x3010,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x3015,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x3014,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x3017,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x3016,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x3019,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x3018,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x301b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0x301a,(%rax)
  jmp    L2007
L2766:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  and    $0xff00,%eax
  cmp    $0xff00,%eax
  jne    L2007
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  sub    $0xff08,%eax
  cmp    $0x5b,%eax
  ja     L2007
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D75(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D75(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x8(%rbp),%rax
  movl   $0xff09,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0xff08,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0xff1e,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0xff1c,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0xff3d,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0xff3b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0xff5d,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0xff5b,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0xff60,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0xff5f,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0xff63,(%rax)
  jmp    L2007
  mov    -0x8(%rbp),%rax
  movl   $0xff62,(%rax)
  nop
L2007:
  nop
  pop    %rbp
  ret
```

assistant: ```c
void doMirror(unsigned int *ch) {
  if ((*ch & 0xFF00) == 0) {
    switch (*ch) {
    case 0x0028:
      *ch = 0x0029;
      break;
    case 0x0029:
      *ch = 0x0028;
      break;
    case 0x003C:
      *ch = 0x003E;
      break;
    case 0x003E:
      *ch = 0x003C;
      break;
    case 0x005B:
      *ch = 0x005D;
      break;
    case 0x005D:
      *ch = 0x005B;
      break;
    case 0x007B:
      *ch = 0x007D;
      break;
    case 0x007D:
      *ch = 0x007B;
      break;
    case 0x00AB:
      *ch = 0x00BB;
      break;
    case 0x00BB:
      *ch = 0x00AB;
      break;
    }
  } else if ((*ch & 0xFF00) == 0x2000) {
    switch (*ch) {
    case 0x2039:
      *ch = 0x203A;
      break;
    case 0x203A:
      *ch = 0x2039;
      break;
    case 0x2045:
      *ch = 0x2046;
      break;
    case 0x2046:
      *ch = 0x2045;
      break;
    case 0x207D:
      *ch = 0x207E;
      break;
    case 0x207E:
      *ch = 0x207D;
      break;
    case 0x208D:
      *ch = 0x208E;
      break;
    case 0x208E:
      *ch = 0x208D;
      break;
    }
  } else if ((*ch & 0xFF00) == 0x2200) {
    switch (*ch) {
    case 0x2208:
      *ch = 0x220B;
      break;
    case 0x2209:
      *ch = 0x220C;
      break;
    case 0x220A:
      *ch = 0x220D;
      break;
    case 0x220B:
      *ch = 0x2208;
      break;
    case 0x220C:
      *ch = 0x2209;
      break;
    case 0x220D:
      *ch = 0x220A;
      break;
    case 0x2215:
      *ch = 0x29F5;
      break;
    case 0x223C:
      *ch = 0x223D;
      break;
    case 0x223D:
      *ch = 0x223C;
      break;
    case 0x2243:
      *ch = 0x22CD;
      break;
    case 0x2252:
      *ch = 0x2253;
      break;
    case 0x2253:
      *ch = 0x2252;
      break;
    case 0x2254:
      *ch = 0x2255;
      break;
    case 0x2255:
      *ch = 0x2254;
      break;
    case 0x2264:
      *ch = 0x2265;
      break;
    case 0x2265:
      *ch = 0x2264;
      break;
    case 0x2266:
      *ch = 0x2267;
      break;
    case 0x2267:
      *ch = 0x2266;
      break;
    case 0x2268:
      *ch = 0x2269;
      break;
    case 0x2269:
      *ch = 0x2268;
      break;
    case 0x226A:
      *ch = 0x226B;
      break;
    case 0x226B:
      *ch = 0x226A;
      break;
    case 0x226E:
      *ch = 0x226F;
      break;
    case 0x226F:
      *ch = 0x226E;
      break;
    case 0x2270:
      *ch = 0x2271;
      break;
    case 0x2271:
      *ch = 0x2270;
      break;
    case 0x2272:
      *ch = 0x2273;
      break;
    case 0x2273:
      *ch = 0x2272;
      break;
    case 0x2274:
      *ch = 0x2275;
      break;
    case 0x2275:
      *ch = 0x2274;
      break;
    case 0x2276:
      *ch = 0x2277;
      break;
    case 0x2277:
      *ch = 0x2276;
      break;
    case 0x2278:
      *ch = 0x2279;
      break;
    case 0x2279:
      *ch = 0x2278;
      break;
    case 0x227A:
      *ch = 0x227B;
      break;
    case 0x227B:
      *ch = 0x227A;
      break;
    case 0x227C:
      *ch = 0x227D;
      break;
    case 0x227D:
      *ch = 0x227C;
      break;
    case 0x227E:
      *ch = 0x227F;
      break;
    case 0x227F:
      *ch = 0x227E;
      break;
    case 0x2280:
      *ch = 0x2281;
      break;
    case 0x2281:
      *ch = 0x2280;
      break;
    case 0x2282:
      *ch = 0x2283;
      break;
    case 0x2283:
      *ch = 0x2282;
      break;
    case 0x2284:
      *ch = 0x2285;
      break;
    case 0x2285:
      *ch = 0x2284;
      break;
    case 0x2286:
      *ch = 0x2287;
      break;
    case 0x2287:
      *ch = 0x2286;
      break;
    case 0x2288:
      *ch = 0x2289;
      break;
    case 0x2289:
      *ch = 0x2288;
      break;
    case 0x228A:
      *ch = 0x228B;
      break;
    case 0x228B:
      *ch = 0x228A;
      break;
    case 0x228F:
      *ch = 0x2290;
      break;
    case 0x2290:
      *ch = 0x228F;
      break;
    case 0x2291:
      *ch = 0x2292;
      break;
    case 0x2292:
      *ch = 0x2291;
      break;
    case 0x2298:
      *ch = 0x29B8;
      break;
    case 0x22A2:
      *ch = 0x22A3;
      break;
    case 0x22A3:
      *ch = 0x22A2;
      break;
    case 0x22A6:
      *ch = 0x2ADE;
      break;
    case 0x22A8:
      *ch = 0x2AE4;
      break;
    case 0x22A9:
      *ch = 0x2AE3;
      break;
    case 0x22AB:
      *ch = 0x2AE5;
      break;
    case 0x22B0:
      *ch = 0x22B1;
      break;
    case 0x22B1:
      *ch = 0x22B0;
      break;
    case 0x22B2:
      *ch = 0x22B3;
      break;
    case 0x22B3:
      *ch = 0x22B2;
      break;
    case 0x22B4:
      *ch = 0x22B5;
      break;
    case 0x22B5:
      *ch = 0x22B4;
      break;
    case 0x22B6:
      *ch = 0x22B7;
      break;
    case 0x22B7:
      *ch = 0x22B6;
      break;
    case 0x22C9:
      *ch = 0x22CA;
      break;
    case 0x22CA:
      *ch = 0x22C9;
      break;
    case 0x22CB:
      *ch = 0x22CC;
      break;
    case 0x22CC:
      *ch = 0x22CB;
      break;
    case 0x22CD:
      *ch = 0x2243;
      break;
    case 0x22D0:
      *ch = 0x22D1;
      break;
    case 0x22D1:
      *ch = 0x22D0;
      break;
    case 0x22D6:
      *ch = 0x22D7;
      break;
    case 0x22D7:
      *ch = 0x22D6;
      break;
    case 0x22D8:
      *ch = 0x22D9;
      break;
    case 0x22D9:
      *ch = 0x22D8;
      break;
    case 0x22DA:
      *ch = 0x22DB;
      break;
    case 0x22DB:
      *ch = 0x22DA;
      break;
    case 0x22DC:
      *ch = 0x22DD;
      break;
    case 0x22DD:
      *ch = 0x22DC;
      break;
    case 0x22DE:
      *ch = 0x22DF;
      break;
    case 0x22DF:
      *ch = 0x22DE;
      break;
    case 0x22E0:
      *ch = 0x22E1;
      break;
    case 0x22E1:
      *ch = 0x22E0;
      break;
    case 0x22E2:
      *ch = 0x22E3;
      break;
    case 0x22E3:
      *ch = 0x22E2;
      break;
    case 0x22E4:
      *ch = 0x22E5;
      break;
    case 0x22E5:
      *ch = 0x22E4;
      break;
    case 0x22E6:
      *ch = 0x22E7;
      break;
    case 0x22E7:
      *ch = 0x22E6;
      break;
    case 0x22E8:
      *ch = 0x22E9;
      break;
    case 0x22E9:
      *ch = 0x22E8;
      break;
    case 0x22EA:
      *ch = 0x22EB;
      break;
    case 0x22EB:
      *ch = 0x22EA;
      break;
    case 0x22EC:
      *ch = 0x22ED;
      break;
    case 0x22ED:
      *ch = 0x22EC;
      break;
    case 0x22F0:
      *ch = 0x22F1;
      break;
    case 0x22F1:
      *ch = 0x22F0;
      break;
    case 0x22F2:
      *ch = 0x22FA;
      break;
    case 0x22F3:
      *ch = 0x22FB;
      break;
    case 0x22F4:
      *ch = 0x22FC;
      break;
    case 0x22F6:
      *ch = 0x22FD;
      break;
    case 0x22F7:
      *ch = 0x22FE;
      break;
    case 0x22FA:
      *ch = 0x22F2;
      break;
    case 0x22FB:
      *ch = 0x22F3;
      break;
    case 0x22FC:
      *ch = 0x22F4;
      break;
    case 0x22FD:
      *ch = 0x22F6;
      break;
    case 0x22FE:
      *ch = 0x22F7;
      break;
    }
  } else if ((*ch & 0xFF00) == 0x2300) {
    switch (*ch) {
    case 0x2308:
      *ch = 0x2309;
      break;
    case 0x2309:
      *ch = 0x2308;
      break;
    case 0x230A:
      *ch = 0x230B;
      break;
    case 0x230B:
      *ch = 0x230A;
      break;
    case 0x2329:
      *ch = 0x232A;
      break;
    case 0x232A:
      *ch = 0x2329;
      break;
    }
  } else if ((*ch & 0xFF00) == 0x2700) {
    switch (*ch) {
    case 0x2768:
      *ch = 0x2769;
      break;
    case 0x2769:
      *ch = 0x2768;
      break;
    case 0x276A:
      *ch = 0x276B;
      break;
    case 0x276B:
      *ch = 0x276A;
      break;
    case 0x276C:
      *ch = 0x276D;
      break;
    case 0x276D:
      *ch = 0x276C;
      break;
    case 0x276E:
      *ch = 0x276F;
      break;
    case 0x276F:
      *ch = 0x276E;
      break;
    case 0x2770:
      *ch = 0x2771;
      break;
    case 0x2771:
      *ch = 0x2770;
      break;
    case 0x2772:
      *ch = 0x2773;
      break;
    case 0x2773:
      *ch = 0x2772;
      break;
    case 0x2774:
      *ch = 0x2775;
      break;
    case 0x2775:
      *ch = 0x2774;
      break;
    case 0x27D5:
      *ch = 0x27D6;
      break;
    case 0x27D6:
      *ch = 0x27D5;
      break;
    case 0x27DD:
      *ch = 0x27DE;
      break;
    case 0x27DE:
      *ch = 0x27DD;
      break;
    case 0x27E2:
      *ch = 0x27E3;
      break;
    case 0x27E3:
      *ch = 0x27E2;
      break;
    case 0x27E4:
      *ch = 0x27E5;
      break;
    case 0x27E5:
      *ch = 0x27E4;
      break;
    case 0x27E6:
      *ch = 0x27E7;
      break;
    case 0x27E7:
      *ch = 0x27E6;
      break;
    case 0x27E8:
      *ch = 0x27E9;
      break;
    case 0x27E9:
      *ch = 0x27E8;
      break;
    case 0x27EA:
      *ch = 0x27EB;
      break;
    case 0x27EB:
      *ch = 0x27EA;
      break;
    }
  } else if ((*ch & 0xFF00) == 0x2900) {
    switch (*ch) {
    case 0x2983:
      *ch = 0x2984;
      break;
    case 0x2984:
      *ch = 0x2983;
      break;
    case 0x2985:
      *ch = 0x2986;
      break;
    case 0x2986:
      *ch = 0x2985;
      break;
    case 0x2987:
      *ch = 0x2988;
      break;
    case 0x2988:
      *ch = 0x2987;
      break;
    case 0x2989:
      *ch = 0x298A;
      break;
    case 0x298A:
      *ch = 0x2989;
      break;
    case 0x298B:
      *ch = 0x298C;
      break;
    case 0x298C:
      *ch = 0x298B;
      break;
    case 0x298D:
      *ch = 0x2990;
      break;
    case 0x298E:
      *ch = 0x298F;
      break;
    case 0x298F:
      *ch = 0x298E;
      break;
    case 0x2990:
      *ch = 0x298D;
      break;
    case 0x2991:
      *ch = 0x2992;
      break;
    case 0x2992:
      *ch = 0x2991;
      break;
    case 0x2993:
      *ch = 0x2994;
      break;
    case 0x2994:
      *ch = 0x2993;
      break;
    case 0x2995:
      *ch = 0x2996;
      break;
    case 0x2996:
      *ch = 0x2995;
      break;
    case 0x2997:
      *ch = 0x2998;
      break;
    case 0x2998:
      *ch = 0x2997;
      break;
    case 0x29B8:
      *ch = 0x2298;
      break;
    case 0x29C0:
      *ch = 0x29C1;
      break;
    case 0x29C1:
      *ch = 0x29C0;
      break;
    case 0x29C4:
      *ch = 0x29C5;
      break;
    case 0x29C5:
      *ch = 0x29C4;
      break;
    case 0x29CF:
      *ch = 0x29D0;
      break;
    case 0x29D0:
      *ch = 0x29CF;
      break;
    case 0x29D1:
      *ch = 0x29D2;
      break;
    case 0x29D2:
      *ch = 0x29D1;
      break;
    case 0x29D4:
      *ch = 0x29D5;
      break;
    case 0x29D5:
      *ch = 0x29D4;
      break;
    case 0x29D8:
      *ch = 0x29D9;
      break;
    case 0x29D9:
      *ch = 0x29D8;
      break;
    case 0x29DA:
      *ch = 0x29DB;
      break;
    case 0x29DB:
      *ch = 0x29DA;
      break;
    case 0x29F5:
      *ch = 0x2215;
      break;
    case 0x29F8:
      *ch = 0x29F9;
      break;
    case 0x29F9:
      *ch = 0x29F8;
      break;
    case 0x29FC:
      *ch = 0x29FD;
      break;
    case 0x29FD:
      *ch = 0x29FC;
      break;
    }
  } else if ((*ch & 0xFF00) == 0x2A00) {
    switch (*ch) {
    case 0x2A2B:
      *ch = 0x2A2C;
      break;
    case 0x2A2C:
      *ch = 0x2A2B;
      break;
    case 0x2A2D:
      *ch = 0x2A2C;
      break;
    case 0x2A2E:
      *ch = 0x2A2D;
      break;
    case 0x2A34:
      *ch = 0x2A35;
      break;
    case 0x2A35:
      *ch = 0x2A34;
      break;
    case 0x2A3C:
      *ch = 0x2A3D;
      break;
    case 0x2A3D:
      *ch = 0x2A3C;
      break;
    case 0x2A64:
      *ch = 0x2A65;
      break;
    case 0x2A65:
      *ch = 0x2A64;
      break;
    case 0x2A79:
      *ch = 0x2A7A;
      break;
    case 0x2A7A:
      *ch = 0x2A79;
      break;
    case 0x2A7D:
      *ch = 0x2A7E;
      break;
    case 0x2A7E:
      *ch = 0x2A7D;
      break;
    case 0x2A7F:
      *ch = 0x2A80;
      break;
    case 0x2A80:
      *ch = 0x2A7F;
      break;
    case 0x2A81:
      *ch = 0x2A82;
      break;
    case 0x2A82:
      *ch = 0x2A81;
      break;
    case 0x2A83:
      *ch = 0x2A84;
      break;
    case 0x2A84:
      *ch = 0x2A83;
      break;
    case 0x2A8B:
      *ch = 0x2A8C;
      break;
    case 0x2A8C:
      *ch = 0x2A8B;
      break;
    case 0x2A91:
      *ch = 0x2A92;
      break;
    case 0x2A92:
      *ch = 0x2A91;
      break;
    case 0x2A93:
      *ch = 0x2A94;
      break;
    case 0x2A94:
      *ch = 0x2A93;
      break;
    case 0x2A95:
      *ch = 0x2A96;
      break;
    case 0x2A96:
      *ch = 0x2A95;
      break;
    case 0x2A97:
      *ch = 0x2A98;
      break;
    case 0x2A98:
      *ch = 0x2A97;
      break;
    case 0x2A99:
      *ch = 0x2A9A;
      break;
    case 0x2A9A:
      *ch = 0x2A99;
      break;
    case 0x2A9B:
      *ch = 0x2A9C;
      break;
    case 0x2A9C:
      *ch = 0x2A9B;
      break;
    case 0x2AA1:
      *ch = 0x2AA2;
      break;
    case 0x2AA2:
      *ch = 0x2AA1;
      break;
    case 0x2AA6:
      *ch = 0x2AA7;
      break;
    case 0x2AA7:
      *ch = 0x2AA6;
      break;
    case 0x2AA8:
      *ch = 0x2AA9;
      break;
    case 0x2AA9:
      *ch = 0x2AA8;
      break;
    case 0x2AAA:
      *ch = 0x2AAB;
      break;
    case 0x2AAB:
      *ch = 0x2AAA;
      break;
    case 0x2AAC:
      *ch = 0x2AAD;
      break;
    case 0x2AAD:
      *ch = 0x2AAC;
      break;
    case 0x2AAF:
      *ch = 0x2AB0;
      break;
    case 0x2AB0:
      *ch = 0x2AAF;
      break;
    case 0x2AB3:
      *ch = 0x2AB4;
      break;
    case 0x2AB4:
      *ch = 0x2AB3;
      break;
    case 0x2ABB:
      *ch = 0x2ABC;
      break;
    case 0x2ABC:
      *ch = 0x2ABB;
      break;
    case 0x2ABD:
      *ch = 0x2ABE;
      break;
    case 0x2ABE:
      *ch = 0x2ABD;
      break;
    case 0x2ABF:
      *ch = 0x2AC0;
      break;
    case 0x2AC0:
      *ch = 0x2ABF;
      break;
    case 0x2AC1:
      *ch = 0x2AC2;
      break;
    case 0x2AC2:
      *ch = 0x2AC1;
      break;
    case 0x2AC3:
      *ch = 0x2AC4;
      break;
    case 0x2AC4:
      *ch = 0x2AC3;
      break;
    case 0x2AC5:
      *ch = 0x2AC6;
      break;
    case 0x2AC6:
      *ch = 0x2AC5;
      break;
    case 0x2ACD:
      *ch = 0x2ACE;
      break;
    case 0x2ACE:
      *ch = 0x2ACD;
      break;
    case 0x2ACF:
      *ch = 0x2AD0;
      break;
    case 0x2AD0:
      *ch = 0x2ACF;
      break;
    case 0x2AD1:
      *ch = 0x2AD2;
      break;
    case 0x2AD2:
      *ch = 0x2AD1;
      break;
    case 0x2AD3:
      *ch = 0x2AD4;
      break;
    case 0x2AD4:
      *ch = 0x2AD3;
      break;
    case 0x2AD5:
      *ch = 0x2AD6;
      break;
    case 0x2AD6:
      *ch = 0x2AD5;
      break;
    case 0x2ADE:
      *ch = 0x22A6;
      break;
    case 0x2AE3:
      *ch = 0x22A9;
      break;
    case 0x2AE4:
      *ch = 0x22A8;
      break;
    case 0x2AE5:
      *ch = 0x22AB;
      break;
    case 0x2AEC:
      *ch = 0x2AED;
      break;
    case 0x2AED:
      *ch = 0x2AEC;
      break;
    case 0x2AF7:
      *ch = 0x2AF8;
      break;
    case 0x2AF8:
      *ch = 0x2AF7;
      break;
    case 0x2AF9:
      *ch = 0x2AFA;
      break;
    case 0x2AFA:
      *ch = 0x2AF9;
      break;
    }
  } else if ((*ch & 0xFF00) == 0x3000) {
    switch (*ch) {
    case 0x3008:
      *ch = 0x3009;
      break;
    case 0x3009:
      *ch = 0x3008;
      break;
    case 0x300A:
      *ch = 0x300B;
      break;
    case 0x300B:
      *ch = 0x300A;
      break;
    case 0x300C:
      *ch = 0x300D;
      break;
    case 0x300D:
      *ch = 0x300C;
      break;
    case 0x300E:
      *ch = 0x300F;
      break;
    case 0x300F:
      *ch = 0x300E;
      break;
    case 0x3010:
      *ch = 0x3011;
      break;
    case 0x3011:
      *ch = 0x3010;
      break;
    case 0x3014:
      *ch = 0x3015;
      break;
    case 0x3015:
      *ch = 0x3014;
      break;
    case 0x3016:
      *ch = 0x3017;
      break;
    case 0x3017:
      *ch = 0x3016;
      break;
    case 0x3018:
      *ch = 0x3019;
      break;
    case 0x3019:
      *ch = 0x3018;
      break;
    case 0x301A:
      *ch = 0x301B;
      break;
    case 0x301B:
      *ch = 0x301A;
      break;
    }
  } else if ((*ch & 0xFF00) == 0xFF00) {
    switch (*ch) {
    case 0xFF08:
      *ch = 0xFF09;
      break;
    case 0xFF09:
      *ch = 0xFF08;
      break;
    case 0xFF1C:
      *ch = 0xFF1E;
      break;
    case 0xFF1E:
      *ch = 0xFF1C;
      break;
    case 0xFF3B:
      *ch = 0xFF3D;
      break;
    case 0xFF3D:
      *ch = 0xFF3B;
      break;
    case 0xFF5B:
      *ch = 0xFF5D;
      break;
    case 0xFF5D:
      *ch = 0xFF5B;
      break;
    case 0xFF5F:
      *ch = 0xFF60;
      break;
    case 0xFF60:
      *ch = 0xFF5F;
      break;
    case 0xFF62:
      *ch = 0xFF63;
      break;
    case 0xFF63:
      *ch = 0xFF62;
      break;
    }
  }
}
```