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

```asm
<str_case_blind_compare_sub_>:
  endbr64
  mov    %rsi,%r9
  push   %rbp
  mov    %rdx,%rsi
  push   %rbx
  mov    (%r9),%ebx
  mov    (%rcx),%r11d
  movl   $0x0,(%r8)
  cmp    %r11d,%ebx
  jl     L60
  movslq %r11d,%rbp
  xor    %ecx,%ecx
  test   %r11d,%r11d
  jle    L18
  nopl   0x0(%rax)
L157:
  movzbl (%rdi,%rcx,1),%edx
  movzbl (%rsi,%rcx,1),%eax
  cmp    %al,%dl
  je     L87
  lea    -0x61(%rdx),%r10d
  mov    %edx,%r9d
  and    $0xffffffdf,%r9d
  cmp    $0x1a,%r10b
  lea    -0x61(%rax),%r10d
  cmovb  %r9d,%edx
  mov    %eax,%r9d
  and    $0xffffffdf,%r9d
  cmp    $0x1a,%r10b
  cmovb  %r9d,%eax
  cmp    %al,%dl
  jl     L144
  jg     L8
L87:
  add    $0x1,%rcx
  cmp    %rbp,%rcx
  jne    L157
L18:
  cmp    %r11d,%ebx
  jle    L17
  movslq %r11d,%rdx
  sub    %r11d,%ebx
  lea    (%rdi,%rdx,1),%rax
  lea    -0x1(%rbx),%ecx
  lea    0x1(%rdi,%rdx,1),%rdx
  add    %rcx,%rdx
  jmp    L24
  nopl   0x0(%rax)
L26:
  add    $0x1,%rax
  cmp    %rdx,%rax
  je     L17
L24:
  cmpb   $0x20,(%rax)
  je     L26
L8:
  movl   $0x1,(%r8)
L17:
  pop    %rbx
  pop    %rbp
  ret
L60:
  movslq %ebx,%rbp
  xor    %ecx,%ecx
  test   %ebx,%ebx
  jle    L168
  nopl   0x0(%rax)
L47:
  movzbl (%rdi,%rcx,1),%edx
  movzbl (%rsi,%rcx,1),%eax
  cmp    %al,%dl
  je     L81
  lea    -0x61(%rdx),%r10d
  mov    %edx,%r9d
  and    $0xffffffdf,%r9d
  cmp    $0x1a,%r10b
  lea    -0x61(%rax),%r10d
  cmovb  %r9d,%edx
  mov    %eax,%r9d
  and    $0xffffffdf,%r9d
  cmp    $0x1a,%r10b
  cmovb  %r9d,%eax
  cmp    %al,%dl
  jl     L144
  jg     L8
L81:
  add    $0x1,%rcx
  cmp    %rcx,%rbp
  jne    L47
L168:
  sub    $0x1,%r11d
  lea    (%rsi,%rbp,1),%rax
  lea    0x1(%rsi,%rbp,1),%rdx
  sub    %ebx,%r11d
  add    %r11,%rdx
  cmpb   $0x20,(%rax)
  jne    L144
  nopl   0x0(%rax)
L131:
  add    $0x1,%rax
  cmp    %rax,%rdx
  je     L17
  cmpb   $0x20,(%rax)
  je     L131
L144:
  pop    %rbx
  pop    %rbp
  movl   $0xffffffff,(%r8)
  ret
```

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;
}
```