user: 请将以下的汇编代码转换成C语言代码：

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  lea    D46(%rip),%rbx
  sub    $0x38,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x28(%rsp)
  xor    %eax,%eax
  movl   $0x0,0x1c(%rsp)
  lea    0x1c(%rsp),%rbp
  cs nopw 0x0(%rax,%rax,1)
L143:
  mov    %rbp,%rsi
  mov    %rbx,%rdi
  xor    %eax,%eax
  call   <scanf@plt>
  mov    0x1c(%rsp),%eax
  sub    $0x1,%eax
  cmp    $0x9,%eax
  ja     L143
  movl   $0x0,0xc(%rsp)
  xor    %ebx,%ebx
  xor    %r15d,%r15d
  xor    %r14d,%r14d
  movl   $0x0,0x8(%rsp)
  lea    0x24(%rsp),%r13
  lea    0x20(%rsp),%r12
  lea    D28(%rip),%rbp
  jmp    L16
  nopl   0x0(%rax)
L55:
  add    $0x1,%ebx
L125:
  cmp    %r14d,0x1c(%rsp)
  jle    L97
L16:
  mov    %r13,%rdx
  mov    %r12,%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <scanf@plt>
  mov    0x20(%rsp),%edi
  mov    0x24(%rsp),%esi
  mov    %edi,%edx
  sub    %esi,%edx
  mov    %edx,%eax
  neg    %eax
  cmovs  %edx,%eax
  add    $0x1,%r14d
  cmp    %r15d,%eax
  jge    L93
  test   %r15d,%r15d
  je     L93
L42:
  cmp    %esi,%edi
  jg     L55
  jge    L125
  addl   $0x1,0xc(%rsp)
  cmp    %r14d,0x1c(%rsp)
  jg     L16
L97:
  test   %r15d,%r15d
  mov    $0x1,%eax
  cmovne 0x8(%rsp),%eax
  mov    %eax,0x8(%rsp)
  cmp    0xc(%rsp),%ebx
  jg     L138
  jl     L56
  je     L64
L68:
  mov    0x28(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L66
  add    $0x38,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L93:
  mov    %r14d,0x8(%rsp)
  mov    %eax,%r15d
  jmp    L42
L56:
  mov    0x8(%rsp),%edx
  mov    %r15d,%esi
  lea    D18(%rip),%rdi
  call   <printf@plt>
  jmp    L68
L138:
  mov    %eax,%edx
  mov    %r15d,%esi
  lea    D31(%rip),%rdi
  call   <printf@plt>
  jmp    L68
L64:
  mov    0x8(%rsp),%edx
  mov    %r15d,%esi
  lea    D48(%rip),%rdi
  call   <printf@plt>
  jmp    L68
L66:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: data_label: D46
datatype: string
name: parse_data
arguments: data_label: D28
datatype: string
name: parse_data
arguments: data_label: D18
datatype: string
name: parse_data
arguments: data_label: D31
datatype: string
name: parse_data
arguments: data_label: D48
datatype: string

tool: D46:  %d

tool: D28:  %d %d

tool: D18: Najveca gol razlika %d postignuta je u %d. krugu, a ukupni pobjednik je 2. tim.

tool: D31: Najveca gol razlika %d postignuta je u %d. krugu, a ukupni pobjednik je 1. tim.

tool: D48: Najveca gol razlika %d postignuta je u %d. krugu. Timovi imaju jednake bodove.

assistant: ```c
int main() {
  int i, N = 0, domaci, gosti, golrazlika, grmax = 0, krug = 0, dp = 0, gp = 0;
  do {
    scanf(" %d", &N);
  } while (N < 1 || N > 10);
  for (i = 0; i < N; i++) {
    scanf(" %d %d", &domaci, &gosti);
    golrazlika = abs(domaci - gosti);
    if (grmax == 0) {
      grmax = golrazlika;
    }
    if (golrazlika >= grmax) {
      grmax = golrazlika;
      krug = i + 1;
    }
    if (domaci > gosti) {
      dp++;
    } else if (domaci < gosti) {
      gp++;
    }
  }
  if (grmax == 0) {
    krug = 1;
  }
  if (dp > gp) {
    printf("Najveca gol razlika %d postignuta je u %d. krugu, a ukupni pobjednik je 1. tim.", grmax, krug);
  } else if (dp < gp) {
    printf("Najveca gol razlika %d postignuta je u %d. krugu, a ukupni pobjednik je 2. tim.", grmax, krug);
  } else if (dp == gp) {
    printf("Najveca gol razlika %d postignuta je u %d. krugu. Timovi imaju jednake bodove.", grmax, krug);
  }
  return 0;
}
```