user: 请从给定的汇编指令推导出C源代码:

```asm
<main>:
  endbr64
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x20,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x18(%rsp)
  xor    %eax,%eax
  lea    D110(%rip),%rdi
  call   <printf@plt>
  lea    0x8(%rsp),%rsi
  lea    D334(%rip),%rbp
  mov    %rbp,%rdi
  call   <scanf@plt>
  lea    D299(%rip),%rdi
  call   <printf@plt>
  lea    0xc(%rsp),%rsi
  mov    %rbp,%rdi
  call   <scanf@plt>
  lea    D398(%rip),%rdi
  call   <printf@plt>
  lea    0x10(%rsp),%rsi
  mov    %rbp,%rdi
  call   <scanf@plt>
  mov    $0x32,%ebx
  sub    0x10(%rsp),%ebx
  lea    D408(%rip),%rdi
  call   <printf@plt>
  lea    0x14(%rsp),%rsi
  mov    %rbp,%rdi
  call   <scanf@plt>
  cmp    $0x32,%ebx
  je     L606
  cmp    $0x28,%ebx
  je     L19
  cmp    $0x1e,%ebx
  je     L657
  cmp    $0x19,%ebx
  je     L378
  cmp    $0x14,%ebx
  jne    L5
  cmpl   $0x0,0x14(%rsp)
  je     L33
  cmpl   $0x2,0x14(%rsp)
  je     L387
  cmpl   $0x5,0x14(%rsp)
  je     L363
  cmpl   $0x7,0x14(%rsp)
  je     L193
  cmpl   $0x9,0x14(%rsp)
  jne    L112
  mov    D64(%rip),%r12d
  jmp    L112
L606:
  cmpl   $0x0,0x14(%rsp)
  je     L555
  cmpl   $0x2,0x14(%rsp)
  je     L175
  cmpl   $0x5,0x14(%rsp)
  je     L505
  cmpl   $0x7,0x14(%rsp)
  je     L369
  cmpl   $0x9,0x14(%rsp)
  jne    L112
  mov    D64(%rip),%r12d
  jmp    L112
L19:
  cmpl   $0x0,0x14(%rsp)
  je     L819
  cmpl   $0x2,0x14(%rsp)
  je     L201
  cmpl   $0x5,0x14(%rsp)
  je     L826
  cmpl   $0x7,0x14(%rsp)
  je     L778
  cmpl   $0x9,0x14(%rsp)
  jne    L112
  mov    D64(%rip),%r12d
  jmp    L112
L657:
  cmpl   $0x0,0x14(%rsp)
  je     L431
  cmpl   $0x2,0x14(%rsp)
  je     L777
  cmpl   $0x5,0x14(%rsp)
  je     L551
  cmpl   $0x7,0x14(%rsp)
  je     L649
  cmpl   $0x9,0x14(%rsp)
  jne    L112
  mov    D64(%rip),%r12d
  jmp    L112
L378:
  cmpl   $0x0,0x14(%rsp)
  je     L142
  cmpl   $0x2,0x14(%rsp)
  je     L477
  cmpl   $0x5,0x14(%rsp)
  je     L538
  cmpl   $0x7,0x14(%rsp)
  je     L647
  cmpl   $0x9,0x14(%rsp)
  jne    L112
  mov    D64(%rip),%r12d
  jmp    L112
L5:
  cmp    $0xa,%ebx
  jne    L109
  cmpl   $0x0,0x14(%rsp)
  je     L202
  cmpl   $0x2,0x14(%rsp)
  je     L749
  cmpl   $0x5,0x14(%rsp)
  je     L353
  cmpl   $0x7,0x14(%rsp)
  je     L169
  cmpl   $0x9,0x14(%rsp)
  jne    L112
  mov    D64(%rip),%r12d
  jmp    L112
L109:
  cmp    $0x5,%ebx
  jne    L112
  cmpl   $0x0,0x14(%rsp)
  je     L341
  cmpl   $0x2,0x14(%rsp)
  je     L491
  cmpl   $0x5,0x14(%rsp)
  je     L828
  cmpl   $0x7,0x14(%rsp)
  je     L574
  cmpl   $0x9,0x14(%rsp)
  jne    L112
  mov    D184(%rip),%r12d
  jmp    L112
L555:
  mov    D164(%rip),%r12d
L112:
  pxor   %xmm0,%xmm0
  cvtsi2ssl 0x8(%rsp),%xmm0
  movss  D164(%rip),%xmm2
  movaps %xmm2,%xmm1
  movd   %r12d,%xmm3
  subss  %xmm3,%xmm1
  divss  %xmm2,%xmm1
  mulss  %xmm1,%xmm0
  cvttss2si %xmm0,%eax
  mov    0xc(%rsp),%edx
  cmp    %eax,%edx
  jg     L328
  jl     L795
  je     L230
L229:
  mov    0x18(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L788
  mov    $0x0,%eax
  add    $0x20,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
L819:
  mov    D181(%rip),%r12d
  jmp    L112
L431:
  mov    D338(%rip),%r12d
  jmp    L112
L142:
  mov    D377(%rip),%r12d
  jmp    L112
L33:
  mov    D216(%rip),%r12d
  jmp    L112
L202:
  mov    D328(%rip),%r12d
  jmp    L112
L341:
  mov    D190(%rip),%r12d
  jmp    L112
L175:
  mov    D178(%rip),%r12d
  jmp    L112
L201:
  mov    D405(%rip),%r12d
  jmp    L112
L777:
  mov    D148(%rip),%r12d
  jmp    L112
L477:
  mov    D304(%rip),%r12d
  jmp    L112
L387:
  mov    D403(%rip),%r12d
  jmp    L112
L749:
  mov    D83(%rip),%r12d
  jmp    L112
L491:
  mov    D251(%rip),%r12d
  jmp    L112
L505:
  mov    D65(%rip),%r12d
  jmp    L112
L826:
  mov    D271(%rip),%r12d
  jmp    L112
L551:
  mov    D369(%rip),%r12d
  jmp    L112
L538:
  mov    D292(%rip),%r12d
  jmp    L112
L363:
  mov    D19(%rip),%r12d
  jmp    L112
L353:
  mov    D250(%rip),%r12d
  jmp    L112
L828:
  mov    D37(%rip),%r12d
  jmp    L112
L369:
  mov    D94(%rip),%r12d
  jmp    L112
L778:
  mov    D94(%rip),%r12d
  jmp    L112
L649:
  mov    D331(%rip),%r12d
  jmp    L112
L647:
  mov    D75(%rip),%r12d
  jmp    L112
L193:
  mov    D226(%rip),%r12d
  jmp    L112
L169:
  mov    D86(%rip),%r12d
  jmp    L112
L574:
  mov    D111(%rip),%r12d
  jmp    L112
L328:
  lea    D49(%rip),%rdi
  call   <printf@plt>
  jmp    L229
L795:
  lea    D407(%rip),%rdi
  call   <printf@plt>
  jmp    L229
L230:
  lea    D269(%rip),%rdi
  call   <printf@plt>
  jmp    L229
L788:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: data_tag: D110
datatype: string
name: unpack_data
arguments: data_tag: D334
datatype: string
name: unpack_data
arguments: data_tag: D299
datatype: string
name: unpack_data
arguments: data_tag: D398
datatype: string
name: unpack_data
arguments: data_tag: D408
datatype: string
name: unpack_data
arguments: data_tag: D64
datatype: f32
name: unpack_data
arguments: data_tag: D184
datatype: f32
name: unpack_data
arguments: data_tag: D164
datatype: byte[4]
name: unpack_data
arguments: data_tag: D181
datatype: f32
name: unpack_data
arguments: data_tag: D338
datatype: f32
name: unpack_data
arguments: data_tag: D377
datatype: f32
name: unpack_data
arguments: data_tag: D216
datatype: f32
name: unpack_data
arguments: data_tag: D328
datatype: f32
name: unpack_data
arguments: data_tag: D190
datatype: f32
name: unpack_data
arguments: data_tag: D178
datatype: f32
name: unpack_data
arguments: data_tag: D405
datatype: f32
name: unpack_data
arguments: data_tag: D148
datatype: f32
name: unpack_data
arguments: data_tag: D304
datatype: f32
name: unpack_data
arguments: data_tag: D403
datatype: f32
name: unpack_data
arguments: data_tag: D83
datatype: f32
name: unpack_data
arguments: data_tag: D251
datatype: f32
name: unpack_data
arguments: data_tag: D65
datatype: byte[4]
name: unpack_data
arguments: data_tag: D271
datatype: f32
name: unpack_data
arguments: data_tag: D369
datatype: f32
name: unpack_data
arguments: data_tag: D292
datatype: f32
name: unpack_data
arguments: data_tag: D19
datatype: f32
name: unpack_data
arguments: data_tag: D250
datatype: f32
name: unpack_data
arguments: data_tag: D37
datatype: f32
name: unpack_data
arguments: data_tag: D94
datatype: byte[4]
name: unpack_data
arguments: data_tag: D331
datatype: f32
name: unpack_data
arguments: data_tag: D75
datatype: f32
name: unpack_data
arguments: data_tag: D226
datatype: f32
name: unpack_data
arguments: data_tag: D86
datatype: f32
name: unpack_data
arguments: data_tag: D111
datatype: f32
name: unpack_data
arguments: data_tag: D49
datatype: string
name: unpack_data
arguments: data_tag: D407
datatype: string
name: unpack_data
arguments: data_tag: D269
datatype: string

tool: D110: Enter the total innings for Team 1: 

tool: D334: %d

tool: D299: Enter the total innings for Team 2: 

tool: D398: Enter the number of overs played by Team 2: 

tool: D408: Enter the numbers of Wickets lost by Team 2 at the stoppage of play: 

tool: D64: 4.7

tool: D184: 4.6

tool: {"D164": [0x00,0x00,0xc8,0x42]}

tool: D181: 89.3

tool: D338: 75.1

tool: D377: 66.5

tool: D216: 56.6

tool: D328: 32.1

tool: D190: 17.2

tool: D178: 85.1

tool: D405: 77.8

tool: D148: 67.3

tool: D304: 6.5

tool: D403: 52.4

tool: D83: 30.8

tool: D251: 16.8

tool: {"D65": [0x00,0x00,0x44,0x42]}

tool: D271: 47.6

tool: D369: 44.7

tool: D292: 42.2

tool: D19: 38.6

tool: D250: 26.1

tool: D37: 15.4

tool: {"D94": [0x00,0x00,0xb0,0x41]}

tool: D331: 21.8

tool: D75: 21.6

tool: D226: 21.2

tool: D86: 17.9

tool: D111: 12.5

tool: D49: Team 2 Wins 


tool: D407: Team 1 Wins 


tool: D269: Its a tie! 


assistant: ```c
int main(void) {
  int t1_innings, t2_innings, overs_played, overs_left, t2_wckts_lost, t1_parscore;
  float resource;
  printf("Enter the total innings for Team 1: ");
  scanf("%d", &t1_innings);
  printf("Enter the total innings for Team 2: ");
  scanf("%d", &t2_innings);
  printf("Enter the number of overs played by Team 2: ");
  scanf("%d", &overs_played);
  overs_left = 50 - overs_played;
  printf("Enter the numbers of Wickets lost by Team 2 at the stoppage of play: ");
  scanf("%d", &t2_wckts_lost);
  if (overs_left == 50 && t2_wckts_lost == 0) {
    resource = 100;
  } else if (overs_left == 40 && t2_wckts_lost == 0) {
    resource = 89.3;
  } else if (overs_left == 30 && t2_wckts_lost == 0) {
    resource = 75.1;
  } else if (overs_left == 25 && t2_wckts_lost == 0) {
    resource = 66.5;
  } else if (overs_left == 20 && t2_wckts_lost == 0) {
    resource = 56.6;
  } else if (overs_left == 10 && t2_wckts_lost == 0) {
    resource = 32.1;
  } else if (overs_left == 5 && t2_wckts_lost == 0) {
    resource = 17.2;
  } else if (overs_left == 50 && t2_wckts_lost == 2) {
    resource = 85.1;
  } else if (overs_left == 40 && t2_wckts_lost == 2) {
    resource = 77.8;
  } else if (overs_left == 30 && t2_wckts_lost == 2) {
    resource = 67.3;
  } else if (overs_left == 25 && t2_wckts_lost == 2) {
    resource = 6.5;
  } else if (overs_left == 20 && t2_wckts_lost == 2) {
    resource = 52.4;
  } else if (overs_left == 10 && t2_wckts_lost == 2) {
    resource = 30.8;
  } else if (overs_left == 5 && t2_wckts_lost == 2) {
    resource = 16.8;
  } else if (overs_left == 50 && t2_wckts_lost == 5) {
    resource = 49;
  } else if (overs_left == 40 && t2_wckts_lost == 5) {
    resource = 47.6;
  } else if (overs_left == 30 && t2_wckts_lost == 5) {
    resource = 44.7;
  } else if (overs_left == 25 && t2_wckts_lost == 5) {
    resource = 42.2;
  } else if (overs_left == 20 && t2_wckts_lost == 5) {
    resource = 38.6;
  } else if (overs_left == 10 && t2_wckts_lost == 5) {
    resource = 26.1;
  } else if (overs_left == 5 && t2_wckts_lost == 5) {
    resource = 15.4;
  } else if (overs_left == 50 && t2_wckts_lost == 7) {
    resource = 22;
  } else if (overs_left == 40 && t2_wckts_lost == 7) {
    resource = 22;
  } else if (overs_left == 30 && t2_wckts_lost == 7) {
    resource = 21.8;
  } else if (overs_left == 25 && t2_wckts_lost == 7) {
    resource = 21.6;
  } else if (overs_left == 20 && t2_wckts_lost == 7) {
    resource = 21.2;
  } else if (overs_left == 10 && t2_wckts_lost == 7) {
    resource = 17.9;
  } else if (overs_left == 5 && t2_wckts_lost == 7) {
    resource = 12.5;
  } else if (overs_left == 50 && t2_wckts_lost == 9) {
    resource = 4.7;
  } else if (overs_left == 40 && t2_wckts_lost == 9) {
    resource = 4.7;
  } else if (overs_left == 30 && t2_wckts_lost == 9) {
    resource = 4.7;
  } else if (overs_left == 25 && t2_wckts_lost == 9) {
    resource = 4.7;
  } else if (overs_left == 20 && t2_wckts_lost == 9) {
    resource = 4.7;
  } else if (overs_left == 10 && t2_wckts_lost == 9) {
    resource = 4.7;
  } else if (overs_left == 5 && t2_wckts_lost == 9) {
    resource = 4.6;
  }
  t1_parscore = t1_innings * ((100 - resource) / 100);
  if (t1_parscore < t2_innings) {
    printf("Team 2 Wins \n");
  } else if (t1_parscore > t2_innings) {
    printf("Team 1 Wins \n");
  } else if (t1_parscore == t2_innings) {
    printf("Its a tie! \n");
  }
  return 0;
}
```