user: Converte this assembly snippet into its equivalent C code:

```asm
<main>:
  endbr64
  push   %r15
  lea    D104(%rip),%rdi
  mov    $0x1,%r15d
  push   %r14
  lea    D33(%rip),%r14
  push   %r13
  lea    D67(%rip),%r13
  push   %r12
  xor    %r12d,%r12d
  push   %rbp
  xor    %ebp,%ebp
  push   %rbx
  xor    %ebx,%ebx
  sub    $0x28,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x18(%rsp)
  xor    %eax,%eax
  call   <puts@plt>
  lea    D46(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  call   <hitenter@plt>
  xor    %edi,%edi
  call   <time@plt>
  mov    %eax,%edi
  call   <srand@plt>
  mov    %r13,%rsi
  mov    %r14,%rdi
  xor    %eax,%eax
  movq   $0x0,0x10(%rsp)
  call   <printf@plt>
  jmp    L112
  nopl   0x0(%rax)
L53:
  cmp    $0x2,%edx
  je     L55
  cmp    $0x3,%edx
  je     L152
  cmp    $0x1,%edx
  je     L50
L94:
  cmp    $0x4,%ebp
  jg     L102
L112:
  mov    %r15d,%edx
  neg    %edx
  cmovs  %r15d,%edx
  test   %r15d,%r15d
  jns    L53
  test   %ebx,%ebx
  lea    D34(%rip),%rsi
  mov    %r14,%rdi
  mov    %edx,0xc(%rsp)
  cmove  %r13,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    0xc(%rsp),%edx
  cmp    $0x2,%edx
  je     L55
  cmp    $0x3,%edx
  je     L152
  cmp    $0x1,%edx
  je     L50
L166:
  cmp    $0xfffffff5,%r15d
  jne    L58
  movslq %ebx,%rax
  mov    $0xffffffff,%r15d
  addl   $0x1,0x10(%rsp,%rax,4)
  mov    0x14(%rsp),%ebp
  mov    0x10(%rsp),%r12d
L58:
  mov    %ebp,%edx
  mov    %r12d,%esi
  lea    D105(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  test   %ebx,%ebx
  lea    D34(%rip),%rsi
  lea    D81(%rip),%rdi
  cmove  %r13,%rsi
  xor    %eax,%eax
  xor    $0x1,%ebx
  call   <printf@plt>
  xor    %eax,%eax
  call   <hitenter@plt>
  cmp    $0x4,%r12d
  jle    L94
  cmp    %ebp,%r12d
  lea    D118(%rip),%rsi
  lea    D57(%rip),%rax
  cmovle %rax,%rsi
L120:
  xor    %eax,%eax
  lea    D3(%rip),%rdi
  call   <printf@plt>
  xor    %eax,%eax
  call   <hitenter@plt>
  mov    0x18(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L22
  add    $0x28,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  xchg   %ax,%ax
L50:
  xor    %eax,%eax
  call   <passball@plt>
  mov    %eax,%r15d
L30:
  test   %r15d,%r15d
  js     L166
  cmp    $0x4,%ebp
  jle    L112
L102:
  lea    D57(%rip),%rsi
  jmp    L120
  nopl   (%rax)
L152:
  xor    %eax,%eax
  call   <kickball@plt>
  mov    %eax,%r15d
  jmp    L30
  nopl   0x0(%rax)
L55:
  xor    %eax,%eax
  call   <shotball@plt>
  mov    %eax,%r15d
  jmp    L30
L22:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: data_tag: D104
datatype: string
name: unpack_data
arguments: data_tag: D33
datatype: string
name: unpack_data
arguments: data_tag: D67
datatype: string
name: unpack_data
arguments: data_tag: D46
datatype: string
name: unpack_data
arguments: data_tag: D34
datatype: string
name: unpack_data
arguments: data_tag: D105
datatype: string
name: unpack_data
arguments: data_tag: D81
datatype: string
name: unpack_data
arguments: data_tag: D118
datatype: string
name: unpack_data
arguments: data_tag: D57
datatype: string
name: unpack_data
arguments: data_tag: D3
datatype: string

tool: D104: 


FIVE POINT SOCCER
=================

tool: D33: 

%s Team:


tool: D67: Home

tool: D46: First team to five points wins!


(Press enter to begin)

tool: D34: Away

tool: D105: 
Score - Home: %d, Away: %d


tool: D81: (%s player, press enter)

tool: D118: HOME

tool: D57: AWAY

tool: D3: 

THE %s TEAM ARE THE CHAMPIONS!!



(Press enter to exit)

assistant: ```c
int main() {
  printf("\n\n\nFIVE POINT SOCCER\n=================\n");
  printf("First team to five points wins!\n\n\n(Press enter to begin)");
  hitenter();
  srand(time(NULL));
  int score[2] = {0, 0};
  int team = 0;
  int nextmove = 1;
  printf("\n\n%s Team:\n", (team == 0) ? "Home" : "Away");
  do {
    if (nextmove < 0) {
      printf("\n\n%s Team:\n", (team == 0) ? "Home" : "Away");
    }
    switch (abs(nextmove)) {
    case 1:
      nextmove = passball();
      break;
    case 2:
      nextmove = shotball();
      break;
    case 3:
      nextmove = kickball();
      break;
    }
    if (nextmove < 0) {
      if (nextmove == -11) {
        score[team]++;
        nextmove = -1;
      }
      printf("\nScore - Home: %d, Away: %d\n", score[0], score[1]);
      printf("(%s player, press enter)", (team == 0) ? "Home" : "Away");
      hitenter();
      team = (team + 1) % 2;
    }
  } while (score[0] < 5 && score[1] < 5);
  printf("\n\nTHE %s TEAM ARE THE CHAMPIONS!!\n\n\n\n(Press enter to exit)", (score[0] > score[1]) ? "HOME" : "AWAY");
  hitenter();
  return 0;
}
```