
/* WARNING: Unknown calling convention */

char bb_process_escape_sequence(char **ptr)

{
  byte bVar1;
  char *pcVar2;
  uint uVar3;
  byte *pbVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  
  pbVar4 = (byte *)*ptr;
  uVar7 = 8;
  bVar1 = *pbVar4;
  if (bVar1 == 0x78) {
    pbVar4 = pbVar4 + 1;
    uVar7 = 0x10;
  }
  uVar3 = (uint)(bVar1 == 0x78);
  uVar6 = 0;
  do {
    uVar5 = *pbVar4 - 0x30;
    if (9 < uVar5) {
      bVar1 = *pbVar4 | 0x20;
      if (0x60 < bVar1) {
        uVar5 = bVar1 - 0x57;
        goto LAB_001a1527;
      }
LAB_001a152c:
      if (uVar7 == 0x10) {
        uVar5 = uVar6;
        if (uVar3 == 1) {
          return '\\';
        }
      }
      else {
LAB_001a1564:
        uVar5 = uVar6;
        if (uVar3 == 0) {
          pcVar2 = "abefnrtv\\";
          goto LAB_001a1572;
        }
      }
      break;
    }
LAB_001a1527:
    if (uVar7 <= uVar5) goto LAB_001a152c;
    uVar5 = uVar6 * uVar7 + uVar5;
    if (0xff < uVar5) goto LAB_001a1564;
    pbVar4 = pbVar4 + 1;
    uVar3 = uVar3 + 1;
    uVar6 = uVar5;
  } while (uVar3 != 3);
  goto LAB_001a153c;
  while (pcVar2 = (char *)((byte *)pcVar2 + 1), *pcVar2 != 0) {
LAB_001a1572:
    if (*pcVar2 == *pbVar4) {
      pbVar4 = pbVar4 + 1;
      break;
    }
  }
  uVar5 = (uint)((byte *)pcVar2)[10];
LAB_001a153c:
  *ptr = (char *)pbVar4;
  return (char)uVar5;
}



uint FUN_001a14e4(undefined8 *param_1)

{
  byte bVar1;
  byte *pbVar2;
  uint uVar3;
  byte *pbVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  
  pbVar4 = (byte *)*param_1;
  uVar7 = 8;
  bVar1 = *pbVar4;
  if (bVar1 == 0x78) {
    pbVar4 = pbVar4 + 1;
    uVar7 = 0x10;
  }
  uVar3 = (uint)(bVar1 == 0x78);
  uVar6 = 0;
  do {
    uVar5 = *pbVar4 - 0x30;
    if (9 < uVar5) {
      bVar1 = *pbVar4 | 0x20;
      if (0x60 < bVar1) {
        uVar5 = bVar1 - 0x57;
        goto LAB_001a1527;
      }
LAB_001a152c:
      if (uVar7 == 0x10) {
        uVar5 = uVar6;
        if (uVar3 == 1) {
          return 0x5c;
        }
      }
      else {
LAB_001a1564:
        uVar5 = uVar6;
        if (uVar3 == 0) {
          pbVar2 = &DAT_001c106b;
          goto LAB_001a1572;
        }
      }
      break;
    }
LAB_001a1527:
    if (uVar7 <= uVar5) goto LAB_001a152c;
    uVar5 = uVar6 * uVar7 + uVar5;
    if (0xff < uVar5) goto LAB_001a1564;
    pbVar4 = pbVar4 + 1;
    uVar3 = uVar3 + 1;
    uVar6 = uVar5;
  } while (uVar3 != 3);
  goto LAB_001a153c;
  while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {
LAB_001a1572:
    if (*pbVar2 == *pbVar4) {
      pbVar4 = pbVar4 + 1;
      break;
    }
  }
  uVar5 = (uint)pbVar2[10];
LAB_001a153c:
  *param_1 = pbVar4;
  return uVar5;
}


MOV RDX,qword ptr [RDI]
MOV R9D,0x8
MOV ECX,0x0
CMP byte ptr [RDX],0x78
JNZ 0x001a1506
ADD RDX,0x1
MOV R9D,0x10
MOV ECX,0x1
MOV R8D,0x0
MOVZX EAX,byte ptr [RDX]
MOVZX ESI,AL
SUB ESI,0x30
CMP ESI,0x9
JBE 0x001a1527
OR EAX,0x20
CMP AL,0x60
JBE 0x001a152c
MOVZX EAX,AL
LEA ESI,[RAX + -0x57]
CMP ESI,R9D
JC 0x001a1543
CMP R9D,0x10
JNZ 0x001a1564
MOV EAX,0x5c
CMP ECX,0x1
JZ 0x001a1542
MOV qword ptr [RDI],RDX
MOV EAX,R8D
RET
MOV EAX,R8D
IMUL EAX,R9D
ADD EAX,ESI
CMP EAX,0xff
JA 0x001a1564
ADD RDX,0x1
ADD ECX,0x1
MOV R8D,EAX
CMP ECX,0x3
JNZ 0x001a150c
JMP 0x001a153c
TEST ECX,ECX
JNZ 0x001a153c
MOVZX ECX,byte ptr [RDX]
LEA RAX,[0x1c106b]
CMP byte ptr [RAX],CL
JNZ 0x001a1581
ADD RDX,0x1
MOVZX R8D,byte ptr [RAX + 0xa]
JMP 0x001a153c
ADD RAX,0x1
CMP byte ptr [RAX],0x0
JNZ 0x001a1572
JMP 0x001a157a
(translation_unit "uint FUN_001a14e4(undefined8 *param_1)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte *pbVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  pbVar4 = (byte *)*param_1;\n  uVar7 = 8;\n  bVar1 = *pbVar4;\n  if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }\n  uVar3 = (uint)(bVar1 == 0x78);\n  uVar6 = 0;\n  do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);\n  goto LAB_001a153c;\n  while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }\n  uVar5 = (uint)pbVar2[10];\nLAB_001a153c:\n  *param_1 = pbVar4;\n  return uVar5;\n}\n\n" (function_definition "uint FUN_001a14e4(undefined8 *param_1)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte *pbVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  pbVar4 = (byte *)*param_1;\n  uVar7 = 8;\n  bVar1 = *pbVar4;\n  if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }\n  uVar3 = (uint)(bVar1 == 0x78);\n  uVar6 = 0;\n  do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);\n  goto LAB_001a153c;\n  while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }\n  uVar5 = (uint)pbVar2[10];\nLAB_001a153c:\n  *param_1 = pbVar4;\n  return uVar5;\n}" type_identifier (function_declarator "FUN_001a14e4(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte *pbVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  pbVar4 = (byte *)*param_1;\n  uVar7 = 8;\n  bVar1 = *pbVar4;\n  if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }\n  uVar3 = (uint)(bVar1 == 0x78);\n  uVar6 = 0;\n  do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);\n  goto LAB_001a153c;\n  while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }\n  uVar5 = (uint)pbVar2[10];\nLAB_001a153c:\n  *param_1 = pbVar4;\n  return uVar5;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (expression_statement "pbVar4 = (byte *)*param_1;" (assignment_expression "pbVar4 = (byte *)*param_1" identifier = (cast_expression "(byte *)*param_1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "uVar7 = 8;" (assignment_expression "uVar7 = 8" identifier = number_literal) ;) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (if_statement "if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }" if (parenthesized_expression "(bVar1 == 0x78)" ( (binary_expression "bVar1 == 0x78" identifier == number_literal) )) (compound_statement "{\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }" { (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = 0x10;" (assignment_expression "uVar7 = 0x10" identifier = number_literal) ;) })) (expression_statement "uVar3 = (uint)(bVar1 == 0x78);" (assignment_expression "uVar3 = (uint)(bVar1 == 0x78)" identifier = (call_expression "(uint)(bVar1 == 0x78)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar1 == 0x78)" ( (binary_expression "bVar1 == 0x78" identifier == number_literal) )))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);" do (compound_statement "{\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  }" { (expression_statement "uVar5 = *pbVar4 - 0x30;" (assignment_expression "uVar5 = *pbVar4 - 0x30" identifier = (binary_expression "*pbVar4 - 0x30" (pointer_expression "*pbVar4" * identifier) - number_literal)) ;) (if_statement "if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }" if (parenthesized_expression "(9 < uVar5)" ( (binary_expression "9 < uVar5" number_literal < identifier) )) (compound_statement "{\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }" { (expression_statement "bVar1 = *pbVar4 | 0x20;" (assignment_expression "bVar1 = *pbVar4 | 0x20" identifier = (binary_expression "*pbVar4 | 0x20" (pointer_expression "*pbVar4" * identifier) | number_literal)) ;) (if_statement "if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }" if (parenthesized_expression "(0x60 < bVar1)" ( (binary_expression "0x60 < bVar1" number_literal < identifier) )) (compound_statement "{\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }" { (expression_statement "uVar5 = bVar1 - 0x57;" (assignment_expression "uVar5 = bVar1 - 0x57" identifier = (binary_expression "bVar1 - 0x57" identifier - number_literal)) ;) (goto_statement "goto LAB_001a1527;" goto statement_identifier ;) })) (labeled_statement "LAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }" statement_identifier : (if_statement "if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }" if (parenthesized_expression "(uVar7 == 0x10)" ( (binary_expression "uVar7 == 0x10" identifier == number_literal) )) (compound_statement "{\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }" { (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" identifier = identifier) ;) (if_statement "if (uVar3 == 1) {\n          return 0x5c;\n        }" if (parenthesized_expression "(uVar3 == 1)" ( (binary_expression "uVar3 == 1" identifier == number_literal) )) (compound_statement "{\n          return 0x5c;\n        }" { (return_statement "return 0x5c;" return number_literal ;) })) }) (else_clause "else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }" else (compound_statement "{\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }" { (labeled_statement "LAB_001a1564:\n        uVar5 = uVar6;" statement_identifier : (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" identifier = identifier) ;)) (if_statement "if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }" { (expression_statement "pbVar2 = &DAT_001c106b;" (assignment_expression "pbVar2 = &DAT_001c106b" identifier = (pointer_expression "&DAT_001c106b" & identifier)) ;) (goto_statement "goto LAB_001a1572;" goto statement_identifier ;) })) })))) (break_statement "break;" break ;) })) (labeled_statement "LAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;" statement_identifier : (if_statement "if (uVar7 <= uVar5) goto LAB_001a152c;" if (parenthesized_expression "(uVar7 <= uVar5)" ( (binary_expression "uVar7 <= uVar5" identifier <= identifier) )) (goto_statement "goto LAB_001a152c;" goto statement_identifier ;))) (expression_statement "uVar5 = uVar6 * uVar7 + uVar5;" (assignment_expression "uVar5 = uVar6 * uVar7 + uVar5" identifier = (binary_expression "uVar6 * uVar7 + uVar5" (binary_expression "uVar6 * uVar7" identifier * identifier) + identifier)) ;) (if_statement "if (0xff < uVar5) goto LAB_001a1564;" if (parenthesized_expression "(0xff < uVar5)" ( (binary_expression "0xff < uVar5" number_literal < identifier) )) (goto_statement "goto LAB_001a1564;" goto statement_identifier ;)) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = uVar3 + 1;" (assignment_expression "uVar3 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) }) while (parenthesized_expression "(uVar3 != 3)" ( (binary_expression "uVar3 != 3" identifier != number_literal) )) ;) (goto_statement "goto LAB_001a153c;" goto statement_identifier ;) (while_statement "while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }" while (parenthesized_expression "(pbVar2 = pbVar2 + 1, *pbVar2 != 0)" ( (comma_expression "pbVar2 = pbVar2 + 1, *pbVar2 != 0" (assignment_expression "pbVar2 = pbVar2 + 1" identifier = (binary_expression "pbVar2 + 1" identifier + number_literal)) , (binary_expression "*pbVar2 != 0" (pointer_expression "*pbVar2" * identifier) != number_literal)) )) (compound_statement "{\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }" { (labeled_statement "LAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }" statement_identifier : (if_statement "if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }" if (parenthesized_expression "(*pbVar2 == *pbVar4)" ( (binary_expression "*pbVar2 == *pbVar4" (pointer_expression "*pbVar2" * identifier) == (pointer_expression "*pbVar4" * identifier)) )) (compound_statement "{\n      pbVar4 = pbVar4 + 1;\n      break;\n    }" { (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (break_statement "break;" break ;) }))) })) (expression_statement "uVar5 = (uint)pbVar2[10];" (assignment_expression "uVar5 = (uint)pbVar2[10]" identifier = (cast_expression "(uint)pbVar2[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar2[10]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_001a153c:\n  *param_1 = pbVar4;" statement_identifier : (expression_statement "*param_1 = pbVar4;" (assignment_expression "*param_1 = pbVar4" (pointer_expression "*param_1" * identifier) = identifier) ;)) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nchar bb_process_escape_sequence(char **ptr)\n\n{\n  byte bVar1;\n  char *pcVar2;\n  uint uVar3;\n  byte *pbVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  pbVar4 = (byte *)*ptr;\n  uVar7 = 8;\n  bVar1 = *pbVar4;\n  if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }\n  uVar3 = (uint)(bVar1 == 0x78);\n  uVar6 = 0;\n  do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return '\\';\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);\n  goto LAB_001a153c;\n  while (pcVar2 = (char *)((byte *)pcVar2 + 1), *pcVar2 != 0) {\nLAB_001a1572:\n    if (*pcVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }\n  uVar5 = (uint)((byte *)pcVar2)[10];\nLAB_001a153c:\n  *ptr = (char *)pbVar4;\n  return (char)uVar5;\n}\n\n" comment (function_definition "char bb_process_escape_sequence(char **ptr)\n\n{\n  byte bVar1;\n  char *pcVar2;\n  uint uVar3;\n  byte *pbVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  pbVar4 = (byte *)*ptr;\n  uVar7 = 8;\n  bVar1 = *pbVar4;\n  if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }\n  uVar3 = (uint)(bVar1 == 0x78);\n  uVar6 = 0;\n  do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return '\\';\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);\n  goto LAB_001a153c;\n  while (pcVar2 = (char *)((byte *)pcVar2 + 1), *pcVar2 != 0) {\nLAB_001a1572:\n    if (*pcVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }\n  uVar5 = (uint)((byte *)pcVar2)[10];\nLAB_001a153c:\n  *ptr = (char *)pbVar4;\n  return (char)uVar5;\n}" primitive_type (function_declarator "bb_process_escape_sequence(char **ptr)" identifier (parameter_list "(char **ptr)" ( (parameter_declaration "char **ptr" primitive_type (pointer_declarator "**ptr" * (pointer_declarator "*ptr" * identifier))) ))) (compound_statement "{\n  byte bVar1;\n  char *pcVar2;\n  uint uVar3;\n  byte *pbVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  pbVar4 = (byte *)*ptr;\n  uVar7 = 8;\n  bVar1 = *pbVar4;\n  if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }\n  uVar3 = (uint)(bVar1 == 0x78);\n  uVar6 = 0;\n  do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return '\\';\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);\n  goto LAB_001a153c;\n  while (pcVar2 = (char *)((byte *)pcVar2 + 1), *pcVar2 != 0) {\nLAB_001a1572:\n    if (*pcVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }\n  uVar5 = (uint)((byte *)pcVar2)[10];\nLAB_001a153c:\n  *ptr = (char *)pbVar4;\n  return (char)uVar5;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (expression_statement "pbVar4 = (byte *)*ptr;" (assignment_expression "pbVar4 = (byte *)*ptr" identifier = (cast_expression "(byte *)*ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*ptr" * identifier))) ;) (expression_statement "uVar7 = 8;" (assignment_expression "uVar7 = 8" identifier = number_literal) ;) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (if_statement "if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }" if (parenthesized_expression "(bVar1 == 0x78)" ( (binary_expression "bVar1 == 0x78" identifier == number_literal) )) (compound_statement "{\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }" { (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = 0x10;" (assignment_expression "uVar7 = 0x10" identifier = number_literal) ;) })) (expression_statement "uVar3 = (uint)(bVar1 == 0x78);" (assignment_expression "uVar3 = (uint)(bVar1 == 0x78)" identifier = (call_expression "(uint)(bVar1 == 0x78)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar1 == 0x78)" ( (binary_expression "bVar1 == 0x78" identifier == number_literal) )))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return '\\';\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);" do (compound_statement "{\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return '\\';\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  }" { (expression_statement "uVar5 = *pbVar4 - 0x30;" (assignment_expression "uVar5 = *pbVar4 - 0x30" identifier = (binary_expression "*pbVar4 - 0x30" (pointer_expression "*pbVar4" * identifier) - number_literal)) ;) (if_statement "if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return '\\';\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }" if (parenthesized_expression "(9 < uVar5)" ( (binary_expression "9 < uVar5" number_literal < identifier) )) (compound_statement "{\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return '\\';\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }" { (expression_statement "bVar1 = *pbVar4 | 0x20;" (assignment_expression "bVar1 = *pbVar4 | 0x20" identifier = (binary_expression "*pbVar4 | 0x20" (pointer_expression "*pbVar4" * identifier) | number_literal)) ;) (if_statement "if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }" if (parenthesized_expression "(0x60 < bVar1)" ( (binary_expression "0x60 < bVar1" number_literal < identifier) )) (compound_statement "{\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }" { (expression_statement "uVar5 = bVar1 - 0x57;" (assignment_expression "uVar5 = bVar1 - 0x57" identifier = (binary_expression "bVar1 - 0x57" identifier - number_literal)) ;) (goto_statement "goto LAB_001a1527;" goto statement_identifier ;) })) (labeled_statement "LAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return '\\';\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }\n      }" statement_identifier : (if_statement "if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return '\\';\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }\n      }" if (parenthesized_expression "(uVar7 == 0x10)" ( (binary_expression "uVar7 == 0x10" identifier == number_literal) )) (compound_statement "{\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return '\\';\n        }\n      }" { (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" identifier = identifier) ;) (if_statement "if (uVar3 == 1) {\n          return '\\';\n        }" if (parenthesized_expression "(uVar3 == 1)" ( (binary_expression "uVar3 == 1" identifier == number_literal) )) (compound_statement "{\n          return '\\';\n        }" { (return_statement "return '\\';" return (char_literal "'\\'" ' escape_sequence ') ;) })) }) (else_clause "else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }\n      }" else (compound_statement "{\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }\n      }" { (labeled_statement "LAB_001a1564:\n        uVar5 = uVar6;" statement_identifier : (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" identifier = identifier) ;)) (if_statement "if (uVar3 == 0) {\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar2 = "abefnrtv\\";\n          goto LAB_001a1572;\n        }" { (expression_statement "pcVar2 = "abefnrtv\\";" (assignment_expression "pcVar2 = "abefnrtv\\"" identifier = (string_literal ""abefnrtv\\"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_001a1572;" goto statement_identifier ;) })) })))) (break_statement "break;" break ;) })) (labeled_statement "LAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;" statement_identifier : (if_statement "if (uVar7 <= uVar5) goto LAB_001a152c;" if (parenthesized_expression "(uVar7 <= uVar5)" ( (binary_expression "uVar7 <= uVar5" identifier <= identifier) )) (goto_statement "goto LAB_001a152c;" goto statement_identifier ;))) (expression_statement "uVar5 = uVar6 * uVar7 + uVar5;" (assignment_expression "uVar5 = uVar6 * uVar7 + uVar5" identifier = (binary_expression "uVar6 * uVar7 + uVar5" (binary_expression "uVar6 * uVar7" identifier * identifier) + identifier)) ;) (if_statement "if (0xff < uVar5) goto LAB_001a1564;" if (parenthesized_expression "(0xff < uVar5)" ( (binary_expression "0xff < uVar5" number_literal < identifier) )) (goto_statement "goto LAB_001a1564;" goto statement_identifier ;)) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = uVar3 + 1;" (assignment_expression "uVar3 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) }) while (parenthesized_expression "(uVar3 != 3)" ( (binary_expression "uVar3 != 3" identifier != number_literal) )) ;) (goto_statement "goto LAB_001a153c;" goto statement_identifier ;) (while_statement "while (pcVar2 = (char *)((byte *)pcVar2 + 1), *pcVar2 != 0) {\nLAB_001a1572:\n    if (*pcVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }" while (parenthesized_expression "(pcVar2 = (char *)((byte *)pcVar2 + 1), *pcVar2 != 0)" ( (comma_expression "pcVar2 = (char *)((byte *)pcVar2 + 1), *pcVar2 != 0" (assignment_expression "pcVar2 = (char *)((byte *)pcVar2 + 1)" identifier = (cast_expression "(char *)((byte *)pcVar2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)pcVar2 + 1)" ( (binary_expression "(byte *)pcVar2 + 1" (cast_expression "(byte *)pcVar2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) , (binary_expression "*pcVar2 != 0" (pointer_expression "*pcVar2" * identifier) != number_literal)) )) (compound_statement "{\nLAB_001a1572:\n    if (*pcVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }" { (labeled_statement "LAB_001a1572:\n    if (*pcVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }" statement_identifier : (if_statement "if (*pcVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }" if (parenthesized_expression "(*pcVar2 == *pbVar4)" ( (binary_expression "*pcVar2 == *pbVar4" (pointer_expression "*pcVar2" * identifier) == (pointer_expression "*pbVar4" * identifier)) )) (compound_statement "{\n      pbVar4 = pbVar4 + 1;\n      break;\n    }" { (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (break_statement "break;" break ;) }))) })) (expression_statement "uVar5 = (uint)((byte *)pcVar2)[10];" (assignment_expression "uVar5 = (uint)((byte *)pcVar2)[10]" identifier = (subscript_expression "(uint)((byte *)pcVar2)[10]" (call_expression "(uint)((byte *)pcVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte *)pcVar2)" ( (cast_expression "(byte *)pcVar2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) [ number_literal ])) ;) (labeled_statement "LAB_001a153c:\n  *ptr = (char *)pbVar4;" statement_identifier : (expression_statement "*ptr = (char *)pbVar4;" (assignment_expression "*ptr = (char *)pbVar4" (pointer_expression "*ptr" * identifier) = (cast_expression "(char *)pbVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (return_statement "return (char)uVar5;" return (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier) ;) })))
(translation_unit "uint FUN_001a14e4(undefined8 *param_1)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte *pbVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  pbVar4 = (byte *)*param_1;\n  uVar7 = 8;\n  bVar1 = *pbVar4;\n  if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }\n  uVar3 = (uint)(bVar1 == 0x78);\n  uVar6 = 0;\n  do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);\n  goto LAB_001a153c;\n  while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }\n  uVar5 = (uint)pbVar2[10];\nLAB_001a153c:\n  *param_1 = pbVar4;\n  return uVar5;\n}\n\n" (function_definition "uint FUN_001a14e4(undefined8 *param_1)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte *pbVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  pbVar4 = (byte *)*param_1;\n  uVar7 = 8;\n  bVar1 = *pbVar4;\n  if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }\n  uVar3 = (uint)(bVar1 == 0x78);\n  uVar6 = 0;\n  do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);\n  goto LAB_001a153c;\n  while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }\n  uVar5 = (uint)pbVar2[10];\nLAB_001a153c:\n  *param_1 = pbVar4;\n  return uVar5;\n}" type_identifier (function_declarator "FUN_001a14e4(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte *pbVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  pbVar4 = (byte *)*param_1;\n  uVar7 = 8;\n  bVar1 = *pbVar4;\n  if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }\n  uVar3 = (uint)(bVar1 == 0x78);\n  uVar6 = 0;\n  do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);\n  goto LAB_001a153c;\n  while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }\n  uVar5 = (uint)pbVar2[10];\nLAB_001a153c:\n  *param_1 = pbVar4;\n  return uVar5;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (expression_statement "pbVar4 = (byte *)*param_1;" (assignment_expression "pbVar4 = (byte *)*param_1" identifier = (cast_expression "(byte *)*param_1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "uVar7 = 8;" (assignment_expression "uVar7 = 8" identifier = number_literal) ;) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (if_statement "if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }" if (parenthesized_expression "(bVar1 == 0x78)" ( (binary_expression "bVar1 == 0x78" identifier == number_literal) )) (compound_statement "{\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }" { (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = 0x10;" (assignment_expression "uVar7 = 0x10" identifier = number_literal) ;) })) (expression_statement "uVar3 = (uint)(bVar1 == 0x78);" (assignment_expression "uVar3 = (uint)(bVar1 == 0x78)" identifier = (call_expression "(uint)(bVar1 == 0x78)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar1 == 0x78)" ( (binary_expression "bVar1 == 0x78" identifier == number_literal) )))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);" do (compound_statement "{\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  }" { (expression_statement "uVar5 = *pbVar4 - 0x30;" (assignment_expression "uVar5 = *pbVar4 - 0x30" identifier = (binary_expression "*pbVar4 - 0x30" (pointer_expression "*pbVar4" * identifier) - number_literal)) ;) (if_statement "if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }" if (parenthesized_expression "(9 < uVar5)" ( (binary_expression "9 < uVar5" number_literal < identifier) )) (compound_statement "{\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }" { (expression_statement "bVar1 = *pbVar4 | 0x20;" (assignment_expression "bVar1 = *pbVar4 | 0x20" identifier = (binary_expression "*pbVar4 | 0x20" (pointer_expression "*pbVar4" * identifier) | number_literal)) ;) (if_statement "if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }" if (parenthesized_expression "(0x60 < bVar1)" ( (binary_expression "0x60 < bVar1" number_literal < identifier) )) (compound_statement "{\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }" { (expression_statement "uVar5 = bVar1 - 0x57;" (assignment_expression "uVar5 = bVar1 - 0x57" identifier = (binary_expression "bVar1 - 0x57" identifier - number_literal)) ;) (goto_statement "goto LAB_001a1527;" goto statement_identifier ;) })) (labeled_statement "LAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }" statement_identifier : (if_statement "if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }" if (parenthesized_expression "(uVar7 == 0x10)" ( (binary_expression "uVar7 == 0x10" identifier == number_literal) )) (compound_statement "{\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }" { (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" identifier = identifier) ;) (if_statement "if (uVar3 == 1) {\n          return 0x5c;\n        }" if (parenthesized_expression "(uVar3 == 1)" ( (binary_expression "uVar3 == 1" identifier == number_literal) )) (compound_statement "{\n          return 0x5c;\n        }" { (return_statement "return 0x5c;" return number_literal ;) })) }) (else_clause "else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }" else (compound_statement "{\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }" { (labeled_statement "LAB_001a1564:\n        uVar5 = uVar6;" statement_identifier : (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" identifier = identifier) ;)) (if_statement "if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }" { (expression_statement "pbVar2 = &DAT_001c106b;" (assignment_expression "pbVar2 = &DAT_001c106b" identifier = (pointer_expression "&DAT_001c106b" & identifier)) ;) (goto_statement "goto LAB_001a1572;" goto statement_identifier ;) })) })))) (break_statement "break;" break ;) })) (labeled_statement "LAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;" statement_identifier : (if_statement "if (uVar7 <= uVar5) goto LAB_001a152c;" if (parenthesized_expression "(uVar7 <= uVar5)" ( (binary_expression "uVar7 <= uVar5" identifier <= identifier) )) (goto_statement "goto LAB_001a152c;" goto statement_identifier ;))) (expression_statement "uVar5 = uVar6 * uVar7 + uVar5;" (assignment_expression "uVar5 = uVar6 * uVar7 + uVar5" identifier = (binary_expression "uVar6 * uVar7 + uVar5" (binary_expression "uVar6 * uVar7" identifier * identifier) + identifier)) ;) (if_statement "if (0xff < uVar5) goto LAB_001a1564;" if (parenthesized_expression "(0xff < uVar5)" ( (binary_expression "0xff < uVar5" number_literal < identifier) )) (goto_statement "goto LAB_001a1564;" goto statement_identifier ;)) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = uVar3 + 1;" (assignment_expression "uVar3 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) }) while (parenthesized_expression "(uVar3 != 3)" ( (binary_expression "uVar3 != 3" identifier != number_literal) )) ;) (goto_statement "goto LAB_001a153c;" goto statement_identifier ;) (while_statement "while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }" while (parenthesized_expression "(pbVar2 = pbVar2 + 1, *pbVar2 != 0)" ( (comma_expression "pbVar2 = pbVar2 + 1, *pbVar2 != 0" (assignment_expression "pbVar2 = pbVar2 + 1" identifier = (binary_expression "pbVar2 + 1" identifier + number_literal)) , (binary_expression "*pbVar2 != 0" (pointer_expression "*pbVar2" * identifier) != number_literal)) )) (compound_statement "{\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }" { (labeled_statement "LAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }" statement_identifier : (if_statement "if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }" if (parenthesized_expression "(*pbVar2 == *pbVar4)" ( (binary_expression "*pbVar2 == *pbVar4" (pointer_expression "*pbVar2" * identifier) == (pointer_expression "*pbVar4" * identifier)) )) (compound_statement "{\n      pbVar4 = pbVar4 + 1;\n      break;\n    }" { (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (break_statement "break;" break ;) }))) })) (expression_statement "uVar5 = (uint)pbVar2[10];" (assignment_expression "uVar5 = (uint)pbVar2[10]" identifier = (cast_expression "(uint)pbVar2[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar2[10]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_001a153c:\n  *param_1 = pbVar4;" statement_identifier : (expression_statement "*param_1 = pbVar4;" (assignment_expression "*param_1 = pbVar4" (pointer_expression "*param_1" * identifier) = identifier) ;)) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (goto_statement goto statement_identifier ;) })) })))) (break_statement break ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (pointer_expression * IDENT) != LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (break_statement break ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (return_statement return IDENT ;) })))
(function_definition "uint FUN_001a14e4(undefined8 *param_1)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte *pbVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  pbVar4 = (byte *)*param_1;\n  uVar7 = 8;\n  bVar1 = *pbVar4;\n  if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }\n  uVar3 = (uint)(bVar1 == 0x78);\n  uVar6 = 0;\n  do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);\n  goto LAB_001a153c;\n  while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }\n  uVar5 = (uint)pbVar2[10];\nLAB_001a153c:\n  *param_1 = pbVar4;\n  return uVar5;\n}" (type_identifier "uint") (function_declarator "FUN_001a14e4(undefined8 *param_1)" (identifier "FUN_001a14e4") (parameter_list "(undefined8 *param_1)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte *pbVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  \n  pbVar4 = (byte *)*param_1;\n  uVar7 = 8;\n  bVar1 = *pbVar4;\n  if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }\n  uVar3 = (uint)(bVar1 == 0x78);\n  uVar6 = 0;\n  do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);\n  goto LAB_001a153c;\n  while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }\n  uVar5 = (uint)pbVar2[10];\nLAB_001a153c:\n  *param_1 = pbVar4;\n  return uVar5;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (expression_statement "pbVar4 = (byte *)*param_1;" (assignment_expression "pbVar4 = (byte *)*param_1" (identifier "pbVar4") (= "=") (cast_expression "(byte *)*param_1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "uVar7 = 8;" (assignment_expression "uVar7 = 8" (identifier "uVar7") (= "=") (number_literal "8")) (; ";")) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" (identifier "bVar1") (= "=") (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4"))) (; ";")) (if_statement "if (bVar1 == 0x78) {\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }" (if "if") (parenthesized_expression "(bVar1 == 0x78)" (( "(") (binary_expression "bVar1 == 0x78" (identifier "bVar1") (== "==") (number_literal "0x78")) () ")")) (compound_statement "{\n    pbVar4 = pbVar4 + 1;\n    uVar7 = 0x10;\n  }" ({ "{") (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar7 = 0x10;" (assignment_expression "uVar7 = 0x10" (identifier "uVar7") (= "=") (number_literal "0x10")) (; ";")) (} "}"))) (expression_statement "uVar3 = (uint)(bVar1 == 0x78);" (assignment_expression "uVar3 = (uint)(bVar1 == 0x78)" (identifier "uVar3") (= "=") (call_expression "(uint)(bVar1 == 0x78)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(bVar1 == 0x78)" (( "(") (binary_expression "bVar1 == 0x78" (identifier "bVar1") (== "==") (number_literal "0x78")) () ")")))) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  } while (uVar3 != 3);" (do "do") (compound_statement "{\n    uVar5 = *pbVar4 - 0x30;\n    if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }\nLAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;\n    uVar5 = uVar6 * uVar7 + uVar5;\n    if (0xff < uVar5) goto LAB_001a1564;\n    pbVar4 = pbVar4 + 1;\n    uVar3 = uVar3 + 1;\n    uVar6 = uVar5;\n  }" ({ "{") (expression_statement "uVar5 = *pbVar4 - 0x30;" (assignment_expression "uVar5 = *pbVar4 - 0x30" (identifier "uVar5") (= "=") (binary_expression "*pbVar4 - 0x30" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (- "-") (number_literal "0x30"))) (; ";")) (if_statement "if (9 < uVar5) {\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }" (if "if") (parenthesized_expression "(9 < uVar5)" (( "(") (binary_expression "9 < uVar5" (number_literal "9") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n      bVar1 = *pbVar4 | 0x20;\n      if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }\nLAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }\n      break;\n    }" ({ "{") (expression_statement "bVar1 = *pbVar4 | 0x20;" (assignment_expression "bVar1 = *pbVar4 | 0x20" (identifier "bVar1") (= "=") (binary_expression "*pbVar4 | 0x20" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (| "|") (number_literal "0x20"))) (; ";")) (if_statement "if (0x60 < bVar1) {\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }" (if "if") (parenthesized_expression "(0x60 < bVar1)" (( "(") (binary_expression "0x60 < bVar1" (number_literal "0x60") (< "<") (identifier "bVar1")) () ")")) (compound_statement "{\n        uVar5 = bVar1 - 0x57;\n        goto LAB_001a1527;\n      }" ({ "{") (expression_statement "uVar5 = bVar1 - 0x57;" (assignment_expression "uVar5 = bVar1 - 0x57" (identifier "uVar5") (= "=") (binary_expression "bVar1 - 0x57" (identifier "bVar1") (- "-") (number_literal "0x57"))) (; ";")) (goto_statement "goto LAB_001a1527;" (goto "goto") (statement_identifier "LAB_001a1527") (; ";")) (} "}"))) (labeled_statement "LAB_001a152c:\n      if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }" (statement_identifier "LAB_001a152c") (: ":") (if_statement "if (uVar7 == 0x10) {\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }\n      else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }" (if "if") (parenthesized_expression "(uVar7 == 0x10)" (( "(") (binary_expression "uVar7 == 0x10" (identifier "uVar7") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n        uVar5 = uVar6;\n        if (uVar3 == 1) {\n          return 0x5c;\n        }\n      }" ({ "{") (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" (identifier "uVar5") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (uVar3 == 1) {\n          return 0x5c;\n        }" (if "if") (parenthesized_expression "(uVar3 == 1)" (( "(") (binary_expression "uVar3 == 1" (identifier "uVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          return 0x5c;\n        }" ({ "{") (return_statement "return 0x5c;" (return "return") (number_literal "0x5c") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }" (else "else") (compound_statement "{\nLAB_001a1564:\n        uVar5 = uVar6;\n        if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }\n      }" ({ "{") (labeled_statement "LAB_001a1564:\n        uVar5 = uVar6;" (statement_identifier "LAB_001a1564") (: ":") (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" (identifier "uVar5") (= "=") (identifier "uVar6")) (; ";"))) (if_statement "if (uVar3 == 0) {\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }" (if "if") (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pbVar2 = &DAT_001c106b;\n          goto LAB_001a1572;\n        }" ({ "{") (expression_statement "pbVar2 = &DAT_001c106b;" (assignment_expression "pbVar2 = &DAT_001c106b" (identifier "pbVar2") (= "=") (pointer_expression "&DAT_001c106b" (& "&") (identifier "DAT_001c106b"))) (; ";")) (goto_statement "goto LAB_001a1572;" (goto "goto") (statement_identifier "LAB_001a1572") (; ";")) (} "}"))) (} "}"))))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (labeled_statement "LAB_001a1527:\n    if (uVar7 <= uVar5) goto LAB_001a152c;" (statement_identifier "LAB_001a1527") (: ":") (if_statement "if (uVar7 <= uVar5) goto LAB_001a152c;" (if "if") (parenthesized_expression "(uVar7 <= uVar5)" (( "(") (binary_expression "uVar7 <= uVar5" (identifier "uVar7") (<= "<=") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_001a152c;" (goto "goto") (statement_identifier "LAB_001a152c") (; ";")))) (expression_statement "uVar5 = uVar6 * uVar7 + uVar5;" (assignment_expression "uVar5 = uVar6 * uVar7 + uVar5" (identifier "uVar5") (= "=") (binary_expression "uVar6 * uVar7 + uVar5" (binary_expression "uVar6 * uVar7" (identifier "uVar6") (* "*") (identifier "uVar7")) (+ "+") (identifier "uVar5"))) (; ";")) (if_statement "if (0xff < uVar5) goto LAB_001a1564;" (if "if") (parenthesized_expression "(0xff < uVar5)" (( "(") (binary_expression "0xff < uVar5" (number_literal "0xff") (< "<") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_001a1564;" (goto "goto") (statement_identifier "LAB_001a1564") (; ";"))) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = uVar3 + 1;" (assignment_expression "uVar3 = uVar3 + 1" (identifier "uVar3") (= "=") (binary_expression "uVar3 + 1" (identifier "uVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" (identifier "uVar6") (= "=") (identifier "uVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar3 != 3)" (( "(") (binary_expression "uVar3 != 3" (identifier "uVar3") (!= "!=") (number_literal "3")) () ")")) (; ";")) (goto_statement "goto LAB_001a153c;" (goto "goto") (statement_identifier "LAB_001a153c") (; ";")) (while_statement "while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }" (while "while") (parenthesized_expression "(pbVar2 = pbVar2 + 1, *pbVar2 != 0)" (( "(") (comma_expression "pbVar2 = pbVar2 + 1, *pbVar2 != 0" (assignment_expression "pbVar2 = pbVar2 + 1" (identifier "pbVar2") (= "=") (binary_expression "pbVar2 + 1" (identifier "pbVar2") (+ "+") (number_literal "1"))) (, ",") (binary_expression "*pbVar2 != 0" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\nLAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }\n  }" ({ "{") (labeled_statement "LAB_001a1572:\n    if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }" (statement_identifier "LAB_001a1572") (: ":") (if_statement "if (*pbVar2 == *pbVar4) {\n      pbVar4 = pbVar4 + 1;\n      break;\n    }" (if "if") (parenthesized_expression "(*pbVar2 == *pbVar4)" (( "(") (binary_expression "*pbVar2 == *pbVar4" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (== "==") (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4"))) () ")")) (compound_statement "{\n      pbVar4 = pbVar4 + 1;\n      break;\n    }" ({ "{") (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}")))) (} "}"))) (expression_statement "uVar5 = (uint)pbVar2[10];" (assignment_expression "uVar5 = (uint)pbVar2[10]" (identifier "uVar5") (= "=") (cast_expression "(uint)pbVar2[10]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar2[10]" (identifier "pbVar2") ([ "[") (number_literal "10") (] "]")))) (; ";")) (labeled_statement "LAB_001a153c:\n  *param_1 = pbVar4;" (statement_identifier "LAB_001a153c") (: ":") (expression_statement "*param_1 = pbVar4;" (assignment_expression "*param_1 = pbVar4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "pbVar4")) (; ";"))) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

char function_1(char **ptr)

{
  type_1 var_1;
  char *pcVar2;
  type_2 var_5;
  type_1 *var_2;
  type_2 var_3;
  type_2 var_6;
  type_2 var_4;
  
  var_2 = (type_1 *)*ptr;
  var_4 = 8;
  var_1 = *var_2;
  if (var_1 == 0x78) {
    var_2 = var_2 + 1;
    var_4 = 0x10;
  }
  var_5 = (type_2)(var_1 == 0x78);
  var_6 = 0;
  do {
    var_3 = *var_2 - 0x30;
    if (9 < var_3) {
      var_1 = *var_2 | 0x20;
      if (0x60 < var_1) {
        var_3 = var_1 - 0x57;
        goto LAB_001a1527;
      }
LAB_001a152c:
      if (var_4 == 0x10) {
        var_3 = var_6;
        if (var_5 == 1) {
          return '\\';
        }
      }
      else {
LAB_001a1564:
        var_3 = var_6;
        if (var_5 == 0) {
          pcVar2 = "abefnrtv\\";
          goto LAB_001a1572;
        }
      }
      break;
    }
LAB_001a1527:
    if (var_4 <= var_3) goto LAB_001a152c;
    var_3 = var_6 * var_4 + var_3;
    if (0xff < var_3) goto LAB_001a1564;
    var_2 = var_2 + 1;
    var_5 = var_5 + 1;
    var_6 = var_3;
  } while (var_5 != 3);
  goto LAB_001a153c;
  while (pcVar2 = (char *)((type_1 *)pcVar2 + 1), *pcVar2 != 0) {
LAB_001a1572:
    if (*pcVar2 == *var_2) {
      var_2 = var_2 + 1;
      break;
    }
  }
  var_3 = (type_2)((type_1 *)pcVar2)[10];
LAB_001a153c:
  *ptr = (char *)var_2;
  return (char)var_3;
}


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

uint MASKED(undefined8 *param_1)

{
  byte bVar1;
  byte *pbVar2;
  uint uVar3;
  byte *pbVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  
  pbVar4 = (byte *)*param_1;
  uVar7 = 8;
  bVar1 = *pbVar4;
  if (bVar1 == 0x78) {
    pbVar4 = pbVar4 + 1;
    uVar7 = 0x10;
  }
  uVar3 = (uint)(bVar1 == 0x78);
  uVar6 = 0;
  do {
    uVar5 = *pbVar4 - 0x30;
    if (9 < uVar5) {
      bVar1 = *pbVar4 | 0x20;
      if (0x60 < bVar1) {
        uVar5 = bVar1 - 0x57;
        goto LAB_001a1527;
      }
LAB_001a152c:
      if (uVar7 == 0x10) {
        uVar5 = uVar6;
        if (uVar3 == 1) {
          return 0x5c;
        }
      }
      else {
LAB_001a1564:
        uVar5 = uVar6;
        if (uVar3 == 0) {
          pbVar2 = &DAT_001c106b;
          goto LAB_001a1572;
        }
      }
      break;
    }
LAB_001a1527:
    if (uVar7 <= uVar5) goto LAB_001a152c;
    uVar5 = uVar6 * uVar7 + uVar5;
    if (0xff < uVar5) goto LAB_001a1564;
    pbVar4 = pbVar4 + 1;
    uVar3 = uVar3 + 1;
    uVar6 = uVar5;
  } while (uVar3 != 3);
  goto LAB_001a153c;
  while (pbVar2 = pbVar2 + 1, *pbVar2 != 0) {
LAB_001a1572:
    if (*pbVar2 == *pbVar4) {
      pbVar4 = pbVar4 + 1;
      break;
    }
  }
  uVar5 = (uint)pbVar2[10];
LAB_001a153c:
  *param_1 = pbVar4;
  return uVar5;
}

