Advertisement
Adrianolls

Untitled

Oct 23rd, 2018
633
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 14.09 KB | None | 0 0
  1. void __cdecl GNET::GetFactionDetail::Server(GetFactionDetail *const this, Rpc::Data *argument, Rpc::Data *result)
  2. {
  3.   Octets v3; // ST68_8@1
  4.   const Octets *v4; // ST74_4@1
  5.   FactionId *v5; // ST44_4@1
  6.   Marshal::OctetsStream *v6; // eax@1
  7.   const Octets *v7; // eax@1
  8.   FactionDetailRes *v8; // ecx@2
  9.   int v9; // edx@2
  10.   GMember *v10; // eax@5
  11.   Octets *v11; // ST78_4@5
  12.   const Octets *v12; // eax@5
  13.   unsigned int v13; // ST70_4@8
  14.   GMember *v14; // eax@8
  15.   const Marshal::OctetsStream *v15; // eax@10
  16.   GMember *v16; // eax@13
  17.   int v17; // ST74_4@14
  18.   int v18; // ST70_4@14
  19.   GMember *v19; // eax@14
  20.   GMember *v20; // eax@14
  21.   FMemberInfo *v21; // eax@26
  22.   Octets *v22; // ST78_4@26
  23.   const Octets *v23; // eax@26
  24.   FMemberInfo *v24; // eax@27
  25.   FMemberInfo *v25; // STA0_4@27
  26.   FMemberInfo *v26; // eax@27
  27.   Octets *v27; // ST78_4@31
  28.   unsigned int v28; // ST64_4@31
  29.   Marshal::OctetsStream *v29; // eax@31
  30.   const Octets *v30; // eax@31
  31.   bool v31; // ST9F_1@31
  32.   GMember v32; // [sp-10h] [bp-378h]@0
  33.   GFactionRelation relation; // [sp+30h] [bp-338h]@32
  34.   GetFactionDetail::Server::faction_contrib *pContrib; // [sp+88h] [bp-2E0h]@28
  35.   FMemberInfo member; // [sp+90h] [bp-2D8h]@5
  36.   DbException e; // [sp+D8h] [bp-290h]@3
  37.   __normal_iterator<GNET::FMemberInfo*,std::vector<GNET::FMemberInfo,std::allocator<GNET::FMemberInfo> > > ie; // [sp+DCh] [bp-28Ch]@3
  38.   GFactionExtendData exdata; // [sp+E0h] [bp-288h]@2
  39.   int masterid; // [sp+108h] [bp-260h]@1
  40.   bool needsync; // [sp+10Fh] [bp-259h]@1
  41.   GFactionExtend ext; // [sp+110h] [bp-258h]@1
  42.   GRoleStatus status; // [sp+130h] [bp-238h]@1
  43.   Marshal::OctetsStream key_0; // [sp+270h] [bp-F8h]@1
  44.   Marshal::OctetsStream value; // [sp+280h] [bp-E8h]@1
  45.   Marshal::OctetsStream os; // [sp+290h] [bp-D8h]@1
  46.   GUserFaction user; // [sp+2A0h] [bp-C8h]@1
  47.   StorageEnv::Storage *prelation; // [sp+2D0h] [bp-98h]@1
  48.   StorageEnv::Storage *pstatus; // [sp+2D4h] [bp-94h]@1
  49.   StorageEnv::Storage *puser; // [sp+2D8h] [bp-90h]@1
  50.   StorageEnv::Storage *pinfo; // [sp+2DCh] [bp-8Ch]@1
  51.   StorageEnv::Transaction txn; // [sp+2E0h] [bp-88h]@1
  52.   GMember l_master; // [sp+2F0h] [bp-78h]@1
  53.   GFactionInfo info; // [sp+300h] [bp-68h]@1
  54.   Marshal::OctetsStream key; // [sp+340h] [bp-28h]@1
  55.   FactionDetailRes *res; // [sp+358h] [bp-10h]@1
  56.   FactionId *arg; // [sp+35Ch] [bp-Ch]@1
  57.  
  58.   arg = argument;
  59.   res = result;
  60.   GNET::Marshal::OctetsStream::OctetsStream(&key);
  61.   GNET::GMember::GMember(&l_master, 0, 0);
  62.   v32.baseclass_0.baseclass_0._vptr.Marshal = &l_master;
  63.   GNET::Octets::Octets(&txn, 0);
  64.   GNET::GFactionInfo::GFactionInfo(&info, 0, &txn, 0, v32);
  65.   GNET::Octets::~Octets(&txn);
  66.   GNET::GMember::~GMember(&l_master);
  67.   GNET::Log::trace("GetFactionDetail, fid=%d.\n", arg->fid);
  68.   pinfo = WDB::StorageEnv::GetStorage("factioninfo");
  69.   puser = WDB::StorageEnv::GetStorage("userfaction");
  70.   pstatus = WDB::StorageEnv::GetStorage("status");
  71.   prelation = WDB::StorageEnv::GetStorage("factionrelation");
  72.   WDB::StorageEnv::Transaction::Transaction(&txn);
  73.   GNET::Octets::Octets(&l_master, 0);
  74.   GNET::Octets::Octets(&os.data, 0);
  75.   v3.base = &os;
  76.   GNET::Octets::Octets(&value.data, 0);
  77.   v3._vptr.Octets = &value;
  78.   GNET::Octets::Octets(&key_0.data, 0);
  79.   GNET::GUserFaction::GUserFaction(&user, 0, &key_0.data, 0, 0, 0, v3, &l_master, v4);
  80.   GNET::Octets::~Octets(&key_0.data);
  81.   GNET::Octets::~Octets(&value.data);
  82.   GNET::Octets::~Octets(&os.data);
  83.   GNET::Octets::~Octets(&l_master);
  84.   GNET::Octets::Octets(&key_0.data, 0);
  85.   GNET::Octets::Octets(&value.data, 0);
  86.   GNET::Octets::Octets(&os.data, 0);
  87.   GNET::Octets::Octets(&l_master, 0);
  88.   GNET::GRoleStatus::GRoleStatus(
  89.     &status,
  90.     1,
  91.     0,
  92.     0,
  93.     0,
  94.     0,
  95.     0,
  96.     0,
  97.     0,
  98.     0.0,
  99.     0.0,
  100.     0.0,
  101.     0,
  102.     0,
  103.     0,
  104.     0,
  105.     0,
  106.     0,
  107.     0,
  108.     0,
  109.     0,
  110.     0,
  111.     0,
  112.     &l_master,
  113.     &os.data,
  114.     &value.data,
  115.     &key_0.data,
  116.     0,
  117.     0);
  118.   GNET::Octets::~Octets(&l_master);
  119.   GNET::Octets::~Octets(&os.data);
  120.   GNET::Octets::~Octets(&value.data);
  121.   GNET::Octets::~Octets(&key_0.data);
  122.   GNET::Octets::Octets(&key_0.data);
  123.   GNET::GFactionExtend::GFactionExtend(&ext, 0, 0, 0, &key_0.data, 0, 0);
  124.   GNET::Octets::~Octets(&key_0.data);
  125.   needsync = 0;
  126.   masterid = 0;
  127.   v5 = arg;
  128.   GNET::Marshal::OctetsStream::OctetsStream(&os);
  129.   v6 = GNET::Marshal::OctetsStream::operator<<(&os, &v5->baseclass_0.baseclass_0);
  130.   v7 = GNET::Marshal::OctetsStream::operator GNET::Octets &(v6);
  131.   WDB::StorageEnv::Storage::find(&value.data, pinfo, v7, &txn);
  132.   GNET::Marshal::OctetsStream::OctetsStream(&key_0, &value.data);
  133.   GNET::Marshal::OctetsStream::operator>>(&key_0, &info.baseclass_0.baseclass_0);
  134.   GNET::Marshal::OctetsStream::~OctetsStream(&key_0);
  135.   GNET::Octets::~Octets(&value.data);
  136.   GNET::Marshal::OctetsStream::~OctetsStream(&os);
  137.   res->value.fid = info.fid;
  138.   GNET::Octets::swap(&res->value.name, &info.name);
  139.   res->value.level = info.level;
  140.   res->value.master = info.master.rid;
  141.   GNET::Octets::swap(&res->value.announce, &info.announce);
  142.   if ( GNET::Octets::size(&info.extenddata) )
  143.   {
  144.     GNET::GFactionExtendData::GFactionExtendData(&exdata, 0LL, 0, 0, 0);
  145.     GNET::Marshal::OctetsStream::OctetsStream(&key_0, &info.extenddata);
  146.     GNET::Marshal::OctetsStream::operator>>(&key_0, &exdata.baseclass_0.baseclass_0);
  147.     GNET::Marshal::OctetsStream::~OctetsStream(&key_0);
  148.     v8 = res;
  149.     v9 = HIDWORD(exdata.unifid);
  150.     LODWORD(res->value.unifid) = exdata.unifid;
  151.     HIDWORD(v8->value.unifid) = v9;
  152.     GNET::GFactionExtendData::~GFactionExtendData(&exdata);
  153.   }
  154.   GNET::RpcDataVector<GNET::GMember>::begin(&ie, &info.member);
  155.   GNET::RpcDataVector<GNET::GMember>::end(&e, &info.member);
  156.   while ( __gnu_cxx::operator!=<GNET::GMember *,std::vector<GNET::GMember,std::allocator<GNET::GMember>>>(&ie, &e) )
  157.   {
  158.     GNET::Octets::Octets(&key_0.data);
  159.     GNET::Octets::Octets(&value.data);
  160.     GNET::FMemberInfo::FMemberInfo(&member, 0, 0, 0, 0, 0, 0, &value.data, &key_0.data, 0, 0, -1, 0, 0, 0);
  161.     GNET::Octets::~Octets(&value.data);
  162.     GNET::Octets::~Octets(&key_0.data);
  163.     member.roleid = __gnu_cxx::__normal_iterator<GNET::GMember *,std::vector<GNET::GMember,std::allocator<GNET::GMember>>>::operator*(&ie)->rid;
  164.     GNET::Marshal::OctetsStream::OctetsStream(&key_0);
  165.     v10 = __gnu_cxx::__normal_iterator<GNET::GMember *,std::vector<GNET::GMember,std::allocator<GNET::GMember>>>::operator*(&ie);
  166.     GNET::Marshal::OctetsStream::operator<<(&key_0, v10->rid);
  167.     GNET::Marshal::OctetsStream::OctetsStream(&value);
  168.     v11 = GNET::Marshal::OctetsStream::operator GNET::Octets &(&value);
  169.     v12 = GNET::Marshal::OctetsStream::operator GNET::Octets &(&key_0);
  170.     if ( WDB::StorageEnv::Storage::find(puser, v12, v11, &txn) )
  171.     {
  172.       GNET::Marshal::OctetsStream::operator>>(&value, &user.baseclass_0.baseclass_0);
  173.       if ( user.fid == info.fid )
  174.       {
  175.         member.occupation = user.cls;
  176.         member.froleid = user.role;
  177.         GNET::Octets::swap(&member.name, &user.name);
  178.         GNET::Octets::swap(&member.nickname, &user.nickname);
  179.         member.delayexpel = 0;
  180.         member.expeltime = 0;
  181.         if ( GNET::Octets::size(&user.delayexpel) )
  182.         {
  183.           GNET::Marshal::OctetsStream::OctetsStream(&os, &user.delayexpel);
  184.           v15 = GNET::Marshal::OctetsStream::operator>>(&os, &member.delayexpel);
  185.           GNET::Marshal::OctetsStream::operator>>(v15, &member.expeltime);
  186.           GNET::Marshal::OctetsStream::~OctetsStream(&os);
  187.         }
  188.         if ( GNET::Octets::size(&user.extend) )
  189.         {
  190.           GNET::Marshal::OctetsStream::OctetsStream(&os, &user.extend);
  191.           GNET::Marshal::OctetsStream::operator>>(&os, &ext.baseclass_0.baseclass_0);
  192.           member.loginday = ext.logintime / 86400;
  193.           GNET::Marshal::OctetsStream::~OctetsStream(&os);
  194.         }
  195.         GNET::RpcDataVector<GNET::FMemberInfo>::add(&res->value.member, &member);
  196.         v16 = __gnu_cxx::__normal_iterator<GNET::GMember *,std::vector<GNET::GMember,std::allocator<GNET::GMember>>>::operator->(&ie);
  197.         if ( v16->role != user.role )
  198.         {
  199.           needsync = 1;
  200.           v17 = user.role;
  201.           v18 = __gnu_cxx::__normal_iterator<GNET::GMember *,std::vector<GNET::GMember,std::allocator<GNET::GMember>>>::operator->(&ie)->role;
  202.           v19 = __gnu_cxx::__normal_iterator<GNET::GMember *,std::vector<GNET::GMember,std::allocator<GNET::GMember>>>::operator->(&ie);
  203.           GNET::Log::log(
  204.             3,
  205.             "GetFactionDetail, inconsistent headship fid=%d rid=%d oldrole=%d newrole=%d",
  206.             arg->fid,
  207.             v19->rid,
  208.             v18,
  209.             v17);
  210.           v20 = __gnu_cxx::__normal_iterator<GNET::GMember *,std::vector<GNET::GMember,std::allocator<GNET::GMember>>>::operator->(&ie);
  211.           v20->role = user.role;
  212.         }
  213.         if ( info.master.rid == user.rid && user.role == 2 )
  214.           masterid = user.rid;
  215.         GNET::Marshal::OctetsStream::~OctetsStream(&value);
  216.         GNET::Marshal::OctetsStream::~OctetsStream(&key_0);
  217.         GNET::FMemberInfo::~FMemberInfo(&member);
  218.       }
  219.       else
  220.       {
  221.         v13 = user.fid;
  222.         v14 = __gnu_cxx::__normal_iterator<GNET::GMember *,std::vector<GNET::GMember,std::allocator<GNET::GMember>>>::operator->(&ie);
  223.         GNET::Log::log(3, "GetFactionDetail, invalid member fid=%d rid=%d realfid=%d", arg->fid, v14->rid, v13);
  224.         GNET::Marshal::OctetsStream::~OctetsStream(&value);
  225.         GNET::Marshal::OctetsStream::~OctetsStream(&key_0);
  226.         GNET::FMemberInfo::~FMemberInfo(&member);
  227.       }
  228.     }
  229.     else
  230.     {
  231.       GNET::Marshal::OctetsStream::~OctetsStream(&value);
  232.       GNET::Marshal::OctetsStream::~OctetsStream(&key_0);
  233.       GNET::FMemberInfo::~FMemberInfo(&member);
  234.     }
  235.     __gnu_cxx::__normal_iterator<GNET::GMember *,std::vector<GNET::GMember,std::allocator<GNET::GMember>>>::operator++(&ie);
  236.   }
  237.   if ( (needsync || !masterid) && GNET::RpcDataVector<GNET::GMember>::size(&info.member) )
  238.     GNET::GetFactionDetail::SyncFactionData(this, arg->fid, &res->value.member, pinfo, puser, &txn);
  239.   GNET::RpcDataVector<GNET::FMemberInfo>::begin(&e, &res->value.member);
  240.   GNET::RpcDataVector<GNET::FMemberInfo>::end(&ie, &res->value.member);
  241.   while ( __gnu_cxx::operator!=<GNET::FMemberInfo *,std::vector<GNET::FMemberInfo,std::allocator<GNET::FMemberInfo>>>(
  242.             &e,
  243.             &ie) )
  244.   {
  245.     GNET::Marshal::OctetsStream::OctetsStream(&key_0);
  246.     v21 = __gnu_cxx::__normal_iterator<GNET::FMemberInfo *,std::vector<GNET::FMemberInfo,std::allocator<GNET::FMemberInfo>>>::operator->(&e);
  247.     GNET::Marshal::OctetsStream::operator<<(&key_0, v21->roleid);
  248.     GNET::Marshal::OctetsStream::OctetsStream(&value);
  249.     v22 = GNET::Marshal::OctetsStream::operator GNET::Octets &(&value);
  250.     v23 = GNET::Marshal::OctetsStream::operator GNET::Octets &(&key_0);
  251.     if ( WDB::StorageEnv::Storage::find(pstatus, v23, v22, &txn) )
  252.     {
  253.       GNET::Marshal::OctetsStream::operator>>(&value, &status.baseclass_0.baseclass_0);
  254.       v24 = __gnu_cxx::__normal_iterator<GNET::FMemberInfo *,std::vector<GNET::FMemberInfo,std::allocator<GNET::FMemberInfo>>>::operator->(&e);
  255.       v24->level = status.level;
  256.       v25 = __gnu_cxx::__normal_iterator<GNET::FMemberInfo *,std::vector<GNET::FMemberInfo,std::allocator<GNET::FMemberInfo>>>::operator->(&e);
  257.       v25->reincarn_times = GNET::GetRoleReincarnationTimes(&status.reincarnation_data);
  258.       v26 = __gnu_cxx::__normal_iterator<GNET::FMemberInfo *,std::vector<GNET::FMemberInfo,std::allocator<GNET::FMemberInfo>>>::operator->(&e);
  259.       v26->reputation = status.reputation;
  260.       if ( GNET::Octets::size(&status.faction_contrib) == 12 )
  261.       {
  262.         pContrib = GNET::Octets::begin(&status.faction_contrib);
  263.         __gnu_cxx::__normal_iterator<GNET::FMemberInfo *,std::vector<GNET::FMemberInfo,std::allocator<GNET::FMemberInfo>>>::operator->(&e)->contrib = pContrib->cumulate_contrib;
  264.       }
  265.     }
  266.     else
  267.     {
  268.       __gnu_cxx::__normal_iterator<GNET::FMemberInfo *,std::vector<GNET::FMemberInfo,std::allocator<GNET::FMemberInfo>>>::operator->(&e)->level = 1;
  269.     }
  270.     GNET::Marshal::OctetsStream::~OctetsStream(&value);
  271.     GNET::Marshal::OctetsStream::~OctetsStream(&key_0);
  272.     __gnu_cxx::__normal_iterator<GNET::FMemberInfo *,std::vector<GNET::FMemberInfo,std::allocator<GNET::FMemberInfo>>>::operator++(&e);
  273.   }
  274.   GNET::Marshal::OctetsStream::OctetsStream(&key_0);
  275.   v27 = GNET::Marshal::OctetsStream::operator GNET::Octets &(&key_0);
  276.   v28 = arg->fid;
  277.   GNET::Marshal::OctetsStream::OctetsStream(&value);
  278.   v29 = GNET::Marshal::OctetsStream::operator<<(&value, v28);
  279.   v30 = GNET::Marshal::OctetsStream::operator GNET::Octets &(v29);
  280.   v31 = WDB::StorageEnv::Storage::find(prelation, v30, v27, &txn);
  281.   GNET::Marshal::OctetsStream::~OctetsStream(&value);
  282.   if ( v31 )
  283.   {
  284.     GNET::RpcDataVector<GNET::GFactionRelationApply>::RpcDataVector(&os);
  285.     GNET::RpcDataVector<GNET::GFactionHostile>::RpcDataVector(&l_master);
  286.     GNET::RpcDataVector<GNET::GFactionAlliance>::RpcDataVector(&exdata);
  287.     GNET::GFactionRelation::GFactionRelation(&relation, 0, 0, &exdata, &l_master, &os, 0, 0, 0, 0, 0);
  288.     GNET::RpcDataVector<GNET::GFactionAlliance>::~RpcDataVector(&exdata);
  289.     GNET::RpcDataVector<GNET::GFactionHostile>::~RpcDataVector(&l_master);
  290.     GNET::RpcDataVector<GNET::GFactionRelationApply>::~RpcDataVector(&os);
  291.     GNET::Marshal::OctetsStream::operator>>(&key_0, &relation.baseclass_0.baseclass_0);
  292.     res->value.last_op_time = relation.last_op_time;
  293.     GNET::RpcDataVector<GNET::GFactionAlliance>::swap(&res->value.alliance, &relation.alliance);
  294.     GNET::RpcDataVector<GNET::GFactionHostile>::swap(&res->value.hostile, &relation.hostile);
  295.     GNET::RpcDataVector<GNET::GFactionRelationApply>::swap(&res->value.apply, &relation.apply);
  296.     GNET::GFactionRelation::~GFactionRelation(&relation);
  297.   }
  298.   res->retcode = 0;
  299.   GNET::Marshal::OctetsStream::~OctetsStream(&key_0);
  300.   GNET::GFactionExtend::~GFactionExtend(&ext);
  301.   GNET::GRoleStatus::~GRoleStatus(&status);
  302.   GNET::GUserFaction::~GUserFaction(&user);
  303.   WDB::StorageEnv::Transaction::~Transaction(&txn);
  304.   GNET::GFactionInfo::~GFactionInfo(&info);
  305.   GNET::Marshal::OctetsStream::~OctetsStream(&key);
  306. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement