user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<repair_population>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x50,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    %rsi,-0x30(%rbp)
  mov    %rdx,-0x38(%rbp)
  mov    %rcx,-0x40(%rbp)
  mov    %r8d,-0x44(%rbp)
  mov    %r9d,-0x48(%rbp)
  movl   $0x0,-0x14(%rbp)
  movl   $0x0,-0x10(%rbp)
  movl   $0x0,-0xc(%rbp)
  movl   $0x0,-0x4(%rbp)
  movl   $0x1,-0x8(%rbp)
  movl   $0x0,-0x14(%rbp)
  jmp    L17
L99:
  movl   $0x1,-0x8(%rbp)
  movl   $0x0,-0x10(%rbp)
  jmp    L113
L27:
  mov    -0x10(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  cmp    %eax,0x18(%rbp)
  jne    L54
  mov    -0x14(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x10(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L54
  movl   $0x0,-0x8(%rbp)
  jmp    L21
L54:
  addl   $0x1,-0x10(%rbp)
L113:
  mov    -0x10(%rbp),%eax
  cmp    0x10(%rbp),%eax
  jl     L27
L21:
  movl   $0x0,-0xc(%rbp)
  jmp    L92
L114:
  mov    -0xc(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x30(%rbp),%rsi
  mov    -0x38(%rbp),%rax
  mov    %rax,%rdi
  call   <is_overloaded@plt>
  test   %rax,%rax
  je     L79
  movl   $0x0,-0x8(%rbp)
  jmp    L105
L79:
  addl   $0x1,-0xc(%rbp)
L92:
  mov    -0xc(%rbp),%eax
  cmp    -0x48(%rbp),%eax
  jl     L114
L105:
  cmpl   $0x0,-0x8(%rbp)
  jne    L9
  mov    -0x48(%rbp),%r9d
  mov    -0x44(%rbp),%r8d
  mov    -0x40(%rbp),%rcx
  mov    -0x38(%rbp),%rdx
  mov    -0x30(%rbp),%rsi
  mov    -0x28(%rbp),%rax
  push   0x40(%rbp)
  push   0x38(%rbp)
  mov    -0x14(%rbp),%edi
  push   %rdi
  mov    0x30(%rbp),%edi
  push   %rdi
  push   0x28(%rbp)
  push   0x20(%rbp)
  mov    0x18(%rbp),%edi
  push   %rdi
  mov    0x10(%rbp),%edi
  push   %rdi
  mov    %rax,%rdi
  call   <repair_individual@plt>
  add    $0x40,%rsp
L9:
  addl   $0x1,-0x14(%rbp)
L17:
  mov    -0x14(%rbp),%eax
  cmp    -0x44(%rbp),%eax
  jl     L99
  nop
  nop
  leave
  ret
```

assistant: ```c
void repair_population(int **population, int ***utilization, int **H, int **V, int number_of_individuals, int h_size, int v_size, int max_SLA, int *K, int **network_utilization, int l_size, int **G, int **T) {
  int iterator_individual = 0;
  int iterator_virtual = 0;
  int iterator_physical = 0;
  int iterator_link = 0;
  int factibility = 1;
  for (iterator_individual = 0; iterator_individual < number_of_individuals; iterator_individual++) {
    factibility = 1;
    for (iterator_virtual = 0; iterator_virtual < v_size; iterator_virtual++) {
      if (V[iterator_virtual][3] == max_SLA && population[iterator_individual][iterator_virtual] == 0) {
        factibility = 0;
        break;
      }
    }
    for (iterator_physical = 0; iterator_physical < h_size; iterator_physical++) {
      if (is_overloaded(H, utilization, iterator_individual, iterator_physical)) {
        factibility = 0;
        break;
      }
    }
    if (factibility == 0) {
      repair_individual(population, utilization, H, V, number_of_individuals, h_size, v_size, max_SLA, K, network_utilization, l_size, iterator_individual, G, T);
    }
  }
}
```