
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

_Bool yesno(void)

{
  __ssize_t _Var1;
  int iVar2;
  bool bVar3;
  int in_GS_OFFSET;
  char *response;
  size_t response_size;
  int local_10;
  undefined4 uStack_c;
  
  bVar3 = false;
  uStack_c = 0x242f9;
  local_10 = *(int *)(in_GS_OFFSET + 0x14);
  response = (char *)0x0;
  response_size = 0;
  _Var1 = __getdelim(&response,&response_size,10,*(FILE **)PTR_stdin_00039fc0);
  if (0 < _Var1) {
    if (response[_Var1 + -1] == '\n') {
      response[_Var1 + -1] = '\0';
    }
    iVar2 = rpmatch(response);
    bVar3 = 0 < iVar2;
  }
  free(response);
  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {
    return bVar3;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

bool FUN_000242f0(void)

{
  __ssize_t _Var1;
  int iVar2;
  bool bVar3;
  int in_GS_OFFSET;
  char *local_18;
  size_t local_14;
  int local_10;
  undefined4 uStack_c;
  
  bVar3 = false;
  uStack_c = 0x242f9;
  local_10 = *(int *)(in_GS_OFFSET + 0x14);
  local_18 = (char *)0x0;
  local_14 = 0;
  _Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);
  if (0 < _Var1) {
    if (local_18[_Var1 + -1] == '\n') {
      local_18[_Var1 + -1] = '\0';
    }
    iVar2 = rpmatch(local_18);
    bVar3 = 0 < iVar2;
  }
  free(local_18);
  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {
    return bVar3;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0002d980();
}


PUSH ESI
XOR ESI,ESI
PUSH EBX
CALL 0x000132e0
ADD EBX,0x15d07
SUB ESP,0x14
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xc],EAX
XOR EAX,EAX
MOV dword ptr [ESP + 0x4],0x0
MOV dword ptr [ESP + 0x8],0x0
MOV EAX,dword ptr [EBX + 0xffffffc0]
PUSH dword ptr [EAX]
PUSH 0xa
LEA EAX,[ESP + 0x10]
PUSH EAX
LEA EAX,[ESP + 0x10]
PUSH EAX
CALL 0x000122b0
ADD ESP,0x10
TEST EAX,EAX
JLE 0x0002435e
MOV EDX,dword ptr [ESP + 0x4]
LEA EAX,[EDX + EAX*0x1 + -0x1]
CMP byte ptr [EAX],0xa
JZ 0x00024388
SUB ESP,0xc
PUSH EDX
CALL 0x00012650
ADD ESP,0x10
TEST EAX,EAX
SETG AL
MOV ESI,EAX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x10]
CALL 0x00012990
ADD ESP,0x10
MOV EAX,ESI
MOV ECX,dword ptr [ESP + 0xc]
XOR ECX,dword ptr GS:[0x14]
JNZ 0x00024391
ADD ESP,0x14
POP EBX
POP ESI
RET
MOV byte ptr [EAX],0x0
MOV EDX,dword ptr [ESP + 0x4]
JMP 0x0002434b
CALL 0x0002d980
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbool FUN_000242f0(void)\n\n{\n  __ssize_t _Var1;\n  int iVar2;\n  bool bVar3;\n  int in_GS_OFFSET;\n  char *local_18;\n  size_t local_14;\n  int local_10;\n  undefined4 uStack_c;\n  \n  bVar3 = false;\n  uStack_c = 0x242f9;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_18 = (char *)0x0;\n  local_14 = 0;\n  _Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);\n  if (0 < _Var1) {\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }\n  free(local_18);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0002d980();\n}\n\n" comment (function_definition "bool FUN_000242f0(void)\n\n{\n  __ssize_t _Var1;\n  int iVar2;\n  bool bVar3;\n  int in_GS_OFFSET;\n  char *local_18;\n  size_t local_14;\n  int local_10;\n  undefined4 uStack_c;\n  \n  bVar3 = false;\n  uStack_c = 0x242f9;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_18 = (char *)0x0;\n  local_14 = 0;\n  _Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);\n  if (0 < _Var1) {\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }\n  free(local_18);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0002d980();\n}" primitive_type (function_declarator "FUN_000242f0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  __ssize_t _Var1;\n  int iVar2;\n  bool bVar3;\n  int in_GS_OFFSET;\n  char *local_18;\n  size_t local_14;\n  int local_10;\n  undefined4 uStack_c;\n  \n  bVar3 = false;\n  uStack_c = 0x242f9;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_18 = (char *)0x0;\n  local_14 = 0;\n  _Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);\n  if (0 < _Var1) {\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }\n  free(local_18);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0002d980();\n}" { (declaration "__ssize_t _Var1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *local_18;" primitive_type (pointer_declarator "*local_18" * identifier) ;) (declaration "size_t local_14;" primitive_type identifier ;) (declaration "int local_10;" primitive_type identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "uStack_c = 0x242f9;" (assignment_expression "uStack_c = 0x242f9" 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 "local_18 = (char *)0x0;" (assignment_expression "local_18 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_14 = 0;" (assignment_expression "local_14 = 0" identifier = number_literal) ;) (expression_statement "_Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);" (assignment_expression "_Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0)" identifier = (call_expression "__getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0)" identifier (argument_list "(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0)" ( (pointer_expression "&local_18" & identifier) , (pointer_expression "&local_14" & identifier) , number_literal , (pointer_expression "*(FILE **)PTR_stdin_00039fc0" * (cast_expression "(FILE **)PTR_stdin_00039fc0" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) )))) ;) (if_statement "if (0 < _Var1) {\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }" if (parenthesized_expression "(0 < _Var1)" ( (binary_expression "0 < _Var1" number_literal < identifier) )) (compound_statement "{\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }" { (if_statement "if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }" if (parenthesized_expression "(local_18[_Var1 + -1] == '\n')" ( (binary_expression "local_18[_Var1 + -1] == '\n'" (subscript_expression "local_18[_Var1 + -1]" identifier [ (binary_expression "_Var1 + -1" identifier + number_literal) ]) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n      local_18[_Var1 + -1] = '\0';\n    }" { (expression_statement "local_18[_Var1 + -1] = '\0';" (assignment_expression "local_18[_Var1 + -1] = '\0'" (subscript_expression "local_18[_Var1 + -1]" identifier [ (binary_expression "_Var1 + -1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "iVar2 = rpmatch(local_18);" (assignment_expression "iVar2 = rpmatch(local_18)" identifier = (call_expression "rpmatch(local_18)" identifier (argument_list "(local_18)" ( identifier )))) ;) (expression_statement "bVar3 = 0 < iVar2;" (assignment_expression "bVar3 = 0 < iVar2" identifier = (binary_expression "0 < iVar2" number_literal < identifier)) ;) })) (expression_statement "free(local_18);" (call_expression "free(local_18)" identifier (argument_list "(local_18)" ( identifier ))) ;) (if_statement "if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\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    return bVar3;\n  }" { (return_statement "return bVar3;" return identifier ;) })) comment (expression_statement "FUN_0002d980();" (call_expression "FUN_0002d980()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\n_Bool yesno(void)\n\n{\n  __ssize_t _Var1;\n  int iVar2;\n  bool bVar3;\n  int in_GS_OFFSET;\n  char *response;\n  size_t response_size;\n  int local_10;\n  undefined4 uStack_c;\n  \n  bVar3 = false;\n  uStack_c = 0x242f9;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  response = (char *)0x0;\n  response_size = 0;\n  _Var1 = __getdelim(&response,&response_size,10,*(FILE **)PTR_stdin_00039fc0);\n  if (0 < _Var1) {\n    if (response[_Var1 + -1] == '\n') {\n      response[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(response);\n    bVar3 = 0 < iVar2;\n  }\n  free(response);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "_Bool yesno(void)\n\n{\n  __ssize_t _Var1;\n  int iVar2;\n  bool bVar3;\n  int in_GS_OFFSET;\n  char *response;\n  size_t response_size;\n  int local_10;\n  undefined4 uStack_c;\n  \n  bVar3 = false;\n  uStack_c = 0x242f9;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  response = (char *)0x0;\n  response_size = 0;\n  _Var1 = __getdelim(&response,&response_size,10,*(FILE **)PTR_stdin_00039fc0);\n  if (0 < _Var1) {\n    if (response[_Var1 + -1] == '\n') {\n      response[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(response);\n    bVar3 = 0 < iVar2;\n  }\n  free(response);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" type_identifier (function_declarator "yesno(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  __ssize_t _Var1;\n  int iVar2;\n  bool bVar3;\n  int in_GS_OFFSET;\n  char *response;\n  size_t response_size;\n  int local_10;\n  undefined4 uStack_c;\n  \n  bVar3 = false;\n  uStack_c = 0x242f9;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  response = (char *)0x0;\n  response_size = 0;\n  _Var1 = __getdelim(&response,&response_size,10,*(FILE **)PTR_stdin_00039fc0);\n  if (0 < _Var1) {\n    if (response[_Var1 + -1] == '\n') {\n      response[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(response);\n    bVar3 = 0 < iVar2;\n  }\n  free(response);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "__ssize_t _Var1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *response;" primitive_type (pointer_declarator "*response" * identifier) ;) (declaration "size_t response_size;" primitive_type identifier ;) (declaration "int local_10;" primitive_type identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "uStack_c = 0x242f9;" (assignment_expression "uStack_c = 0x242f9" 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 "response = (char *)0x0;" (assignment_expression "response = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "response_size = 0;" (assignment_expression "response_size = 0" identifier = number_literal) ;) (expression_statement "_Var1 = __getdelim(&response,&response_size,10,*(FILE **)PTR_stdin_00039fc0);" (assignment_expression "_Var1 = __getdelim(&response,&response_size,10,*(FILE **)PTR_stdin_00039fc0)" identifier = (call_expression "__getdelim(&response,&response_size,10,*(FILE **)PTR_stdin_00039fc0)" identifier (argument_list "(&response,&response_size,10,*(FILE **)PTR_stdin_00039fc0)" ( (pointer_expression "&response" & identifier) , (pointer_expression "&response_size" & identifier) , number_literal , (pointer_expression "*(FILE **)PTR_stdin_00039fc0" * (cast_expression "(FILE **)PTR_stdin_00039fc0" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) )))) ;) (if_statement "if (0 < _Var1) {\n    if (response[_Var1 + -1] == '\n') {\n      response[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(response);\n    bVar3 = 0 < iVar2;\n  }" if (parenthesized_expression "(0 < _Var1)" ( (binary_expression "0 < _Var1" number_literal < identifier) )) (compound_statement "{\n    if (response[_Var1 + -1] == '\n') {\n      response[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(response);\n    bVar3 = 0 < iVar2;\n  }" { (if_statement "if (response[_Var1 + -1] == '\n') {\n      response[_Var1 + -1] = '\0';\n    }" if (parenthesized_expression "(response[_Var1 + -1] == '\n')" ( (binary_expression "response[_Var1 + -1] == '\n'" (subscript_expression "response[_Var1 + -1]" identifier [ (binary_expression "_Var1 + -1" identifier + number_literal) ]) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n      response[_Var1 + -1] = '\0';\n    }" { (expression_statement "response[_Var1 + -1] = '\0';" (assignment_expression "response[_Var1 + -1] = '\0'" (subscript_expression "response[_Var1 + -1]" identifier [ (binary_expression "_Var1 + -1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "iVar2 = rpmatch(response);" (assignment_expression "iVar2 = rpmatch(response)" identifier = (call_expression "rpmatch(response)" identifier (argument_list "(response)" ( identifier )))) ;) (expression_statement "bVar3 = 0 < iVar2;" (assignment_expression "bVar3 = 0 < iVar2" identifier = (binary_expression "0 < iVar2" number_literal < identifier)) ;) })) (expression_statement "free(response);" (call_expression "free(response)" identifier (argument_list "(response)" ( identifier ))) ;) (if_statement "if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\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    return bVar3;\n  }" { (return_statement "return bVar3;" return identifier ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "bool FUN_000242f0(void)\n\n{\n  __ssize_t _Var1;\n  int iVar2;\n  bool bVar3;\n  int in_GS_OFFSET;\n  char *local_18;\n  size_t local_14;\n  int local_10;\n  undefined4 uStack_c;\n  \n  bVar3 = false;\n  uStack_c = 0x242f9;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_18 = (char *)0x0;\n  local_14 = 0;\n  _Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);\n  if (0 < _Var1) {\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }\n  free(local_18);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\n  }\n                    \n  FUN_0002d980();\n}\n\n" (function_definition "bool FUN_000242f0(void)\n\n{\n  __ssize_t _Var1;\n  int iVar2;\n  bool bVar3;\n  int in_GS_OFFSET;\n  char *local_18;\n  size_t local_14;\n  int local_10;\n  undefined4 uStack_c;\n  \n  bVar3 = false;\n  uStack_c = 0x242f9;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_18 = (char *)0x0;\n  local_14 = 0;\n  _Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);\n  if (0 < _Var1) {\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }\n  free(local_18);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\n  }\n                    \n  FUN_0002d980();\n}" primitive_type (function_declarator "FUN_000242f0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  __ssize_t _Var1;\n  int iVar2;\n  bool bVar3;\n  int in_GS_OFFSET;\n  char *local_18;\n  size_t local_14;\n  int local_10;\n  undefined4 uStack_c;\n  \n  bVar3 = false;\n  uStack_c = 0x242f9;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_18 = (char *)0x0;\n  local_14 = 0;\n  _Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);\n  if (0 < _Var1) {\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }\n  free(local_18);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\n  }\n                    \n  FUN_0002d980();\n}" { (declaration "__ssize_t _Var1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *local_18;" primitive_type (pointer_declarator "*local_18" * identifier) ;) (declaration "size_t local_14;" primitive_type identifier ;) (declaration "int local_10;" primitive_type identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "uStack_c = 0x242f9;" (assignment_expression "uStack_c = 0x242f9" 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 "local_18 = (char *)0x0;" (assignment_expression "local_18 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_14 = 0;" (assignment_expression "local_14 = 0" identifier = number_literal) ;) (expression_statement "_Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);" (assignment_expression "_Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0)" identifier = (call_expression "__getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0)" identifier (argument_list "(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0)" ( (pointer_expression "&local_18" & identifier) , (pointer_expression "&local_14" & identifier) , number_literal , (pointer_expression "*(FILE **)PTR_stdin_00039fc0" * (cast_expression "(FILE **)PTR_stdin_00039fc0" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) )))) ;) (if_statement "if (0 < _Var1) {\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }" if (parenthesized_expression "(0 < _Var1)" ( (binary_expression "0 < _Var1" number_literal < identifier) )) (compound_statement "{\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }" { (if_statement "if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }" if (parenthesized_expression "(local_18[_Var1 + -1] == '\n')" ( (binary_expression "local_18[_Var1 + -1] == '\n'" (subscript_expression "local_18[_Var1 + -1]" identifier [ (binary_expression "_Var1 + -1" identifier + number_literal) ]) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n      local_18[_Var1 + -1] = '\0';\n    }" { (expression_statement "local_18[_Var1 + -1] = '\0';" (assignment_expression "local_18[_Var1 + -1] = '\0'" (subscript_expression "local_18[_Var1 + -1]" identifier [ (binary_expression "_Var1 + -1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "iVar2 = rpmatch(local_18);" (assignment_expression "iVar2 = rpmatch(local_18)" identifier = (call_expression "rpmatch(local_18)" identifier (argument_list "(local_18)" ( identifier )))) ;) (expression_statement "bVar3 = 0 < iVar2;" (assignment_expression "bVar3 = 0 < iVar2" identifier = (binary_expression "0 < iVar2" number_literal < identifier)) ;) })) (expression_statement "free(local_18);" (call_expression "free(local_18)" identifier (argument_list "(local_18)" ( identifier ))) ;) (if_statement "if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\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    return bVar3;\n  }" { (return_statement "return bVar3;" return identifier ;) })) (expression_statement "FUN_0002d980();" (call_expression "FUN_0002d980()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "bool FUN_000242f0(void)\n\n{\n  __ssize_t _Var1;\n  int iVar2;\n  bool bVar3;\n  int in_GS_OFFSET;\n  char *local_18;\n  size_t local_14;\n  int local_10;\n  undefined4 uStack_c;\n  \n  bVar3 = false;\n  uStack_c = 0x242f9;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_18 = (char *)0x0;\n  local_14 = 0;\n  _Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);\n  if (0 < _Var1) {\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }\n  free(local_18);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\n  }\n                    \n  FUN_0002d980();\n}" (primitive_type "bool") (function_declarator "FUN_000242f0(void)" (identifier "FUN_000242f0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  __ssize_t _Var1;\n  int iVar2;\n  bool bVar3;\n  int in_GS_OFFSET;\n  char *local_18;\n  size_t local_14;\n  int local_10;\n  undefined4 uStack_c;\n  \n  bVar3 = false;\n  uStack_c = 0x242f9;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_18 = (char *)0x0;\n  local_14 = 0;\n  _Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);\n  if (0 < _Var1) {\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }\n  free(local_18);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\n  }\n                    \n  FUN_0002d980();\n}" ({ "{") (declaration "__ssize_t _Var1;" (type_identifier "__ssize_t") (identifier "_Var1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "char *local_18;" (primitive_type "char") (pointer_declarator "*local_18" (* "*") (identifier "local_18")) (; ";")) (declaration "size_t local_14;" (primitive_type "size_t") (identifier "local_14") (; ";")) (declaration "int local_10;" (primitive_type "int") (identifier "local_10") (; ";")) (declaration "undefined4 uStack_c;" (type_identifier "undefined4") (identifier "uStack_c") (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (expression_statement "uStack_c = 0x242f9;" (assignment_expression "uStack_c = 0x242f9" (identifier "uStack_c") (= "=") (number_literal "0x242f9")) (; ";")) (expression_statement "local_10 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_10 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_10") (= "=") (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 "local_18 = (char *)0x0;" (assignment_expression "local_18 = (char *)0x0" (identifier "local_18") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_14 = 0;" (assignment_expression "local_14 = 0" (identifier "local_14") (= "=") (number_literal "0")) (; ";")) (expression_statement "_Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);" (assignment_expression "_Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0)" (identifier "_Var1") (= "=") (call_expression "__getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0)" (identifier "__getdelim") (argument_list "(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0)" (( "(") (pointer_expression "&local_18" (& "&") (identifier "local_18")) (, ",") (pointer_expression "&local_14" (& "&") (identifier "local_14")) (, ",") (number_literal "10") (, ",") (pointer_expression "*(FILE **)PTR_stdin_00039fc0" (* "*") (cast_expression "(FILE **)PTR_stdin_00039fc0" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stdin_00039fc0"))) () ")")))) (; ";")) (if_statement "if (0 < _Var1) {\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }" (if "if") (parenthesized_expression "(0 < _Var1)" (( "(") (binary_expression "0 < _Var1" (number_literal "0") (< "<") (identifier "_Var1")) () ")")) (compound_statement "{\n    if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }\n    iVar2 = rpmatch(local_18);\n    bVar3 = 0 < iVar2;\n  }" ({ "{") (if_statement "if (local_18[_Var1 + -1] == '\n') {\n      local_18[_Var1 + -1] = '\0';\n    }" (if "if") (parenthesized_expression "(local_18[_Var1 + -1] == '\n')" (( "(") (binary_expression "local_18[_Var1 + -1] == '\n'" (subscript_expression "local_18[_Var1 + -1]" (identifier "local_18") ([ "[") (binary_expression "_Var1 + -1" (identifier "_Var1") (+ "+") (number_literal "-1")) (] "]")) (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n      local_18[_Var1 + -1] = '\0';\n    }" ({ "{") (expression_statement "local_18[_Var1 + -1] = '\0';" (assignment_expression "local_18[_Var1 + -1] = '\0'" (subscript_expression "local_18[_Var1 + -1]" (identifier "local_18") ([ "[") (binary_expression "_Var1 + -1" (identifier "_Var1") (+ "+") (number_literal "-1")) (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "iVar2 = rpmatch(local_18);" (assignment_expression "iVar2 = rpmatch(local_18)" (identifier "iVar2") (= "=") (call_expression "rpmatch(local_18)" (identifier "rpmatch") (argument_list "(local_18)" (( "(") (identifier "local_18") () ")")))) (; ";")) (expression_statement "bVar3 = 0 < iVar2;" (assignment_expression "bVar3 = 0 < iVar2" (identifier "bVar3") (= "=") (binary_expression "0 < iVar2" (number_literal "0") (< "<") (identifier "iVar2"))) (; ";")) (} "}"))) (expression_statement "free(local_18);" (call_expression "free(local_18)" (identifier "free") (argument_list "(local_18)" (( "(") (identifier "local_18") () ")"))) (; ";")) (if_statement "if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return bVar3;\n  }" (if "if") (parenthesized_expression "(local_10 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_10 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_10") (== "==") (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    return bVar3;\n  }" ({ "{") (return_statement "return bVar3;" (return "return") (identifier "bVar3") (; ";")) (} "}"))) (expression_statement "FUN_0002d980();" (call_expression "FUN_0002d980()" (identifier "FUN_0002d980") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

type_1 function_1(void)

{
  type_2 var_3;
  int var_5;
  bool bVar3;
  int var_1;
  char *response;
  size_t response_size;
  int var_7;
  type_3 uStack_c;
  
  bVar3 = false;
  uStack_c = 0x242f9;
  var_7 = *(int *)(var_1 + 0x14);
  response = (char *)0x0;
  response_size = 0;
  var_3 = var_2(&response,&response_size,10,*(type_4 **)PTR_stdin_00039fc0);
  if (0 < var_3) {
    if (response[var_3 + -1] == '\n') {
      response[var_3 + -1] = '\0';
    }
    var_5 = var_4(response);
    bVar3 = 0 < var_5;
  }
  var_6(response);
  if (var_7 == *(int *)(var_1 + 0x14)) {
    return bVar3;
  }
                    /* WARNING: Subroutine does not return */
  var_8();
}


(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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (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)) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (char_literal (escape_sequence)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (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 (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

bool MASKED(void)

{
  __ssize_t _Var1;
  int iVar2;
  bool bVar3;
  int in_GS_OFFSET;
  char *local_18;
  size_t local_14;
  int local_10;
  undefined4 uStack_c;
  
  bVar3 = false;
  uStack_c = 0x242f9;
  local_10 = *(int *)(in_GS_OFFSET + 0x14);
  local_18 = (char *)0x0;
  local_14 = 0;
  _Var1 = __getdelim(&local_18,&local_14,10,*(FILE **)PTR_stdin_00039fc0);
  if (0 < _Var1) {
    if (local_18[_Var1 + -1] == '\n') {
      local_18[_Var1 + -1] = '\0';
    }
    iVar2 = rpmatch(local_18);
    bVar3 = 0 < iVar2;
  }
  free(local_18);
  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {
    return bVar3;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0002d980();
}

