user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xd8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0xc8(%rsp)
  xor    %eax,%eax
  mov    $0x1,%r14d
  lea    D48(%rip),%r12
  jmp    L19
L56:
  mov    %r14d,%r15d
  jle    L92
  lea    0x20(%rsp),%rbp
  mov    $0x0,%ebx
L134:
  movl   $0xffffffff,0x70(%rsp,%rbx,4)
  mov    %rbp,%rsi
  mov    %r12,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  add    $0x1,%rbx
  add    $0x4,%rbp
  cmp    %rbx,0x8(%rsp)
  jg     L134
L92:
  cmpq   $0x0,0x10(%rsp)
  jle    L119
  mov    $0x0,%r13d
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L54
L24:
  add    $0x1,%rbp
  cmp    %rbp,0x10(%rsp)
  jle    L25
L54:
  lea    0x4(%rsp),%rsi
  mov    %r12,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  mov    0x4(%rsp),%eax
  sub    $0x1,%eax
  mov    %eax,0x4(%rsp)
  cmp    %rbx,0x18(%rsp)
  jle    L24
  cltq
  mov    0x70(%rsp,%rax,4),%edx
  neg    %edx
  mov    %edx,0x70(%rsp,%rax,4)
  imul   0x20(%rsp,%rax,4),%edx
  movslq %edx,%rdx
  add    %rdx,%rbx
  cmp    %rbx,%r13
  cmovl  %rbx,%r13
  jmp    L24
L119:
  mov    $0x0,%r13d
  mov    $0x0,%ebx
L25:
  mov    %r15d,%esi
  lea    D36(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  cmp    %rbx,0x18(%rsp)
  jge    L2
  lea    D46(%rip),%rdi
  call   <puts@plt>
L109:
  mov    $0xa,%edi
  call   <putchar@plt>
  add    $0x1,%r14d
L19:
  lea    0x18(%rsp),%rcx
  lea    0x10(%rsp),%rdx
  lea    0x8(%rsp),%rsi
  lea    D39(%rip),%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  test   %rax,%rax
  je     L83
  mov    0x8(%rsp),%rax
  test   %rax,%rax
  jne    L56
  mov    0x10(%rsp),%rax
  or     0x18(%rsp),%rax
  je     L83
  mov    %r14d,%r15d
  jmp    L92
L2:
  lea    D22(%rip),%rdi
  call   <puts@plt>
  mov    %r13,%rsi
  lea    D9(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L109
L83:
  mov    0xc8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L51
  mov    $0x0,%eax
  add    $0xd8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L51:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: tag: D48
data_type: string
name: parse_data
arguments: tag: D36
data_type: string
name: parse_data
arguments: tag: D46
data_type: string
name: parse_data
arguments: tag: D39
data_type: string
name: parse_data
arguments: tag: D22
data_type: string
name: parse_data
arguments: tag: D9
data_type: string

tool: D48: %d

tool: D36: Sequence %d


tool: D46: Fuse was blown.

tool: D39: %ld %ld %ld

tool: D22: Fuse was not blown.

tool: D9: Maximal power consumption was %ld amperes.


assistant: ```c
int main() {
  long n, m, c, i, s, Max;
  int t, power[20], on[20], sequence = 0;
  while (scanf("%ld %ld %ld", &n, &m, &c)) {
    if (!n && !m && !c)
      break;
    sequence++;
    for (i = 0; i < n; i++) {
      on[i] = -1;
      scanf("%d", &power[i]);
    }
    for (i = 0, Max = 0, s = 0; i < m; i++) {
      scanf("%d", &t);
      --t;
      if (s < c) {
        on[t] = -on[t];
        s += power[t] * on[t];
        if (s > Max)
          Max = s;
      }
    }
    printf("Sequence %d\n", sequence);
    if (s > c)
      printf("Fuse was blown.\n");
    else {
      printf("Fuse was not blown.\n");
      printf("Maximal power consumption was %ld amperes.\n", Max);
    }
    printf("\n");
  }
  return 0;
}
```