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

int __regparm3 pagerFlushOnCommit(Pager *pPager,int bCommit)

{
  PCache *pPVar1;
  PgHdr *pPVar2;
  int iVar3;
  uint uVar4;
  
  pPVar1 = pPager->pPCache;
  uVar4 = pPVar1->szCache;
  if ((int)uVar4 < 0) {
    iVar3 = pPVar1->szExtra + pPVar1->szPage;
    uVar4 = __divdi3(uVar4 * -0x400,
                     (((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)) * -0x400 | -uVar4 >> 0x16,iVar3,
                     iVar3 >> 0x1f);
  }
  iVar3 = 0;
  for (pPVar2 = pPVar1->pDirty; pPVar2 != (PgHdr *)0x0; pPVar2 = pPVar2->pDirtyNext) {
    iVar3 = iVar3 + 1;
  }
  if (uVar4 != 0) {
    iVar3 = __divdi3((longlong)iVar3 * 100,uVar4,(int)uVar4 >> 0x1f);
    uVar4 = (uint)(0x18 < iVar3);
  }
  return uVar4;
}



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

uint __regparm3 FUN_00027430(int param_1)

{
  int *piVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  
  piVar1 = *(int **)(param_1 + 0xd0);
  uVar2 = piVar1[4];
  if ((int)uVar2 < 0) {
    uVar2 = FUN_000a9510(uVar2 * -0x400,
                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,
                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);
  }
  iVar3 = 0;
  for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {
    iVar3 = iVar3 + 1;
  }
  if (uVar2 != 0) {
    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);
    uVar2 = (uint)(0x18 < iVar4);
  }
  return uVar2;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0001d810
ADD EBX,0xb6bc7
SUB ESP,0xc
MOV ESI,dword ptr [EAX + 0xd0]
MOV ECX,dword ptr [ESI + 0x10]
TEST ECX,ECX
JNS 0x0002747f
MOV EBP,ECX
MOV EAX,ECX
SAR EBP,0x1f
NEG EAX
MOV EDX,EBP
ADC EDX,0x0
NEG EDX
SHLD EDX,EAX,0xa
SHL EAX,0xa
MOV EDI,EAX
MOV EAX,dword ptr [ESI + 0x1c]
ADD EAX,dword ptr [ESI + 0x18]
MOV EBP,EDX
CDQ
PUSH EDX
PUSH EAX
PUSH EBP
PUSH EDI
CALL 0x000a9510
ADD ESP,0x10
MOV ECX,EAX
MOV EDX,dword ptr [ESI]
XOR EAX,EAX
TEST EDX,EDX
JZ 0x0002749a
MOV ESI,ESI
LEA EDI,[EDI]
MOV EDX,dword ptr [EDX + 0x20]
ADD EAX,0x1
TEST EDX,EDX
JNZ 0x00027490
TEST ECX,ECX
JZ 0x000274be
MOV EDX,0x64
MOV EDI,ECX
IMUL EDX
SAR EDI,0x1f
PUSH EDI
PUSH ECX
PUSH EDX
PUSH EAX
CALL 0x000a9510
XOR ECX,ECX
ADD ESP,0x10
CMP EAX,0x18
SETG CL
ADD ESP,0xc
MOV EAX,ECX
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\nuint __regparm3 FUN_00027430(int param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 0xd0);\n  uVar2 = piVar1[4];\n  if ((int)uVar2 < 0) {\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }\n  iVar3 = 0;\n  for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {\n    iVar3 = iVar3 + 1;\n  }\n  if (uVar2 != 0) {\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }\n  return uVar2;\n}\n\n" comment (function_definition "uint __regparm3 FUN_00027430(int param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 0xd0);\n  uVar2 = piVar1[4];\n  if ((int)uVar2 < 0) {\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }\n  iVar3 = 0;\n  for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {\n    iVar3 = iVar3 + 1;\n  }\n  if (uVar2 != 0) {\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }\n  return uVar2;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00027430(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 0xd0);\n  uVar2 = piVar1[4];\n  if ((int)uVar2 < 0) {\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }\n  iVar3 = 0;\n  for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {\n    iVar3 = iVar3 + 1;\n  }\n  if (uVar2 != 0) {\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }\n  return uVar2;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "piVar1 = *(int **)(param_1 + 0xd0);" (assignment_expression "piVar1 = *(int **)(param_1 + 0xd0)" identifier = (pointer_expression "*(int **)(param_1 + 0xd0)" * (cast_expression "(int **)(param_1 + 0xd0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = piVar1[4];" (assignment_expression "uVar2 = piVar1[4]" identifier = (subscript_expression "piVar1[4]" identifier [ number_literal ])) ;) (if_statement "if ((int)uVar2 < 0) {\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }" if (parenthesized_expression "((int)uVar2 < 0)" ( (binary_expression "(int)uVar2 < 0" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }" { (expression_statement "uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);" (assignment_expression "uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f)" identifier = (call_expression "FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f)" identifier (argument_list "(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f)" ( (binary_expression "uVar2 * -0x400" identifier * number_literal) , (binary_expression "(((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16" (binary_expression "(((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400" (parenthesized_expression "(((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0))" ( (binary_expression "((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)" (parenthesized_expression "((int)uVar2 >> 0x1f)" ( (binary_expression "(int)uVar2 >> 0x1f" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (call_expression "(uint)(uVar2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )))) )) * number_literal) | (binary_expression "-uVar2 >> 0x16" (unary_expression "-uVar2" - identifier) >> number_literal)) , (binary_expression "piVar1[7] + piVar1[6]" (subscript_expression "piVar1[7]" identifier [ number_literal ]) + (subscript_expression "piVar1[6]" identifier [ number_literal ])) , (binary_expression "piVar1[7] + piVar1[6] >> 0x1f" (binary_expression "piVar1[7] + piVar1[6]" (subscript_expression "piVar1[7]" identifier [ number_literal ]) + (subscript_expression "piVar1[6]" identifier [ number_literal ])) >> number_literal) )))) ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (for_statement "for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {\n    iVar3 = iVar3 + 1;\n  }" for ( (assignment_expression "iVar4 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ; (binary_expression "iVar4 != 0" identifier != number_literal) ; (assignment_expression "iVar4 = *(int *)(iVar4 + 0x20)" identifier = (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) ))))) ) (compound_statement "{\n    iVar3 = iVar3 + 1;\n  }" { (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar2 != 0) {\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }" { (expression_statement "iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);" (assignment_expression "iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f)" identifier = (call_expression "FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f)" identifier (argument_list "((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f)" ( (binary_expression "(longlong)iVar3 * 100" (cast_expression "(longlong)iVar3" ( (type_descriptor "longlong" type_identifier) ) identifier) * number_literal) , identifier , (binary_expression "(int)uVar2 >> 0x1f" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar2 = (uint)(0x18 < iVar4);" (assignment_expression "uVar2 = (uint)(0x18 < iVar4)" identifier = (call_expression "(uint)(0x18 < iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x18 < iVar4)" ( (binary_expression "0x18 < iVar4" number_literal < identifier) )))) ;) })) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 pagerFlushOnCommit(Pager *pPager,int bCommit)\n\n{\n  PCache *pPVar1;\n  PgHdr *pPVar2;\n  int iVar3;\n  uint uVar4;\n  \n  pPVar1 = pPager->pPCache;\n  uVar4 = pPVar1->szCache;\n  if ((int)uVar4 < 0) {\n    iVar3 = pPVar1->szExtra + pPVar1->szPage;\n    uVar4 = __divdi3(uVar4 * -0x400,\n                     (((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)) * -0x400 | -uVar4 >> 0x16,iVar3,\n                     iVar3 >> 0x1f);\n  }\n  iVar3 = 0;\n  for (pPVar2 = pPVar1->pDirty; pPVar2 != (PgHdr *)0x0; pPVar2 = pPVar2->pDirtyNext) {\n    iVar3 = iVar3 + 1;\n  }\n  if (uVar4 != 0) {\n    iVar3 = __divdi3((longlong)iVar3 * 100,uVar4,(int)uVar4 >> 0x1f);\n    uVar4 = (uint)(0x18 < iVar3);\n  }\n  return uVar4;\n}\n\n" comment (function_definition "int __regparm3 pagerFlushOnCommit(Pager *pPager,int bCommit)\n\n{\n  PCache *pPVar1;\n  PgHdr *pPVar2;\n  int iVar3;\n  uint uVar4;\n  \n  pPVar1 = pPager->pPCache;\n  uVar4 = pPVar1->szCache;\n  if ((int)uVar4 < 0) {\n    iVar3 = pPVar1->szExtra + pPVar1->szPage;\n    uVar4 = __divdi3(uVar4 * -0x400,\n                     (((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)) * -0x400 | -uVar4 >> 0x16,iVar3,\n                     iVar3 >> 0x1f);\n  }\n  iVar3 = 0;\n  for (pPVar2 = pPVar1->pDirty; pPVar2 != (PgHdr *)0x0; pPVar2 = pPVar2->pDirtyNext) {\n    iVar3 = iVar3 + 1;\n  }\n  if (uVar4 != 0) {\n    iVar3 = __divdi3((longlong)iVar3 * 100,uVar4,(int)uVar4 >> 0x1f);\n    uVar4 = (uint)(0x18 < iVar3);\n  }\n  return uVar4;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "pagerFlushOnCommit(Pager *pPager,int bCommit)" identifier (parameter_list "(Pager *pPager,int bCommit)" ( (parameter_declaration "Pager *pPager" type_identifier (pointer_declarator "*pPager" * identifier)) , (parameter_declaration "int bCommit" primitive_type identifier) ))) (compound_statement "{\n  PCache *pPVar1;\n  PgHdr *pPVar2;\n  int iVar3;\n  uint uVar4;\n  \n  pPVar1 = pPager->pPCache;\n  uVar4 = pPVar1->szCache;\n  if ((int)uVar4 < 0) {\n    iVar3 = pPVar1->szExtra + pPVar1->szPage;\n    uVar4 = __divdi3(uVar4 * -0x400,\n                     (((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)) * -0x400 | -uVar4 >> 0x16,iVar3,\n                     iVar3 >> 0x1f);\n  }\n  iVar3 = 0;\n  for (pPVar2 = pPVar1->pDirty; pPVar2 != (PgHdr *)0x0; pPVar2 = pPVar2->pDirtyNext) {\n    iVar3 = iVar3 + 1;\n  }\n  if (uVar4 != 0) {\n    iVar3 = __divdi3((longlong)iVar3 * 100,uVar4,(int)uVar4 >> 0x1f);\n    uVar4 = (uint)(0x18 < iVar3);\n  }\n  return uVar4;\n}" { (declaration "PCache *pPVar1;" type_identifier (pointer_declarator "*pPVar1" * identifier) ;) (declaration "PgHdr *pPVar2;" type_identifier (pointer_declarator "*pPVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "pPVar1 = pPager->pPCache;" (assignment_expression "pPVar1 = pPager->pPCache" identifier = (field_expression "pPager->pPCache" identifier -> field_identifier)) ;) (expression_statement "uVar4 = pPVar1->szCache;" (assignment_expression "uVar4 = pPVar1->szCache" identifier = (field_expression "pPVar1->szCache" identifier -> field_identifier)) ;) (if_statement "if ((int)uVar4 < 0) {\n    iVar3 = pPVar1->szExtra + pPVar1->szPage;\n    uVar4 = __divdi3(uVar4 * -0x400,\n                     (((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)) * -0x400 | -uVar4 >> 0x16,iVar3,\n                     iVar3 >> 0x1f);\n  }" if (parenthesized_expression "((int)uVar4 < 0)" ( (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iVar3 = pPVar1->szExtra + pPVar1->szPage;\n    uVar4 = __divdi3(uVar4 * -0x400,\n                     (((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)) * -0x400 | -uVar4 >> 0x16,iVar3,\n                     iVar3 >> 0x1f);\n  }" { (expression_statement "iVar3 = pPVar1->szExtra + pPVar1->szPage;" (assignment_expression "iVar3 = pPVar1->szExtra + pPVar1->szPage" identifier = (binary_expression "pPVar1->szExtra + pPVar1->szPage" (field_expression "pPVar1->szExtra" identifier -> field_identifier) + (field_expression "pPVar1->szPage" identifier -> field_identifier))) ;) (expression_statement "uVar4 = __divdi3(uVar4 * -0x400,\n                     (((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)) * -0x400 | -uVar4 >> 0x16,iVar3,\n                     iVar3 >> 0x1f);" (assignment_expression "uVar4 = __divdi3(uVar4 * -0x400,\n                     (((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)) * -0x400 | -uVar4 >> 0x16,iVar3,\n                     iVar3 >> 0x1f)" identifier = (call_expression "__divdi3(uVar4 * -0x400,\n                     (((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)) * -0x400 | -uVar4 >> 0x16,iVar3,\n                     iVar3 >> 0x1f)" identifier (argument_list "(uVar4 * -0x400,\n                     (((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)) * -0x400 | -uVar4 >> 0x16,iVar3,\n                     iVar3 >> 0x1f)" ( (binary_expression "uVar4 * -0x400" identifier * number_literal) , (binary_expression "(((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)) * -0x400 | -uVar4 >> 0x16" (binary_expression "(((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)) * -0x400" (parenthesized_expression "(((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0))" ( (binary_expression "((int)uVar4 >> 0x1f) + (uint)(uVar4 != 0)" (parenthesized_expression "((int)uVar4 >> 0x1f)" ( (binary_expression "(int)uVar4 >> 0x1f" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (call_expression "(uint)(uVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )))) )) * number_literal) | (binary_expression "-uVar4 >> 0x16" (unary_expression "-uVar4" - identifier) >> number_literal)) , identifier , (binary_expression "iVar3 >> 0x1f" identifier >> number_literal) )))) ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (for_statement "for (pPVar2 = pPVar1->pDirty; pPVar2 != (PgHdr *)0x0; pPVar2 = pPVar2->pDirtyNext) {\n    iVar3 = iVar3 + 1;\n  }" for ( (assignment_expression "pPVar2 = pPVar1->pDirty" identifier = (field_expression "pPVar1->pDirty" identifier -> field_identifier)) ; (binary_expression "pPVar2 != (PgHdr *)0x0" identifier != (cast_expression "(PgHdr *)0x0" ( (type_descriptor "PgHdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pPVar2 = pPVar2->pDirtyNext" identifier = (field_expression "pPVar2->pDirtyNext" identifier -> field_identifier)) ) (compound_statement "{\n    iVar3 = iVar3 + 1;\n  }" { (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar4 != 0) {\n    iVar3 = __divdi3((longlong)iVar3 * 100,uVar4,(int)uVar4 >> 0x1f);\n    uVar4 = (uint)(0x18 < iVar3);\n  }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar3 = __divdi3((longlong)iVar3 * 100,uVar4,(int)uVar4 >> 0x1f);\n    uVar4 = (uint)(0x18 < iVar3);\n  }" { (expression_statement "iVar3 = __divdi3((longlong)iVar3 * 100,uVar4,(int)uVar4 >> 0x1f);" (assignment_expression "iVar3 = __divdi3((longlong)iVar3 * 100,uVar4,(int)uVar4 >> 0x1f)" identifier = (call_expression "__divdi3((longlong)iVar3 * 100,uVar4,(int)uVar4 >> 0x1f)" identifier (argument_list "((longlong)iVar3 * 100,uVar4,(int)uVar4 >> 0x1f)" ( (binary_expression "(longlong)iVar3 * 100" (cast_expression "(longlong)iVar3" ( (type_descriptor "longlong" type_identifier) ) identifier) * number_literal) , identifier , (binary_expression "(int)uVar4 >> 0x1f" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar4 = (uint)(0x18 < iVar3);" (assignment_expression "uVar4 = (uint)(0x18 < iVar3)" identifier = (call_expression "(uint)(0x18 < iVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x18 < iVar3)" ( (binary_expression "0x18 < iVar3" number_literal < identifier) )))) ;) })) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "uint __regparm3 FUN_00027430(int param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 0xd0);\n  uVar2 = piVar1[4];\n  if ((int)uVar2 < 0) {\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }\n  iVar3 = 0;\n  for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {\n    iVar3 = iVar3 + 1;\n  }\n  if (uVar2 != 0) {\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }\n  return uVar2;\n}\n\n" (function_definition "uint __regparm3 FUN_00027430(int param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 0xd0);\n  uVar2 = piVar1[4];\n  if ((int)uVar2 < 0) {\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }\n  iVar3 = 0;\n  for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {\n    iVar3 = iVar3 + 1;\n  }\n  if (uVar2 != 0) {\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }\n  return uVar2;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00027430(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 0xd0);\n  uVar2 = piVar1[4];\n  if ((int)uVar2 < 0) {\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }\n  iVar3 = 0;\n  for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {\n    iVar3 = iVar3 + 1;\n  }\n  if (uVar2 != 0) {\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }\n  return uVar2;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "piVar1 = *(int **)(param_1 + 0xd0);" (assignment_expression "piVar1 = *(int **)(param_1 + 0xd0)" identifier = (pointer_expression "*(int **)(param_1 + 0xd0)" * (cast_expression "(int **)(param_1 + 0xd0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = piVar1[4];" (assignment_expression "uVar2 = piVar1[4]" identifier = (subscript_expression "piVar1[4]" identifier [ number_literal ])) ;) (if_statement "if ((int)uVar2 < 0) {\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }" if (parenthesized_expression "((int)uVar2 < 0)" ( (binary_expression "(int)uVar2 < 0" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }" { (expression_statement "uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);" (assignment_expression "uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f)" identifier = (call_expression "FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f)" identifier (argument_list "(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f)" ( (binary_expression "uVar2 * -0x400" identifier * number_literal) , (binary_expression "(((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16" (binary_expression "(((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400" (parenthesized_expression "(((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0))" ( (binary_expression "((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)" (parenthesized_expression "((int)uVar2 >> 0x1f)" ( (binary_expression "(int)uVar2 >> 0x1f" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (call_expression "(uint)(uVar2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )))) )) * number_literal) | (binary_expression "-uVar2 >> 0x16" (unary_expression "-uVar2" - identifier) >> number_literal)) , (binary_expression "piVar1[7] + piVar1[6]" (subscript_expression "piVar1[7]" identifier [ number_literal ]) + (subscript_expression "piVar1[6]" identifier [ number_literal ])) , (binary_expression "piVar1[7] + piVar1[6] >> 0x1f" (binary_expression "piVar1[7] + piVar1[6]" (subscript_expression "piVar1[7]" identifier [ number_literal ]) + (subscript_expression "piVar1[6]" identifier [ number_literal ])) >> number_literal) )))) ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (for_statement "for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {\n    iVar3 = iVar3 + 1;\n  }" for ( (assignment_expression "iVar4 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ; (binary_expression "iVar4 != 0" identifier != number_literal) ; (assignment_expression "iVar4 = *(int *)(iVar4 + 0x20)" identifier = (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) ))))) ) (compound_statement "{\n    iVar3 = iVar3 + 1;\n  }" { (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar2 != 0) {\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }" { (expression_statement "iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);" (assignment_expression "iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f)" identifier = (call_expression "FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f)" identifier (argument_list "((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f)" ( (binary_expression "(longlong)iVar3 * 100" (cast_expression "(longlong)iVar3" ( (type_descriptor "longlong" type_identifier) ) identifier) * number_literal) , identifier , (binary_expression "(int)uVar2 >> 0x1f" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar2 = (uint)(0x18 < iVar4);" (assignment_expression "uVar2 = (uint)(0x18 < iVar4)" identifier = (call_expression "(uint)(0x18 < iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x18 < iVar4)" ( (binary_expression "0x18 < iVar4" number_literal < identifier) )))) ;) })) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) )) * LIT) | (binary_expression (unary_expression - IDENT) >> LIT)) , (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) , (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) >> LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * IDENT)) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))) ;) })) (return_statement return IDENT ;) })))
(function_definition "uint __regparm3 FUN_00027430(int param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 0xd0);\n  uVar2 = piVar1[4];\n  if ((int)uVar2 < 0) {\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }\n  iVar3 = 0;\n  for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {\n    iVar3 = iVar3 + 1;\n  }\n  if (uVar2 != 0) {\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }\n  return uVar2;\n}" (type_identifier "uint") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00027430(int param_1)" (identifier "FUN_00027430") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 0xd0);\n  uVar2 = piVar1[4];\n  if ((int)uVar2 < 0) {\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }\n  iVar3 = 0;\n  for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {\n    iVar3 = iVar3 + 1;\n  }\n  if (uVar2 != 0) {\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }\n  return uVar2;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (expression_statement "piVar1 = *(int **)(param_1 + 0xd0);" (assignment_expression "piVar1 = *(int **)(param_1 + 0xd0)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(param_1 + 0xd0)" (* "*") (cast_expression "(int **)(param_1 + 0xd0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xd0)" (( "(") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")"))))) (; ";")) (expression_statement "uVar2 = piVar1[4];" (assignment_expression "uVar2 = piVar1[4]" (identifier "uVar2") (= "=") (subscript_expression "piVar1[4]" (identifier "piVar1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if ((int)uVar2 < 0) {\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }" (if "if") (parenthesized_expression "((int)uVar2 < 0)" (( "(") (binary_expression "(int)uVar2 < 0" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);\n  }" ({ "{") (expression_statement "uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);" (assignment_expression "uVar2 = FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f)" (identifier "uVar2") (= "=") (call_expression "FUN_000a9510(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f)" (identifier "FUN_000a9510") (argument_list "(uVar2 * -0x400,\n                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,\n                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f)" (( "(") (binary_expression "uVar2 * -0x400" (identifier "uVar2") (* "*") (number_literal "-0x400")) (, ",") (binary_expression "(((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16" (binary_expression "(((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400" (parenthesized_expression "(((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0))" (( "(") (binary_expression "((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)" (parenthesized_expression "((int)uVar2 >> 0x1f)" (( "(") (binary_expression "(int)uVar2 >> 0x1f" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (call_expression "(uint)(uVar2 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")))) () ")")) (* "*") (number_literal "-0x400")) (| "|") (binary_expression "-uVar2 >> 0x16" (unary_expression "-uVar2" (- "-") (identifier "uVar2")) (>> ">>") (number_literal "0x16"))) (, ",") (binary_expression "piVar1[7] + piVar1[6]" (subscript_expression "piVar1[7]" (identifier "piVar1") ([ "[") (number_literal "7") (] "]")) (+ "+") (subscript_expression "piVar1[6]" (identifier "piVar1") ([ "[") (number_literal "6") (] "]"))) (, ",") (binary_expression "piVar1[7] + piVar1[6] >> 0x1f" (binary_expression "piVar1[7] + piVar1[6]" (subscript_expression "piVar1[7]" (identifier "piVar1") ([ "[") (number_literal "7") (] "]")) (+ "+") (subscript_expression "piVar1[6]" (identifier "piVar1") ([ "[") (number_literal "6") (] "]"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (for_statement "for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {\n    iVar3 = iVar3 + 1;\n  }" (for "for") (( "(") (assignment_expression "iVar4 = *piVar1" (identifier "iVar4") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar4 = *(int *)(iVar4 + 0x20)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar4 + 0x20)" (* "*") (cast_expression "(int *)(iVar4 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")"))))) () ")") (compound_statement "{\n    iVar3 = iVar3 + 1;\n  }" ({ "{") (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (uVar2 != 0) {\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);\n    uVar2 = (uint)(0x18 < iVar4);\n  }" ({ "{") (expression_statement "iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);" (assignment_expression "iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f)" (identifier "iVar4") (= "=") (call_expression "FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f)" (identifier "FUN_000a9510") (argument_list "((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f)" (( "(") (binary_expression "(longlong)iVar3 * 100" (cast_expression "(longlong)iVar3" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "iVar3")) (* "*") (number_literal "100")) (, ",") (identifier "uVar2") (, ",") (binary_expression "(int)uVar2 >> 0x1f" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar2 = (uint)(0x18 < iVar4);" (assignment_expression "uVar2 = (uint)(0x18 < iVar4)" (identifier "uVar2") (= "=") (call_expression "(uint)(0x18 < iVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x18 < iVar4)" (( "(") (binary_expression "0x18 < iVar4" (number_literal "0x18") (< "<") (identifier "iVar4")) () ")")))) (; ";")) (} "}"))) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))

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

int __regparm3 function_1(type_1 *pPager,int bCommit)

{
  type_2 *pPVar1;
  type_3 *var_4;
  int var_3;
  type_4 var_2;
  
  pPVar1 = pPager->pPCache;
  var_2 = pPVar1->szCache;
  if ((int)var_2 < 0) {
    var_3 = pPVar1->szExtra + pPVar1->szPage;
    var_2 = var_1(var_2 * -0x400,
                     (((int)var_2 >> 0x1f) + (type_4)(var_2 != 0)) * -0x400 | -var_2 >> 0x16,var_3,
                     var_3 >> 0x1f);
  }
  var_3 = 0;
  for (var_4 = pPVar1->pDirty; var_4 != (type_3 *)0x0; var_4 = var_4->pDirtyNext) {
    var_3 = var_3 + 1;
  }
  if (var_2 != 0) {
    var_3 = var_1((type_5)var_3 * 100,var_2,(int)var_2 >> 0x1f);
    var_2 = (type_4)(0x18 < var_3);
  }
  return var_2;
}


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

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

uint __regparm3 MASKED(int param_1)

{
  int *piVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  
  piVar1 = *(int **)(param_1 + 0xd0);
  uVar2 = piVar1[4];
  if ((int)uVar2 < 0) {
    uVar2 = FUN_000a9510(uVar2 * -0x400,
                         (((int)uVar2 >> 0x1f) + (uint)(uVar2 != 0)) * -0x400 | -uVar2 >> 0x16,
                         piVar1[7] + piVar1[6],piVar1[7] + piVar1[6] >> 0x1f);
  }
  iVar3 = 0;
  for (iVar4 = *piVar1; iVar4 != 0; iVar4 = *(int *)(iVar4 + 0x20)) {
    iVar3 = iVar3 + 1;
  }
  if (uVar2 != 0) {
    iVar4 = FUN_000a9510((longlong)iVar3 * 100,uVar2,(int)uVar2 >> 0x1f);
    uVar2 = (uint)(0x18 < iVar4);
  }
  return uVar2;
}

