Lol, exactly match to my hex-rays output:
Code:
void __thiscall PacketWrite_CMSG_AUTH_SESSION(AuthSession *this, CDataStore *data)
{
CDataStore *_data; // edi@1
AuthSession *_this; // esi@1
int size; // ebx@1
_data = data;
_this = this;
CDataStore__PutInt32(data, 0x3000u); // opcode = CMSG_AUTH_SESSION
CDataStore__PutInt8(_data, _this->digest[4]);
CDataStore__PutInt8(_data, _this->digest[8]);
CDataStore__PutInt8(_data, _this->digest[14]);
CDataStore__PutInt8(_data, _this->digest[17]);
CDataStore__PutInt8(_data, _this->unk20[0]);
CDataStore__PutInt8(_data, _this->digest[3]);
CDataStore__PutInt32(_data, _this->unk12);
CDataStore__PutInt8(_data, _this->digest[5]);
CDataStore__PutInt8(_data, _this->unk13[0]);
CDataStore__PutInt8(_data, _this->digest[0]);
CDataStore__PutInt8(_data, _this->digest[10]);
CDataStore__PutInt32(_data, _this->unk19);
CDataStore__PutInt8(_data, _this->digest[12]);
CDataStore__PutInt8(_data, _this->digest[6]);
CDataStore__PutInt32(_data, _this->unk5);
CDataStore__PutInt16(_this->build[0]);
CDataStore__PutInt8(_data, _this->digest[7]);
CDataStore__PutInt8(_data, _this->digest[11]);
CDataStore__PutInt8(_data, _this->digest[16]);
CDataStore__PutInt8(_data, _this->digest[18]);
CDataStore__PutInt8(_data, _this->digest[13]);
CDataStore__PutInt64(_this->UnkUInt64.low, _this->UnkUInt64.high);
CDataStore__PutInt8(_data, _this->digest[15]);
CDataStore__PutInt32(_data, _this->unk4);
CDataStore__PutInt8(_data, _this->digest[9]);
CDataStore__PutInt32(_data, _this->clientSeed);
CDataStore__PutInt8(_data, _this->digest[1]);
CDataStore__PutInt8(_data, _this->digest[2]);
CDataStore__PutInt8(_data, _this->digest[19]);
CDataStore__PutInt32(_data, _this->addonData.m_size);
_this->addonData.m_read = 0;
size = _this->addonData.m_size - _this->addonData.m_read;
CDataStore__GetBytesArray(&_this->addonData, (int)&data, _this->addonData.m_size - _this->addonData.m_read);
CDataStore__PutBytesArray(data, size);
CDataStore__PutCString(_data, _this->accountName);
}