
int rpl_re_compile_fastmap(re_pattern_buffer *bufp)

{
  re_dfastate_t *prVar1;
  re_dfastate_t *prVar2;
  re_dfa_t *prVar3;
  re_dfastate_t *init_state_1;
  
  init_state_1 = (re_dfastate_t *)bufp->fastmap;
  prVar3 = bufp->buffer;
  (*(code *)PTR_memset_00053430)(init_state_1,0,0x100);
  re_compile_fastmap_iter
            (bufp,(re_dfastate_t *)&(prVar3->init_state->nodes).nelem,
             (char *)&(prVar3->init_state->nodes).elems,init_state_1);
  prVar1 = prVar3->init_state_word;
  if (prVar3->init_state != prVar1) {
    re_compile_fastmap_iter
              (bufp,(re_dfastate_t *)&(prVar1->nodes).nelem,(char *)&(prVar1->nodes).elems,
               init_state_1);
    prVar1 = prVar3->init_state;
  }
  prVar2 = prVar3->init_state_nl;
  if (prVar2 != prVar1) {
    re_compile_fastmap_iter
              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,
               init_state_1);
    prVar1 = prVar3->init_state;
  }
  prVar2 = prVar3->init_state_begbuf;
  if (prVar2 != prVar1) {
    re_compile_fastmap_iter
              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,
               init_state_1);
  }
  bufp->field_0x1c = bufp->field_0x1c & 0xef | 0x10;
  return 0;
}



undefined4 rpl_re_compile_fastmap(int *param_1)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  
  iVar4 = param_1[4];
  iVar3 = *param_1;
  (*(code *)PTR_memset_00053430)(iVar4,0,0x100);
  FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);
  iVar1 = *(int *)(iVar3 + 0x28);
  if (*(int *)(iVar3 + 0x24) != iVar1) {
    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);
    iVar1 = *(int *)(iVar3 + 0x24);
  }
  iVar2 = *(int *)(iVar3 + 0x2c);
  if (iVar2 != iVar1) {
    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);
    iVar1 = *(int *)(iVar3 + 0x24);
  }
  iVar3 = *(int *)(iVar3 + 0x30);
  if (iVar3 != iVar1) {
    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);
  }
  *(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;
  return 0;
}


lui gp,0x2
addiu gp,gp,0x1ac8
addu gp,gp,t9
addiu sp,sp,-0x30
lw t9,-0x7cb0(gp)
li a2,0x100
or a1,zero,zero
sw s3,0x28(sp)
sw gp,0x10(sp)
sw ra,0x2c(sp)
sw s2,0x24(sp)
sw s1,0x20(sp)
sw s0,0x1c(sp)
or s0,a0,zero
lw s3,0x10(a0)
lw s1,0x0(a0)
jalr t9
_or a0,s3,zero
or a3,s3,zero
lw gp,0x10(sp)
or a0,s0,zero
lw a1,0x24(s1)
lw s2,-0x7db4(gp)
addiu a2,a1,0xc
addiu s2,s2,0x1228
or t9,s2,zero
bal 0x00031228
_addiu a1,a1,0x8
lw v0,0x28(s1)
lw v1,0x24(s1)
beq v1,v0,0x000396b0
_addiu a2,v0,0xc
addiu a1,v0,0x8
or a3,s3,zero
or t9,s2,zero
bal 0x00031228
_or a0,s0,zero
lw v0,0x24(s1)
lw a1,0x2c(s1)
beq a1,v0,0x000396d4
_addiu a2,a1,0xc
addiu a1,a1,0x8
or a3,s3,zero
or t9,s2,zero
bal 0x00031228
_or a0,s0,zero
lw v0,0x24(s1)
lw a1,0x30(s1)
beq a1,v0,0x000396f4
_addiu a2,a1,0xc
addiu a1,a1,0x8
or a3,s3,zero
or t9,s2,zero
bal 0x00031228
_or a0,s0,zero
lbu v1,0x1c(s0)
li a0,0x1
lw ra,0x2c(sp)
or v0,zero,zero
lw s3,0x28(sp)
ins v1,a0,0x4,0x1
lw s2,0x24(sp)
lw s1,0x20(sp)
sb v1,0x1c(s0)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x30
(translation_unit "undefined4 rpl_re_compile_fastmap(int *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = param_1[4];\n  iVar3 = *param_1;\n  (*(code *)PTR_memset_00053430)(iVar4,0,0x100);\n  FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);\n  iVar1 = *(int *)(iVar3 + 0x28);\n  if (*(int *)(iVar3 + 0x24) != iVar1) {\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar2 = *(int *)(iVar3 + 0x2c);\n  if (iVar2 != iVar1) {\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar3 = *(int *)(iVar3 + 0x30);\n  if (iVar3 != iVar1) {\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }\n  *(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;\n  return 0;\n}\n\n" (function_definition "undefined4 rpl_re_compile_fastmap(int *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = param_1[4];\n  iVar3 = *param_1;\n  (*(code *)PTR_memset_00053430)(iVar4,0,0x100);\n  FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);\n  iVar1 = *(int *)(iVar3 + 0x28);\n  if (*(int *)(iVar3 + 0x24) != iVar1) {\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar2 = *(int *)(iVar3 + 0x2c);\n  if (iVar2 != iVar1) {\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar3 = *(int *)(iVar3 + 0x30);\n  if (iVar3 != iVar1) {\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }\n  *(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;\n  return 0;\n}" type_identifier (function_declarator "rpl_re_compile_fastmap(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = param_1[4];\n  iVar3 = *param_1;\n  (*(code *)PTR_memset_00053430)(iVar4,0,0x100);\n  FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);\n  iVar1 = *(int *)(iVar3 + 0x28);\n  if (*(int *)(iVar3 + 0x24) != iVar1) {\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar2 = *(int *)(iVar3 + 0x2c);\n  if (iVar2 != iVar1) {\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar3 = *(int *)(iVar3 + 0x30);\n  if (iVar3 != iVar1) {\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }\n  *(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "iVar4 = param_1[4];" (assignment_expression "iVar4 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "(*(code *)PTR_memset_00053430)(iVar4,0,0x100);" (call_expression "(*(code *)PTR_memset_00053430)(iVar4,0,0x100)" (parenthesized_expression "(*(code *)PTR_memset_00053430)" ( (pointer_expression "*(code *)PTR_memset_00053430" * (cast_expression "(code *)PTR_memset_00053430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,0,0x100)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);" (call_expression "FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4)" identifier (argument_list "(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4)" ( identifier , (binary_expression "*(int *)(iVar3 + 0x24) + 8" (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar3 + 0x24) + 0xc" (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar1 = *(int *)(iVar3 + 0x28);" (assignment_expression "iVar1 = *(int *)(iVar3 + 0x28)" identifier = (pointer_expression "*(int *)(iVar3 + 0x28)" * (cast_expression "(int *)(iVar3 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar3 + 0x24) != iVar1) {\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x24) != iVar1)" ( (binary_expression "*(int *)(iVar3 + 0x24) != iVar1" (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }" { (expression_statement "FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);" (call_expression "FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4)" identifier (argument_list "(param_1,iVar1 + 8,iVar1 + 0xc,iVar4)" ( identifier , (binary_expression "iVar1 + 8" identifier + number_literal) , (binary_expression "iVar1 + 0xc" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar1 = *(int *)(iVar3 + 0x24);" (assignment_expression "iVar1 = *(int *)(iVar3 + 0x24)" identifier = (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "iVar2 = *(int *)(iVar3 + 0x2c);" (assignment_expression "iVar2 = *(int *)(iVar3 + 0x2c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x2c)" * (cast_expression "(int *)(iVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != iVar1) {\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }" if (parenthesized_expression "(iVar2 != iVar1)" ( (binary_expression "iVar2 != iVar1" identifier != identifier) )) (compound_statement "{\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }" { (expression_statement "FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);" (call_expression "FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4)" identifier (argument_list "(param_1,iVar2 + 8,iVar2 + 0xc,iVar4)" ( identifier , (binary_expression "iVar2 + 8" identifier + number_literal) , (binary_expression "iVar2 + 0xc" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar1 = *(int *)(iVar3 + 0x24);" (assignment_expression "iVar1 = *(int *)(iVar3 + 0x24)" identifier = (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "iVar3 = *(int *)(iVar3 + 0x30);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0x30)" identifier = (pointer_expression "*(int *)(iVar3 + 0x30)" * (cast_expression "(int *)(iVar3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != iVar1) {\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }" if (parenthesized_expression "(iVar3 != iVar1)" ( (binary_expression "iVar3 != iVar1" identifier != identifier) )) (compound_statement "{\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }" { (expression_statement "FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);" (call_expression "FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4)" identifier (argument_list "(param_1,iVar3 + 8,iVar3 + 0xc,iVar4)" ( identifier , (binary_expression "iVar3 + 8" identifier + number_literal) , (binary_expression "iVar3 + 0xc" identifier + number_literal) , identifier ))) ;) })) (expression_statement "*(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;" (assignment_expression "*(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 7) & 0xef | 0x10" (binary_expression "*(byte *)(param_1 + 7) & 0xef" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int rpl_re_compile_fastmap(re_pattern_buffer *bufp)\n\n{\n  re_dfastate_t *prVar1;\n  re_dfastate_t *prVar2;\n  re_dfa_t *prVar3;\n  re_dfastate_t *init_state_1;\n  \n  init_state_1 = (re_dfastate_t *)bufp->fastmap;\n  prVar3 = bufp->buffer;\n  (*(code *)PTR_memset_00053430)(init_state_1,0,0x100);\n  re_compile_fastmap_iter\n            (bufp,(re_dfastate_t *)&(prVar3->init_state->nodes).nelem,\n             (char *)&(prVar3->init_state->nodes).elems,init_state_1);\n  prVar1 = prVar3->init_state_word;\n  if (prVar3->init_state != prVar1) {\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar1->nodes).nelem,(char *)&(prVar1->nodes).elems,\n               init_state_1);\n    prVar1 = prVar3->init_state;\n  }\n  prVar2 = prVar3->init_state_nl;\n  if (prVar2 != prVar1) {\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1);\n    prVar1 = prVar3->init_state;\n  }\n  prVar2 = prVar3->init_state_begbuf;\n  if (prVar2 != prVar1) {\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1);\n  }\n  bufp->field_0x1c = bufp->field_0x1c & 0xef | 0x10;\n  return 0;\n}\n\n" (function_definition "int rpl_re_compile_fastmap(re_pattern_buffer *bufp)\n\n{\n  re_dfastate_t *prVar1;\n  re_dfastate_t *prVar2;\n  re_dfa_t *prVar3;\n  re_dfastate_t *init_state_1;\n  \n  init_state_1 = (re_dfastate_t *)bufp->fastmap;\n  prVar3 = bufp->buffer;\n  (*(code *)PTR_memset_00053430)(init_state_1,0,0x100);\n  re_compile_fastmap_iter\n            (bufp,(re_dfastate_t *)&(prVar3->init_state->nodes).nelem,\n             (char *)&(prVar3->init_state->nodes).elems,init_state_1);\n  prVar1 = prVar3->init_state_word;\n  if (prVar3->init_state != prVar1) {\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar1->nodes).nelem,(char *)&(prVar1->nodes).elems,\n               init_state_1);\n    prVar1 = prVar3->init_state;\n  }\n  prVar2 = prVar3->init_state_nl;\n  if (prVar2 != prVar1) {\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1);\n    prVar1 = prVar3->init_state;\n  }\n  prVar2 = prVar3->init_state_begbuf;\n  if (prVar2 != prVar1) {\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1);\n  }\n  bufp->field_0x1c = bufp->field_0x1c & 0xef | 0x10;\n  return 0;\n}" primitive_type (function_declarator "rpl_re_compile_fastmap(re_pattern_buffer *bufp)" identifier (parameter_list "(re_pattern_buffer *bufp)" ( (parameter_declaration "re_pattern_buffer *bufp" type_identifier (pointer_declarator "*bufp" * identifier)) ))) (compound_statement "{\n  re_dfastate_t *prVar1;\n  re_dfastate_t *prVar2;\n  re_dfa_t *prVar3;\n  re_dfastate_t *init_state_1;\n  \n  init_state_1 = (re_dfastate_t *)bufp->fastmap;\n  prVar3 = bufp->buffer;\n  (*(code *)PTR_memset_00053430)(init_state_1,0,0x100);\n  re_compile_fastmap_iter\n            (bufp,(re_dfastate_t *)&(prVar3->init_state->nodes).nelem,\n             (char *)&(prVar3->init_state->nodes).elems,init_state_1);\n  prVar1 = prVar3->init_state_word;\n  if (prVar3->init_state != prVar1) {\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar1->nodes).nelem,(char *)&(prVar1->nodes).elems,\n               init_state_1);\n    prVar1 = prVar3->init_state;\n  }\n  prVar2 = prVar3->init_state_nl;\n  if (prVar2 != prVar1) {\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1);\n    prVar1 = prVar3->init_state;\n  }\n  prVar2 = prVar3->init_state_begbuf;\n  if (prVar2 != prVar1) {\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1);\n  }\n  bufp->field_0x1c = bufp->field_0x1c & 0xef | 0x10;\n  return 0;\n}" { (declaration "re_dfastate_t *prVar1;" type_identifier (pointer_declarator "*prVar1" * identifier) ;) (declaration "re_dfastate_t *prVar2;" type_identifier (pointer_declarator "*prVar2" * identifier) ;) (declaration "re_dfa_t *prVar3;" type_identifier (pointer_declarator "*prVar3" * identifier) ;) (declaration "re_dfastate_t *init_state_1;" type_identifier (pointer_declarator "*init_state_1" * identifier) ;) (expression_statement "init_state_1 = (re_dfastate_t *)bufp->fastmap;" (assignment_expression "init_state_1 = (re_dfastate_t *)bufp->fastmap" identifier = (cast_expression "(re_dfastate_t *)bufp->fastmap" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "bufp->fastmap" identifier -> field_identifier))) ;) (expression_statement "prVar3 = bufp->buffer;" (assignment_expression "prVar3 = bufp->buffer" identifier = (field_expression "bufp->buffer" identifier -> field_identifier)) ;) (expression_statement "(*(code *)PTR_memset_00053430)(init_state_1,0,0x100);" (call_expression "(*(code *)PTR_memset_00053430)(init_state_1,0,0x100)" (parenthesized_expression "(*(code *)PTR_memset_00053430)" ( (pointer_expression "*(code *)PTR_memset_00053430" * (cast_expression "(code *)PTR_memset_00053430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(init_state_1,0,0x100)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "re_compile_fastmap_iter\n            (bufp,(re_dfastate_t *)&(prVar3->init_state->nodes).nelem,\n             (char *)&(prVar3->init_state->nodes).elems,init_state_1);" (call_expression "re_compile_fastmap_iter\n            (bufp,(re_dfastate_t *)&(prVar3->init_state->nodes).nelem,\n             (char *)&(prVar3->init_state->nodes).elems,init_state_1)" identifier (argument_list "(bufp,(re_dfastate_t *)&(prVar3->init_state->nodes).nelem,\n             (char *)&(prVar3->init_state->nodes).elems,init_state_1)" ( identifier , (cast_expression "(re_dfastate_t *)&(prVar3->init_state->nodes).nelem" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(prVar3->init_state->nodes).nelem" & (field_expression "(prVar3->init_state->nodes).nelem" (parenthesized_expression "(prVar3->init_state->nodes)" ( (field_expression "prVar3->init_state->nodes" (field_expression "prVar3->init_state" identifier -> field_identifier) -> field_identifier) )) . field_identifier))) , (cast_expression "(char *)&(prVar3->init_state->nodes).elems" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(prVar3->init_state->nodes).elems" & (field_expression "(prVar3->init_state->nodes).elems" (parenthesized_expression "(prVar3->init_state->nodes)" ( (field_expression "prVar3->init_state->nodes" (field_expression "prVar3->init_state" identifier -> field_identifier) -> field_identifier) )) . field_identifier))) , identifier ))) ;) (expression_statement "prVar1 = prVar3->init_state_word;" (assignment_expression "prVar1 = prVar3->init_state_word" identifier = (field_expression "prVar3->init_state_word" identifier -> field_identifier)) ;) (if_statement "if (prVar3->init_state != prVar1) {\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar1->nodes).nelem,(char *)&(prVar1->nodes).elems,\n               init_state_1);\n    prVar1 = prVar3->init_state;\n  }" if (parenthesized_expression "(prVar3->init_state != prVar1)" ( (binary_expression "prVar3->init_state != prVar1" (field_expression "prVar3->init_state" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar1->nodes).nelem,(char *)&(prVar1->nodes).elems,\n               init_state_1);\n    prVar1 = prVar3->init_state;\n  }" { (expression_statement "re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar1->nodes).nelem,(char *)&(prVar1->nodes).elems,\n               init_state_1);" (call_expression "re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar1->nodes).nelem,(char *)&(prVar1->nodes).elems,\n               init_state_1)" identifier (argument_list "(bufp,(re_dfastate_t *)&(prVar1->nodes).nelem,(char *)&(prVar1->nodes).elems,\n               init_state_1)" ( identifier , (cast_expression "(re_dfastate_t *)&(prVar1->nodes).nelem" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(prVar1->nodes).nelem" & (field_expression "(prVar1->nodes).nelem" (parenthesized_expression "(prVar1->nodes)" ( (field_expression "prVar1->nodes" identifier -> field_identifier) )) . field_identifier))) , (cast_expression "(char *)&(prVar1->nodes).elems" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(prVar1->nodes).elems" & (field_expression "(prVar1->nodes).elems" (parenthesized_expression "(prVar1->nodes)" ( (field_expression "prVar1->nodes" identifier -> field_identifier) )) . field_identifier))) , identifier ))) ;) (expression_statement "prVar1 = prVar3->init_state;" (assignment_expression "prVar1 = prVar3->init_state" identifier = (field_expression "prVar3->init_state" identifier -> field_identifier)) ;) })) (expression_statement "prVar2 = prVar3->init_state_nl;" (assignment_expression "prVar2 = prVar3->init_state_nl" identifier = (field_expression "prVar3->init_state_nl" identifier -> field_identifier)) ;) (if_statement "if (prVar2 != prVar1) {\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1);\n    prVar1 = prVar3->init_state;\n  }" if (parenthesized_expression "(prVar2 != prVar1)" ( (binary_expression "prVar2 != prVar1" identifier != identifier) )) (compound_statement "{\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1);\n    prVar1 = prVar3->init_state;\n  }" { (expression_statement "re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1);" (call_expression "re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1)" identifier (argument_list "(bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1)" ( identifier , (cast_expression "(re_dfastate_t *)&(prVar2->nodes).nelem" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(prVar2->nodes).nelem" & (field_expression "(prVar2->nodes).nelem" (parenthesized_expression "(prVar2->nodes)" ( (field_expression "prVar2->nodes" identifier -> field_identifier) )) . field_identifier))) , (cast_expression "(char *)&(prVar2->nodes).elems" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(prVar2->nodes).elems" & (field_expression "(prVar2->nodes).elems" (parenthesized_expression "(prVar2->nodes)" ( (field_expression "prVar2->nodes" identifier -> field_identifier) )) . field_identifier))) , identifier ))) ;) (expression_statement "prVar1 = prVar3->init_state;" (assignment_expression "prVar1 = prVar3->init_state" identifier = (field_expression "prVar3->init_state" identifier -> field_identifier)) ;) })) (expression_statement "prVar2 = prVar3->init_state_begbuf;" (assignment_expression "prVar2 = prVar3->init_state_begbuf" identifier = (field_expression "prVar3->init_state_begbuf" identifier -> field_identifier)) ;) (if_statement "if (prVar2 != prVar1) {\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1);\n  }" if (parenthesized_expression "(prVar2 != prVar1)" ( (binary_expression "prVar2 != prVar1" identifier != identifier) )) (compound_statement "{\n    re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1);\n  }" { (expression_statement "re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1);" (call_expression "re_compile_fastmap_iter\n              (bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1)" identifier (argument_list "(bufp,(re_dfastate_t *)&(prVar2->nodes).nelem,(char *)&(prVar2->nodes).elems,\n               init_state_1)" ( identifier , (cast_expression "(re_dfastate_t *)&(prVar2->nodes).nelem" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(prVar2->nodes).nelem" & (field_expression "(prVar2->nodes).nelem" (parenthesized_expression "(prVar2->nodes)" ( (field_expression "prVar2->nodes" identifier -> field_identifier) )) . field_identifier))) , (cast_expression "(char *)&(prVar2->nodes).elems" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(prVar2->nodes).elems" & (field_expression "(prVar2->nodes).elems" (parenthesized_expression "(prVar2->nodes)" ( (field_expression "prVar2->nodes" identifier -> field_identifier) )) . field_identifier))) , identifier ))) ;) })) (expression_statement "bufp->field_0x1c = bufp->field_0x1c & 0xef | 0x10;" (assignment_expression "bufp->field_0x1c = bufp->field_0x1c & 0xef | 0x10" (field_expression "bufp->field_0x1c" identifier -> field_identifier) = (binary_expression "bufp->field_0x1c & 0xef | 0x10" (binary_expression "bufp->field_0x1c & 0xef" (field_expression "bufp->field_0x1c" identifier -> field_identifier) & number_literal) | number_literal)) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined4 rpl_re_compile_fastmap(int *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = param_1[4];\n  iVar3 = *param_1;\n  (*(code *)PTR_memset_00053430)(iVar4,0,0x100);\n  FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);\n  iVar1 = *(int *)(iVar3 + 0x28);\n  if (*(int *)(iVar3 + 0x24) != iVar1) {\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar2 = *(int *)(iVar3 + 0x2c);\n  if (iVar2 != iVar1) {\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar3 = *(int *)(iVar3 + 0x30);\n  if (iVar3 != iVar1) {\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }\n  *(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;\n  return 0;\n}\n\n" (function_definition "undefined4 rpl_re_compile_fastmap(int *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = param_1[4];\n  iVar3 = *param_1;\n  (*(code *)PTR_memset_00053430)(iVar4,0,0x100);\n  FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);\n  iVar1 = *(int *)(iVar3 + 0x28);\n  if (*(int *)(iVar3 + 0x24) != iVar1) {\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar2 = *(int *)(iVar3 + 0x2c);\n  if (iVar2 != iVar1) {\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar3 = *(int *)(iVar3 + 0x30);\n  if (iVar3 != iVar1) {\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }\n  *(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;\n  return 0;\n}" type_identifier (function_declarator "rpl_re_compile_fastmap(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = param_1[4];\n  iVar3 = *param_1;\n  (*(code *)PTR_memset_00053430)(iVar4,0,0x100);\n  FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);\n  iVar1 = *(int *)(iVar3 + 0x28);\n  if (*(int *)(iVar3 + 0x24) != iVar1) {\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar2 = *(int *)(iVar3 + 0x2c);\n  if (iVar2 != iVar1) {\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar3 = *(int *)(iVar3 + 0x30);\n  if (iVar3 != iVar1) {\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }\n  *(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "iVar4 = param_1[4];" (assignment_expression "iVar4 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "(*(code *)PTR_memset_00053430)(iVar4,0,0x100);" (call_expression "(*(code *)PTR_memset_00053430)(iVar4,0,0x100)" (parenthesized_expression "(*(code *)PTR_memset_00053430)" ( (pointer_expression "*(code *)PTR_memset_00053430" * (cast_expression "(code *)PTR_memset_00053430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,0,0x100)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);" (call_expression "FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4)" identifier (argument_list "(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4)" ( identifier , (binary_expression "*(int *)(iVar3 + 0x24) + 8" (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar3 + 0x24) + 0xc" (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar1 = *(int *)(iVar3 + 0x28);" (assignment_expression "iVar1 = *(int *)(iVar3 + 0x28)" identifier = (pointer_expression "*(int *)(iVar3 + 0x28)" * (cast_expression "(int *)(iVar3 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar3 + 0x24) != iVar1) {\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x24) != iVar1)" ( (binary_expression "*(int *)(iVar3 + 0x24) != iVar1" (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }" { (expression_statement "FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);" (call_expression "FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4)" identifier (argument_list "(param_1,iVar1 + 8,iVar1 + 0xc,iVar4)" ( identifier , (binary_expression "iVar1 + 8" identifier + number_literal) , (binary_expression "iVar1 + 0xc" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar1 = *(int *)(iVar3 + 0x24);" (assignment_expression "iVar1 = *(int *)(iVar3 + 0x24)" identifier = (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "iVar2 = *(int *)(iVar3 + 0x2c);" (assignment_expression "iVar2 = *(int *)(iVar3 + 0x2c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x2c)" * (cast_expression "(int *)(iVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != iVar1) {\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }" if (parenthesized_expression "(iVar2 != iVar1)" ( (binary_expression "iVar2 != iVar1" identifier != identifier) )) (compound_statement "{\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }" { (expression_statement "FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);" (call_expression "FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4)" identifier (argument_list "(param_1,iVar2 + 8,iVar2 + 0xc,iVar4)" ( identifier , (binary_expression "iVar2 + 8" identifier + number_literal) , (binary_expression "iVar2 + 0xc" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar1 = *(int *)(iVar3 + 0x24);" (assignment_expression "iVar1 = *(int *)(iVar3 + 0x24)" identifier = (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "iVar3 = *(int *)(iVar3 + 0x30);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0x30)" identifier = (pointer_expression "*(int *)(iVar3 + 0x30)" * (cast_expression "(int *)(iVar3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != iVar1) {\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }" if (parenthesized_expression "(iVar3 != iVar1)" ( (binary_expression "iVar3 != iVar1" identifier != identifier) )) (compound_statement "{\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }" { (expression_statement "FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);" (call_expression "FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4)" identifier (argument_list "(param_1,iVar3 + 8,iVar3 + 0xc,iVar4)" ( identifier , (binary_expression "iVar3 + 8" identifier + number_literal) , (binary_expression "iVar3 + 0xc" identifier + number_literal) , identifier ))) ;) })) (expression_statement "*(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;" (assignment_expression "*(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 7) & 0xef | 0x10" (binary_expression "*(byte *)(param_1 + 7) & 0xef" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 rpl_re_compile_fastmap(int *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = param_1[4];\n  iVar3 = *param_1;\n  (*(code *)PTR_memset_00053430)(iVar4,0,0x100);\n  FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);\n  iVar1 = *(int *)(iVar3 + 0x28);\n  if (*(int *)(iVar3 + 0x24) != iVar1) {\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar2 = *(int *)(iVar3 + 0x2c);\n  if (iVar2 != iVar1) {\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar3 = *(int *)(iVar3 + 0x30);\n  if (iVar3 != iVar1) {\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }\n  *(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "rpl_re_compile_fastmap(int *param_1)" (identifier "rpl_re_compile_fastmap") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = param_1[4];\n  iVar3 = *param_1;\n  (*(code *)PTR_memset_00053430)(iVar4,0,0x100);\n  FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);\n  iVar1 = *(int *)(iVar3 + 0x28);\n  if (*(int *)(iVar3 + 0x24) != iVar1) {\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar2 = *(int *)(iVar3 + 0x2c);\n  if (iVar2 != iVar1) {\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }\n  iVar3 = *(int *)(iVar3 + 0x30);\n  if (iVar3 != iVar1) {\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }\n  *(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;\n  return 0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (expression_statement "iVar4 = param_1[4];" (assignment_expression "iVar4 = param_1[4]" (identifier "iVar4") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" (identifier "iVar3") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "(*(code *)PTR_memset_00053430)(iVar4,0,0x100);" (call_expression "(*(code *)PTR_memset_00053430)(iVar4,0,0x100)" (parenthesized_expression "(*(code *)PTR_memset_00053430)" (( "(") (pointer_expression "*(code *)PTR_memset_00053430" (* "*") (cast_expression "(code *)PTR_memset_00053430" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_00053430"))) () ")")) (argument_list "(iVar4,0,0x100)" (( "(") (identifier "iVar4") (, ",") (number_literal "0") (, ",") (number_literal "0x100") () ")"))) (; ";")) (expression_statement "FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);" (call_expression "FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4)" (identifier "FUN_00031228") (argument_list "(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4)" (( "(") (identifier "param_1") (, ",") (binary_expression "*(int *)(iVar3 + 0x24) + 8" (pointer_expression "*(int *)(iVar3 + 0x24)" (* "*") (cast_expression "(int *)(iVar3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x24)" (( "(") (binary_expression "iVar3 + 0x24" (identifier "iVar3") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "8")) (, ",") (binary_expression "*(int *)(iVar3 + 0x24) + 0xc" (pointer_expression "*(int *)(iVar3 + 0x24)" (* "*") (cast_expression "(int *)(iVar3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x24)" (( "(") (binary_expression "iVar3 + 0x24" (identifier "iVar3") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "0xc")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(iVar3 + 0x28);" (assignment_expression "iVar1 = *(int *)(iVar3 + 0x28)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(iVar3 + 0x28)" (* "*") (cast_expression "(int *)(iVar3 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x28)" (( "(") (binary_expression "iVar3 + 0x28" (identifier "iVar3") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x24) != iVar1) {\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x24) != iVar1)" (( "(") (binary_expression "*(int *)(iVar3 + 0x24) != iVar1" (pointer_expression "*(int *)(iVar3 + 0x24)" (* "*") (cast_expression "(int *)(iVar3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x24)" (( "(") (binary_expression "iVar3 + 0x24" (identifier "iVar3") (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (identifier "iVar1")) () ")")) (compound_statement "{\n    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }" ({ "{") (expression_statement "FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);" (call_expression "FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4)" (identifier "FUN_00031228") (argument_list "(param_1,iVar1 + 8,iVar1 + 0xc,iVar4)" (( "(") (identifier "param_1") (, ",") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) (, ",") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(iVar3 + 0x24);" (assignment_expression "iVar1 = *(int *)(iVar3 + 0x24)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(iVar3 + 0x24)" (* "*") (cast_expression "(int *)(iVar3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x24)" (( "(") (binary_expression "iVar3 + 0x24" (identifier "iVar3") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(iVar3 + 0x2c);" (assignment_expression "iVar2 = *(int *)(iVar3 + 0x2c)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar3 + 0x2c)" (* "*") (cast_expression "(int *)(iVar3 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c)" (( "(") (binary_expression "iVar3 + 0x2c" (identifier "iVar3") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (if_statement "if (iVar2 != iVar1) {\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }" (if "if") (parenthesized_expression "(iVar2 != iVar1)" (( "(") (binary_expression "iVar2 != iVar1" (identifier "iVar2") (!= "!=") (identifier "iVar1")) () ")")) (compound_statement "{\n    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);\n    iVar1 = *(int *)(iVar3 + 0x24);\n  }" ({ "{") (expression_statement "FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);" (call_expression "FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4)" (identifier "FUN_00031228") (argument_list "(param_1,iVar2 + 8,iVar2 + 0xc,iVar4)" (( "(") (identifier "param_1") (, ",") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) (, ",") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(iVar3 + 0x24);" (assignment_expression "iVar1 = *(int *)(iVar3 + 0x24)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(iVar3 + 0x24)" (* "*") (cast_expression "(int *)(iVar3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x24)" (( "(") (binary_expression "iVar3 + 0x24" (identifier "iVar3") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(iVar3 + 0x30);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0x30)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar3 + 0x30)" (* "*") (cast_expression "(int *)(iVar3 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x30)" (( "(") (binary_expression "iVar3 + 0x30" (identifier "iVar3") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (iVar3 != iVar1) {\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }" (if "if") (parenthesized_expression "(iVar3 != iVar1)" (( "(") (binary_expression "iVar3 != iVar1" (identifier "iVar3") (!= "!=") (identifier "iVar1")) () ")")) (compound_statement "{\n    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);\n  }" ({ "{") (expression_statement "FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);" (call_expression "FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4)" (identifier "FUN_00031228") (argument_list "(param_1,iVar3 + 8,iVar3 + 0xc,iVar4)" (( "(") (identifier "param_1") (, ",") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) (, ",") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "*(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;" (assignment_expression "*(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(param_1 + 7) & 0xef | 0x10" (binary_expression "*(byte *)(param_1 + 7) & 0xef" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xef")) (| "|") (number_literal "0x10"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (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) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (return_statement (number_literal)))))

undefined4 MASKED(int *param_1)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  
  iVar4 = param_1[4];
  iVar3 = *param_1;
  (*(code *)PTR_memset_00053430)(iVar4,0,0x100);
  FUN_00031228(param_1,*(int *)(iVar3 + 0x24) + 8,*(int *)(iVar3 + 0x24) + 0xc,iVar4);
  iVar1 = *(int *)(iVar3 + 0x28);
  if (*(int *)(iVar3 + 0x24) != iVar1) {
    FUN_00031228(param_1,iVar1 + 8,iVar1 + 0xc,iVar4);
    iVar1 = *(int *)(iVar3 + 0x24);
  }
  iVar2 = *(int *)(iVar3 + 0x2c);
  if (iVar2 != iVar1) {
    FUN_00031228(param_1,iVar2 + 8,iVar2 + 0xc,iVar4);
    iVar1 = *(int *)(iVar3 + 0x24);
  }
  iVar3 = *(int *)(iVar3 + 0x30);
  if (iVar3 != iVar1) {
    FUN_00031228(param_1,iVar3 + 8,iVar3 + 0xc,iVar4);
  }
  *(byte *)(param_1 + 7) = *(byte *)(param_1 + 7) & 0xef | 0x10;
  return 0;
}

