
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

int Curl_ossl_check_cxn(connectdata *conn)

{
  int iVar1;
  ssize_t sVar2;
  int *piVar3;
  int in_GS_OFFSET;
  char buf;
  int local_10;
  undefined4 uStack_c;
  
  uStack_c = 0x75b27;
  local_10 = *(int *)(in_GS_OFFSET + 0x14);
  sVar2 = recv(conn->sock[0],&buf,1,2);
  if ((sVar2 != 0) && (sVar2 != 1)) {
    if (sVar2 == -1) {
      piVar3 = __errno_location();
      iVar1 = *piVar3;
      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {
        sVar2 = 1;
      }
      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {
        sVar2 = 0;
      }
    }
    else {
      sVar2 = -1;
    }
  }
  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return sVar2;
}



ssize_t FUN_00075b20(void)

{
  int iVar1;
  ssize_t sVar2;
  int *piVar3;
  int in_GS_OFFSET;
  int unaff_retaddr;
  undefined1 local_15;
  int local_14;
  undefined4 uStack_c;
  
  uStack_c = 0x75b27;
  entry();
  local_14 = *(int *)(in_GS_OFFSET + 0x14);
  sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);
  if ((sVar2 != 0) && (sVar2 != 1)) {
    if (sVar2 == -1) {
      piVar3 = __errno_location();
      iVar1 = *piVar3;
      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {
        sVar2 = 1;
      }
      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {
        sVar2 = 0;
      }
    }
    else {
      sVar2 = -1;
    }
  }
  if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0007c1a0();
  }
  return sVar2;
}


PUSH ESI
PUSH EBX
CALL 0x00019ed0
ADD EBX,0x3acb9
SUB ESP,0x14
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xc],EAX
XOR EAX,EAX
PUSH 0x2
PUSH 0x1
LEA EAX,[ESP + 0x13]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x2c]
PUSH dword ptr [EAX + 0x190]
CALL 0x00019950
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00075b6c
CMP EAX,0x1
JZ 0x00075b6c
CMP EAX,-0x1
JZ 0x00075b88
MOV ESI,0xffffffff
MOV EDX,dword ptr [ESP + 0xc]
XOR EDX,dword ptr GS:[0x14]
MOV EAX,ESI
JNZ 0x00075bbf
ADD ESP,0x14
POP EBX
POP ESI
RET
CALL 0x00018bd0
MOV ECX,dword ptr [EAX]
CMP ECX,0x73
JZ 0x00075bb8
CMP ECX,0xb
JZ 0x00075bb8
SUB ECX,0x64
CMP ECX,0xa
JA 0x00075b6c
MOV EAX,0x59d
SHR EAX,CL
TEST AL,0x1
MOV EAX,0x0
CMOVNZ ESI,EAX
JMP 0x00075b6c
MOV ESI,0x1
JMP 0x00075b6c
CALL 0x0007c1a0
(translation_unit "ssize_t FUN_00075b20(void)\n\n{\n  int iVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  undefined1 local_15;\n  int local_14;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x75b27;\n  entry();\n  local_14 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);\n  if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }\n  if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007c1a0();\n  }\n  return sVar2;\n}\n\n" (function_definition "ssize_t FUN_00075b20(void)\n\n{\n  int iVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  undefined1 local_15;\n  int local_14;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x75b27;\n  entry();\n  local_14 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);\n  if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }\n  if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007c1a0();\n  }\n  return sVar2;\n}" primitive_type (function_declarator "FUN_00075b20(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  undefined1 local_15;\n  int local_14;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x75b27;\n  entry();\n  local_14 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);\n  if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }\n  if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007c1a0();\n  }\n  return sVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "ssize_t sVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int unaff_retaddr;" primitive_type identifier ;) (declaration "undefined1 local_15;" type_identifier identifier ;) (declaration "int local_14;" primitive_type identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "uStack_c = 0x75b27;" (assignment_expression "uStack_c = 0x75b27" identifier = number_literal) ;) (expression_statement "entry();" (call_expression "entry()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_14 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_14 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);" (assignment_expression "sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2)" identifier = (call_expression "recv(*(int *)(unaff_retaddr + 400),&local_15,1,2)" identifier (argument_list "(*(int *)(unaff_retaddr + 400),&local_15,1,2)" ( (pointer_expression "*(int *)(unaff_retaddr + 400)" * (cast_expression "(int *)(unaff_retaddr + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 400)" ( (binary_expression "unaff_retaddr + 400" identifier + number_literal) )))) , (pointer_expression "&local_15" & identifier) , number_literal , number_literal )))) ;) (if_statement "if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }" if (parenthesized_expression "((sVar2 != 0) && (sVar2 != 1))" ( (binary_expression "(sVar2 != 0) && (sVar2 != 1)" (parenthesized_expression "(sVar2 != 0)" ( (binary_expression "sVar2 != 0" identifier != number_literal) )) && (parenthesized_expression "(sVar2 != 1)" ( (binary_expression "sVar2 != 1" identifier != number_literal) ))) )) (compound_statement "{\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }" { (if_statement "if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }" if (parenthesized_expression "(sVar2 == -1)" ( (binary_expression "sVar2 == -1" identifier == number_literal) )) (compound_statement "{\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }" { (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = *piVar3;" (assignment_expression "iVar1 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }" if (parenthesized_expression "((iVar1 == 0x73) || (iVar1 == 0xb))" ( (binary_expression "(iVar1 == 0x73) || (iVar1 == 0xb)" (parenthesized_expression "(iVar1 == 0x73)" ( (binary_expression "iVar1 == 0x73" identifier == number_literal) )) || (parenthesized_expression "(iVar1 == 0xb)" ( (binary_expression "iVar1 == 0xb" identifier == number_literal) ))) )) (compound_statement "{\n        sVar2 = 1;\n      }" { (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) }) (else_clause "else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }" else (if_statement "if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }" if (parenthesized_expression "((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0))" ( (binary_expression "(iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)" (parenthesized_expression "(iVar1 - 100U < 0xb)" ( (binary_expression "iVar1 - 100U < 0xb" (binary_expression "iVar1 - 100U" identifier - number_literal) < number_literal) )) && (parenthesized_expression "((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)" ( (binary_expression "(0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0" (parenthesized_expression "(0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1)" ( (binary_expression "0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1" (binary_expression "0x59dU >> ((byte)(iVar1 - 100U) & 0x1f)" number_literal >> (parenthesized_expression "((byte)(iVar1 - 100U) & 0x1f)" ( (binary_expression "(byte)(iVar1 - 100U) & 0x1f" (call_expression "(byte)(iVar1 - 100U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(iVar1 - 100U)" ( (binary_expression "iVar1 - 100U" identifier - number_literal) ))) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        sVar2 = 0;\n      }" { (expression_statement "sVar2 = 0;" (assignment_expression "sVar2 = 0" identifier = number_literal) ;) })))) }) (else_clause "else {\n      sVar2 = -1;\n    }" else (compound_statement "{\n      sVar2 = -1;\n    }" { (expression_statement "sVar2 = -1;" (assignment_expression "sVar2 = -1" identifier = number_literal) ;) }))) })) (if_statement "if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007c1a0();\n  }" if (parenthesized_expression "(local_14 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_14 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0007c1a0();\n  }" { comment (expression_statement "FUN_0007c1a0();" (call_expression "FUN_0007c1a0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return sVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nint Curl_ossl_check_cxn(connectdata *conn)\n\n{\n  int iVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  int in_GS_OFFSET;\n  char buf;\n  int local_10;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x75b27;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar2 = recv(conn->sock[0],&buf,1,2);\n  if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }\n  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return sVar2;\n}\n\n" comment comment comment (function_definition "int Curl_ossl_check_cxn(connectdata *conn)\n\n{\n  int iVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  int in_GS_OFFSET;\n  char buf;\n  int local_10;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x75b27;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar2 = recv(conn->sock[0],&buf,1,2);\n  if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }\n  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return sVar2;\n}" primitive_type (function_declarator "Curl_ossl_check_cxn(connectdata *conn)" identifier (parameter_list "(connectdata *conn)" ( (parameter_declaration "connectdata *conn" type_identifier (pointer_declarator "*conn" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  int in_GS_OFFSET;\n  char buf;\n  int local_10;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x75b27;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar2 = recv(conn->sock[0],&buf,1,2);\n  if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }\n  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return sVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "ssize_t sVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char buf;" primitive_type identifier ;) (declaration "int local_10;" primitive_type identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "uStack_c = 0x75b27;" (assignment_expression "uStack_c = 0x75b27" identifier = number_literal) ;) (expression_statement "local_10 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_10 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "sVar2 = recv(conn->sock[0],&buf,1,2);" (assignment_expression "sVar2 = recv(conn->sock[0],&buf,1,2)" identifier = (call_expression "recv(conn->sock[0],&buf,1,2)" identifier (argument_list "(conn->sock[0],&buf,1,2)" ( (subscript_expression "conn->sock[0]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) , (pointer_expression "&buf" & identifier) , number_literal , number_literal )))) ;) (if_statement "if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }" if (parenthesized_expression "((sVar2 != 0) && (sVar2 != 1))" ( (binary_expression "(sVar2 != 0) && (sVar2 != 1)" (parenthesized_expression "(sVar2 != 0)" ( (binary_expression "sVar2 != 0" identifier != number_literal) )) && (parenthesized_expression "(sVar2 != 1)" ( (binary_expression "sVar2 != 1" identifier != number_literal) ))) )) (compound_statement "{\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }" { (if_statement "if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }" if (parenthesized_expression "(sVar2 == -1)" ( (binary_expression "sVar2 == -1" identifier == number_literal) )) (compound_statement "{\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }" { (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = *piVar3;" (assignment_expression "iVar1 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }" if (parenthesized_expression "((iVar1 == 0x73) || (iVar1 == 0xb))" ( (binary_expression "(iVar1 == 0x73) || (iVar1 == 0xb)" (parenthesized_expression "(iVar1 == 0x73)" ( (binary_expression "iVar1 == 0x73" identifier == number_literal) )) || (parenthesized_expression "(iVar1 == 0xb)" ( (binary_expression "iVar1 == 0xb" identifier == number_literal) ))) )) (compound_statement "{\n        sVar2 = 1;\n      }" { (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) }) (else_clause "else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }" else (if_statement "if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }" if (parenthesized_expression "((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0))" ( (binary_expression "(iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)" (parenthesized_expression "(iVar1 - 100U < 0xb)" ( (binary_expression "iVar1 - 100U < 0xb" (binary_expression "iVar1 - 100U" identifier - number_literal) < number_literal) )) && (parenthesized_expression "((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)" ( (binary_expression "(0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0" (parenthesized_expression "(0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1)" ( (binary_expression "0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1" (binary_expression "0x59dU >> ((byte)(iVar1 - 100U) & 0x1f)" number_literal >> (parenthesized_expression "((byte)(iVar1 - 100U) & 0x1f)" ( (binary_expression "(byte)(iVar1 - 100U) & 0x1f" (call_expression "(byte)(iVar1 - 100U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(iVar1 - 100U)" ( (binary_expression "iVar1 - 100U" identifier - number_literal) ))) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        sVar2 = 0;\n      }" { (expression_statement "sVar2 = 0;" (assignment_expression "sVar2 = 0" identifier = number_literal) ;) })))) }) (else_clause "else {\n      sVar2 = -1;\n    }" else (compound_statement "{\n      sVar2 = -1;\n    }" { (expression_statement "sVar2 = -1;" (assignment_expression "sVar2 = -1" identifier = number_literal) ;) }))) })) (if_statement "if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(local_10 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_10 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return sVar2;" return identifier ;) })))
(translation_unit "ssize_t FUN_00075b20(void)\n\n{\n  int iVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  undefined1 local_15;\n  int local_14;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x75b27;\n  entry();\n  local_14 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);\n  if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }\n  if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007c1a0();\n  }\n  return sVar2;\n}\n\n" (function_definition "ssize_t FUN_00075b20(void)\n\n{\n  int iVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  undefined1 local_15;\n  int local_14;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x75b27;\n  entry();\n  local_14 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);\n  if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }\n  if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007c1a0();\n  }\n  return sVar2;\n}" primitive_type (function_declarator "FUN_00075b20(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  undefined1 local_15;\n  int local_14;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x75b27;\n  entry();\n  local_14 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);\n  if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }\n  if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007c1a0();\n  }\n  return sVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "ssize_t sVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int unaff_retaddr;" primitive_type identifier ;) (declaration "undefined1 local_15;" type_identifier identifier ;) (declaration "int local_14;" primitive_type identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "uStack_c = 0x75b27;" (assignment_expression "uStack_c = 0x75b27" identifier = number_literal) ;) (expression_statement "entry();" (call_expression "entry()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_14 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_14 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);" (assignment_expression "sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2)" identifier = (call_expression "recv(*(int *)(unaff_retaddr + 400),&local_15,1,2)" identifier (argument_list "(*(int *)(unaff_retaddr + 400),&local_15,1,2)" ( (pointer_expression "*(int *)(unaff_retaddr + 400)" * (cast_expression "(int *)(unaff_retaddr + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 400)" ( (binary_expression "unaff_retaddr + 400" identifier + number_literal) )))) , (pointer_expression "&local_15" & identifier) , number_literal , number_literal )))) ;) (if_statement "if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }" if (parenthesized_expression "((sVar2 != 0) && (sVar2 != 1))" ( (binary_expression "(sVar2 != 0) && (sVar2 != 1)" (parenthesized_expression "(sVar2 != 0)" ( (binary_expression "sVar2 != 0" identifier != number_literal) )) && (parenthesized_expression "(sVar2 != 1)" ( (binary_expression "sVar2 != 1" identifier != number_literal) ))) )) (compound_statement "{\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }" { (if_statement "if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }" if (parenthesized_expression "(sVar2 == -1)" ( (binary_expression "sVar2 == -1" identifier == number_literal) )) (compound_statement "{\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }" { (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = *piVar3;" (assignment_expression "iVar1 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }" if (parenthesized_expression "((iVar1 == 0x73) || (iVar1 == 0xb))" ( (binary_expression "(iVar1 == 0x73) || (iVar1 == 0xb)" (parenthesized_expression "(iVar1 == 0x73)" ( (binary_expression "iVar1 == 0x73" identifier == number_literal) )) || (parenthesized_expression "(iVar1 == 0xb)" ( (binary_expression "iVar1 == 0xb" identifier == number_literal) ))) )) (compound_statement "{\n        sVar2 = 1;\n      }" { (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) }) (else_clause "else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }" else (if_statement "if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }" if (parenthesized_expression "((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0))" ( (binary_expression "(iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)" (parenthesized_expression "(iVar1 - 100U < 0xb)" ( (binary_expression "iVar1 - 100U < 0xb" (binary_expression "iVar1 - 100U" identifier - number_literal) < number_literal) )) && (parenthesized_expression "((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)" ( (binary_expression "(0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0" (parenthesized_expression "(0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1)" ( (binary_expression "0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1" (binary_expression "0x59dU >> ((byte)(iVar1 - 100U) & 0x1f)" number_literal >> (parenthesized_expression "((byte)(iVar1 - 100U) & 0x1f)" ( (binary_expression "(byte)(iVar1 - 100U) & 0x1f" (call_expression "(byte)(iVar1 - 100U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(iVar1 - 100U)" ( (binary_expression "iVar1 - 100U" identifier - number_literal) ))) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        sVar2 = 0;\n      }" { (expression_statement "sVar2 = 0;" (assignment_expression "sVar2 = 0" identifier = number_literal) ;) })))) }) (else_clause "else {\n      sVar2 = -1;\n    }" else (compound_statement "{\n      sVar2 = -1;\n    }" { (expression_statement "sVar2 = -1;" (assignment_expression "sVar2 = -1" identifier = number_literal) ;) }))) })) (if_statement "if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007c1a0();\n  }" if (parenthesized_expression "(local_14 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_14 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0007c1a0();\n  }" { (expression_statement "FUN_0007c1a0();" (call_expression "FUN_0007c1a0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return sVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) & LIT) ))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "ssize_t FUN_00075b20(void)\n\n{\n  int iVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  undefined1 local_15;\n  int local_14;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x75b27;\n  entry();\n  local_14 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);\n  if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }\n  if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007c1a0();\n  }\n  return sVar2;\n}" (primitive_type "ssize_t") (function_declarator "FUN_00075b20(void)" (identifier "FUN_00075b20") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  ssize_t sVar2;\n  int *piVar3;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  undefined1 local_15;\n  int local_14;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x75b27;\n  entry();\n  local_14 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);\n  if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }\n  if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007c1a0();\n  }\n  return sVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "ssize_t sVar2;" (primitive_type "ssize_t") (identifier "sVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "int unaff_retaddr;" (primitive_type "int") (identifier "unaff_retaddr") (; ";")) (declaration "undefined1 local_15;" (type_identifier "undefined1") (identifier "local_15") (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (declaration "undefined4 uStack_c;" (type_identifier "undefined4") (identifier "uStack_c") (; ";")) (expression_statement "uStack_c = 0x75b27;" (assignment_expression "uStack_c = 0x75b27" (identifier "uStack_c") (= "=") (number_literal "0x75b27")) (; ";")) (expression_statement "entry();" (call_expression "entry()" (identifier "entry") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_14 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_14 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_14") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);" (assignment_expression "sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2)" (identifier "sVar2") (= "=") (call_expression "recv(*(int *)(unaff_retaddr + 400),&local_15,1,2)" (identifier "recv") (argument_list "(*(int *)(unaff_retaddr + 400),&local_15,1,2)" (( "(") (pointer_expression "*(int *)(unaff_retaddr + 400)" (* "*") (cast_expression "(int *)(unaff_retaddr + 400)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 400)" (( "(") (binary_expression "unaff_retaddr + 400" (identifier "unaff_retaddr") (+ "+") (number_literal "400")) () ")")))) (, ",") (pointer_expression "&local_15" (& "&") (identifier "local_15")) (, ",") (number_literal "1") (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if ((sVar2 != 0) && (sVar2 != 1)) {\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }" (if "if") (parenthesized_expression "((sVar2 != 0) && (sVar2 != 1))" (( "(") (binary_expression "(sVar2 != 0) && (sVar2 != 1)" (parenthesized_expression "(sVar2 != 0)" (( "(") (binary_expression "sVar2 != 0" (identifier "sVar2") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(sVar2 != 1)" (( "(") (binary_expression "sVar2 != 1" (identifier "sVar2") (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n    if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }\n  }" ({ "{") (if_statement "if (sVar2 == -1) {\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }\n    else {\n      sVar2 = -1;\n    }" (if "if") (parenthesized_expression "(sVar2 == -1)" (( "(") (binary_expression "sVar2 == -1" (identifier "sVar2") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      piVar3 = __errno_location();\n      iVar1 = *piVar3;\n      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }\n    }" ({ "{") (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" (identifier "piVar3") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar1 = *piVar3;" (assignment_expression "iVar1 = *piVar3" (identifier "iVar1") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (if_statement "if ((iVar1 == 0x73) || (iVar1 == 0xb)) {\n        sVar2 = 1;\n      }\n      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }" (if "if") (parenthesized_expression "((iVar1 == 0x73) || (iVar1 == 0xb))" (( "(") (binary_expression "(iVar1 == 0x73) || (iVar1 == 0xb)" (parenthesized_expression "(iVar1 == 0x73)" (( "(") (binary_expression "iVar1 == 0x73" (identifier "iVar1") (== "==") (number_literal "0x73")) () ")")) (|| "||") (parenthesized_expression "(iVar1 == 0xb)" (( "(") (binary_expression "iVar1 == 0xb" (identifier "iVar1") (== "==") (number_literal "0xb")) () ")"))) () ")")) (compound_statement "{\n        sVar2 = 1;\n      }" ({ "{") (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" (identifier "sVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }" (else "else") (if_statement "if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {\n        sVar2 = 0;\n      }" (if "if") (parenthesized_expression "((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0))" (( "(") (binary_expression "(iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)" (parenthesized_expression "(iVar1 - 100U < 0xb)" (( "(") (binary_expression "iVar1 - 100U < 0xb" (binary_expression "iVar1 - 100U" (identifier "iVar1") (- "-") (number_literal "100U")) (< "<") (number_literal "0xb")) () ")")) (&& "&&") (parenthesized_expression "((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)" (( "(") (binary_expression "(0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0" (parenthesized_expression "(0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1)" (( "(") (binary_expression "0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1" (binary_expression "0x59dU >> ((byte)(iVar1 - 100U) & 0x1f)" (number_literal "0x59dU") (>> ">>") (parenthesized_expression "((byte)(iVar1 - 100U) & 0x1f)" (( "(") (binary_expression "(byte)(iVar1 - 100U) & 0x1f" (call_expression "(byte)(iVar1 - 100U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(iVar1 - 100U)" (( "(") (binary_expression "iVar1 - 100U" (identifier "iVar1") (- "-") (number_literal "100U")) () ")"))) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        sVar2 = 0;\n      }" ({ "{") (expression_statement "sVar2 = 0;" (assignment_expression "sVar2 = 0" (identifier "sVar2") (= "=") (number_literal "0")) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n      sVar2 = -1;\n    }" (else "else") (compound_statement "{\n      sVar2 = -1;\n    }" ({ "{") (expression_statement "sVar2 = -1;" (assignment_expression "sVar2 = -1" (identifier "sVar2") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (} "}"))) (if_statement "if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007c1a0();\n  }" (if "if") (parenthesized_expression "(local_14 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_14 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_14") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0007c1a0();\n  }" ({ "{") (expression_statement "FUN_0007c1a0();" (call_expression "FUN_0007c1a0()" (identifier "FUN_0007c1a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return sVar2;" (return "return") (identifier "sVar2") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

int function_1(type_1 *conn)

{
  int var_5;
  ssize_t var_3;
  int *piVar3;
  int var_1;
  char buf;
  int var_6;
  type_2 uStack_c;
  
  uStack_c = 0x75b27;
  var_6 = *(int *)(var_1 + 0x14);
  var_3 = var_2(conn->sock[0],&buf,1,2);
  if ((var_3 != 0) && (var_3 != 1)) {
    if (var_3 == -1) {
      piVar3 = var_4();
      var_5 = *piVar3;
      if ((var_5 == 0x73) || (var_5 == 0xb)) {
        var_3 = 1;
      }
      else if ((var_5 - 100U < 0xb) && ((0x59dU >> ((byte)(var_5 - 100U) & 0x1f) & 1) != 0)) {
        var_3 = 0;
      }
    }
    else {
      var_3 = -1;
    }
  }
  if (var_6 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_7();
  }
  return var_3;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (identifier)) (number_literal) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))))

ssize_t MASKED(void)

{
  int iVar1;
  ssize_t sVar2;
  int *piVar3;
  int in_GS_OFFSET;
  int unaff_retaddr;
  undefined1 local_15;
  int local_14;
  undefined4 uStack_c;
  
  uStack_c = 0x75b27;
  entry();
  local_14 = *(int *)(in_GS_OFFSET + 0x14);
  sVar2 = recv(*(int *)(unaff_retaddr + 400),&local_15,1,2);
  if ((sVar2 != 0) && (sVar2 != 1)) {
    if (sVar2 == -1) {
      piVar3 = __errno_location();
      iVar1 = *piVar3;
      if ((iVar1 == 0x73) || (iVar1 == 0xb)) {
        sVar2 = 1;
      }
      else if ((iVar1 - 100U < 0xb) && ((0x59dU >> ((byte)(iVar1 - 100U) & 0x1f) & 1) != 0)) {
        sVar2 = 0;
      }
    }
    else {
      sVar2 = -1;
    }
  }
  if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0007c1a0();
  }
  return sVar2;
}

