user: 请将以下的汇编代码转换成C语言代码:

```asm
<str_case_blind_compare_sub_>:
  endbr64
  push   %rbp
  push   %rbx
  mov    %rsi,%rax
  mov    %rdx,%rsi
  mov    (%rax),%r10d
  mov    (%rcx),%r9d
  movl   $0x0,(%r8)
  cmp    %r9d,%r10d
  jl     L114
  lea    -0x1(%r9),%ebp
  mov    $0x0,%ecx
  test   %r9d,%r9d
  jg     L209
L51:
  cmp    %r9d,%r10d
  jle    L65
  movslq %r9d,%rdx
  lea    (%rdi,%rdx,1),%rax
  lea    0x1(%rdi,%rdx,1),%rdx
  sub    %r9d,%r10d
  lea    -0x1(%r10),%ecx
  add    %rcx,%rdx
L190:
  cmpb   $0x20,(%rax)
  jne    L173
  add    $0x1,%rax
  cmp    %rdx,%rax
  jne    L190
  jmp    L65
L114:
  test   %r10d,%r10d
  jle    L48
  lea    -0x1(%r10),%ebp
  mov    $0x0,%ecx
  jmp    L107
L62:
  movl   $0xffffffff,(%r8)
L65:
  pop    %rbx
  pop    %rbp
  ret
L140:
  lea    0x1(%rcx),%rax
  cmp    %rbp,%rcx
  je     L48
  mov    %rax,%rcx
L107:
  movzbl (%rdi,%rcx,1),%edx
  movzbl (%rsi,%rcx,1),%eax
  cmp    %al,%dl
  je     L140
  lea    -0x61(%rdx),%ebx
  mov    %edx,%r11d
  and    $0xffffffdf,%r11d
  cmp    $0x1a,%bl
  cmovb  %r11d,%edx
  lea    -0x61(%rax),%ebx
  mov    %eax,%r11d
  and    $0xffffffdf,%r11d
  cmp    $0x1a,%bl
  cmovb  %r11d,%eax
  cmp    %al,%dl
  jl     L62
  jle    L140
  movl   $0x1,(%r8)
  jmp    L65
L48:
  movslq %r10d,%rdx
  lea    (%rsi,%rdx,1),%rax
  lea    0x1(%rsi,%rdx,1),%rdx
  sub    $0x1,%r9d
  sub    %r10d,%r9d
  add    %r9,%rdx
L77:
  cmpb   $0x20,(%rax)
  jne    L230
  add    $0x1,%rax
  cmp    %rdx,%rax
  jne    L77
  jmp    L65
L230:
  movl   $0xffffffff,(%r8)
  jmp    L65
L22:
  movl   $0xffffffff,(%r8)
  jmp    L65
L112:
  lea    0x1(%rcx),%rax
  cmp    %rbp,%rcx
  je     L51
  mov    %rax,%rcx
L209:
  movzbl (%rdi,%rcx,1),%edx
  movzbl (%rsi,%rcx,1),%eax
  cmp    %al,%dl
  je     L112
  lea    -0x61(%rdx),%ebx
  mov    %edx,%r11d
  and    $0xffffffdf,%r11d
  cmp    $0x1a,%bl
  cmovb  %r11d,%edx
  lea    -0x61(%rax),%ebx
  mov    %eax,%r11d
  and    $0xffffffdf,%r11d
  cmp    $0x1a,%bl
  cmovb  %r11d,%eax
  cmp    %al,%dl
  jl     L22
  jle    L112
  movl   $0x1,(%r8)
  jmp    L65
L173:
  movl   $0x1,(%r8)
  jmp    L65
```

assistant: ```c
void str_case_blind_compare_sub_(char *test_name, int *len_test, char *model_name, int *len_model, int *result) {
  int i, ltest = *len_test, lmod = *len_model;
  char c1, c2;
  *result = 0;
  if (ltest < lmod) {
    for (i = 0; i < ltest; i++) {
      c1 = test_name[i];
      c2 = model_name[i];
      if (c1 != c2) {
        if (c1 >= 'a' && c1 <= 'z') {
          c1 &= 0xDF;
        }
        if (c2 >= 'a' && c2 <= 'z') {
          c2 &= 0xDF;
        }
        if (c1 < c2) {
          *result = -1;
          return;
        } else if (c1 > c2) {
          *result = 1;
          return;
        }
      }
    }
    for (i = ltest; i < lmod; i++) {
      if (model_name[i] != ' ') {
        *result = -1;
        return;
      }
    }
  } else {
    for (i = 0; i < lmod; i++) {
      c1 = test_name[i];
      c2 = model_name[i];
      if (c1 != c2) {
        if (c1 >= 'a' && c1 <= 'z') {
          c1 &= 0xDF;
        }
        if (c2 >= 'a' && c2 <= 'z') {
          c2 &= 0xDF;
        }
        if (c1 < c2) {
          *result = -1;
          return;
        } else if (c1 > c2) {
          *result = 1;
          return;
        }
      }
    }
    for (i = lmod; i < ltest; i++) {
      if (test_name[i] != ' ') {
        *result = 1;
        return;
      }
    }
  }
  return;
}
```