1. char __thiscall PH_SMSG_ROLE_POLL_BEGIN(void *this, int a2, int a3)
  2. {
  3. char result; // al@1
  4. int v4; // edi@1
  5. SMSG_ROLE_POLL_BEGIN_struct *v5; // esi@1
  6. unsigned __int8 v6; // al@1
  7. unsigned int v7; // ecx@1
  8. unsigned int v8; // ecx@1
  9. unsigned int v9; // ecx@1
  10. unsigned int v10; // ecx@1
  11. unsigned int v11; // ecx@1
  12. unsigned int v12; // edx@1
  13. unsigned __int8 v13; // [sp+Fh] [bp-1h]@1
  14. v4 = a2;
  15. v5 = (SMSG_ROLE_POLL_BEGIN_struct *)this;
  16. v13 = 0;
  17. CDataStore_GetInt8(a2, (int)&v13);
  18. v6 = 2 * v13;
  19. v5->guid[1] = (unsigned int)v13 >> 7;
  20. v7 = (unsigned int)v6 >> 7;
  21. v6 *= 2;
  22. v5->guid[5] = v7;
  23. v8 = (unsigned int)v6 >> 7;
  24. v6 *= 2;
  25. v5->guid[7] = v8;
  26. v9 = (unsigned int)v6 >> 7;
  27. v6 *= 2;
  28. v5->guid[3] = v9;
  29. v10 = (unsigned int)v6 >> 7;
  30. v6 *= 2;
  31. v5->guid[2] = v10;
  32. v11 = v6;
  33. v6 *= 2;
  34. v11 >>= 7;
  35. v12 = (unsigned int)v6 >> 7;
  36. result = (unsigned __int8)(2 * v6) >> 7;
  37. v5->guid[4] = v11;
  38. v5->guid[0] = v12;
  39. v5->guid[6] = result;
  40. if ( (_BYTE)v11 )
  41. {
  42. BYTE3(a2) = 0;
  43. result = CDataStore_GetInt8(v4, (int)((char *)&a2 + 3));
  44. v5->guid[4] ^= BYTE3(a2);
  45. }
  46. if ( v5->guid[7] )
  47. {
  48. BYTE3(a2) = 0;
  49. result = CDataStore_GetInt8(v4, (int)((char *)&a2 + 3));
  50. v5->guid[7] ^= BYTE3(a2);
  51. }
  52. if ( v5->guid[0] )
  53. {
  54. BYTE3(a2) = 0;
  55. CDataStore_GetInt8(v4, (int)((char *)&a2 + 3));
  56. result = BYTE3(a2);
  57. v5->guid[0] ^= BYTE3(a2);
  58. }
  59. if ( v5->guid[5] )
  60. {
  61. BYTE3(a2) = 0;
  62. result = CDataStore_GetInt8(v4, (int)((char *)&a2 + 3));
  63. v5->guid[5] ^= BYTE3(a2);
  64. }
  65. if ( v5->guid[1] )
  66. {
  67. BYTE3(a2) = 0;
  68. result = CDataStore_GetInt8(v4, (int)((char *)&a2 + 3));
  69. v5->guid[1] ^= BYTE3(a2);
  70. }
  71. if ( v5->guid[6] )
  72. {
  73. BYTE3(a2) = 0;
  74. CDataStore_GetInt8(v4, (int)((char *)&a2 + 3));
  75. result = BYTE3(a2);
  76. v5->guid[6] ^= BYTE3(a2);
  77. }
  78. if ( v5->guid[2] )
  79. {
  80. BYTE3(a2) = 0;
  81. result = CDataStore_GetInt8(v4, (int)((char *)&a2 + 3));
  82. v5->guid[2] ^= BYTE3(a2);
  83. }
  84. if ( v5->guid[3] )
  85. {
  86. BYTE3(a2) = 0;
  87. result = CDataStore_GetInt8(v4, (int)((char *)&a2 + 3));
  88. v5->guid[3] ^= BYTE3(a2);
  89. }
  90. return result;
  91. }