
void __regparm3 cvthex(uchar *bin,size_t len,char *hex)

{
  byte bVar1;
  char cVar2;
  size_t sVar3;
  
  sVar3 = 0;
  if (len != 0) {
    do {
      while( true ) {
        bVar1 = bin[sVar3] >> 4;
        cVar2 = bVar1 + 0x30;
        if (9 < bVar1) {
          cVar2 = bVar1 + 0x57;
        }
        hex[sVar3 * 2] = cVar2;
        bVar1 = bin[sVar3] & 0xf;
        if (bVar1 < 10) break;
        hex[sVar3 * 2 + 1] = bVar1 + 0x57;
        sVar3 = sVar3 + 1;
        if (len == sVar3) {
          hex[len * 2] = '\0';
          return;
        }
      }
      hex[sVar3 * 2 + 1] = bVar1 + 0x30;
      sVar3 = sVar3 + 1;
    } while (len != sVar3);
  }
  hex[len * 2] = '\0';
  return;
}



void __regparm3 FUN_00023670(int param_1,int param_2,int param_3)

{
  byte bVar1;
  char cVar2;
  int iVar3;
  
  iVar3 = 0;
  if (param_2 != 0) {
    do {
      while( true ) {
        bVar1 = *(byte *)(param_1 + iVar3) >> 4;
        cVar2 = bVar1 + 0x30;
        if (9 < bVar1) {
          cVar2 = bVar1 + 0x57;
        }
        *(char *)(param_3 + iVar3 * 2) = cVar2;
        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;
        if (bVar1 < 10) break;
        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;
        iVar3 = iVar3 + 1;
        if (param_2 == iVar3) {
          *(undefined1 *)(param_3 + param_2 * 2) = 0;
          return;
        }
      }
      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;
      iVar3 = iVar3 + 1;
    } while (param_2 != iVar3);
  }
  *(undefined1 *)(param_3 + param_2 * 2) = 0;
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
XOR EBX,EBX
TEST EDX,EDX
MOV ESI,EAX
JZ 0x000236b0
LEA ESI,[ESI]
MOVZX EAX,byte ptr [ESI + EBX*0x1]
SHR AL,0x4
LEA EBP,[EAX + 0x30]
LEA EDI,[EAX + 0x57]
CMP AL,0x9
MOV EAX,EBP
CMOVA EAX,EDI
MOV byte ptr [ECX + EBX*0x2],AL
MOVZX EAX,byte ptr [ESI + EBX*0x1]
AND EAX,0xf
CMP AL,0x9
JA 0x000236c0
ADD EAX,0x30
MOV byte ptr [ECX + EBX*0x2 + 0x1],AL
ADD EBX,0x1
CMP EDX,EBX
JNZ 0x00023680
POP EBX
MOV byte ptr [ECX + EDX*0x2],0x0
POP ESI
POP EDI
POP EBP
RET
ADD EAX,0x57
MOV byte ptr [ECX + EBX*0x2 + 0x1],AL
ADD EBX,0x1
CMP EDX,EBX
JNZ 0x00023680
POP EBX
MOV byte ptr [ECX + EDX*0x2],0x0
POP ESI
POP EDI
POP EBP
RET
(translation_unit "void __regparm3 FUN_00023670(int param_1,int param_2,int param_3)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  if (param_2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }\n  *(undefined1 *)(param_3 + param_2 * 2) = 0;\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00023670(int param_1,int param_2,int param_3)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  if (param_2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }\n  *(undefined1 *)(param_3 + param_2 * 2) = 0;\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00023670(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  if (param_2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }\n  *(undefined1 *)(param_3 + param_2 * 2) = 0;\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (param_2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }" { (do_statement "do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);" do (compound_statement "{\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    }" { (while_statement "while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }" { (expression_statement "bVar1 = *(byte *)(param_1 + iVar3) >> 4;" (assignment_expression "bVar1 = *(byte *)(param_1 + iVar3) >> 4" identifier = (binary_expression "*(byte *)(param_1 + iVar3) >> 4" (pointer_expression "*(byte *)(param_1 + iVar3)" * (cast_expression "(byte *)(param_1 + iVar3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3)" ( (binary_expression "param_1 + iVar3" identifier + identifier) )))) >> number_literal)) ;) (expression_statement "cVar2 = bVar1 + 0x30;" (assignment_expression "cVar2 = bVar1 + 0x30" identifier = (binary_expression "bVar1 + 0x30" identifier + number_literal)) ;) (if_statement "if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }" if (parenthesized_expression "(9 < bVar1)" ( (binary_expression "9 < bVar1" number_literal < identifier) )) (compound_statement "{\n          cVar2 = bVar1 + 0x57;\n        }" { (expression_statement "cVar2 = bVar1 + 0x57;" (assignment_expression "cVar2 = bVar1 + 0x57" identifier = (binary_expression "bVar1 + 0x57" identifier + number_literal)) ;) })) (expression_statement "*(char *)(param_3 + iVar3 * 2) = cVar2;" (assignment_expression "*(char *)(param_3 + iVar3 * 2) = cVar2" (pointer_expression "*(char *)(param_3 + iVar3 * 2)" * (cast_expression "(char *)(param_3 + iVar3 * 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + iVar3 * 2)" ( (binary_expression "param_3 + iVar3 * 2" identifier + (binary_expression "iVar3 * 2" identifier * number_literal)) )))) = identifier) ;) (expression_statement "bVar1 = *(byte *)(param_1 + iVar3) & 0xf;" (assignment_expression "bVar1 = *(byte *)(param_1 + iVar3) & 0xf" identifier = (binary_expression "*(byte *)(param_1 + iVar3) & 0xf" (pointer_expression "*(byte *)(param_1 + iVar3)" * (cast_expression "(byte *)(param_1 + iVar3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3)" ( (binary_expression "param_1 + iVar3" identifier + identifier) )))) & number_literal)) ;) (if_statement "if (bVar1 < 10) break;" if (parenthesized_expression "(bVar1 < 10)" ( (binary_expression "bVar1 < 10" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "*(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;" (assignment_expression "*(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57" (pointer_expression "*(byte *)(param_3 + 1 + iVar3 * 2)" * (cast_expression "(byte *)(param_3 + 1 + iVar3 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1 + iVar3 * 2)" ( (binary_expression "param_3 + 1 + iVar3 * 2" (binary_expression "param_3 + 1" identifier + number_literal) + (binary_expression "iVar3 * 2" identifier * number_literal)) )))) = (binary_expression "bVar1 + 0x57" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }" if (parenthesized_expression "(param_2 == iVar3)" ( (binary_expression "param_2 == iVar3" identifier == identifier) )) (compound_statement "{\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }" { (expression_statement "*(undefined1 *)(param_3 + param_2 * 2) = 0;" (assignment_expression "*(undefined1 *)(param_3 + param_2 * 2) = 0" (pointer_expression "*(undefined1 *)(param_3 + param_2 * 2)" * (cast_expression "(undefined1 *)(param_3 + param_2 * 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + param_2 * 2)" ( (binary_expression "param_3 + param_2 * 2" identifier + (binary_expression "param_2 * 2" identifier * number_literal)) )))) = number_literal) ;) (return_statement "return;" return ;) })) })) (expression_statement "*(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;" (assignment_expression "*(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30" (pointer_expression "*(byte *)(param_3 + 1 + iVar3 * 2)" * (cast_expression "(byte *)(param_3 + 1 + iVar3 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1 + iVar3 * 2)" ( (binary_expression "param_3 + 1 + iVar3 * 2" (binary_expression "param_3 + 1" identifier + number_literal) + (binary_expression "iVar3 * 2" identifier * number_literal)) )))) = (binary_expression "bVar1 + 0x30" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_2 != iVar3)" ( (binary_expression "param_2 != iVar3" identifier != identifier) )) ;) })) (expression_statement "*(undefined1 *)(param_3 + param_2 * 2) = 0;" (assignment_expression "*(undefined1 *)(param_3 + param_2 * 2) = 0" (pointer_expression "*(undefined1 *)(param_3 + param_2 * 2)" * (cast_expression "(undefined1 *)(param_3 + param_2 * 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + param_2 * 2)" ( (binary_expression "param_3 + param_2 * 2" identifier + (binary_expression "param_2 * 2" identifier * number_literal)) )))) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 cvthex(uchar *bin,size_t len,char *hex)\n\n{\n  byte bVar1;\n  char cVar2;\n  size_t sVar3;\n  \n  sVar3 = 0;\n  if (len != 0) {\n    do {\n      while( true ) {\n        bVar1 = bin[sVar3] >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        hex[sVar3 * 2] = cVar2;\n        bVar1 = bin[sVar3] & 0xf;\n        if (bVar1 < 10) break;\n        hex[sVar3 * 2 + 1] = bVar1 + 0x57;\n        sVar3 = sVar3 + 1;\n        if (len == sVar3) {\n          hex[len * 2] = '\0';\n          return;\n        }\n      }\n      hex[sVar3 * 2 + 1] = bVar1 + 0x30;\n      sVar3 = sVar3 + 1;\n    } while (len != sVar3);\n  }\n  hex[len * 2] = '\0';\n  return;\n}\n\n" (function_definition "void __regparm3 cvthex(uchar *bin,size_t len,char *hex)\n\n{\n  byte bVar1;\n  char cVar2;\n  size_t sVar3;\n  \n  sVar3 = 0;\n  if (len != 0) {\n    do {\n      while( true ) {\n        bVar1 = bin[sVar3] >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        hex[sVar3 * 2] = cVar2;\n        bVar1 = bin[sVar3] & 0xf;\n        if (bVar1 < 10) break;\n        hex[sVar3 * 2 + 1] = bVar1 + 0x57;\n        sVar3 = sVar3 + 1;\n        if (len == sVar3) {\n          hex[len * 2] = '\0';\n          return;\n        }\n      }\n      hex[sVar3 * 2 + 1] = bVar1 + 0x30;\n      sVar3 = sVar3 + 1;\n    } while (len != sVar3);\n  }\n  hex[len * 2] = '\0';\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "cvthex(uchar *bin,size_t len,char *hex)" identifier (parameter_list "(uchar *bin,size_t len,char *hex)" ( (parameter_declaration "uchar *bin" type_identifier (pointer_declarator "*bin" * identifier)) , (parameter_declaration "size_t len" primitive_type identifier) , (parameter_declaration "char *hex" primitive_type (pointer_declarator "*hex" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  size_t sVar3;\n  \n  sVar3 = 0;\n  if (len != 0) {\n    do {\n      while( true ) {\n        bVar1 = bin[sVar3] >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        hex[sVar3 * 2] = cVar2;\n        bVar1 = bin[sVar3] & 0xf;\n        if (bVar1 < 10) break;\n        hex[sVar3 * 2 + 1] = bVar1 + 0x57;\n        sVar3 = sVar3 + 1;\n        if (len == sVar3) {\n          hex[len * 2] = '\0';\n          return;\n        }\n      }\n      hex[sVar3 * 2 + 1] = bVar1 + 0x30;\n      sVar3 = sVar3 + 1;\n    } while (len != sVar3);\n  }\n  hex[len * 2] = '\0';\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) (if_statement "if (len != 0) {\n    do {\n      while( true ) {\n        bVar1 = bin[sVar3] >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        hex[sVar3 * 2] = cVar2;\n        bVar1 = bin[sVar3] & 0xf;\n        if (bVar1 < 10) break;\n        hex[sVar3 * 2 + 1] = bVar1 + 0x57;\n        sVar3 = sVar3 + 1;\n        if (len == sVar3) {\n          hex[len * 2] = '\0';\n          return;\n        }\n      }\n      hex[sVar3 * 2 + 1] = bVar1 + 0x30;\n      sVar3 = sVar3 + 1;\n    } while (len != sVar3);\n  }" if (parenthesized_expression "(len != 0)" ( (binary_expression "len != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      while( true ) {\n        bVar1 = bin[sVar3] >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        hex[sVar3 * 2] = cVar2;\n        bVar1 = bin[sVar3] & 0xf;\n        if (bVar1 < 10) break;\n        hex[sVar3 * 2 + 1] = bVar1 + 0x57;\n        sVar3 = sVar3 + 1;\n        if (len == sVar3) {\n          hex[len * 2] = '\0';\n          return;\n        }\n      }\n      hex[sVar3 * 2 + 1] = bVar1 + 0x30;\n      sVar3 = sVar3 + 1;\n    } while (len != sVar3);\n  }" { (do_statement "do {\n      while( true ) {\n        bVar1 = bin[sVar3] >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        hex[sVar3 * 2] = cVar2;\n        bVar1 = bin[sVar3] & 0xf;\n        if (bVar1 < 10) break;\n        hex[sVar3 * 2 + 1] = bVar1 + 0x57;\n        sVar3 = sVar3 + 1;\n        if (len == sVar3) {\n          hex[len * 2] = '\0';\n          return;\n        }\n      }\n      hex[sVar3 * 2 + 1] = bVar1 + 0x30;\n      sVar3 = sVar3 + 1;\n    } while (len != sVar3);" do (compound_statement "{\n      while( true ) {\n        bVar1 = bin[sVar3] >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        hex[sVar3 * 2] = cVar2;\n        bVar1 = bin[sVar3] & 0xf;\n        if (bVar1 < 10) break;\n        hex[sVar3 * 2 + 1] = bVar1 + 0x57;\n        sVar3 = sVar3 + 1;\n        if (len == sVar3) {\n          hex[len * 2] = '\0';\n          return;\n        }\n      }\n      hex[sVar3 * 2 + 1] = bVar1 + 0x30;\n      sVar3 = sVar3 + 1;\n    }" { (while_statement "while( true ) {\n        bVar1 = bin[sVar3] >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        hex[sVar3 * 2] = cVar2;\n        bVar1 = bin[sVar3] & 0xf;\n        if (bVar1 < 10) break;\n        hex[sVar3 * 2 + 1] = bVar1 + 0x57;\n        sVar3 = sVar3 + 1;\n        if (len == sVar3) {\n          hex[len * 2] = '\0';\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bVar1 = bin[sVar3] >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        hex[sVar3 * 2] = cVar2;\n        bVar1 = bin[sVar3] & 0xf;\n        if (bVar1 < 10) break;\n        hex[sVar3 * 2 + 1] = bVar1 + 0x57;\n        sVar3 = sVar3 + 1;\n        if (len == sVar3) {\n          hex[len * 2] = '\0';\n          return;\n        }\n      }" { (expression_statement "bVar1 = bin[sVar3] >> 4;" (assignment_expression "bVar1 = bin[sVar3] >> 4" identifier = (binary_expression "bin[sVar3] >> 4" (subscript_expression "bin[sVar3]" identifier [ identifier ]) >> number_literal)) ;) (expression_statement "cVar2 = bVar1 + 0x30;" (assignment_expression "cVar2 = bVar1 + 0x30" identifier = (binary_expression "bVar1 + 0x30" identifier + number_literal)) ;) (if_statement "if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }" if (parenthesized_expression "(9 < bVar1)" ( (binary_expression "9 < bVar1" number_literal < identifier) )) (compound_statement "{\n          cVar2 = bVar1 + 0x57;\n        }" { (expression_statement "cVar2 = bVar1 + 0x57;" (assignment_expression "cVar2 = bVar1 + 0x57" identifier = (binary_expression "bVar1 + 0x57" identifier + number_literal)) ;) })) (expression_statement "hex[sVar3 * 2] = cVar2;" (assignment_expression "hex[sVar3 * 2] = cVar2" (subscript_expression "hex[sVar3 * 2]" identifier [ (binary_expression "sVar3 * 2" identifier * number_literal) ]) = identifier) ;) (expression_statement "bVar1 = bin[sVar3] & 0xf;" (assignment_expression "bVar1 = bin[sVar3] & 0xf" identifier = (binary_expression "bin[sVar3] & 0xf" (subscript_expression "bin[sVar3]" identifier [ identifier ]) & number_literal)) ;) (if_statement "if (bVar1 < 10) break;" if (parenthesized_expression "(bVar1 < 10)" ( (binary_expression "bVar1 < 10" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "hex[sVar3 * 2 + 1] = bVar1 + 0x57;" (assignment_expression "hex[sVar3 * 2 + 1] = bVar1 + 0x57" (subscript_expression "hex[sVar3 * 2 + 1]" identifier [ (binary_expression "sVar3 * 2 + 1" (binary_expression "sVar3 * 2" identifier * number_literal) + number_literal) ]) = (binary_expression "bVar1 + 0x57" identifier + number_literal)) ;) (expression_statement "sVar3 = sVar3 + 1;" (assignment_expression "sVar3 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) (if_statement "if (len == sVar3) {\n          hex[len * 2] = '\0';\n          return;\n        }" if (parenthesized_expression "(len == sVar3)" ( (binary_expression "len == sVar3" identifier == identifier) )) (compound_statement "{\n          hex[len * 2] = '\0';\n          return;\n        }" { (expression_statement "hex[len * 2] = '\0';" (assignment_expression "hex[len * 2] = '\0'" (subscript_expression "hex[len * 2]" identifier [ (binary_expression "len * 2" identifier * number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (return_statement "return;" return ;) })) })) (expression_statement "hex[sVar3 * 2 + 1] = bVar1 + 0x30;" (assignment_expression "hex[sVar3 * 2 + 1] = bVar1 + 0x30" (subscript_expression "hex[sVar3 * 2 + 1]" identifier [ (binary_expression "sVar3 * 2 + 1" (binary_expression "sVar3 * 2" identifier * number_literal) + number_literal) ]) = (binary_expression "bVar1 + 0x30" identifier + number_literal)) ;) (expression_statement "sVar3 = sVar3 + 1;" (assignment_expression "sVar3 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(len != sVar3)" ( (binary_expression "len != sVar3" identifier != identifier) )) ;) })) (expression_statement "hex[len * 2] = '\0';" (assignment_expression "hex[len * 2] = '\0'" (subscript_expression "hex[len * 2]" identifier [ (binary_expression "len * 2" identifier * number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_00023670(int param_1,int param_2,int param_3)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  if (param_2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }\n  *(undefined1 *)(param_3 + param_2 * 2) = 0;\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00023670(int param_1,int param_2,int param_3)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  if (param_2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }\n  *(undefined1 *)(param_3 + param_2 * 2) = 0;\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00023670(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  if (param_2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }\n  *(undefined1 *)(param_3 + param_2 * 2) = 0;\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (param_2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }" { (do_statement "do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);" do (compound_statement "{\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    }" { (while_statement "while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }" { (expression_statement "bVar1 = *(byte *)(param_1 + iVar3) >> 4;" (assignment_expression "bVar1 = *(byte *)(param_1 + iVar3) >> 4" identifier = (binary_expression "*(byte *)(param_1 + iVar3) >> 4" (pointer_expression "*(byte *)(param_1 + iVar3)" * (cast_expression "(byte *)(param_1 + iVar3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3)" ( (binary_expression "param_1 + iVar3" identifier + identifier) )))) >> number_literal)) ;) (expression_statement "cVar2 = bVar1 + 0x30;" (assignment_expression "cVar2 = bVar1 + 0x30" identifier = (binary_expression "bVar1 + 0x30" identifier + number_literal)) ;) (if_statement "if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }" if (parenthesized_expression "(9 < bVar1)" ( (binary_expression "9 < bVar1" number_literal < identifier) )) (compound_statement "{\n          cVar2 = bVar1 + 0x57;\n        }" { (expression_statement "cVar2 = bVar1 + 0x57;" (assignment_expression "cVar2 = bVar1 + 0x57" identifier = (binary_expression "bVar1 + 0x57" identifier + number_literal)) ;) })) (expression_statement "*(char *)(param_3 + iVar3 * 2) = cVar2;" (assignment_expression "*(char *)(param_3 + iVar3 * 2) = cVar2" (pointer_expression "*(char *)(param_3 + iVar3 * 2)" * (cast_expression "(char *)(param_3 + iVar3 * 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + iVar3 * 2)" ( (binary_expression "param_3 + iVar3 * 2" identifier + (binary_expression "iVar3 * 2" identifier * number_literal)) )))) = identifier) ;) (expression_statement "bVar1 = *(byte *)(param_1 + iVar3) & 0xf;" (assignment_expression "bVar1 = *(byte *)(param_1 + iVar3) & 0xf" identifier = (binary_expression "*(byte *)(param_1 + iVar3) & 0xf" (pointer_expression "*(byte *)(param_1 + iVar3)" * (cast_expression "(byte *)(param_1 + iVar3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3)" ( (binary_expression "param_1 + iVar3" identifier + identifier) )))) & number_literal)) ;) (if_statement "if (bVar1 < 10) break;" if (parenthesized_expression "(bVar1 < 10)" ( (binary_expression "bVar1 < 10" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "*(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;" (assignment_expression "*(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57" (pointer_expression "*(byte *)(param_3 + 1 + iVar3 * 2)" * (cast_expression "(byte *)(param_3 + 1 + iVar3 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1 + iVar3 * 2)" ( (binary_expression "param_3 + 1 + iVar3 * 2" (binary_expression "param_3 + 1" identifier + number_literal) + (binary_expression "iVar3 * 2" identifier * number_literal)) )))) = (binary_expression "bVar1 + 0x57" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }" if (parenthesized_expression "(param_2 == iVar3)" ( (binary_expression "param_2 == iVar3" identifier == identifier) )) (compound_statement "{\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }" { (expression_statement "*(undefined1 *)(param_3 + param_2 * 2) = 0;" (assignment_expression "*(undefined1 *)(param_3 + param_2 * 2) = 0" (pointer_expression "*(undefined1 *)(param_3 + param_2 * 2)" * (cast_expression "(undefined1 *)(param_3 + param_2 * 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + param_2 * 2)" ( (binary_expression "param_3 + param_2 * 2" identifier + (binary_expression "param_2 * 2" identifier * number_literal)) )))) = number_literal) ;) (return_statement "return;" return ;) })) })) (expression_statement "*(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;" (assignment_expression "*(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30" (pointer_expression "*(byte *)(param_3 + 1 + iVar3 * 2)" * (cast_expression "(byte *)(param_3 + 1 + iVar3 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1 + iVar3 * 2)" ( (binary_expression "param_3 + 1 + iVar3 * 2" (binary_expression "param_3 + 1" identifier + number_literal) + (binary_expression "iVar3 * 2" identifier * number_literal)) )))) = (binary_expression "bVar1 + 0x30" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_2 != iVar3)" ( (binary_expression "param_2 != iVar3" identifier != identifier) )) ;) })) (expression_statement "*(undefined1 *)(param_3 + param_2 * 2) = 0;" (assignment_expression "*(undefined1 *)(param_3 + param_2 * 2) = 0" (pointer_expression "*(undefined1 *)(param_3 + param_2 * 2)" * (cast_expression "(undefined1 *)(param_3 + param_2 * 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + param_2 * 2)" ( (binary_expression "param_3 + param_2 * 2" identifier + (binary_expression "param_2 * 2" identifier * number_literal)) )))) = number_literal) ;) (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 IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = LIT) ;) (return_statement return ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = LIT) ;) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_00023670(int param_1,int param_2,int param_3)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  if (param_2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }\n  *(undefined1 *)(param_3 + param_2 * 2) = 0;\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00023670(int param_1,int param_2,int param_3)" (identifier "FUN_00023670") (parameter_list "(int param_1,int param_2,int param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  if (param_2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }\n  *(undefined1 *)(param_3 + param_2 * 2) = 0;\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);\n  }" ({ "{") (do_statement "do {\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    } while (param_2 != iVar3);" (do "do") (compound_statement "{\n      while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }\n      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;\n      iVar3 = iVar3 + 1;\n    }" ({ "{") (while_statement "while( true ) {\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        bVar1 = *(byte *)(param_1 + iVar3) >> 4;\n        cVar2 = bVar1 + 0x30;\n        if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }\n        *(char *)(param_3 + iVar3 * 2) = cVar2;\n        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;\n        if (bVar1 < 10) break;\n        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;\n        iVar3 = iVar3 + 1;\n        if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }\n      }" ({ "{") (expression_statement "bVar1 = *(byte *)(param_1 + iVar3) >> 4;" (assignment_expression "bVar1 = *(byte *)(param_1 + iVar3) >> 4" (identifier "bVar1") (= "=") (binary_expression "*(byte *)(param_1 + iVar3) >> 4" (pointer_expression "*(byte *)(param_1 + iVar3)" (* "*") (cast_expression "(byte *)(param_1 + iVar3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar3)" (( "(") (binary_expression "param_1 + iVar3" (identifier "param_1") (+ "+") (identifier "iVar3")) () ")")))) (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "cVar2 = bVar1 + 0x30;" (assignment_expression "cVar2 = bVar1 + 0x30" (identifier "cVar2") (= "=") (binary_expression "bVar1 + 0x30" (identifier "bVar1") (+ "+") (number_literal "0x30"))) (; ";")) (if_statement "if (9 < bVar1) {\n          cVar2 = bVar1 + 0x57;\n        }" (if "if") (parenthesized_expression "(9 < bVar1)" (( "(") (binary_expression "9 < bVar1" (number_literal "9") (< "<") (identifier "bVar1")) () ")")) (compound_statement "{\n          cVar2 = bVar1 + 0x57;\n        }" ({ "{") (expression_statement "cVar2 = bVar1 + 0x57;" (assignment_expression "cVar2 = bVar1 + 0x57" (identifier "cVar2") (= "=") (binary_expression "bVar1 + 0x57" (identifier "bVar1") (+ "+") (number_literal "0x57"))) (; ";")) (} "}"))) (expression_statement "*(char *)(param_3 + iVar3 * 2) = cVar2;" (assignment_expression "*(char *)(param_3 + iVar3 * 2) = cVar2" (pointer_expression "*(char *)(param_3 + iVar3 * 2)" (* "*") (cast_expression "(char *)(param_3 + iVar3 * 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + iVar3 * 2)" (( "(") (binary_expression "param_3 + iVar3 * 2" (identifier "param_3") (+ "+") (binary_expression "iVar3 * 2" (identifier "iVar3") (* "*") (number_literal "2"))) () ")")))) (= "=") (identifier "cVar2")) (; ";")) (expression_statement "bVar1 = *(byte *)(param_1 + iVar3) & 0xf;" (assignment_expression "bVar1 = *(byte *)(param_1 + iVar3) & 0xf" (identifier "bVar1") (= "=") (binary_expression "*(byte *)(param_1 + iVar3) & 0xf" (pointer_expression "*(byte *)(param_1 + iVar3)" (* "*") (cast_expression "(byte *)(param_1 + iVar3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar3)" (( "(") (binary_expression "param_1 + iVar3" (identifier "param_1") (+ "+") (identifier "iVar3")) () ")")))) (& "&") (number_literal "0xf"))) (; ";")) (if_statement "if (bVar1 < 10) break;" (if "if") (parenthesized_expression "(bVar1 < 10)" (( "(") (binary_expression "bVar1 < 10" (identifier "bVar1") (< "<") (number_literal "10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;" (assignment_expression "*(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57" (pointer_expression "*(byte *)(param_3 + 1 + iVar3 * 2)" (* "*") (cast_expression "(byte *)(param_3 + 1 + iVar3 * 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 1 + iVar3 * 2)" (( "(") (binary_expression "param_3 + 1 + iVar3 * 2" (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) (+ "+") (binary_expression "iVar3 * 2" (identifier "iVar3") (* "*") (number_literal "2"))) () ")")))) (= "=") (binary_expression "bVar1 + 0x57" (identifier "bVar1") (+ "+") (number_literal "0x57"))) (; ";")) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_2 == iVar3) {\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }" (if "if") (parenthesized_expression "(param_2 == iVar3)" (( "(") (binary_expression "param_2 == iVar3" (identifier "param_2") (== "==") (identifier "iVar3")) () ")")) (compound_statement "{\n          *(undefined1 *)(param_3 + param_2 * 2) = 0;\n          return;\n        }" ({ "{") (expression_statement "*(undefined1 *)(param_3 + param_2 * 2) = 0;" (assignment_expression "*(undefined1 *)(param_3 + param_2 * 2) = 0" (pointer_expression "*(undefined1 *)(param_3 + param_2 * 2)" (* "*") (cast_expression "(undefined1 *)(param_3 + param_2 * 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + param_2 * 2)" (( "(") (binary_expression "param_3 + param_2 * 2" (identifier "param_3") (+ "+") (binary_expression "param_2 * 2" (identifier "param_2") (* "*") (number_literal "2"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "*(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;" (assignment_expression "*(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30" (pointer_expression "*(byte *)(param_3 + 1 + iVar3 * 2)" (* "*") (cast_expression "(byte *)(param_3 + 1 + iVar3 * 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 1 + iVar3 * 2)" (( "(") (binary_expression "param_3 + 1 + iVar3 * 2" (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) (+ "+") (binary_expression "iVar3 * 2" (identifier "iVar3") (* "*") (number_literal "2"))) () ")")))) (= "=") (binary_expression "bVar1 + 0x30" (identifier "bVar1") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 != iVar3)" (( "(") (binary_expression "param_2 != iVar3" (identifier "param_2") (!= "!=") (identifier "iVar3")) () ")")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(param_3 + param_2 * 2) = 0;" (assignment_expression "*(undefined1 *)(param_3 + param_2 * 2) = 0" (pointer_expression "*(undefined1 *)(param_3 + param_2 * 2)" (* "*") (cast_expression "(undefined1 *)(param_3 + param_2 * 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + param_2 * 2)" (( "(") (binary_expression "param_3 + param_2 * 2" (identifier "param_3") (+ "+") (binary_expression "param_2 * 2" (identifier "param_2") (* "*") (number_literal "2"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void __regparm3 function_1(type_1 *bin,size_t var_1,char *hex)

{
  type_2 var_2;
  char cVar2;
  size_t var_3;
  
  var_3 = 0;
  if (var_1 != 0) {
    do {
      while( true ) {
        var_2 = bin[var_3] >> 4;
        cVar2 = var_2 + 0x30;
        if (9 < var_2) {
          cVar2 = var_2 + 0x57;
        }
        hex[var_3 * 2] = cVar2;
        var_2 = bin[var_3] & 0xf;
        if (var_2 < 10) break;
        hex[var_3 * 2 + 1] = var_2 + 0x57;
        var_3 = var_3 + 1;
        if (var_1 == var_3) {
          hex[var_1 * 2] = '\0';
          return;
        }
      }
      hex[var_3 * 2 + 1] = var_2 + 0x30;
      var_3 = var_3 + 1;
    } while (var_1 != var_3);
  }
  hex[var_1 * 2] = '\0';
  return;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (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 (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) (return_statement))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) (return_statement))))

void __regparm3 MASKED(int param_1,int param_2,int param_3)

{
  byte bVar1;
  char cVar2;
  int iVar3;
  
  iVar3 = 0;
  if (param_2 != 0) {
    do {
      while( true ) {
        bVar1 = *(byte *)(param_1 + iVar3) >> 4;
        cVar2 = bVar1 + 0x30;
        if (9 < bVar1) {
          cVar2 = bVar1 + 0x57;
        }
        *(char *)(param_3 + iVar3 * 2) = cVar2;
        bVar1 = *(byte *)(param_1 + iVar3) & 0xf;
        if (bVar1 < 10) break;
        *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x57;
        iVar3 = iVar3 + 1;
        if (param_2 == iVar3) {
          *(undefined1 *)(param_3 + param_2 * 2) = 0;
          return;
        }
      }
      *(byte *)(param_3 + 1 + iVar3 * 2) = bVar1 + 0x30;
      iVar3 = iVar3 + 1;
    } while (param_2 != iVar3);
  }
  *(undefined1 *)(param_3 + param_2 * 2) = 0;
  return;
}

