1. // bad sp value at call has been detected, the output may be wrong!
  2. // positive sp value has been detected, the output may be wrong!
  3. unsigned __int64 __fastcall sub_1421086C0(
  4. __int64 a1,
  5. __int64 a2,
  6. __int64 a3,
  7. __int64 a4,
  8. __int64 a5,
  9. __int64 a6,
  10. __int64 a7,
  11. __int64 a8,
  12. __int64 a9,
  13. __int64 a10,
  14. __int64 a11,
  15. __int64 a12,
  16. __int64 a13,
  17. __int64 a14,
  18. __int64 a15,
  19. __int64 a16,
  20. __int64 a17,
  21. __int64 a18,
  22. __int64 a19,
  23. __int64 a20,
  24. __int64 a21,
  25. __int64 a22,
  26. __int64 a23,
  27. __int64 a24,
  28. __int64 a25,
  29. __int64 a26,
  30. __int64 a27,
  31. __int64 a28,
  32. __int64 a29,
  33. __int64 a30,
  34. __int64 a31,
  35. __int64 a32,
  36. __int64 a33,
  37. __int64 a34,
  38. __int64 a35,
  39. __int64 a36,
  40. __int64 a37,
  41. __int64 a38,
  42. __int64 a39,
  43. __int64 a40,
  44. __int64 a41,
  45. __int64 a42,
  46. __int64 a43,
  47. __int64 a44,
  48. __int64 a45,
  49. __int64 a46,
  50. __int64 a47,
  51. __int64 a48,
  52. __int64 a49,
  53. __int64 a50,
  54. __int64 a51,
  55. __int64 a52,
  56. __int64 a53,
  57. __int64 a54,
  58. __int64 a55,
  59. __int64 a56,
  60. __int64 a57,
  61. __int64 a58,
  62. __int64 a59,
  63. __int64 a60,
  64. __int64 a61,
  65. __int64 a62,
  66. __int64 a63)
  67. {
  68. int v66; // esi
  69. unsigned int v67; // ebx
  70. __int64 v68; // rcx
  71. unsigned __int64 result; // rax
  72. int v70; // [rsp-88DCh] [rbp-8924h] BYREF
  73. __int16 v71; // [rsp-88C8h] [rbp-8910h]
  74. v67 = a1;
  75. if ( !(unsigned int)((__int64 (__fastcall *)(__int64, __int64, int *))sub_142116B90)(a1, 1i64, &v70) )
  76. JUMPOUT(0x142108721i64);
  77. v68 = 65531i64;
  78. v71 = v71 & 0xFFF9 | 2;
  79. if ( __SETP__(v71, 0) || !__SETP__(-1, 0) )
  80. JUMPOUT(0x142108C51i64);
  81. result = __rdtsc();
  82. result = (unsigned int)result;
  83. if ( v67 < 0x33B9CFF9 )
  84. {
  85. if ( __SETP__(v67, 867815417) )
  86. {
  87. LOBYTE(v68) = -89;
  88. *(_DWORD *)(v68 - 2078339328) += v66 + 207627133;
  89. JUMPOUT(0x142108C5Bi64);
  90. }
  91. JUMPOUT(0x1421230BDi64);
  92. }
  93. if ( v67 < 0x33B9CFF9 && v67 != 867815417 )
  94. JUMPOUT(0x142127D81i64);
  95. *(_BYTE *)((unsigned int)result + 3i64) -= 5;
  96. return result;
  97. }