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

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    $0x0,%eax
  call   <__VERIFIER_nondet_int@plt>
  mov    %eax,%ebp
  mov    $0x0,%eax
  call   <__VERIFIER_nondet_int@plt>
  mov    %eax,%r12d
  mov    $0x0,%eax
  call   <__VERIFIER_nondet_int@plt>
  mov    %eax,%r13d
  mov    $0x0,%eax
  call   <__VERIFIER_nondet_long@plt>
  mov    %rax,%r14
  mov    $0x0,%ebx
  mov    $0x2112,%eax
  mov    $0x2112,%r15d
  jmp    L19
L364:
  mov    $0x2160,%eax
  jmp    L19
L136:
  mov    $0x21a0,%eax
  jmp    L19
L248:
  cmp    $0x2112,%eax
  jne    L143
  mov    $0x2130,%eax
  test   %ebx,%ebx
  jne    L19
  mov    $0x1,%ebx
  jmp    L19
L139:
  cmp    $0x2160,%eax
  je     L168
  cmp    $0x2170,%eax
  jne    L143
  mov    $0x2180,%eax
L19:
  cmp    $0x2140,%eax
  jg     L135
  cmp    $0x2,%ebx
  jg     L120
L135:
  cmp    $0x2180,%eax
  je     L8
  jg     L324
  cmp    $0x2150,%eax
  je     L364
  cmp    $0x2150,%eax
  jg     L139
  cmp    $0x2130,%eax
  je     L42
  cmp    $0x2140,%eax
  jne    L248
  mov    $0x2150,%eax
  jmp    L19
L324:
  cmp    $0x21c0,%eax
  je     L93
  jle    L341
  cmp    $0x21d0,%eax
  je     L62
  cmp    $0x21e0,%eax
  jne    L143
  cmp    $0x4,%ebx
  je     L367
  cmp    $0x5,%ebx
  je     L120
L174:
  test   %ebp,%ebp
  je     L143
  mov    $0x21c0,%eax
  jmp    L19
L341:
  cmp    $0x2190,%eax
  je     L136
  cmp    $0x21a0,%eax
  jne    L143
  mov    $0x21c0,%eax
  jmp    L19
L42:
  cmp    $0x1,%ebx
  mov    $0x2,%eax
  cmove  %eax,%ebx
  cmp    $0x1,%ebp
  sbb    %eax,%eax
  and    $0x70,%al
  add    $0x21d0,%eax
  jmp    L19
L168:
  mov    $0x2170,%eax
  cmp    $0xffffffff,%r12d
  je     L19
  cmp    $0xfffffffc,%r12d
  je     L314
  mov    $0x2170,%eax
  test   %r13d,%r13d
  jne    L19
L314:
  cmp    $0xfffffffe,%r12d
  jne    L298
  mov    $0x2170,%eax
  cmp    $0xffffffffffffff00,%r14
  jne    L19
L298:
  mov    $0x2180,%eax
  jmp    L19
L8:
  mov    $0x0,%eax
  call   <__VERIFIER_nondet_int@plt>
  cmp    $0x2,%eax
  mov    $0x2190,%eax
  cmove  %r15d,%eax
  jmp    L19
L93:
  cmp    $0x3,%ebx
  mov    $0x4,%eax
  cmove  %eax,%ebx
  test   %ebp,%ebp
  jne    L143
  mov    $0x21d0,%eax
  jmp    L19
L62:
  mov    $0x21e0,%eax
  cmp    $0x2,%ebx
  jne    L19
  mov    $0x3,%ebx
  jmp    L19
L367:
  mov    $0x5,%ebx
  jmp    L174
L120:
  mov    $0x0,%eax
  call   <__VERIFIER_error@plt>
L143:
  mov    $0xffffffff,%eax
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

assistant: ```c
int main() {
  int s__state;
  int s__hit = __VERIFIER_nondet_int();
  int s__verify_mode = __VERIFIER_nondet_int();
  int s__session__peer = __VERIFIER_nondet_int();
  unsigned long s__s3__tmp__new_cipher__algorithms = __VERIFIER_nondet_long();
  int buf;
  int cb;
  int blastFlag;
  int tmp___1;
  s__state = 8466;
  blastFlag = 0;
  while (1) {
    if (s__state <= 8512 && blastFlag > 2) {
      goto ERROR;
    }
    {
      {
        {
          {
            {
              if (s__state == 8466) {
                goto switch_1_8466;
              } else {
                if (s__state == 8496) {
                  goto switch_1_8496;
                } else {
                  {
                    if (s__state == 8512) {
                      goto switch_1_8512;
                    } else {
                      {
                        if (s__state == 8528) {
                          goto switch_1_8528;
                        } else {
                          {
                            if (s__state == 8544) {
                              goto switch_1_8544;
                            } else {
                              {
                                if (s__state == 8560) {
                                  goto switch_1_8560;
                                } else {
                                  {
                                    if (s__state == 8576) {
                                      goto switch_1_8576;
                                    } else {
                                      {
                                        if (s__state == 8592) {
                                          goto switch_1_8592;
                                        } else {
                                          {
                                            if (s__state == 8608) {
                                              goto switch_1_8608;
                                            } else {
                                              {
                                                if (s__state == 8640) {
                                                  goto switch_1_8640;
                                                } else {
                                                  {
                                                    if (s__state == 8656) {
                                                      goto switch_1_8656;
                                                    } else {
                                                      {
                                                        if (s__state == 8672) {
                                                          goto switch_1_8672;
                                                        } else {
                                                          goto end;
                                                        switch_1_8466:
                                                          if (blastFlag == 0) {
                                                            blastFlag = 1;
                                                          }
                                                          s__state = 8496;
                                                          goto switch_1_break;
                                                        switch_1_8496:
                                                          if (blastFlag == 1) {
                                                            blastFlag = 2;
                                                          }
                                                          if (s__hit) {
                                                            s__state = 8656;
                                                          } else {
                                                            s__state = 8512;
                                                          }
                                                          goto switch_1_break;
                                                        switch_1_8512:
                                                          s__state = 8528;
                                                          goto switch_1_break;
                                                        switch_1_8528:
                                                          s__state = 8544;
                                                          goto switch_1_break;
                                                        switch_1_8544:
                                                          if (s__verify_mode + 1) {
                                                            if (s__session__peer != 0) {
                                                              if (s__verify_mode + 4) {
                                                                s__state = 8560;
                                                              } else {
                                                                goto _L___2;
                                                              }
                                                            } else {
                                                            _L___2:
                                                              if (s__s3__tmp__new_cipher__algorithms + 256UL) {
                                                                if (s__verify_mode + 2) {
                                                                  goto _L___1;
                                                                } else {
                                                                  s__state = 8560;
                                                                }
                                                              } else {
                                                              _L___1:
                                                                s__state = 8576;
                                                              }
                                                            }
                                                          } else {
                                                            s__state = 8560;
                                                          }
                                                          goto switch_1_break;
                                                        switch_1_8560:
                                                          s__state = 8576;
                                                          goto switch_1_break;
                                                        switch_1_8576:
                                                          tmp___1 = __VERIFIER_nondet_int();
                                                          if (tmp___1 == 2) {
                                                            s__state = 8466;
                                                          } else {
                                                            s__state = 8592;
                                                          }
                                                          goto switch_1_break;
                                                        switch_1_8592:
                                                          s__state = 8608;
                                                          goto switch_1_break;
                                                        switch_1_8608:
                                                          s__state = 8640;
                                                          goto switch_1_break;
                                                        switch_1_8640:
                                                          if (blastFlag == 3) {
                                                            blastFlag = 4;
                                                          }
                                                          if (s__hit) {
                                                            goto end;
                                                          } else {
                                                            s__state = 8656;
                                                          }
                                                          goto switch_1_break;
                                                        switch_1_8656:
                                                          if (blastFlag == 2) {
                                                            blastFlag = 3;
                                                          }
                                                          s__state = 8672;
                                                          goto switch_1_break;
                                                        switch_1_8672:
                                                          if (blastFlag == 4) {
                                                            blastFlag = 5;
                                                          } else {
                                                            if (blastFlag == 5) {
                                                              goto ERROR;
                                                            }
                                                          }
                                                          if (s__hit) {
                                                            s__state = 8640;
                                                          } else {
                                                            goto end;
                                                          }
                                                          goto switch_1_break;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  switch_1_break:;
  }
end:
  return (-1);
ERROR:
  __VERIFIER_error();
  return (-1);
}
```