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

int setup_unzip_on_fd(int fd,int fail_if_not_compressed)

{
}



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

longlong FUN_0008882f(void)

{
  void *__ptr;
  uint in_ECX;
  
  __ptr = (void *)FUN_00088451();
  if (*(int *)((int)__ptr + 4) != 0) {
    FUN_0008877d();
    free(__ptr);
    return (ulonglong)in_ECX << 0x20;
  }
  free(__ptr);
  return CONCAT44(in_ECX,1);
}


PUSH ESI
PUSH EBX
PUSH ECX
CALL 0x00017650
ADD EBX,0x531e9
CALL 0x00088451
MOV ESI,EAX
MOV ECX,dword ptr [EAX + 0x4]
TEST ECX,ECX
JZ 0x0008886a
MOV EAX,dword ptr [EAX + 0x8]
MOV EDX,0x1
CALL 0x0008877d
SUB ESP,0xc
PUSH ESI
CALL 0x000175a0
ADD ESP,0x10
XOR EAX,EAX
POP EDX
POP EBX
POP ESI
RET
SUB ESP,0xc
PUSH EAX
CALL 0x000175a0
ADD ESP,0x10
MOV EAX,0x1
POP EDX
POP EBX
POP ESI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nlonglong FUN_0008882f(void)\n\n{\n  void *__ptr;\n  uint in_ECX;\n  \n  __ptr = (void *)FUN_00088451();\n  if (*(int *)((int)__ptr + 4) != 0) {\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }\n  free(__ptr);\n  return CONCAT44(in_ECX,1);\n}\n\n" comment (function_definition "longlong FUN_0008882f(void)\n\n{\n  void *__ptr;\n  uint in_ECX;\n  \n  __ptr = (void *)FUN_00088451();\n  if (*(int *)((int)__ptr + 4) != 0) {\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }\n  free(__ptr);\n  return CONCAT44(in_ECX,1);\n}" type_identifier (function_declarator "FUN_0008882f(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  void *__ptr;\n  uint in_ECX;\n  \n  __ptr = (void *)FUN_00088451();\n  if (*(int *)((int)__ptr + 4) != 0) {\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }\n  free(__ptr);\n  return CONCAT44(in_ECX,1);\n}" { (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint in_ECX;" type_identifier identifier ;) (expression_statement "__ptr = (void *)FUN_00088451();" (assignment_expression "__ptr = (void *)FUN_00088451()" identifier = (cast_expression "(void *)FUN_00088451()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00088451()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (*(int *)((int)__ptr + 4) != 0) {\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }" if (parenthesized_expression "(*(int *)((int)__ptr + 4) != 0)" ( (binary_expression "*(int *)((int)__ptr + 4) != 0" (pointer_expression "*(int *)((int)__ptr + 4)" * (cast_expression "(int *)((int)__ptr + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 4)" ( (binary_expression "(int)__ptr + 4" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }" { (expression_statement "FUN_0008877d();" (call_expression "FUN_0008877d()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return (ulonglong)in_ECX << 0x20;" return (binary_expression "(ulonglong)in_ECX << 0x20" (cast_expression "(ulonglong)in_ECX" ( (type_descriptor "ulonglong" type_identifier) ) identifier) << number_literal) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return CONCAT44(in_ECX,1);" return (call_expression "CONCAT44(in_ECX,1)" identifier (argument_list "(in_ECX,1)" ( identifier , number_literal ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint setup_unzip_on_fd(int fd,int fail_if_not_compressed)\n\n{\n}\n\n" comment (function_definition "int setup_unzip_on_fd(int fd,int fail_if_not_compressed)\n\n{\n}" primitive_type (function_declarator "setup_unzip_on_fd(int fd,int fail_if_not_compressed)" identifier (parameter_list "(int fd,int fail_if_not_compressed)" ( (parameter_declaration "int fd" primitive_type identifier) , (parameter_declaration "int fail_if_not_compressed" primitive_type identifier) ))) (compound_statement "{\n}" { })))
(translation_unit "longlong FUN_0008882f(void)\n\n{\n  void *__ptr;\n  uint in_ECX;\n  \n  __ptr = (void *)FUN_00088451();\n  if (*(int *)((int)__ptr + 4) != 0) {\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }\n  free(__ptr);\n  return CONCAT44(in_ECX,1);\n}\n\n" (function_definition "longlong FUN_0008882f(void)\n\n{\n  void *__ptr;\n  uint in_ECX;\n  \n  __ptr = (void *)FUN_00088451();\n  if (*(int *)((int)__ptr + 4) != 0) {\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }\n  free(__ptr);\n  return CONCAT44(in_ECX,1);\n}" type_identifier (function_declarator "FUN_0008882f(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  void *__ptr;\n  uint in_ECX;\n  \n  __ptr = (void *)FUN_00088451();\n  if (*(int *)((int)__ptr + 4) != 0) {\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }\n  free(__ptr);\n  return CONCAT44(in_ECX,1);\n}" { (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint in_ECX;" type_identifier identifier ;) (expression_statement "__ptr = (void *)FUN_00088451();" (assignment_expression "__ptr = (void *)FUN_00088451()" identifier = (cast_expression "(void *)FUN_00088451()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00088451()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (*(int *)((int)__ptr + 4) != 0) {\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }" if (parenthesized_expression "(*(int *)((int)__ptr + 4) != 0)" ( (binary_expression "*(int *)((int)__ptr + 4) != 0" (pointer_expression "*(int *)((int)__ptr + 4)" * (cast_expression "(int *)((int)__ptr + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 4)" ( (binary_expression "(int)__ptr + 4" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }" { (expression_statement "FUN_0008877d();" (call_expression "FUN_0008877d()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return (ulonglong)in_ECX << 0x20;" return (binary_expression "(ulonglong)in_ECX << 0x20" (cast_expression "(ulonglong)in_ECX" ( (type_descriptor "ulonglong" type_identifier) ) identifier) << number_literal) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return CONCAT44(in_ECX,1);" return (call_expression "CONCAT44(in_ECX,1)" identifier (argument_list "(in_ECX,1)" ( identifier , number_literal ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })))
(function_definition "longlong FUN_0008882f(void)\n\n{\n  void *__ptr;\n  uint in_ECX;\n  \n  __ptr = (void *)FUN_00088451();\n  if (*(int *)((int)__ptr + 4) != 0) {\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }\n  free(__ptr);\n  return CONCAT44(in_ECX,1);\n}" (type_identifier "longlong") (function_declarator "FUN_0008882f(void)" (identifier "FUN_0008882f") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  void *__ptr;\n  uint in_ECX;\n  \n  __ptr = (void *)FUN_00088451();\n  if (*(int *)((int)__ptr + 4) != 0) {\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }\n  free(__ptr);\n  return CONCAT44(in_ECX,1);\n}" ({ "{") (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "uint in_ECX;" (type_identifier "uint") (identifier "in_ECX") (; ";")) (expression_statement "__ptr = (void *)FUN_00088451();" (assignment_expression "__ptr = (void *)FUN_00088451()" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_00088451()" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00088451()" (identifier "FUN_00088451") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (*(int *)((int)__ptr + 4) != 0) {\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }" (if "if") (parenthesized_expression "(*(int *)((int)__ptr + 4) != 0)" (( "(") (binary_expression "*(int *)((int)__ptr + 4) != 0" (pointer_expression "*(int *)((int)__ptr + 4)" (* "*") (cast_expression "(int *)((int)__ptr + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + 4)" (( "(") (binary_expression "(int)__ptr + 4" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0008877d();\n    free(__ptr);\n    return (ulonglong)in_ECX << 0x20;\n  }" ({ "{") (expression_statement "FUN_0008877d();" (call_expression "FUN_0008877d()" (identifier "FUN_0008877d") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (return_statement "return (ulonglong)in_ECX << 0x20;" (return "return") (binary_expression "(ulonglong)in_ECX << 0x20" (cast_expression "(ulonglong)in_ECX" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "in_ECX")) (<< "<<") (number_literal "0x20")) (; ";")) (} "}"))) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (return_statement "return CONCAT44(in_ECX,1);" (return "return") (call_expression "CONCAT44(in_ECX,1)" (identifier "CONCAT44") (argument_list "(in_ECX,1)" (( "(") (identifier "in_ECX") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")))

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

int function_1(int fd,int fail_if_not_compressed)

{
}


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

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

longlong MASKED(void)

{
  void *__ptr;
  uint in_ECX;
  
  __ptr = (void *)FUN_00088451();
  if (*(int *)((int)__ptr + 4) != 0) {
    FUN_0008877d();
    free(__ptr);
    return (ulonglong)in_ECX << 0x20;
  }
  free(__ptr);
  return CONCAT44(in_ECX,1);
}

