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

```asm
<call3>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x28,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x18(%rsp)
  xor    %eax,%eax
  lea    D69(%rip),%r15
  lea    D346(%rip),%r14
  jmp    L190
L200:
  lea    D139(%rip),%rdi
  call   <puts@plt>
  mov    $0x0,%ebp
  mov    $0x0,%r12d
  mov    $0x0,%r13d
  mov    $0x1,%ebx
L7:
  mov    0x4(%rsp),%eax
  lea    -0x50(%rax),%edx
  cmp    $0x13,%edx
  jbe    L477
  lea    -0x41(%rax),%edx
  cmp    $0xe,%edx
  jbe    L443
  lea    -0x28(%rax),%edx
  cmp    $0x18,%edx
  jbe    L390
  cmp    $0x27,%eax
  jg     L314
  lea    D103(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%r12d
  jmp    L381
L199:
  lea    D108(%rip),%rdi
  call   <puts@plt>
  mov    $0x1,%ebp
  mov    $0x0,%r12d
  mov    $0x0,%r13d
  mov    $0x0,%ebx
  jmp    L7
L371:
  lea    D148(%rip),%rdi
  call   <puts@plt>
  mov    $0x0,%ebp
  mov    $0x0,%r12d
  mov    $0x1,%r13d
  mov    $0x0,%ebx
  jmp    L7
L122:
  lea    D293(%rip),%rdi
  call   <puts@plt>
  mov    $0x0,%ebp
  mov    $0x0,%r12d
  mov    $0x0,%r13d
  mov    $0x0,%ebx
  jmp    L7
L477:
  lea    D12(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%ebx
L381:
  mov    0x8(%rsp),%eax
  lea    -0x50(%rax),%edx
  cmp    $0x13,%edx
  jbe    L198
  lea    -0x41(%rax),%edx
  cmp    $0xe,%edx
  jbe    L112
  lea    -0x28(%rax),%edx
  cmp    $0x18,%edx
  jbe    L336
  cmp    $0x27,%eax
  jg     L382
  lea    D130(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%r12d
  jmp    L385
L443:
  lea    D254(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%ebp
  jmp    L381
L390:
  lea    D220(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%r13d
  jmp    L381
L314:
  lea    D293(%rip),%rdi
  call   <puts@plt>
  jmp    L381
L198:
  lea    D157(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%ebx
L385:
  mov    0xc(%rsp),%eax
  lea    -0x50(%rax),%edx
  cmp    $0x13,%edx
  jbe    L483
  lea    -0x41(%rax),%edx
  cmp    $0xe,%edx
  jbe    L320
  lea    -0x28(%rax),%edx
  cmp    $0x18,%edx
  jbe    L438
  cmp    $0x27,%eax
  jg     L137
  lea    D232(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%r12d
  jmp    L372
L112:
  lea    D24(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%ebp
  jmp    L385
L336:
  lea    D271(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%r13d
  jmp    L385
L382:
  lea    D293(%rip),%rdi
  call   <puts@plt>
  jmp    L385
L483:
  lea    D245(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%ebx
L372:
  mov    0x10(%rsp),%eax
  lea    -0x50(%rax),%edx
  cmp    $0x13,%edx
  jbe    L243
  lea    -0x41(%rax),%edx
  cmp    $0xe,%edx
  jbe    L286
  lea    -0x28(%rax),%edx
  cmp    $0x18,%edx
  jbe    L55
  cmp    $0x27,%eax
  jg     L3
  lea    D159(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%r12d
  jmp    L492
L320:
  lea    D224(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%ebp
  jmp    L372
L438:
  lea    D167(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%r13d
  jmp    L372
L137:
  lea    D293(%rip),%rdi
  call   <puts@plt>
  jmp    L372
L243:
  lea    D323(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%ebx
L492:
  mov    0x14(%rsp),%eax
  lea    -0x50(%rax),%edx
  cmp    $0x13,%edx
  jbe    L163
  lea    -0x41(%rax),%edx
  cmp    $0xe,%edx
  jbe    L24
  lea    -0x28(%rax),%edx
  cmp    $0x18,%edx
  jbe    L230
  cmp    $0x27,%eax
  jg     L375
  lea    D156(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%r12d
  jmp    L410
L286:
  lea    D315(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%ebp
  jmp    L492
L55:
  lea    D259(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%r13d
  jmp    L492
L3:
  lea    D293(%rip),%rdi
  call   <puts@plt>
  jmp    L492
L163:
  lea    D228(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%ebx
L410:
  mov    %r12d,%esi
  lea    D328(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    %r13d,%esi
  lea    D102(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    %ebp,%esi
  lea    D106(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    %ebx,%esi
  lea    D274(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  cmpl   $0x64,(%rsp)
  jg     L217
L190:
  mov    %r15,%rdi
  call   <puts@plt>
  lea    0x8(%rsp),%rcx
  lea    0x4(%rsp),%rdx
  mov    %rsp,%rsi
  sub    $0x8,%rsp
  lea    0x1c(%rsp),%rax
  push   %rax
  lea    0x20(%rsp),%r9
  lea    0x1c(%rsp),%r8
  mov    %r14,%rdi
  call   <scanf@plt>
  mov    0x10(%rsp),%eax
  lea    -0x50(%rax),%edx
  add    $0x10,%rsp
  cmp    $0x13,%edx
  jbe    L200
  lea    -0x41(%rax),%edx
  cmp    $0xe,%edx
  jbe    L199
  lea    -0x28(%rax),%edx
  cmp    $0x18,%edx
  jbe    L371
  cmp    $0x27,%eax
  jg     L122
  lea    D48(%rip),%rdi
  call   <puts@plt>
  mov    $0x0,%ebp
  mov    $0x1,%r12d
  mov    $0x0,%r13d
  mov    $0x0,%ebx
  jmp    L7
L24:
  lea    D182(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%ebp
  jmp    L410
L230:
  lea    D21(%rip),%rdi
  call   <puts@plt>
  add    $0x1,%r13d
  jmp    L410
L375:
  lea    D293(%rip),%rdi
  call   <puts@plt>
  jmp    L410
L217:
  mov    0x18(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L86
  add    $0x28,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L86:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: label: D69
data_type: string
name: unpack_data
arguments: label: D346
data_type: string
name: unpack_data
arguments: label: D139
data_type: string
name: unpack_data
arguments: label: D103
data_type: string
name: unpack_data
arguments: label: D108
data_type: string
name: unpack_data
arguments: label: D148
data_type: string
name: unpack_data
arguments: label: D293
data_type: string
name: unpack_data
arguments: label: D12
data_type: string
name: unpack_data
arguments: label: D130
data_type: string
name: unpack_data
arguments: label: D254
data_type: string
name: unpack_data
arguments: label: D220
data_type: string
name: unpack_data
arguments: label: D157
data_type: string
name: unpack_data
arguments: label: D232
data_type: string
name: unpack_data
arguments: label: D24
data_type: string
name: unpack_data
arguments: label: D271
data_type: string
name: unpack_data
arguments: label: D245
data_type: string
name: unpack_data
arguments: label: D159
data_type: string
name: unpack_data
arguments: label: D224
data_type: string
name: unpack_data
arguments: label: D167
data_type: string
name: unpack_data
arguments: label: D323
data_type: string
name: unpack_data
arguments: label: D156
data_type: string
name: unpack_data
arguments: label: D315
data_type: string
name: unpack_data
arguments: label: D259
data_type: string
name: unpack_data
arguments: label: D228
data_type: string
name: unpack_data
arguments: label: D328
data_type: string
name: unpack_data
arguments: label: D102
data_type: string
name: unpack_data
arguments: label: D106
data_type: string
name: unpack_data
arguments: label: D274
data_type: string
name: unpack_data
arguments: label: D48
data_type: string
name: unpack_data
arguments: label: D182
data_type: string
name: unpack_data
arguments: label: D21
data_type: string

tool: D69: enter  mark of six subjict

tool: D346:  %d %d %d %d %d %d

tool: D139:  myan is distinct

tool: D103: eng fail

tool: D108: myan credit

tool: D148: myan pass

tool: D293: error

tool: D12: eng distinct

tool: D130: math fail

tool: D254: eng credit

tool: D220: eng pass

tool: D157: math distinct

tool: D232: phy fail

tool: D24: math credit

tool: D271: math pass

tool: D245: phy distinct

tool: D159:  che fail

tool: D224: phy credit

tool: D167: phy pass

tool: D323: che distinct

tool: D156: bio fail

tool: D315: che credit

tool: D259: che pass

tool: D228: bio distinct

tool: D328: total fail is %d


tool: D102: total pass is %d


tool: D106: total cred is %d


tool: D274: total dist is %d


tool: D48: myan fail

tool: D182: bio credit

tool: D21: bio pass

assistant: ```c
void call3() {
  int myan, eng, math, phy, che, bio;
  int dist, pass, fail, cred;
  do {
    printf("enter  mark of six subjict\n");
    scanf(" %d %d %d %d %d %d", &myan, &eng, &math, &phy, &che, &bio);
    dist = 0, pass = 0, fail = 0, cred = 0;
    if (myan >= 80 && myan < 100) {
      printf(" myan is distinct\n");
      dist++;
    } else if (myan >= 65 && myan < 80) {
      printf("myan credit\n");
      cred++;
    } else if (myan >= 40 && myan < 65) {
      printf("myan pass\n");
      pass++;
    } else if (myan < 40) {
      printf("myan fail\n");
      fail++;
    } else
      printf("error\n");
    if (eng >= 80 && eng < 100) {
      printf("eng distinct\n");
      dist++;
    } else if (eng >= 65 && eng < 80) {
      printf("eng credit\n");
      cred++;
    } else if (eng >= 40 && eng < 65) {
      printf("eng pass\n");
      pass++;
    } else if (eng < 40) {
      printf("eng fail\n");
      fail++;
    } else
      printf("error\n");
    if (math >= 80 && math < 100) {
      printf("math distinct\n");
      dist++;
    } else if (math >= 65 && math < 80) {
      printf("math credit\n");
      cred++;
    } else if (math >= 40 && math < 65) {
      printf("math pass\n");
      pass++;
    } else if (math < 40) {
      printf("math fail\n");
      fail++;
    } else
      printf("error\n");
    if (phy >= 80 && phy < 100) {
      printf("phy distinct\n");
      dist++;
    } else if (phy >= 65 && phy < 80) {
      printf("phy credit\n");
      cred++;
    } else if (phy >= 40 && phy < 65) {
      printf("phy pass\n");
      pass++;
    } else if (phy < 40) {
      printf("phy fail\n");
      fail++;
    } else
      printf("error\n");
    if (che >= 80 && che < 100) {
      printf("che distinct\n");
      dist++;
    } else if (che >= 65 && che < 80) {
      printf("che credit\n");
      cred++;
    } else if (che >= 40 && che < 65) {
      printf("che pass\n");
      pass++;
    } else if (che < 40) {
      printf(" che fail\n");
      fail++;
    } else
      printf("error\n");
    if (bio >= 80 && bio < 100) {
      printf("bio distinct\n");
      dist++;
    } else if (bio >= 65 && bio < 80) {
      printf("bio credit\n");
      cred++;
    } else if (bio >= 40 && bio < 65) {
      printf("bio pass\n");
      pass++;
    } else if (bio < 40) {
      printf("bio fail\n");
      fail++;
    } else
      printf("error\n");
    printf("total fail is %d\n", fail);
    printf("total pass is %d\n", pass);
    printf("total cred is %d\n", cred);
    printf("total dist is %d\n", dist);
  } while (myan <= 100);
}
```