### CGuiHeroCharInfoEx@@  rtti@0089b5dc  vtable@00802354

===== VTABLE de CGuiHeroCharInfoEx@@ @ 00802354 =====
  [ 0] 0049a029  FUN_0049a029
  [ 1] 0042019f  FUN_0042019f
  [ 2] 0049a045  FUN_0049a045
  [ 3] 0049989b  FUN_0049989b
  [ 4] 00455dfa  FUN_00455dfa
  [ 5] 00455e57  FUN_00455e57
  [ 6] 00455eb4  FUN_00455eb4
  [ 7] 00455f11  FUN_00455f11
  [ 8] 0049802c  FUN_0049802c
  [ 9] 006e8d46  FUN_006e8d46
  [10] 00524dfb  FUN_00524dfb
  [11] 00438f04  FUN_00438f04
  [12] 0045605c  FUN_0045605c
  [13] 004819c7  FUN_004819c7
  [14] 00438f07  FUN_00438f07
  [15] 0049bd0a  FUN_0049bd0a
  [16] 0045563d  FUN_0045563d
  [17] 00541945  FUN_00541945
  [18] 00000000  (nao e funcao)
  [19] 0083cf5c  (nao e funcao)
  [20] 004998af  FUN_004998af
  [21] 0042019f  FUN_0042019f
  [22] 004998cb  FUN_004998cb
  [23] 00498464  FUN_00498464

========== CGuiHeroCharInfoEx@@ vtable[0] @ 0049a029 ==========

void * __thiscall FUN_0049a029(void *param_1,byte param_2)

{
  FUN_004997d2();
  if ((param_2 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
    _free(param_1);
  }
  return param_1;
}



========== CGuiHeroCharInfoEx@@ vtable[1] @ 0042019f ==========

void FUN_0042019f(void)

{
  return;
}



========== CGuiHeroCharInfoEx@@ vtable[2] @ 0049a045 ==========

/* WARNING: Function: __EH_prolog3 replaced with injection: EH_prolog3 */
/* WARNING: Function: __EH_epilog3 replaced with injection: EH_epilog3 */

undefined4 __fastcall FUN_0049a045(int param_1)

{
  uint uVar1;
  int *piVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  
  if ((*(int *)(param_1 + 4) != 0) && (uVar1 = FUN_005cb9bf(), 10 < uVar1)) {
    piVar2 = (int *)FUN_006f4ae1(0);
    piVar2 = (int *)*piVar2;
    if ((piVar2 != (int *)0x0) && (*piVar2 != 0)) {
      iVar3 = FUN_00757b90(0xf8);
      if (iVar3 == 0) {
        uVar4 = 0;
      }
      else {
        uVar4 = FUN_004974c7(*piVar2);
      }
      *(undefined4 *)(param_1 + 0xb8) = uVar4;
      FUN_00456b95(uVar4,piVar2 + 1,1);
    }
    piVar2 = (int *)FUN_006f4ae1(1);
    piVar2 = (int *)*piVar2;
    if ((piVar2 != (int *)0x0) && (*piVar2 != 0)) {
      iVar3 = FUN_00757b90(0xc4);
      if (iVar3 == 0) {
        uVar4 = 0;
      }
      else {
        uVar4 = FUN_00497bc3(*piVar2);
      }
      *(undefined4 *)(param_1 + 0xbc) = uVar4;
      FUN_00456b95(uVar4,piVar2 + 1,1);
    }
    piVar2 = (int *)FUN_006f4ae1(2);
    piVar2 = (int *)*piVar2;
    if ((piVar2 != (int *)0x0) && (*piVar2 != 0)) {
      iVar3 = FUN_00757b90(0x210);
      if (iVar3 == 0) {
        uVar4 = 0;
      }
      else {
        uVar4 = FUN_00497d56(*piVar2);
      }
      *(undefined4 *)(param_1 + 0xc0) = uVar4;
      FUN_00456b95(uVar4,piVar2 + 1,1);
    }
    piVar2 = (int *)FUN_006f4ae1(3);
    piVar2 = (int *)*piVar2;
    if ((piVar2 != (int *)0x0) && (*piVar2 != 0)) {
      iVar3 = FUN_00757b90(0xc4);
      if (iVar3 == 0) {
        uVar4 = 0;
      }
      else {
        uVar4 = FUN_00497e6e(*piVar2);
      }
      *(undefined4 *)(param_1 + 0xc4) = uVar4;
      FUN_00456b95(uVar4,piVar2 + 1,1);
    }
    piVar2 = (int *)FUN_006f4ae1(4);
    piVar2 = (int *)*piVar2;
    if ((piVar2 != (int *)0x0) && (*piVar2 != 0)) {
      iVar3 = FUN_00757b90(0xc0);
      if (iVar3 == 0) {
        uVar4 = 0;
      }
      else {
        uVar4 = FUN_00497ede(*piVar2);
      }
      *(undefined4 *)(param_1 + 200) = uVar4;
      FUN_00456b95(uVar4,piVar2 + 1,1);
    }
    piVar2 = (int *)FUN_006f4ae1(5);
    piVar2 = (int *)*piVar2;
    if ((piVar2 != (int *)0x0) && (*piVar2 != 0)) {
      uVar4 = FUN_0045f2aa(*piVar2);
      *(undefined4 *)(param_1 + 0xcc) = uVar4;
      FUN_00456b95(uVar4,piVar2 + 1,1);
    }
    piVar2 = (int *)FUN_006f4ae1(6);
    piVar2 = (int *)*piVar2;
    if ((piVar2 != (int *)0x0) && (*piVar2 != 0)) {
      uVar4 = FUN_0046633b(*piVar2);
      *(undefined4 *)(param_1 + 0xd0) = uVar4;
      FUN_00456b95(uVar4,piVar2 + 1,1);
    }
    piVar2 = (int *)FUN_006f4ae1(7);
    piVar2 = (int *)*piVar2;
    if ((piVar2 != (int *)0x0) && (*piVar2 != 0)) {
      uVar4 = FUN_00461b10(*piVar2);
      *(undefined4 *)(param_1 + 0xd4) = uVar4;
      FUN_00456b95(uVar4,piVar2 + 1,1);
    }
    piVar2 = (int *)FUN_006f4ae1(8);
    piVar2 = (int *)*piVar2;
    if ((piVar2 != (int *)0x0) && (*piVar2 != 0)) {
      uVar4 = FUN_00461b10(*piVar2);
      *(undefined4 *)(param_1 + 0xd8) = uVar4;
      FUN_00456b95(uVar4,piVar2 + 1,1);
    }
    piVar2 = (int *)FUN_006f4ae1(9);
    piVar2 = (int *)*piVar2;
    if ((piVar2 != (int *)0x0) && (*piVar2 != 0)) {
      uVar4 = FUN_0045f339(*piVar2);
      *(undefined4 *)(param_1 + 0xdc) = uVar4;
      FUN_00456b95(uVar4,piVar2 + 1,1);
    }
    piVar2 = (int *)FUN_006f4ae1(10);
    piVar2 = (int *)*piVar2;
    if ((piVar2 != (int *)0x0) && (*piVar2 != 0)) {
      uVar4 = FUN_004663a4(*piVar2);
      *(undefined4 *)(param_1 + 0xe0) = uVar4;
      FUN_00456b95(uVar4,piVar2 + 1,1);
    }
  }
  FUN_00465cb9();
  if (*(int *)(param_1 + 0xb8) != 0) {
    FUN_00456bcd(0);
  }
  if (*(int *)(param_1 + 0xbc) != 0) {
    FUN_00456bcd(0);
  }
  if (*(int *)(param_1 + 0xc0) != 0) {
    FUN_00456bcd(0);
  }
  if (*(int *)(param_1 + 0xc4) != 0) {
    FUN_00456bcd(0);
  }
  if (*(int *)(param_1 + 200) != 0) {
    FUN_00456bcd(0);
  }
  if (*(int *)(param_1 + 0xcc) != 0) {
    FUN_00456bcd(0);
  }
  if (*(int *)(param_1 + 0xd0) != 0) {
    FUN_00456bcd(0);
    iVar3 = **(int **)(param_1 + 0xd0);
    uVar5 = 0;
    uVar4 = 0x520b;
    thunk_FUN_0045135c(0x520b,0);
    uVar4 = FUN_0044fc66(uVar4,uVar5);
    (**(code **)(iVar3 + 0x48))(uVar4);
  }
  if (*(int *)(param_1 + 0xd4) != 0) {
    FUN_00456bcd(0);
  }
  if (*(int *)(param_1 + 0xd8) != 0) {
    FUN_00456bcd(0);
  }
  if (*(int *)(param_1 + 0xdc) != 0) {
    FUN_00456bcd(0);
    FUN_00455617();
    *(bool *)(*(int *)(param_1 + 0xdc) + 0xa2) =
         *(char *)(*(int *)(*(int *)(*(int *)(DAT_008db7ec + 0x8480) + 0x6a8) + 8) + 0x7f0) == '\0';
  }
  if (*(int *)(param_1 + 0xe0) != 0) {
    FUN_00456bcd(0);
    FUN_00455617();
    uVar5 = 0;
    uVar4 = 34000;
    thunk_FUN_0045135c(34000,0);
    uVar4 = FUN_0044fc66(uVar4,uVar5);
    FUN_004988b9(0,uVar4);
    uVar5 = 0;
    uVar4 = 0x84d1;
    thunk_FUN_0045135c(0x84d1,0);
    uVar4 = FUN_0044fc66(uVar4,uVar5);
    FUN_004988b9(1,uVar4);
    FUN_00499817(0);
  }
  FUN_0049818d(*(undefined4 *)(*(int *)(DAT_008db7ec + 0x8480) + 0x6a8));
  FUN_0045562e(1);
  return 1;
}



========== CGuiHeroCharInfoEx@@ vtable[3] @ 0049989b ==========

undefined4 FUN_0049989b(void)

{
  FUN_0045e5d8();
  FUN_004980ac();
  return 1;
}



--- xrefs pra vtable 00802354 ---
  004997e3 em FUN_004997d2@004997d2
  00498013 em FUN_00497fc3@00497fc3

