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

```asm
<getNum>:
  endbr64
  push   %rbx
  mov    %rdi,%rbx
  call   <strlen@plt>
  lea    -0x1(%rax),%edi
  test   %edi,%edi
  jle    L62
  mov    %eax,%esi
  lea    -0x2(%rax),%r9d
  xor    %eax,%eax
  jmp    L175
  nopw   0x0(%rax,%rax,1)
L90:
  lea    0x1(%rax),%rdx
  cmp    %r9,%rax
  je     L73
  mov    %rdx,%rax
L175:
  movzbl (%rbx,%rax,1),%edx
  mov    %eax,%r8d
  lea    -0x30(%rdx),%ecx
  cmp    $0x9,%cl
  jbe    L90
  cmp    $0x20,%dl
  je     L186
  xor    %r8d,%r8d
  pop    %rbx
  mov    %r8d,%eax
  ret
  nopl   0x0(%rax)
L73:
  lea    0x2(%rax),%r10d
L170:
  movslq %r8d,%r8
  mov    $0x1,%eax
  lea    -0x1(%rbx,%r8,1),%r9
  lea    (%rbx,%r8,1),%rcx
  sub    %r8,%r9
  xor    %r8d,%r8d
  nopl   0x0(%rax,%rax,1)
L135:
  movsbl (%rcx),%edx
  sub    $0x1,%rcx
  sub    $0x30,%edx
  imul   %eax,%edx
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  add    %edx,%r8d
  cmp    %rcx,%r9
  jne    L135
L96:
  cmp    %r10d,%edi
  jl     L76
  mov    %esi,%ecx
  movslq %r10d,%rdx
  sub    %r10d,%ecx
  lea    -0x1(%rcx),%eax
  cmp    $0x6,%eax
  jbe    L208
  cmp    $0xe,%eax
  jbe    L155
  mov    %ecx,%r9d
  add    %rbx,%rdx
  xor    %eax,%eax
  shr    $0x4,%r9d
  shl    $0x4,%r9
  nopl   0x0(%rax,%rax,1)
L10:
  movdqu (%rdx,%rax,1),%xmm0
  movups %xmm0,(%rbx,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%r9
  jne    L10
  mov    %ecx,%r9d
  and    $0xfffffff0,%r9d
  lea    (%r9,%r10,1),%eax
  cmp    %ecx,%r9d
  je     L45
  sub    %r9d,%ecx
  lea    -0x1(%rcx),%r11d
  cmp    $0x6,%r11d
  jbe    L0
L42:
  mov    (%rdx,%r9,1),%rdx
  mov    %rdx,(%rbx,%r9,1)
  mov    %ecx,%edx
  and    $0xfffffff8,%edx
  add    %edx,%eax
  cmp    %edx,%ecx
  je     L45
L0:
  movslq %eax,%rdx
  movzbl (%rbx,%rdx,1),%ecx
  mov    %eax,%edx
  sub    %r10d,%edx
  movslq %edx,%rdx
  mov    %cl,(%rbx,%rdx,1)
  lea    0x1(%rax),%edx
  cmp    %edx,%edi
  jl     L45
  movslq %edx,%rcx
  sub    %r10d,%edx
  movzbl (%rbx,%rcx,1),%ecx
  movslq %edx,%rdx
  mov    %cl,(%rbx,%rdx,1)
  lea    0x2(%rax),%edx
  cmp    %edx,%edi
  jl     L45
  movslq %edx,%rcx
  sub    %r10d,%edx
  movzbl (%rbx,%rcx,1),%ecx
  movslq %edx,%rdx
  mov    %cl,(%rbx,%rdx,1)
  lea    0x3(%rax),%edx
  cmp    %edx,%edi
  jl     L45
  movslq %edx,%rcx
  sub    %r10d,%edx
  movzbl (%rbx,%rcx,1),%ecx
  movslq %edx,%rdx
  mov    %cl,(%rbx,%rdx,1)
  lea    0x4(%rax),%edx
  cmp    %edx,%edi
  jl     L45
  movslq %edx,%rcx
  sub    %r10d,%edx
  movzbl (%rbx,%rcx,1),%ecx
  movslq %edx,%rdx
  mov    %cl,(%rbx,%rdx,1)
  lea    0x5(%rax),%edx
  cmp    %edx,%edi
  jl     L45
  movslq %edx,%rcx
  sub    %r10d,%edx
  add    $0x6,%eax
  movzbl (%rbx,%rcx,1),%ecx
  movslq %edx,%rdx
  mov    %cl,(%rbx,%rdx,1)
  cmp    %eax,%edi
  jl     L45
  movslq %eax,%rdx
  sub    %r10d,%eax
  movzbl (%rbx,%rdx,1),%edx
  cltq
  mov    %dl,(%rbx,%rax,1)
L45:
  sub    %r10d,%esi
  movslq %esi,%rsi
  add    %rsi,%rbx
L76:
  movb   $0x0,(%rbx)
  mov    %r8d,%eax
  pop    %rbx
  ret
  nopw   0x0(%rax,%rax,1)
L186:
  lea    0x1(%rax),%r10d
  sub    $0x1,%r8d
  jae    L170
  xor    %r8d,%r8d
  jmp    L96
  cs nopw 0x0(%rax,%rax,1)
L208:
  sub    %r10d,%edi
  mov    %rbx,%rax
  lea    0x1(%rbx,%rdi,1),%rdi
  nopl   0x0(%rax,%rax,1)
L207:
  movzbl (%rax,%rdx,1),%ecx
  add    $0x1,%rax
  mov    %cl,-0x1(%rax)
  cmp    %rdi,%rax
  jne    L207
  jmp    L45
L62:
  xor    %r8d,%r8d
  jmp    L76
L155:
  mov    %r10d,%eax
  xor    %r9d,%r9d
  add    %rbx,%rdx
  jmp    L42
```

assistant: ```c
int getNum(char *text) {
  int ret = 0;
  int i, j, o, l = strlen(text) - 1;
  for (i = 0; i < l; i++)
    if ((text[i] < '0') || (text[i] > '9')) {
      if (text[i] == ' ')
        break;
      else
        return 0;
    }
  o = i + 1;
  for (i--, j = 1; i >= 0; i--, j *= 10)
    ret += j * (text[i] - '0');
  for (i = o; i <= l; i++)
    text[i - o] = text[i];
  text[i - o] = 0;
  return ret;
}
```