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

int expand_linebuf(void)

{
  size_t __nmemb;
  char *__ptr;
  char *__ptr_00;
  char *__ptr_01;
  char *__ptr_02;
  int iVar1;
  
  iVar1 = size_linebuf;
  __nmemb = size_linebuf * 2;
  __ptr_01 = (char *)calloc(__nmemb,1);
  __ptr_02 = (char *)calloc(__nmemb,1);
  __ptr_00 = linebuf;
  if ((__ptr_01 == (char *)0x0) || (__ptr_02 == (char *)0x0)) {
    if (__ptr_02 != (char *)0x0) {
      free(__ptr_02);
    }
    iVar1 = 1;
    if (__ptr_01 != (char *)0x0) {
      free(__ptr_01);
      return 1;
    }
  }
  else {
    memcpy(__ptr_01,linebuf,iVar1);
    __ptr = attr;
    memcpy(__ptr_02,attr,iVar1);
    free(__ptr);
    free(__ptr_00);
    iVar1 = 0;
    size_linebuf = __nmemb;
    attr = __ptr_02;
    linebuf = __ptr_01;
  }
  return iVar1;
}



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

undefined4 FUN_000202a0(void)

{
  size_t __nmemb;
  size_t __n;
  void *__ptr;
  void *__ptr_00;
  void *__ptr_01;
  void *__ptr_02;
  undefined4 uVar1;
  
  __n = DAT_0003eda0;
  __nmemb = DAT_0003eda0 * 2;
  __ptr_01 = calloc(__nmemb,1);
  __ptr_02 = calloc(__nmemb,1);
  __ptr_00 = DAT_0003edf4;
  if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {
    if (__ptr_02 != (void *)0x0) {
      free(__ptr_02);
    }
    uVar1 = 1;
    if (__ptr_01 != (void *)0x0) {
      free(__ptr_01);
      return 1;
    }
  }
  else {
    memcpy(__ptr_01,DAT_0003edf4,__n);
    __ptr = DAT_0003edf0;
    memcpy(__ptr_02,DAT_0003edf0,__n);
    free(__ptr);
    free(__ptr_00);
    uVar1 = 0;
    DAT_0003eda0 = __nmemb;
    DAT_0003edf0 = __ptr_02;
    DAT_0003edf4 = __ptr_01;
  }
  return uVar1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000129a0
ADD EBX,0x1bbef
SUB ESP,0x24
MOV EAX,dword ptr [EBX + 0x2f08]
LEA EDI,[EAX + EAX*0x1]
MOV dword ptr [ESP + 0x10],EAX
PUSH 0x1
PUSH EDI
CALL 0x000124b0
MOV EBP,EAX
POP EAX
POP EDX
PUSH 0x1
PUSH EDI
CALL 0x000124b0
ADD ESP,0x10
MOV ESI,EAX
TEST EBP,EBP
JZ 0x00020350
TEST EAX,EAX
JZ 0x00020350
MOV EDX,dword ptr [EBX + 0x2f5c]
SUB ESP,0x4
PUSH dword ptr [ESP + 0xc]
PUSH EDX
MOV dword ptr [ESP + 0x18],EDX
PUSH EBP
CALL 0x000120f0
MOV ECX,dword ptr [EBX + 0x2f58]
ADD ESP,0xc
PUSH dword ptr [ESP + 0xc]
PUSH ECX
MOV dword ptr [ESP + 0x14],ECX
PUSH ESI
CALL 0x000120f0
MOV ECX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP],ECX
CALL 0x000120e0
MOV EDX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP],EDX
CALL 0x000120e0
MOV dword ptr [EBX + 0x2f5c],EBP
ADD ESP,0x10
MOV dword ptr [EBX + 0x2f08],EDI
MOV dword ptr [EBX + 0x2f58],ESI
XOR ESI,ESI
ADD ESP,0x1c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST ESI,ESI
JZ 0x00020360
SUB ESP,0xc
PUSH ESI
CALL 0x000120e0
ADD ESP,0x10
MOV ESI,0x1
TEST EBP,EBP
JZ 0x0002033f
SUB ESP,0xc
PUSH EBP
CALL 0x000120e0
ADD ESP,0x10
MOV EAX,ESI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_000202a0(void)\n\n{\n  size_t __nmemb;\n  size_t __n;\n  void *__ptr;\n  void *__ptr_00;\n  void *__ptr_01;\n  void *__ptr_02;\n  undefined4 uVar1;\n  \n  __n = DAT_0003eda0;\n  __nmemb = DAT_0003eda0 * 2;\n  __ptr_01 = calloc(__nmemb,1);\n  __ptr_02 = calloc(__nmemb,1);\n  __ptr_00 = DAT_0003edf4;\n  if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }\n  return uVar1;\n}\n\n" comment (function_definition "undefined4 FUN_000202a0(void)\n\n{\n  size_t __nmemb;\n  size_t __n;\n  void *__ptr;\n  void *__ptr_00;\n  void *__ptr_01;\n  void *__ptr_02;\n  undefined4 uVar1;\n  \n  __n = DAT_0003eda0;\n  __nmemb = DAT_0003eda0 * 2;\n  __ptr_01 = calloc(__nmemb,1);\n  __ptr_02 = calloc(__nmemb,1);\n  __ptr_00 = DAT_0003edf4;\n  if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }\n  return uVar1;\n}" type_identifier (function_declarator "FUN_000202a0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  size_t __nmemb;\n  size_t __n;\n  void *__ptr;\n  void *__ptr_00;\n  void *__ptr_01;\n  void *__ptr_02;\n  undefined4 uVar1;\n  \n  __n = DAT_0003eda0;\n  __nmemb = DAT_0003eda0 * 2;\n  __ptr_01 = calloc(__nmemb,1);\n  __ptr_02 = calloc(__nmemb,1);\n  __ptr_00 = DAT_0003edf4;\n  if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }\n  return uVar1;\n}" { (declaration "size_t __nmemb;" primitive_type identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "void *__ptr_01;" primitive_type (pointer_declarator "*__ptr_01" * identifier) ;) (declaration "void *__ptr_02;" primitive_type (pointer_declarator "*__ptr_02" * identifier) ;) (declaration "undefined4 uVar1;" type_identifier identifier ;) (expression_statement "__n = DAT_0003eda0;" (assignment_expression "__n = DAT_0003eda0" identifier = identifier) ;) (expression_statement "__nmemb = DAT_0003eda0 * 2;" (assignment_expression "__nmemb = DAT_0003eda0 * 2" identifier = (binary_expression "DAT_0003eda0 * 2" identifier * number_literal)) ;) (expression_statement "__ptr_01 = calloc(__nmemb,1);" (assignment_expression "__ptr_01 = calloc(__nmemb,1)" identifier = (call_expression "calloc(__nmemb,1)" identifier (argument_list "(__nmemb,1)" ( identifier , number_literal )))) ;) (expression_statement "__ptr_02 = calloc(__nmemb,1);" (assignment_expression "__ptr_02 = calloc(__nmemb,1)" identifier = (call_expression "calloc(__nmemb,1)" identifier (argument_list "(__nmemb,1)" ( identifier , number_literal )))) ;) (expression_statement "__ptr_00 = DAT_0003edf4;" (assignment_expression "__ptr_00 = DAT_0003edf4" identifier = identifier) ;) (if_statement "if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }" if (parenthesized_expression "((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0))" ( (binary_expression "(__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)" (parenthesized_expression "(__ptr_01 == (void *)0x0)" ( (binary_expression "__ptr_01 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(__ptr_02 == (void *)0x0)" ( (binary_expression "__ptr_02 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }" { (if_statement "if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }" if (parenthesized_expression "(__ptr_02 != (void *)0x0)" ( (binary_expression "__ptr_02 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(__ptr_02);\n    }" { (expression_statement "free(__ptr_02);" (call_expression "free(__ptr_02)" identifier (argument_list "(__ptr_02)" ( identifier ))) ;) })) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (if_statement "if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }" if (parenthesized_expression "(__ptr_01 != (void *)0x0)" ( (binary_expression "__ptr_01 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(__ptr_01);\n      return 1;\n    }" { (expression_statement "free(__ptr_01);" (call_expression "free(__ptr_01)" identifier (argument_list "(__ptr_01)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }" else (compound_statement "{\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }" { (expression_statement "memcpy(__ptr_01,DAT_0003edf4,__n);" (call_expression "memcpy(__ptr_01,DAT_0003edf4,__n)" identifier (argument_list "(__ptr_01,DAT_0003edf4,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "__ptr = DAT_0003edf0;" (assignment_expression "__ptr = DAT_0003edf0" identifier = identifier) ;) (expression_statement "memcpy(__ptr_02,DAT_0003edf0,__n);" (call_expression "memcpy(__ptr_02,DAT_0003edf0,__n)" identifier (argument_list "(__ptr_02,DAT_0003edf0,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (expression_statement "DAT_0003eda0 = __nmemb;" (assignment_expression "DAT_0003eda0 = __nmemb" identifier = identifier) ;) (expression_statement "DAT_0003edf0 = __ptr_02;" (assignment_expression "DAT_0003edf0 = __ptr_02" identifier = identifier) ;) (expression_statement "DAT_0003edf4 = __ptr_01;" (assignment_expression "DAT_0003edf4 = __ptr_01" identifier = identifier) ;) }))) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint expand_linebuf(void)\n\n{\n  size_t __nmemb;\n  char *__ptr;\n  char *__ptr_00;\n  char *__ptr_01;\n  char *__ptr_02;\n  int iVar1;\n  \n  iVar1 = size_linebuf;\n  __nmemb = size_linebuf * 2;\n  __ptr_01 = (char *)calloc(__nmemb,1);\n  __ptr_02 = (char *)calloc(__nmemb,1);\n  __ptr_00 = linebuf;\n  if ((__ptr_01 == (char *)0x0) || (__ptr_02 == (char *)0x0)) {\n    if (__ptr_02 != (char *)0x0) {\n      free(__ptr_02);\n    }\n    iVar1 = 1;\n    if (__ptr_01 != (char *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,linebuf,iVar1);\n    __ptr = attr;\n    memcpy(__ptr_02,attr,iVar1);\n    free(__ptr);\n    free(__ptr_00);\n    iVar1 = 0;\n    size_linebuf = __nmemb;\n    attr = __ptr_02;\n    linebuf = __ptr_01;\n  }\n  return iVar1;\n}\n\n" comment comment (function_definition "int expand_linebuf(void)\n\n{\n  size_t __nmemb;\n  char *__ptr;\n  char *__ptr_00;\n  char *__ptr_01;\n  char *__ptr_02;\n  int iVar1;\n  \n  iVar1 = size_linebuf;\n  __nmemb = size_linebuf * 2;\n  __ptr_01 = (char *)calloc(__nmemb,1);\n  __ptr_02 = (char *)calloc(__nmemb,1);\n  __ptr_00 = linebuf;\n  if ((__ptr_01 == (char *)0x0) || (__ptr_02 == (char *)0x0)) {\n    if (__ptr_02 != (char *)0x0) {\n      free(__ptr_02);\n    }\n    iVar1 = 1;\n    if (__ptr_01 != (char *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,linebuf,iVar1);\n    __ptr = attr;\n    memcpy(__ptr_02,attr,iVar1);\n    free(__ptr);\n    free(__ptr_00);\n    iVar1 = 0;\n    size_linebuf = __nmemb;\n    attr = __ptr_02;\n    linebuf = __ptr_01;\n  }\n  return iVar1;\n}" primitive_type (function_declarator "expand_linebuf(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  size_t __nmemb;\n  char *__ptr;\n  char *__ptr_00;\n  char *__ptr_01;\n  char *__ptr_02;\n  int iVar1;\n  \n  iVar1 = size_linebuf;\n  __nmemb = size_linebuf * 2;\n  __ptr_01 = (char *)calloc(__nmemb,1);\n  __ptr_02 = (char *)calloc(__nmemb,1);\n  __ptr_00 = linebuf;\n  if ((__ptr_01 == (char *)0x0) || (__ptr_02 == (char *)0x0)) {\n    if (__ptr_02 != (char *)0x0) {\n      free(__ptr_02);\n    }\n    iVar1 = 1;\n    if (__ptr_01 != (char *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,linebuf,iVar1);\n    __ptr = attr;\n    memcpy(__ptr_02,attr,iVar1);\n    free(__ptr);\n    free(__ptr_00);\n    iVar1 = 0;\n    size_linebuf = __nmemb;\n    attr = __ptr_02;\n    linebuf = __ptr_01;\n  }\n  return iVar1;\n}" { (declaration "size_t __nmemb;" primitive_type identifier ;) (declaration "char *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "char *__ptr_01;" primitive_type (pointer_declarator "*__ptr_01" * identifier) ;) (declaration "char *__ptr_02;" primitive_type (pointer_declarator "*__ptr_02" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = size_linebuf;" (assignment_expression "iVar1 = size_linebuf" identifier = identifier) ;) (expression_statement "__nmemb = size_linebuf * 2;" (assignment_expression "__nmemb = size_linebuf * 2" identifier = (binary_expression "size_linebuf * 2" identifier * number_literal)) ;) (expression_statement "__ptr_01 = (char *)calloc(__nmemb,1);" (assignment_expression "__ptr_01 = (char *)calloc(__nmemb,1)" identifier = (cast_expression "(char *)calloc(__nmemb,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "calloc(__nmemb,1)" identifier (argument_list "(__nmemb,1)" ( identifier , number_literal ))))) ;) (expression_statement "__ptr_02 = (char *)calloc(__nmemb,1);" (assignment_expression "__ptr_02 = (char *)calloc(__nmemb,1)" identifier = (cast_expression "(char *)calloc(__nmemb,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "calloc(__nmemb,1)" identifier (argument_list "(__nmemb,1)" ( identifier , number_literal ))))) ;) (expression_statement "__ptr_00 = linebuf;" (assignment_expression "__ptr_00 = linebuf" identifier = identifier) ;) (if_statement "if ((__ptr_01 == (char *)0x0) || (__ptr_02 == (char *)0x0)) {\n    if (__ptr_02 != (char *)0x0) {\n      free(__ptr_02);\n    }\n    iVar1 = 1;\n    if (__ptr_01 != (char *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,linebuf,iVar1);\n    __ptr = attr;\n    memcpy(__ptr_02,attr,iVar1);\n    free(__ptr);\n    free(__ptr_00);\n    iVar1 = 0;\n    size_linebuf = __nmemb;\n    attr = __ptr_02;\n    linebuf = __ptr_01;\n  }" if (parenthesized_expression "((__ptr_01 == (char *)0x0) || (__ptr_02 == (char *)0x0))" ( (binary_expression "(__ptr_01 == (char *)0x0) || (__ptr_02 == (char *)0x0)" (parenthesized_expression "(__ptr_01 == (char *)0x0)" ( (binary_expression "__ptr_01 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(__ptr_02 == (char *)0x0)" ( (binary_expression "__ptr_02 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if (__ptr_02 != (char *)0x0) {\n      free(__ptr_02);\n    }\n    iVar1 = 1;\n    if (__ptr_01 != (char *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }" { (if_statement "if (__ptr_02 != (char *)0x0) {\n      free(__ptr_02);\n    }" if (parenthesized_expression "(__ptr_02 != (char *)0x0)" ( (binary_expression "__ptr_02 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(__ptr_02);\n    }" { (expression_statement "free(__ptr_02);" (call_expression "free(__ptr_02)" identifier (argument_list "(__ptr_02)" ( identifier ))) ;) })) (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) (if_statement "if (__ptr_01 != (char *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }" if (parenthesized_expression "(__ptr_01 != (char *)0x0)" ( (binary_expression "__ptr_01 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(__ptr_01);\n      return 1;\n    }" { (expression_statement "free(__ptr_01);" (call_expression "free(__ptr_01)" identifier (argument_list "(__ptr_01)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else {\n    memcpy(__ptr_01,linebuf,iVar1);\n    __ptr = attr;\n    memcpy(__ptr_02,attr,iVar1);\n    free(__ptr);\n    free(__ptr_00);\n    iVar1 = 0;\n    size_linebuf = __nmemb;\n    attr = __ptr_02;\n    linebuf = __ptr_01;\n  }" else (compound_statement "{\n    memcpy(__ptr_01,linebuf,iVar1);\n    __ptr = attr;\n    memcpy(__ptr_02,attr,iVar1);\n    free(__ptr);\n    free(__ptr_00);\n    iVar1 = 0;\n    size_linebuf = __nmemb;\n    attr = __ptr_02;\n    linebuf = __ptr_01;\n  }" { (expression_statement "memcpy(__ptr_01,linebuf,iVar1);" (call_expression "memcpy(__ptr_01,linebuf,iVar1)" identifier (argument_list "(__ptr_01,linebuf,iVar1)" ( identifier , identifier , identifier ))) ;) (expression_statement "__ptr = attr;" (assignment_expression "__ptr = attr" identifier = identifier) ;) (expression_statement "memcpy(__ptr_02,attr,iVar1);" (call_expression "memcpy(__ptr_02,attr,iVar1)" identifier (argument_list "(__ptr_02,attr,iVar1)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "size_linebuf = __nmemb;" (assignment_expression "size_linebuf = __nmemb" identifier = identifier) ;) (expression_statement "attr = __ptr_02;" (assignment_expression "attr = __ptr_02" identifier = identifier) ;) (expression_statement "linebuf = __ptr_01;" (assignment_expression "linebuf = __ptr_01" identifier = identifier) ;) }))) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "undefined4 FUN_000202a0(void)\n\n{\n  size_t __nmemb;\n  size_t __n;\n  void *__ptr;\n  void *__ptr_00;\n  void *__ptr_01;\n  void *__ptr_02;\n  undefined4 uVar1;\n  \n  __n = DAT_0003eda0;\n  __nmemb = DAT_0003eda0 * 2;\n  __ptr_01 = calloc(__nmemb,1);\n  __ptr_02 = calloc(__nmemb,1);\n  __ptr_00 = DAT_0003edf4;\n  if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }\n  return uVar1;\n}\n\n" (function_definition "undefined4 FUN_000202a0(void)\n\n{\n  size_t __nmemb;\n  size_t __n;\n  void *__ptr;\n  void *__ptr_00;\n  void *__ptr_01;\n  void *__ptr_02;\n  undefined4 uVar1;\n  \n  __n = DAT_0003eda0;\n  __nmemb = DAT_0003eda0 * 2;\n  __ptr_01 = calloc(__nmemb,1);\n  __ptr_02 = calloc(__nmemb,1);\n  __ptr_00 = DAT_0003edf4;\n  if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }\n  return uVar1;\n}" type_identifier (function_declarator "FUN_000202a0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  size_t __nmemb;\n  size_t __n;\n  void *__ptr;\n  void *__ptr_00;\n  void *__ptr_01;\n  void *__ptr_02;\n  undefined4 uVar1;\n  \n  __n = DAT_0003eda0;\n  __nmemb = DAT_0003eda0 * 2;\n  __ptr_01 = calloc(__nmemb,1);\n  __ptr_02 = calloc(__nmemb,1);\n  __ptr_00 = DAT_0003edf4;\n  if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }\n  return uVar1;\n}" { (declaration "size_t __nmemb;" primitive_type identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "void *__ptr_01;" primitive_type (pointer_declarator "*__ptr_01" * identifier) ;) (declaration "void *__ptr_02;" primitive_type (pointer_declarator "*__ptr_02" * identifier) ;) (declaration "undefined4 uVar1;" type_identifier identifier ;) (expression_statement "__n = DAT_0003eda0;" (assignment_expression "__n = DAT_0003eda0" identifier = identifier) ;) (expression_statement "__nmemb = DAT_0003eda0 * 2;" (assignment_expression "__nmemb = DAT_0003eda0 * 2" identifier = (binary_expression "DAT_0003eda0 * 2" identifier * number_literal)) ;) (expression_statement "__ptr_01 = calloc(__nmemb,1);" (assignment_expression "__ptr_01 = calloc(__nmemb,1)" identifier = (call_expression "calloc(__nmemb,1)" identifier (argument_list "(__nmemb,1)" ( identifier , number_literal )))) ;) (expression_statement "__ptr_02 = calloc(__nmemb,1);" (assignment_expression "__ptr_02 = calloc(__nmemb,1)" identifier = (call_expression "calloc(__nmemb,1)" identifier (argument_list "(__nmemb,1)" ( identifier , number_literal )))) ;) (expression_statement "__ptr_00 = DAT_0003edf4;" (assignment_expression "__ptr_00 = DAT_0003edf4" identifier = identifier) ;) (if_statement "if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }" if (parenthesized_expression "((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0))" ( (binary_expression "(__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)" (parenthesized_expression "(__ptr_01 == (void *)0x0)" ( (binary_expression "__ptr_01 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(__ptr_02 == (void *)0x0)" ( (binary_expression "__ptr_02 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }" { (if_statement "if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }" if (parenthesized_expression "(__ptr_02 != (void *)0x0)" ( (binary_expression "__ptr_02 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(__ptr_02);\n    }" { (expression_statement "free(__ptr_02);" (call_expression "free(__ptr_02)" identifier (argument_list "(__ptr_02)" ( identifier ))) ;) })) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (if_statement "if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }" if (parenthesized_expression "(__ptr_01 != (void *)0x0)" ( (binary_expression "__ptr_01 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(__ptr_01);\n      return 1;\n    }" { (expression_statement "free(__ptr_01);" (call_expression "free(__ptr_01)" identifier (argument_list "(__ptr_01)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }" else (compound_statement "{\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }" { (expression_statement "memcpy(__ptr_01,DAT_0003edf4,__n);" (call_expression "memcpy(__ptr_01,DAT_0003edf4,__n)" identifier (argument_list "(__ptr_01,DAT_0003edf4,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "__ptr = DAT_0003edf0;" (assignment_expression "__ptr = DAT_0003edf0" identifier = identifier) ;) (expression_statement "memcpy(__ptr_02,DAT_0003edf0,__n);" (call_expression "memcpy(__ptr_02,DAT_0003edf0,__n)" identifier (argument_list "(__ptr_02,DAT_0003edf0,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (expression_statement "DAT_0003eda0 = __nmemb;" (assignment_expression "DAT_0003eda0 = __nmemb" identifier = identifier) ;) (expression_statement "DAT_0003edf0 = __ptr_02;" (assignment_expression "DAT_0003edf0 = __ptr_02" identifier = identifier) ;) (expression_statement "DAT_0003edf4 = __ptr_01;" (assignment_expression "DAT_0003edf4 = __ptr_01" identifier = identifier) ;) }))) (return_statement "return uVar1;" 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_000202a0(void)\n\n{\n  size_t __nmemb;\n  size_t __n;\n  void *__ptr;\n  void *__ptr_00;\n  void *__ptr_01;\n  void *__ptr_02;\n  undefined4 uVar1;\n  \n  __n = DAT_0003eda0;\n  __nmemb = DAT_0003eda0 * 2;\n  __ptr_01 = calloc(__nmemb,1);\n  __ptr_02 = calloc(__nmemb,1);\n  __ptr_00 = DAT_0003edf4;\n  if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }\n  return uVar1;\n}" (type_identifier "undefined4") (function_declarator "FUN_000202a0(void)" (identifier "FUN_000202a0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  size_t __nmemb;\n  size_t __n;\n  void *__ptr;\n  void *__ptr_00;\n  void *__ptr_01;\n  void *__ptr_02;\n  undefined4 uVar1;\n  \n  __n = DAT_0003eda0;\n  __nmemb = DAT_0003eda0 * 2;\n  __ptr_01 = calloc(__nmemb,1);\n  __ptr_02 = calloc(__nmemb,1);\n  __ptr_00 = DAT_0003edf4;\n  if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }\n  return uVar1;\n}" ({ "{") (declaration "size_t __nmemb;" (primitive_type "size_t") (identifier "__nmemb") (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "void *__ptr_00;" (primitive_type "void") (pointer_declarator "*__ptr_00" (* "*") (identifier "__ptr_00")) (; ";")) (declaration "void *__ptr_01;" (primitive_type "void") (pointer_declarator "*__ptr_01" (* "*") (identifier "__ptr_01")) (; ";")) (declaration "void *__ptr_02;" (primitive_type "void") (pointer_declarator "*__ptr_02" (* "*") (identifier "__ptr_02")) (; ";")) (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (expression_statement "__n = DAT_0003eda0;" (assignment_expression "__n = DAT_0003eda0" (identifier "__n") (= "=") (identifier "DAT_0003eda0")) (; ";")) (expression_statement "__nmemb = DAT_0003eda0 * 2;" (assignment_expression "__nmemb = DAT_0003eda0 * 2" (identifier "__nmemb") (= "=") (binary_expression "DAT_0003eda0 * 2" (identifier "DAT_0003eda0") (* "*") (number_literal "2"))) (; ";")) (expression_statement "__ptr_01 = calloc(__nmemb,1);" (assignment_expression "__ptr_01 = calloc(__nmemb,1)" (identifier "__ptr_01") (= "=") (call_expression "calloc(__nmemb,1)" (identifier "calloc") (argument_list "(__nmemb,1)" (( "(") (identifier "__nmemb") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "__ptr_02 = calloc(__nmemb,1);" (assignment_expression "__ptr_02 = calloc(__nmemb,1)" (identifier "__ptr_02") (= "=") (call_expression "calloc(__nmemb,1)" (identifier "calloc") (argument_list "(__nmemb,1)" (( "(") (identifier "__nmemb") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "__ptr_00 = DAT_0003edf4;" (assignment_expression "__ptr_00 = DAT_0003edf4" (identifier "__ptr_00") (= "=") (identifier "DAT_0003edf4")) (; ";")) (if_statement "if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }\n  else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }" (if "if") (parenthesized_expression "((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0))" (( "(") (binary_expression "(__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)" (parenthesized_expression "(__ptr_01 == (void *)0x0)" (( "(") (binary_expression "__ptr_01 == (void *)0x0" (identifier "__ptr_01") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(__ptr_02 == (void *)0x0)" (( "(") (binary_expression "__ptr_02 == (void *)0x0" (identifier "__ptr_02") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }\n    uVar1 = 1;\n    if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }\n  }" ({ "{") (if_statement "if (__ptr_02 != (void *)0x0) {\n      free(__ptr_02);\n    }" (if "if") (parenthesized_expression "(__ptr_02 != (void *)0x0)" (( "(") (binary_expression "__ptr_02 != (void *)0x0" (identifier "__ptr_02") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      free(__ptr_02);\n    }" ({ "{") (expression_statement "free(__ptr_02);" (call_expression "free(__ptr_02)" (identifier "free") (argument_list "(__ptr_02)" (( "(") (identifier "__ptr_02") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" (identifier "uVar1") (= "=") (number_literal "1")) (; ";")) (if_statement "if (__ptr_01 != (void *)0x0) {\n      free(__ptr_01);\n      return 1;\n    }" (if "if") (parenthesized_expression "(__ptr_01 != (void *)0x0)" (( "(") (binary_expression "__ptr_01 != (void *)0x0" (identifier "__ptr_01") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      free(__ptr_01);\n      return 1;\n    }" ({ "{") (expression_statement "free(__ptr_01);" (call_expression "free(__ptr_01)" (identifier "free") (argument_list "(__ptr_01)" (( "(") (identifier "__ptr_01") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }" (else "else") (compound_statement "{\n    memcpy(__ptr_01,DAT_0003edf4,__n);\n    __ptr = DAT_0003edf0;\n    memcpy(__ptr_02,DAT_0003edf0,__n);\n    free(__ptr);\n    free(__ptr_00);\n    uVar1 = 0;\n    DAT_0003eda0 = __nmemb;\n    DAT_0003edf0 = __ptr_02;\n    DAT_0003edf4 = __ptr_01;\n  }" ({ "{") (expression_statement "memcpy(__ptr_01,DAT_0003edf4,__n);" (call_expression "memcpy(__ptr_01,DAT_0003edf4,__n)" (identifier "memcpy") (argument_list "(__ptr_01,DAT_0003edf4,__n)" (( "(") (identifier "__ptr_01") (, ",") (identifier "DAT_0003edf4") (, ",") (identifier "__n") () ")"))) (; ";")) (expression_statement "__ptr = DAT_0003edf0;" (assignment_expression "__ptr = DAT_0003edf0" (identifier "__ptr") (= "=") (identifier "DAT_0003edf0")) (; ";")) (expression_statement "memcpy(__ptr_02,DAT_0003edf0,__n);" (call_expression "memcpy(__ptr_02,DAT_0003edf0,__n)" (identifier "memcpy") (argument_list "(__ptr_02,DAT_0003edf0,__n)" (( "(") (identifier "__ptr_02") (, ",") (identifier "DAT_0003edf0") (, ",") (identifier "__n") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" (identifier "free") (argument_list "(__ptr_00)" (( "(") (identifier "__ptr_00") () ")"))) (; ";")) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" (identifier "uVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0003eda0 = __nmemb;" (assignment_expression "DAT_0003eda0 = __nmemb" (identifier "DAT_0003eda0") (= "=") (identifier "__nmemb")) (; ";")) (expression_statement "DAT_0003edf0 = __ptr_02;" (assignment_expression "DAT_0003edf0 = __ptr_02" (identifier "DAT_0003edf0") (= "=") (identifier "__ptr_02")) (; ";")) (expression_statement "DAT_0003edf4 = __ptr_01;" (assignment_expression "DAT_0003edf4 = __ptr_01" (identifier "DAT_0003edf4") (= "=") (identifier "__ptr_01")) (; ";")) (} "}")))) (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}")))

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

int function_1(void)

{
  size_t __nmemb;
  char *__ptr;
  char *__ptr_00;
  char *var_3;
  char *var_4;
  int iVar1;
  
  iVar1 = var_1;
  __nmemb = var_1 * 2;
  var_3 = (char *)var_2(__nmemb,1);
  var_4 = (char *)var_2(__nmemb,1);
  __ptr_00 = linebuf;
  if ((var_3 == (char *)0x0) || (var_4 == (char *)0x0)) {
    if (var_4 != (char *)0x0) {
      var_5(var_4);
    }
    iVar1 = 1;
    if (var_3 != (char *)0x0) {
      var_5(var_3);
      return 1;
    }
  }
  else {
    var_6(var_3,linebuf,iVar1);
    __ptr = attr;
    var_6(var_4,attr,iVar1);
    var_5(__ptr);
    var_5(__ptr_00);
    iVar1 = 0;
    var_1 = __nmemb;
    attr = var_4;
    linebuf = var_3;
  }
  return iVar1;
}


(translation_unit (function_definition type: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (return_statement (identifier)))))

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

undefined4 MASKED(void)

{
  size_t __nmemb;
  size_t __n;
  void *__ptr;
  void *__ptr_00;
  void *__ptr_01;
  void *__ptr_02;
  undefined4 uVar1;
  
  __n = DAT_0003eda0;
  __nmemb = DAT_0003eda0 * 2;
  __ptr_01 = calloc(__nmemb,1);
  __ptr_02 = calloc(__nmemb,1);
  __ptr_00 = DAT_0003edf4;
  if ((__ptr_01 == (void *)0x0) || (__ptr_02 == (void *)0x0)) {
    if (__ptr_02 != (void *)0x0) {
      free(__ptr_02);
    }
    uVar1 = 1;
    if (__ptr_01 != (void *)0x0) {
      free(__ptr_01);
      return 1;
    }
  }
  else {
    memcpy(__ptr_01,DAT_0003edf4,__n);
    __ptr = DAT_0003edf0;
    memcpy(__ptr_02,DAT_0003edf0,__n);
    free(__ptr);
    free(__ptr_00);
    uVar1 = 0;
    DAT_0003eda0 = __nmemb;
    DAT_0003edf0 = __ptr_02;
    DAT_0003edf4 = __ptr_01;
  }
  return uVar1;
}

