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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x190,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0x178(%rbp)
  movl   $0x0,-0x188(%rbp)
  jmp    L235
L169:
  movl   $0x0,-0x184(%rbp)
  jmp    L195
L144:
  movl   $0x0,-0x180(%rbp)
  jmp    L35
L87:
  mov    -0x178(%rbp),%ecx
  lea    0x1(%rcx),%eax
  mov    %eax,-0x178(%rbp)
  mov    -0x180(%rbp),%eax
  movslq %eax,%rdi
  mov    -0x188(%rbp),%eax
  cltq
  mov    -0x184(%rbp),%edx
  movslq %edx,%rsi
  mov    %rax,%rdx
  shl    $0x4,%rdx
  sub    %rax,%rdx
  lea    (%rdx,%rdx,1),%rax
  mov    %rax,%rdx
  mov    %rsi,%rax
  add    %rax,%rax
  add    %rsi,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rdi,%rax
  mov    %ecx,-0x170(%rbp,%rax,4)
  addl   $0x1,-0x180(%rbp)
L35:
  cmpl   $0x5,-0x180(%rbp)
  jle    L87
  addl   $0x1,-0x184(%rbp)
L195:
  cmpl   $0x4,-0x184(%rbp)
  jle    L144
  cmpl   $0x1,-0x188(%rbp)
  jne    L47
  mov    $0x3e8,%eax
  jmp    L39
L47:
  mov    $0x64,%eax
L39:
  mov    %eax,-0x178(%rbp)
  addl   $0x1,-0x188(%rbp)
L235:
  cmpl   $0x2,-0x188(%rbp)
  jle    L169
  lea    D32(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x188(%rbp)
  jmp    L231
L66:
  mov    -0x188(%rbp),%eax
  mov    %eax,%esi
  lea    D25(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x0,-0x184(%rbp)
  jmp    L71
L67:
  movl   $0x0,-0x180(%rbp)
  jmp    L218
L211:
  mov    -0x180(%rbp),%eax
  movslq %eax,%rsi
  mov    -0x188(%rbp),%eax
  cltq
  mov    -0x184(%rbp),%edx
  movslq %edx,%rcx
  mov    %rax,%rdx
  shl    $0x4,%rdx
  sub    %rax,%rdx
  lea    (%rdx,%rdx,1),%rax
  mov    %rax,%rdx
  mov    %rcx,%rax
  add    %rax,%rax
  add    %rcx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rsi,%rax
  mov    -0x170(%rbp,%rax,4),%eax
  mov    %eax,%esi
  lea    D12(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  addl   $0x1,-0x180(%rbp)
L218:
  cmpl   $0x5,-0x180(%rbp)
  jle    L211
  mov    $0xa,%edi
  call   <putchar@plt>
  addl   $0x1,-0x184(%rbp)
L71:
  cmpl   $0x4,-0x184(%rbp)
  jle    L67
  addl   $0x1,-0x188(%rbp)
L231:
  cmpl   $0x2,-0x188(%rbp)
  jle    L66
  movl   $0x0,-0x188(%rbp)
  jmp    L245
L7:
  movl   $0x0,-0x184(%rbp)
  jmp    L52
L178:
  movl   $0x0,-0x180(%rbp)
  movl   $0x5,-0x17c(%rbp)
  jmp    L9
L210:
  mov    -0x180(%rbp),%eax
  movslq %eax,%rsi
  mov    -0x188(%rbp),%eax
  cltq
  mov    -0x184(%rbp),%edx
  movslq %edx,%rcx
  mov    %rax,%rdx
  shl    $0x4,%rdx
  sub    %rax,%rdx
  lea    (%rdx,%rdx,1),%rax
  mov    %rax,%rdx
  mov    %rcx,%rax
  add    %rax,%rax
  add    %rcx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rsi,%rax
  mov    -0x170(%rbp,%rax,4),%eax
  mov    %eax,-0x174(%rbp)
  mov    -0x17c(%rbp),%eax
  movslq %eax,%rsi
  mov    -0x188(%rbp),%eax
  cltq
  mov    -0x184(%rbp),%edx
  movslq %edx,%rcx
  mov    %rax,%rdx
  shl    $0x4,%rdx
  sub    %rax,%rdx
  lea    (%rdx,%rdx,1),%rax
  mov    %rax,%rdx
  mov    %rcx,%rax
  add    %rax,%rax
  add    %rcx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rsi,%rax
  mov    -0x170(%rbp,%rax,4),%ecx
  mov    -0x180(%rbp),%eax
  movslq %eax,%rdi
  mov    -0x188(%rbp),%eax
  cltq
  mov    -0x184(%rbp),%edx
  movslq %edx,%rsi
  mov    %rax,%rdx
  shl    $0x4,%rdx
  sub    %rax,%rdx
  lea    (%rdx,%rdx,1),%rax
  mov    %rax,%rdx
  mov    %rsi,%rax
  add    %rax,%rax
  add    %rsi,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rdi,%rax
  mov    %ecx,-0x170(%rbp,%rax,4)
  mov    -0x17c(%rbp),%eax
  movslq %eax,%rsi
  mov    -0x188(%rbp),%eax
  cltq
  mov    -0x184(%rbp),%edx
  movslq %edx,%rcx
  mov    %rax,%rdx
  shl    $0x4,%rdx
  sub    %rax,%rdx
  lea    (%rdx,%rdx,1),%rax
  mov    %rax,%rdx
  mov    %rcx,%rax
  add    %rax,%rax
  add    %rcx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  lea    (%rax,%rsi,1),%rdx
  mov    -0x174(%rbp),%eax
  mov    %eax,-0x170(%rbp,%rdx,4)
  addl   $0x1,-0x180(%rbp)
  subl   $0x1,-0x17c(%rbp)
L9:
  mov    -0x180(%rbp),%eax
  cmp    -0x17c(%rbp),%eax
  jl     L210
  addl   $0x1,-0x184(%rbp)
L52:
  cmpl   $0x4,-0x184(%rbp)
  jle    L178
  addl   $0x1,-0x188(%rbp)
L245:
  cmpl   $0x2,-0x188(%rbp)
  jle    L7
  lea    D42(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x188(%rbp)
  jmp    L38
L110:
  mov    -0x188(%rbp),%eax
  mov    %eax,%esi
  lea    D25(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x0,-0x184(%rbp)
  jmp    L12
L25:
  movl   $0x0,-0x180(%rbp)
  jmp    L236
L111:
  mov    -0x180(%rbp),%eax
  movslq %eax,%rsi
  mov    -0x188(%rbp),%eax
  cltq
  mov    -0x184(%rbp),%edx
  movslq %edx,%rcx
  mov    %rax,%rdx
  shl    $0x4,%rdx
  sub    %rax,%rdx
  lea    (%rdx,%rdx,1),%rax
  mov    %rax,%rdx
  mov    %rcx,%rax
  add    %rax,%rax
  add    %rcx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rsi,%rax
  mov    -0x170(%rbp,%rax,4),%eax
  mov    %eax,%esi
  lea    D12(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  addl   $0x1,-0x180(%rbp)
L236:
  cmpl   $0x5,-0x180(%rbp)
  jle    L111
  mov    $0xa,%edi
  call   <putchar@plt>
  addl   $0x1,-0x184(%rbp)
L12:
  cmpl   $0x4,-0x184(%rbp)
  jle    L25
  addl   $0x1,-0x188(%rbp)
L38:
  cmpl   $0x2,-0x188(%rbp)
  jle    L110
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L256
  call   <__stack_chk_fail@plt>
L256:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D32
datatype: string
name: extract_symbolic_data
arguments: tag: D25
datatype: string
name: extract_symbolic_data
arguments: tag: D12
datatype: string
name: extract_symbolic_data
arguments: tag: D42
datatype: string

tool: D32: 
Wypelniona tablica reprezentujaca obraz:


tool: D25: Kanal nr: %d


tool: D12: %d 

tool: D42: 
Po odbiciu wzgledem osi pionowej:


assistant: ```c
int main(void) {
  int obraz[3][5][6];
  int i, j, k, l, wartosc = 0;
  int temp;
  for (i = 0; i < 3; i++) {
    for (j = 0; j < 5; j++) {
      for (k = 0; k < 6; k++) {
        obraz[i][j][k] = wartosc++;
      }
    }
    wartosc = (i == 1) ? 1000 : 100;
  }
  printf("\nWypelniona tablica reprezentujaca obraz:\n\n");
  for (i = 0; i < 3; i++) {
    printf("Kanal nr: %d\n", i);
    for (j = 0; j < 5; j++) {
      for (k = 0; k < 6; k++) {
        printf("%d ", obraz[i][j][k]);
      }
      printf("\n");
    }
  }
  for (i = 0; i < 3; i++) {
    for (j = 0; j < 5; j++) {
      for (k = 0, l = 6 - 1; k < l; k++, l--) {
        temp = obraz[i][j][k];
        obraz[i][j][k] = obraz[i][j][l];
        obraz[i][j][l] = temp;
      }
    }
  }
  printf("\nPo odbiciu wzgledem osi pionowej:\n\n");
  for (i = 0; i < 3; i++) {
    printf("Kanal nr: %d\n", i);
    for (j = 0; j < 5; j++) {
      for (k = 0; k < 6; k++) {
        printf("%d ", obraz[i][j][k]);
      }
      printf("\n");
    }
  }
  return 0;
}
```