All pastes #2046131 Raw Edit

Unnamed

public text v1 · immutable
#2046131 ·published 2011-04-13 20:21 UTC
rendered paste body
int __thiscall EQPlayer__CreateFromSpawn(int EQPlayer, int EQSpawn)
{
  struct_EQSpawnPtr *EQSpawnPtr; // edi@1
  struct_EQPlayerPtr *EQPlayerPtr; // esi@1
  int result; // eax@2
  int v5; // eax@3
  char *v6; // ebx@3
  struct_EQPlayerPtr *v7; // ecx@4
  char *v8; // eax@5
  char *v9; // ecx@5
  int v10; // ecx@5
  int v11; // ecx@8
  int v12; // eax@9
  signed int v13; // edx@10
  int v14; // ecx@22
  int v16; // [sp-8h] [bp-24h]@15
  int v17; // [sp+8h] [bp-14h]@25
  int v18; // [sp+Ch] [bp-10h]@25
  int v19; // [sp+10h] [bp-Ch]@25
  int v20; // [sp+14h] [bp-8h]@1
  int v21; // [sp+18h] [bp-4h]@12
  signed int v22; // [sp+24h] [bp+8h]@3
  signed int v23; // [sp+24h] [bp+8h]@5
  signed int v24; // [sp+24h] [bp+8h]@12
  signed int v25; // [sp+24h] [bp+8h]@19
  char *v26; // [sp+24h] [bp+8h]@21

  EQSpawnPtr = (struct_EQSpawnPtr *)EQSpawn;
  EQPlayerPtr = (struct_EQPlayerPtr *)EQPlayer;
  v20 = 1;
  if ( EQSpawn )
  {
    v5 = *(_DWORD *)(EQSpawn + 75);
    v22 = 0;
    *(_DWORD *)(EQPlayer + 572) = v5;
    *(_BYTE *)(EQPlayer + 589) = EQSpawnPtr->byte6;
    *(_DWORD *)(EQPlayer + 576) = EQSpawnPtr->dword144;
    *(_DWORD *)(EQPlayer + 0x230) = EQSpawnPtr->dwordE9;
    v6 = EQSpawnPtr->fC5;
    do
    {
      sub_47A406(v22, *(_DWORD *)(v6 + 151));
      sub_47A3EB(v22++, *(_DWORD *)v6);
      v6 += 4;
    }
    while ( v22 < 9 );
    EQPlayerPtr->dword258 = EQSpawnPtr->dword154;
    EQPlayerPtr->dword270 = EQSpawnPtr->dword14F;
    EQPlayerPtr->dword25C = EQSpawnPtr->dwordBD;
    EQPlayerPtr->dword274 = EQSpawnPtr->byte56;
    EQPlayerPtr->dword284 = 100;
    EQPlayerPtr->byte245 = EQSpawnPtr->byte55;
    EQPlayerPtr->byte246 = EQSpawnPtr->byte92;
    EQPlayerPtr->byte247 = EQSpawnPtr->byte72;
    EQPlayerPtr->byte248 = EQSpawnPtr->byte14C;
    EQPlayerPtr->byte249 = EQSpawnPtr->byte91;
    EQPlayerPtr->byte24A = EQSpawnPtr->byte9C;
    EQPlayerPtr->byte1B7 = EQSpawnPtr->byte112;
    EQPlayerPtr->byte1B8 = EQSpawnPtr->byte8B;
    EQPlayerPtr->byte24B = EQSpawnPtr->byte0;
    EQPlayerPtr->dword280 = EQSpawnPtr->dword47;
    EQPlayerPtr->dword288 = EQSpawnPtr->dwordEE;
    EQPlayerPtr->dword27C = EQSpawnPtr->dwordC1;
    EQPlayer__SetBoatAttribs(v7, EQSpawnPtr->dword11C);
    EQPlayerPtr->byte244 = EQSpawnPtr->byte53;
    EQPlayerPtr->byte252 = EQSpawnPtr->byte14B;
    EQPlayerPtr->byte24E = EQSpawnPtr->byte14E;
    EQPlayerPtr->byte24C = EQSpawnPtr->byte97;
    EQPlayerPtr->byte250 = EQSpawnPtr->byte54;
    EQPlayerPtr->byte1B1 = EQSpawnPtr->byte4;
    EQPlayerPtr->byte24F = EQSpawnPtr->byte148;
    EQPlayerPtr->byte251 = EQSpawnPtr->byte57;
    EQPlayerPtr->byte253 = EQSpawnPtr->byte14A;
    EQPlayerPtr->dword264 = EQSpawnPtr->byte5;
    sub_47E900(v10, EQSpawnPtr->byteED);
    EQPlayerPtr->byte1B4 = EQSpawnPtr->byte180;
    EQPlayerPtr->byte1B5 = EQSpawnPtr->byte149;
    EQPlayerPtr->byte1B2 = EQSpawnPtr->byte90;
    EQPlayerPtr->byte256 = EQSpawnPtr->byte1;
    EQPlayerPtr->dword28C = EQSpawnPtr->byte14D;
    EQPlayerPtr->byte254 = EQSpawnPtr->byte153;
    EQPlayerPtr->byte255 = EQSpawnPtr->byte113;
    strcpy(&EQPlayerPtr->char1, &EQSpawnPtr->char124);
    EQPlayerPtr->dword278 = EQSpawnPtr->byte3;
    *(float *)&EQPlayerPtr->dword30 = 0.0;
    v9 = &EQPlayerPtr->f1B9[83];
    *(float *)&EQPlayerPtr->dword34 = 0.0;
    *(float *)&EQPlayerPtr->dword38 = 0.0;
    EQPlayerPtr->float4C = 0.0;
    EQPlayerPtr->float50 = 0.0;
    EQPlayerPtr->float48 = 0.0;
    EQPlayerPtr->float3C = 0.0;
    EQPlayerPtr->float40 = 0.0;
    EQPlayerPtr->float44 = 0.0;
    EQPlayerPtr->float58 = 0.0;
    EQPlayerPtr->float54 = 0.0;
    EQPlayerPtr->float5C = 0.0;
    v23 = 0;
    EQPlayerPtr->byte1B3 = EQSpawnPtr->byte123 == 1;
    EQPlayerPtr->byte1B0 = EQSpawnPtr->byte58;
    EQPlayerPtr->dword294 = EQSpawnPtr->dword98;
    EQPlayerPtr->dword298 = EQSpawnPtr->dword8C;
    EQPlayerPtr->dword29C = EQSpawnPtr->dword93;
    EQPlayerPtr->dword2A0 = EQSpawnPtr->dword4F;
    EQPlayerPtr->dword1A0 = EQSpawnPtr->dword158;
    v8 = EQSpawnPtr->f114;
    do
    {
      *(_DWORD *)v9 = *(_DWORD *)v8;
      ++v23;
      v8 += 4;
      v9 += 4;
    }
    while ( v23 < 2 );
    dword_9006AC = 1;
    if ( (EQSpawnPtr->dword62 & 0x1FF80000) == 34603008 )
    {
      v11 = EQSpawnPtr->dword5E;
      if ( (EQSpawnPtr->dword5E & 0x3FF) == 66 )
      {
        v12 = EQSpawnPtr->dword62 & 0xE007FFFF;
        v20 = 2;
        EQSpawnPtr->dword62 = v12;
        EQSpawnPtr->dword5E = v11 & 0xFFFFFC00;
      }
    }
    sub_465304(&EQPlayerPtr->dword30, &EQSpawnPtr->dword5E, EQPlayerPtr);
    v13 = 0;
    dword_9006AC = 0;
    if ( EQPlayerPtr->byte254 > -1 && sub_479E02(-1) )
    {
      v24 = v13;
      v21 = (int)EQSpawnPtr->f15C;
      do
      {
        if ( v24 && v24 < 7 )
          v16 = EQPlayerPtr->byte254;
        else
          v16 = *(_DWORD *)(v21 - 151);
        sub_47A3EB(v24, v16);
        sub_47A406(v24++, *(_DWORD *)v21);
        v21 += 4;
      }
      while ( v24 < 9 );
      EQPlayerPtr->byte254 = -1;
    }
    else
    {
      v25 = v13;
      v21 = (int)EQSpawnPtr->f15C;
      do
      {
        sub_47A3EB(v25, *(_DWORD *)(v21 - 151));
        sub_47A406(v25++, *(_DWORD *)v21);
        v21 += 4;
      }
      while ( v25 < 9 );
    }
    v26 = EQSpawnPtr->f73;
    v21 = 6;
    do
    {
      v14 = *(_DWORD *)v26;
      if ( *(_DWORD *)v26 )
      {
        if ( v14 < dword_85139C )
        {
          if ( (char *)dword_851398 + 268 * v14 )
          {
            v17 = EQPlayerPtr->dword30;
            v18 = EQPlayerPtr->dword34;
            v19 = EQPlayerPtr->dword38;
            sub_495CC3(v14, 2, (char *)dword_851398 + 268 * v14, EQPlayerPtr, EQPlayerPtr, &v17, 0, 0, 0);
          }
        }
      }
      v26 += 4;
    }
    while ( v21-- != 1 );
    sub_47A77B((int)EQPlayerPtr, &EQSpawnPtr->charF2);
    sub_47A7B7((int)EQPlayerPtr, &EQSpawnPtr->char9D);
    result = v20;
  }
  else
  {
    result = 0;
  }
  return result;
}