user: Please show me the C implementation that matches the assembly code listed below:

```asm
<wordRemove>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    %rsi,-0x30(%rbp)
  cmpq   $0x0,-0x28(%rbp)
  jne    L126
  lea    D18(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L6
L126:
  cmpq   $0x0,-0x30(%rbp)
  jne    L15
  lea    D18(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L6
L15:
  movl   $0x0,-0x18(%rbp)
  jmp    L37
L70:
  addl   $0x1,-0x18(%rbp)
L37:
  mov    -0x18(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  test   %al,%al
  jne    L70
  mov    -0x18(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  movl   $0x0,-0x18(%rbp)
  jmp    L164
L174:
  addl   $0x1,-0x18(%rbp)
L164:
  mov    -0x18(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  test   %al,%al
  jne    L174
  mov    -0x18(%rbp),%eax
  mov    %eax,-0x8(%rbp)
  movl   $0x0,-0x18(%rbp)
  movl   $0x0,-0x14(%rbp)
  movl   $0x0,-0x10(%rbp)
  jmp    L72
L105:
  movl   $0x0,-0x14(%rbp)
  movl   $0x0,-0x10(%rbp)
  mov    -0x18(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%edx
  mov    -0x14(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x30(%rbp),%rax
  add    %rcx,%rax
  movzbl (%rax),%eax
  cmp    %al,%dl
  jne    L151
  jmp    L167
L150:
  mov    -0x18(%rbp),%edx
  mov    -0x14(%rbp),%eax
  add    %edx,%eax
  movslq %eax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%edx
  mov    -0x14(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x30(%rbp),%rax
  add    %rcx,%rax
  movzbl (%rax),%eax
  cmp    %al,%dl
  jne    L146
  addl   $0x1,-0x10(%rbp)
L146:
  addl   $0x1,-0x14(%rbp)
L167:
  mov    -0x14(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jl     L150
L151:
  mov    -0x10(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  je     L140
  addl   $0x1,-0x18(%rbp)
L72:
  mov    -0x18(%rbp),%eax
  cmp    -0xc(%rbp),%eax
  jl     L105
  jmp    L75
L140:
  nop
L75:
  mov    -0x18(%rbp),%eax
  mov    %eax,-0x4(%rbp)
  jmp    L39
L163:
  mov    -0x18(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  movb   $0x0,(%rax)
  addl   $0x1,-0x18(%rbp)
L39:
  mov    -0x4(%rbp),%edx
  mov    -0x14(%rbp),%eax
  add    %edx,%eax
  cmp    %eax,-0x18(%rbp)
  jle    L163
  mov    $0x0,%eax
L6:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D18
type: string

tool: D18: ERROR: array entered was null.


assistant: ```c
int wordRemove(char *sentence_array, char *word) {
  if (sentence_array == NULL) {
    printf("ERROR: array entered was null.\n");
    return 1;
  }
  if (word == NULL) {
    printf("ERROR: array entered was null.\n");
    return 1;
  }
  int a = 0;
  int maxSize;
  while (sentence_array[a] != '\0') {
    a++;
  }
  maxSize = a;
  a = 0;
  int wordSize;
  while (word[a] != '\0') {
    a++;
  }
  wordSize = a;
  a = 0;
  int b = 0;
  int count = 0;
  while (a < maxSize) {
    b = 0;
    count = 0;
    if (sentence_array[a] == word[b]) {
      while (b < wordSize) {
        if (sentence_array[a + b] == word[b]) {
          count++;
        }
        b++;
      }
    }
    if (count == wordSize) {
      break;
    }
    a++;
  }
  int c = a;
  while (a <= (c + b)) {
    sentence_array[a] = '\0';
    a++;
  }
  return 0;
}
```