
void d_print_subexpr(d_print_info *dpi,int options,demangle_component *dc)

{
  void *pvVar1;
  size_t sVar2;
  size_t sVar3;
  
  if ((dc->type < DEMANGLE_COMPONENT_OPERATOR) &&
     ((0x1000000000043U >> ((ulong)dc->type & 0x3f) & 1) != 0)) {
    d_print_comp(dpi,options,dc);
    return;
  }
  sVar2 = dpi->len;
  sVar3 = sVar2 + 1;
  if (sVar2 == 0xff) {
    pvVar1 = dpi->opaque;
    dpi->buf[0xff] = '\0';
    (*dpi->callback)(dpi->buf,0xff,pvVar1);
    dpi->flush_count = dpi->flush_count + 1;
    sVar3 = 1;
    sVar2 = 0;
  }
  dpi->len = sVar3;
  dpi->buf[sVar2] = '(';
  dpi->last_char = '(';
  d_print_comp(dpi,options,dc);
  sVar2 = dpi->len;
  sVar3 = sVar2 + 1;
  if (sVar2 == 0xff) {
    pvVar1 = dpi->opaque;
    dpi->buf[0xff] = '\0';
    (*dpi->callback)(dpi->buf,0xff,pvVar1);
    dpi->flush_count = dpi->flush_count + 1;
    sVar3 = 1;
    sVar2 = 0;
  }
  dpi->len = sVar3;
  dpi->buf[sVar2] = ')';
  dpi->last_char = ')';
  return;
}



void FUN_0026b5c0(long param_1,undefined4 param_2,uint *param_3)

{
  long lVar1;
  long lVar2;
  
  if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {
    FUN_0026a0d0();
    return;
  }
  lVar1 = *(long *)(param_1 + 0x100);
  lVar2 = lVar1 + 1;
  if (lVar1 == 0xff) {
    *(undefined1 *)(param_1 + 0xff) = 0;
    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
    lVar2 = 1;
    lVar1 = 0;
  }
  *(long *)(param_1 + 0x100) = lVar2;
  *(undefined1 *)(param_1 + lVar1) = 0x28;
  *(undefined1 *)(param_1 + 0x108) = 0x28;
  FUN_0026a0d0(param_1,param_2,param_3);
  lVar1 = *(long *)(param_1 + 0x100);
  lVar2 = lVar1 + 1;
  if (lVar1 == 0xff) {
    *(undefined1 *)(param_1 + 0xff) = 0;
    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
    lVar2 = 1;
    lVar1 = 0;
  }
  *(long *)(param_1 + 0x100) = lVar2;
  *(undefined1 *)(param_1 + lVar1) = 0x29;
  *(undefined1 *)(param_1 + 0x108) = 0x29;
  return;
}


MOV EAX,dword ptr [RDX]
CMP EAX,0x30
JBE 0x0026b668
PUSH R12
MOV R12D,ESI
PUSH RBP
MOV RBP,RDX
PUSH RBX
MOV RAX,qword ptr [RDI + 0x100]
MOV RBX,RDI
LEA RDX,[RAX + 0x1]
CMP RAX,0xff
JZ 0x0026b688
MOV qword ptr [RBX + 0x100],RDX
MOV ESI,R12D
MOV RDX,RBP
MOV RDI,RBX
MOV byte ptr [RBX + RAX*0x1],0x28
MOV byte ptr [RBX + 0x108],0x28
CALL 0x0026a0d0
MOV RAX,qword ptr [RBX + 0x100]
LEA RDX,[RAX + 0x1]
CMP RAX,0xff
JNZ 0x0026b64d
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EDX,0x1
XOR EAX,EAX
MOV qword ptr [RBX + 0x100],RDX
MOV byte ptr [RBX + RAX*0x1],0x29
MOV byte ptr [RBX + 0x108],0x29
POP RBX
POP RBP
POP R12
RET
MOV RCX,0x1000000000043
BT RCX,RAX
JNC 0x0026b5cb
JMP 0x0026a0d0
MOV RDX,qword ptr [RDI + 0x118]
MOV byte ptr [RDI + 0xff],0x0
MOV ESI,0xff
CALL qword ptr [RDI + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EDX,0x1
XOR EAX,EAX
JMP 0x0026b5ef
(translation_unit "void FUN_0026b5c0(long param_1,undefined4 param_2,uint *param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  \n  if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {\n    FUN_0026a0d0();\n    return;\n  }\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x28;\n  *(undefined1 *)(param_1 + 0x108) = 0x28;\n  FUN_0026a0d0(param_1,param_2,param_3);\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x29;\n  *(undefined1 *)(param_1 + 0x108) = 0x29;\n  return;\n}\n\n" (function_definition "void FUN_0026b5c0(long param_1,undefined4 param_2,uint *param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  \n  if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {\n    FUN_0026a0d0();\n    return;\n  }\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x28;\n  *(undefined1 *)(param_1 + 0x108) = 0x28;\n  FUN_0026a0d0(param_1,param_2,param_3);\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x29;\n  *(undefined1 *)(param_1 + 0x108) = 0x29;\n  return;\n}" primitive_type (function_declarator "FUN_0026b5c0(long param_1,undefined4 param_2,uint *param_3)" identifier (parameter_list "(long param_1,undefined4 param_2,uint *param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  \n  if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {\n    FUN_0026a0d0();\n    return;\n  }\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x28;\n  *(undefined1 *)(param_1 + 0x108) = 0x28;\n  FUN_0026a0d0(param_1,param_2,param_3);\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x29;\n  *(undefined1 *)(param_1 + 0x108) = 0x29;\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (if_statement "if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {\n    FUN_0026a0d0();\n    return;\n  }" if (parenthesized_expression "((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0))" ( (binary_expression "(*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)" (parenthesized_expression "(*param_3 < 0x31)" ( (binary_expression "*param_3 < 0x31" (pointer_expression "*param_3" * identifier) < number_literal) )) && (parenthesized_expression "((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)" ( (binary_expression "(0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0" (parenthesized_expression "(0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1)" ( (binary_expression "0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1" (binary_expression "0x1000000000043U >> ((ulong)*param_3 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)*param_3 & 0x3f)" ( (binary_expression "(ulong)*param_3 & 0x3f" (binary_expression "(ulong)*param_3" (parenthesized_expression "(ulong)" ( identifier )) * identifier) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    FUN_0026a0d0();\n    return;\n  }" { (expression_statement "FUN_0026a0d0();" (call_expression "FUN_0026a0d0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "lVar2 = lVar1 + 1;" (assignment_expression "lVar2 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (if_statement "if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }" if (parenthesized_expression "(lVar1 == 0xff)" ( (binary_expression "lVar1 == 0xff" identifier == number_literal) )) (compound_statement "{\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar2 = 1;" (assignment_expression "lVar2 = 1" identifier = number_literal) ;) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) })) (expression_statement "*(long *)(param_1 + 0x100) = lVar2;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar2" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x28;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x28" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x28;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x28" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0026a0d0(param_1,param_2,param_3);" (call_expression "FUN_0026a0d0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "lVar2 = lVar1 + 1;" (assignment_expression "lVar2 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (if_statement "if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }" if (parenthesized_expression "(lVar1 == 0xff)" ( (binary_expression "lVar1 == 0xff" identifier == number_literal) )) (compound_statement "{\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar2 = 1;" (assignment_expression "lVar2 = 1" identifier = number_literal) ;) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) })) (expression_statement "*(long *)(param_1 + 0x100) = lVar2;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar2" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x29;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x29" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x29;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x29" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "void d_print_subexpr(d_print_info *dpi,int options,demangle_component *dc)\n\n{\n  void *pvVar1;\n  size_t sVar2;\n  size_t sVar3;\n  \n  if ((dc->type < DEMANGLE_COMPONENT_OPERATOR) &&\n     ((0x1000000000043U >> ((ulong)dc->type & 0x3f) & 1) != 0)) {\n    d_print_comp(dpi,options,dc);\n    return;\n  }\n  sVar2 = dpi->len;\n  sVar3 = sVar2 + 1;\n  if (sVar2 == 0xff) {\n    pvVar1 = dpi->opaque;\n    dpi->buf[0xff] = '\0';\n    (*dpi->callback)(dpi->buf,0xff,pvVar1);\n    dpi->flush_count = dpi->flush_count + 1;\n    sVar3 = 1;\n    sVar2 = 0;\n  }\n  dpi->len = sVar3;\n  dpi->buf[sVar2] = '(';\n  dpi->last_char = '(';\n  d_print_comp(dpi,options,dc);\n  sVar2 = dpi->len;\n  sVar3 = sVar2 + 1;\n  if (sVar2 == 0xff) {\n    pvVar1 = dpi->opaque;\n    dpi->buf[0xff] = '\0';\n    (*dpi->callback)(dpi->buf,0xff,pvVar1);\n    dpi->flush_count = dpi->flush_count + 1;\n    sVar3 = 1;\n    sVar2 = 0;\n  }\n  dpi->len = sVar3;\n  dpi->buf[sVar2] = ')';\n  dpi->last_char = ')';\n  return;\n}\n\n" (function_definition "void d_print_subexpr(d_print_info *dpi,int options,demangle_component *dc)\n\n{\n  void *pvVar1;\n  size_t sVar2;\n  size_t sVar3;\n  \n  if ((dc->type < DEMANGLE_COMPONENT_OPERATOR) &&\n     ((0x1000000000043U >> ((ulong)dc->type & 0x3f) & 1) != 0)) {\n    d_print_comp(dpi,options,dc);\n    return;\n  }\n  sVar2 = dpi->len;\n  sVar3 = sVar2 + 1;\n  if (sVar2 == 0xff) {\n    pvVar1 = dpi->opaque;\n    dpi->buf[0xff] = '\0';\n    (*dpi->callback)(dpi->buf,0xff,pvVar1);\n    dpi->flush_count = dpi->flush_count + 1;\n    sVar3 = 1;\n    sVar2 = 0;\n  }\n  dpi->len = sVar3;\n  dpi->buf[sVar2] = '(';\n  dpi->last_char = '(';\n  d_print_comp(dpi,options,dc);\n  sVar2 = dpi->len;\n  sVar3 = sVar2 + 1;\n  if (sVar2 == 0xff) {\n    pvVar1 = dpi->opaque;\n    dpi->buf[0xff] = '\0';\n    (*dpi->callback)(dpi->buf,0xff,pvVar1);\n    dpi->flush_count = dpi->flush_count + 1;\n    sVar3 = 1;\n    sVar2 = 0;\n  }\n  dpi->len = sVar3;\n  dpi->buf[sVar2] = ')';\n  dpi->last_char = ')';\n  return;\n}" primitive_type (function_declarator "d_print_subexpr(d_print_info *dpi,int options,demangle_component *dc)" identifier (parameter_list "(d_print_info *dpi,int options,demangle_component *dc)" ( (parameter_declaration "d_print_info *dpi" type_identifier (pointer_declarator "*dpi" * identifier)) , (parameter_declaration "int options" primitive_type identifier) , (parameter_declaration "demangle_component *dc" type_identifier (pointer_declarator "*dc" * identifier)) ))) (compound_statement "{\n  void *pvVar1;\n  size_t sVar2;\n  size_t sVar3;\n  \n  if ((dc->type < DEMANGLE_COMPONENT_OPERATOR) &&\n     ((0x1000000000043U >> ((ulong)dc->type & 0x3f) & 1) != 0)) {\n    d_print_comp(dpi,options,dc);\n    return;\n  }\n  sVar2 = dpi->len;\n  sVar3 = sVar2 + 1;\n  if (sVar2 == 0xff) {\n    pvVar1 = dpi->opaque;\n    dpi->buf[0xff] = '\0';\n    (*dpi->callback)(dpi->buf,0xff,pvVar1);\n    dpi->flush_count = dpi->flush_count + 1;\n    sVar3 = 1;\n    sVar2 = 0;\n  }\n  dpi->len = sVar3;\n  dpi->buf[sVar2] = '(';\n  dpi->last_char = '(';\n  d_print_comp(dpi,options,dc);\n  sVar2 = dpi->len;\n  sVar3 = sVar2 + 1;\n  if (sVar2 == 0xff) {\n    pvVar1 = dpi->opaque;\n    dpi->buf[0xff] = '\0';\n    (*dpi->callback)(dpi->buf,0xff,pvVar1);\n    dpi->flush_count = dpi->flush_count + 1;\n    sVar3 = 1;\n    sVar2 = 0;\n  }\n  dpi->len = sVar3;\n  dpi->buf[sVar2] = ')';\n  dpi->last_char = ')';\n  return;\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (if_statement "if ((dc->type < DEMANGLE_COMPONENT_OPERATOR) &&\n     ((0x1000000000043U >> ((ulong)dc->type & 0x3f) & 1) != 0)) {\n    d_print_comp(dpi,options,dc);\n    return;\n  }" if (parenthesized_expression "((dc->type < DEMANGLE_COMPONENT_OPERATOR) &&\n     ((0x1000000000043U >> ((ulong)dc->type & 0x3f) & 1) != 0))" ( (binary_expression "(dc->type < DEMANGLE_COMPONENT_OPERATOR) &&\n     ((0x1000000000043U >> ((ulong)dc->type & 0x3f) & 1) != 0)" (parenthesized_expression "(dc->type < DEMANGLE_COMPONENT_OPERATOR)" ( (binary_expression "dc->type < DEMANGLE_COMPONENT_OPERATOR" (field_expression "dc->type" identifier -> field_identifier) < identifier) )) && (parenthesized_expression "((0x1000000000043U >> ((ulong)dc->type & 0x3f) & 1) != 0)" ( (binary_expression "(0x1000000000043U >> ((ulong)dc->type & 0x3f) & 1) != 0" (parenthesized_expression "(0x1000000000043U >> ((ulong)dc->type & 0x3f) & 1)" ( (binary_expression "0x1000000000043U >> ((ulong)dc->type & 0x3f) & 1" (binary_expression "0x1000000000043U >> ((ulong)dc->type & 0x3f)" number_literal >> (parenthesized_expression "((ulong)dc->type & 0x3f)" ( (binary_expression "(ulong)dc->type & 0x3f" (cast_expression "(ulong)dc->type" ( (type_descriptor "ulong" type_identifier) ) (field_expression "dc->type" identifier -> field_identifier)) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    d_print_comp(dpi,options,dc);\n    return;\n  }" { (expression_statement "d_print_comp(dpi,options,dc);" (call_expression "d_print_comp(dpi,options,dc)" identifier (argument_list "(dpi,options,dc)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "sVar2 = dpi->len;" (assignment_expression "sVar2 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (expression_statement "sVar3 = sVar2 + 1;" (assignment_expression "sVar3 = sVar2 + 1" identifier = (binary_expression "sVar2 + 1" identifier + number_literal)) ;) (if_statement "if (sVar2 == 0xff) {\n    pvVar1 = dpi->opaque;\n    dpi->buf[0xff] = '\0';\n    (*dpi->callback)(dpi->buf,0xff,pvVar1);\n    dpi->flush_count = dpi->flush_count + 1;\n    sVar3 = 1;\n    sVar2 = 0;\n  }" if (parenthesized_expression "(sVar2 == 0xff)" ( (binary_expression "sVar2 == 0xff" identifier == number_literal) )) (compound_statement "{\n    pvVar1 = dpi->opaque;\n    dpi->buf[0xff] = '\0';\n    (*dpi->callback)(dpi->buf,0xff,pvVar1);\n    dpi->flush_count = dpi->flush_count + 1;\n    sVar3 = 1;\n    sVar2 = 0;\n  }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar3 = 1;" (assignment_expression "sVar3 = 1" identifier = number_literal) ;) (expression_statement "sVar2 = 0;" (assignment_expression "sVar2 = 0" identifier = number_literal) ;) })) (expression_statement "dpi->len = sVar3;" (assignment_expression "dpi->len = sVar3" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar2] = '(';" (assignment_expression "dpi->buf[sVar2] = '('" (subscript_expression "dpi->buf[sVar2]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'('" ' character ')) ;) (expression_statement "dpi->last_char = '(';" (assignment_expression "dpi->last_char = '('" (field_expression "dpi->last_char" identifier -> field_identifier) = (char_literal "'('" ' character ')) ;) (expression_statement "d_print_comp(dpi,options,dc);" (call_expression "d_print_comp(dpi,options,dc)" identifier (argument_list "(dpi,options,dc)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar2 = dpi->len;" (assignment_expression "sVar2 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (expression_statement "sVar3 = sVar2 + 1;" (assignment_expression "sVar3 = sVar2 + 1" identifier = (binary_expression "sVar2 + 1" identifier + number_literal)) ;) (if_statement "if (sVar2 == 0xff) {\n    pvVar1 = dpi->opaque;\n    dpi->buf[0xff] = '\0';\n    (*dpi->callback)(dpi->buf,0xff,pvVar1);\n    dpi->flush_count = dpi->flush_count + 1;\n    sVar3 = 1;\n    sVar2 = 0;\n  }" if (parenthesized_expression "(sVar2 == 0xff)" ( (binary_expression "sVar2 == 0xff" identifier == number_literal) )) (compound_statement "{\n    pvVar1 = dpi->opaque;\n    dpi->buf[0xff] = '\0';\n    (*dpi->callback)(dpi->buf,0xff,pvVar1);\n    dpi->flush_count = dpi->flush_count + 1;\n    sVar3 = 1;\n    sVar2 = 0;\n  }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar3 = 1;" (assignment_expression "sVar3 = 1" identifier = number_literal) ;) (expression_statement "sVar2 = 0;" (assignment_expression "sVar2 = 0" identifier = number_literal) ;) })) (expression_statement "dpi->len = sVar3;" (assignment_expression "dpi->len = sVar3" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar2] = ')';" (assignment_expression "dpi->buf[sVar2] = ')'" (subscript_expression "dpi->buf[sVar2]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = (char_literal "')'" ' character ')) ;) (expression_statement "dpi->last_char = ')';" (assignment_expression "dpi->last_char = ')'" (field_expression "dpi->last_char" identifier -> field_identifier) = (char_literal "')'" ' character ')) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0026b5c0(long param_1,undefined4 param_2,uint *param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  \n  if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {\n    FUN_0026a0d0();\n    return;\n  }\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x28;\n  *(undefined1 *)(param_1 + 0x108) = 0x28;\n  FUN_0026a0d0(param_1,param_2,param_3);\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x29;\n  *(undefined1 *)(param_1 + 0x108) = 0x29;\n  return;\n}\n\n" (function_definition "void FUN_0026b5c0(long param_1,undefined4 param_2,uint *param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  \n  if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {\n    FUN_0026a0d0();\n    return;\n  }\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x28;\n  *(undefined1 *)(param_1 + 0x108) = 0x28;\n  FUN_0026a0d0(param_1,param_2,param_3);\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x29;\n  *(undefined1 *)(param_1 + 0x108) = 0x29;\n  return;\n}" primitive_type (function_declarator "FUN_0026b5c0(long param_1,undefined4 param_2,uint *param_3)" identifier (parameter_list "(long param_1,undefined4 param_2,uint *param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  \n  if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {\n    FUN_0026a0d0();\n    return;\n  }\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x28;\n  *(undefined1 *)(param_1 + 0x108) = 0x28;\n  FUN_0026a0d0(param_1,param_2,param_3);\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x29;\n  *(undefined1 *)(param_1 + 0x108) = 0x29;\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (if_statement "if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {\n    FUN_0026a0d0();\n    return;\n  }" if (parenthesized_expression "((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0))" ( (binary_expression "(*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)" (parenthesized_expression "(*param_3 < 0x31)" ( (binary_expression "*param_3 < 0x31" (pointer_expression "*param_3" * identifier) < number_literal) )) && (parenthesized_expression "((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)" ( (binary_expression "(0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0" (parenthesized_expression "(0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1)" ( (binary_expression "0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1" (binary_expression "0x1000000000043U >> ((ulong)*param_3 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)*param_3 & 0x3f)" ( (binary_expression "(ulong)*param_3 & 0x3f" (binary_expression "(ulong)*param_3" (parenthesized_expression "(ulong)" ( identifier )) * identifier) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    FUN_0026a0d0();\n    return;\n  }" { (expression_statement "FUN_0026a0d0();" (call_expression "FUN_0026a0d0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "lVar2 = lVar1 + 1;" (assignment_expression "lVar2 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (if_statement "if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }" if (parenthesized_expression "(lVar1 == 0xff)" ( (binary_expression "lVar1 == 0xff" identifier == number_literal) )) (compound_statement "{\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar2 = 1;" (assignment_expression "lVar2 = 1" identifier = number_literal) ;) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) })) (expression_statement "*(long *)(param_1 + 0x100) = lVar2;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar2" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x28;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x28" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x28;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x28" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0026a0d0(param_1,param_2,param_3);" (call_expression "FUN_0026a0d0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "lVar2 = lVar1 + 1;" (assignment_expression "lVar2 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (if_statement "if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }" if (parenthesized_expression "(lVar1 == 0xff)" ( (binary_expression "lVar1 == 0xff" identifier == number_literal) )) (compound_statement "{\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar2 = 1;" (assignment_expression "lVar2 = 1" identifier = number_literal) ;) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) })) (expression_statement "*(long *)(param_1 + 0x100) = lVar2;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar2" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x29;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x29" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x29;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x29" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) & LIT) ))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return ;) })))
(function_definition "void FUN_0026b5c0(long param_1,undefined4 param_2,uint *param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  \n  if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {\n    FUN_0026a0d0();\n    return;\n  }\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x28;\n  *(undefined1 *)(param_1 + 0x108) = 0x28;\n  FUN_0026a0d0(param_1,param_2,param_3);\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x29;\n  *(undefined1 *)(param_1 + 0x108) = 0x29;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0026b5c0(long param_1,undefined4 param_2,uint *param_3)" (identifier "FUN_0026b5c0") (parameter_list "(long param_1,undefined4 param_2,uint *param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  \n  if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {\n    FUN_0026a0d0();\n    return;\n  }\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x28;\n  *(undefined1 *)(param_1 + 0x108) = 0x28;\n  FUN_0026a0d0(param_1,param_2,param_3);\n  lVar1 = *(long *)(param_1 + 0x100);\n  lVar2 = lVar1 + 1;\n  if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }\n  *(long *)(param_1 + 0x100) = lVar2;\n  *(undefined1 *)(param_1 + lVar1) = 0x29;\n  *(undefined1 *)(param_1 + 0x108) = 0x29;\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (if_statement "if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {\n    FUN_0026a0d0();\n    return;\n  }" (if "if") (parenthesized_expression "((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0))" (( "(") (binary_expression "(*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)" (parenthesized_expression "(*param_3 < 0x31)" (( "(") (binary_expression "*param_3 < 0x31" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (< "<") (number_literal "0x31")) () ")")) (&& "&&") (parenthesized_expression "((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)" (( "(") (binary_expression "(0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0" (parenthesized_expression "(0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1)" (( "(") (binary_expression "0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1" (binary_expression "0x1000000000043U >> ((ulong)*param_3 & 0x3f)" (number_literal "0x1000000000043U") (>> ">>") (parenthesized_expression "((ulong)*param_3 & 0x3f)" (( "(") (binary_expression "(ulong)*param_3 & 0x3f" (binary_expression "(ulong)*param_3" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (identifier "param_3")) (& "&") (number_literal "0x3f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_0026a0d0();\n    return;\n  }" ({ "{") (expression_statement "FUN_0026a0d0();" (call_expression "FUN_0026a0d0()" (identifier "FUN_0026a0d0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (expression_statement "lVar2 = lVar1 + 1;" (assignment_expression "lVar2 = lVar1 + 1" (identifier "lVar2") (= "=") (binary_expression "lVar1 + 1" (identifier "lVar1") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }" (if "if") (parenthesized_expression "(lVar1 == 0xff)" (( "(") (binary_expression "lVar1 == 0xff" (identifier "lVar1") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar2 = 1;" (assignment_expression "lVar2 = 1" (identifier "lVar2") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" (identifier "lVar1") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(long *)(param_1 + 0x100) = lVar2;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar2" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar2")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x28;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x28" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" (* "*") (cast_expression "(undefined1 *)(param_1 + lVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar1)" (( "(") (binary_expression "param_1 + lVar1" (identifier "param_1") (+ "+") (identifier "lVar1")) () ")")))) (= "=") (number_literal "0x28")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x28;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x28" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (number_literal "0x28")) (; ";")) (expression_statement "FUN_0026a0d0(param_1,param_2,param_3);" (call_expression "FUN_0026a0d0(param_1,param_2,param_3)" (identifier "FUN_0026a0d0") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (expression_statement "lVar2 = lVar1 + 1;" (assignment_expression "lVar2 = lVar1 + 1" (identifier "lVar2") (= "=") (binary_expression "lVar1 + 1" (identifier "lVar1") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar1 == 0xff) {\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }" (if "if") (parenthesized_expression "(lVar1 == 0xff)" (( "(") (binary_expression "lVar1 == 0xff" (identifier "lVar1") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n    *(undefined1 *)(param_1 + 0xff) = 0;\n    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n    lVar2 = 1;\n    lVar1 = 0;\n  }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar2 = 1;" (assignment_expression "lVar2 = 1" (identifier "lVar2") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" (identifier "lVar1") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(long *)(param_1 + 0x100) = lVar2;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar2" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar2")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x29;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x29" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" (* "*") (cast_expression "(undefined1 *)(param_1 + lVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar1)" (( "(") (binary_expression "param_1 + lVar1" (identifier "param_1") (+ "+") (identifier "lVar1")) () ")")))) (= "=") (number_literal "0x29")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x29;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x29" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (number_literal "0x29")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *dpi,int options,type_2 *dc)

{
  void *pvVar1;
  size_t var_3;
  size_t sVar3;
  
  if ((dc->type < var_1) &&
     ((0x1000000000043U >> ((type_3)dc->type & 0x3f) & 1) != 0)) {
    var_2(dpi,options,dc);
    return;
  }
  var_3 = dpi->len;
  sVar3 = var_3 + 1;
  if (var_3 == 0xff) {
    pvVar1 = dpi->opaque;
    dpi->buf[0xff] = '\0';
    (*dpi->callback)(dpi->buf,0xff,pvVar1);
    dpi->flush_count = dpi->flush_count + 1;
    sVar3 = 1;
    var_3 = 0;
  }
  dpi->len = sVar3;
  dpi->buf[var_3] = '(';
  dpi->last_char = '(';
  var_2(dpi,options,dc);
  var_3 = dpi->len;
  sVar3 = var_3 + 1;
  if (var_3 == 0xff) {
    pvVar1 = dpi->opaque;
    dpi->buf[0xff] = '\0';
    (*dpi->callback)(dpi->buf,0xff,pvVar1);
    dpi->flush_count = dpi->flush_count + 1;
    sVar3 = 1;
    var_3 = 0;
  }
  dpi->len = sVar3;
  dpi->buf[var_3] = ')';
  dpi->last_char = ')';
  return;
}


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

void MASKED(long param_1,undefined4 param_2,uint *param_3)

{
  long lVar1;
  long lVar2;
  
  if ((*param_3 < 0x31) && ((0x1000000000043U >> ((ulong)*param_3 & 0x3f) & 1) != 0)) {
    FUN_0026a0d0();
    return;
  }
  lVar1 = *(long *)(param_1 + 0x100);
  lVar2 = lVar1 + 1;
  if (lVar1 == 0xff) {
    *(undefined1 *)(param_1 + 0xff) = 0;
    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
    lVar2 = 1;
    lVar1 = 0;
  }
  *(long *)(param_1 + 0x100) = lVar2;
  *(undefined1 *)(param_1 + lVar1) = 0x28;
  *(undefined1 *)(param_1 + 0x108) = 0x28;
  FUN_0026a0d0(param_1,param_2,param_3);
  lVar1 = *(long *)(param_1 + 0x100);
  lVar2 = lVar1 + 1;
  if (lVar1 == 0xff) {
    *(undefined1 *)(param_1 + 0xff) = 0;
    (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
    *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
    lVar2 = 1;
    lVar1 = 0;
  }
  *(long *)(param_1 + 0x100) = lVar2;
  *(undefined1 *)(param_1 + lVar1) = 0x29;
  *(undefined1 *)(param_1 + 0x108) = 0x29;
  return;
}

