
void FUN_0001fb80(undefined4 *param_1,uint param_2)

{
  bool bVar1;
  char *ptr;
  int iVar2;
  uint uVar3;
  
  iVar2 = 0;
  ptr = (char *)*param_1;
  if ((uint)param_1[3] < 0x10) {
    ptr = (char *)xrealloc(ptr,0x10);
    iVar2 = param_1[2];
    *param_1 = ptr;
    param_1[3] = 0x10;
  }
  param_1[2] = iVar2 + 1;
  *ptr = (char)param_2 + (char)(param_2 / 10) * -10;
  uVar3 = param_2 / 10;
  if (9 < param_2) {
    do {
      ptr = ptr + 1;
      bVar1 = 9 < uVar3;
      param_1[2] = param_1[2] + 1;
      *ptr = (char)uVar3 + (char)(uVar3 / 10) * -10;
      uVar3 = uVar3 / 10;
    } while (bVar1);
  }
  return;
}



void FUN_0001fb80(int *param_1,uint param_2)

{
  bool bVar1;
  char *pcVar2;
  int iVar3;
  uint uVar4;
  
  iVar3 = 0;
  pcVar2 = (char *)*param_1;
  if ((uint)param_1[3] < 0x10) {
    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);
    iVar3 = param_1[2];
    *param_1 = (int)pcVar2;
    param_1[3] = 0x10;
  }
  param_1[2] = iVar3 + 1;
  *pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;
  uVar4 = param_2 / 10;
  if (9 < param_2) {
    do {
      pcVar2 = pcVar2 + 1;
      bVar1 = 9 < uVar4;
      param_1[2] = param_1[2] + 1;
      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;
      uVar4 = uVar4 / 10;
    } while (bVar1);
  }
  return;
}


addiu sp,sp,-0x28
or v1,zero,zero
sw s0,0x1c(sp)
or s0,a0,zero
sw gp,0x10(sp)
sw s1,0x20(sp)
or s1,a1,zero
sw ra,0x24(sp)
lw a0,0xc(a0)
sltiu a0,a0,0x10
beq a0,zero,0x0001fbd0
_lw v0,0x0(s0)
lw t9,-0x7eac(gp)
li a1,0x10
bal 0x0001a210
_or a0,v0,zero
li a0,0x10
lw v1,0x8(s0)
sw v0,0x0(s0)
sw a0,0xc(s0)
lui a1,0xcccc
addiu v1,v1,0x1
ori a1,a1,0xcccd
multu s1,a1
sw v1,0x8(s0)
sltiu a2,s1,0xa
mfhi a0
srl a0,a0,0x3
sll v1,a0,0x2
addu v1,v1,a0
sll v1,v1,0x1
subu s1,s1,v1
beq a2,zero,0x0001fc1c
_sb s1,0x0(v0)
lw ra,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x28
or s1,a0,zero
lw v1,0x8(s0)
multu s1,a1
addiu v0,v0,0x1
addiu v1,v1,0x1
sltiu a2,s1,0xa
mfhi a0
sw v1,0x8(s0)
srl a0,a0,0x3
sll v1,a0,0x2
addu v1,v1,a0
sll v1,v1,0x1
subu s1,s1,v1
bne a2,zero,0x0001fc08
_sb s1,0x0(v0)
b 0x0001fc20
_or s1,a0,zero
(translation_unit "void FUN_0001fb80(int *param_1,uint param_2)\n\n{\n  bool bVar1;\n  char *pcVar2;\n  int iVar3;\n  uint uVar4;\n  \n  iVar3 = 0;\n  pcVar2 = (char *)*param_1;\n  if ((uint)param_1[3] < 0x10) {\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }\n  param_1[2] = iVar3 + 1;\n  *pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;\n  uVar4 = param_2 / 10;\n  if (9 < param_2) {\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0001fb80(int *param_1,uint param_2)\n\n{\n  bool bVar1;\n  char *pcVar2;\n  int iVar3;\n  uint uVar4;\n  \n  iVar3 = 0;\n  pcVar2 = (char *)*param_1;\n  if ((uint)param_1[3] < 0x10) {\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }\n  param_1[2] = iVar3 + 1;\n  *pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;\n  uVar4 = param_2 / 10;\n  if (9 < param_2) {\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0001fb80(int *param_1,uint param_2)" identifier (parameter_list "(int *param_1,uint param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  char *pcVar2;\n  int iVar3;\n  uint uVar4;\n  \n  iVar3 = 0;\n  pcVar2 = (char *)*param_1;\n  if ((uint)param_1[3] < 0x10) {\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }\n  param_1[2] = iVar3 + 1;\n  *pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;\n  uVar4 = param_2 / 10;\n  if (9 < param_2) {\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "pcVar2 = (char *)*param_1;" (assignment_expression "pcVar2 = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if ((uint)param_1[3] < 0x10) {\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }" if (parenthesized_expression "((uint)param_1[3] < 0x10)" ( (binary_expression "(uint)param_1[3] < 0x10" (cast_expression "(uint)param_1[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[3]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }" { (expression_statement "pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);" (assignment_expression "pcVar2 = (char *)FUN_0001a210(pcVar2,0x10)" identifier = (cast_expression "(char *)FUN_0001a210(pcVar2,0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a210(pcVar2,0x10)" identifier (argument_list "(pcVar2,0x10)" ( identifier , number_literal ))))) ;) (expression_statement "iVar3 = param_1[2];" (assignment_expression "iVar3 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = (int)pcVar2;" (assignment_expression "*param_1 = (int)pcVar2" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[3] = 0x10;" (assignment_expression "param_1[3] = 0x10" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "param_1[2] = iVar3 + 1;" (assignment_expression "param_1[2] = iVar3 + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;" (assignment_expression "*pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10" (pointer_expression "*pcVar2" * identifier) = (binary_expression "(char)param_2 + (char)(param_2 / 10) * -10" (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "(char)(param_2 / 10) * -10" (cast_expression "(char)(param_2 / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(param_2 / 10)" ( (binary_expression "param_2 / 10" identifier / number_literal) ))) * number_literal))) ;) (expression_statement "uVar4 = param_2 / 10;" (assignment_expression "uVar4 = param_2 / 10" identifier = (binary_expression "param_2 / 10" identifier / number_literal)) ;) (if_statement "if (9 < param_2) {\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }" if (parenthesized_expression "(9 < param_2)" ( (binary_expression "9 < param_2" number_literal < identifier) )) (compound_statement "{\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }" { (do_statement "do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);" do (compound_statement "{\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    }" { (expression_statement "pcVar2 = pcVar2 + 1;" (assignment_expression "pcVar2 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = 9 < uVar4;" (assignment_expression "bVar1 = 9 < uVar4" identifier = (binary_expression "9 < uVar4" number_literal < identifier)) ;) (expression_statement "param_1[2] = param_1[2] + 1;" (assignment_expression "param_1[2] = param_1[2] + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "param_1[2] + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;" (assignment_expression "*pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10" (pointer_expression "*pcVar2" * identifier) = (binary_expression "(char)uVar4 + (char)(uVar4 / 10) * -10" (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "(char)(uVar4 / 10) * -10" (cast_expression "(char)(uVar4 / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar4 / 10)" ( (binary_expression "uVar4 / 10" identifier / number_literal) ))) * number_literal))) ;) (expression_statement "uVar4 = uVar4 / 10;" (assignment_expression "uVar4 = uVar4 / 10" identifier = (binary_expression "uVar4 / 10" identifier / number_literal)) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0001fb80(undefined4 *param_1,uint param_2)\n\n{\n  bool bVar1;\n  char *ptr;\n  int iVar2;\n  uint uVar3;\n  \n  iVar2 = 0;\n  ptr = (char *)*param_1;\n  if ((uint)param_1[3] < 0x10) {\n    ptr = (char *)xrealloc(ptr,0x10);\n    iVar2 = param_1[2];\n    *param_1 = ptr;\n    param_1[3] = 0x10;\n  }\n  param_1[2] = iVar2 + 1;\n  *ptr = (char)param_2 + (char)(param_2 / 10) * -10;\n  uVar3 = param_2 / 10;\n  if (9 < param_2) {\n    do {\n      ptr = ptr + 1;\n      bVar1 = 9 < uVar3;\n      param_1[2] = param_1[2] + 1;\n      *ptr = (char)uVar3 + (char)(uVar3 / 10) * -10;\n      uVar3 = uVar3 / 10;\n    } while (bVar1);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0001fb80(undefined4 *param_1,uint param_2)\n\n{\n  bool bVar1;\n  char *ptr;\n  int iVar2;\n  uint uVar3;\n  \n  iVar2 = 0;\n  ptr = (char *)*param_1;\n  if ((uint)param_1[3] < 0x10) {\n    ptr = (char *)xrealloc(ptr,0x10);\n    iVar2 = param_1[2];\n    *param_1 = ptr;\n    param_1[3] = 0x10;\n  }\n  param_1[2] = iVar2 + 1;\n  *ptr = (char)param_2 + (char)(param_2 / 10) * -10;\n  uVar3 = param_2 / 10;\n  if (9 < param_2) {\n    do {\n      ptr = ptr + 1;\n      bVar1 = 9 < uVar3;\n      param_1[2] = param_1[2] + 1;\n      *ptr = (char)uVar3 + (char)(uVar3 / 10) * -10;\n      uVar3 = uVar3 / 10;\n    } while (bVar1);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0001fb80(undefined4 *param_1,uint param_2)" identifier (parameter_list "(undefined4 *param_1,uint param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  char *ptr;\n  int iVar2;\n  uint uVar3;\n  \n  iVar2 = 0;\n  ptr = (char *)*param_1;\n  if ((uint)param_1[3] < 0x10) {\n    ptr = (char *)xrealloc(ptr,0x10);\n    iVar2 = param_1[2];\n    *param_1 = ptr;\n    param_1[3] = 0x10;\n  }\n  param_1[2] = iVar2 + 1;\n  *ptr = (char)param_2 + (char)(param_2 / 10) * -10;\n  uVar3 = param_2 / 10;\n  if (9 < param_2) {\n    do {\n      ptr = ptr + 1;\n      bVar1 = 9 < uVar3;\n      param_1[2] = param_1[2] + 1;\n      *ptr = (char)uVar3 + (char)(uVar3 / 10) * -10;\n      uVar3 = uVar3 / 10;\n    } while (bVar1);\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char *ptr;" primitive_type (pointer_declarator "*ptr" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "ptr = (char *)*param_1;" (assignment_expression "ptr = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if ((uint)param_1[3] < 0x10) {\n    ptr = (char *)xrealloc(ptr,0x10);\n    iVar2 = param_1[2];\n    *param_1 = ptr;\n    param_1[3] = 0x10;\n  }" if (parenthesized_expression "((uint)param_1[3] < 0x10)" ( (binary_expression "(uint)param_1[3] < 0x10" (cast_expression "(uint)param_1[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[3]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n    ptr = (char *)xrealloc(ptr,0x10);\n    iVar2 = param_1[2];\n    *param_1 = ptr;\n    param_1[3] = 0x10;\n  }" { (expression_statement "ptr = (char *)xrealloc(ptr,0x10);" (assignment_expression "ptr = (char *)xrealloc(ptr,0x10)" identifier = (cast_expression "(char *)xrealloc(ptr,0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(ptr,0x10)" identifier (argument_list "(ptr,0x10)" ( identifier , number_literal ))))) ;) (expression_statement "iVar2 = param_1[2];" (assignment_expression "iVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = ptr;" (assignment_expression "*param_1 = ptr" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[3] = 0x10;" (assignment_expression "param_1[3] = 0x10" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "param_1[2] = iVar2 + 1;" (assignment_expression "param_1[2] = iVar2 + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "*ptr = (char)param_2 + (char)(param_2 / 10) * -10;" (assignment_expression "*ptr = (char)param_2 + (char)(param_2 / 10) * -10" (pointer_expression "*ptr" * identifier) = (binary_expression "(char)param_2 + (char)(param_2 / 10) * -10" (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "(char)(param_2 / 10) * -10" (cast_expression "(char)(param_2 / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(param_2 / 10)" ( (binary_expression "param_2 / 10" identifier / number_literal) ))) * number_literal))) ;) (expression_statement "uVar3 = param_2 / 10;" (assignment_expression "uVar3 = param_2 / 10" identifier = (binary_expression "param_2 / 10" identifier / number_literal)) ;) (if_statement "if (9 < param_2) {\n    do {\n      ptr = ptr + 1;\n      bVar1 = 9 < uVar3;\n      param_1[2] = param_1[2] + 1;\n      *ptr = (char)uVar3 + (char)(uVar3 / 10) * -10;\n      uVar3 = uVar3 / 10;\n    } while (bVar1);\n  }" if (parenthesized_expression "(9 < param_2)" ( (binary_expression "9 < param_2" number_literal < identifier) )) (compound_statement "{\n    do {\n      ptr = ptr + 1;\n      bVar1 = 9 < uVar3;\n      param_1[2] = param_1[2] + 1;\n      *ptr = (char)uVar3 + (char)(uVar3 / 10) * -10;\n      uVar3 = uVar3 / 10;\n    } while (bVar1);\n  }" { (do_statement "do {\n      ptr = ptr + 1;\n      bVar1 = 9 < uVar3;\n      param_1[2] = param_1[2] + 1;\n      *ptr = (char)uVar3 + (char)(uVar3 / 10) * -10;\n      uVar3 = uVar3 / 10;\n    } while (bVar1);" do (compound_statement "{\n      ptr = ptr + 1;\n      bVar1 = 9 < uVar3;\n      param_1[2] = param_1[2] + 1;\n      *ptr = (char)uVar3 + (char)(uVar3 / 10) * -10;\n      uVar3 = uVar3 / 10;\n    }" { (expression_statement "ptr = ptr + 1;" (assignment_expression "ptr = ptr + 1" identifier = (binary_expression "ptr + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = 9 < uVar3;" (assignment_expression "bVar1 = 9 < uVar3" identifier = (binary_expression "9 < uVar3" number_literal < identifier)) ;) (expression_statement "param_1[2] = param_1[2] + 1;" (assignment_expression "param_1[2] = param_1[2] + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "param_1[2] + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*ptr = (char)uVar3 + (char)(uVar3 / 10) * -10;" (assignment_expression "*ptr = (char)uVar3 + (char)(uVar3 / 10) * -10" (pointer_expression "*ptr" * identifier) = (binary_expression "(char)uVar3 + (char)(uVar3 / 10) * -10" (cast_expression "(char)uVar3" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "(char)(uVar3 / 10) * -10" (cast_expression "(char)(uVar3 / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar3 / 10)" ( (binary_expression "uVar3 / 10" identifier / number_literal) ))) * number_literal))) ;) (expression_statement "uVar3 = uVar3 / 10;" (assignment_expression "uVar3 = uVar3 / 10" identifier = (binary_expression "uVar3 / 10" identifier / number_literal)) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0001fb80(int *param_1,uint param_2)\n\n{\n  bool bVar1;\n  char *pcVar2;\n  int iVar3;\n  uint uVar4;\n  \n  iVar3 = 0;\n  pcVar2 = (char *)*param_1;\n  if ((uint)param_1[3] < 0x10) {\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }\n  param_1[2] = iVar3 + 1;\n  *pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;\n  uVar4 = param_2 / 10;\n  if (9 < param_2) {\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0001fb80(int *param_1,uint param_2)\n\n{\n  bool bVar1;\n  char *pcVar2;\n  int iVar3;\n  uint uVar4;\n  \n  iVar3 = 0;\n  pcVar2 = (char *)*param_1;\n  if ((uint)param_1[3] < 0x10) {\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }\n  param_1[2] = iVar3 + 1;\n  *pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;\n  uVar4 = param_2 / 10;\n  if (9 < param_2) {\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0001fb80(int *param_1,uint param_2)" identifier (parameter_list "(int *param_1,uint param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  char *pcVar2;\n  int iVar3;\n  uint uVar4;\n  \n  iVar3 = 0;\n  pcVar2 = (char *)*param_1;\n  if ((uint)param_1[3] < 0x10) {\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }\n  param_1[2] = iVar3 + 1;\n  *pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;\n  uVar4 = param_2 / 10;\n  if (9 < param_2) {\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "pcVar2 = (char *)*param_1;" (assignment_expression "pcVar2 = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if ((uint)param_1[3] < 0x10) {\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }" if (parenthesized_expression "((uint)param_1[3] < 0x10)" ( (binary_expression "(uint)param_1[3] < 0x10" (cast_expression "(uint)param_1[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[3]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }" { (expression_statement "pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);" (assignment_expression "pcVar2 = (char *)FUN_0001a210(pcVar2,0x10)" identifier = (cast_expression "(char *)FUN_0001a210(pcVar2,0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a210(pcVar2,0x10)" identifier (argument_list "(pcVar2,0x10)" ( identifier , number_literal ))))) ;) (expression_statement "iVar3 = param_1[2];" (assignment_expression "iVar3 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = (int)pcVar2;" (assignment_expression "*param_1 = (int)pcVar2" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[3] = 0x10;" (assignment_expression "param_1[3] = 0x10" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "param_1[2] = iVar3 + 1;" (assignment_expression "param_1[2] = iVar3 + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;" (assignment_expression "*pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10" (pointer_expression "*pcVar2" * identifier) = (binary_expression "(char)param_2 + (char)(param_2 / 10) * -10" (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "(char)(param_2 / 10) * -10" (cast_expression "(char)(param_2 / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(param_2 / 10)" ( (binary_expression "param_2 / 10" identifier / number_literal) ))) * number_literal))) ;) (expression_statement "uVar4 = param_2 / 10;" (assignment_expression "uVar4 = param_2 / 10" identifier = (binary_expression "param_2 / 10" identifier / number_literal)) ;) (if_statement "if (9 < param_2) {\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }" if (parenthesized_expression "(9 < param_2)" ( (binary_expression "9 < param_2" number_literal < identifier) )) (compound_statement "{\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }" { (do_statement "do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);" do (compound_statement "{\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    }" { (expression_statement "pcVar2 = pcVar2 + 1;" (assignment_expression "pcVar2 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = 9 < uVar4;" (assignment_expression "bVar1 = 9 < uVar4" identifier = (binary_expression "9 < uVar4" number_literal < identifier)) ;) (expression_statement "param_1[2] = param_1[2] + 1;" (assignment_expression "param_1[2] = param_1[2] + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "param_1[2] + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;" (assignment_expression "*pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10" (pointer_expression "*pcVar2" * identifier) = (binary_expression "(char)uVar4 + (char)(uVar4 / 10) * -10" (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "(char)(uVar4 / 10) * -10" (cast_expression "(char)(uVar4 / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar4 / 10)" ( (binary_expression "uVar4 / 10" identifier / number_literal) ))) * number_literal))) ;) (expression_statement "uVar4 = uVar4 / 10;" (assignment_expression "uVar4 = uVar4 / 10" identifier = (binary_expression "uVar4 / 10" identifier / number_literal)) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT / LIT) ))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT / LIT) ))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0001fb80(int *param_1,uint param_2)\n\n{\n  bool bVar1;\n  char *pcVar2;\n  int iVar3;\n  uint uVar4;\n  \n  iVar3 = 0;\n  pcVar2 = (char *)*param_1;\n  if ((uint)param_1[3] < 0x10) {\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }\n  param_1[2] = iVar3 + 1;\n  *pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;\n  uVar4 = param_2 / 10;\n  if (9 < param_2) {\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0001fb80(int *param_1,uint param_2)" (identifier "FUN_0001fb80") (parameter_list "(int *param_1,uint param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  bool bVar1;\n  char *pcVar2;\n  int iVar3;\n  uint uVar4;\n  \n  iVar3 = 0;\n  pcVar2 = (char *)*param_1;\n  if ((uint)param_1[3] < 0x10) {\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }\n  param_1[2] = iVar3 + 1;\n  *pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;\n  uVar4 = param_2 / 10;\n  if (9 < param_2) {\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }\n  return;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar2 = (char *)*param_1;" (assignment_expression "pcVar2 = (char *)*param_1" (identifier "pcVar2") (= "=") (cast_expression "(char *)*param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if ((uint)param_1[3] < 0x10) {\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }" (if "if") (parenthesized_expression "((uint)param_1[3] < 0x10)" (( "(") (binary_expression "(uint)param_1[3] < 0x10" (cast_expression "(uint)param_1[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);\n    iVar3 = param_1[2];\n    *param_1 = (int)pcVar2;\n    param_1[3] = 0x10;\n  }" ({ "{") (expression_statement "pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);" (assignment_expression "pcVar2 = (char *)FUN_0001a210(pcVar2,0x10)" (identifier "pcVar2") (= "=") (cast_expression "(char *)FUN_0001a210(pcVar2,0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001a210(pcVar2,0x10)" (identifier "FUN_0001a210") (argument_list "(pcVar2,0x10)" (( "(") (identifier "pcVar2") (, ",") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "iVar3 = param_1[2];" (assignment_expression "iVar3 = param_1[2]" (identifier "iVar3") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*param_1 = (int)pcVar2;" (assignment_expression "*param_1 = (int)pcVar2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)pcVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar2"))) (; ";")) (expression_statement "param_1[3] = 0x10;" (assignment_expression "param_1[3] = 0x10" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x10")) (; ";")) (} "}"))) (expression_statement "param_1[2] = iVar3 + 1;" (assignment_expression "param_1[2] = iVar3 + 1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;" (assignment_expression "*pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (binary_expression "(char)param_2 + (char)(param_2 / 10) * -10" (cast_expression "(char)param_2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_2")) (+ "+") (binary_expression "(char)(param_2 / 10) * -10" (cast_expression "(char)(param_2 / 10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(param_2 / 10)" (( "(") (binary_expression "param_2 / 10" (identifier "param_2") (/ "/") (number_literal "10")) () ")"))) (* "*") (number_literal "-10")))) (; ";")) (expression_statement "uVar4 = param_2 / 10;" (assignment_expression "uVar4 = param_2 / 10" (identifier "uVar4") (= "=") (binary_expression "param_2 / 10" (identifier "param_2") (/ "/") (number_literal "10"))) (; ";")) (if_statement "if (9 < param_2) {\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }" (if "if") (parenthesized_expression "(9 < param_2)" (( "(") (binary_expression "9 < param_2" (number_literal "9") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n    do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);\n  }" ({ "{") (do_statement "do {\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    } while (bVar1);" (do "do") (compound_statement "{\n      pcVar2 = pcVar2 + 1;\n      bVar1 = 9 < uVar4;\n      param_1[2] = param_1[2] + 1;\n      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;\n      uVar4 = uVar4 / 10;\n    }" ({ "{") (expression_statement "pcVar2 = pcVar2 + 1;" (assignment_expression "pcVar2 = pcVar2 + 1" (identifier "pcVar2") (= "=") (binary_expression "pcVar2 + 1" (identifier "pcVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = 9 < uVar4;" (assignment_expression "bVar1 = 9 < uVar4" (identifier "bVar1") (= "=") (binary_expression "9 < uVar4" (number_literal "9") (< "<") (identifier "uVar4"))) (; ";")) (expression_statement "param_1[2] = param_1[2] + 1;" (assignment_expression "param_1[2] = param_1[2] + 1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "param_1[2] + 1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;" (assignment_expression "*pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (binary_expression "(char)uVar4 + (char)(uVar4 / 10) * -10" (cast_expression "(char)uVar4" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar4")) (+ "+") (binary_expression "(char)(uVar4 / 10) * -10" (cast_expression "(char)(uVar4 / 10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar4 / 10)" (( "(") (binary_expression "uVar4 / 10" (identifier "uVar4") (/ "/") (number_literal "10")) () ")"))) (* "*") (number_literal "-10")))) (; ";")) (expression_statement "uVar4 = uVar4 / 10;" (assignment_expression "uVar4 = uVar4 / 10" (identifier "uVar4") (= "=") (binary_expression "uVar4 / 10" (identifier "uVar4") (/ "/") (number_literal "10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *param_1,type_2 var_3)

{
  bool bVar1;
  char *var_4;
  int var_2;
  type_2 var_5;
  
  var_2 = 0;
  var_4 = (char *)*param_1;
  if ((type_2)param_1[3] < 0x10) {
    var_4 = (char *)var_1(var_4,0x10);
    var_2 = param_1[2];
    *param_1 = var_4;
    param_1[3] = 0x10;
  }
  param_1[2] = var_2 + 1;
  *var_4 = (char)var_3 + (char)(var_3 / 10) * -10;
  var_5 = var_3 / 10;
  if (9 < var_3) {
    do {
      var_4 = var_4 + 1;
      bVar1 = 9 < var_5;
      param_1[2] = param_1[2] + 1;
      *var_4 = (char)var_5 + (char)(var_5 / 10) * -10;
      var_5 = var_5 / 10;
    } while (bVar1);
  }
  return;
}


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

void MASKED(int *param_1,uint param_2)

{
  bool bVar1;
  char *pcVar2;
  int iVar3;
  uint uVar4;
  
  iVar3 = 0;
  pcVar2 = (char *)*param_1;
  if ((uint)param_1[3] < 0x10) {
    pcVar2 = (char *)FUN_0001a210(pcVar2,0x10);
    iVar3 = param_1[2];
    *param_1 = (int)pcVar2;
    param_1[3] = 0x10;
  }
  param_1[2] = iVar3 + 1;
  *pcVar2 = (char)param_2 + (char)(param_2 / 10) * -10;
  uVar4 = param_2 / 10;
  if (9 < param_2) {
    do {
      pcVar2 = pcVar2 + 1;
      bVar1 = 9 < uVar4;
      param_1[2] = param_1[2] + 1;
      *pcVar2 = (char)uVar4 + (char)(uVar4 / 10) * -10;
      uVar4 = uVar4 / 10;
    } while (bVar1);
  }
  return;
}

