
void sysctl_dots_to_slashes(char *name)

{
  char *pcVar1;
  undefined *puVar2;
  int iVar3;
  char *pcVar4;
  char *pcVar5;
  
  iVar3 = (*(code *)PTR_strlen_0012af3c)();
  pcVar5 = name + iVar3;
  *pcVar5 = '.';
  pcVar1 = name + -1;
joined_r0x000693d8:
  pcVar4 = pcVar5;
  if (pcVar5 <= pcVar1) {
LAB_0006942c:
    *pcVar5 = '\0';
    return;
  }
  do {
    puVar2 = PTR_access_0012ae48;
    if (*pcVar4 == '.') {
      *pcVar4 = '\0';
      iVar3 = (*(code *)puVar2)(name,0);
      if (iVar3 == 0) break;
      *pcVar4 = '.';
    }
    pcVar4 = pcVar4 + -1;
    if (pcVar1 == pcVar4) goto LAB_0006942c;
  } while( true );
  *pcVar4 = '/';
  pcVar1 = pcVar4;
  goto joined_r0x000693d8;
}



void FUN_0006937c(int param_1)

{
  char *pcVar1;
  undefined *puVar2;
  int iVar3;
  char *pcVar4;
  char *pcVar5;
  
  iVar3 = (*(code *)PTR_strlen_0012af3c)();
  pcVar5 = (char *)(param_1 + iVar3);
  *pcVar5 = '.';
  pcVar1 = (char *)(param_1 + -1);
joined_r0x000693d8:
  pcVar4 = pcVar5;
  if (pcVar5 <= pcVar1) {
LAB_0006942c:
    *pcVar5 = '\0';
    return;
  }
  do {
    puVar2 = PTR_access_0012ae48;
    if (*pcVar4 == '.') {
      *pcVar4 = '\0';
      iVar3 = (*(code *)puVar2)(param_1,0);
      if (iVar3 == 0) break;
      *pcVar4 = '.';
    }
    pcVar4 = pcVar4 + -1;
    if (pcVar1 == pcVar4) goto LAB_0006942c;
  } while( true );
  *pcVar4 = '/';
  pcVar1 = pcVar4;
  goto joined_r0x000693d8;
}


lui gp,0xd
addiu gp,gp,-0x722c
addu gp,gp,t9
addiu sp,sp,-0x38
lw t9,-0x7214(gp)
sw gp,0x10(sp)
sw s5,0x30(sp)
li s5,0x2f
sw s4,0x2c(sp)
li s4,0x2e
sw s3,0x28(sp)
addiu s3,a0,-0x1
sw s2,0x24(sp)
or s2,a0,zero
sw s1,0x20(sp)
sw ra,0x34(sp)
jalr t9
_sw s0,0x1c(sp)
addu s1,s2,v0
lw gp,0x10(sp)
li v0,0x2e
sb v0,0x0(s1)
sltu v0,s3,s1
beq v0,zero,0x0006942c
_or s0,s1,zero
lbu v0,0x0(s0)
bne v0,s4,0x00069420
_lw t9,-0x7308(gp)
or a1,zero,zero
sb zero,0x0(s0)
jalr t9
_or a0,s2,zero
bne v0,zero,0x0006941c
_lw gp,0x10(sp)
or s3,s0,zero
sltu v0,s3,s1
beq v0,zero,0x0006942c
_sb s5,0x0(s0)
b 0x000693e0
_or s0,s1,zero
sb s4,0x0(s0)
addiu s0,s0,-0x1
bne s3,s0,0x000693e0
_nop
sb zero,0x0(s1)
lw ra,0x34(sp)
lw s5,0x30(sp)
lw s4,0x2c(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x38
(translation_unit "void FUN_0006937c(int param_1)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  iVar3 = (*(code *)PTR_strlen_0012af3c)();\n  pcVar5 = (char *)(param_1 + iVar3);\n  *pcVar5 = '.';\n  pcVar1 = (char *)(param_1 + -1);\njoined_r0x000693d8:\n  pcVar4 = pcVar5;\n  if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }\n  do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );\n  *pcVar4 = '/';\n  pcVar1 = pcVar4;\n  goto joined_r0x000693d8;\n}\n\n" (function_definition "void FUN_0006937c(int param_1)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  iVar3 = (*(code *)PTR_strlen_0012af3c)();\n  pcVar5 = (char *)(param_1 + iVar3);\n  *pcVar5 = '.';\n  pcVar1 = (char *)(param_1 + -1);\njoined_r0x000693d8:\n  pcVar4 = pcVar5;\n  if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }\n  do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );\n  *pcVar4 = '/';\n  pcVar1 = pcVar4;\n  goto joined_r0x000693d8;\n}" primitive_type (function_declarator "FUN_0006937c(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  iVar3 = (*(code *)PTR_strlen_0012af3c)();\n  pcVar5 = (char *)(param_1 + iVar3);\n  *pcVar5 = '.';\n  pcVar1 = (char *)(param_1 + -1);\njoined_r0x000693d8:\n  pcVar4 = pcVar5;\n  if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }\n  do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );\n  *pcVar4 = '/';\n  pcVar1 = pcVar4;\n  goto joined_r0x000693d8;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_strlen_0012af3c)();" (assignment_expression "iVar3 = (*(code *)PTR_strlen_0012af3c)()" identifier = (call_expression "(*(code *)PTR_strlen_0012af3c)()" (parenthesized_expression "(*(code *)PTR_strlen_0012af3c)" ( (pointer_expression "*(code *)PTR_strlen_0012af3c" * (cast_expression "(code *)PTR_strlen_0012af3c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar5 = (char *)(param_1 + iVar3);" (assignment_expression "pcVar5 = (char *)(param_1 + iVar3)" identifier = (cast_expression "(char *)(param_1 + iVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3)" ( (binary_expression "param_1 + iVar3" identifier + identifier) )))) ;) (expression_statement "*pcVar5 = '.';" (assignment_expression "*pcVar5 = '.'" (pointer_expression "*pcVar5" * identifier) = (char_literal "'.'" ' character ')) ;) (expression_statement "pcVar1 = (char *)(param_1 + -1);" (assignment_expression "pcVar1 = (char *)(param_1 + -1)" identifier = (cast_expression "(char *)(param_1 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + -1)" ( (binary_expression "param_1 + -1" identifier + number_literal) )))) ;) (labeled_statement "joined_r0x000693d8:\n  pcVar4 = pcVar5;" statement_identifier : (expression_statement "pcVar4 = pcVar5;" (assignment_expression "pcVar4 = pcVar5" identifier = identifier) ;)) (if_statement "if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }" if (parenthesized_expression "(pcVar5 <= pcVar1)" ( (binary_expression "pcVar5 <= pcVar1" identifier <= identifier) )) (compound_statement "{\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }" { (labeled_statement "LAB_0006942c:\n    *pcVar5 = '\0';" statement_identifier : (expression_statement "*pcVar5 = '\0';" (assignment_expression "*pcVar5 = '\0'" (pointer_expression "*pcVar5" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (return_statement "return;" return ;) })) (do_statement "do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );" do (compound_statement "{\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  }" { (expression_statement "puVar2 = PTR_access_0012ae48;" (assignment_expression "puVar2 = PTR_access_0012ae48" identifier = identifier) ;) (if_statement "if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }" if (parenthesized_expression "(*pcVar4 == '.')" ( (binary_expression "*pcVar4 == '.'" (pointer_expression "*pcVar4" * identifier) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }" { (expression_statement "*pcVar4 = '\0';" (assignment_expression "*pcVar4 = '\0'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar3 = (*(code *)puVar2)(param_1,0);" (assignment_expression "iVar3 = (*(code *)puVar2)(param_1,0)" identifier = (call_expression "(*(code *)puVar2)(param_1,0)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "*pcVar4 = '.';" (assignment_expression "*pcVar4 = '.'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'.'" ' character ')) ;) })) (expression_statement "pcVar4 = pcVar4 + -1;" (assignment_expression "pcVar4 = pcVar4 + -1" identifier = (binary_expression "pcVar4 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar1 == pcVar4) goto LAB_0006942c;" if (parenthesized_expression "(pcVar1 == pcVar4)" ( (binary_expression "pcVar1 == pcVar4" identifier == identifier) )) (goto_statement "goto LAB_0006942c;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "*pcVar4 = '/';" (assignment_expression "*pcVar4 = '/'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'/'" ' character ')) ;) (expression_statement "pcVar1 = pcVar4;" (assignment_expression "pcVar1 = pcVar4" identifier = identifier) ;) (goto_statement "goto joined_r0x000693d8;" goto statement_identifier ;) })))
(translation_unit "void sysctl_dots_to_slashes(char *name)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  iVar3 = (*(code *)PTR_strlen_0012af3c)();\n  pcVar5 = name + iVar3;\n  *pcVar5 = '.';\n  pcVar1 = name + -1;\njoined_r0x000693d8:\n  pcVar4 = pcVar5;\n  if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }\n  do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(name,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );\n  *pcVar4 = '/';\n  pcVar1 = pcVar4;\n  goto joined_r0x000693d8;\n}\n\n" (function_definition "void sysctl_dots_to_slashes(char *name)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  iVar3 = (*(code *)PTR_strlen_0012af3c)();\n  pcVar5 = name + iVar3;\n  *pcVar5 = '.';\n  pcVar1 = name + -1;\njoined_r0x000693d8:\n  pcVar4 = pcVar5;\n  if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }\n  do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(name,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );\n  *pcVar4 = '/';\n  pcVar1 = pcVar4;\n  goto joined_r0x000693d8;\n}" primitive_type (function_declarator "sysctl_dots_to_slashes(char *name)" identifier (parameter_list "(char *name)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  iVar3 = (*(code *)PTR_strlen_0012af3c)();\n  pcVar5 = name + iVar3;\n  *pcVar5 = '.';\n  pcVar1 = name + -1;\njoined_r0x000693d8:\n  pcVar4 = pcVar5;\n  if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }\n  do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(name,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );\n  *pcVar4 = '/';\n  pcVar1 = pcVar4;\n  goto joined_r0x000693d8;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_strlen_0012af3c)();" (assignment_expression "iVar3 = (*(code *)PTR_strlen_0012af3c)()" identifier = (call_expression "(*(code *)PTR_strlen_0012af3c)()" (parenthesized_expression "(*(code *)PTR_strlen_0012af3c)" ( (pointer_expression "*(code *)PTR_strlen_0012af3c" * (cast_expression "(code *)PTR_strlen_0012af3c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar5 = name + iVar3;" (assignment_expression "pcVar5 = name + iVar3" identifier = (binary_expression "name + iVar3" identifier + identifier)) ;) (expression_statement "*pcVar5 = '.';" (assignment_expression "*pcVar5 = '.'" (pointer_expression "*pcVar5" * identifier) = (char_literal "'.'" ' character ')) ;) (expression_statement "pcVar1 = name + -1;" (assignment_expression "pcVar1 = name + -1" identifier = (binary_expression "name + -1" identifier + number_literal)) ;) (labeled_statement "joined_r0x000693d8:\n  pcVar4 = pcVar5;" statement_identifier : (expression_statement "pcVar4 = pcVar5;" (assignment_expression "pcVar4 = pcVar5" identifier = identifier) ;)) (if_statement "if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }" if (parenthesized_expression "(pcVar5 <= pcVar1)" ( (binary_expression "pcVar5 <= pcVar1" identifier <= identifier) )) (compound_statement "{\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }" { (labeled_statement "LAB_0006942c:\n    *pcVar5 = '\0';" statement_identifier : (expression_statement "*pcVar5 = '\0';" (assignment_expression "*pcVar5 = '\0'" (pointer_expression "*pcVar5" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (return_statement "return;" return ;) })) (do_statement "do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(name,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );" do (compound_statement "{\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(name,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  }" { (expression_statement "puVar2 = PTR_access_0012ae48;" (assignment_expression "puVar2 = PTR_access_0012ae48" identifier = identifier) ;) (if_statement "if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(name,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }" if (parenthesized_expression "(*pcVar4 == '.')" ( (binary_expression "*pcVar4 == '.'" (pointer_expression "*pcVar4" * identifier) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(name,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }" { (expression_statement "*pcVar4 = '\0';" (assignment_expression "*pcVar4 = '\0'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar3 = (*(code *)puVar2)(name,0);" (assignment_expression "iVar3 = (*(code *)puVar2)(name,0)" identifier = (call_expression "(*(code *)puVar2)(name,0)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(name,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "*pcVar4 = '.';" (assignment_expression "*pcVar4 = '.'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'.'" ' character ')) ;) })) (expression_statement "pcVar4 = pcVar4 + -1;" (assignment_expression "pcVar4 = pcVar4 + -1" identifier = (binary_expression "pcVar4 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar1 == pcVar4) goto LAB_0006942c;" if (parenthesized_expression "(pcVar1 == pcVar4)" ( (binary_expression "pcVar1 == pcVar4" identifier == identifier) )) (goto_statement "goto LAB_0006942c;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "*pcVar4 = '/';" (assignment_expression "*pcVar4 = '/'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'/'" ' character ')) ;) (expression_statement "pcVar1 = pcVar4;" (assignment_expression "pcVar1 = pcVar4" identifier = identifier) ;) (goto_statement "goto joined_r0x000693d8;" goto statement_identifier ;) })))
(translation_unit "void FUN_0006937c(int param_1)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  iVar3 = (*(code *)PTR_strlen_0012af3c)();\n  pcVar5 = (char *)(param_1 + iVar3);\n  *pcVar5 = '.';\n  pcVar1 = (char *)(param_1 + -1);\njoined_r0x000693d8:\n  pcVar4 = pcVar5;\n  if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }\n  do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );\n  *pcVar4 = '/';\n  pcVar1 = pcVar4;\n  goto joined_r0x000693d8;\n}\n\n" (function_definition "void FUN_0006937c(int param_1)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  iVar3 = (*(code *)PTR_strlen_0012af3c)();\n  pcVar5 = (char *)(param_1 + iVar3);\n  *pcVar5 = '.';\n  pcVar1 = (char *)(param_1 + -1);\njoined_r0x000693d8:\n  pcVar4 = pcVar5;\n  if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }\n  do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );\n  *pcVar4 = '/';\n  pcVar1 = pcVar4;\n  goto joined_r0x000693d8;\n}" primitive_type (function_declarator "FUN_0006937c(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  iVar3 = (*(code *)PTR_strlen_0012af3c)();\n  pcVar5 = (char *)(param_1 + iVar3);\n  *pcVar5 = '.';\n  pcVar1 = (char *)(param_1 + -1);\njoined_r0x000693d8:\n  pcVar4 = pcVar5;\n  if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }\n  do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );\n  *pcVar4 = '/';\n  pcVar1 = pcVar4;\n  goto joined_r0x000693d8;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_strlen_0012af3c)();" (assignment_expression "iVar3 = (*(code *)PTR_strlen_0012af3c)()" identifier = (call_expression "(*(code *)PTR_strlen_0012af3c)()" (parenthesized_expression "(*(code *)PTR_strlen_0012af3c)" ( (pointer_expression "*(code *)PTR_strlen_0012af3c" * (cast_expression "(code *)PTR_strlen_0012af3c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar5 = (char *)(param_1 + iVar3);" (assignment_expression "pcVar5 = (char *)(param_1 + iVar3)" identifier = (cast_expression "(char *)(param_1 + iVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3)" ( (binary_expression "param_1 + iVar3" identifier + identifier) )))) ;) (expression_statement "*pcVar5 = '.';" (assignment_expression "*pcVar5 = '.'" (pointer_expression "*pcVar5" * identifier) = (char_literal "'.'" ' character ')) ;) (expression_statement "pcVar1 = (char *)(param_1 + -1);" (assignment_expression "pcVar1 = (char *)(param_1 + -1)" identifier = (cast_expression "(char *)(param_1 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + -1)" ( (binary_expression "param_1 + -1" identifier + number_literal) )))) ;) (labeled_statement "joined_r0x000693d8:\n  pcVar4 = pcVar5;" statement_identifier : (expression_statement "pcVar4 = pcVar5;" (assignment_expression "pcVar4 = pcVar5" identifier = identifier) ;)) (if_statement "if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }" if (parenthesized_expression "(pcVar5 <= pcVar1)" ( (binary_expression "pcVar5 <= pcVar1" identifier <= identifier) )) (compound_statement "{\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }" { (labeled_statement "LAB_0006942c:\n    *pcVar5 = '\0';" statement_identifier : (expression_statement "*pcVar5 = '\0';" (assignment_expression "*pcVar5 = '\0'" (pointer_expression "*pcVar5" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (return_statement "return;" return ;) })) (do_statement "do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );" do (compound_statement "{\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  }" { (expression_statement "puVar2 = PTR_access_0012ae48;" (assignment_expression "puVar2 = PTR_access_0012ae48" identifier = identifier) ;) (if_statement "if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }" if (parenthesized_expression "(*pcVar4 == '.')" ( (binary_expression "*pcVar4 == '.'" (pointer_expression "*pcVar4" * identifier) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }" { (expression_statement "*pcVar4 = '\0';" (assignment_expression "*pcVar4 = '\0'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar3 = (*(code *)puVar2)(param_1,0);" (assignment_expression "iVar3 = (*(code *)puVar2)(param_1,0)" identifier = (call_expression "(*(code *)puVar2)(param_1,0)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "*pcVar4 = '.';" (assignment_expression "*pcVar4 = '.'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'.'" ' character ')) ;) })) (expression_statement "pcVar4 = pcVar4 + -1;" (assignment_expression "pcVar4 = pcVar4 + -1" identifier = (binary_expression "pcVar4 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar1 == pcVar4) goto LAB_0006942c;" if (parenthesized_expression "(pcVar1 == pcVar4)" ( (binary_expression "pcVar1 == pcVar4" identifier == identifier) )) (goto_statement "goto LAB_0006942c;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "*pcVar4 = '/';" (assignment_expression "*pcVar4 = '/'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'/'" ' character ')) ;) (expression_statement "pcVar1 = pcVar4;" (assignment_expression "pcVar1 = pcVar4" identifier = identifier) ;) (goto_statement "goto joined_r0x000693d8;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;)) (return_statement return ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( BOOL )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_0006937c(int param_1)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  iVar3 = (*(code *)PTR_strlen_0012af3c)();\n  pcVar5 = (char *)(param_1 + iVar3);\n  *pcVar5 = '.';\n  pcVar1 = (char *)(param_1 + -1);\njoined_r0x000693d8:\n  pcVar4 = pcVar5;\n  if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }\n  do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );\n  *pcVar4 = '/';\n  pcVar1 = pcVar4;\n  goto joined_r0x000693d8;\n}" (primitive_type "void") (function_declarator "FUN_0006937c(int param_1)" (identifier "FUN_0006937c") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  iVar3 = (*(code *)PTR_strlen_0012af3c)();\n  pcVar5 = (char *)(param_1 + iVar3);\n  *pcVar5 = '.';\n  pcVar1 = (char *)(param_1 + -1);\njoined_r0x000693d8:\n  pcVar4 = pcVar5;\n  if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }\n  do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );\n  *pcVar4 = '/';\n  pcVar1 = pcVar4;\n  goto joined_r0x000693d8;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_strlen_0012af3c)();" (assignment_expression "iVar3 = (*(code *)PTR_strlen_0012af3c)()" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strlen_0012af3c)()" (parenthesized_expression "(*(code *)PTR_strlen_0012af3c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0012af3c" (* "*") (cast_expression "(code *)PTR_strlen_0012af3c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0012af3c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar5 = (char *)(param_1 + iVar3);" (assignment_expression "pcVar5 = (char *)(param_1 + iVar3)" (identifier "pcVar5") (= "=") (cast_expression "(char *)(param_1 + iVar3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar3)" (( "(") (binary_expression "param_1 + iVar3" (identifier "param_1") (+ "+") (identifier "iVar3")) () ")")))) (; ";")) (expression_statement "*pcVar5 = '.';" (assignment_expression "*pcVar5 = '.'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (= "=") (char_literal "'.'" (' "'") (character ".") (' "'"))) (; ";")) (expression_statement "pcVar1 = (char *)(param_1 + -1);" (assignment_expression "pcVar1 = (char *)(param_1 + -1)" (identifier "pcVar1") (= "=") (cast_expression "(char *)(param_1 + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + -1)" (( "(") (binary_expression "param_1 + -1" (identifier "param_1") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (labeled_statement "joined_r0x000693d8:\n  pcVar4 = pcVar5;" (statement_identifier "joined_r0x000693d8") (: ":") (expression_statement "pcVar4 = pcVar5;" (assignment_expression "pcVar4 = pcVar5" (identifier "pcVar4") (= "=") (identifier "pcVar5")) (; ";"))) (if_statement "if (pcVar5 <= pcVar1) {\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }" (if "if") (parenthesized_expression "(pcVar5 <= pcVar1)" (( "(") (binary_expression "pcVar5 <= pcVar1" (identifier "pcVar5") (<= "<=") (identifier "pcVar1")) () ")")) (compound_statement "{\nLAB_0006942c:\n    *pcVar5 = '\0';\n    return;\n  }" ({ "{") (labeled_statement "LAB_0006942c:\n    *pcVar5 = '\0';" (statement_identifier "LAB_0006942c") (: ":") (expression_statement "*pcVar5 = '\0';" (assignment_expression "*pcVar5 = '\0'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (do_statement "do {\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  } while( true );" (do "do") (compound_statement "{\n    puVar2 = PTR_access_0012ae48;\n    if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }\n    pcVar4 = pcVar4 + -1;\n    if (pcVar1 == pcVar4) goto LAB_0006942c;\n  }" ({ "{") (expression_statement "puVar2 = PTR_access_0012ae48;" (assignment_expression "puVar2 = PTR_access_0012ae48" (identifier "puVar2") (= "=") (identifier "PTR_access_0012ae48")) (; ";")) (if_statement "if (*pcVar4 == '.') {\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }" (if "if") (parenthesized_expression "(*pcVar4 == '.')" (( "(") (binary_expression "*pcVar4 == '.'" (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n      *pcVar4 = '\0';\n      iVar3 = (*(code *)puVar2)(param_1,0);\n      if (iVar3 == 0) break;\n      *pcVar4 = '.';\n    }" ({ "{") (expression_statement "*pcVar4 = '\0';" (assignment_expression "*pcVar4 = '\0'" (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "iVar3 = (*(code *)puVar2)(param_1,0);" (assignment_expression "iVar3 = (*(code *)puVar2)(param_1,0)" (identifier "iVar3") (= "=") (call_expression "(*(code *)puVar2)(param_1,0)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*pcVar4 = '.';" (assignment_expression "*pcVar4 = '.'" (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) (= "=") (char_literal "'.'" (' "'") (character ".") (' "'"))) (; ";")) (} "}"))) (expression_statement "pcVar4 = pcVar4 + -1;" (assignment_expression "pcVar4 = pcVar4 + -1" (identifier "pcVar4") (= "=") (binary_expression "pcVar4 + -1" (identifier "pcVar4") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (pcVar1 == pcVar4) goto LAB_0006942c;" (if "if") (parenthesized_expression "(pcVar1 == pcVar4)" (( "(") (binary_expression "pcVar1 == pcVar4" (identifier "pcVar1") (== "==") (identifier "pcVar4")) () ")")) (goto_statement "goto LAB_0006942c;" (goto "goto") (statement_identifier "LAB_0006942c") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (expression_statement "*pcVar4 = '/';" (assignment_expression "*pcVar4 = '/'" (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) (= "=") (char_literal "'/'" (' "'") (character "/") (' "'"))) (; ";")) (expression_statement "pcVar1 = pcVar4;" (assignment_expression "pcVar1 = pcVar4" (identifier "pcVar1") (= "=") (identifier "pcVar4")) (; ";")) (goto_statement "goto joined_r0x000693d8;" (goto "goto") (statement_identifier "joined_r0x000693d8") (; ";")) (} "}")))

void function_1(char *var_1)

{
  char *var_4;
  type_1 *puVar2;
  int var_2;
  char *var_5;
  char *var_3;
  
  var_2 = (*(type_2 *)PTR_strlen_0012af3c)();
  var_3 = var_1 + var_2;
  *var_3 = '.';
  var_4 = var_1 + -1;
joined_r0x000693d8:
  var_5 = var_3;
  if (var_3 <= var_4) {
LAB_0006942c:
    *var_3 = '\0';
    return;
  }
  do {
    puVar2 = PTR_access_0012ae48;
    if (*var_5 == '.') {
      *var_5 = '\0';
      var_2 = (*(type_2 *)puVar2)(var_1,0);
      if (var_2 == 0) break;
      *var_5 = '.';
    }
    var_5 = var_5 + -1;
    if (var_4 == var_5) goto LAB_0006942c;
  } while( true );
  *var_5 = '/';
  var_4 = var_5;
  goto joined_r0x000693d8;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence))))) (return_statement))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (true))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))

void MASKED(int param_1)

{
  char *pcVar1;
  undefined *puVar2;
  int iVar3;
  char *pcVar4;
  char *pcVar5;
  
  iVar3 = (*(code *)PTR_strlen_0012af3c)();
  pcVar5 = (char *)(param_1 + iVar3);
  *pcVar5 = '.';
  pcVar1 = (char *)(param_1 + -1);
joined_r0x000693d8:
  pcVar4 = pcVar5;
  if (pcVar5 <= pcVar1) {
LAB_0006942c:
    *pcVar5 = '\0';
    return;
  }
  do {
    puVar2 = PTR_access_0012ae48;
    if (*pcVar4 == '.') {
      *pcVar4 = '\0';
      iVar3 = (*(code *)puVar2)(param_1,0);
      if (iVar3 == 0) break;
      *pcVar4 = '.';
    }
    pcVar4 = pcVar4 + -1;
    if (pcVar1 == pcVar4) goto LAB_0006942c;
  } while( true );
  *pcVar4 = '/';
  pcVar1 = pcVar4;
  goto joined_r0x000693d8;
}

