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

_Bool uhd_iface_list_valid(uhd_iface *list)

{
  _Bool _Var1;
  
  if (list != (uhd_iface *)0x0) {
    do {
      _Var1 = uhd_iface_valid(list);
      if (!_Var1) {
        return _Var1;
      }
      list = list->next;
    } while (list != (uhd_iface *)0x0);
  }
  return true;
}



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

undefined4 FUN_00013170(int *param_1)

{
  undefined4 uVar1;
  
  if (param_1 != (int *)0x0) {
    do {
      uVar1 = FUN_00012e00(param_1);
      if ((char)uVar1 == '\0') {
        return uVar1;
      }
      param_1 = (int *)*param_1;
    } while (param_1 != (int *)0x0);
  }
  return 1;
}


PUSH ESI
PUSH EBX
CALL 0x00012480
ADD EBX,0x3e89
SUB ESP,0x4
MOV ESI,dword ptr [ESP + 0x10]
TEST ESI,ESI
JNZ 0x00013196
JMP 0x000131b0
MOV ESI,dword ptr [ESI]
TEST ESI,ESI
JZ 0x000131b0
SUB ESP,0xc
PUSH ESI
CALL 0x00012e00
ADD ESP,0x10
TEST AL,AL
JNZ 0x00013190
ADD ESP,0x4
POP EBX
POP ESI
RET
ADD ESP,0x4
MOV EAX,0x1
POP EBX
POP ESI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_00013170(int *param_1)\n\n{\n  undefined4 uVar1;\n  \n  if (param_1 != (int *)0x0) {\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }\n  return 1;\n}\n\n" comment (function_definition "undefined4 FUN_00013170(int *param_1)\n\n{\n  undefined4 uVar1;\n  \n  if (param_1 != (int *)0x0) {\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_00013170(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  \n  if (param_1 != (int *)0x0) {\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }\n  return 1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (if_statement "if (param_1 != (int *)0x0) {\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }" { (do_statement "do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);" do (compound_statement "{\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    }" { (expression_statement "uVar1 = FUN_00012e00(param_1);" (assignment_expression "uVar1 = FUN_00012e00(param_1)" identifier = (call_expression "FUN_00012e00(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if ((char)uVar1 == '\0') {\n        return uVar1;\n      }" if (parenthesized_expression "((char)uVar1 == '\0')" ( (binary_expression "(char)uVar1 == '\0'" (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return uVar1;\n      }" { (return_statement "return uVar1;" return identifier ;) })) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) }) while (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\n_Bool uhd_iface_list_valid(uhd_iface *list)\n\n{\n  _Bool _Var1;\n  \n  if (list != (uhd_iface *)0x0) {\n    do {\n      _Var1 = uhd_iface_valid(list);\n      if (!_Var1) {\n        return _Var1;\n      }\n      list = list->next;\n    } while (list != (uhd_iface *)0x0);\n  }\n  return true;\n}\n\n" comment (function_definition "_Bool uhd_iface_list_valid(uhd_iface *list)\n\n{\n  _Bool _Var1;\n  \n  if (list != (uhd_iface *)0x0) {\n    do {\n      _Var1 = uhd_iface_valid(list);\n      if (!_Var1) {\n        return _Var1;\n      }\n      list = list->next;\n    } while (list != (uhd_iface *)0x0);\n  }\n  return true;\n}" type_identifier (function_declarator "uhd_iface_list_valid(uhd_iface *list)" identifier (parameter_list "(uhd_iface *list)" ( (parameter_declaration "uhd_iface *list" type_identifier (pointer_declarator "*list" * identifier)) ))) (compound_statement "{\n  _Bool _Var1;\n  \n  if (list != (uhd_iface *)0x0) {\n    do {\n      _Var1 = uhd_iface_valid(list);\n      if (!_Var1) {\n        return _Var1;\n      }\n      list = list->next;\n    } while (list != (uhd_iface *)0x0);\n  }\n  return true;\n}" { (declaration "_Bool _Var1;" type_identifier identifier ;) (if_statement "if (list != (uhd_iface *)0x0) {\n    do {\n      _Var1 = uhd_iface_valid(list);\n      if (!_Var1) {\n        return _Var1;\n      }\n      list = list->next;\n    } while (list != (uhd_iface *)0x0);\n  }" if (parenthesized_expression "(list != (uhd_iface *)0x0)" ( (binary_expression "list != (uhd_iface *)0x0" identifier != (cast_expression "(uhd_iface *)0x0" ( (type_descriptor "uhd_iface *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      _Var1 = uhd_iface_valid(list);\n      if (!_Var1) {\n        return _Var1;\n      }\n      list = list->next;\n    } while (list != (uhd_iface *)0x0);\n  }" { (do_statement "do {\n      _Var1 = uhd_iface_valid(list);\n      if (!_Var1) {\n        return _Var1;\n      }\n      list = list->next;\n    } while (list != (uhd_iface *)0x0);" do (compound_statement "{\n      _Var1 = uhd_iface_valid(list);\n      if (!_Var1) {\n        return _Var1;\n      }\n      list = list->next;\n    }" { (expression_statement "_Var1 = uhd_iface_valid(list);" (assignment_expression "_Var1 = uhd_iface_valid(list)" identifier = (call_expression "uhd_iface_valid(list)" identifier (argument_list "(list)" ( identifier )))) ;) (if_statement "if (!_Var1) {\n        return _Var1;\n      }" if (parenthesized_expression "(!_Var1)" ( (unary_expression "!_Var1" ! identifier) )) (compound_statement "{\n        return _Var1;\n      }" { (return_statement "return _Var1;" return identifier ;) })) (expression_statement "list = list->next;" (assignment_expression "list = list->next" identifier = (field_expression "list->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(list != (uhd_iface *)0x0)" ( (binary_expression "list != (uhd_iface *)0x0" identifier != (cast_expression "(uhd_iface *)0x0" ( (type_descriptor "uhd_iface *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (return_statement "return true;" return true ;) })))
(translation_unit "undefined4 FUN_00013170(int *param_1)\n\n{\n  undefined4 uVar1;\n  \n  if (param_1 != (int *)0x0) {\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_00013170(int *param_1)\n\n{\n  undefined4 uVar1;\n  \n  if (param_1 != (int *)0x0) {\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_00013170(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  \n  if (param_1 != (int *)0x0) {\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }\n  return 1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (if_statement "if (param_1 != (int *)0x0) {\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }" { (do_statement "do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);" do (compound_statement "{\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    }" { (expression_statement "uVar1 = FUN_00012e00(param_1);" (assignment_expression "uVar1 = FUN_00012e00(param_1)" identifier = (call_expression "FUN_00012e00(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if ((char)uVar1 == '\0') {\n        return uVar1;\n      }" if (parenthesized_expression "((char)uVar1 == '\0')" ( (binary_expression "(char)uVar1 == '\0'" (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return uVar1;\n      }" { (return_statement "return uVar1;" return identifier ;) })) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) }) while (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00013170(int *param_1)\n\n{\n  undefined4 uVar1;\n  \n  if (param_1 != (int *)0x0) {\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_00013170(int *param_1)" (identifier "FUN_00013170") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  \n  if (param_1 != (int *)0x0) {\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }\n  return 1;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (if_statement "if (param_1 != (int *)0x0) {\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }" (if "if") (parenthesized_expression "(param_1 != (int *)0x0)" (( "(") (binary_expression "param_1 != (int *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);\n  }" ({ "{") (do_statement "do {\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    } while (param_1 != (int *)0x0);" (do "do") (compound_statement "{\n      uVar1 = FUN_00012e00(param_1);\n      if ((char)uVar1 == '\0') {\n        return uVar1;\n      }\n      param_1 = (int *)*param_1;\n    }" ({ "{") (expression_statement "uVar1 = FUN_00012e00(param_1);" (assignment_expression "uVar1 = FUN_00012e00(param_1)" (identifier "uVar1") (= "=") (call_expression "FUN_00012e00(param_1)" (identifier "FUN_00012e00") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if ((char)uVar1 == '\0') {\n        return uVar1;\n      }" (if "if") (parenthesized_expression "((char)uVar1 == '\0')" (( "(") (binary_expression "(char)uVar1 == '\0'" (cast_expression "(char)uVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        return uVar1;\n      }" ({ "{") (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}"))) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" (identifier "param_1") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_1 != (int *)0x0)" (( "(") (binary_expression "param_1 != (int *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

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

type_1 function_1(type_2 *var_1)

{
  type_1 _Var1;
  
  if (var_1 != (type_2 *)0x0) {
    do {
      _Var1 = var_2(var_1);
      if (!_Var1) {
        return _Var1;
      }
      var_1 = var_1->next;
    } while (var_1 != (type_2 *)0x0);
  }
  return true;
}


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

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

undefined4 MASKED(int *param_1)

{
  undefined4 uVar1;
  
  if (param_1 != (int *)0x0) {
    do {
      uVar1 = FUN_00012e00(param_1);
      if ((char)uVar1 == '\0') {
        return uVar1;
      }
      param_1 = (int *)*param_1;
    } while (param_1 != (int *)0x0);
  }
  return 1;
}

