user: 提供的汇编代码用C语言表示会是什么样子：

```asm
<orangesRotting>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x90,%rsp
  mov    %rdi,-0x78(%rbp)
  mov    %esi,-0x7c(%rbp)
  mov    %rdx,-0x88(%rbp)
  mov    -0x88(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x3c(%rbp)
  movl   $0x0,-0x64(%rbp)
  movl   $0x0,-0x60(%rbp)
  jmp    L94
L286:
  movl   $0x0,-0x5c(%rbp)
  jmp    L201
L206:
  mov    -0x60(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x5c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L257
  addl   $0x1,-0x64(%rbp)
L257:
  addl   $0x1,-0x5c(%rbp)
L201:
  mov    -0x5c(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jl     L206
  addl   $0x1,-0x60(%rbp)
L94:
  mov    -0x60(%rbp),%eax
  cmp    -0x7c(%rbp),%eax
  jl     L286
  cmpl   $0x0,-0x64(%rbp)
  jne    L5
  mov    $0x0,%eax
  jmp    L9
L5:
  mov    -0x7c(%rbp),%eax
  cltq
  shl    $0x3,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x28(%rbp)
  mov    -0x7c(%rbp),%eax
  cltq
  shl    $0x3,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x20(%rbp)
  movl   $0x0,-0x58(%rbp)
  jmp    L219
L293:
  mov    -0x3c(%rbp),%eax
  cltq
  shl    $0x2,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x10(%rbp)
  mov    -0x3c(%rbp),%eax
  cltq
  shl    $0x2,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0x54(%rbp)
  jmp    L176
L116:
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x54(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rax,%rdx
  mov    -0x54(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x8(%rbp),%rax
  add    %rcx,%rax
  mov    (%rdx),%edx
  mov    %edx,(%rax)
  mov    -0x54(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x10(%rbp),%rdx
  add    %rcx,%rdx
  mov    (%rax),%eax
  mov    %eax,(%rdx)
  addl   $0x1,-0x54(%rbp)
L176:
  mov    -0x54(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jl     L116
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    -0x10(%rbp),%rax
  mov    %rax,(%rdx)
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x8(%rbp),%rax
  mov    %rax,(%rdx)
  addl   $0x1,-0x58(%rbp)
L219:
  mov    -0x58(%rbp),%eax
  cmp    -0x7c(%rbp),%eax
  jl     L293
  mov    -0x28(%rbp),%rax
  mov    %rax,-0x38(%rbp)
  mov    -0x20(%rbp),%rax
  mov    %rax,-0x30(%rbp)
  mov    -0x64(%rbp),%eax
  mov    %eax,-0x50(%rbp)
  movl   $0x0,-0x4c(%rbp)
  movl   $0x0,-0x48(%rbp)
  jmp    L83
L95:
  movl   $0x0,-0x4c(%rbp)
  addl   $0x1,-0x48(%rbp)
  movl   $0x0,-0x44(%rbp)
  jmp    L40
L100:
  movl   $0x0,-0x40(%rbp)
  jmp    L15
L193:
  mov    -0x44(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x40(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L168
  cmpl   $0x0,-0x44(%rbp)
  jle    L104
  mov    -0x44(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x40(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  je     L63
L104:
  mov    -0x44(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x7c(%rbp)
  jle    L184
  mov    -0x44(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x40(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  je     L63
L184:
  cmpl   $0x0,-0x40(%rbp)
  jle    L159
  mov    -0x44(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x40(%rbp),%eax
  cltq
  shl    $0x2,%rax
  sub    $0x4,%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  je     L63
L159:
  mov    -0x40(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x3c(%rbp)
  jle    L295
  mov    -0x44(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x40(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L295
L63:
  mov    -0x44(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x40(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movl   $0x2,(%rax)
  jmp    L143
L295:
  mov    -0x44(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x40(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  mov    -0x44(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x30(%rbp),%rdx
  add    %rcx,%rdx
  mov    (%rdx),%rcx
  mov    -0x40(%rbp),%edx
  movslq %edx,%rdx
  shl    $0x2,%rdx
  add    %rcx,%rdx
  mov    (%rax),%eax
  mov    %eax,(%rdx)
  addl   $0x1,-0x4c(%rbp)
  jmp    L143
L168:
  mov    -0x44(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x40(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  mov    -0x44(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x30(%rbp),%rdx
  add    %rcx,%rdx
  mov    (%rdx),%rcx
  mov    -0x40(%rbp),%edx
  movslq %edx,%rdx
  shl    $0x2,%rdx
  add    %rcx,%rdx
  mov    (%rax),%eax
  mov    %eax,(%rdx)
L143:
  addl   $0x1,-0x40(%rbp)
L15:
  mov    -0x40(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jl     L193
  addl   $0x1,-0x44(%rbp)
L40:
  mov    -0x44(%rbp),%eax
  cmp    -0x7c(%rbp),%eax
  jl     L100
  mov    -0x4c(%rbp),%eax
  cmp    -0x50(%rbp),%eax
  jne    L32
  mov    -0x7c(%rbp),%edx
  mov    -0x20(%rbp),%rcx
  mov    -0x28(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <freeSpace@plt>
  mov    $0xffffffff,%eax
  jmp    L9
L32:
  mov    -0x4c(%rbp),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x38(%rbp),%rax
  mov    %rax,-0x18(%rbp)
  mov    -0x30(%rbp),%rax
  mov    %rax,-0x38(%rbp)
  mov    -0x18(%rbp),%rax
  mov    %rax,-0x30(%rbp)
L83:
  cmpl   $0x0,-0x50(%rbp)
  jg     L95
  mov    -0x7c(%rbp),%edx
  mov    -0x20(%rbp),%rcx
  mov    -0x28(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <freeSpace@plt>
  mov    -0x48(%rbp),%eax
L9:
  leave
  ret
```

assistant: ```c
int orangesRotting(int **grid, int gridSize, int *gridColSize) {
  int colSize = *gridColSize;
  int firstFresh = 0;
  for (int i = 0; i < gridSize; i++) {
    for (int j = 0; j < colSize; j++) {
      if (grid[i][j] == 1) {
        firstFresh++;
      }
    }
  }
  if (firstFresh == 0) {
    return 0;
  }
  int **gridA, **gridB, **cur, **next, **temp;
  gridA = (int **)malloc(sizeof(int *) * gridSize);
  gridB = (int **)malloc(sizeof(int *) * gridSize);
  for (int i = 0; i < gridSize; i++) {
    int *rowA = (int *)malloc(sizeof(int) * colSize);
    int *rowB = (int *)malloc(sizeof(int) * colSize);
    for (int j = 0; j < colSize; j++) {
      rowA[j] = rowB[j] = grid[i][j];
    }
    gridA[i] = rowA;
    gridB[i] = rowB;
  }
  cur = gridA, next = gridB;
  int prevFresh = firstFresh, fresh = 0;
  int minute = 0;
  while (prevFresh > 0) {
    fresh = 0;
    minute++;
    for (int i = 0; i < gridSize; i++) {
      for (int j = 0; j < colSize; j++) {
        if (cur[i][j] == 1) {
          if ((i - 1 >= 0 && cur[i - 1][j] == 2) || (i + 1 < gridSize && cur[i + 1][j] == 2) || (j - 1 >= 0 && cur[i][j - 1] == 2) || (j + 1 < colSize && cur[i][j + 1] == 2)) {
            next[i][j] = 2;
          } else {
            next[i][j] = cur[i][j];
            fresh++;
          }
        } else {
          next[i][j] = cur[i][j];
        }
      }
    }
    if (fresh == prevFresh) {
      freeSpace(gridA, gridB, gridSize);
      return -1;
    } else {
      prevFresh = fresh;
      temp = cur;
      cur = next;
      next = temp;
    }
  }
  freeSpace(gridA, gridB, gridSize);
  return minute;
}
```