
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void ~Symbol_value(Symbol_value<64> * this, int __in_chrg) */

void __thiscall gold::Symbol_value<64>::~Symbol_value(Symbol_value<64> *this,int __in_chrg)

{
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_00094b30(int param_1)

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 *puVar3;
  size_t __n;
  undefined4 uVar4;
  undefined4 uVar5;
  
  uVar5 = 0x94b3c;
  if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {
    puVar3 = *(undefined4 **)(iVar1 + 0x18);
    while (puVar3 != (undefined4 *)0x0) {
      puVar2 = (undefined4 *)*puVar3;
      FUN_003ae080(puVar3);
      puVar3 = puVar2;
    }
    __n = *(int *)(iVar1 + 0x14) << 2;
    uVar4 = 0;
    memset(*(void **)(iVar1 + 0x10),0,__n);
    *(undefined4 *)(iVar1 + 0x1c) = 0;
    *(undefined4 *)(iVar1 + 0x18) = 0;
    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {
      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);
    }
    FUN_003ae060(iVar1,0x2c);
  }
  return;
}


PUSH EDI
PUSH ESI
PUSH EBX
MOV EAX,dword ptr [ESP + 0x10]
CALL 0x00050b50
ADD EBX,0x5554c4
CMP byte ptr [EAX + 0xb],0x0
JS 0x00094bbe
MOV ESI,dword ptr [EAX + 0xc]
TEST ESI,ESI
JZ 0x00094bbe
MOV EAX,dword ptr [ESI + 0x18]
TEST EAX,EAX
JZ 0x00094b74
LEA ESI,[ESI]
LEA ESI,[ESI]
SUB ESP,0xc
MOV EDI,dword ptr [EAX]
PUSH EAX
CALL 0x003ae080
MOV EAX,EDI
ADD ESP,0x10
TEST EDI,EDI
JNZ 0x00094b60
MOV EAX,dword ptr [ESI + 0x14]
MOV EDX,dword ptr [ESI + 0x10]
SUB ESP,0x4
SHL EAX,0x2
PUSH EAX
PUSH 0x0
PUSH EDX
CALL 0x00039900
MOV EAX,dword ptr [ESI + 0x10]
LEA EDX,[ESI + 0x28]
ADD ESP,0x10
MOV dword ptr [ESI + 0x1c],0x0
MOV dword ptr [ESI + 0x18],0x0
CMP EAX,EDX
JZ 0x00094bb0
SUB ESP,0xc
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
SUB ESP,0x8
PUSH 0x2c
PUSH ESI
CALL 0x003ae060
ADD ESP,0x10
POP EBX
POP ESI
POP EDI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00094b30(int param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  size_t __n;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  uVar5 = 0x94b3c;\n  if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00094b30(int param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  size_t __n;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  uVar5 = 0x94b3c;\n  if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00094b30(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  size_t __n;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  uVar5 = 0x94b3c;\n  if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (expression_statement "uVar5 = 0x94b3c;" (assignment_expression "uVar5 = 0x94b3c" identifier = number_literal) ;) (if_statement "if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }" if (parenthesized_expression "((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0))" ( (binary_expression "(-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)" (parenthesized_expression "(-1 < *(char *)(param_1 + 0xb))" ( (binary_expression "-1 < *(char *)(param_1 + 0xb)" number_literal < (pointer_expression "*(char *)(param_1 + 0xb)" * (cast_expression "(char *)(param_1 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)" ( (comma_expression "iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0" (assignment_expression "iVar1 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }" { (expression_statement "puVar3 = *(undefined4 **)(iVar1 + 0x18);" (assignment_expression "puVar3 = *(undefined4 **)(iVar1 + 0x18)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x18)" * (cast_expression "(undefined4 **)(iVar1 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) ))))) ;) (while_statement "while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }" while (parenthesized_expression "(puVar3 != (undefined4 *)0x0)" ( (binary_expression "puVar3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }" { (expression_statement "puVar2 = (undefined4 *)*puVar3;" (assignment_expression "puVar2 = (undefined4 *)*puVar3" identifier = (cast_expression "(undefined4 *)*puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) ;) (expression_statement "FUN_003ae080(puVar3);" (call_expression "FUN_003ae080(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) (expression_statement "puVar3 = puVar2;" (assignment_expression "puVar3 = puVar2" identifier = identifier) ;) })) (expression_statement "__n = *(int *)(iVar1 + 0x14) << 2;" (assignment_expression "__n = *(int *)(iVar1 + 0x14) << 2" identifier = (binary_expression "*(int *)(iVar1 + 0x14) << 2" (pointer_expression "*(int *)(iVar1 + 0x14)" * (cast_expression "(int *)(iVar1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) << number_literal)) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "memset(*(void **)(iVar1 + 0x10),0,__n);" (call_expression "memset(*(void **)(iVar1 + 0x10),0,__n)" identifier (argument_list "(*(void **)(iVar1 + 0x10),0,__n)" ( (pointer_expression "*(void **)(iVar1 + 0x10)" * (cast_expression "(void **)(iVar1 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x1c)" * (cast_expression "(undefined4 *)(iVar1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x18)" * (cast_expression "(undefined4 *)(iVar1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 0x10) != iVar1 + 0x28)" ( (binary_expression "*(int *)(iVar1 + 0x10) != iVar1 + 0x28" (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) != (binary_expression "iVar1 + 0x28" identifier + number_literal)) )) (compound_statement "{\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }" { (expression_statement "FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);" (call_expression "FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5)" identifier (argument_list "(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5)" ( (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_003ae060(iVar1,0x2c);" (call_expression "FUN_003ae060(iVar1,0x2c)" identifier (argument_list "(iVar1,0x2c)" ( identifier , number_literal ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: void ~Symbol_value(Symbol_value<64> * this, int __in_chrg) */\n\nvoid __thiscall gold::Symbol_value<64>::~Symbol_value(Symbol_value<64> *this,int __in_chrg)\n\n{\n}\n\n" comment comment (function_definition "void __thiscall gold::Symbol_value<64>::~Symbol_value(Symbol_value<64> *this,int __in_chrg)\n\n{\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_value<64>::~" identifier : : identifier < number_literal > : : ~) (function_declarator "Symbol_value(Symbol_value<64> *this,int __in_chrg)" identifier (parameter_list "(Symbol_value<64> *this,int __in_chrg)" ( (parameter_declaration "Symbol_value<64> *this" type_identifier (ERROR "<64>" < number_literal >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "int __in_chrg" primitive_type identifier) ))) (compound_statement "{\n}" { })))
(translation_unit "void FUN_00094b30(int param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  size_t __n;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  uVar5 = 0x94b3c;\n  if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00094b30(int param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  size_t __n;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  uVar5 = 0x94b3c;\n  if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00094b30(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  size_t __n;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  uVar5 = 0x94b3c;\n  if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (expression_statement "uVar5 = 0x94b3c;" (assignment_expression "uVar5 = 0x94b3c" identifier = number_literal) ;) (if_statement "if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }" if (parenthesized_expression "((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0))" ( (binary_expression "(-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)" (parenthesized_expression "(-1 < *(char *)(param_1 + 0xb))" ( (binary_expression "-1 < *(char *)(param_1 + 0xb)" number_literal < (pointer_expression "*(char *)(param_1 + 0xb)" * (cast_expression "(char *)(param_1 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)" ( (comma_expression "iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0" (assignment_expression "iVar1 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }" { (expression_statement "puVar3 = *(undefined4 **)(iVar1 + 0x18);" (assignment_expression "puVar3 = *(undefined4 **)(iVar1 + 0x18)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x18)" * (cast_expression "(undefined4 **)(iVar1 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) ))))) ;) (while_statement "while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }" while (parenthesized_expression "(puVar3 != (undefined4 *)0x0)" ( (binary_expression "puVar3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }" { (expression_statement "puVar2 = (undefined4 *)*puVar3;" (assignment_expression "puVar2 = (undefined4 *)*puVar3" identifier = (cast_expression "(undefined4 *)*puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) ;) (expression_statement "FUN_003ae080(puVar3);" (call_expression "FUN_003ae080(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) (expression_statement "puVar3 = puVar2;" (assignment_expression "puVar3 = puVar2" identifier = identifier) ;) })) (expression_statement "__n = *(int *)(iVar1 + 0x14) << 2;" (assignment_expression "__n = *(int *)(iVar1 + 0x14) << 2" identifier = (binary_expression "*(int *)(iVar1 + 0x14) << 2" (pointer_expression "*(int *)(iVar1 + 0x14)" * (cast_expression "(int *)(iVar1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) << number_literal)) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "memset(*(void **)(iVar1 + 0x10),0,__n);" (call_expression "memset(*(void **)(iVar1 + 0x10),0,__n)" identifier (argument_list "(*(void **)(iVar1 + 0x10),0,__n)" ( (pointer_expression "*(void **)(iVar1 + 0x10)" * (cast_expression "(void **)(iVar1 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x1c)" * (cast_expression "(undefined4 *)(iVar1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x18)" * (cast_expression "(undefined4 *)(iVar1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 0x10) != iVar1 + 0x28)" ( (binary_expression "*(int *)(iVar1 + 0x10) != iVar1 + 0x28" (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) != (binary_expression "iVar1 + 0x28" identifier + number_literal)) )) (compound_statement "{\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }" { (expression_statement "FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);" (call_expression "FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5)" identifier (argument_list "(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5)" ( (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_003ae060(iVar1,0x2c);" (call_expression "FUN_003ae060(iVar1,0x2c)" identifier (argument_list "(iVar1,0x2c)" ( identifier , number_literal ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00094b30(int param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  size_t __n;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  uVar5 = 0x94b3c;\n  if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00094b30(int param_1)" (identifier "FUN_00094b30") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  size_t __n;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  uVar5 = 0x94b3c;\n  if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (expression_statement "uVar5 = 0x94b3c;" (assignment_expression "uVar5 = 0x94b3c" (identifier "uVar5") (= "=") (number_literal "0x94b3c")) (; ";")) (if_statement "if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }" (if "if") (parenthesized_expression "((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0))" (( "(") (binary_expression "(-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)" (parenthesized_expression "(-1 < *(char *)(param_1 + 0xb))" (( "(") (binary_expression "-1 < *(char *)(param_1 + 0xb)" (number_literal "-1") (< "<") (pointer_expression "*(char *)(param_1 + 0xb)" (* "*") (cast_expression "(char *)(param_1 + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb)" (( "(") (binary_expression "param_1 + 0xb" (identifier "param_1") (+ "+") (number_literal "0xb")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)" (( "(") (comma_expression "iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0" (assignment_expression "iVar1 = *(int *)(param_1 + 0xc)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    puVar3 = *(undefined4 **)(iVar1 + 0x18);\n    while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }\n    __n = *(int *)(iVar1 + 0x14) << 2;\n    uVar4 = 0;\n    memset(*(void **)(iVar1 + 0x10),0,__n);\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }\n    FUN_003ae060(iVar1,0x2c);\n  }" ({ "{") (expression_statement "puVar3 = *(undefined4 **)(iVar1 + 0x18);" (assignment_expression "puVar3 = *(undefined4 **)(iVar1 + 0x18)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x18)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x18)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (while_statement "while (puVar3 != (undefined4 *)0x0) {\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }" (while "while") (parenthesized_expression "(puVar3 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar3 != (undefined4 *)0x0" (identifier "puVar3") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar2 = (undefined4 *)*puVar3;\n      FUN_003ae080(puVar3);\n      puVar3 = puVar2;\n    }" ({ "{") (expression_statement "puVar2 = (undefined4 *)*puVar3;" (assignment_expression "puVar2 = (undefined4 *)*puVar3" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)*puVar3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")))) (; ";")) (expression_statement "FUN_003ae080(puVar3);" (call_expression "FUN_003ae080(puVar3)" (identifier "FUN_003ae080") (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";")) (expression_statement "puVar3 = puVar2;" (assignment_expression "puVar3 = puVar2" (identifier "puVar3") (= "=") (identifier "puVar2")) (; ";")) (} "}"))) (expression_statement "__n = *(int *)(iVar1 + 0x14) << 2;" (assignment_expression "__n = *(int *)(iVar1 + 0x14) << 2" (identifier "__n") (= "=") (binary_expression "*(int *)(iVar1 + 0x14) << 2" (pointer_expression "*(int *)(iVar1 + 0x14)" (* "*") (cast_expression "(int *)(iVar1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "memset(*(void **)(iVar1 + 0x10),0,__n);" (call_expression "memset(*(void **)(iVar1 + 0x10),0,__n)" (identifier "memset") (argument_list "(*(void **)(iVar1 + 0x10),0,__n)" (( "(") (pointer_expression "*(void **)(iVar1 + 0x10)" (* "*") (cast_expression "(void **)(iVar1 + 0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (number_literal "0") (, ",") (identifier "__n") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1c)" (( "(") (binary_expression "iVar1 + 0x1c" (identifier "iVar1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x10) != iVar1 + 0x28)" (( "(") (binary_expression "*(int *)(iVar1 + 0x10) != iVar1 + 0x28" (pointer_expression "*(int *)(iVar1 + 0x10)" (* "*") (cast_expression "(int *)(iVar1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (binary_expression "iVar1 + 0x28" (identifier "iVar1") (+ "+") (number_literal "0x28"))) () ")")) (compound_statement "{\n      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);\n    }" ({ "{") (expression_statement "FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);" (call_expression "FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5)" (identifier "FUN_003ae080") (argument_list "(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5)" (( "(") (pointer_expression "*(int *)(iVar1 + 0x10)" (* "*") (cast_expression "(int *)(iVar1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "uVar4") (, ",") (identifier "__n") (, ",") (identifier "uVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_003ae060(iVar1,0x2c);" (call_expression "FUN_003ae060(iVar1,0x2c)" (identifier "FUN_003ae060") (argument_list "(iVar1,0x2c)" (( "(") (identifier "iVar1") (, ",") (number_literal "0x2c") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void ~Symbol_value(Symbol_value<64> * this, int __in_chrg) */

void __thiscall gold::function_1<64>::~function_1(function_1<64> *this,int __in_chrg)

{
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(int param_1)

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 *puVar3;
  size_t __n;
  undefined4 uVar4;
  undefined4 uVar5;
  
  uVar5 = 0x94b3c;
  if ((-1 < *(char *)(param_1 + 0xb)) && (iVar1 = *(int *)(param_1 + 0xc), iVar1 != 0)) {
    puVar3 = *(undefined4 **)(iVar1 + 0x18);
    while (puVar3 != (undefined4 *)0x0) {
      puVar2 = (undefined4 *)*puVar3;
      FUN_003ae080(puVar3);
      puVar3 = puVar2;
    }
    __n = *(int *)(iVar1 + 0x14) << 2;
    uVar4 = 0;
    memset(*(void **)(iVar1 + 0x10),0,__n);
    *(undefined4 *)(iVar1 + 0x1c) = 0;
    *(undefined4 *)(iVar1 + 0x18) = 0;
    if (*(int *)(iVar1 + 0x10) != iVar1 + 0x28) {
      FUN_003ae080(*(int *)(iVar1 + 0x10),uVar4,__n,uVar5);
    }
    FUN_003ae060(iVar1,0x2c);
  }
  return;
}

