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

int __regparm3 resizeIndexObject(sqlite3 *db,Index *pIdx,int N)

{
  u8 *__dest;
  char **ppcVar1;
  u64 in_stack_ffffffe4;
  
  ppcVar1 = (char **)sqlite3DbMallocZero(db,in_stack_ffffffe4);
  if (ppcVar1 != (char **)0x0) {
    memcpy(ppcVar1,pIdx->azColl,(uint)pIdx->nColumn << 2);
    pIdx->azColl = ppcVar1;
    ppcVar1 = ppcVar1 + N;
    memcpy(ppcVar1,pIdx->aiColumn,(uint)pIdx->nColumn * 2);
    pIdx->aiColumn = (i16 *)ppcVar1;
    __dest = (u8 *)((int)ppcVar1 + N * 2);
    memcpy(__dest,pIdx->aSortOrder,(uint)pIdx->nColumn);
    pIdx->aSortOrder = __dest;
    pIdx->nColumn = (u16)N;
    pIdx->field_0x37 = pIdx->field_0x37 | 0x10;
    return 0;
  }
  return 7;
}



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

undefined4 __regparm3 FUN_0004be90(undefined4 param_1,int param_2,int param_3)

{
  void *pvVar1;
  
  pvVar1 = (void *)FUN_00044520();
  if (pvVar1 != (void *)0x0) {
    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);
    *(void **)(param_2 + 0x20) = pvVar1;
    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);
    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);
    *(void **)(param_2 + 4) = pvVar1;
    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);
    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));
    *(void **)(param_2 + 0x1c) = pvVar1;
    *(short *)(param_2 + 0x34) = (short)param_3;
    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;
    return 0;
  }
  return 7;
}


PUSH EBP
PUSH EDI
MOV EDI,ECX
PUSH ESI
MOV ESI,EDX
LEA EDX,[ECX*0x8 + 0x0]
PUSH EBX
SUB EDX,ECX
CALL 0x00017230
ADD EBX,0x12ff82
MOV ECX,EDX
SAR ECX,0x1f
SUB ESP,0xc
CALL 0x00044520
TEST EAX,EAX
JZ 0x0004bf20
MOV EBP,EAX
MOVZX EAX,word ptr [ESI + 0x34]
SUB ESP,0x4
SHL EAX,0x2
PUSH EAX
PUSH dword ptr [ESI + 0x20]
PUSH EBP
CALL 0x00015130
MOVZX EAX,word ptr [ESI + 0x34]
ADD ESP,0xc
MOV dword ptr [ESI + 0x20],EBP
LEA EBP,[EBP + EDI*0x4]
ADD EAX,EAX
PUSH EAX
PUSH dword ptr [ESI + 0x4]
PUSH EBP
CALL 0x00015130
MOVZX EAX,word ptr [ESI + 0x34]
ADD ESP,0xc
MOV dword ptr [ESI + 0x4],EBP
LEA EBP,[EBP + EDI*0x2]
PUSH EAX
PUSH dword ptr [ESI + 0x1c]
PUSH EBP
CALL 0x00015130
ADD ESP,0x10
MOV dword ptr [ESI + 0x1c],EBP
XOR EAX,EAX
MOV word ptr [ESI + 0x34],DI
OR byte ptr [ESI + 0x37],0x10
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD ESP,0xc
MOV EAX,0x7
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3 FUN_0004be90(undefined4 param_1,int param_2,int param_3)\n\n{\n  void *pvVar1;\n  \n  pvVar1 = (void *)FUN_00044520();\n  if (pvVar1 != (void *)0x0) {\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }\n  return 7;\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_0004be90(undefined4 param_1,int param_2,int param_3)\n\n{\n  void *pvVar1;\n  \n  pvVar1 = (void *)FUN_00044520();\n  if (pvVar1 != (void *)0x0) {\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }\n  return 7;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0004be90(undefined4 param_1,int param_2,int param_3)" identifier (parameter_list "(undefined4 param_1,int param_2,int param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  void *pvVar1;\n  \n  pvVar1 = (void *)FUN_00044520();\n  if (pvVar1 != (void *)0x0) {\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }\n  return 7;\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (expression_statement "pvVar1 = (void *)FUN_00044520();" (assignment_expression "pvVar1 = (void *)FUN_00044520()" identifier = (cast_expression "(void *)FUN_00044520()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00044520()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pvVar1 != (void *)0x0) {\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }" if (parenthesized_expression "(pvVar1 != (void *)0x0)" ( (binary_expression "pvVar1 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }" { (expression_statement "memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);" (call_expression "memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2)" identifier (argument_list "(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2)" ( identifier , (pointer_expression "*(void **)(param_2 + 0x20)" * (cast_expression "(void **)(param_2 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , (binary_expression "(uint)*(ushort *)(param_2 + 0x34) << 2" (binary_expression "(uint)*(ushort *)(param_2 + 0x34)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(param_2 + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) )))) << number_literal) ))) ;) (expression_statement "*(void **)(param_2 + 0x20) = pvVar1;" (assignment_expression "*(void **)(param_2 + 0x20) = pvVar1" (pointer_expression "*(void **)(param_2 + 0x20)" * (cast_expression "(void **)(param_2 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "pvVar1 = (void *)((int)pvVar1 + param_3 * 4);" (assignment_expression "pvVar1 = (void *)((int)pvVar1 + param_3 * 4)" identifier = (cast_expression "(void *)((int)pvVar1 + param_3 * 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar1 + param_3 * 4)" ( (binary_expression "(int)pvVar1 + param_3 * 4" (cast_expression "(int)pvVar1" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "param_3 * 4" identifier * number_literal)) )))) ;) (expression_statement "memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);" (call_expression "memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2)" identifier (argument_list "(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2)" ( identifier , (pointer_expression "*(void **)(param_2 + 4)" * (cast_expression "(void **)(param_2 + 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) , (binary_expression "(uint)*(ushort *)(param_2 + 0x34) * 2" (binary_expression "(uint)*(ushort *)(param_2 + 0x34)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(param_2 + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) )))) * number_literal) ))) ;) (expression_statement "*(void **)(param_2 + 4) = pvVar1;" (assignment_expression "*(void **)(param_2 + 4) = pvVar1" (pointer_expression "*(void **)(param_2 + 4)" * (cast_expression "(void **)(param_2 + 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "pvVar1 = (void *)((int)pvVar1 + param_3 * 2);" (assignment_expression "pvVar1 = (void *)((int)pvVar1 + param_3 * 2)" identifier = (cast_expression "(void *)((int)pvVar1 + param_3 * 2)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar1 + param_3 * 2)" ( (binary_expression "(int)pvVar1 + param_3 * 2" (cast_expression "(int)pvVar1" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "param_3 * 2" identifier * number_literal)) )))) ;) (expression_statement "memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));" (call_expression "memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34))" identifier (argument_list "(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34))" ( identifier , (pointer_expression "*(void **)(param_2 + 0x1c)" * (cast_expression "(void **)(param_2 + 0x1c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) , (binary_expression "(uint)*(ushort *)(param_2 + 0x34)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(param_2 + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) )))) ))) ;) (expression_statement "*(void **)(param_2 + 0x1c) = pvVar1;" (assignment_expression "*(void **)(param_2 + 0x1c) = pvVar1" (pointer_expression "*(void **)(param_2 + 0x1c)" * (cast_expression "(void **)(param_2 + 0x1c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(short *)(param_2 + 0x34) = (short)param_3;" (assignment_expression "*(short *)(param_2 + 0x34) = (short)param_3" (pointer_expression "*(short *)(param_2 + 0x34)" * (cast_expression "(short *)(param_2 + 0x34)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) )))) = (cast_expression "(short)param_3" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "*(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;" (assignment_expression "*(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10" (pointer_expression "*(byte *)(param_2 + 0x37)" * (cast_expression "(byte *)(param_2 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x37)" ( (binary_expression "param_2 + 0x37" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x37) | 0x10" (pointer_expression "*(byte *)(param_2 + 0x37)" * (cast_expression "(byte *)(param_2 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x37)" ( (binary_expression "param_2 + 0x37" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 7;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 resizeIndexObject(sqlite3 *db,Index *pIdx,int N)\n\n{\n  u8 *__dest;\n  char **ppcVar1;\n  u64 in_stack_ffffffe4;\n  \n  ppcVar1 = (char **)sqlite3DbMallocZero(db,in_stack_ffffffe4);\n  if (ppcVar1 != (char **)0x0) {\n    memcpy(ppcVar1,pIdx->azColl,(uint)pIdx->nColumn << 2);\n    pIdx->azColl = ppcVar1;\n    ppcVar1 = ppcVar1 + N;\n    memcpy(ppcVar1,pIdx->aiColumn,(uint)pIdx->nColumn * 2);\n    pIdx->aiColumn = (i16 *)ppcVar1;\n    __dest = (u8 *)((int)ppcVar1 + N * 2);\n    memcpy(__dest,pIdx->aSortOrder,(uint)pIdx->nColumn);\n    pIdx->aSortOrder = __dest;\n    pIdx->nColumn = (u16)N;\n    pIdx->field_0x37 = pIdx->field_0x37 | 0x10;\n    return 0;\n  }\n  return 7;\n}\n\n" comment (function_definition "int __regparm3 resizeIndexObject(sqlite3 *db,Index *pIdx,int N)\n\n{\n  u8 *__dest;\n  char **ppcVar1;\n  u64 in_stack_ffffffe4;\n  \n  ppcVar1 = (char **)sqlite3DbMallocZero(db,in_stack_ffffffe4);\n  if (ppcVar1 != (char **)0x0) {\n    memcpy(ppcVar1,pIdx->azColl,(uint)pIdx->nColumn << 2);\n    pIdx->azColl = ppcVar1;\n    ppcVar1 = ppcVar1 + N;\n    memcpy(ppcVar1,pIdx->aiColumn,(uint)pIdx->nColumn * 2);\n    pIdx->aiColumn = (i16 *)ppcVar1;\n    __dest = (u8 *)((int)ppcVar1 + N * 2);\n    memcpy(__dest,pIdx->aSortOrder,(uint)pIdx->nColumn);\n    pIdx->aSortOrder = __dest;\n    pIdx->nColumn = (u16)N;\n    pIdx->field_0x37 = pIdx->field_0x37 | 0x10;\n    return 0;\n  }\n  return 7;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "resizeIndexObject(sqlite3 *db,Index *pIdx,int N)" identifier (parameter_list "(sqlite3 *db,Index *pIdx,int N)" ( (parameter_declaration "sqlite3 *db" type_identifier (pointer_declarator "*db" * identifier)) , (parameter_declaration "Index *pIdx" type_identifier (pointer_declarator "*pIdx" * identifier)) , (parameter_declaration "int N" primitive_type identifier) ))) (compound_statement "{\n  u8 *__dest;\n  char **ppcVar1;\n  u64 in_stack_ffffffe4;\n  \n  ppcVar1 = (char **)sqlite3DbMallocZero(db,in_stack_ffffffe4);\n  if (ppcVar1 != (char **)0x0) {\n    memcpy(ppcVar1,pIdx->azColl,(uint)pIdx->nColumn << 2);\n    pIdx->azColl = ppcVar1;\n    ppcVar1 = ppcVar1 + N;\n    memcpy(ppcVar1,pIdx->aiColumn,(uint)pIdx->nColumn * 2);\n    pIdx->aiColumn = (i16 *)ppcVar1;\n    __dest = (u8 *)((int)ppcVar1 + N * 2);\n    memcpy(__dest,pIdx->aSortOrder,(uint)pIdx->nColumn);\n    pIdx->aSortOrder = __dest;\n    pIdx->nColumn = (u16)N;\n    pIdx->field_0x37 = pIdx->field_0x37 | 0x10;\n    return 0;\n  }\n  return 7;\n}" { (declaration "u8 *__dest;" type_identifier (pointer_declarator "*__dest" * identifier) ;) (declaration "char **ppcVar1;" primitive_type (pointer_declarator "**ppcVar1" * (pointer_declarator "*ppcVar1" * identifier)) ;) (declaration "u64 in_stack_ffffffe4;" type_identifier identifier ;) (expression_statement "ppcVar1 = (char **)sqlite3DbMallocZero(db,in_stack_ffffffe4);" (assignment_expression "ppcVar1 = (char **)sqlite3DbMallocZero(db,in_stack_ffffffe4)" identifier = (cast_expression "(char **)sqlite3DbMallocZero(db,in_stack_ffffffe4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "sqlite3DbMallocZero(db,in_stack_ffffffe4)" identifier (argument_list "(db,in_stack_ffffffe4)" ( identifier , identifier ))))) ;) (if_statement "if (ppcVar1 != (char **)0x0) {\n    memcpy(ppcVar1,pIdx->azColl,(uint)pIdx->nColumn << 2);\n    pIdx->azColl = ppcVar1;\n    ppcVar1 = ppcVar1 + N;\n    memcpy(ppcVar1,pIdx->aiColumn,(uint)pIdx->nColumn * 2);\n    pIdx->aiColumn = (i16 *)ppcVar1;\n    __dest = (u8 *)((int)ppcVar1 + N * 2);\n    memcpy(__dest,pIdx->aSortOrder,(uint)pIdx->nColumn);\n    pIdx->aSortOrder = __dest;\n    pIdx->nColumn = (u16)N;\n    pIdx->field_0x37 = pIdx->field_0x37 | 0x10;\n    return 0;\n  }" if (parenthesized_expression "(ppcVar1 != (char **)0x0)" ( (binary_expression "ppcVar1 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    memcpy(ppcVar1,pIdx->azColl,(uint)pIdx->nColumn << 2);\n    pIdx->azColl = ppcVar1;\n    ppcVar1 = ppcVar1 + N;\n    memcpy(ppcVar1,pIdx->aiColumn,(uint)pIdx->nColumn * 2);\n    pIdx->aiColumn = (i16 *)ppcVar1;\n    __dest = (u8 *)((int)ppcVar1 + N * 2);\n    memcpy(__dest,pIdx->aSortOrder,(uint)pIdx->nColumn);\n    pIdx->aSortOrder = __dest;\n    pIdx->nColumn = (u16)N;\n    pIdx->field_0x37 = pIdx->field_0x37 | 0x10;\n    return 0;\n  }" { (expression_statement "memcpy(ppcVar1,pIdx->azColl,(uint)pIdx->nColumn << 2);" (call_expression "memcpy(ppcVar1,pIdx->azColl,(uint)pIdx->nColumn << 2)" identifier (argument_list "(ppcVar1,pIdx->azColl,(uint)pIdx->nColumn << 2)" ( identifier , (field_expression "pIdx->azColl" identifier -> field_identifier) , (binary_expression "(uint)pIdx->nColumn << 2" (cast_expression "(uint)pIdx->nColumn" ( (type_descriptor "uint" type_identifier) ) (field_expression "pIdx->nColumn" identifier -> field_identifier)) << number_literal) ))) ;) (expression_statement "pIdx->azColl = ppcVar1;" (assignment_expression "pIdx->azColl = ppcVar1" (field_expression "pIdx->azColl" identifier -> field_identifier) = identifier) ;) (expression_statement "ppcVar1 = ppcVar1 + N;" (assignment_expression "ppcVar1 = ppcVar1 + N" identifier = (binary_expression "ppcVar1 + N" identifier + identifier)) ;) (expression_statement "memcpy(ppcVar1,pIdx->aiColumn,(uint)pIdx->nColumn * 2);" (call_expression "memcpy(ppcVar1,pIdx->aiColumn,(uint)pIdx->nColumn * 2)" identifier (argument_list "(ppcVar1,pIdx->aiColumn,(uint)pIdx->nColumn * 2)" ( identifier , (field_expression "pIdx->aiColumn" identifier -> field_identifier) , (binary_expression "(uint)pIdx->nColumn * 2" (cast_expression "(uint)pIdx->nColumn" ( (type_descriptor "uint" type_identifier) ) (field_expression "pIdx->nColumn" identifier -> field_identifier)) * number_literal) ))) ;) (expression_statement "pIdx->aiColumn = (i16 *)ppcVar1;" (assignment_expression "pIdx->aiColumn = (i16 *)ppcVar1" (field_expression "pIdx->aiColumn" identifier -> field_identifier) = (cast_expression "(i16 *)ppcVar1" ( (type_descriptor "i16 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "__dest = (u8 *)((int)ppcVar1 + N * 2);" (assignment_expression "__dest = (u8 *)((int)ppcVar1 + N * 2)" identifier = (cast_expression "(u8 *)((int)ppcVar1 + N * 2)" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar1 + N * 2)" ( (binary_expression "(int)ppcVar1 + N * 2" (cast_expression "(int)ppcVar1" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "N * 2" identifier * number_literal)) )))) ;) (expression_statement "memcpy(__dest,pIdx->aSortOrder,(uint)pIdx->nColumn);" (call_expression "memcpy(__dest,pIdx->aSortOrder,(uint)pIdx->nColumn)" identifier (argument_list "(__dest,pIdx->aSortOrder,(uint)pIdx->nColumn)" ( identifier , (field_expression "pIdx->aSortOrder" identifier -> field_identifier) , (cast_expression "(uint)pIdx->nColumn" ( (type_descriptor "uint" type_identifier) ) (field_expression "pIdx->nColumn" identifier -> field_identifier)) ))) ;) (expression_statement "pIdx->aSortOrder = __dest;" (assignment_expression "pIdx->aSortOrder = __dest" (field_expression "pIdx->aSortOrder" identifier -> field_identifier) = identifier) ;) (expression_statement "pIdx->nColumn = (u16)N;" (assignment_expression "pIdx->nColumn = (u16)N" (field_expression "pIdx->nColumn" identifier -> field_identifier) = (cast_expression "(u16)N" ( (type_descriptor "u16" type_identifier) ) identifier)) ;) (expression_statement "pIdx->field_0x37 = pIdx->field_0x37 | 0x10;" (assignment_expression "pIdx->field_0x37 = pIdx->field_0x37 | 0x10" (field_expression "pIdx->field_0x37" identifier -> field_identifier) = (binary_expression "pIdx->field_0x37 | 0x10" (field_expression "pIdx->field_0x37" identifier -> field_identifier) | number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 7;" return number_literal ;) })))
(translation_unit "undefined4 __regparm3 FUN_0004be90(undefined4 param_1,int param_2,int param_3)\n\n{\n  void *pvVar1;\n  \n  pvVar1 = (void *)FUN_00044520();\n  if (pvVar1 != (void *)0x0) {\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }\n  return 7;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_0004be90(undefined4 param_1,int param_2,int param_3)\n\n{\n  void *pvVar1;\n  \n  pvVar1 = (void *)FUN_00044520();\n  if (pvVar1 != (void *)0x0) {\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }\n  return 7;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0004be90(undefined4 param_1,int param_2,int param_3)" identifier (parameter_list "(undefined4 param_1,int param_2,int param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  void *pvVar1;\n  \n  pvVar1 = (void *)FUN_00044520();\n  if (pvVar1 != (void *)0x0) {\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }\n  return 7;\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (expression_statement "pvVar1 = (void *)FUN_00044520();" (assignment_expression "pvVar1 = (void *)FUN_00044520()" identifier = (cast_expression "(void *)FUN_00044520()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00044520()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pvVar1 != (void *)0x0) {\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }" if (parenthesized_expression "(pvVar1 != (void *)0x0)" ( (binary_expression "pvVar1 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }" { (expression_statement "memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);" (call_expression "memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2)" identifier (argument_list "(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2)" ( identifier , (pointer_expression "*(void **)(param_2 + 0x20)" * (cast_expression "(void **)(param_2 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , (binary_expression "(uint)*(ushort *)(param_2 + 0x34) << 2" (binary_expression "(uint)*(ushort *)(param_2 + 0x34)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(param_2 + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) )))) << number_literal) ))) ;) (expression_statement "*(void **)(param_2 + 0x20) = pvVar1;" (assignment_expression "*(void **)(param_2 + 0x20) = pvVar1" (pointer_expression "*(void **)(param_2 + 0x20)" * (cast_expression "(void **)(param_2 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "pvVar1 = (void *)((int)pvVar1 + param_3 * 4);" (assignment_expression "pvVar1 = (void *)((int)pvVar1 + param_3 * 4)" identifier = (cast_expression "(void *)((int)pvVar1 + param_3 * 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar1 + param_3 * 4)" ( (binary_expression "(int)pvVar1 + param_3 * 4" (cast_expression "(int)pvVar1" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "param_3 * 4" identifier * number_literal)) )))) ;) (expression_statement "memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);" (call_expression "memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2)" identifier (argument_list "(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2)" ( identifier , (pointer_expression "*(void **)(param_2 + 4)" * (cast_expression "(void **)(param_2 + 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) , (binary_expression "(uint)*(ushort *)(param_2 + 0x34) * 2" (binary_expression "(uint)*(ushort *)(param_2 + 0x34)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(param_2 + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) )))) * number_literal) ))) ;) (expression_statement "*(void **)(param_2 + 4) = pvVar1;" (assignment_expression "*(void **)(param_2 + 4) = pvVar1" (pointer_expression "*(void **)(param_2 + 4)" * (cast_expression "(void **)(param_2 + 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "pvVar1 = (void *)((int)pvVar1 + param_3 * 2);" (assignment_expression "pvVar1 = (void *)((int)pvVar1 + param_3 * 2)" identifier = (cast_expression "(void *)((int)pvVar1 + param_3 * 2)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar1 + param_3 * 2)" ( (binary_expression "(int)pvVar1 + param_3 * 2" (cast_expression "(int)pvVar1" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "param_3 * 2" identifier * number_literal)) )))) ;) (expression_statement "memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));" (call_expression "memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34))" identifier (argument_list "(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34))" ( identifier , (pointer_expression "*(void **)(param_2 + 0x1c)" * (cast_expression "(void **)(param_2 + 0x1c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) , (binary_expression "(uint)*(ushort *)(param_2 + 0x34)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(param_2 + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) )))) ))) ;) (expression_statement "*(void **)(param_2 + 0x1c) = pvVar1;" (assignment_expression "*(void **)(param_2 + 0x1c) = pvVar1" (pointer_expression "*(void **)(param_2 + 0x1c)" * (cast_expression "(void **)(param_2 + 0x1c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(short *)(param_2 + 0x34) = (short)param_3;" (assignment_expression "*(short *)(param_2 + 0x34) = (short)param_3" (pointer_expression "*(short *)(param_2 + 0x34)" * (cast_expression "(short *)(param_2 + 0x34)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) )))) = (cast_expression "(short)param_3" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "*(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;" (assignment_expression "*(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10" (pointer_expression "*(byte *)(param_2 + 0x37)" * (cast_expression "(byte *)(param_2 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x37)" ( (binary_expression "param_2 + 0x37" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x37) | 0x10" (pointer_expression "*(byte *)(param_2 + 0x37)" * (cast_expression "(byte *)(param_2 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x37)" ( (binary_expression "param_2 + 0x37" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 7;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })))
(function_definition "undefined4 __regparm3 FUN_0004be90(undefined4 param_1,int param_2,int param_3)\n\n{\n  void *pvVar1;\n  \n  pvVar1 = (void *)FUN_00044520();\n  if (pvVar1 != (void *)0x0) {\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }\n  return 7;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0004be90(undefined4 param_1,int param_2,int param_3)" (identifier "FUN_0004be90") (parameter_list "(undefined4 param_1,int param_2,int param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  void *pvVar1;\n  \n  pvVar1 = (void *)FUN_00044520();\n  if (pvVar1 != (void *)0x0) {\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }\n  return 7;\n}" ({ "{") (declaration "void *pvVar1;" (primitive_type "void") (pointer_declarator "*pvVar1" (* "*") (identifier "pvVar1")) (; ";")) (expression_statement "pvVar1 = (void *)FUN_00044520();" (assignment_expression "pvVar1 = (void *)FUN_00044520()" (identifier "pvVar1") (= "=") (cast_expression "(void *)FUN_00044520()" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00044520()" (identifier "FUN_00044520") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (pvVar1 != (void *)0x0) {\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }" (if "if") (parenthesized_expression "(pvVar1 != (void *)0x0)" (( "(") (binary_expression "pvVar1 != (void *)0x0" (identifier "pvVar1") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);\n    *(void **)(param_2 + 0x20) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);\n    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);\n    *(void **)(param_2 + 4) = pvVar1;\n    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);\n    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));\n    *(void **)(param_2 + 0x1c) = pvVar1;\n    *(short *)(param_2 + 0x34) = (short)param_3;\n    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;\n    return 0;\n  }" ({ "{") (expression_statement "memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);" (call_expression "memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2)" (identifier "memcpy") (argument_list "(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2)" (( "(") (identifier "pvVar1") (, ",") (pointer_expression "*(void **)(param_2 + 0x20)" (* "*") (cast_expression "(void **)(param_2 + 0x20)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (binary_expression "(uint)*(ushort *)(param_2 + 0x34) << 2" (binary_expression "(uint)*(ushort *)(param_2 + 0x34)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(param_2 + 0x34)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x34)" (( "(") (binary_expression "param_2 + 0x34" (identifier "param_2") (+ "+") (number_literal "0x34")) () ")")))) (<< "<<") (number_literal "2")) () ")"))) (; ";")) (expression_statement "*(void **)(param_2 + 0x20) = pvVar1;" (assignment_expression "*(void **)(param_2 + 0x20) = pvVar1" (pointer_expression "*(void **)(param_2 + 0x20)" (* "*") (cast_expression "(void **)(param_2 + 0x20)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "pvVar1")) (; ";")) (expression_statement "pvVar1 = (void *)((int)pvVar1 + param_3 * 4);" (assignment_expression "pvVar1 = (void *)((int)pvVar1 + param_3 * 4)" (identifier "pvVar1") (= "=") (cast_expression "(void *)((int)pvVar1 + param_3 * 4)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar1 + param_3 * 4)" (( "(") (binary_expression "(int)pvVar1 + param_3 * 4" (cast_expression "(int)pvVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar1")) (+ "+") (binary_expression "param_3 * 4" (identifier "param_3") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);" (call_expression "memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2)" (identifier "memcpy") (argument_list "(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2)" (( "(") (identifier "pvVar1") (, ",") (pointer_expression "*(void **)(param_2 + 4)" (* "*") (cast_expression "(void **)(param_2 + 4)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (, ",") (binary_expression "(uint)*(ushort *)(param_2 + 0x34) * 2" (binary_expression "(uint)*(ushort *)(param_2 + 0x34)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(param_2 + 0x34)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x34)" (( "(") (binary_expression "param_2 + 0x34" (identifier "param_2") (+ "+") (number_literal "0x34")) () ")")))) (* "*") (number_literal "2")) () ")"))) (; ";")) (expression_statement "*(void **)(param_2 + 4) = pvVar1;" (assignment_expression "*(void **)(param_2 + 4) = pvVar1" (pointer_expression "*(void **)(param_2 + 4)" (* "*") (cast_expression "(void **)(param_2 + 4)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pvVar1")) (; ";")) (expression_statement "pvVar1 = (void *)((int)pvVar1 + param_3 * 2);" (assignment_expression "pvVar1 = (void *)((int)pvVar1 + param_3 * 2)" (identifier "pvVar1") (= "=") (cast_expression "(void *)((int)pvVar1 + param_3 * 2)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar1 + param_3 * 2)" (( "(") (binary_expression "(int)pvVar1 + param_3 * 2" (cast_expression "(int)pvVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar1")) (+ "+") (binary_expression "param_3 * 2" (identifier "param_3") (* "*") (number_literal "2"))) () ")")))) (; ";")) (expression_statement "memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));" (call_expression "memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34))" (identifier "memcpy") (argument_list "(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34))" (( "(") (identifier "pvVar1") (, ",") (pointer_expression "*(void **)(param_2 + 0x1c)" (* "*") (cast_expression "(void **)(param_2 + 0x1c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (binary_expression "(uint)*(ushort *)(param_2 + 0x34)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(param_2 + 0x34)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x34)" (( "(") (binary_expression "param_2 + 0x34" (identifier "param_2") (+ "+") (number_literal "0x34")) () ")")))) () ")"))) (; ";")) (expression_statement "*(void **)(param_2 + 0x1c) = pvVar1;" (assignment_expression "*(void **)(param_2 + 0x1c) = pvVar1" (pointer_expression "*(void **)(param_2 + 0x1c)" (* "*") (cast_expression "(void **)(param_2 + 0x1c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "pvVar1")) (; ";")) (expression_statement "*(short *)(param_2 + 0x34) = (short)param_3;" (assignment_expression "*(short *)(param_2 + 0x34) = (short)param_3" (pointer_expression "*(short *)(param_2 + 0x34)" (* "*") (cast_expression "(short *)(param_2 + 0x34)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x34)" (( "(") (binary_expression "param_2 + 0x34" (identifier "param_2") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (cast_expression "(short)param_3" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "param_3"))) (; ";")) (expression_statement "*(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;" (assignment_expression "*(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10" (pointer_expression "*(byte *)(param_2 + 0x37)" (* "*") (cast_expression "(byte *)(param_2 + 0x37)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x37)" (( "(") (binary_expression "param_2 + 0x37" (identifier "param_2") (+ "+") (number_literal "0x37")) () ")")))) (= "=") (binary_expression "*(byte *)(param_2 + 0x37) | 0x10" (pointer_expression "*(byte *)(param_2 + 0x37)" (* "*") (cast_expression "(byte *)(param_2 + 0x37)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x37)" (( "(") (binary_expression "param_2 + 0x37" (identifier "param_2") (+ "+") (number_literal "0x37")) () ")")))) (| "|") (number_literal "0x10"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (return_statement "return 7;" (return "return") (number_literal "7") (; ";")) (} "}")))

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

int __regparm3 function_1(type_1 *db,type_2 *pIdx,int var_4)

{
  type_3 *__dest;
  char **var_2;
  type_4 in_stack_ffffffe4;
  
  var_2 = (char **)var_1(db,in_stack_ffffffe4);
  if (var_2 != (char **)0x0) {
    var_3(var_2,pIdx->azColl,(type_5)pIdx->nColumn << 2);
    pIdx->azColl = var_2;
    var_2 = var_2 + var_4;
    var_3(var_2,pIdx->aiColumn,(type_5)pIdx->nColumn * 2);
    pIdx->aiColumn = (type_6 *)var_2;
    __dest = (type_3 *)((int)var_2 + var_4 * 2);
    var_3(__dest,pIdx->aSortOrder,(type_5)pIdx->nColumn);
    pIdx->aSortOrder = __dest;
    pIdx->nColumn = (type_7)var_4;
    pIdx->field_0x37 = pIdx->field_0x37 | 0x10;
    return 0;
  }
  return 7;
}


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

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

undefined4 __regparm3 MASKED(undefined4 param_1,int param_2,int param_3)

{
  void *pvVar1;
  
  pvVar1 = (void *)FUN_00044520();
  if (pvVar1 != (void *)0x0) {
    memcpy(pvVar1,*(void **)(param_2 + 0x20),(uint)*(ushort *)(param_2 + 0x34) << 2);
    *(void **)(param_2 + 0x20) = pvVar1;
    pvVar1 = (void *)((int)pvVar1 + param_3 * 4);
    memcpy(pvVar1,*(void **)(param_2 + 4),(uint)*(ushort *)(param_2 + 0x34) * 2);
    *(void **)(param_2 + 4) = pvVar1;
    pvVar1 = (void *)((int)pvVar1 + param_3 * 2);
    memcpy(pvVar1,*(void **)(param_2 + 0x1c),(uint)*(ushort *)(param_2 + 0x34));
    *(void **)(param_2 + 0x1c) = pvVar1;
    *(short *)(param_2 + 0x34) = (short)param_3;
    *(byte *)(param_2 + 0x37) = *(byte *)(param_2 + 0x37) | 0x10;
    return 0;
  }
  return 7;
}

