user: 这段汇编代码用C语言表示是什么样的:

```asm
<_divuint>:
  endbr64
  mov    %edi,%eax
  mov    %esi,%edx
  lea    (%rdi,%rdi,1),%ecx
  shr    $0x1f,%eax
  cmp    %esi,%eax
  jb     L86
  sub    %esi,%eax
  or     $0x1,%ecx
L86:
  add    %eax,%eax
  lea    (%rcx,%rcx,1),%esi
  mov    %eax,%edi
  or     $0x1,%edi
  test   %ecx,%ecx
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L121
  sub    %edx,%eax
  or     $0x1,%esi
L121:
  add    %eax,%eax
  lea    (%rsi,%rsi,1),%ecx
  mov    %eax,%edi
  or     $0x1,%edi
  test   %esi,%esi
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L39
  sub    %edx,%eax
  or     $0x1,%ecx
L39:
  add    %eax,%eax
  lea    (%rcx,%rcx,1),%esi
  mov    %eax,%edi
  or     $0x1,%edi
  test   %ecx,%ecx
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L136
  sub    %edx,%eax
  or     $0x1,%esi
L136:
  add    %eax,%eax
  lea    (%rsi,%rsi,1),%ecx
  mov    %eax,%edi
  or     $0x1,%edi
  test   %esi,%esi
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L54
  sub    %edx,%eax
  or     $0x1,%ecx
L54:
  add    %eax,%eax
  lea    (%rcx,%rcx,1),%esi
  mov    %eax,%edi
  or     $0x1,%edi
  test   %ecx,%ecx
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L130
  sub    %edx,%eax
  or     $0x1,%esi
L130:
  add    %eax,%eax
  lea    (%rsi,%rsi,1),%ecx
  mov    %eax,%edi
  or     $0x1,%edi
  test   %esi,%esi
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L117
  sub    %edx,%eax
  or     $0x1,%ecx
L117:
  add    %eax,%eax
  lea    (%rcx,%rcx,1),%esi
  mov    %eax,%edi
  or     $0x1,%edi
  test   %ecx,%ecx
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L91
  sub    %edx,%eax
  or     $0x1,%esi
L91:
  add    %eax,%eax
  lea    (%rsi,%rsi,1),%ecx
  mov    %eax,%edi
  or     $0x1,%edi
  test   %esi,%esi
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L83
  sub    %edx,%eax
  or     $0x1,%ecx
L83:
  add    %eax,%eax
  lea    (%rcx,%rcx,1),%esi
  mov    %eax,%edi
  or     $0x1,%edi
  test   %ecx,%ecx
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L141
  sub    %edx,%eax
  or     $0x1,%esi
L141:
  add    %eax,%eax
  lea    (%rsi,%rsi,1),%ecx
  mov    %eax,%edi
  or     $0x1,%edi
  test   %esi,%esi
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L21
  sub    %edx,%eax
  or     $0x1,%ecx
L21:
  add    %eax,%eax
  lea    (%rcx,%rcx,1),%esi
  mov    %eax,%edi
  or     $0x1,%edi
  test   %ecx,%ecx
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L128
  sub    %edx,%eax
  or     $0x1,%esi
L128:
  add    %eax,%eax
  lea    (%rsi,%rsi,1),%ecx
  mov    %eax,%edi
  or     $0x1,%edi
  test   %esi,%esi
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L41
  sub    %edx,%eax
  or     $0x1,%ecx
L41:
  add    %eax,%eax
  lea    (%rcx,%rcx,1),%esi
  mov    %eax,%edi
  or     $0x1,%edi
  test   %ecx,%ecx
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L90
  sub    %edx,%eax
  or     $0x1,%esi
L90:
  add    %eax,%eax
  lea    (%rsi,%rsi,1),%ecx
  mov    %eax,%edi
  or     $0x1,%edi
  test   %esi,%esi
  cmovs  %edi,%eax
  cmp    %eax,%edx
  ja     L65
  sub    %edx,%eax
  or     $0x1,%ecx
L65:
  add    %eax,%eax
  lea    (%rcx,%rcx,1),%r8d
  mov    %eax,%esi
  or     $0x1,%esi
  test   %ecx,%ecx
  mov    %r8d,%ecx
  cmovs  %esi,%eax
  or     $0x1,%ecx
  cmp    %eax,%edx
  cmovbe %ecx,%r8d
  mov    %r8d,%eax
  ret
```

assistant: ```c
unsigned int _divuint(unsigned int a, unsigned int b) {
  unsigned int reste = 0;
  unsigned char count = 16;
  char c;
  do {
    c = ((a >> (8 * sizeof(a) - 1)) & 1);
    a <<= 1;
    reste <<= 1;
    if (c)
      reste |= 1;
    if (reste >= b) {
      reste -= b;
      a |= 1;
    }
  } while (--count);
  return a;
}
```