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

int nextarg(char *str)

{
}



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

longlong __regparm3 FUN_000848b9(byte *param_1,undefined4 param_2,uint param_3)

{
  int iVar1;
  int iVar2;
  
  if ((char *)*DAT_000d12f8 == (char *)0x0) {
    return (ulonglong)param_3 << 0x20;
  }
  iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);
  iVar2 = 0;
  if (iVar1 == 0) {
    iVar2 = (uint)*param_1 + (uint)param_1[1];
  }
  return CONCAT44(param_3,iVar2);
}


PUSH ESI
PUSH EBX
PUSH ECX
CALL 0x00017640
ADD EBX,0x4c15f
LEA EDX,[EBX + 0x8d8]
MOV EDX,dword ptr [EDX]
MOV EDX,dword ptr [EDX]
TEST EDX,EDX
JNZ 0x000848dd
XOR EDX,EDX
MOV EAX,EDX
POP EDX
POP EBX
POP ESI
RET
MOV ESI,EAX
SUB ESP,0x8
PUSH EAX
PUSH EDX
CALL 0x00016140
ADD ESP,0x10
XOR EDX,EDX
TEST EAX,EAX
JNZ 0x000848fb
MOVZX EDX,byte ptr [ESI]
MOVZX EAX,byte ptr [ESI + 0x1]
ADD EDX,EAX
MOV EAX,EDX
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 __regparm3 FUN_000848b9(byte *param_1,undefined4 param_2,uint param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  if ((char *)*DAT_000d12f8 == (char *)0x0) {\n    return (ulonglong)param_3 << 0x20;\n  }\n  iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);\n  iVar2 = 0;\n  if (iVar1 == 0) {\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }\n  return CONCAT44(param_3,iVar2);\n}\n\n" comment (function_definition "longlong __regparm3 FUN_000848b9(byte *param_1,undefined4 param_2,uint param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  if ((char *)*DAT_000d12f8 == (char *)0x0) {\n    return (ulonglong)param_3 << 0x20;\n  }\n  iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);\n  iVar2 = 0;\n  if (iVar1 == 0) {\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }\n  return CONCAT44(param_3,iVar2);\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000848b9(byte *param_1,undefined4 param_2,uint param_3)" identifier (parameter_list "(byte *param_1,undefined4 param_2,uint param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  \n  if ((char *)*DAT_000d12f8 == (char *)0x0) {\n    return (ulonglong)param_3 << 0x20;\n  }\n  iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);\n  iVar2 = 0;\n  if (iVar1 == 0) {\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }\n  return CONCAT44(param_3,iVar2);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (if_statement "if ((char *)*DAT_000d12f8 == (char *)0x0) {\n    return (ulonglong)param_3 << 0x20;\n  }" if (parenthesized_expression "((char *)*DAT_000d12f8 == (char *)0x0)" ( (binary_expression "(char *)*DAT_000d12f8 == (char *)0x0" (cast_expression "(char *)*DAT_000d12f8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000d12f8" * identifier)) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (ulonglong)param_3 << 0x20;\n  }" { (return_statement "return (ulonglong)param_3 << 0x20;" return (binary_expression "(ulonglong)param_3 << 0x20" (cast_expression "(ulonglong)param_3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) << number_literal) ;) })) (expression_statement "iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);" (assignment_expression "iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1)" identifier = (call_expression "strcmp((char *)*DAT_000d12f8,(char *)param_1)" identifier (argument_list "((char *)*DAT_000d12f8,(char *)param_1)" ( (cast_expression "(char *)*DAT_000d12f8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000d12f8" * identifier)) , (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (iVar1 == 0) {\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }" { (expression_statement "iVar2 = (uint)*param_1 + (uint)param_1[1];" (assignment_expression "iVar2 = (uint)*param_1 + (uint)param_1[1]" identifier = (binary_expression "(uint)*param_1 + (uint)param_1[1]" (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" ( identifier )) * identifier) + (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])))) ;) })) (return_statement "return CONCAT44(param_3,iVar2);" return (call_expression "CONCAT44(param_3,iVar2)" identifier (argument_list "(param_3,iVar2)" ( identifier , identifier ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint nextarg(char *str)\n\n{\n}\n\n" comment (function_definition "int nextarg(char *str)\n\n{\n}" primitive_type (function_declarator "nextarg(char *str)" identifier (parameter_list "(char *str)" ( (parameter_declaration "char *str" primitive_type (pointer_declarator "*str" * identifier)) ))) (compound_statement "{\n}" { })))
(translation_unit "longlong __regparm3 FUN_000848b9(byte *param_1,undefined4 param_2,uint param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  if ((char *)*DAT_000d12f8 == (char *)0x0) {\n    return (ulonglong)param_3 << 0x20;\n  }\n  iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);\n  iVar2 = 0;\n  if (iVar1 == 0) {\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }\n  return CONCAT44(param_3,iVar2);\n}\n\n" (function_definition "longlong __regparm3 FUN_000848b9(byte *param_1,undefined4 param_2,uint param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  if ((char *)*DAT_000d12f8 == (char *)0x0) {\n    return (ulonglong)param_3 << 0x20;\n  }\n  iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);\n  iVar2 = 0;\n  if (iVar1 == 0) {\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }\n  return CONCAT44(param_3,iVar2);\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000848b9(byte *param_1,undefined4 param_2,uint param_3)" identifier (parameter_list "(byte *param_1,undefined4 param_2,uint param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  \n  if ((char *)*DAT_000d12f8 == (char *)0x0) {\n    return (ulonglong)param_3 << 0x20;\n  }\n  iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);\n  iVar2 = 0;\n  if (iVar1 == 0) {\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }\n  return CONCAT44(param_3,iVar2);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (if_statement "if ((char *)*DAT_000d12f8 == (char *)0x0) {\n    return (ulonglong)param_3 << 0x20;\n  }" if (parenthesized_expression "((char *)*DAT_000d12f8 == (char *)0x0)" ( (binary_expression "(char *)*DAT_000d12f8 == (char *)0x0" (cast_expression "(char *)*DAT_000d12f8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000d12f8" * identifier)) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (ulonglong)param_3 << 0x20;\n  }" { (return_statement "return (ulonglong)param_3 << 0x20;" return (binary_expression "(ulonglong)param_3 << 0x20" (cast_expression "(ulonglong)param_3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) << number_literal) ;) })) (expression_statement "iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);" (assignment_expression "iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1)" identifier = (call_expression "strcmp((char *)*DAT_000d12f8,(char *)param_1)" identifier (argument_list "((char *)*DAT_000d12f8,(char *)param_1)" ( (cast_expression "(char *)*DAT_000d12f8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000d12f8" * identifier)) , (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (iVar1 == 0) {\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }" { (expression_statement "iVar2 = (uint)*param_1 + (uint)param_1[1];" (assignment_expression "iVar2 = (uint)*param_1 + (uint)param_1[1]" identifier = (binary_expression "(uint)*param_1 + (uint)param_1[1]" (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" ( identifier )) * identifier) + (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])))) ;) })) (return_statement "return CONCAT44(param_3,iVar2);" return (call_expression "CONCAT44(param_3,iVar2)" identifier (argument_list "(param_3,iVar2)" ( identifier , identifier ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) })) (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })))
(function_definition "longlong __regparm3 FUN_000848b9(byte *param_1,undefined4 param_2,uint param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  if ((char *)*DAT_000d12f8 == (char *)0x0) {\n    return (ulonglong)param_3 << 0x20;\n  }\n  iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);\n  iVar2 = 0;\n  if (iVar1 == 0) {\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }\n  return CONCAT44(param_3,iVar2);\n}" (type_identifier "longlong") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000848b9(byte *param_1,undefined4 param_2,uint param_3)" (identifier "FUN_000848b9") (parameter_list "(byte *param_1,undefined4 param_2,uint param_3)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  \n  if ((char *)*DAT_000d12f8 == (char *)0x0) {\n    return (ulonglong)param_3 << 0x20;\n  }\n  iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);\n  iVar2 = 0;\n  if (iVar1 == 0) {\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }\n  return CONCAT44(param_3,iVar2);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (if_statement "if ((char *)*DAT_000d12f8 == (char *)0x0) {\n    return (ulonglong)param_3 << 0x20;\n  }" (if "if") (parenthesized_expression "((char *)*DAT_000d12f8 == (char *)0x0)" (( "(") (binary_expression "(char *)*DAT_000d12f8 == (char *)0x0" (cast_expression "(char *)*DAT_000d12f8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_000d12f8" (* "*") (identifier "DAT_000d12f8"))) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return (ulonglong)param_3 << 0x20;\n  }" ({ "{") (return_statement "return (ulonglong)param_3 << 0x20;" (return "return") (binary_expression "(ulonglong)param_3 << 0x20" (cast_expression "(ulonglong)param_3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "param_3")) (<< "<<") (number_literal "0x20")) (; ";")) (} "}"))) (expression_statement "iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);" (assignment_expression "iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1)" (identifier "iVar1") (= "=") (call_expression "strcmp((char *)*DAT_000d12f8,(char *)param_1)" (identifier "strcmp") (argument_list "((char *)*DAT_000d12f8,(char *)param_1)" (( "(") (cast_expression "(char *)*DAT_000d12f8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_000d12f8" (* "*") (identifier "DAT_000d12f8"))) (, ",") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) () ")")))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar1 == 0) {\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = (uint)*param_1 + (uint)param_1[1];\n  }" ({ "{") (expression_statement "iVar2 = (uint)*param_1 + (uint)param_1[1];" (assignment_expression "iVar2 = (uint)*param_1 + (uint)param_1[1]" (identifier "iVar2") (= "=") (binary_expression "(uint)*param_1 + (uint)param_1[1]" (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "param_1")) (+ "+") (cast_expression "(uint)param_1[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (} "}"))) (return_statement "return CONCAT44(param_3,iVar2);" (return "return") (call_expression "CONCAT44(param_3,iVar2)" (identifier "CONCAT44") (argument_list "(param_3,iVar2)" (( "(") (identifier "param_3") (, ",") (identifier "iVar2") () ")"))) (; ";")) (} "}")))

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

int function_1(char *str)

{
}


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

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

longlong __regparm3 MASKED(byte *param_1,undefined4 param_2,uint param_3)

{
  int iVar1;
  int iVar2;
  
  if ((char *)*DAT_000d12f8 == (char *)0x0) {
    return (ulonglong)param_3 << 0x20;
  }
  iVar1 = strcmp((char *)*DAT_000d12f8,(char *)param_1);
  iVar2 = 0;
  if (iVar1 == 0) {
    iVar2 = (uint)*param_1 + (uint)param_1[1];
  }
  return CONCAT44(param_3,iVar2);
}

