#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ __VERIFIER_error();
int __VERIFIER_nondet_int();
int ssl3_connect(int initial_state) {
  int s__info_callback;
  int s__in_handshake;
  int s__state;
  int s__new_session;
  int s__server;
  int s__version;
  int s__type;
  int s__init_num;
  int s__bbio;
  int s__wbio;
  int s__hit;
  int s__rwstate;
  int s__init_buf___0;
  int s__debug;
  int s__shutdown;
  int s__ctx__info_callback;
  int s__ctx__stats__sess_connect_renegotiate;
  int s__ctx__stats__sess_connect;
  int s__ctx__stats__sess_hit;
  int s__ctx__stats__sess_connect_good;
  int s__s3__change_cipher_spec;
  int s__s3__flags;
  int s__s3__delay_buf_pop_ret;
  int s__s3__tmp__cert_req;
  int s__s3__tmp__new_compression;
  int s__s3__tmp__reuse_message;
  int s__s3__tmp__new_cipher;
  int s__s3__tmp__new_cipher__algorithms;
  int s__s3__tmp__next_state___0;
  int s__s3__tmp__new_compression__id;
  int s__session__cipher;
  int s__session__compress_meth;
  int buf;
  unsigned long l;
  int num1;
  int cb;
  int ret;
  int new_state;
  int state;
  int skip;
  int tmp___0;
  int tmp___1;
  int tmp___2;
  int tmp___3;
  int tmp___4;
  int tmp___5;
  int tmp___6;
  int tmp___7;
  int tmp___8;
  int tmp___9;
  int blastFlag;
  {
    s__state = initial_state;
    s__s3__flags = __VERIFIER_nondet_int();
    s__s3__tmp__next_state___0 = __VERIFIER_nondet_int();
    s__s3__tmp__new_cipher__algorithms = __VERIFIER_nondet_int();
    s__hit = __VERIFIER_nondet_int();
    blastFlag = 0;
    cb = 0;
    ret = -1;
    skip = 0;
    tmp___0 = 0;
    if (s__info_callback != 0) {
      cb = s__info_callback;
    } else {
      if (s__ctx__info_callback != 0) {
        cb = s__ctx__info_callback;
      } else {
      }
    }
    s__in_handshake += 1;
    if (tmp___1 + 12288) {
      if (tmp___2 + 16384) {
      } else {
      }
    } else {
    }
    {
      while (1) {
      while_0_continue:;
        state = s__state;
        if (s__state == 12292) {
          goto switch_1_12292;
        } else {
          if (s__state == 16384) {
            goto switch_1_16384;
          } else {
            if (s__state == 4096) {
              goto switch_1_4096;
            } else {
              if (s__state == 20480) {
                goto switch_1_20480;
              } else {
                if (s__state == 4099) {
                  goto switch_1_4099;
                } else {
                  if (s__state == 4368) {
                    goto switch_1_4368;
                  } else {
                    if (s__state == 4369) {
                      goto switch_1_4369;
                    } else {
                      if (s__state == 4384) {
                        goto switch_1_4384;
                      } else {
                        if (s__state == 4385) {
                          goto switch_1_4385;
                        } else {
                          if (s__state == 4400) {
                            goto switch_1_4400;
                          } else {
                            if (s__state == 4401) {
                              goto switch_1_4401;
                            } else {
                              if (s__state == 4416) {
                                goto switch_1_4416;
                              } else {
                                if (s__state == 4417) {
                                  goto switch_1_4417;
                                } else {
                                  if (s__state == 4432) {
                                    goto switch_1_4432;
                                  } else {
                                    if (s__state == 4433) {
                                      goto switch_1_4433;
                                    } else {
                                      if (s__state == 4448) {
                                        goto switch_1_4448;
                                      } else {
                                        if (s__state == 4449) {
                                          goto switch_1_4449;
                                        } else {
                                          if (s__state == 4464) {
                                            goto switch_1_4464;
                                          } else {
                                            if (s__state == 4465) {
                                              goto switch_1_4465;
                                            } else {
                                              if (s__state == 4466) {
                                                goto switch_1_4466;
                                              } else {
                                                if (s__state == 4467) {
                                                  goto switch_1_4467;
                                                } else {
                                                  if (s__state == 4480) {
                                                    goto switch_1_4480;
                                                  } else {
                                                    if (s__state == 4481) {
                                                      goto switch_1_4481;
                                                    } else {
                                                      if (s__state == 4496) {
                                                        goto switch_1_4496;
                                                      } else {
                                                        if (s__state == 4497) {
                                                          goto switch_1_4497;
                                                        } else {
                                                          if (s__state ==
                                                              4512) {
                                                            goto switch_1_4512;
                                                          } else {
                                                            if (s__state ==
                                                                4513) {
                                                              goto switch_1_4513;
                                                            } else {
                                                              if (s__state ==
                                                                  4528) {
                                                                goto switch_1_4528;
                                                              } else {
                                                                if (s__state ==
                                                                    4529) {
                                                                  goto switch_1_4529;
                                                                } else {
                                                                  if (s__state ==
                                                                      4560) {
                                                                    goto switch_1_4560;
                                                                  } else {
                                                                    if (s__state ==
                                                                        4561) {
                                                                      goto switch_1_4561;
                                                                    } else {
                                                                      if (s__state ==
                                                                          4352) {
                                                                        goto switch_1_4352;
                                                                      } else {
                                                                        if (s__state ==
                                                                            3) {
                                                                          goto switch_1_3;
                                                                        } else {
                                                                          {
                                                                            goto switch_1_default;
                                                                            if (0) {
                                                                            switch_1_12292
                                                                                :
                                                                              s__new_session =
                                                                                  1;
                                                                              s__state =
                                                                                  4096;
                                                                              s__ctx__stats__sess_connect_renegotiate +=
                                                                                  1;
                                                                            switch_1_16384
                                                                                :;
                                                                            switch_1_4096
                                                                                :;
                                                                            switch_1_20480
                                                                                :;
                                                                            switch_1_4099
                                                                                :
                                                                              s__server =
                                                                                  0;
                                                                              if (cb !=
                                                                                  0) {
                                                                              } else {
                                                                              }
                                                                              if (s__version +
                                                                                      65280 !=
                                                                                  768) {
                                                                                ret =
                                                                                    -1;
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              s__type =
                                                                                  4096;
                                                                              if ((unsigned long)
                                                                                      s__init_buf___0 ==
                                                                                  (unsigned long)((
                                                                                      void
                                                                                          *)0)) {
                                                                                buf =
                                                                                    __VERIFIER_nondet_int();
                                                                                if ((unsigned long)
                                                                                        buf ==
                                                                                    (unsigned long)((
                                                                                        void
                                                                                            *)0)) {
                                                                                  ret =
                                                                                      -1;
                                                                                  goto end;
                                                                                } else {
                                                                                }
                                                                                if (!tmp___3) {
                                                                                  ret =
                                                                                      -1;
                                                                                  goto end;
                                                                                } else {
                                                                                }
                                                                                s__init_buf___0 =
                                                                                    buf;
                                                                              } else {
                                                                              }
                                                                              if (!tmp___4) {
                                                                                ret =
                                                                                    -1;
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              if (!tmp___5) {
                                                                                ret =
                                                                                    -1;
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              s__state =
                                                                                  4368;
                                                                              s__ctx__stats__sess_connect +=
                                                                                  1;
                                                                              s__init_num =
                                                                                  0;
                                                                              goto switch_1_break;
                                                                            switch_1_4368
                                                                                :;
                                                                            switch_1_4369
                                                                                :
                                                                              s__shutdown =
                                                                                  0;
                                                                              ret =
                                                                                  __VERIFIER_nondet_int();
                                                                              if (blastFlag ==
                                                                                  0) {
                                                                                blastFlag =
                                                                                    1;
                                                                              } else {
                                                                              }
                                                                              if (ret <=
                                                                                  0) {
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              s__state =
                                                                                  4384;
                                                                              s__init_num =
                                                                                  0;
                                                                              if ((unsigned long)
                                                                                      s__bbio !=
                                                                                  (unsigned long)
                                                                                      s__wbio) {
                                                                              } else {
                                                                              }
                                                                              goto switch_1_break;
                                                                            switch_1_4384
                                                                                :;
                                                                            switch_1_4385
                                                                                :
                                                                              ret =
                                                                                  __VERIFIER_nondet_int();
                                                                              if (blastFlag ==
                                                                                  1) {
                                                                                blastFlag =
                                                                                    2;
                                                                              } else {
                                                                                if (blastFlag ==
                                                                                    4) {
                                                                                  blastFlag =
                                                                                      5;
                                                                                } else {
                                                                                }
                                                                              }
                                                                              if (ret <=
                                                                                  0) {
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              if (s__hit) {
                                                                                s__state =
                                                                                    4560;
                                                                              } else {
                                                                                s__state =
                                                                                    4400;
                                                                              }
                                                                              s__init_num =
                                                                                  0;
                                                                              goto switch_1_break;
                                                                            switch_1_4400
                                                                                :;
                                                                            switch_1_4401
                                                                                :;
                                                                              if ((unsigned long)
                                                                                      s__s3__tmp__new_cipher__algorithms +
                                                                                  256UL) {
                                                                                skip =
                                                                                    1;
                                                                              } else {
                                                                                ret =
                                                                                    __VERIFIER_nondet_int();
                                                                                if (blastFlag ==
                                                                                    2) {
                                                                                  blastFlag =
                                                                                      3;
                                                                                } else {
                                                                                }
                                                                                if (ret <=
                                                                                    0) {
                                                                                  goto end;
                                                                                } else {
                                                                                }
                                                                              }
                                                                              s__state =
                                                                                  4416;
                                                                              s__init_num =
                                                                                  0;
                                                                              goto switch_1_break;
                                                                            switch_1_4416
                                                                                :;
                                                                            switch_1_4417
                                                                                :
                                                                              ret =
                                                                                  __VERIFIER_nondet_int();
                                                                              if (blastFlag ==
                                                                                  3) {
                                                                                blastFlag =
                                                                                    4;
                                                                              } else {
                                                                              }
                                                                              if (ret <=
                                                                                  0) {
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              s__state =
                                                                                  4432;
                                                                              s__init_num =
                                                                                  0;
                                                                              if (!tmp___6) {
                                                                                ret =
                                                                                    -1;
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              goto switch_1_break;
                                                                            switch_1_4432
                                                                                :;
                                                                            switch_1_4433
                                                                                :
                                                                              ret =
                                                                                  __VERIFIER_nondet_int();
                                                                              if (blastFlag ==
                                                                                  5) {
                                                                                goto ERROR;
                                                                              } else {
                                                                              }
                                                                              if (ret <=
                                                                                  0) {
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              s__state =
                                                                                  4448;
                                                                              s__init_num =
                                                                                  0;
                                                                              goto switch_1_break;
                                                                            switch_1_4448
                                                                                :;
                                                                            switch_1_4449
                                                                                :
                                                                              ret =
                                                                                  __VERIFIER_nondet_int();
                                                                              if (ret <=
                                                                                  0) {
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              if (s__s3__tmp__cert_req) {
                                                                                s__state =
                                                                                    4464;
                                                                              } else {
                                                                                s__state =
                                                                                    4480;
                                                                              }
                                                                              s__init_num =
                                                                                  0;
                                                                              goto switch_1_break;
                                                                            switch_1_4464
                                                                                :;
                                                                            switch_1_4465
                                                                                :;
                                                                            switch_1_4466
                                                                                :;
                                                                            switch_1_4467
                                                                                :
                                                                              ret =
                                                                                  __VERIFIER_nondet_int();
                                                                              if (ret <=
                                                                                  0) {
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              s__state =
                                                                                  4480;
                                                                              s__init_num =
                                                                                  0;
                                                                              goto switch_1_break;
                                                                            switch_1_4480
                                                                                :;
                                                                            switch_1_4481
                                                                                :
                                                                              ret =
                                                                                  __VERIFIER_nondet_int();
                                                                              if (ret <=
                                                                                  0) {
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              l = s__s3__tmp__new_cipher__algorithms;
                                                                              if (s__s3__tmp__cert_req ==
                                                                                  1) {
                                                                                s__state =
                                                                                    4496;
                                                                              } else {
                                                                                s__state =
                                                                                    4512;
                                                                                s__s3__change_cipher_spec =
                                                                                    0;
                                                                              }
                                                                              s__init_num =
                                                                                  0;
                                                                              goto switch_1_break;
                                                                            switch_1_4496
                                                                                :;
                                                                            switch_1_4497
                                                                                :
                                                                              ret =
                                                                                  __VERIFIER_nondet_int();
                                                                              if (ret <=
                                                                                  0) {
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              s__state =
                                                                                  4512;
                                                                              s__init_num =
                                                                                  0;
                                                                              s__s3__change_cipher_spec =
                                                                                  0;
                                                                              goto switch_1_break;
                                                                            switch_1_4512
                                                                                :;
                                                                            switch_1_4513
                                                                                :
                                                                              ret =
                                                                                  __VERIFIER_nondet_int();
                                                                              if (ret <=
                                                                                  0) {
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              s__state =
                                                                                  4528;
                                                                              s__init_num =
                                                                                  0;
                                                                              s__session__cipher =
                                                                                  s__s3__tmp__new_cipher;
                                                                              if (s__s3__tmp__new_compression ==
                                                                                  0) {
                                                                                s__session__compress_meth =
                                                                                    0;
                                                                              } else {
                                                                                s__session__compress_meth =
                                                                                    s__s3__tmp__new_compression__id;
                                                                              }
                                                                              if (!tmp___7) {
                                                                                ret =
                                                                                    -1;
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              if (!tmp___8) {
                                                                                ret =
                                                                                    -1;
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              goto switch_1_break;
                                                                            switch_1_4528
                                                                                :;
                                                                            switch_1_4529
                                                                                :
                                                                              ret =
                                                                                  __VERIFIER_nondet_int();
                                                                              if (ret <=
                                                                                  0) {
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              s__state =
                                                                                  4352;
                                                                              s__s3__flags =
                                                                                  (long)
                                                                                      s__s3__flags +
                                                                                  -5L;
                                                                              if (s__hit) {
                                                                                s__s3__tmp__next_state___0 =
                                                                                    3;
                                                                                if ((long)
                                                                                        s__s3__flags +
                                                                                    2L) {
                                                                                  s__state =
                                                                                      3;
                                                                                  s__s3__flags =
                                                                                      (long)
                                                                                          s__s3__flags *
                                                                                      4L;
                                                                                  s__s3__delay_buf_pop_ret =
                                                                                      0;
                                                                                } else {
                                                                                }
                                                                              } else {
                                                                                s__s3__tmp__next_state___0 =
                                                                                    4560;
                                                                              }
                                                                              s__init_num =
                                                                                  0;
                                                                              goto switch_1_break;
                                                                            switch_1_4560
                                                                                :;
                                                                            switch_1_4561
                                                                                :
                                                                              ret =
                                                                                  __VERIFIER_nondet_int();
                                                                              if (ret <=
                                                                                  0) {
                                                                                goto end;
                                                                              } else {
                                                                              }
                                                                              if (s__hit) {
                                                                                s__state =
                                                                                    4512;
                                                                              } else {
                                                                                s__state =
                                                                                    3;
                                                                              }
                                                                              s__init_num =
                                                                                  0;
                                                                              goto switch_1_break;
                                                                            switch_1_4352
                                                                                :
                                                                              if ((long)
                                                                                      num1 >
                                                                                  0L) {
                                                                                s__rwstate =
                                                                                    2;
                                                                                num1 =
                                                                                    (long)
                                                                                        tmp___9;
                                                                                if ((long)
                                                                                        num1 <=
                                                                                    0L) {
                                                                                  ret =
                                                                                      -1;
                                                                                  goto end;
                                                                                } else {
                                                                                }
                                                                                s__rwstate =
                                                                                    1;
                                                                              } else {
                                                                              }
                                                                              s__state =
                                                                                  s__s3__tmp__next_state___0;
                                                                              goto switch_1_break;
                                                                            switch_1_3
                                                                                :
                                                                              if (s__init_buf___0 !=
                                                                                  0) {
                                                                                s__init_buf___0 =
                                                                                    0;
                                                                              } else {
                                                                              }
                                                                              if (!((long)
                                                                                        s__s3__flags +
                                                                                    4L)) {
                                                                              } else {
                                                                              }
                                                                              s__init_num =
                                                                                  0;
                                                                              s__new_session =
                                                                                  0;
                                                                              if (s__hit) {
                                                                                s__ctx__stats__sess_hit +=
                                                                                    1;
                                                                              } else {
                                                                              }
                                                                              ret =
                                                                                  1;
                                                                              s__ctx__stats__sess_connect_good +=
                                                                                  1;
                                                                              if (cb !=
                                                                                  0) {
                                                                              } else {
                                                                              }
                                                                              goto end;
                                                                            switch_1_default
                                                                                :
                                                                              ret =
                                                                                  -1;
                                                                              goto end;
                                                                            } else {
                                                                            switch_1_break
                                                                                :;
                                                                            }
                                                                          }
                                                                        }
                                                                      }
                                                                    }
                                                                  }
                                                                }
                                                              }
                                                            }
                                                          }
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
        if (!s__s3__tmp__reuse_message) {
          if (!skip) {
            if (s__debug) {
              ret = __VERIFIER_nondet_int();
              if (ret <= 0) {
                goto end;
              } else {
              }
            } else {
            }
            if (cb != 0) {
              if (s__state != state) {
                new_state = s__state;
                s__state = state;
                s__state = new_state;
              } else {
              }
            } else {
            }
          } else {
          }
        } else {
        }
        skip = 0;
      }
    while_0_break:;
    }
  end:
    s__in_handshake -= 1;
    if (cb != 0) {
    } else {
    }
    return (ret);
  ERROR:
    __VERIFIER_error();
    return (-1);
  }
}


x86 assembly (clang, -O0):
<ssl3_connect>:
push   %rbp
mov    %rsp,%rbp
sub    $0xe0,%rsp
mov    %edi,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0x60(%rbp)
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0x7c(%rbp)
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0x78(%rbp)
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0x34(%rbp)
movl   $0x0,-0xdc(%rbp)
movl   $0x0,-0xa0(%rbp)
movl   $0xffffffff,-0xa4(%rbp)
ff ff ff
movl   $0x0,-0xb0(%rbp)
movl   $0x0,-0xb4(%rbp)
cmpl   $0x0,-0xc(%rbp)
je     11a6 <ssl3_connect+0x86>
mov    -0xc(%rbp),%eax
mov    %eax,-0xa0(%rbp)
jmp    11c8 <ssl3_connect+0xa8>
cmpl   $0x0,-0x48(%rbp)
je     11be <ssl3_connect+0x9e>
mov    -0x48(%rbp),%eax
mov    %eax,-0xa0(%rbp)
jmp    11c3 <ssl3_connect+0xa3>
jmp    11c3 <ssl3_connect+0xa3>
jmp    11c8 <ssl3_connect+0xa8>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
mov    -0xb8(%rbp),%eax
add    $0x3000,%eax
cmp    $0x0,%eax
je     1208 <ssl3_connect+0xe8>
mov    -0xbc(%rbp),%eax
add    $0x4000,%eax
cmp    $0x0,%eax
je     11fe <ssl3_connect+0xde>
jmp    1203 <ssl3_connect+0xe3>
jmp    1203 <ssl3_connect+0xe3>
jmp    120d <ssl3_connect+0xed>
jmp    120d <ssl3_connect+0xed>
jmp    1212 <ssl3_connect+0xf2>
jmp    1217 <ssl3_connect+0xf7>
mov    -0x14(%rbp),%eax
mov    %eax,-0xac(%rbp)
cmpl   $0x3004,-0x14(%rbp)
jne    1232 <ssl3_connect+0x112>
jmp    1474 <ssl3_connect+0x354>
cmpl   $0x4000,-0x14(%rbp)
jne    1244 <ssl3_connect+0x124>
jmp    148b <ssl3_connect+0x36b>
cmpl   $0x1000,-0x14(%rbp)
jne    1256 <ssl3_connect+0x136>
jmp    1490 <ssl3_connect+0x370>
cmpl   $0x5000,-0x14(%rbp)
jne    1268 <ssl3_connect+0x148>
jmp    1495 <ssl3_connect+0x375>
cmpl   $0x1003,-0x14(%rbp)
jne    127a <ssl3_connect+0x15a>
jmp    149a <ssl3_connect+0x37a>
cmpl   $0x1110,-0x14(%rbp)
jne    128c <ssl3_connect+0x16c>
jmp    15b8 <ssl3_connect+0x498>
cmpl   $0x1111,-0x14(%rbp)
jne    129e <ssl3_connect+0x17e>
jmp    15bd <ssl3_connect+0x49d>
cmpl   $0x1120,-0x14(%rbp)
jne    12b0 <ssl3_connect+0x190>
jmp    1637 <ssl3_connect+0x517>
cmpl   $0x1121,-0x14(%rbp)
jne    12c2 <ssl3_connect+0x1a2>
jmp    163c <ssl3_connect+0x51c>
cmpl   $0x1130,-0x14(%rbp)
jne    12d4 <ssl3_connect+0x1b4>
jmp    16cb <ssl3_connect+0x5ab>
cmpl   $0x1131,-0x14(%rbp)
jne    12e6 <ssl3_connect+0x1c6>
jmp    16d0 <ssl3_connect+0x5b0>
cmpl   $0x1140,-0x14(%rbp)
jne    12f8 <ssl3_connect+0x1d8>
jmp    1750 <ssl3_connect+0x630>
cmpl   $0x1141,-0x14(%rbp)
jne    130a <ssl3_connect+0x1ea>
jmp    1755 <ssl3_connect+0x635>
cmpl   $0x1150,-0x14(%rbp)
jne    131c <ssl3_connect+0x1fc>
jmp    17ce <ssl3_connect+0x6ae>
cmpl   $0x1151,-0x14(%rbp)
jne    132e <ssl3_connect+0x20e>
jmp    17d3 <ssl3_connect+0x6b3>
cmpl   $0x1160,-0x14(%rbp)
jne    1340 <ssl3_connect+0x220>
jmp    1821 <ssl3_connect+0x701>
cmpl   $0x1161,-0x14(%rbp)
jne    1352 <ssl3_connect+0x232>
jmp    1826 <ssl3_connect+0x706>
cmpl   $0x1170,-0x14(%rbp)
jne    1364 <ssl3_connect+0x244>
jmp    1873 <ssl3_connect+0x753>
cmpl   $0x1171,-0x14(%rbp)
jne    1376 <ssl3_connect+0x256>
jmp    1878 <ssl3_connect+0x758>
cmpl   $0x1172,-0x14(%rbp)
jne    1388 <ssl3_connect+0x268>
jmp    187d <ssl3_connect+0x75d>
cmpl   $0x1173,-0x14(%rbp)
jne    139a <ssl3_connect+0x27a>
jmp    1882 <ssl3_connect+0x762>
cmpl   $0x1180,-0x14(%rbp)
jne    13ac <ssl3_connect+0x28c>
jmp    18b9 <ssl3_connect+0x799>
cmpl   $0x1181,-0x14(%rbp)
jne    13be <ssl3_connect+0x29e>
jmp    18be <ssl3_connect+0x79e>
cmpl   $0x1190,-0x14(%rbp)
jne    13d0 <ssl3_connect+0x2b0>
jmp    191d <ssl3_connect+0x7fd>
cmpl   $0x1191,-0x14(%rbp)
jne    13e2 <ssl3_connect+0x2c2>
jmp    1922 <ssl3_connect+0x802>
cmpl   $0x11a0,-0x14(%rbp)
jne    13f4 <ssl3_connect+0x2d4>
jmp    1960 <ssl3_connect+0x840>
cmpl   $0x11a1,-0x14(%rbp)
jne    1406 <ssl3_connect+0x2e6>
jmp    1965 <ssl3_connect+0x845>
cmpl   $0x11b0,-0x14(%rbp)
jne    1418 <ssl3_connect+0x2f8>
jmp    1a09 <ssl3_connect+0x8e9>
cmpl   $0x11b1,-0x14(%rbp)
jne    142a <ssl3_connect+0x30a>
jmp    1a0e <ssl3_connect+0x8ee>
cmpl   $0x11d0,-0x14(%rbp)
jne    143c <ssl3_connect+0x31c>
jmp    1aa2 <ssl3_connect+0x982>
cmpl   $0x11d1,-0x14(%rbp)
jne    144e <ssl3_connect+0x32e>
jmp    1aa7 <ssl3_connect+0x987>
cmpl   $0x1100,-0x14(%rbp)
jne    1460 <ssl3_connect+0x340>
jmp    1af4 <ssl3_connect+0x9d4>
cmpl   $0x3,-0x14(%rbp)
jne    146f <ssl3_connect+0x34f>
jmp    1b5a <ssl3_connect+0xa3a>
jmp    1beb <ssl3_connect+0xacb>
movl   $0x1,-0x18(%rbp)
movl   $0x1000,-0x14(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1490 <ssl3_connect+0x370>
jmp    1495 <ssl3_connect+0x375>
jmp    149a <ssl3_connect+0x37a>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x0,-0xa0(%rbp)
je     14b3 <ssl3_connect+0x393>
jmp    14b8 <ssl3_connect+0x398>
jmp    14b8 <ssl3_connect+0x398>
mov    -0x20(%rbp),%eax
add    $0xff00,%eax
cmp    $0x300,%eax
je     14da <ssl3_connect+0x3ba>
movl   $0xffffffff,-0xa4(%rbp)
ff ff ff
jmp    1d61 <ssl3_connect+0xc41>
jmp    14df <ssl3_connect+0x3bf>
movl   $0x1000,-0x24(%rbp)
movslq -0x3c(%rbp),%rax
cmp    $0x0,%rax
jne    1555 <ssl3_connect+0x435>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0x8c(%rbp)
movslq -0x8c(%rbp),%rax
cmp    $0x0,%rax
jne    1521 <ssl3_connect+0x401>
movl   $0xffffffff,-0xa4(%rbp)
ff ff ff
jmp    1d61 <ssl3_connect+0xc41>
jmp    1526 <ssl3_connect+0x406>
cmpl   $0x0,-0xc0(%rbp)
jne    1542 <ssl3_connect+0x422>
movl   $0xffffffff,-0xa4(%rbp)
ff ff ff
jmp    1d61 <ssl3_connect+0xc41>
jmp    1547 <ssl3_connect+0x427>
mov    -0x8c(%rbp),%eax
mov    %eax,-0x3c(%rbp)
jmp    155a <ssl3_connect+0x43a>
jmp    155a <ssl3_connect+0x43a>
cmpl   $0x0,-0xc4(%rbp)
jne    1576 <ssl3_connect+0x456>
movl   $0xffffffff,-0xa4(%rbp)
ff ff ff
jmp    1d61 <ssl3_connect+0xc41>
jmp    157b <ssl3_connect+0x45b>
cmpl   $0x0,-0xc8(%rbp)
jne    1597 <ssl3_connect+0x477>
movl   $0xffffffff,-0xa4(%rbp)
ff ff ff
jmp    1d61 <ssl3_connect+0xc41>
jmp    159c <ssl3_connect+0x47c>
movl   $0x1110,-0x14(%rbp)
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
movl   $0x0,-0x28(%rbp)
jmp    1bfa <ssl3_connect+0xada>
jmp    15bd <ssl3_connect+0x49d>
movl   $0x0,-0x44(%rbp)
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x0,-0xdc(%rbp)
jne    15ed <ssl3_connect+0x4cd>
movl   $0x1,-0xdc(%rbp)
jmp    15f2 <ssl3_connect+0x4d2>
jmp    15f2 <ssl3_connect+0x4d2>
cmpl   $0x0,-0xa4(%rbp)
jg     1604 <ssl3_connect+0x4e4>
jmp    1d61 <ssl3_connect+0xc41>
jmp    1609 <ssl3_connect+0x4e9>
movl   $0x1120,-0x14(%rbp)
movl   $0x0,-0x28(%rbp)
movslq -0x2c(%rbp),%rax
movslq -0x30(%rbp),%rcx
cmp    %rcx,%rax
je     162d <ssl3_connect+0x50d>
jmp    1632 <ssl3_connect+0x512>
jmp    1632 <ssl3_connect+0x512>
jmp    1bfa <ssl3_connect+0xada>
jmp    163c <ssl3_connect+0x51c>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x1,-0xdc(%rbp)
jne    1665 <ssl3_connect+0x545>
movl   $0x2,-0xdc(%rbp)
jmp    168b <ssl3_connect+0x56b>
cmpl   $0x4,-0xdc(%rbp)
jne    1681 <ssl3_connect+0x561>
movl   $0x5,-0xdc(%rbp)
jmp    1686 <ssl3_connect+0x566>
jmp    1686 <ssl3_connect+0x566>
jmp    168b <ssl3_connect+0x56b>
cmpl   $0x0,-0xa4(%rbp)
jg     169d <ssl3_connect+0x57d>
jmp    1d61 <ssl3_connect+0xc41>
jmp    16a2 <ssl3_connect+0x582>
cmpl   $0x0,-0x34(%rbp)
je     16b8 <ssl3_connect+0x598>
movl   $0x11d0,-0x14(%rbp)
jmp    16bf <ssl3_connect+0x59f>
movl   $0x1130,-0x14(%rbp)
movl   $0x0,-0x28(%rbp)
jmp    1bfa <ssl3_connect+0xada>
jmp    16d0 <ssl3_connect+0x5b0>
movslq -0x78(%rbp),%rax
add    $0x100,%rax
cmp    $0x0,%rax
je     16f3 <ssl3_connect+0x5d3>
movl   $0x1,-0xb0(%rbp)
jmp    173d <ssl3_connect+0x61d>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x2,-0xdc(%rbp)
jne    171c <ssl3_connect+0x5fc>
movl   $0x3,-0xdc(%rbp)
jmp    1721 <ssl3_connect+0x601>
jmp    1721 <ssl3_connect+0x601>
cmpl   $0x0,-0xa4(%rbp)
jg     1733 <ssl3_connect+0x613>
jmp    1d61 <ssl3_connect+0xc41>
jmp    1738 <ssl3_connect+0x618>
jmp    173d <ssl3_connect+0x61d>
movl   $0x1140,-0x14(%rbp)
movl   $0x0,-0x28(%rbp)
jmp    1bfa <ssl3_connect+0xada>
jmp    1755 <ssl3_connect+0x635>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x3,-0xdc(%rbp)
jne    177e <ssl3_connect+0x65e>
movl   $0x4,-0xdc(%rbp)
jmp    1783 <ssl3_connect+0x663>
jmp    1783 <ssl3_connect+0x663>
cmpl   $0x0,-0xa4(%rbp)
jg     1795 <ssl3_connect+0x675>
jmp    1d61 <ssl3_connect+0xc41>
jmp    179a <ssl3_connect+0x67a>
movl   $0x1150,-0x14(%rbp)
movl   $0x0,-0x28(%rbp)
cmpl   $0x0,-0xcc(%rbp)
jne    17c4 <ssl3_connect+0x6a4>
movl   $0xffffffff,-0xa4(%rbp)
ff ff ff
jmp    1d61 <ssl3_connect+0xc41>
jmp    17c9 <ssl3_connect+0x6a9>
jmp    1bfa <ssl3_connect+0xada>
jmp    17d3 <ssl3_connect+0x6b3>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x5,-0xdc(%rbp)
jne    17f2 <ssl3_connect+0x6d2>
jmp    1d8f <ssl3_connect+0xc6f>
jmp    17f7 <ssl3_connect+0x6d7>
cmpl   $0x0,-0xa4(%rbp)
jg     1809 <ssl3_connect+0x6e9>
jmp    1d61 <ssl3_connect+0xc41>
jmp    180e <ssl3_connect+0x6ee>
movl   $0x1160,-0x14(%rbp)
movl   $0x0,-0x28(%rbp)
jmp    1bfa <ssl3_connect+0xada>
jmp    1826 <ssl3_connect+0x706>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x0,-0xa4(%rbp)
jg     1845 <ssl3_connect+0x725>
jmp    1d61 <ssl3_connect+0xc41>
jmp    184a <ssl3_connect+0x72a>
cmpl   $0x0,-0x68(%rbp)
je     1860 <ssl3_connect+0x740>
movl   $0x1170,-0x14(%rbp)
jmp    1867 <ssl3_connect+0x747>
movl   $0x1180,-0x14(%rbp)
movl   $0x0,-0x28(%rbp)
jmp    1bfa <ssl3_connect+0xada>
jmp    1878 <ssl3_connect+0x758>
jmp    187d <ssl3_connect+0x75d>
jmp    1882 <ssl3_connect+0x762>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x0,-0xa4(%rbp)
jg     18a1 <ssl3_connect+0x781>
jmp    1d61 <ssl3_connect+0xc41>
jmp    18a6 <ssl3_connect+0x786>
movl   $0x1180,-0x14(%rbp)
movl   $0x0,-0x28(%rbp)
jmp    1bfa <ssl3_connect+0xada>
jmp    18be <ssl3_connect+0x79e>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x0,-0xa4(%rbp)
jg     18dd <ssl3_connect+0x7bd>
jmp    1d61 <ssl3_connect+0xc41>
jmp    18e2 <ssl3_connect+0x7c2>
movslq -0x78(%rbp),%rax
mov    %rax,-0x98(%rbp)
cmpl   $0x1,-0x68(%rbp)
jne    1903 <ssl3_connect+0x7e3>
movl   $0x1190,-0x14(%rbp)
jmp    1911 <ssl3_connect+0x7f1>
movl   $0x11a0,-0x14(%rbp)
movl   $0x0,-0x5c(%rbp)
movl   $0x0,-0x28(%rbp)
jmp    1bfa <ssl3_connect+0xada>
jmp    1922 <ssl3_connect+0x802>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x0,-0xa4(%rbp)
jg     1941 <ssl3_connect+0x821>
jmp    1d61 <ssl3_connect+0xc41>
jmp    1946 <ssl3_connect+0x826>
movl   $0x11a0,-0x14(%rbp)
movl   $0x0,-0x28(%rbp)
movl   $0x0,-0x5c(%rbp)
jmp    1bfa <ssl3_connect+0xada>
jmp    1965 <ssl3_connect+0x845>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x0,-0xa4(%rbp)
jg     1984 <ssl3_connect+0x864>
jmp    1d61 <ssl3_connect+0xc41>
jmp    1989 <ssl3_connect+0x869>
movl   $0x11b0,-0x14(%rbp)
movl   $0x0,-0x28(%rbp)
mov    -0x74(%rbp),%eax
mov    %eax,-0x84(%rbp)
cmpl   $0x0,-0x6c(%rbp)
jne    19b9 <ssl3_connect+0x899>
movl   $0x0,-0x88(%rbp)
jmp    19c2 <ssl3_connect+0x8a2>
mov    -0x80(%rbp),%eax
mov    %eax,-0x88(%rbp)
cmpl   $0x0,-0xd0(%rbp)
jne    19de <ssl3_connect+0x8be>
movl   $0xffffffff,-0xa4(%rbp)
ff ff ff
jmp    1d61 <ssl3_connect+0xc41>
jmp    19e3 <ssl3_connect+0x8c3>
cmpl   $0x0,-0xd4(%rbp)
jne    19ff <ssl3_connect+0x8df>
movl   $0xffffffff,-0xa4(%rbp)
ff ff ff
jmp    1d61 <ssl3_connect+0xc41>
jmp    1a04 <ssl3_connect+0x8e4>
jmp    1bfa <ssl3_connect+0xada>
jmp    1a0e <ssl3_connect+0x8ee>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x0,-0xa4(%rbp)
jg     1a2d <ssl3_connect+0x90d>
jmp    1d61 <ssl3_connect+0xc41>
jmp    1a32 <ssl3_connect+0x912>
movl   $0x1100,-0x14(%rbp)
movslq -0x60(%rbp),%rax
add    $0xfffffffffffffffb,%rax
mov    %eax,-0x60(%rbp)
cmpl   $0x0,-0x34(%rbp)
je     1a8f <ssl3_connect+0x96f>
movl   $0x3,-0x7c(%rbp)
movslq -0x60(%rbp),%rax
add    $0x2,%rax
cmp    $0x0,%rax
je     1a85 <ssl3_connect+0x965>
movl   $0x3,-0x14(%rbp)
movslq -0x60(%rbp),%rax
shl    $0x2,%rax
mov    %eax,-0x60(%rbp)
movl   $0x0,-0x64(%rbp)
jmp    1a8a <ssl3_connect+0x96a>
jmp    1a8a <ssl3_connect+0x96a>
jmp    1a96 <ssl3_connect+0x976>
movl   $0x11d0,-0x7c(%rbp)
movl   $0x0,-0x28(%rbp)
jmp    1bfa <ssl3_connect+0xada>
jmp    1aa7 <ssl3_connect+0x987>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x0,-0xa4(%rbp)
jg     1ac6 <ssl3_connect+0x9a6>
jmp    1d61 <ssl3_connect+0xc41>
jmp    1acb <ssl3_connect+0x9ab>
cmpl   $0x0,-0x34(%rbp)
je     1ae1 <ssl3_connect+0x9c1>
movl   $0x11a0,-0x14(%rbp)
jmp    1ae8 <ssl3_connect+0x9c8>
movl   $0x3,-0x14(%rbp)
movl   $0x0,-0x28(%rbp)
jmp    1bfa <ssl3_connect+0xada>
movslq -0x9c(%rbp),%rax
cmp    $0x0,%rax
jle    1b4a <ssl3_connect+0xa2a>
movl   $0x2,-0x38(%rbp)
movslq -0xd8(%rbp),%rax
mov    %eax,-0x9c(%rbp)
movslq -0x9c(%rbp),%rax
cmp    $0x0,%rax
jg     1b39 <ssl3_connect+0xa19>
movl   $0xffffffff,-0xa4(%rbp)
ff ff ff
jmp    1d61 <ssl3_connect+0xc41>
jmp    1b3e <ssl3_connect+0xa1e>
movl   $0x1,-0x38(%rbp)
jmp    1b4f <ssl3_connect+0xa2f>
jmp    1b4f <ssl3_connect+0xa2f>
mov    -0x7c(%rbp),%eax
mov    %eax,-0x14(%rbp)
jmp    1bfa <ssl3_connect+0xada>
cmpl   $0x0,-0x3c(%rbp)
je     1b70 <ssl3_connect+0xa50>
movl   $0x0,-0x3c(%rbp)
jmp    1b75 <ssl3_connect+0xa55>
jmp    1b75 <ssl3_connect+0xa55>
movslq -0x60(%rbp),%rax
add    $0x4,%rax
cmp    $0x0,%rax
jne    1b8c <ssl3_connect+0xa6c>
jmp    1b91 <ssl3_connect+0xa71>
jmp    1b91 <ssl3_connect+0xa71>
movl   $0x0,-0x28(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x0,-0x34(%rbp)
je     1bb7 <ssl3_connect+0xa97>
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    1bbc <ssl3_connect+0xa9c>
jmp    1bbc <ssl3_connect+0xa9c>
movl   $0x1,-0xa4(%rbp)
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
cmpl   $0x0,-0xa0(%rbp)
je     1be1 <ssl3_connect+0xac1>
jmp    1be6 <ssl3_connect+0xac6>
jmp    1be6 <ssl3_connect+0xac6>
jmp    1d61 <ssl3_connect+0xc41>
movl   $0xffffffff,-0xa4(%rbp)
ff ff ff
jmp    1d61 <ssl3_connect+0xc41>
jmp    1bff <ssl3_connect+0xadf>
jmp    1c04 <ssl3_connect+0xae4>
jmp    1c09 <ssl3_connect+0xae9>
jmp    1c0e <ssl3_connect+0xaee>
jmp    1c13 <ssl3_connect+0xaf3>
jmp    1c18 <ssl3_connect+0xaf8>
jmp    1c1d <ssl3_connect+0xafd>
jmp    1c22 <ssl3_connect+0xb02>
jmp    1c27 <ssl3_connect+0xb07>
jmp    1c2c <ssl3_connect+0xb0c>
jmp    1c31 <ssl3_connect+0xb11>
jmp    1c36 <ssl3_connect+0xb16>
jmp    1c3b <ssl3_connect+0xb1b>
jmp    1c40 <ssl3_connect+0xb20>
jmp    1c45 <ssl3_connect+0xb25>
jmp    1c4a <ssl3_connect+0xb2a>
jmp    1c4f <ssl3_connect+0xb2f>
jmp    1c54 <ssl3_connect+0xb34>
jmp    1c59 <ssl3_connect+0xb39>
jmp    1c5e <ssl3_connect+0xb3e>
jmp    1c63 <ssl3_connect+0xb43>
jmp    1c68 <ssl3_connect+0xb48>
jmp    1c6d <ssl3_connect+0xb4d>
jmp    1c72 <ssl3_connect+0xb52>
jmp    1c77 <ssl3_connect+0xb57>
jmp    1c7c <ssl3_connect+0xb5c>
jmp    1c81 <ssl3_connect+0xb61>
jmp    1c86 <ssl3_connect+0xb66>
jmp    1c8b <ssl3_connect+0xb6b>
jmp    1c90 <ssl3_connect+0xb70>
jmp    1c95 <ssl3_connect+0xb75>
jmp    1c9a <ssl3_connect+0xb7a>
jmp    1c9f <ssl3_connect+0xb7f>
jmp    1ca4 <ssl3_connect+0xb84>
cmpl   $0x0,-0x70(%rbp)
jne    1d4d <ssl3_connect+0xc2d>
cmpl   $0x0,-0xb0(%rbp)
jne    1d43 <ssl3_connect+0xc23>
cmpl   $0x0,-0x40(%rbp)
je     1cee <ssl3_connect+0xbce>
mov    $0x0,%al
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,-0xa4(%rbp)
cmpl   $0x0,-0xa4(%rbp)
jg     1ce4 <ssl3_connect+0xbc4>
jmp    1d61 <ssl3_connect+0xc41>
jmp    1ce9 <ssl3_connect+0xbc9>
jmp    1cf3 <ssl3_connect+0xbd3>
jmp    1cf3 <ssl3_connect+0xbd3>
cmpl   $0x0,-0xa0(%rbp)
je     1d39 <ssl3_connect+0xc19>
mov    -0x14(%rbp),%eax
cmp    -0xac(%rbp),%eax
je     1d2f <ssl3_connect+0xc0f>
mov    -0x14(%rbp),%eax
mov    %eax,-0xa8(%rbp)
mov    -0xac(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0xa8(%rbp),%eax
mov    %eax,-0x14(%rbp)
jmp    1d34 <ssl3_connect+0xc14>
jmp    1d34 <ssl3_connect+0xc14>
jmp    1d3e <ssl3_connect+0xc1e>
jmp    1d3e <ssl3_connect+0xc1e>
jmp    1d48 <ssl3_connect+0xc28>
jmp    1d48 <ssl3_connect+0xc28>
jmp    1d52 <ssl3_connect+0xc32>
jmp    1d52 <ssl3_connect+0xc32>
movl   $0x0,-0xb0(%rbp)
jmp    1212 <ssl3_connect+0xf2>
mov    -0x10(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x10(%rbp)
cmpl   $0x0,-0xa0(%rbp)
je     1d7c <ssl3_connect+0xc5c>
jmp    1d81 <ssl3_connect+0xc61>
jmp    1d81 <ssl3_connect+0xc61>
mov    -0xa4(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    1d9d <ssl3_connect+0xc7d>
mov    $0x0,%al
call   1040 <__VERIFIER_error@plt>
movl   $0xffffffff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0xe0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<ssl3_connect>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x18,%rsp
mov    %edi,%ebp
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
mov    %rax,0x8(%rsp)
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,0x4(%rsp)
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,0x14(%rsp)
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,%r13d
test   %eax,%eax
mov    $0x1130,%eax
mov    $0x11d0,%ebx
cmove  %eax,%ebx
mov    $0x3,%eax
mov    $0x11a0,%r15d
cmove  %eax,%r15d
lea    0xe7f(%rip),%r14
xor    %r12d,%r12d
jmp    119a <ssl3_connect+0x7a>
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
mov    $0x1180,%ebp
test   %eax,%eax
jle    1377 <ssl3_connect+0x257>
mov    %ebp,%ecx
cmp    $0x3003,%ebp
jle    11d0 <ssl3_connect+0xb0>
cmp    $0x3004,%ecx
je     136b <ssl3_connect+0x24b>
cmp    $0x4000,%ecx
je     136b <ssl3_connect+0x24b>
cmp    $0x5000,%ecx
jne    11e8 <ssl3_connect+0xc8>
jmp    136b <ssl3_connect+0x24b>
nopl   0x0(%rax)
cmp    $0x1000,%ecx
je     136b <ssl3_connect+0x24b>
cmp    $0x1003,%ecx
je     136b <ssl3_connect+0x24b>
mov    %ecx,%eax
and    $0xfffffffe,%eax
lea    -0x1110(%rax),%edx
rol    $0x1c,%edx
cmp    $0x5,%edx
ja     1229 <ssl3_connect+0x109>
movslq (%r14,%rdx,4),%rax
add    %r14,%rax
jmp    *%rax
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
test   %eax,%eax
jle    1377 <ssl3_connect+0x257>
test   %r12d,%r12d
mov    $0x1,%eax
cmove  %eax,%r12d
mov    $0x1120,%ebp
jmp    119a <ssl3_connect+0x7a>
mov    %ecx,%edx
and    $0xfffffffc,%edx
cmp    $0x1170,%edx
je     1186 <ssl3_connect+0x66>
add    $0xffffee80,%eax
rol    $0x1c,%eax
cmp    $0x5,%eax
ja     134a <ssl3_connect+0x22a>
lea    0xdc6(%rip),%rdx
movslq (%rdx,%rax,4),%rax
add    %rdx,%rax
jmp    *%rax
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
mov    $0x11a0,%ebp
jmp    1192 <ssl3_connect+0x72>
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
test   %eax,%eax
jle    1377 <ssl3_connect+0x257>
cmp    $0x4,%r12d
mov    %r12d,%eax
mov    $0x5,%ecx
cmove  %ecx,%eax
cmp    $0x1,%r12d
mov    $0x2,%ecx
cmove  %ecx,%eax
mov    %ebx,%ebp
mov    %eax,%r12d
jmp    119a <ssl3_connect+0x7a>
mov    $0x1140,%ebp
cmpl   $0xffffff00,0x14(%rsp)
ff
jne    119a <ssl3_connect+0x7a>
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
cmp    $0x2,%r12d
mov    $0x3,%ecx
cmove  %ecx,%r12d
jmp    1192 <ssl3_connect+0x72>
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
cmp    $0x5,%r12d
je     139b <ssl3_connect+0x27b>
mov    $0x1160,%ebp
jmp    1192 <ssl3_connect+0x72>
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
test   %eax,%eax
jle    1377 <ssl3_connect+0x257>
mov    0x8(%rsp),%rax
add    $0xfffffffb,%eax
mov    %rax,0x8(%rsp)
mov    $0x1100,%ebp
movl   $0x11d0,0x4(%rsp)
test   %r13d,%r13d
je     119a <ssl3_connect+0x7a>
mov    0x8(%rsp),%rcx
lea    0x0(,%rcx,4),%eax
cmp    $0xfffffffe,%ecx
cmove  %ecx,%eax
movl   $0x3,0x4(%rsp)
mov    $0x3,%ebp
mov    $0x1100,%ecx
cmove  %ecx,%ebp
mov    %rax,0x8(%rsp)
jmp    119a <ssl3_connect+0x7a>
mov    0x4(%rsp),%ebp
cmp    $0x1100,%ecx
je     119a <ssl3_connect+0x7a>
jmp    13a4 <ssl3_connect+0x284>
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
mov    %r15d,%ebp
jmp    1192 <ssl3_connect+0x72>
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
mov    $0xffffffff,%eax
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
xor    %eax,%eax
call   1030 <__VERIFIER_nondet_int@plt>
mov    %eax,%ecx
test   %eax,%eax
mov    $0xffffffff,%eax
cmovle %ecx,%eax
jmp    1377 <ssl3_connect+0x257>
xor    %eax,%eax
call   1040 <__VERIFIER_error@plt>
jmp    1372 <ssl3_connect+0x252>
mov    $0xffffffff,%eax
cmp    $0x3,%ecx
jne    1377 <ssl3_connect+0x257>
mov    $0x1,%eax
jmp    1377 <ssl3_connect+0x257>

LLVM IR (-O0):
define i32 @ssl3_connect(i32 %0) {
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca i32
%26 = alloca i32
%27 = alloca i32
%28 = alloca i32
%29 = alloca i32
%30 = alloca i32
%31 = alloca i32
%32 = alloca i32
%33 = alloca i32
%34 = alloca i32
%35 = alloca i32
%36 = alloca i32
%37 = alloca i64
%38 = alloca i32
%39 = alloca i32
%40 = alloca i32
%41 = alloca i32
%42 = alloca i32
%43 = alloca i32
%44 = alloca i32
%45 = alloca i32
%46 = alloca i32
%47 = alloca i32
%48 = alloca i32
%49 = alloca i32
%50 = alloca i32
%51 = alloca i32
%52 = alloca i32
%53 = alloca i32
%54 = alloca i32
store i32 %0, i32* %3
%55 = load i32, i32* %3
store i32 %55, i32* %6
%56 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %56, i32* %25
%57 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %57, i32* %32
%58 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %58, i32* %31
%59 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %59, i32* %14
store i32 0, i32* %54
store i32 0, i32* %39
store i32 -1, i32* %40
store i32 0, i32* %43
store i32 0, i32* %44
%60 = load i32, i32* %4
%61 = icmp ne i32 %60, 0
br i1 %61, label %62, label %64
62: ; preds = %1
%63 = load i32, i32* %4
store i32 %63, i32* %39
br label %71
64: ; preds = %1
%65 = load i32, i32* %19
%66 = icmp ne i32 %65, 0
br i1 %66, label %67, label %69
67: ; preds = %64
%68 = load i32, i32* %19
store i32 %68, i32* %39
br label %70
69: ; preds = %64
br label %70
70: ; preds = %69, %67
br label %71
71: ; preds = %70, %62
%72 = load i32, i32* %5
%73 = add nsw i32 %72, 1
store i32 %73, i32* %5
%74 = load i32, i32* %45
%75 = add nsw i32 %74, 12288
%76 = icmp ne i32 %75, 0
br i1 %76, label %77, label %84
77: ; preds = %71
%78 = load i32, i32* %46
%79 = add nsw i32 %78, 16384
%80 = icmp ne i32 %79, 0
br i1 %80, label %81, label %82
81: ; preds = %77
br label %83
82: ; preds = %77
br label %83
83: ; preds = %82, %81
br label %85
84: ; preds = %71
br label %85
85: ; preds = %84, %83
br label %86
86: ; preds = %85, %594
br label %87
87: ; preds = %86
%88 = load i32, i32* %6
store i32 %88, i32* %42
%89 = load i32, i32* %6
%90 = icmp eq i32 %89, 12292
br i1 %90, label %91, label %92
91: ; preds = %87
br label %223
92: ; preds = %87
%93 = load i32, i32* %6
%94 = icmp eq i32 %93, 16384
br i1 %94, label %95, label %96
95: ; preds = %92
br label %226
96: ; preds = %92
%97 = load i32, i32* %6
%98 = icmp eq i32 %97, 4096
br i1 %98, label %99, label %100
99: ; preds = %96
br label %227
100: ; preds = %96
%101 = load i32, i32* %6
%102 = icmp eq i32 %101, 20480
br i1 %102, label %103, label %104
103: ; preds = %100
br label %228
104: ; preds = %100
%105 = load i32, i32* %6
%106 = icmp eq i32 %105, 4099
br i1 %106, label %107, label %108
107: ; preds = %104
br label %229
108: ; preds = %104
%109 = load i32, i32* %6
%110 = icmp eq i32 %109, 4368
br i1 %110, label %111, label %112
111: ; preds = %108
br label %272
112: ; preds = %108
%113 = load i32, i32* %6
%114 = icmp eq i32 %113, 4369
br i1 %114, label %115, label %116
115: ; preds = %112
br label %273
116: ; preds = %112
%117 = load i32, i32* %6
%118 = icmp eq i32 %117, 4384
br i1 %118, label %119, label %120
119: ; preds = %116
br label %293
120: ; preds = %116
%121 = load i32, i32* %6
%122 = icmp eq i32 %121, 4385
br i1 %122, label %123, label %124
123: ; preds = %120
br label %294
124: ; preds = %120
%125 = load i32, i32* %6
%126 = icmp eq i32 %125, 4400
br i1 %126, label %127, label %128
127: ; preds = %124
br label %316
128: ; preds = %124
%129 = load i32, i32* %6
%130 = icmp eq i32 %129, 4401
br i1 %130, label %131, label %132
131: ; preds = %128
br label %317
132: ; preds = %128
%133 = load i32, i32* %6
%134 = icmp eq i32 %133, 4416
br i1 %134, label %135, label %136
135: ; preds = %132
br label %336
136: ; preds = %132
%137 = load i32, i32* %6
%138 = icmp eq i32 %137, 4417
br i1 %138, label %139, label %140
139: ; preds = %136
br label %337
140: ; preds = %136
%141 = load i32, i32* %6
%142 = icmp eq i32 %141, 4432
br i1 %142, label %143, label %144
143: ; preds = %140
br label %354
144: ; preds = %140
%145 = load i32, i32* %6
%146 = icmp eq i32 %145, 4433
br i1 %146, label %147, label %148
147: ; preds = %144
br label %355
148: ; preds = %144
%149 = load i32, i32* %6
%150 = icmp eq i32 %149, 4448
br i1 %150, label %151, label %152
151: ; preds = %148
br label %367
152: ; preds = %148
%153 = load i32, i32* %6
%154 = icmp eq i32 %153, 4449
br i1 %154, label %155, label %156
155: ; preds = %152
br label %368
156: ; preds = %152
%157 = load i32, i32* %6
%158 = icmp eq i32 %157, 4464
br i1 %158, label %159, label %160
159: ; preds = %156
br label %380
160: ; preds = %156
%161 = load i32, i32* %6
%162 = icmp eq i32 %161, 4465
br i1 %162, label %163, label %164
163: ; preds = %160
br label %381
164: ; preds = %160
%165 = load i32, i32* %6
%166 = icmp eq i32 %165, 4466
br i1 %166, label %167, label %168
167: ; preds = %164
br label %382
168: ; preds = %164
%169 = load i32, i32* %6
%170 = icmp eq i32 %169, 4467
br i1 %170, label %171, label %172
171: ; preds = %168
br label %383
172: ; preds = %168
%173 = load i32, i32* %6
%174 = icmp eq i32 %173, 4480
br i1 %174, label %175, label %176
175: ; preds = %172
br label %390
176: ; preds = %172
%177 = load i32, i32* %6
%178 = icmp eq i32 %177, 4481
br i1 %178, label %179, label %180
179: ; preds = %176
br label %391
180: ; preds = %176
%181 = load i32, i32* %6
%182 = icmp eq i32 %181, 4496
br i1 %182, label %183, label %184
183: ; preds = %180
br label %405
184: ; preds = %180
%185 = load i32, i32* %6
%186 = icmp eq i32 %185, 4497
br i1 %186, label %187, label %188
187: ; preds = %184
br label %406
188: ; preds = %184
%189 = load i32, i32* %6
%190 = icmp eq i32 %189, 4512
br i1 %190, label %191, label %192
191: ; preds = %188
br label %413
192: ; preds = %188
%193 = load i32, i32* %6
%194 = icmp eq i32 %193, 4513
br i1 %194, label %195, label %196
195: ; preds = %192
br label %414
196: ; preds = %192
%197 = load i32, i32* %6
%198 = icmp eq i32 %197, 4528
br i1 %198, label %199, label %200
199: ; preds = %196
br label %438
200: ; preds = %196
%201 = load i32, i32* %6
%202 = icmp eq i32 %201, 4529
br i1 %202, label %203, label %204
203: ; preds = %200
br label %439
204: ; preds = %200
%205 = load i32, i32* %6
%206 = icmp eq i32 %205, 4560
br i1 %206, label %207, label %208
207: ; preds = %204
br label %466
208: ; preds = %204
%209 = load i32, i32* %6
%210 = icmp eq i32 %209, 4561
br i1 %210, label %211, label %212
211: ; preds = %208
br label %467
212: ; preds = %208
%213 = load i32, i32* %6
%214 = icmp eq i32 %213, 4352
br i1 %214, label %215, label %216
215: ; preds = %212
br label %479
216: ; preds = %212
%217 = load i32, i32* %6
%218 = icmp eq i32 %217, 3
br i1 %218, label %219, label %220
219: ; preds = %216
br label %496
220: ; preds = %216
br label %523
221: ; No predecessors!
br i1 false, label %222, label %524
222: ; preds = %221
br label %223
223: ; preds = %222, %91
store i32 1, i32* %7
store i32 4096, i32* %6
%224 = load i32, i32* %20
%225 = add nsw i32 %224, 1
store i32 %225, i32* %20
br label %226
226: ; preds = %223, %95
br label %227
227: ; preds = %226, %99
br label %228
228: ; preds = %227, %103
br label %229
229: ; preds = %228, %107
store i32 0, i32* %8
%230 = load i32, i32* %39
%231 = icmp ne i32 %230, 0
br i1 %231, label %232, label %233
232: ; preds = %229
br label %234
233: ; preds = %229
br label %234
234: ; preds = %233, %232
%235 = load i32, i32* %9
%236 = add nsw i32 %235, 65280
%237 = icmp ne i32 %236, 768
br i1 %237, label %238, label %239
238: ; preds = %234
store i32 -1, i32* %40
br label %596
239: ; preds = %234
br label %240
240: ; preds = %239
store i32 4096, i32* %10
%241 = load i32, i32* %16
%242 = sext i32 %241 to i64
%243 = icmp eq i64 %242, 0
br i1 %243, label %244, label %258
244: ; preds = %240
%245 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %245, i32* %36
%246 = load i32, i32* %36
%247 = sext i32 %246 to i64
%248 = icmp eq i64 %247, 0
br i1 %248, label %249, label %250
249: ; preds = %244
store i32 -1, i32* %40
br label %596
250: ; preds = %244
br label %251
251: ; preds = %250
%252 = load i32, i32* %47
%253 = icmp ne i32 %252, 0
br i1 %253, label %255, label %254
254: ; preds = %251
store i32 -1, i32* %40
br label %596
255: ; preds = %251
br label %256
256: ; preds = %255
%257 = load i32, i32* %36
store i32 %257, i32* %16
br label %259
258: ; preds = %240
br label %259
259: ; preds = %258, %256
%260 = load i32, i32* %48
%261 = icmp ne i32 %260, 0
br i1 %261, label %263, label %262
262: ; preds = %259
store i32 -1, i32* %40
br label %596
263: ; preds = %259
br label %264
264: ; preds = %263
%265 = load i32, i32* %49
%266 = icmp ne i32 %265, 0
br i1 %266, label %268, label %267
267: ; preds = %264
store i32 -1, i32* %40
br label %596
268: ; preds = %264
br label %269
269: ; preds = %268
store i32 4368, i32* %6
%270 = load i32, i32* %21
%271 = add nsw i32 %270, 1
store i32 %271, i32* %21
store i32 0, i32* %11
br label %525
272: ; preds = %111
br label %273
273: ; preds = %272, %115
store i32 0, i32* %18
%274 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %274, i32* %40
%275 = load i32, i32* %54
%276 = icmp eq i32 %275, 0
br i1 %276, label %277, label %278
277: ; preds = %273
store i32 1, i32* %54
br label %279
278: ; preds = %273
br label %279
279: ; preds = %278, %277
%280 = load i32, i32* %40
%281 = icmp sle i32 %280, 0
br i1 %281, label %282, label %283
282: ; preds = %279
br label %596
283: ; preds = %279
br label %284
284: ; preds = %283
store i32 4384, i32* %6
store i32 0, i32* %11
%285 = load i32, i32* %12
%286 = sext i32 %285 to i64
%287 = load i32, i32* %13
%288 = sext i32 %287 to i64
%289 = icmp ne i64 %286, %288
br i1 %289, label %290, label %291
290: ; preds = %284
br label %292
291: ; preds = %284
br label %292
292: ; preds = %291, %290
br label %525
293: ; preds = %119
br label %294
294: ; preds = %293, %123
%295 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %295, i32* %40
%296 = load i32, i32* %54
%297 = icmp eq i32 %296, 1
br i1 %297, label %298, label %299
298: ; preds = %294
store i32 2, i32* %54
br label %305
299: ; preds = %294
%300 = load i32, i32* %54
%301 = icmp eq i32 %300, 4
br i1 %301, label %302, label %303
302: ; preds = %299
store i32 5, i32* %54
br label %304
303: ; preds = %299
br label %304
304: ; preds = %303, %302
br label %305
305: ; preds = %304, %298
%306 = load i32, i32* %40
%307 = icmp sle i32 %306, 0
br i1 %307, label %308, label %309
308: ; preds = %305
br label %596
309: ; preds = %305
br label %310
310: ; preds = %309
%311 = load i32, i32* %14
%312 = icmp ne i32 %311, 0
br i1 %312, label %313, label %314
313: ; preds = %310
store i32 4560, i32* %6
br label %315
314: ; preds = %310
store i32 4400, i32* %6
br label %315
315: ; preds = %314, %313
store i32 0, i32* %11
br label %525
316: ; preds = %127
br label %317
317: ; preds = %316, %131
%318 = load i32, i32* %31
%319 = sext i32 %318 to i64
%320 = add i64 %319, 256
%321 = icmp ne i64 %320, 0
br i1 %321, label %322, label %323
322: ; preds = %317
store i32 1, i32* %43
br label %335
323: ; preds = %317
%324 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %324, i32* %40
%325 = load i32, i32* %54
%326 = icmp eq i32 %325, 2
br i1 %326, label %327, label %328
327: ; preds = %323
store i32 3, i32* %54
br label %329
328: ; preds = %323
br label %329
329: ; preds = %328, %327
%330 = load i32, i32* %40
%331 = icmp sle i32 %330, 0
br i1 %331, label %332, label %333
332: ; preds = %329
br label %596
333: ; preds = %329
br label %334
334: ; preds = %333
br label %335
335: ; preds = %334, %322
store i32 4416, i32* %6
store i32 0, i32* %11
br label %525
336: ; preds = %135
br label %337
337: ; preds = %336, %139
%338 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %338, i32* %40
%339 = load i32, i32* %54
%340 = icmp eq i32 %339, 3
br i1 %340, label %341, label %342
341: ; preds = %337
store i32 4, i32* %54
br label %343
342: ; preds = %337
br label %343
343: ; preds = %342, %341
%344 = load i32, i32* %40
%345 = icmp sle i32 %344, 0
br i1 %345, label %346, label %347
346: ; preds = %343
br label %596
347: ; preds = %343
br label %348
348: ; preds = %347
store i32 4432, i32* %6
store i32 0, i32* %11
%349 = load i32, i32* %50
%350 = icmp ne i32 %349, 0
br i1 %350, label %352, label %351
351: ; preds = %348
store i32 -1, i32* %40
br label %596
352: ; preds = %348
br label %353
353: ; preds = %352
br label %525
354: ; preds = %143
br label %355
355: ; preds = %354, %147
%356 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %356, i32* %40
%357 = load i32, i32* %54
%358 = icmp eq i32 %357, 5
br i1 %358, label %359, label %360
359: ; preds = %355
br label %605
360: ; preds = %355
br label %361
361: ; preds = %360
%362 = load i32, i32* %40
%363 = icmp sle i32 %362, 0
br i1 %363, label %364, label %365
364: ; preds = %361
br label %596
365: ; preds = %361
br label %366
366: ; preds = %365
store i32 4448, i32* %6
store i32 0, i32* %11
br label %525
367: ; preds = %151
br label %368
368: ; preds = %367, %155
%369 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %369, i32* %40
%370 = load i32, i32* %40
%371 = icmp sle i32 %370, 0
br i1 %371, label %372, label %373
372: ; preds = %368
br label %596
373: ; preds = %368
br label %374
374: ; preds = %373
%375 = load i32, i32* %27
%376 = icmp ne i32 %375, 0
br i1 %376, label %377, label %378
377: ; preds = %374
store i32 4464, i32* %6
br label %379
378: ; preds = %374
store i32 4480, i32* %6
br label %379
379: ; preds = %378, %377
store i32 0, i32* %11
br label %525
380: ; preds = %159
br label %381
381: ; preds = %380, %163
br label %382
382: ; preds = %381, %167
br label %383
383: ; preds = %382, %171
%384 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %384, i32* %40
%385 = load i32, i32* %40
%386 = icmp sle i32 %385, 0
br i1 %386, label %387, label %388
387: ; preds = %383
br label %596
388: ; preds = %383
br label %389
389: ; preds = %388
store i32 4480, i32* %6
store i32 0, i32* %11
br label %525
390: ; preds = %175
br label %391
391: ; preds = %390, %179
%392 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %392, i32* %40
%393 = load i32, i32* %40
%394 = icmp sle i32 %393, 0
br i1 %394, label %395, label %396
395: ; preds = %391
br label %596
396: ; preds = %391
br label %397
397: ; preds = %396
%398 = load i32, i32* %31
%399 = sext i32 %398 to i64
store i64 %399, i64* %37
%400 = load i32, i32* %27
%401 = icmp eq i32 %400, 1
br i1 %401, label %402, label %403
402: ; preds = %397
store i32 4496, i32* %6
br label %404
403: ; preds = %397
store i32 4512, i32* %6
store i32 0, i32* %24
br label %404
404: ; preds = %403, %402
store i32 0, i32* %11
br label %525
405: ; preds = %183
br label %406
406: ; preds = %405, %187
%407 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %407, i32* %40
%408 = load i32, i32* %40
%409 = icmp sle i32 %408, 0
br i1 %409, label %410, label %411
410: ; preds = %406
br label %596
411: ; preds = %406
br label %412
412: ; preds = %411
store i32 4512, i32* %6
store i32 0, i32* %11
store i32 0, i32* %24
br label %525
413: ; preds = %191
br label %414
414: ; preds = %413, %195
%415 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %415, i32* %40
%416 = load i32, i32* %40
%417 = icmp sle i32 %416, 0
br i1 %417, label %418, label %419
418: ; preds = %414
br label %596
419: ; preds = %414
br label %420
420: ; preds = %419
store i32 4528, i32* %6
store i32 0, i32* %11
%421 = load i32, i32* %30
store i32 %421, i32* %34
%422 = load i32, i32* %28
%423 = icmp eq i32 %422, 0
br i1 %423, label %424, label %425
424: ; preds = %420
store i32 0, i32* %35
br label %427
425: ; preds = %420
%426 = load i32, i32* %33
store i32 %426, i32* %35
br label %427
427: ; preds = %425, %424
%428 = load i32, i32* %51
%429 = icmp ne i32 %428, 0
br i1 %429, label %431, label %430
430: ; preds = %427
store i32 -1, i32* %40
br label %596
431: ; preds = %427
br label %432
432: ; preds = %431
%433 = load i32, i32* %52
%434 = icmp ne i32 %433, 0
br i1 %434, label %436, label %435
435: ; preds = %432
store i32 -1, i32* %40
br label %596
436: ; preds = %432
br label %437
437: ; preds = %436
br label %525
438: ; preds = %199
br label %439
439: ; preds = %438, %203
%440 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %440, i32* %40
%441 = load i32, i32* %40
%442 = icmp sle i32 %441, 0
br i1 %442, label %443, label %444
443: ; preds = %439
br label %596
444: ; preds = %439
br label %445
445: ; preds = %444
store i32 4352, i32* %6
%446 = load i32, i32* %25
%447 = sext i32 %446 to i64
%448 = add nsw i64 %447, -5
%449 = trunc i64 %448 to i32
store i32 %449, i32* %25
%450 = load i32, i32* %14
%451 = icmp ne i32 %450, 0
br i1 %451, label %452, label %464
452: ; preds = %445
store i32 3, i32* %32
%453 = load i32, i32* %25
%454 = sext i32 %453 to i64
%455 = add nsw i64 %454, 2
%456 = icmp ne i64 %455, 0
br i1 %456, label %457, label %462
457: ; preds = %452
store i32 3, i32* %6
%458 = load i32, i32* %25
%459 = sext i32 %458 to i64
%460 = mul nsw i64 %459, 4
%461 = trunc i64 %460 to i32
store i32 %461, i32* %25
store i32 0, i32* %26
br label %463
462: ; preds = %452
br label %463
463: ; preds = %462, %457
br label %465
464: ; preds = %445
store i32 4560, i32* %32
br label %465
465: ; preds = %464, %463
store i32 0, i32* %11
br label %525
466: ; preds = %207
br label %467
467: ; preds = %466, %211
%468 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %468, i32* %40
%469 = load i32, i32* %40
%470 = icmp sle i32 %469, 0
br i1 %470, label %471, label %472
471: ; preds = %467
br label %596
472: ; preds = %467
br label %473
473: ; preds = %472
%474 = load i32, i32* %14
%475 = icmp ne i32 %474, 0
br i1 %475, label %476, label %477
476: ; preds = %473
store i32 4512, i32* %6
br label %478
477: ; preds = %473
store i32 3, i32* %6
br label %478
478: ; preds = %477, %476
store i32 0, i32* %11
br label %525
479: ; preds = %215
%480 = load i32, i32* %38
%481 = sext i32 %480 to i64
%482 = icmp sgt i64 %481, 0
br i1 %482, label %483, label %493
483: ; preds = %479
store i32 2, i32* %15
%484 = load i32, i32* %53
%485 = sext i32 %484 to i64
%486 = trunc i64 %485 to i32
store i32 %486, i32* %38
%487 = load i32, i32* %38
%488 = sext i32 %487 to i64
%489 = icmp sle i64 %488, 0
br i1 %489, label %490, label %491
490: ; preds = %483
store i32 -1, i32* %40
br label %596
491: ; preds = %483
br label %492
492: ; preds = %491
store i32 1, i32* %15
br label %494
493: ; preds = %479
br label %494
494: ; preds = %493, %492
%495 = load i32, i32* %32
store i32 %495, i32* %6
br label %525
496: ; preds = %219
%497 = load i32, i32* %16
%498 = icmp ne i32 %497, 0
br i1 %498, label %499, label %500
499: ; preds = %496
store i32 0, i32* %16
br label %501
500: ; preds = %496
br label %501
501: ; preds = %500, %499
%502 = load i32, i32* %25
%503 = sext i32 %502 to i64
%504 = add nsw i64 %503, 4
%505 = icmp ne i64 %504, 0
br i1 %505, label %507, label %506
506: ; preds = %501
br label %508
507: ; preds = %501
br label %508
508: ; preds = %507, %506
store i32 0, i32* %11
store i32 0, i32* %7
%509 = load i32, i32* %14
%510 = icmp ne i32 %509, 0
br i1 %510, label %511, label %514
511: ; preds = %508
%512 = load i32, i32* %22
%513 = add nsw i32 %512, 1
store i32 %513, i32* %22
br label %515
514: ; preds = %508
br label %515
515: ; preds = %514, %511
store i32 1, i32* %40
%516 = load i32, i32* %23
%517 = add nsw i32 %516, 1
store i32 %517, i32* %23
%518 = load i32, i32* %39
%519 = icmp ne i32 %518, 0
br i1 %519, label %520, label %521
520: ; preds = %515
br label %522
521: ; preds = %515
br label %522
522: ; preds = %521, %520
br label %596
523: ; preds = %220
store i32 -1, i32* %40
br label %596
524: ; preds = %221
br label %525
525: ; preds = %524, %494, %478, %465, %437, %412, %404, %389, %379, %366, %353, %335, %315, %292, %269
br label %526
526: ; preds = %525
br label %527
527: ; preds = %526
br label %528
528: ; preds = %527
br label %529
529: ; preds = %528
br label %530
530: ; preds = %529
br label %531
531: ; preds = %530
br label %532
532: ; preds = %531
br label %533
533: ; preds = %532
br label %534
534: ; preds = %533
br label %535
535: ; preds = %534
br label %536
536: ; preds = %535
br label %537
537: ; preds = %536
br label %538
538: ; preds = %537
br label %539
539: ; preds = %538
br label %540
540: ; preds = %539
br label %541
541: ; preds = %540
br label %542
542: ; preds = %541
br label %543
543: ; preds = %542
br label %544
544: ; preds = %543
br label %545
545: ; preds = %544
br label %546
546: ; preds = %545
br label %547
547: ; preds = %546
br label %548
548: ; preds = %547
br label %549
549: ; preds = %548
br label %550
550: ; preds = %549
br label %551
551: ; preds = %550
br label %552
552: ; preds = %551
br label %553
553: ; preds = %552
br label %554
554: ; preds = %553
br label %555
555: ; preds = %554
br label %556
556: ; preds = %555
br label %557
557: ; preds = %556
br label %558
558: ; preds = %557
br label %559
559: ; preds = %558
%560 = load i32, i32* %29
%561 = icmp ne i32 %560, 0
br i1 %561, label %593, label %562
562: ; preds = %559
%563 = load i32, i32* %43
%564 = icmp ne i32 %563, 0
br i1 %564, label %591, label %565
565: ; preds = %562
%566 = load i32, i32* %17
%567 = icmp ne i32 %566, 0
br i1 %567, label %568, label %575
568: ; preds = %565
%569 = call i32 (...) @__VERIFIER_nondet_int()
store i32 %569, i32* %40
%570 = load i32, i32* %40
%571 = icmp sle i32 %570, 0
br i1 %571, label %572, label %573
572: ; preds = %568
br label %596
573: ; preds = %568
br label %574
574: ; preds = %573
br label %576
575: ; preds = %565
br label %576
576: ; preds = %575, %574
%577 = load i32, i32* %39
%578 = icmp ne i32 %577, 0
br i1 %578, label %579, label %589
579: ; preds = %576
%580 = load i32, i32* %6
%581 = load i32, i32* %42
%582 = icmp ne i32 %580, %581
br i1 %582, label %583, label %587
583: ; preds = %579
%584 = load i32, i32* %6
store i32 %584, i32* %41
%585 = load i32, i32* %42
store i32 %585, i32* %6
%586 = load i32, i32* %41
store i32 %586, i32* %6
br label %588
587: ; preds = %579
br label %588
588: ; preds = %587, %583
br label %590
589: ; preds = %576
br label %590
590: ; preds = %589, %588
br label %592
591: ; preds = %562
br label %592
592: ; preds = %591, %590
br label %594
593: ; preds = %559
br label %594
594: ; preds = %593, %592
store i32 0, i32* %43
br label %86
595: ; No predecessors!
br label %596
596: ; preds = %595, %572, %523, %522, %490, %471, %443, %435, %430, %418, %410, %395, %387, %372, %364, %351, %346, %332, %308, %282, %267, %262, %254, %249, %238
%597 = load i32, i32* %5
%598 = sub nsw i32 %597, 1
store i32 %598, i32* %5
%599 = load i32, i32* %39
%600 = icmp ne i32 %599, 0
br i1 %600, label %601, label %602
601: ; preds = %596
br label %603
602: ; preds = %596
br label %603
603: ; preds = %602, %601
%604 = load i32, i32* %40
store i32 %604, i32* %2
br label %607
605: ; preds = %359
%606 = call i32 (...) @__VERIFIER_error()
store i32 -1, i32* %2
br label %607
607: ; preds = %605, %603
%608 = load i32, i32* %2
ret i32 %608
}

LLVM IR (-O2):
define i32 @ssl3_connect(i32 %0) {
%2 = tail call i32 (...) @__VERIFIER_nondet_int()
%3 = tail call i32 (...) @__VERIFIER_nondet_int()
%4 = tail call i32 (...) @__VERIFIER_nondet_int()
%5 = tail call i32 (...) @__VERIFIER_nondet_int()
%6 = icmp eq i32 %4, -256
%7 = icmp eq i32 %5, 0
%8 = select i1 %7, i32 4400, i32 4560
%9 = select i1 %7, i32 3, i32 4512
br label %10
10: ; preds = %86, %1
%11 = phi i32 [ %3, %1 ], [ %87, %86 ]
%12 = phi i32 [ %2, %1 ], [ %88, %86 ]
%13 = phi i32 [ %0, %1 ], [ %89, %86 ]
%14 = phi i32 [ 0, %1 ], [ %90, %86 ]
switch i32 %13, label %15 [
i32 12292, label %26
i32 20480, label %26
i32 16384, label %26
i32 4099, label %26
i32 4096, label %26
]
15: ; preds = %10
%16 = and i32 %13, -2
%17 = add i32 %16, -4368
%18 = tail call i32 @llvm.fshl.i32(i32 %17, i32 %17, i32 28)
switch i32 %18, label %19 [
i32 0, label %28
i32 1, label %34
i32 2, label %42
i32 3, label %48
i32 4, label %52
i32 5, label %57
]
19: ; preds = %15
%20 = and i32 %13, -4
%21 = icmp eq i32 %20, 4464
br i1 %21, label %60, label %22
22: ; preds = %19
%23 = add i32 %16, -4480
%24 = tail call i32 @llvm.fshl.i32(i32 %23, i32 %23, i32 28)
switch i32 %24, label %25 [
i32 0, label %63
i32 1, label %66
i32 2, label %69
i32 3, label %73
i32 5, label %83
]
25: ; preds = %22
switch i32 %13, label %93 [
i32 4352, label %86
i32 3, label %95
]
26: ; preds = %10, %10, %10, %10, %10
%27 = tail call i32 (...) @__VERIFIER_nondet_int()
br label %95
28: ; preds = %15
%29 = tail call i32 (...) @__VERIFIER_nondet_int()
%30 = icmp slt i32 %29, 1
br i1 %30, label %93, label %31
31: ; preds = %28
%32 = icmp eq i32 %14, 0
%33 = select i1 %32, i32 1, i32 %14
br label %86
34: ; preds = %15
%35 = tail call i32 (...) @__VERIFIER_nondet_int()
%36 = icmp slt i32 %35, 1
br i1 %36, label %93, label %37
37: ; preds = %34
%38 = icmp eq i32 %14, 1
%39 = icmp eq i32 %14, 4
%40 = select i1 %39, i32 5, i32 %14
%41 = select i1 %38, i32 2, i32 %40
br label %86
42: ; preds = %15
br i1 %6, label %43, label %86
43: ; preds = %42
%44 = tail call i32 (...) @__VERIFIER_nondet_int()
%45 = icmp eq i32 %14, 2
%46 = select i1 %45, i32 3, i32 %14
%47 = icmp slt i32 %44, 1
br i1 %47, label %93, label %86
48: ; preds = %15
%49 = tail call i32 (...) @__VERIFIER_nondet_int()
%50 = icmp slt i32 %49, 1
%51 = select i1 %50, i32 %49, i32 -1
br label %95
52: ; preds = %15
%53 = tail call i32 (...) @__VERIFIER_nondet_int()
%54 = icmp eq i32 %14, 5
br i1 %54, label %91, label %55
55: ; preds = %52
%56 = icmp slt i32 %53, 1
br i1 %56, label %93, label %86
57: ; preds = %15
%58 = tail call i32 (...) @__VERIFIER_nondet_int()
%59 = icmp slt i32 %58, 1
br i1 %59, label %93, label %86
60: ; preds = %19
%61 = tail call i32 (...) @__VERIFIER_nondet_int()
%62 = icmp slt i32 %61, 1
br i1 %62, label %93, label %86
63: ; preds = %22
%64 = tail call i32 (...) @__VERIFIER_nondet_int()
%65 = icmp slt i32 %64, 1
br i1 %65, label %93, label %86
66: ; preds = %22
%67 = tail call i32 (...) @__VERIFIER_nondet_int()
%68 = icmp slt i32 %67, 1
br i1 %68, label %93, label %86
69: ; preds = %22
%70 = tail call i32 (...) @__VERIFIER_nondet_int()
%71 = icmp slt i32 %70, 1
%72 = select i1 %71, i32 %70, i32 -1
br label %95
73: ; preds = %22
%74 = tail call i32 (...) @__VERIFIER_nondet_int()
%75 = icmp slt i32 %74, 1
br i1 %75, label %93, label %76
76: ; preds = %73
%77 = add i32 %12, -5
br i1 %7, label %86, label %78
78: ; preds = %76
%79 = icmp eq i32 %77, -2
%80 = shl i32 %77, 2
%81 = select i1 %79, i32 -2, i32 %80
%82 = select i1 %79, i32 4352, i32 3
br label %86
83: ; preds = %22
%84 = tail call i32 (...) @__VERIFIER_nondet_int()
%85 = icmp slt i32 %84, 1
br i1 %85, label %93, label %86
86: ; preds = %83, %78, %31, %37, %42, %43, %55, %57, %60, %63, %66, %76, %25
%87 = phi i32 [ %11, %31 ], [ %11, %37 ], [ %11, %42 ], [ %11, %43 ], [ %11, %55 ], [ %11, %57 ], [ %11, %60 ], [ %11, %63 ], [ %11, %66 ], [ 3, %78 ], [ 4560, %76 ], [ %11, %25 ], [ %11, %83 ]
%88 = phi i32 [ %12, %31 ], [ %12, %37 ], [ %12, %42 ], [ %12, %43 ], [ %12, %55 ], [ %12, %57 ], [ %12, %60 ], [ %12, %63 ], [ %12, %66 ], [ %81, %78 ], [ %77, %76 ], [ %12, %25 ], [ %12, %83 ]
%89 = phi i32 [ 4384, %31 ], [ %8, %37 ], [ 4416, %42 ], [ 4416, %43 ], [ 4448, %55 ], [ 4480, %57 ], [ 4480, %60 ], [ 4512, %63 ], [ 4512, %66 ], [ %82, %78 ], [ 4352, %76 ], [ %11, %25 ], [ %9, %83 ]
%90 = phi i32 [ %33, %31 ], [ %41, %37 ], [ %14, %42 ], [ %46, %43 ], [ %14, %55 ], [ %14, %57 ], [ %14, %60 ], [ %14, %63 ], [ %14, %66 ], [ %14, %78 ], [ %14, %76 ], [ %14, %25 ], [ %14, %83 ]
br label %10
91: ; preds = %52
%92 = tail call i32 (...) @__VERIFIER_error()
br label %95
93: ; preds = %25, %83, %73, %66, %63, %60, %57, %55, %43, %34, %28
%94 = phi i32 [ -1, %25 ], [ %84, %83 ], [ %74, %73 ], [ %67, %66 ], [ %64, %63 ], [ %61, %60 ], [ %58, %57 ], [ %53, %55 ], [ %44, %43 ], [ %35, %34 ], [ %29, %28 ]
br label %95
95: ; preds = %25, %93, %69, %48, %26, %91
%96 = phi i32 [ -1, %91 ], [ -1, %26 ], [ %51, %48 ], [ %72, %69 ], [ %94, %93 ], [ 1, %25 ]
ret i32 %96
}