
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void visit(Local_got_offset_visitor<32,_false> * this, uint got_type,
   uint got_offset) */

void __thiscall
gold::Local_got_offset_visitor<32,_false>::visit
          (Local_got_offset_visitor<32,_false> *this,uint got_type,uint got_offset)

{
  Got_plt_view_info *pGVar1;
  uchar *puVar2;
  uint uVar3;
  
  pGVar1 = this->info_;
  uVar3 = got_offset / pGVar1->got_entry_size;
  if (pGVar1->got_count <= uVar3) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/incremental.cc",0x73e,"visit");
  }
  if (got_type < 0x7f) {
    pGVar1->got_type_p[uVar3] = (byte)got_type | 0x80;
    pGVar1 = this->info_;
    puVar2 = pGVar1->got_desc_p;
    *(uint *)(puVar2 + uVar3 * 8) = pGVar1->sym_index;
    *(uint *)((int)(puVar2 + uVar3 * 8) + 4) = pGVar1->input_index;
    return;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/incremental.cc",0x742,"visit");
}



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

void FUN_00075a30(int param_1,uint param_2,uint param_3)

{
  undefined4 *puVar1;
  int *piVar2;
  int iVar3;
  uint uVar4;
  
  piVar2 = *(int **)(param_1 + 4);
  uVar4 = param_3 / (uint)piVar2[7];
  if ((uint)piVar2[3] <= uVar4) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);
  }
  if (param_2 < 0x7f) {
    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;
    iVar3 = *(int *)(param_1 + 4);
    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);
    *puVar1 = *(undefined4 *)(iVar3 + 0x20);
    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);
}


PUSH ESI
XOR EDX,EDX
PUSH EBX
CALL 0x00035840
ADD EBX,0x3195c7
SUB ESP,0x4
MOV ESI,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [ESI + 0x4]
DIV dword ptr [ECX + 0x1c]
CMP dword ptr [ECX + 0xc],EAX
JBE 0x00075a83
CMP dword ptr [ESP + 0x14],0x7e
JA 0x00075a9c
MOV EDX,dword ptr [ECX]
MOVZX ECX,byte ptr [ESP + 0x14]
OR ECX,0xffffff80
MOV byte ptr [EDX + EAX*0x1],CL
MOV EDX,dword ptr [ESI + 0x4]
MOV ECX,dword ptr [EDX + 0x4]
LEA EAX,[ECX + EAX*0x8]
MOV ECX,dword ptr [EDX + 0x20]
MOV dword ptr [EAX],ECX
MOV EDX,dword ptr [EDX + 0x24]
MOV dword ptr [EAX + 0x4],EDX
ADD ESP,0x4
POP EBX
POP ESI
RET
LEA EAX,[EBX + 0xffefa780]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xffef8ec0]
PUSH 0x73e
PUSH EAX
CALL 0x00069d00
PUSH EAX
LEA EAX,[EBX + 0xffefa780]
PUSH EAX
LEA EAX,[EBX + 0xffef8ec0]
PUSH 0x742
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00075a30(int param_1,uint param_2,uint param_3)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  \n  piVar2 = *(int **)(param_1 + 4);\n  uVar4 = param_3 / (uint)piVar2[7];\n  if ((uint)piVar2[3] <= uVar4) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }\n  if (param_2 < 0x7f) {\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);\n}\n\n" comment (function_definition "void FUN_00075a30(int param_1,uint param_2,uint param_3)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  \n  piVar2 = *(int **)(param_1 + 4);\n  uVar4 = param_3 / (uint)piVar2[7];\n  if ((uint)piVar2[3] <= uVar4) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }\n  if (param_2 < 0x7f) {\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);\n}" primitive_type (function_declarator "FUN_00075a30(int param_1,uint param_2,uint param_3)" identifier (parameter_list "(int param_1,uint param_2,uint param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  \n  piVar2 = *(int **)(param_1 + 4);\n  uVar4 = param_3 / (uint)piVar2[7];\n  if ((uint)piVar2[3] <= uVar4) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }\n  if (param_2 < 0x7f) {\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "piVar2 = *(int **)(param_1 + 4);" (assignment_expression "piVar2 = *(int **)(param_1 + 4)" identifier = (pointer_expression "*(int **)(param_1 + 4)" * (cast_expression "(int **)(param_1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = param_3 / (uint)piVar2[7];" (assignment_expression "uVar4 = param_3 / (uint)piVar2[7]" identifier = (binary_expression "param_3 / (uint)piVar2[7]" identifier / (cast_expression "(uint)piVar2[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar2[7]" identifier [ number_literal ])))) ;) (if_statement "if ((uint)piVar2[3] <= uVar4) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }" if (parenthesized_expression "((uint)piVar2[3] <= uVar4)" ( (binary_expression "(uint)piVar2[3] <= uVar4" (cast_expression "(uint)piVar2[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar2[3]" identifier [ number_literal ])) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }" { comment (expression_statement "FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);" (call_expression "FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7])" identifier (argument_list "("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7])" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""visit"" " string_content ") , (binary_expression "param_3 % (uint)piVar2[7]" identifier % (cast_expression "(uint)piVar2[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar2[7]" identifier [ number_literal ]))) ))) ;) })) (if_statement "if (param_2 < 0x7f) {\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }" if (parenthesized_expression "(param_2 < 0x7f)" ( (binary_expression "param_2 < 0x7f" identifier < number_literal) )) (compound_statement "{\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }" { (expression_statement "*(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;" (assignment_expression "*(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80" (pointer_expression "*(byte *)(*piVar2 + uVar4)" * (cast_expression "(byte *)(*piVar2 + uVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar2 + uVar4)" ( (binary_expression "*piVar2 + uVar4" (pointer_expression "*piVar2" * identifier) + identifier) )))) = (binary_expression "(byte)param_2 | 0x80" (cast_expression "(byte)param_2" ( (type_descriptor "byte" type_identifier) ) identifier) | number_literal)) ;) (expression_statement "iVar3 = *(int *)(param_1 + 4);" (assignment_expression "iVar3 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);" (assignment_expression "puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 4) + uVar4 * 8)" ( (binary_expression "*(int *)(iVar3 + 4) + uVar4 * 8" (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) + (binary_expression "uVar4 * 8" identifier * number_literal)) )))) ;) (expression_statement "*puVar1 = *(undefined4 *)(iVar3 + 0x20);" (assignment_expression "*puVar1 = *(undefined4 *)(iVar3 + 0x20)" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" * (cast_expression "(undefined4 *)(iVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "puVar1[1] = *(undefined4 *)(iVar3 + 0x24);" (assignment_expression "puVar1[1] = *(undefined4 *)(iVar3 + 0x24)" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(iVar3 + 0x24)" * (cast_expression "(undefined4 *)(iVar3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) ))))) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);" (call_expression "FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4)" identifier (argument_list "("../../gold/incremental.cc",0x742,"visit",uVar4)" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""visit"" " string_content ") , identifier ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: void visit(Local_got_offset_visitor<32,_false> * this, uint got_type,\n   uint got_offset) */\n\nvoid __thiscall\ngold::Local_got_offset_visitor<32,_false>::visit\n          (Local_got_offset_visitor<32,_false> *this,uint got_type,uint got_offset)\n\n{\n  Got_plt_view_info *pGVar1;\n  uchar *puVar2;\n  uint uVar3;\n  \n  pGVar1 = this->info_;\n  uVar3 = got_offset / pGVar1->got_entry_size;\n  if (pGVar1->got_count <= uVar3) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0x73e,"visit");\n  }\n  if (got_type < 0x7f) {\n    pGVar1->got_type_p[uVar3] = (byte)got_type | 0x80;\n    pGVar1 = this->info_;\n    puVar2 = pGVar1->got_desc_p;\n    *(uint *)(puVar2 + uVar3 * 8) = pGVar1->sym_index;\n    *(uint *)((int)(puVar2 + uVar3 * 8) + 4) = pGVar1->input_index;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/incremental.cc",0x742,"visit");\n}\n\n" comment comment (declaration "void __thiscall\ngold::Local_got_offset_visitor<32,_false>::visit\n          (Local_got_offset_visitor<32,_false> *this,uint got_type,uint got_offset)\n\n{\n  Got_plt_view_info *pGVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>::visit\n          (Local_got_offset_visitor<32,_false> *this,uint got_type,uint got_offset)\n\n{\n  Got_plt_view_info" (function_declarator "_false>::visit\n          (Local_got_offset_visitor<32,_false> *this,uint got_type,uint got_offset)" identifier (ERROR ">::visit" > : : identifier) (parameter_list "(Local_got_offset_visitor<32,_false> *this,uint got_type,uint got_offset)" ( (parameter_declaration "Local_got_offset_visitor" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint got_type" type_identifier identifier) , (parameter_declaration "uint got_offset" type_identifier identifier) ))) { identifier) (pointer_declarator "*pGVar1" * identifier) ;) (declaration "uchar *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "pGVar1 = this->info_;" (assignment_expression "pGVar1 = this->info_" identifier = (field_expression "this->info_" identifier -> field_identifier)) ;) (expression_statement "uVar3 = got_offset / pGVar1->got_entry_size;" (assignment_expression "uVar3 = got_offset / pGVar1->got_entry_size" identifier = (binary_expression "got_offset / pGVar1->got_entry_size" identifier / (field_expression "pGVar1->got_entry_size" identifier -> field_identifier))) ;) (if_statement "if (pGVar1->got_count <= uVar3) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0x73e,"visit");\n  }" if (parenthesized_expression "(pGVar1->got_count <= uVar3)" ( (binary_expression "pGVar1->got_count <= uVar3" (field_expression "pGVar1->got_count" identifier -> field_identifier) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0x73e,"visit");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0x73e,"visit");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0x73e,"visit")" identifier (argument_list "("../../gold/incremental.cc",0x73e,"visit")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""visit"" " string_content ") ))) ;) })) (if_statement "if (got_type < 0x7f) {\n    pGVar1->got_type_p[uVar3] = (byte)got_type | 0x80;\n    pGVar1 = this->info_;\n    puVar2 = pGVar1->got_desc_p;\n    *(uint *)(puVar2 + uVar3 * 8) = pGVar1->sym_index;\n    *(uint *)((int)(puVar2 + uVar3 * 8) + 4) = pGVar1->input_index;\n    return;\n  }" if (parenthesized_expression "(got_type < 0x7f)" ( (binary_expression "got_type < 0x7f" identifier < number_literal) )) (compound_statement "{\n    pGVar1->got_type_p[uVar3] = (byte)got_type | 0x80;\n    pGVar1 = this->info_;\n    puVar2 = pGVar1->got_desc_p;\n    *(uint *)(puVar2 + uVar3 * 8) = pGVar1->sym_index;\n    *(uint *)((int)(puVar2 + uVar3 * 8) + 4) = pGVar1->input_index;\n    return;\n  }" { (expression_statement "pGVar1->got_type_p[uVar3] = (byte)got_type | 0x80;" (assignment_expression "pGVar1->got_type_p[uVar3] = (byte)got_type | 0x80" (subscript_expression "pGVar1->got_type_p[uVar3]" (field_expression "pGVar1->got_type_p" identifier -> field_identifier) [ identifier ]) = (binary_expression "(byte)got_type | 0x80" (cast_expression "(byte)got_type" ( (type_descriptor "byte" type_identifier) ) identifier) | number_literal)) ;) (expression_statement "pGVar1 = this->info_;" (assignment_expression "pGVar1 = this->info_" identifier = (field_expression "this->info_" identifier -> field_identifier)) ;) (expression_statement "puVar2 = pGVar1->got_desc_p;" (assignment_expression "puVar2 = pGVar1->got_desc_p" identifier = (field_expression "pGVar1->got_desc_p" identifier -> field_identifier)) ;) (expression_statement "*(uint *)(puVar2 + uVar3 * 8) = pGVar1->sym_index;" (assignment_expression "*(uint *)(puVar2 + uVar3 * 8) = pGVar1->sym_index" (pointer_expression "*(uint *)(puVar2 + uVar3 * 8)" * (cast_expression "(uint *)(puVar2 + uVar3 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + uVar3 * 8)" ( (binary_expression "puVar2 + uVar3 * 8" identifier + (binary_expression "uVar3 * 8" identifier * number_literal)) )))) = (field_expression "pGVar1->sym_index" identifier -> field_identifier)) ;) (expression_statement "*(uint *)((int)(puVar2 + uVar3 * 8) + 4) = pGVar1->input_index;" (assignment_expression "*(uint *)((int)(puVar2 + uVar3 * 8) + 4) = pGVar1->input_index" (pointer_expression "*(uint *)((int)(puVar2 + uVar3 * 8) + 4)" * (cast_expression "(uint *)((int)(puVar2 + uVar3 * 8) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar2 + uVar3 * 8) + 4)" ( (binary_expression "(int)(puVar2 + uVar3 * 8) + 4" (cast_expression "(int)(puVar2 + uVar3 * 8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar2 + uVar3 * 8)" ( (binary_expression "puVar2 + uVar3 * 8" identifier + (binary_expression "uVar3 * 8" identifier * number_literal)) ))) + number_literal) )))) = (field_expression "pGVar1->input_index" identifier -> field_identifier)) ;) (return_statement "return;" return ;) })) comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0x742,"visit");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0x742,"visit")" identifier (argument_list "("../../gold/incremental.cc",0x742,"visit")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""visit"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "void FUN_00075a30(int param_1,uint param_2,uint param_3)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  \n  piVar2 = *(int **)(param_1 + 4);\n  uVar4 = param_3 / (uint)piVar2[7];\n  if ((uint)piVar2[3] <= uVar4) {\n                    \n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }\n  if (param_2 < 0x7f) {\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }\n                    \n  FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);\n}\n\n" (function_definition "void FUN_00075a30(int param_1,uint param_2,uint param_3)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  \n  piVar2 = *(int **)(param_1 + 4);\n  uVar4 = param_3 / (uint)piVar2[7];\n  if ((uint)piVar2[3] <= uVar4) {\n                    \n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }\n  if (param_2 < 0x7f) {\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }\n                    \n  FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);\n}" primitive_type (function_declarator "FUN_00075a30(int param_1,uint param_2,uint param_3)" identifier (parameter_list "(int param_1,uint param_2,uint param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  \n  piVar2 = *(int **)(param_1 + 4);\n  uVar4 = param_3 / (uint)piVar2[7];\n  if ((uint)piVar2[3] <= uVar4) {\n                    \n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }\n  if (param_2 < 0x7f) {\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }\n                    \n  FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "piVar2 = *(int **)(param_1 + 4);" (assignment_expression "piVar2 = *(int **)(param_1 + 4)" identifier = (pointer_expression "*(int **)(param_1 + 4)" * (cast_expression "(int **)(param_1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = param_3 / (uint)piVar2[7];" (assignment_expression "uVar4 = param_3 / (uint)piVar2[7]" identifier = (binary_expression "param_3 / (uint)piVar2[7]" identifier / (cast_expression "(uint)piVar2[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar2[7]" identifier [ number_literal ])))) ;) (if_statement "if ((uint)piVar2[3] <= uVar4) {\n                    \n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }" if (parenthesized_expression "((uint)piVar2[3] <= uVar4)" ( (binary_expression "(uint)piVar2[3] <= uVar4" (cast_expression "(uint)piVar2[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar2[3]" identifier [ number_literal ])) <= identifier) )) (compound_statement "{\n                    \n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }" { (expression_statement "FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);" (call_expression "FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7])" identifier (argument_list "("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7])" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""visit"" " string_content ") , (binary_expression "param_3 % (uint)piVar2[7]" identifier % (cast_expression "(uint)piVar2[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar2[7]" identifier [ number_literal ]))) ))) ;) })) (if_statement "if (param_2 < 0x7f) {\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }" if (parenthesized_expression "(param_2 < 0x7f)" ( (binary_expression "param_2 < 0x7f" identifier < number_literal) )) (compound_statement "{\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }" { (expression_statement "*(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;" (assignment_expression "*(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80" (pointer_expression "*(byte *)(*piVar2 + uVar4)" * (cast_expression "(byte *)(*piVar2 + uVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar2 + uVar4)" ( (binary_expression "*piVar2 + uVar4" (pointer_expression "*piVar2" * identifier) + identifier) )))) = (binary_expression "(byte)param_2 | 0x80" (cast_expression "(byte)param_2" ( (type_descriptor "byte" type_identifier) ) identifier) | number_literal)) ;) (expression_statement "iVar3 = *(int *)(param_1 + 4);" (assignment_expression "iVar3 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);" (assignment_expression "puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 4) + uVar4 * 8)" ( (binary_expression "*(int *)(iVar3 + 4) + uVar4 * 8" (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) + (binary_expression "uVar4 * 8" identifier * number_literal)) )))) ;) (expression_statement "*puVar1 = *(undefined4 *)(iVar3 + 0x20);" (assignment_expression "*puVar1 = *(undefined4 *)(iVar3 + 0x20)" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" * (cast_expression "(undefined4 *)(iVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "puVar1[1] = *(undefined4 *)(iVar3 + 0x24);" (assignment_expression "puVar1[1] = *(undefined4 *)(iVar3 + 0x24)" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(iVar3 + 0x24)" * (cast_expression "(undefined4 *)(iVar3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) ))))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);" (call_expression "FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4)" identifier (argument_list "("../../gold/incremental.cc",0x742,"visit",uVar4)" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""visit"" " string_content ") , identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (binary_expression IDENT % (cast_expression ( (type_descriptor TYPE) ) (subscript_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 (pointer_expression * IDENT) + IDENT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })))
(function_definition "void FUN_00075a30(int param_1,uint param_2,uint param_3)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  \n  piVar2 = *(int **)(param_1 + 4);\n  uVar4 = param_3 / (uint)piVar2[7];\n  if ((uint)piVar2[3] <= uVar4) {\n                    \n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }\n  if (param_2 < 0x7f) {\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }\n                    \n  FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);\n}" (primitive_type "void") (function_declarator "FUN_00075a30(int param_1,uint param_2,uint param_3)" (identifier "FUN_00075a30") (parameter_list "(int param_1,uint param_2,uint param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  \n  piVar2 = *(int **)(param_1 + 4);\n  uVar4 = param_3 / (uint)piVar2[7];\n  if ((uint)piVar2[3] <= uVar4) {\n                    \n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }\n  if (param_2 < 0x7f) {\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }\n                    \n  FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (expression_statement "piVar2 = *(int **)(param_1 + 4);" (assignment_expression "piVar2 = *(int **)(param_1 + 4)" (identifier "piVar2") (= "=") (pointer_expression "*(int **)(param_1 + 4)" (* "*") (cast_expression "(int **)(param_1 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar4 = param_3 / (uint)piVar2[7];" (assignment_expression "uVar4 = param_3 / (uint)piVar2[7]" (identifier "uVar4") (= "=") (binary_expression "param_3 / (uint)piVar2[7]" (identifier "param_3") (/ "/") (cast_expression "(uint)piVar2[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar2[7]" (identifier "piVar2") ([ "[") (number_literal "7") (] "]"))))) (; ";")) (if_statement "if ((uint)piVar2[3] <= uVar4) {\n                    \n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }" (if "if") (parenthesized_expression "((uint)piVar2[3] <= uVar4)" (( "(") (binary_expression "(uint)piVar2[3] <= uVar4" (cast_expression "(uint)piVar2[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (identifier "uVar4")) () ")")) (compound_statement "{\n                    \n    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);\n  }" ({ "{") (expression_statement "FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);" (call_expression "FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7])" (identifier "FUN_00069d00") (argument_list "("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7])" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0x73e") (, ",") (string_literal ""visit"" (" """) (string_content "visit") (" """)) (, ",") (binary_expression "param_3 % (uint)piVar2[7]" (identifier "param_3") (% "%") (cast_expression "(uint)piVar2[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar2[7]" (identifier "piVar2") ([ "[") (number_literal "7") (] "]")))) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 < 0x7f) {\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }" (if "if") (parenthesized_expression "(param_2 < 0x7f)" (( "(") (binary_expression "param_2 < 0x7f" (identifier "param_2") (< "<") (number_literal "0x7f")) () ")")) (compound_statement "{\n    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);\n    *puVar1 = *(undefined4 *)(iVar3 + 0x20);\n    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);\n    return;\n  }" ({ "{") (expression_statement "*(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;" (assignment_expression "*(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80" (pointer_expression "*(byte *)(*piVar2 + uVar4)" (* "*") (cast_expression "(byte *)(*piVar2 + uVar4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar2 + uVar4)" (( "(") (binary_expression "*piVar2 + uVar4" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (identifier "uVar4")) () ")")))) (= "=") (binary_expression "(byte)param_2 | 0x80" (cast_expression "(byte)param_2" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "param_2")) (| "|") (number_literal "0x80"))) (; ";")) (expression_statement "iVar3 = *(int *)(param_1 + 4);" (assignment_expression "iVar3 = *(int *)(param_1 + 4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);" (assignment_expression "puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 4) + uVar4 * 8)" (( "(") (binary_expression "*(int *)(iVar3 + 4) + uVar4 * 8" (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (+ "+") (binary_expression "uVar4 * 8" (identifier "uVar4") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "*puVar1 = *(undefined4 *)(iVar3 + 0x20);" (assignment_expression "*puVar1 = *(undefined4 *)(iVar3 + 0x20)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x20)" (( "(") (binary_expression "iVar3 + 0x20" (identifier "iVar3") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "puVar1[1] = *(undefined4 *)(iVar3 + 0x24);" (assignment_expression "puVar1[1] = *(undefined4 *)(iVar3 + 0x24)" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x24)" (( "(") (binary_expression "iVar3 + 0x24" (identifier "iVar3") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);" (call_expression "FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4)" (identifier "FUN_00069d00") (argument_list "("../../gold/incremental.cc",0x742,"visit",uVar4)" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0x742") (, ",") (string_literal ""visit"" (" """) (string_content "visit") (" """)) (, ",") (identifier "uVar4") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void visit(Local_got_offset_visitor<32,_false> * this, uint got_type,
   uint got_offset) */

void __thiscall
gold::Local_got_offset_visitor<32,_false>::visit
          (Local_got_offset_visitor<32,_false> *this,type_2 var_4,type_2 var_1)

{
  Got_plt_view_info *pGVar1;
  type_1 *var_5;
  type_2 var_2;
  
  pGVar1 = this->info_;
  var_2 = var_1 / pGVar1->got_entry_size;
  if (pGVar1->got_count <= var_2) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/incremental.cc",0x73e,"visit");
  }
  if (var_4 < 0x7f) {
    pGVar1->got_type_p[var_2] = (type_3)var_4 | 0x80;
    pGVar1 = this->info_;
    var_5 = pGVar1->got_desc_p;
    *(type_2 *)(var_5 + var_2 * 8) = pGVar1->sym_index;
    *(type_2 *)((int)(var_5 + var_2 * 8) + 4) = pGVar1->input_index;
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_3("../../gold/incremental.cc",0x742,"visit");
}


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

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

void MASKED(int param_1,uint param_2,uint param_3)

{
  undefined4 *puVar1;
  int *piVar2;
  int iVar3;
  uint uVar4;
  
  piVar2 = *(int **)(param_1 + 4);
  uVar4 = param_3 / (uint)piVar2[7];
  if ((uint)piVar2[3] <= uVar4) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/incremental.cc",0x73e,"visit",param_3 % (uint)piVar2[7]);
  }
  if (param_2 < 0x7f) {
    *(byte *)(*piVar2 + uVar4) = (byte)param_2 | 0x80;
    iVar3 = *(int *)(param_1 + 4);
    puVar1 = (undefined4 *)(*(int *)(iVar3 + 4) + uVar4 * 8);
    *puVar1 = *(undefined4 *)(iVar3 + 0x20);
    puVar1[1] = *(undefined4 *)(iVar3 + 0x24);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/incremental.cc",0x742,"visit",uVar4);
}

