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

void __regparm3 display_data(bfd_size_type printed,uchar *data,bfd_size_type len)

{
  byte *pbVar1;
  byte bVar2;
  undefined *puVar3;
  byte *in_ECX;
  int in_EDX;
  int iVar4;
  uint uVar5;
  bool bVar6;
  undefined8 uVar7;
  longlong lVar8;
  
  if ((do_wide == 0) &&
     (uVar7 = __udivdi3(0x50 - (int)data,-(uint)((uchar *)0x50 < data) - in_EDX,3,0),
     puVar3 = PTR_stdout_00072fdc, uVar5 = (uint)((ulonglong)uVar7 >> 0x20),
     uVar5 <= printed._4_4_ && (uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5)) {
    uVar5 = 0;
    iVar4 = 0;
    if (printed != 0) {
      do {
        lVar8 = __umoddi3(uVar5,iVar4,0x1a,0);
        if (lVar8 == 0) {
          putc(10,*(FILE **)puVar3);
        }
        printf(" %02x",(uint)in_ECX[uVar5]);
        bVar6 = 0xfffffffe < uVar5;
        uVar5 = uVar5 + 1;
        iVar4 = iVar4 + (uint)bVar6;
      } while (printed != CONCAT44(iVar4,uVar5));
    }
  }
  else {
    pbVar1 = in_ECX + (uint)printed;
    if (printed != 0) {
      do {
        bVar2 = *in_ECX;
        in_ECX = in_ECX + 1;
        printf(" %02x",(uint)bVar2);
      } while (pbVar1 != in_ECX);
    }
  }
  return;
}



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

void __regparm3 FUN_0001e270(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)

{
  byte *pbVar1;
  byte bVar2;
  undefined *puVar3;
  uint uVar4;
  uint uVar5;
  bool bVar6;
  undefined8 uVar7;
  longlong lVar8;
  
  if ((DAT_00076b14 == 0) &&
     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),
     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),
     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {
    uVar5 = 0;
    uVar4 = 0;
    if (param_5 != 0 || param_4 != 0) {
      do {
        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);
        if (lVar8 == 0) {
          putc(10,*(FILE **)puVar3);
        }
        printf(" %02x",(uint)param_3[uVar5]);
        bVar6 = 0xfffffffe < uVar5;
        uVar5 = uVar5 + 1;
        uVar4 = uVar4 + bVar6;
      } while (param_5 != uVar4 || param_4 != uVar5);
    }
  }
  else {
    pbVar1 = param_3 + param_4;
    if (param_5 != 0 || param_4 != 0) {
      do {
        bVar2 = *param_3;
        param_3 = param_3 + 1;
        printf(" %02x",(uint)bVar2);
      } while (pbVar1 != param_3);
    }
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000153d0
ADD EBX,0x54d87
SUB ESP,0x1c
MOV dword ptr [ESP + 0x8],ECX
MOV ECX,dword ptr [ESP + 0x30]
MOV dword ptr [ESP],ECX
MOV ECX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x4],ECX
LEA ECX,[EBX + 0x3b14]
MOV ECX,dword ptr [ECX]
TEST ECX,ECX
JNZ 0x0001e348
MOV ESI,0x50
XOR EDI,EDI
PUSH 0x0
SUB ESI,EAX
PUSH 0x3
SBB EDI,EDX
PUSH EDI
PUSH ESI
CALL 0x0004d500
ADD ESP,0x10
MOV ECX,dword ptr [ESP]
CMP ECX,EAX
MOV EAX,dword ptr [ESP + 0x4]
MOV ESI,EAX
SBB ESI,EDX
JC 0x0001e348
MOV EDX,dword ptr [EBX + 0xffffffdc]
XOR EDI,EDI
XOR EBP,EBP
OR EAX,ECX
LEA ESI,[EBX + 0xfffe0710]
MOV dword ptr [ESP + 0xc],EDX
JNZ 0x0001e31a
JMP 0x0001e380
SUB ESP,0x8
MOV ECX,dword ptr [ESP + 0x10]
MOVZX EAX,byte ptr [ECX + EDI*0x1]
PUSH EAX
PUSH ESI
CALL 0x000140b0
ADD EDI,0x1
ADC EBP,0x0
ADD ESP,0x10
MOV EAX,dword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x4]
XOR EAX,EDI
XOR EDX,EBP
OR EDX,EAX
JZ 0x0001e380
PUSH 0x0
PUSH 0x1a
PUSH EBP
PUSH EDI
CALL 0x0004d610
ADD ESP,0x10
OR EDX,EAX
JNZ 0x0001e2f0
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x14]
PUSH dword ptr [EAX]
PUSH 0xa
CALL 0x000146a0
ADD ESP,0x10
JMP 0x0001e2f0
MOV EAX,dword ptr [ESP]
MOV ECX,dword ptr [ESP + 0x4]
LEA ESI,[EBX + 0xfffe0710]
MOV EBP,dword ptr [ESP + 0x8]
OR ECX,EAX
LEA EDI,[EBP + EAX*0x1]
JZ 0x0001e380
LEA ESI,[ESI]
MOVZX EAX,byte ptr [EBP]
SUB ESP,0x8
ADD EBP,0x1
PUSH EAX
PUSH ESI
CALL 0x000140b0
ADD ESP,0x10
CMP EDI,EBP
JNZ 0x0001e368
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\nvoid __regparm3 FUN_0001e270(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uint uVar5;\n  bool bVar6;\n  undefined8 uVar7;\n  longlong lVar8;\n  \n  if ((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }\n  else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_0001e270(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uint uVar5;\n  bool bVar6;\n  undefined8 uVar7;\n  longlong lVar8;\n  \n  if ((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }\n  else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0001e270(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)" identifier (parameter_list "(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "uint param_5" type_identifier identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uint uVar5;\n  bool bVar6;\n  undefined8 uVar7;\n  longlong lVar8;\n  \n  if ((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }\n  else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }\n  return;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (if_statement "if ((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }\n  else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }" if (parenthesized_expression "((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4))" ( (binary_expression "(DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)" (parenthesized_expression "(DAT_00076b14 == 0)" ( (binary_expression "DAT_00076b14 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)" ( (comma_expression "uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (assignment_expression "uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0)" identifier = (call_expression "FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0)" identifier (argument_list "(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0)" ( (binary_expression "0x50 - param_1" number_literal - identifier) , (binary_expression "-(uint)(0x50 < param_1) - param_2" (unary_expression "-(uint)(0x50 < param_1)" - (call_expression "(uint)(0x50 < param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x50 < param_1)" ( (binary_expression "0x50 < param_1" number_literal < identifier) )))) - identifier) , number_literal , number_literal )))) , (comma_expression "puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (assignment_expression "puVar3 = PTR_stdout_00072fdc" identifier = identifier) , (comma_expression "uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (assignment_expression "uVar4 = (uint)((ulonglong)uVar7 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar7 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) , (binary_expression "uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (binary_expression "uVar4 <= param_5" identifier <= identifier) && (binary_expression "(uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (call_expression "(uint)(param_4 < (uint)uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 < (uint)uVar7)" ( (binary_expression "param_4 < (uint)uVar7" identifier < (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "param_5 - uVar4" identifier - identifier)))))) ))) )) (compound_statement "{\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (if_statement "if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }" if (parenthesized_expression "(param_5 != 0 || param_4 != 0)" ( (binary_expression "param_5 != 0 || param_4 != 0" (binary_expression "param_5 != 0" identifier != number_literal) || (binary_expression "param_4 != 0" identifier != number_literal)) )) (compound_statement "{\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }" { (do_statement "do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);" do (compound_statement "{\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      }" { (expression_statement "lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);" (assignment_expression "lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0)" identifier = (call_expression "FUN_0004d610(uVar5,uVar4,0x1a,0)" identifier (argument_list "(uVar5,uVar4,0x1a,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          putc(10,*(FILE **)puVar3);\n        }" { (expression_statement "putc(10,*(FILE **)puVar3);" (call_expression "putc(10,*(FILE **)puVar3)" identifier (argument_list "(10,*(FILE **)puVar3)" ( number_literal , (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) (expression_statement "printf(" %02x",(uint)param_3[uVar5]);" (call_expression "printf(" %02x",(uint)param_3[uVar5])" identifier (argument_list "(" %02x",(uint)param_3[uVar5])" ( (string_literal "" %02x"" " string_content ") , (cast_expression "(uint)param_3[uVar5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[uVar5]" identifier [ identifier ])) ))) ;) (expression_statement "bVar6 = 0xfffffffe < uVar5;" (assignment_expression "bVar6 = 0xfffffffe < uVar5" identifier = (binary_expression "0xfffffffe < uVar5" number_literal < identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 + bVar6;" (assignment_expression "uVar4 = uVar4 + bVar6" identifier = (binary_expression "uVar4 + bVar6" identifier + identifier)) ;) }) while (parenthesized_expression "(param_5 != uVar4 || param_4 != uVar5)" ( (binary_expression "param_5 != uVar4 || param_4 != uVar5" (binary_expression "param_5 != uVar4" identifier != identifier) || (binary_expression "param_4 != uVar5" identifier != identifier)) )) ;) })) }) (else_clause "else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }" else (compound_statement "{\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }" { (expression_statement "pbVar1 = param_3 + param_4;" (assignment_expression "pbVar1 = param_3 + param_4" identifier = (binary_expression "param_3 + param_4" identifier + identifier)) ;) (if_statement "if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }" if (parenthesized_expression "(param_5 != 0 || param_4 != 0)" ( (binary_expression "param_5 != 0 || param_4 != 0" (binary_expression "param_5 != 0" identifier != number_literal) || (binary_expression "param_4 != 0" identifier != number_literal)) )) (compound_statement "{\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }" { (do_statement "do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);" do (compound_statement "{\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      }" { (expression_statement "bVar2 = *param_3;" (assignment_expression "bVar2 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "printf(" %02x",(uint)bVar2);" (call_expression "printf(" %02x",(uint)bVar2)" identifier (argument_list "(" %02x",(uint)bVar2)" ( (string_literal "" %02x"" " string_content ") , (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(pbVar1 != param_3)" ( (binary_expression "pbVar1 != param_3" identifier != identifier) )) ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 display_data(bfd_size_type printed,uchar *data,bfd_size_type len)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  undefined *puVar3;\n  byte *in_ECX;\n  int in_EDX;\n  int iVar4;\n  uint uVar5;\n  bool bVar6;\n  undefined8 uVar7;\n  longlong lVar8;\n  \n  if ((do_wide == 0) &&\n     (uVar7 = __udivdi3(0x50 - (int)data,-(uint)((uchar *)0x50 < data) - in_EDX,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar5 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar5 <= printed._4_4_ && (uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5)) {\n    uVar5 = 0;\n    iVar4 = 0;\n    if (printed != 0) {\n      do {\n        lVar8 = __umoddi3(uVar5,iVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)in_ECX[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        iVar4 = iVar4 + (uint)bVar6;\n      } while (printed != CONCAT44(iVar4,uVar5));\n    }\n  }\n  else {\n    pbVar1 = in_ECX + (uint)printed;\n    if (printed != 0) {\n      do {\n        bVar2 = *in_ECX;\n        in_ECX = in_ECX + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != in_ECX);\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 display_data(bfd_size_type printed,uchar *data,bfd_size_type len)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  undefined *puVar3;\n  byte *in_ECX;\n  int in_EDX;\n  int iVar4;\n  uint uVar5;\n  bool bVar6;\n  undefined8 uVar7;\n  longlong lVar8;\n  \n  if ((do_wide == 0) &&\n     (uVar7 = __udivdi3(0x50 - (int)data,-(uint)((uchar *)0x50 < data) - in_EDX,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar5 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar5 <= printed._4_4_ && (uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5)) {\n    uVar5 = 0;\n    iVar4 = 0;\n    if (printed != 0) {\n      do {\n        lVar8 = __umoddi3(uVar5,iVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)in_ECX[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        iVar4 = iVar4 + (uint)bVar6;\n      } while (printed != CONCAT44(iVar4,uVar5));\n    }\n  }\n  else {\n    pbVar1 = in_ECX + (uint)printed;\n    if (printed != 0) {\n      do {\n        bVar2 = *in_ECX;\n        in_ECX = in_ECX + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != in_ECX);\n    }\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "display_data(bfd_size_type printed,uchar *data,bfd_size_type len)" identifier (parameter_list "(bfd_size_type printed,uchar *data,bfd_size_type len)" ( (parameter_declaration "bfd_size_type printed" type_identifier identifier) , (parameter_declaration "uchar *data" type_identifier (pointer_declarator "*data" * identifier)) , (parameter_declaration "bfd_size_type len" type_identifier identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  undefined *puVar3;\n  byte *in_ECX;\n  int in_EDX;\n  int iVar4;\n  uint uVar5;\n  bool bVar6;\n  undefined8 uVar7;\n  longlong lVar8;\n  \n  if ((do_wide == 0) &&\n     (uVar7 = __udivdi3(0x50 - (int)data,-(uint)((uchar *)0x50 < data) - in_EDX,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar5 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar5 <= printed._4_4_ && (uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5)) {\n    uVar5 = 0;\n    iVar4 = 0;\n    if (printed != 0) {\n      do {\n        lVar8 = __umoddi3(uVar5,iVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)in_ECX[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        iVar4 = iVar4 + (uint)bVar6;\n      } while (printed != CONCAT44(iVar4,uVar5));\n    }\n  }\n  else {\n    pbVar1 = in_ECX + (uint)printed;\n    if (printed != 0) {\n      do {\n        bVar2 = *in_ECX;\n        in_ECX = in_ECX + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != in_ECX);\n    }\n  }\n  return;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "byte *in_ECX;" type_identifier (pointer_declarator "*in_ECX" * identifier) ;) (declaration "int in_EDX;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (if_statement "if ((do_wide == 0) &&\n     (uVar7 = __udivdi3(0x50 - (int)data,-(uint)((uchar *)0x50 < data) - in_EDX,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar5 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar5 <= printed._4_4_ && (uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5)) {\n    uVar5 = 0;\n    iVar4 = 0;\n    if (printed != 0) {\n      do {\n        lVar8 = __umoddi3(uVar5,iVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)in_ECX[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        iVar4 = iVar4 + (uint)bVar6;\n      } while (printed != CONCAT44(iVar4,uVar5));\n    }\n  }\n  else {\n    pbVar1 = in_ECX + (uint)printed;\n    if (printed != 0) {\n      do {\n        bVar2 = *in_ECX;\n        in_ECX = in_ECX + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != in_ECX);\n    }\n  }" if (parenthesized_expression "((do_wide == 0) &&\n     (uVar7 = __udivdi3(0x50 - (int)data,-(uint)((uchar *)0x50 < data) - in_EDX,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar5 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar5 <= printed._4_4_ && (uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5))" ( (binary_expression "(do_wide == 0) &&\n     (uVar7 = __udivdi3(0x50 - (int)data,-(uint)((uchar *)0x50 < data) - in_EDX,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar5 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar5 <= printed._4_4_ && (uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5)" (parenthesized_expression "(do_wide == 0)" ( (binary_expression "do_wide == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar7 = __udivdi3(0x50 - (int)data,-(uint)((uchar *)0x50 < data) - in_EDX,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar5 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar5 <= printed._4_4_ && (uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5)" ( (comma_expression "uVar7 = __udivdi3(0x50 - (int)data,-(uint)((uchar *)0x50 < data) - in_EDX,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar5 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar5 <= printed._4_4_ && (uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5" (assignment_expression "uVar7 = __udivdi3(0x50 - (int)data,-(uint)((uchar *)0x50 < data) - in_EDX,3,0)" identifier = (call_expression "__udivdi3(0x50 - (int)data,-(uint)((uchar *)0x50 < data) - in_EDX,3,0)" identifier (argument_list "(0x50 - (int)data,-(uint)((uchar *)0x50 < data) - in_EDX,3,0)" ( (binary_expression "0x50 - (int)data" number_literal - (cast_expression "(int)data" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "-(uint)((uchar *)0x50 < data) - in_EDX" (unary_expression "-(uint)((uchar *)0x50 < data)" - (call_expression "(uint)((uchar *)0x50 < data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uchar *)0x50 < data)" ( (binary_expression "(uchar *)0x50 < data" (cast_expression "(uchar *)0x50" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )))) - identifier) , number_literal , number_literal )))) , (comma_expression "puVar3 = PTR_stdout_00072fdc, uVar5 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar5 <= printed._4_4_ && (uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5" (assignment_expression "puVar3 = PTR_stdout_00072fdc" identifier = identifier) , (comma_expression "uVar5 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar5 <= printed._4_4_ && (uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5" (assignment_expression "uVar5 = (uint)((ulonglong)uVar7 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar7 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) , (binary_expression "uVar5 <= printed._4_4_ && (uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5" (binary_expression "uVar5 <= printed._4_4_" identifier <= (field_expression "printed._4_4_" identifier . field_identifier)) && (binary_expression "(uint)((uint)printed < (uint)uVar7) <= printed._4_4_ - uVar5" (call_expression "(uint)((uint)printed < (uint)uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)printed < (uint)uVar7)" ( (binary_expression "(uint)printed < (uint)uVar7" (cast_expression "(uint)printed" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "printed._4_4_ - uVar5" (field_expression "printed._4_4_" identifier . field_identifier) - identifier)))))) ))) )) (compound_statement "{\n    uVar5 = 0;\n    iVar4 = 0;\n    if (printed != 0) {\n      do {\n        lVar8 = __umoddi3(uVar5,iVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)in_ECX[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        iVar4 = iVar4 + (uint)bVar6;\n      } while (printed != CONCAT44(iVar4,uVar5));\n    }\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if (printed != 0) {\n      do {\n        lVar8 = __umoddi3(uVar5,iVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)in_ECX[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        iVar4 = iVar4 + (uint)bVar6;\n      } while (printed != CONCAT44(iVar4,uVar5));\n    }" if (parenthesized_expression "(printed != 0)" ( (binary_expression "printed != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        lVar8 = __umoddi3(uVar5,iVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)in_ECX[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        iVar4 = iVar4 + (uint)bVar6;\n      } while (printed != CONCAT44(iVar4,uVar5));\n    }" { (do_statement "do {\n        lVar8 = __umoddi3(uVar5,iVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)in_ECX[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        iVar4 = iVar4 + (uint)bVar6;\n      } while (printed != CONCAT44(iVar4,uVar5));" do (compound_statement "{\n        lVar8 = __umoddi3(uVar5,iVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)in_ECX[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        iVar4 = iVar4 + (uint)bVar6;\n      }" { (expression_statement "lVar8 = __umoddi3(uVar5,iVar4,0x1a,0);" (assignment_expression "lVar8 = __umoddi3(uVar5,iVar4,0x1a,0)" identifier = (call_expression "__umoddi3(uVar5,iVar4,0x1a,0)" identifier (argument_list "(uVar5,iVar4,0x1a,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          putc(10,*(FILE **)puVar3);\n        }" { (expression_statement "putc(10,*(FILE **)puVar3);" (call_expression "putc(10,*(FILE **)puVar3)" identifier (argument_list "(10,*(FILE **)puVar3)" ( number_literal , (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) (expression_statement "printf(" %02x",(uint)in_ECX[uVar5]);" (call_expression "printf(" %02x",(uint)in_ECX[uVar5])" identifier (argument_list "(" %02x",(uint)in_ECX[uVar5])" ( (string_literal "" %02x"" " string_content ") , (cast_expression "(uint)in_ECX[uVar5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "in_ECX[uVar5]" identifier [ identifier ])) ))) ;) (expression_statement "bVar6 = 0xfffffffe < uVar5;" (assignment_expression "bVar6 = 0xfffffffe < uVar5" identifier = (binary_expression "0xfffffffe < uVar5" number_literal < identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + (uint)bVar6;" (assignment_expression "iVar4 = iVar4 + (uint)bVar6" identifier = (binary_expression "iVar4 + (uint)bVar6" identifier + (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "(printed != CONCAT44(iVar4,uVar5))" ( (binary_expression "printed != CONCAT44(iVar4,uVar5)" identifier != (call_expression "CONCAT44(iVar4,uVar5)" identifier (argument_list "(iVar4,uVar5)" ( identifier , identifier )))) )) ;) })) }) (else_clause "else {\n    pbVar1 = in_ECX + (uint)printed;\n    if (printed != 0) {\n      do {\n        bVar2 = *in_ECX;\n        in_ECX = in_ECX + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != in_ECX);\n    }\n  }" else (compound_statement "{\n    pbVar1 = in_ECX + (uint)printed;\n    if (printed != 0) {\n      do {\n        bVar2 = *in_ECX;\n        in_ECX = in_ECX + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != in_ECX);\n    }\n  }" { (expression_statement "pbVar1 = in_ECX + (uint)printed;" (assignment_expression "pbVar1 = in_ECX + (uint)printed" identifier = (binary_expression "in_ECX + (uint)printed" identifier + (cast_expression "(uint)printed" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (printed != 0) {\n      do {\n        bVar2 = *in_ECX;\n        in_ECX = in_ECX + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != in_ECX);\n    }" if (parenthesized_expression "(printed != 0)" ( (binary_expression "printed != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        bVar2 = *in_ECX;\n        in_ECX = in_ECX + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != in_ECX);\n    }" { (do_statement "do {\n        bVar2 = *in_ECX;\n        in_ECX = in_ECX + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != in_ECX);" do (compound_statement "{\n        bVar2 = *in_ECX;\n        in_ECX = in_ECX + 1;\n        printf(" %02x",(uint)bVar2);\n      }" { (expression_statement "bVar2 = *in_ECX;" (assignment_expression "bVar2 = *in_ECX" identifier = (pointer_expression "*in_ECX" * identifier)) ;) (expression_statement "in_ECX = in_ECX + 1;" (assignment_expression "in_ECX = in_ECX + 1" identifier = (binary_expression "in_ECX + 1" identifier + number_literal)) ;) (expression_statement "printf(" %02x",(uint)bVar2);" (call_expression "printf(" %02x",(uint)bVar2)" identifier (argument_list "(" %02x",(uint)bVar2)" ( (string_literal "" %02x"" " string_content ") , (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(pbVar1 != in_ECX)" ( (binary_expression "pbVar1 != in_ECX" identifier != identifier) )) ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_0001e270(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uint uVar5;\n  bool bVar6;\n  undefined8 uVar7;\n  longlong lVar8;\n  \n  if ((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }\n  else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_0001e270(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uint uVar5;\n  bool bVar6;\n  undefined8 uVar7;\n  longlong lVar8;\n  \n  if ((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }\n  else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0001e270(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)" identifier (parameter_list "(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "uint param_5" type_identifier identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uint uVar5;\n  bool bVar6;\n  undefined8 uVar7;\n  longlong lVar8;\n  \n  if ((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }\n  else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }\n  return;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (if_statement "if ((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }\n  else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }" if (parenthesized_expression "((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4))" ( (binary_expression "(DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)" (parenthesized_expression "(DAT_00076b14 == 0)" ( (binary_expression "DAT_00076b14 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)" ( (comma_expression "uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (assignment_expression "uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0)" identifier = (call_expression "FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0)" identifier (argument_list "(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0)" ( (binary_expression "0x50 - param_1" number_literal - identifier) , (binary_expression "-(uint)(0x50 < param_1) - param_2" (unary_expression "-(uint)(0x50 < param_1)" - (call_expression "(uint)(0x50 < param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x50 < param_1)" ( (binary_expression "0x50 < param_1" number_literal < identifier) )))) - identifier) , number_literal , number_literal )))) , (comma_expression "puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (assignment_expression "puVar3 = PTR_stdout_00072fdc" identifier = identifier) , (comma_expression "uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (assignment_expression "uVar4 = (uint)((ulonglong)uVar7 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar7 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) , (binary_expression "uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (binary_expression "uVar4 <= param_5" identifier <= identifier) && (binary_expression "(uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (call_expression "(uint)(param_4 < (uint)uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 < (uint)uVar7)" ( (binary_expression "param_4 < (uint)uVar7" identifier < (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "param_5 - uVar4" identifier - identifier)))))) ))) )) (compound_statement "{\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (if_statement "if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }" if (parenthesized_expression "(param_5 != 0 || param_4 != 0)" ( (binary_expression "param_5 != 0 || param_4 != 0" (binary_expression "param_5 != 0" identifier != number_literal) || (binary_expression "param_4 != 0" identifier != number_literal)) )) (compound_statement "{\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }" { (do_statement "do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);" do (compound_statement "{\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      }" { (expression_statement "lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);" (assignment_expression "lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0)" identifier = (call_expression "FUN_0004d610(uVar5,uVar4,0x1a,0)" identifier (argument_list "(uVar5,uVar4,0x1a,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          putc(10,*(FILE **)puVar3);\n        }" { (expression_statement "putc(10,*(FILE **)puVar3);" (call_expression "putc(10,*(FILE **)puVar3)" identifier (argument_list "(10,*(FILE **)puVar3)" ( number_literal , (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) (expression_statement "printf(" %02x",(uint)param_3[uVar5]);" (call_expression "printf(" %02x",(uint)param_3[uVar5])" identifier (argument_list "(" %02x",(uint)param_3[uVar5])" ( (string_literal "" %02x"" " string_content ") , (cast_expression "(uint)param_3[uVar5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[uVar5]" identifier [ identifier ])) ))) ;) (expression_statement "bVar6 = 0xfffffffe < uVar5;" (assignment_expression "bVar6 = 0xfffffffe < uVar5" identifier = (binary_expression "0xfffffffe < uVar5" number_literal < identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 + bVar6;" (assignment_expression "uVar4 = uVar4 + bVar6" identifier = (binary_expression "uVar4 + bVar6" identifier + identifier)) ;) }) while (parenthesized_expression "(param_5 != uVar4 || param_4 != uVar5)" ( (binary_expression "param_5 != uVar4 || param_4 != uVar5" (binary_expression "param_5 != uVar4" identifier != identifier) || (binary_expression "param_4 != uVar5" identifier != identifier)) )) ;) })) }) (else_clause "else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }" else (compound_statement "{\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }" { (expression_statement "pbVar1 = param_3 + param_4;" (assignment_expression "pbVar1 = param_3 + param_4" identifier = (binary_expression "param_3 + param_4" identifier + identifier)) ;) (if_statement "if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }" if (parenthesized_expression "(param_5 != 0 || param_4 != 0)" ( (binary_expression "param_5 != 0 || param_4 != 0" (binary_expression "param_5 != 0" identifier != number_literal) || (binary_expression "param_4 != 0" identifier != number_literal)) )) (compound_statement "{\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }" { (do_statement "do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);" do (compound_statement "{\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      }" { (expression_statement "bVar2 = *param_3;" (assignment_expression "bVar2 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "printf(" %02x",(uint)bVar2);" (call_expression "printf(" %02x",(uint)bVar2)" identifier (argument_list "(" %02x",(uint)bVar2)" ( (string_literal "" %02x"" " string_content ") , (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(pbVar1 != param_3)" ( (binary_expression "pbVar1 != param_3" identifier != identifier) )) ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression LIT - IDENT) , (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))) - IDENT) , LIT , LIT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) , (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) <= (binary_expression IDENT - IDENT)))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (binary_expression IDENT != IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) }))) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_0001e270(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uint uVar5;\n  bool bVar6;\n  undefined8 uVar7;\n  longlong lVar8;\n  \n  if ((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }\n  else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0001e270(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)" (identifier "FUN_0001e270") (parameter_list "(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "byte *param_3" (type_identifier "byte") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uint uVar5;\n  bool bVar6;\n  undefined8 uVar7;\n  longlong lVar8;\n  \n  if ((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }\n  else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }\n  return;\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "bool bVar6;" (primitive_type "bool") (identifier "bVar6") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "longlong lVar8;" (type_identifier "longlong") (identifier "lVar8") (; ";")) (if_statement "if ((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }\n  else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }" (if "if") (parenthesized_expression "((DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4))" (( "(") (binary_expression "(DAT_00076b14 == 0) &&\n     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)" (parenthesized_expression "(DAT_00076b14 == 0)" (( "(") (binary_expression "DAT_00076b14 == 0" (identifier "DAT_00076b14") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)" (( "(") (comma_expression "uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),\n     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (assignment_expression "uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0)" (identifier "uVar7") (= "=") (call_expression "FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0)" (identifier "FUN_0004d500") (argument_list "(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0)" (( "(") (binary_expression "0x50 - param_1" (number_literal "0x50") (- "-") (identifier "param_1")) (, ",") (binary_expression "-(uint)(0x50 < param_1) - param_2" (unary_expression "-(uint)(0x50 < param_1)" (- "-") (call_expression "(uint)(0x50 < param_1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x50 < param_1)" (( "(") (binary_expression "0x50 < param_1" (number_literal "0x50") (< "<") (identifier "param_1")) () ")")))) (- "-") (identifier "param_2")) (, ",") (number_literal "3") (, ",") (number_literal "0") () ")")))) (, ",") (comma_expression "puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (assignment_expression "puVar3 = PTR_stdout_00072fdc" (identifier "puVar3") (= "=") (identifier "PTR_stdout_00072fdc")) (, ",") (comma_expression "uVar4 = (uint)((ulonglong)uVar7 >> 0x20),\n     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (assignment_expression "uVar4 = (uint)((ulonglong)uVar7 >> 0x20)" (identifier "uVar4") (= "=") (call_expression "(uint)((ulonglong)uVar7 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar7 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x20")) () ")")))) (, ",") (binary_expression "uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (binary_expression "uVar4 <= param_5" (identifier "uVar4") (<= "<=") (identifier "param_5")) (&& "&&") (binary_expression "(uint)(param_4 < (uint)uVar7) <= param_5 - uVar4" (call_expression "(uint)(param_4 < (uint)uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 < (uint)uVar7)" (( "(") (binary_expression "param_4 < (uint)uVar7" (identifier "param_4") (< "<") (cast_expression "(uint)uVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar7"))) () ")"))) (<= "<=") (binary_expression "param_5 - uVar4" (identifier "param_5") (- "-") (identifier "uVar4"))))))) () ")"))) () ")")) (compound_statement "{\n    uVar5 = 0;\n    uVar4 = 0;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }\n  }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_5 != 0 || param_4 != 0) {\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }" (if "if") (parenthesized_expression "(param_5 != 0 || param_4 != 0)" (( "(") (binary_expression "param_5 != 0 || param_4 != 0" (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);\n    }" ({ "{") (do_statement "do {\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      } while (param_5 != uVar4 || param_4 != uVar5);" (do "do") (compound_statement "{\n        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);\n        if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }\n        printf(" %02x",(uint)param_3[uVar5]);\n        bVar6 = 0xfffffffe < uVar5;\n        uVar5 = uVar5 + 1;\n        uVar4 = uVar4 + bVar6;\n      }" ({ "{") (expression_statement "lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);" (assignment_expression "lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0)" (identifier "lVar8") (= "=") (call_expression "FUN_0004d610(uVar5,uVar4,0x1a,0)" (identifier "FUN_0004d610") (argument_list "(uVar5,uVar4,0x1a,0)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar4") (, ",") (number_literal "0x1a") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (lVar8 == 0) {\n          putc(10,*(FILE **)puVar3);\n        }" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          putc(10,*(FILE **)puVar3);\n        }" ({ "{") (expression_statement "putc(10,*(FILE **)puVar3);" (call_expression "putc(10,*(FILE **)puVar3)" (identifier "putc") (argument_list "(10,*(FILE **)puVar3)" (( "(") (number_literal "10") (, ",") (pointer_expression "*(FILE **)puVar3" (* "*") (cast_expression "(FILE **)puVar3" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar3"))) () ")"))) (; ";")) (} "}"))) (expression_statement "printf(" %02x",(uint)param_3[uVar5]);" (call_expression "printf(" %02x",(uint)param_3[uVar5])" (identifier "printf") (argument_list "(" %02x",(uint)param_3[uVar5])" (( "(") (string_literal "" %02x"" (" """) (string_content " %02x") (" """)) (, ",") (cast_expression "(uint)param_3[uVar5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[uVar5]" (identifier "param_3") ([ "[") (identifier "uVar5") (] "]"))) () ")"))) (; ";")) (expression_statement "bVar6 = 0xfffffffe < uVar5;" (assignment_expression "bVar6 = 0xfffffffe < uVar5" (identifier "bVar6") (= "=") (binary_expression "0xfffffffe < uVar5" (number_literal "0xfffffffe") (< "<") (identifier "uVar5"))) (; ";")) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = uVar4 + bVar6;" (assignment_expression "uVar4 = uVar4 + bVar6" (identifier "uVar4") (= "=") (binary_expression "uVar4 + bVar6" (identifier "uVar4") (+ "+") (identifier "bVar6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_5 != uVar4 || param_4 != uVar5)" (( "(") (binary_expression "param_5 != uVar4 || param_4 != uVar5" (binary_expression "param_5 != uVar4" (identifier "param_5") (!= "!=") (identifier "uVar4")) (|| "||") (binary_expression "param_4 != uVar5" (identifier "param_4") (!= "!=") (identifier "uVar5"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }" (else "else") (compound_statement "{\n    pbVar1 = param_3 + param_4;\n    if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }\n  }" ({ "{") (expression_statement "pbVar1 = param_3 + param_4;" (assignment_expression "pbVar1 = param_3 + param_4" (identifier "pbVar1") (= "=") (binary_expression "param_3 + param_4" (identifier "param_3") (+ "+") (identifier "param_4"))) (; ";")) (if_statement "if (param_5 != 0 || param_4 != 0) {\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }" (if "if") (parenthesized_expression "(param_5 != 0 || param_4 != 0)" (( "(") (binary_expression "param_5 != 0 || param_4 != 0" (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);\n    }" ({ "{") (do_statement "do {\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      } while (pbVar1 != param_3);" (do "do") (compound_statement "{\n        bVar2 = *param_3;\n        param_3 = param_3 + 1;\n        printf(" %02x",(uint)bVar2);\n      }" ({ "{") (expression_statement "bVar2 = *param_3;" (assignment_expression "bVar2 = *param_3" (identifier "bVar2") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" (identifier "param_3") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "printf(" %02x",(uint)bVar2);" (call_expression "printf(" %02x",(uint)bVar2)" (identifier "printf") (argument_list "(" %02x",(uint)bVar2)" (( "(") (string_literal "" %02x"" (" """) (string_content " %02x") (" """)) (, ",") (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar1 != param_3)" (( "(") (binary_expression "pbVar1 != param_3" (identifier "pbVar1") (!= "!=") (identifier "param_3")) () ")")) (; ";")) (} "}"))) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm3 function_1(type_1 var_6,type_2 *var_3,type_1 len)

{
  type_3 *var_14;
  type_3 bVar2;
  type_4 *puVar3;
  type_3 *var_13;
  int var_4;
  int var_11;
  type_5 var_5;
  bool bVar6;
  type_6 uVar7;
  type_7 var_8;
  
  if ((var_1 == 0) &&
     (uVar7 = var_2(0x50 - (int)var_3,-(type_5)((type_2 *)0x50 < var_3) - var_4,3,0),
     puVar3 = PTR_stdout_00072fdc, var_5 = (type_5)((type_8)uVar7 >> 0x20),
     var_5 <= var_6._4_4_ && (type_5)((type_5)var_6 < (type_5)uVar7) <= var_6._4_4_ - var_5)) {
    var_5 = 0;
    var_11 = 0;
    if (var_6 != 0) {
      do {
        var_8 = var_7(var_5,var_11,0x1a,0);
        if (var_8 == 0) {
          var_9(10,*(type_9 **)puVar3);
        }
        var_10(" %02x",(type_5)var_13[var_5]);
        bVar6 = 0xfffffffe < var_5;
        var_5 = var_5 + 1;
        var_11 = var_11 + (type_5)bVar6;
      } while (var_6 != var_12(var_11,var_5));
    }
  }
  else {
    var_14 = var_13 + (type_5)var_6;
    if (var_6 != 0) {
      do {
        bVar2 = *var_13;
        var_13 = var_13 + 1;
        var_10(" %02x",(type_5)bVar2);
      } while (var_14 != var_13);
    }
  }
  return;
}


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

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

void __regparm3 MASKED(uint param_1,int param_2,byte *param_3,uint param_4,uint param_5)

{
  byte *pbVar1;
  byte bVar2;
  undefined *puVar3;
  uint uVar4;
  uint uVar5;
  bool bVar6;
  undefined8 uVar7;
  longlong lVar8;
  
  if ((DAT_00076b14 == 0) &&
     (uVar7 = FUN_0004d500(0x50 - param_1,-(uint)(0x50 < param_1) - param_2,3,0),
     puVar3 = PTR_stdout_00072fdc, uVar4 = (uint)((ulonglong)uVar7 >> 0x20),
     uVar4 <= param_5 && (uint)(param_4 < (uint)uVar7) <= param_5 - uVar4)) {
    uVar5 = 0;
    uVar4 = 0;
    if (param_5 != 0 || param_4 != 0) {
      do {
        lVar8 = FUN_0004d610(uVar5,uVar4,0x1a,0);
        if (lVar8 == 0) {
          putc(10,*(FILE **)puVar3);
        }
        printf(" %02x",(uint)param_3[uVar5]);
        bVar6 = 0xfffffffe < uVar5;
        uVar5 = uVar5 + 1;
        uVar4 = uVar4 + bVar6;
      } while (param_5 != uVar4 || param_4 != uVar5);
    }
  }
  else {
    pbVar1 = param_3 + param_4;
    if (param_5 != 0 || param_4 != 0) {
      do {
        bVar2 = *param_3;
        param_3 = param_3 + 1;
        printf(" %02x",(uint)bVar2);
      } while (pbVar1 != param_3);
    }
  }
  return;
}

