user: 请从给定的汇编指令推导出C源代码:

```asm
<spotrebaZaDen>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x28,%rsp
  mov    %edi,-0x24(%rbp)
  mov    %esi,-0x28(%rbp)
  mov    %edx,-0x2c(%rbp)
  movl   $0x234,-0x14(%rbp)
  movl   $0x0,-0x20(%rbp)
  movl   $0x0,-0x1c(%rbp)
  movl   $0x0,-0x18(%rbp)
  cmpl   $0x1,-0x2c(%rbp)
  jne    L70
  movl   $0x0,-0x1c(%rbp)
  jmp    L25
L38:
  movl   $0x0,-0x20(%rbp)
  jmp    L18
L12:
  mov    -0x1c(%rbp),%eax
  mov    $0x0,%esi
  mov    %eax,%edi
  call   <pocetSegmentu@plt>
  mov    %eax,%ebx
  mov    -0x20(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%edi
  call   <pocetSegmentu@plt>
  add    %ebx,%eax
  imul   $0x3c,%eax,%edx
  mov    -0x14(%rbp),%eax
  add    %edx,%eax
  add    %eax,-0x18(%rbp)
  addl   $0x1,-0x20(%rbp)
L18:
  cmpl   $0x3b,-0x20(%rbp)
  jle    L12
  addl   $0x1,-0x1c(%rbp)
L25:
  mov    -0x1c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L38
  movl   $0x0,-0x20(%rbp)
  jmp    L54
L113:
  mov    -0x24(%rbp),%eax
  mov    $0x0,%esi
  mov    %eax,%edi
  call   <pocetSegmentu@plt>
  mov    %eax,%ebx
  mov    -0x20(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%edi
  call   <pocetSegmentu@plt>
  add    %ebx,%eax
  imul   $0x3c,%eax,%edx
  mov    -0x14(%rbp),%eax
  add    %edx,%eax
  add    %eax,-0x18(%rbp)
  addl   $0x1,-0x20(%rbp)
L54:
  mov    -0x20(%rbp),%eax
  cmp    -0x28(%rbp),%eax
  jle    L113
  jmp    L103
L70:
  mov    -0x28(%rbp),%eax
  mov    %eax,-0x20(%rbp)
  jmp    L30
L116:
  mov    -0x24(%rbp),%eax
  mov    $0x0,%esi
  mov    %eax,%edi
  call   <pocetSegmentu@plt>
  mov    %eax,%ebx
  mov    -0x20(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%edi
  call   <pocetSegmentu@plt>
  add    %ebx,%eax
  imul   $0x3c,%eax,%edx
  mov    -0x14(%rbp),%eax
  add    %edx,%eax
  add    %eax,-0x18(%rbp)
  addl   $0x1,-0x20(%rbp)
L30:
  cmpl   $0x3b,-0x20(%rbp)
  jle    L116
  mov    -0x24(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x1c(%rbp)
  jmp    L128
L58:
  movl   $0x0,-0x20(%rbp)
  jmp    L91
L131:
  mov    -0x1c(%rbp),%eax
  mov    $0x0,%esi
  mov    %eax,%edi
  call   <pocetSegmentu@plt>
  mov    %eax,%ebx
  mov    -0x20(%rbp),%eax
  mov    $0x1,%esi
  mov    %eax,%edi
  call   <pocetSegmentu@plt>
  add    %ebx,%eax
  imul   $0x3c,%eax,%edx
  mov    -0x14(%rbp),%eax
  add    %edx,%eax
  add    %eax,-0x18(%rbp)
  addl   $0x1,-0x20(%rbp)
L91:
  cmpl   $0x3b,-0x20(%rbp)
  jle    L131
  addl   $0x1,-0x1c(%rbp)
L128:
  cmpl   $0x17,-0x1c(%rbp)
  jle    L58
L103:
  mov    -0x18(%rbp),%eax
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

assistant: ```c
int spotrebaZaDen(int h, int m, int od) {
  int spotrebaZaMin = 564;
  int min = 0, hod = 0;
  int spotreba = 0;
  if (od == 1) {
    for (hod = 0; hod < h; hod++) {
      for (min = 0; min < 60; min++) {
        spotreba += pocetSegmentu(hod, 0) * 60 + pocetSegmentu(min, 1) * 60 + spotrebaZaMin;
      }
    }
    for (min = 0; min <= m; min++) {
      spotreba += pocetSegmentu(h, 0) * 60 + pocetSegmentu(min, 1) * 60 + spotrebaZaMin;
    }
  } else {
    for (min = m; min < 60; min++) {
      spotreba += pocetSegmentu(h, 0) * 60 + pocetSegmentu(min, 1) * 60 + spotrebaZaMin;
    }
    for (hod = h + 1; hod < 24; hod++) {
      for (min = 0; min < 60; min++) {
        spotreba += pocetSegmentu(hod, 0) * 60 + pocetSegmentu(min, 1) * 60 + spotrebaZaMin;
      }
    }
  }
  return spotreba;
}
```