Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. signed int __cdecl sub_899A40(int a1, int a2, int a3)
  2. {
  3. int i; // ebx@1
  4. int *v4; // esi@1
  5. int v5; // edx@3
  6. int v6; // edx@4
  7. int v7; // edi@6
  8. int v8; // eax@8
  9. char *v10; // edx@10
  10. int v11; // ecx@11
  11. int v12; // eax@14
  12. int v13; // esi@14
  13. unsigned int v14; // edx@14
  14. unsigned int v15; // ebx@15
  15. unsigned int v16; // edx@17
  16. int v17; // ecx@17
  17. int v18; // eax@17
  18. int v19; // eax@20
  19. int *v20; // [sp+Ch] [bp-4h]@14
  20. int v21; // [sp+1Ch] [bp+Ch]@3
  21. unsigned int v22; // [sp+20h] [bp+10h]@14
  22.  
  23. i = a1;
  24. v4 = (int *)a2;
  25. if ( *(_DWORD *)(a2 + 8) != 6 )
  26. v4 = (int *)((int (__cdecl *)(int, int))loc_899ED0)(a1, a2);
  27. v5 = *(_DWORD *)(a1 + 28);
  28. v21 = *v4;
  29. if ( v5 == *(_DWORD *)(a1 + 36) )
  30. {
  31. v6 = ((int (__cdecl *)(int))loc_7A99C0)(a1);
  32. }
  33. else
  34. {
  35. v6 = v5 + 24;
  36. *(_DWORD *)(a1 + 28) = v6;
  37. }
  38. v7 = a3;
  39. *(_DWORD *)(v6 + 4) = v4;
  40. *(_DWORD *)v6 = v4 + 4;
  41. *(_DWORD *)(v6 + 12) = *(_DWORD *)(a1 + 32) + 16 * *(_BYTE *)(v21 + 8);
  42. *(_DWORD *)(v6 + 20) = 0;
  43. *(_DWORD *)(v6 + 16) = a3;
  44. *(_DWORD *)(a1 + 12) = v4 + 4;
  45. if ( *(_DWORD *)(a1 + 16) - *(_DWORD *)(a1 + 32) <= 16 * *(_BYTE *)(v21 + 8) )
  46. sub_7A9A20(a1, *(_BYTE *)(v21 + 8));
  47. v8 = v21 + 20;
  48. if ( !*(_BYTE *)(v21 + 6) )
  49. {
  50. *(_DWORD *)(*(_DWORD *)(a1 + 28) + 8) = *(_DWORD *)v8 - v8 + 12 - *(_DWORD *)(*(_DWORD *)v8 - v8 + 12);
  51. return 0;
  52. }
  53. v10 = (char *)(v8 ^ *(_DWORD *)v8);
  54. if ( v10 - 680097491 >= (char *)&off_1241D7C[18] + 3 )
  55. {
  56. v11 = 0;
  57. }
  58. else
  59. {
  60. v11 = ((int (__cdecl *)(int))v10)(a1);
  61. if ( v11 < 0 )
  62. return 2;
  63. }
  64. v12 = *(_DWORD *)(a1 + 28);
  65. v13 = *(_DWORD *)(v12 + 4);
  66. v20 = (int *)(v12 - 24);
  67. v14 = *(_DWORD *)(a1 + 32);
  68. v22 = *(_DWORD *)(a1 + 32);
  69. if ( v7 )
  70. {
  71. v15 = *(_DWORD *)(a1 + 32) - 16 * v11;
  72. do
  73. {
  74. if ( v15 >= v14 )
  75. break;
  76. v16 = v15;
  77. v17 = v13;
  78. v15 += 16;
  79. v13 += 16;
  80. *(_DWORD *)v17 = *(_DWORD *)v16;
  81. *(_DWORD *)(v17 + 4) = *(_DWORD *)(v16 + 4);
  82. v18 = *(_DWORD *)(v16 + 8);
  83. v14 = v22;
  84. *(_DWORD *)(v17 + 8) = v18;
  85. --v7;
  86. }
  87. while ( v7 );
  88. for ( i = a1; v7 > 0; v13 += 16 )
  89. {
  90. --v7;
  91. *(_DWORD *)(v13 + 8) = 0;
  92. }
  93. }
  94. *(_DWORD *)(i + 28) = v20;
  95. v19 = *v20;
  96. *(_DWORD *)(i + 32) = v13;
  97. *(_DWORD *)(i + 12) = v19;
  98. return 1;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement