1. int __cdecl Script_Screenshot()
  2. {
  3. int v0; // eax@1
  4. v0 = ClientServices::GetClientStamp();
  5. ScrnScreenshot(CGlueMgr::HandleScreenshot, v0, 88, 0, 0, 0);
  6. return 0;
  7. }
  8. int __cdecl ScrnScreenshot(int a1, int a2, int a3, int a4, int a5, int a6)
  9. {
  10. int result; // eax@1
  11. s_captureScreen = a1;
  12. s_pWatermarkData = a2;
  13. s_uWatermarkDataBytes = a3;
  14. s_screenshotFolder = a4;
  15. *(_DWORD *)s_screenshotNameOverride = a5;
  16. result = a6;
  17. s_depthNameOverride = a6;
  18. return result;
  19. }
  20. int __cdecl ClientServices::GetClientStamp()
  21. {
  22. void *v0; // esi@1
  23. const char *v1; // ebx@1
  24. int v2; // ecx@4
  25. int result; // eax@5
  26. char v4[4]; // [sp+14h] [bp-24h]@4
  27. int v5; // [sp+18h] [bp-20h]@8
  28. int v6; // [sp+1Ch] [bp-1Ch]@8
  29. int v7; // [sp+20h] [bp-18h]@8
  30. int v8; // [sp+24h] [bp-14h]@8
  31. int v9; // [sp+28h] [bp-10h]@8
  32. int v10; // [sp+2Ch] [bp-Ch]@1
  33. v0 = __stack_chk_guard_ptr;
  34. v10 = *(_DWORD *)__stack_chk_guard_ptr;
  35. v1 = 0;
  36. if ( ClientServices::s_accountName )
  37. v1 = &ClientServices::s_accountName;
  38. if ( ClientServices::m_selectRealmInfoValid )
  39. {
  40. WowTime::WowEncodeTime(v4, LODWORD(g_clientGameTime_ptr));
  41. memset(ClientServices::m_ClientStamp, 0, 0x58u);
  42. if ( v1 )
  43. {
  44. strcpy(ClientServices::m_ClientStamp, v1);
  45. ClientServices::m_ClientStamp[64] = v4[0];
  46. ClientServices::m_ClientStamp[65] = v4[1];
  47. ClientServices::m_ClientStamp[66] = v4[2];
  48. ClientServices::m_ClientStamp[67] = v4[3];
  49. v5 = dword_177FA08;
  50. v6 = dword_177FA0C;
  51. v7 = dword_177FA10;
  52. v8 = dword_177FA14;
  53. v9 = dword_177FA18;
  54. SockAddr::Normalize(&v5);
  55. *(_DWORD *)&ClientServices::m_ClientStamp[68] = v5;
  56. *(_DWORD *)&ClientServices::m_ClientStamp[72] = v6;
  57. *(_DWORD *)&ClientServices::m_ClientStamp[76] = v7;
  58. *(_DWORD *)&ClientServices::m_ClientStamp[80] = v8;
  59. ClientServices::m_ClientStamp[84] = 0;
  60. ClientServices::m_ClientStamp[85] = 0xFFu;
  61. ClientServices::m_ClientStamp[86] = 0x3Fu;
  62. ClientServices::m_ClientStamp[87] = 0xFu;
  63. if ( v9 == 3 && v5 )
  64. SMemFree(v5);
  65. v5 = 0;
  66. v6 = 0;
  67. v7 = 0;
  68. v8 = 0;
  69. v9 = 0;
  70. }
  71. }
  72. else
  73. {
  74. WowTime::WowEncodeTime(v4, LODWORD(g_clientGameTime_ptr));
  75. memset(ClientServices::m_ClientStamp, 0, 0x58u);
  76. }
  77. result = (int)ClientServices::m_ClientStamp;
  78. if ( *(_DWORD *)v0 != v10 )
  79. __stack_chk_fail(v2);
  80. return result;
  81. }