Guest User

Untitled

a guest
Apr 8th, 2017
403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.13 KB | None | 0 0
  1. int __thiscall fb::DbObjectElement::size(fb::DbObjectElement *this)
  2. {
  3.   fb::DbObjectElement *v1; // esi@1
  4.   int v2; // edi@1
  5.   int result; // eax@2
  6.   unsigned int v4; // eax@8
  7.   fb::OutAsciiStream *v5; // eax@16
  8.   fb::Log::Stream f_; // [sp+8h] [bp-140h]@16
  9.   const char *p1; // [sp+138h] [bp-10h]@8
  10.   int v8; // [sp+144h] [bp-4h]@16
  11.  
  12.   v1 = this;
  13.   v2 = *this->m_data & 0x1F;
  14.   switch ( v2 )
  15.   {
  16.     case 0:
  17.       result = 1;
  18.       break;
  19.     case 6:
  20.       result = this->m_payload - this->m_data + 1;
  21.       break;
  22.     case 8:
  23.     case 11:
  24.       result = this->m_payload - this->m_data + 4;
  25.       break;
  26.     case 9:
  27.     case 12:
  28.     case 13:
  29.       result = this->m_payload - this->m_data + 8;
  30.       break;
  31.     case 7:
  32.       result = fb::DbObjectElement::valueStringSize(this) + this->m_payload - this->m_data;
  33.       break;
  34.     case 1:
  35.     case 2:
  36.       result = fb::DbObjectElement::valueObjectSize(this) + this->m_payload - this->m_data;
  37.       break;
  38.     case 19:
  39.       p1 = this->m_payload;
  40.       v4 = fb::decode7Bit32(p1, &p1);
  41.       result = v4 + p1 - v1->m_data;
  42.       break;
  43.     case 16:
  44.     case 20:
  45.       result = this->m_payload - this->m_data + 20;
  46.       break;
  47.     case 4:
  48.     case 31:
  49.       result = this->m_payload - this->m_data;
  50.       break;
  51.     case 5:
  52.       result = this->m_payload - this->m_data + 12;
  53.       break;
  54.     case 14:
  55.       result = this->m_payload - this->m_data + 6;
  56.       break;
  57.     case 10:
  58.     case 21:
  59.       p1 = this->m_payload;
  60.       fb::decode7Bit64(p1, &p1);
  61.       result = p1 - v1->m_data;
  62.       break;
  63.     case 15:
  64.       result = this->m_payload - this->m_data + 16;
  65.       break;
  66.     default:
  67.       if ( fb::Log::c_logFilter & 0x20 )
  68.       {
  69.         fb::Log::Stream::Stream(&f_, &stru_39DB74C, s_logContext);
  70.         v8 = 0;
  71.         v5 = fb::operator<<((fb::OutAsciiStream *)&f_.vfptr, "Unknown element type: ");
  72.         fb::operator<<(v5, v2);
  73.         fb::Log::Stream::process(&f_);
  74.         v8 = -1;
  75.         fb::Log::Stream::~Stream(&f_);
  76.       }
  77.       if ( fb::Log::shouldBreak() )
  78.         __debugbreak();
  79.       result = -1;
  80.       break;
  81.   }
  82.   return result;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment