CStage::OnSetField

mail@pastecode.io avatar
unknown
c_cpp
a year ago
11 kB
6
Indexable
Never
char __userpurge CStage::OnSetField@<al>(int a1@<ebx>, int a2@<ebp>, int a3@<edi>, int a4@<esi>, int a5@<ecx>, int a6)
{
  int v6; // esi
  int v7; // edi
  int v8; // ecx
  unsigned __int8 v9; // al
  int v10; // eax
  _DWORD *CharacterData; // eax
  int v12; // eax
  __int16 v13; // ax
  unsigned __int8 v14; // al
  unsigned int *v15; // eax
  void **v16; // eax
  int v17; // eax
  char v18; // cl
  int v19; // eax
  int v20; // ecx
  int *v21; // eax
  int *v22; // edx
  int v23; // eax
  int v24; // edi
  int v25; // eax
  int v26; // edi
  unsigned int *v27; // eax
  int v28; // eax
  int v29; // ecx
  int v30; // ecx
  signed int *v31; // eax
  int v32; // ecx
  _DWORD *v33; // esi
  int v34; // eax
  int v35; // eax
  int v36; // eax
  int v37; // ecx
  int *v38; // eax
  LONG v39; // eax
  int v40; // eax
  int v41; // eax
  int v42; // eax
  int v43; // eax
  void *v44; // esp
  wchar_t *v45; // eax
  LONG v46; // eax
  int v47; // eax
  int v48; // eax
  VARIANTARG *v49; // ecx
  bool v50; // zf
  int v51; // eax
  int *v52; // eax
  int v53; // eax
  int v54; // ecx
  int v55; // eax
  int v56; // eax
  int v58; // [esp-C0h] [ebp-C0h] BYREF
  int v59; // [esp-BCh] [ebp-BCh] BYREF
  int v60; // [esp-B8h] [ebp-B8h]
  int v61; // [esp-B4h] [ebp-B4h] BYREF
  wchar_t v62; // [esp-B0h] [ebp-B0h] BYREF
  int **v63; // [esp-ACh] [ebp-ACh]
  int v64; // [esp-A8h] [ebp-A8h]
  int *v65; // [esp-A4h] [ebp-A4h] BYREF
  int v66; // [esp-A0h] [ebp-A0h] BYREF
  int v67; // [esp-9Ch] [ebp-9Ch] BYREF
  signed int v68; // [esp-98h] [ebp-98h]
  int String; // [esp-94h] [ebp-94h]
  int v70; // [esp-90h] [ebp-90h]
  int v71; // [esp-88h] [ebp-88h]
  int v72; // [esp-84h] [ebp-84h]
  int v73; // [esp-80h] [ebp-80h]

  SEHSetup(a5);
  v73 = a1;
  v72 = a4;
  v6 = dword_742AE8;
  v71 = a3;
  v7 = *(a2 + 8);
  *(a2 - 32) = v8;
  *(v6 + 8256) = CInPacket::Decode4(v7);
  *(a2 + 11) = CInPacket::Decode1(v7);
  v9 = CInPacket::Decode1(v7);
  *(a2 - 16) = v9;
  *(a2 - 56) = 0;
  *(a2 - 4) = 0;
  if ( v9 )
  {
    *(a2 - 20) = CInPacket::Decode4(v7);
    *(a2 - 24) = CInPacket::Decode4(v7);
    *(a2 - 28) = CInPacket::Decode4(v7);
    v10 = CInPacket::Decode4(v7);
    sub_56E43A((v6 + 10528), *(a2 - 20), *(a2 - 24), *(a2 - 28), v10);
    sub_5681EA(a2 - 60);
    CharacterData::Decode(a2, v7, 0);
  }
  else
  {
    if ( (*(dword_7432EC + 600) & 0xFFFFFFFE) == 18 )
      sub_678465(v6);
    CharacterData = CWvsContext::GetCharacterData(v6, a2 - 44);
    *(a2 - 28) = CharacterData;
    *(a2 - 4) = 1;
    sub_442C37(CharacterData);
    sub_442C54((a2 - 60));
    *(a2 - 56) = *(*(a2 - 28) + 4);
    *(a2 - 4) = 0;
    sub_442C54((a2 - 44));
    *(a2 - 28) = *(a2 - 56);
    v12 = CInPacket::Decode4(v7);
    *(*(a2 - 28) + 169) = sub_482E1B(v12, (*(a2 - 28) + 161));
    *(a2 - 28) = *(a2 - 56);
    *(*(a2 - 28) + 173) = CInPacket::Decode1(v7);
    *(a2 - 28) = *(a2 - 56);
    v13 = CInPacket::Decode2(v7);
    *(*(a2 - 28) + 85) = sub_482D66(v13, *(a2 - 28) + 81);
    *(v6 + 16) = 0;
    v14 = CInPacket::Decode1(v7);
    *(v6 + 16) = v14;
    if ( v14 )
    {
      *(v6 + 8) = CInPacket::Decode4(v7);
      *(v6 + 12) = CInPacket::Decode4(v7);
    }
  }
  if ( !(*(*(dword_7435EC + 4) + 72))(dword_7435EC + 4, dword_743368, v71, v72, v73) )
  {
    v15 = ZAllocEx_ZAllocAnonSelector_::Alloc(a2, 24);
    *(a2 - 36) = v15;
    *(a2 - 4) = 2;
    if ( v15 )
      v16 = sub_4C09AA(v15);
    else
      v16 = 0;
    v70 = 0;
    String = v16;
    *(a2 - 4) = 0;
    sub_567F67(String, v70);
  }
  *(a2 - 68) = 0;
  *(a2 - 4) = 3;
  sub_442C37((a2 - 60));
  sub_442C54((a2 - 72));
  v17 = *(a2 - 56);
  v18 = *(a2 + 11);
  *(a2 - 68) = v17;
  *(a2 - 64) = v18;
  v68 = sub_482DCD(v17 + 161, *(v17 + 169));
  v67 = a2 - 44;
  v19 = *(sub_4A0CB6(0, a2, v7, v6) + 4);
  v66 = a2 - 72;
  v65 = v19;
  *(a2 - 4) = 4;
  sub_567F67(v65, v66);
  *(a2 - 4) = 3;
  sub_56821D(a2 - 44);
  if ( *(a2 - 16) )
  {
    v20 = *(a2 - 56);
    v21 = *(v20 + 551);
    if ( v21 )
    {
      v22 = &v21[*(v20 + 555)];
      while ( v21 < v22 )
      {
        if ( *v21 )
        {
          v23 = *v21;
          goto LABEL_20;
        }
        ++v21;
      }
    }
    v23 = 0;
LABEL_20:
    *(a2 - 28) = v23;
    if ( v23 )
    {
      while ( 1 )
      {
        v24 = *sub_48318C((v20 + 547), (a2 - 28), (a2 + 10));
        *(a2 - 24) = 1000 * *(a2 + 10) + timeGetTime();
        v70 = a2 - 24;
        String = a2 - 20;
        *(a2 - 20) = v24;
        sub_5680E1(String, v70);
        if ( !*(a2 - 28) )
          break;
        v20 = *(a2 - 56);
      }
    }
  }
  v25 = (*(*(*(a2 - 32) + 4) + 72))(*(a2 - 32) + 4, &dword_7433BC);
  if ( v25 )
  {
    v26 = *(a2 - 56);
    if ( sub_482CED(v26 + 35, *(v26 + 37)) == 1 && !sub_41132B(v26 + 129, *(v26 + 137)) )
    {
      v27 = ZAllocEx_ZAllocAnonSelector_::Alloc(a2, 1592);
      *(a2 + 8) = v27;
      *(a2 - 4) = 5;
      if ( v27 )
        v28 = sub_63DACE(v27);
      else
        v28 = 0;
      v29 = v28 != 0 ? v28 + 8 : 0;
      *(a2 - 40) = v29 != 0 ? v29 - 8 : 0;
      *(a2 - 4) = 3;
      sub_487F20((a2 - 44));
      String = 0;
      v68 = 0;
      v67 = v30;
      *(a2 + 8) = &v67;
      v66 = 715;
      v65 = &v67;
      *(a2 - 4) = 6;
      StringPool::GetString(v65, v66);
      v66 = 9010000;
      v65 = 0;
      *(a2 - 4) = 6;
      sub_487E0B((a2 - 44));
      CUtilDlgEx::SetUtilDlgEx_0(a2, v65, v66, v67, v68, String);
      CUtilDlgEx::SetUtilDlgEx_TEXT(*(a2 - 40), 0, 0);
      sub_63E52C(*(a2 - 40));
      sub_484CC7(a2);
      *(a2 - 4) = 3;
      ZRef_CUtilDlgEx_::_ReleaseRaw((a2 - 44));
    }
    if ( *(v6 + 8260) )
    {
      String = -1;
      v68 = &byte_742AF0;
      *(a2 + 8) = 0;
      sub_415FA2(v68, String);
      *(a2 - 4) = 8;
      if ( GetVersion() >= 0x80000000 )
      {
        String = StringPool::GetString(a2 - 32, 286);
        *(a2 - 4) = 9;
        ZXString_char_::operator_((a2 + 8), String);
        *(a2 - 4) = 8;
        ZXString_char_::_Release((a2 - 32));
      }
      v31 = StringPool::GetString(a2 - 32, 285);
      String = *(a2 + 8);
      v68 = *v31;
      v67 = a2 + 8;
      *(a2 - 4) = 10;
      ZXString_char_::Format(a2, v67, v68, String);
      *(a2 - 4) = 8;
      ZXString_char_::_Release((a2 - 32));
      String = 0;
      v68 = 0;
      v67 = 0;
      v66 = v32;
      *(a2 - 36) = &v66;
      sub_436C8B(&v66, (a2 + 8));
      CUtilDlg::Notice(v66, v67, v68, String);
      sub_67AAAC(*(v6 + 8264), 0);
      *(a2 - 4) = 3;
      ZXString_char_::_Release((a2 + 8));
    }
    LOBYTE(v25) = *(v6 + 8268);
    *(a2 + 11) = v25;
    if ( v25 )
    {
      v33 = (v6 + 8270);
      *(a2 - 52) = *v33++;
      *(a2 - 52 + 4) = *v33++;
      *(a2 - 52 + 8) = *v33;
      *(a2 - 52 + 12) = v33[1];
      *(a2 - 28) = 0;
      String = 2852;
      v68 = a2 - 32;
      *(a2 - 4) = 11;
      v34 = *StringPool::GetString(v68, String);
      String = *(a2 - 46);
      v68 = *(a2 - 50);
      v67 = *(a2 - 52);
      v66 = v34;
      v65 = (a2 - 28);
      *(a2 - 4) = 12;
      ZXString_char_::Format(a2, v65, v66, v67, v68, String);
      *(a2 - 4) = 11;
      ZXString_char_::_Release((a2 - 32));
      VariantInit((a2 - 104));
      v35 = sub_402B94((a2 - 104), &pvargSrc);
      if ( v35 < 0 )
        sub_699620(v35);
      String = a2 - 88;
      *(a2 - 4) = 13;
      VariantInit(String);
      v36 = sub_402B94((a2 - 88), &pvargSrc);
      v37 = String;
      if ( v36 < 0 )
        sub_699620(v36);
      String = 0;
      v68 = 0;
      v67 = a2 - 104;
      v66 = a2 - 88;
      v65 = v37;
      *(a2 - 36) = &v65;
      v64 = 2857;
      v63 = &v65;
      *(a2 - 4) = 14;
      StringPool::GetBSTR(v63, v64);
      v64 = a2 - 120;
      *(a2 - 4) = 14;
      v38 = sub_4050CF();
      sub_4023C2(v38);
      sub_404E3C(0, a2, &pvargSrc, dword_744020, v64, v65, v66, v67);
      *(a2 - 4) = 16;
      v39 = sub_403D38(a2, v68, String);
      *(a2 - 32) = v39;
      *(a2 - 20) = 0;
      if ( v39 )
      {
        v40 = sub_4040F0((a2 - 20), (a2 - 32));
        if ( v40 < 0 && v40 != -2147467262 )
          sub_699620(v40);
      }
      String = a2 - 120;
      *(a2 - 4) = 20;
      v41 = sub_402925(String);
      if ( v41 < 0 )
        sub_699620(v41);
      String = a2 - 88;
      *(a2 - 4) = 19;
      v42 = sub_402925(String);
      if ( v42 < 0 )
        sub_699620(v42);
      String = a2 - 104;
      *(a2 - 4) = 18;
      v43 = sub_402925(String);
      if ( v43 < 0 )
        sub_699620(v43);
      if ( *(a2 - 20) )
      {
        v44 = alloca(32);
        v61 = 0;
        v60 = 0;
        v45 = sub_411491(*(a2 + 11), &v62);
        *(a2 - 36) = &v59;
        sub_403E08(&v59, a2, v45);
        v58 = a2 - 136;
        *(a2 - 4) = 18;
        sub_40239F((a2 - 20));
        sub_404BFC(a2, -2147467262, dword_744020, v58, v59);
        *(a2 - 4) = 22;
        v46 = sub_403D38(a2, v60, v61);
        *(a2 + 8) = v46;
        *(a2 - 16) = 0;
        if ( v46 )
        {
          v47 = sub_4040F0((a2 - 16), (a2 + 8));
          if ( v47 < 0 && v47 != -2147467262 )
            sub_699620(v47);
        }
        v61 = a2 - 136;
        *(a2 - 4) = 24;
        v48 = sub_402925(v61);
        v49 = v61;
        if ( v48 < 0 )
          sub_699620(v48);
        *(a2 - 24) = 0;
        v50 = *(a2 - 16) == 0;
        *(a2 - 4) = 25;
        if ( !v50 )
        {
          v61 = v49;
          *(a2 - 36) = &v61;
          StringPool::GetBSTR(&v61, 1320);
          v60 = a2 - 52;
          *(a2 - 4) = 25;
          sub_40239F((a2 - 16));
          v51 = sub_404BFC(a2, -2147467262, dword_744020, v60, v61);
          v50 = *v51 == 8;
          *(a2 - 4) = 27;
          v52 = v50 ? *(v51 + 8) : &dword_7429FC;
          sub_43A454((a2 - 24), v52, -1);
          v61 = a2 - 52;
          *(a2 - 4) = 25;
          v53 = sub_402925(v61);
          if ( v53 < 0 )
            sub_699620(v53);
        }
        v61 = 1;
        v60 = 0;
        v59 = 0;
        sub_44794B(a2 - 36, "\r\n");
        v58 = v54;
        *(a2 - 40) = &v58;
        *(a2 - 4) = 28;
        sub_442051(&v58, (a2 - 28));
        CUtilDlg::Notice(v58, v59, v60, v61);
        *(a2 - 4) = 25;
        ZXString_char_::_Release((a2 - 36));
        *(a2 - 4) = 24;
        ZXString_char_::_Release((a2 - 24));
        v55 = *(a2 - 16);
        *(a2 - 4) = 18;
        if ( v55 )
          (*(*v55 + 8))(v55);
      }
      v56 = *(a2 - 20);
      *(a2 - 4) = 11;
      if ( v56 )
        (*(*v56 + 8))(v56);
      *(a2 - 4) = 3;
      LOBYTE(v25) = ZXString_char_::_Release((a2 - 28));
    }
  }
  v50 = *(a2 - 68) == 0;
  *(a2 - 4) = 0;
  if ( !v50 )
  {
    LOBYTE(v25) = sub_443028((a2 - 72), 0);
    *(a2 - 68) = 0;
  }
  *(a2 - 4) = -1;
  if ( *(a2 - 56) )
    LOBYTE(v25) = sub_443028((a2 - 60), 0);
  return v25;
}