user: What would the C source look like for the assembly code provided here?

```asm
<hs7huan4ma3xu4lie4>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x60,%rsp
  mov    %rdi,-0x48(%rbp)
  mov    %rsi,-0x50(%rbp)
  mov    %rdx,-0x58(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    -0x50(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,-0x18(%rbp)
  movl   $0x0,-0x20(%rbp)
  jmp    L493
L151:
  mov    -0x20(%rbp),%edx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0x18(%rbp),%edx
  mov    -0x50(%rbp),%rax
  mov    %rax,%rsi
  mov    %rcx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L543
  movl   $0x0,-0x2c(%rbp)
  mov    -0x18(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x20(%rbp),%edx
  mov    -0x18(%rbp),%eax
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    %eax,-0x30(%rbp)
  cmpl   $0x0,-0x30(%rbp)
  je     L162
  cmpl   $0x0,-0x30(%rbp)
  js     L437
  cmpl   $0x78,-0x30(%rbp)
  jg     L437
  cmpl   $0x2f,-0x30(%rbp)
  jl     L437
  mov    -0x30(%rbp),%eax
  sub    $0x2f,%eax
  cmp    $0x49,%eax
  ja     L437
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D4(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D4(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  movl   $0x7,-0x30(%rbp)
  jmp    L381
  movl   $0x8,-0x30(%rbp)
  jmp    L381
  movl   $0xc,-0x30(%rbp)
  jmp    L381
  movl   $0xa,-0x30(%rbp)
  jmp    L381
  movl   $0xd,-0x30(%rbp)
  jmp    L381
  movl   $0x9,-0x30(%rbp)
  jmp    L381
  movl   $0xb,-0x30(%rbp)
  jmp    L381
L162:
  cmpq   $0x0,-0x58(%rbp)
  je     L38
  addl   $0x1,-0x20(%rbp)
  mov    -0x58(%rbp),%rax
  mov    -0x20(%rbp),%edx
  mov    %edx,(%rax)
L38:
  mov    -0x48(%rbp),%rax
  jmp    L133
  movl   $0x46,-0x2c(%rbp)
  jmp    L381
  mov    -0x20(%rbp),%ecx
  mov    -0x34(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x34(%rbp)
  cltq
  lea    (%rcx,%rax,1),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    %eax,-0x2c(%rbp)
  jmp    L381
L437:
  cmpl   $0x2f,-0x30(%rbp)
  jle    L385
  cmpl   $0x37,-0x30(%rbp)
  jg     L385
  movl   $0x38,-0x2c(%rbp)
  subl   $0x1,-0x34(%rbp)
L385:
  nop
L381:
  cmpl   $0x0,-0x2c(%rbp)
  je     L248
  cmpl   $0x30,-0x2c(%rbp)
  jle    L249
  cmpl   $0x32,-0x2c(%rbp)
  jg     L249
  movl   $0x8,-0x24(%rbp)
  jmp    L309
L249:
  cmpl   $0x33,-0x2c(%rbp)
  jne    L4
  movl   $0x6,-0x24(%rbp)
  jmp    L309
L4:
  cmpl   $0x33,-0x2c(%rbp)
  jle    L341
  cmpl   $0x36,-0x2c(%rbp)
  jg     L341
  movl   $0x4,-0x24(%rbp)
  jmp    L309
L341:
  cmpl   $0x36,-0x2c(%rbp)
  jle    L332
  cmpl   $0x39,-0x2c(%rbp)
  jle    L329
L332:
  cmpl   $0x30,-0x2c(%rbp)
  je     L329
  cmpl   $0x40,-0x2c(%rbp)
  jle    L43
  cmpl   $0x45,-0x2c(%rbp)
  jg     L43
L329:
  movl   $0x3,-0x24(%rbp)
  jmp    L309
L43:
  cmpl   $0x45,-0x2c(%rbp)
  jle    L317
  cmpl   $0x5a,-0x2c(%rbp)
  jle    L174
L317:
  cmpl   $0x60,-0x2c(%rbp)
  jle    L353
  cmpl   $0x7a,-0x2c(%rbp)
  jg     L353
L174:
  movl   $0x2,-0x24(%rbp)
  jmp    L309
L353:
  cmpq   $0x0,-0x58(%rbp)
  je     L250
  mov    -0x58(%rbp),%rax
  movl   $0xffff,(%rax)
L250:
  mov    -0x48(%rbp),%rax
  jmp    L133
L309:
  movl   $0x0,-0x28(%rbp)
  jmp    L61
L469:
  mov    -0x28(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x28(%rbp)
  mov    -0x30(%rbp),%edx
  mov    %eax,%eax
  mov    %dl,-0x11(%rbp,%rax,1)
  addl   $0x1,-0x34(%rbp)
L61:
  mov    -0x28(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jae    L562
  mov    -0x20(%rbp),%edx
  mov    -0x34(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    %eax,-0x30(%rbp)
  cmpl   $0x2f,-0x30(%rbp)
  jle    L321
  cmpl   $0x30,-0x2c(%rbp)
  jle    L227
  cmpl   $0x39,-0x2c(%rbp)
  jg     L227
  mov    -0x2c(%rbp),%eax
  jmp    L449
L227:
  mov    $0x3a,%eax
L449:
  cmp    -0x30(%rbp),%eax
  jg     L469
L321:
  cmpl   $0x40,-0x2c(%rbp)
  jle    L562
  cmpl   $0x40,-0x30(%rbp)
  jle    L199
  cmpl   $0x5a,-0x30(%rbp)
  jle    L469
L199:
  cmpl   $0x60,-0x30(%rbp)
  jle    L562
  cmpl   $0x7a,-0x30(%rbp)
  jle    L469
L562:
  cmpl   $0x0,-0x28(%rbp)
  jne    L628
  cmpq   $0x0,-0x58(%rbp)
  je     L629
  mov    -0x58(%rbp),%rax
  movl   $0xfffe,(%rax)
L629:
  mov    -0x48(%rbp),%rax
  jmp    L133
L628:
  mov    -0x28(%rbp),%eax
  movb   $0x0,-0x11(%rbp,%rax,1)
  cmpl   $0x30,-0x2c(%rbp)
  jle    L104
  cmpl   $0x39,-0x2c(%rbp)
  jg     L104
  subl   $0x30,-0x2c(%rbp)
  jmp    L101
L104:
  cmpl   $0x30,-0x2c(%rbp)
  jne    L152
  movl   $0xa,-0x2c(%rbp)
  jmp    L101
L152:
  cmpl   $0x40,-0x2c(%rbp)
  jle    L136
  cmpl   $0x5a,-0x2c(%rbp)
  jg     L136
  subl   $0x36,-0x2c(%rbp)
  movl   $0x0,-0x1c(%rbp)
  jmp    L81
L538:
  mov    -0x1c(%rbp),%eax
  cltq
  movzbl -0x11(%rbp,%rax,1),%eax
  cmp    $0x60,%al
  jle    L693
  mov    -0x1c(%rbp),%eax
  cltq
  movzbl -0x11(%rbp,%rax,1),%eax
  cmp    $0x7a,%al
  jg     L693
  mov    -0x1c(%rbp),%eax
  cltq
  movzbl -0x11(%rbp,%rax,1),%eax
  sub    $0x20,%eax
  mov    %eax,%edx
  mov    -0x1c(%rbp),%eax
  cltq
  mov    %dl,-0x11(%rbp,%rax,1)
L693:
  addl   $0x1,-0x1c(%rbp)
L81:
  mov    -0x1c(%rbp),%eax
  cltq
  movzbl -0x11(%rbp,%rax,1),%eax
  test   %al,%al
  jne    L538
  jmp    L101
L136:
  subl   $0x3c,-0x2c(%rbp)
L101:
  lea    -0x38(%rbp),%rdx
  mov    -0x2c(%rbp),%ecx
  lea    -0x11(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <hs7chuan4_zheng3shu4@plt>
  mov    %eax,-0x30(%rbp)
  mov    -0x38(%rbp),%eax
  test   %eax,%eax
  je     L248
  cmpq   $0x0,-0x58(%rbp)
  je     L66
  mov    -0x38(%rbp),%edx
  mov    $0xfffe,%eax
  sub    %edx,%eax
  mov    %eax,%edx
  mov    -0x58(%rbp),%rax
  mov    %edx,(%rax)
L66:
  mov    -0x48(%rbp),%rax
  jmp    L133
L248:
  mov    -0x20(%rbp),%edx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    -0x30(%rbp),%edx
  mov    %dl,(%rax)
  movl   $0x0,-0x28(%rbp)
  jmp    L328
L494:
  addl   $0x1,-0x28(%rbp)
L328:
  mov    -0x20(%rbp),%edx
  mov    -0x34(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x28(%rbp),%eax
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  add    %rax,%rdx
  mov    -0x20(%rbp),%ecx
  mov    -0x28(%rbp),%eax
  add    %rcx,%rax
  lea    0x1(%rax),%rcx
  mov    -0x48(%rbp),%rax
  add    %rcx,%rax
  movzbl (%rdx),%edx
  mov    %dl,(%rax)
  movzbl (%rax),%eax
  test   %al,%al
  jne    L494
L543:
  addl   $0x1,-0x20(%rbp)
L493:
  mov    -0x20(%rbp),%edx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  test   %al,%al
  jne    L151
  cmpq   $0x0,-0x58(%rbp)
  je     L432
  mov    -0x58(%rbp),%rax
  mov    -0x20(%rbp),%edx
  mov    %edx,(%rax)
L432:
  mov    -0x48(%rbp),%rax
L133:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L588
  call   <__stack_chk_fail@plt>
L588:
  leave
  ret
```

assistant: ```c
char *hs7huan4ma3xu4lie4(char *z4f2ch4, char *ying3dao3fu2, unsigned *z4f2d4l2_) {
  char huan3cong1[9];
  int d4l2, z4f2, jin4zhi4, c4w4;
  unsigned pian1yi2, chang2;
  unsigned ying3dao3fu2chang2 = strlen(ying3dao3fu2);
  unsigned z4f2d4l2 = 0;
  while (*(z4f2ch4 + z4f2d4l2)) {
    if (strncmp(z4f2ch4 + z4f2d4l2, ying3dao3fu2, ying3dao3fu2chang2) == 0) {
      jin4zhi4 = 0;
      d4l2 = ying3dao3fu2chang2 + 1;
      switch (z4f2 = *(z4f2ch4 + z4f2d4l2 + ying3dao3fu2chang2)) {
      case 'a':
        z4f2 = '\a';
        break;
      case 'b':
        z4f2 = '\b';
        break;
      case 'f':
        z4f2 = '\f';
        break;
      case 'n':
        z4f2 = '\n';
        break;
      case 'r':
        z4f2 = '\r';
        break;
      case 't':
        z4f2 = '\t';
        break;
      case 'v':
        z4f2 = '\v';
        break;
      case 0:
        if (z4f2d4l2_)
          *z4f2d4l2_ = ++z4f2d4l2;
        return z4f2ch4;
      case 'x':
      case 'X':
        jin4zhi4 = 'F';
        break;
      case '/':
        jin4zhi4 = *(z4f2ch4 + z4f2d4l2 + d4l2++);
        break;
      default:
        if (z4f2 >= '0' && z4f2 <= '7') {
          jin4zhi4 = '8';
          d4l2--;
        }
        break;
      }
      if (jin4zhi4) {
        if (jin4zhi4 >= '1' && jin4zhi4 <= '2')
          chang2 = 8;
        else if (jin4zhi4 == '3')
          chang2 = 6;
        else if (jin4zhi4 >= '4' && jin4zhi4 <= '6')
          chang2 = 4;
        else if ((jin4zhi4 >= '7' && jin4zhi4 <= '9') || jin4zhi4 == '0' || (jin4zhi4 >= 'A' && jin4zhi4 <= 'E'))
          chang2 = 3;
        else if ((jin4zhi4 >= 'F' && jin4zhi4 <= 'Z') || (jin4zhi4 >= 'a' && jin4zhi4 <= 'z'))
          chang2 = 2;
        else {
          if (z4f2d4l2_)
            *z4f2d4l2_ = 0xffff;
          return z4f2ch4;
        }
        for (pian1yi2 = 0; pian1yi2 < chang2 && (((z4f2 = *(z4f2ch4 + z4f2d4l2 + d4l2)) >= '0' && z4f2 < (jin4zhi4 >= '1' && jin4zhi4 <= '9' ? jin4zhi4 : '9' + 1)) || (jin4zhi4 >= 'A' && ((z4f2 >= 'A' && z4f2 <= 'Z') || (z4f2 >= 'a' && z4f2 <= 'z')))); ++d4l2) {
          huan3cong1[pian1yi2++] = z4f2;
        }
        if (!pian1yi2) {
          if (z4f2d4l2_)
            *z4f2d4l2_ = 0xfffe;
          return z4f2ch4;
        }
        huan3cong1[pian1yi2] = 0;
        if (jin4zhi4 >= '1' && jin4zhi4 <= '9')
          jin4zhi4 -= '0';
        else if (jin4zhi4 == '0')
          jin4zhi4 = 10;
        else if (jin4zhi4 >= 'A' && jin4zhi4 <= 'Z') {
          int i;
          jin4zhi4 = jin4zhi4 - 'A' + 11;
          for (i = 0; huan3cong1[i]; i++) {
            if (huan3cong1[i] >= 'a' && huan3cong1[i] <= 'z') {
              huan3cong1[i] = huan3cong1[i] - 'a' + 'A';
            }
          }
        } else
          jin4zhi4 = jin4zhi4 - 'a' + 37;
        z4f2 = (int)hs7chuan4_zheng3shu4(huan3cong1, jin4zhi4, &c4w4);
        if (c4w4) {
          if (z4f2d4l2_)
            *z4f2d4l2_ = 0xfffe - c4w4;
          return z4f2ch4;
        }
      }
      *(z4f2ch4 + z4f2d4l2) = z4f2;
      for (pian1yi2 = 0; (*(z4f2ch4 + z4f2d4l2 + 1 + pian1yi2) = *(z4f2ch4 + z4f2d4l2 + d4l2 + pian1yi2)); pian1yi2++)
        ;
    }
    z4f2d4l2++;
  }
  if (z4f2d4l2_)
    *z4f2d4l2_ = z4f2d4l2;
  return z4f2ch4;
}
```