========== handler recepcao 06 00 (wear) @ 00652797 ==========
-- funcao: FUN_00652797 @ 00652797

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

void FUN_00652797(void)

{
  undefined4 uVar1;
  char cVar2;
  u_long uVar3;
  int iVar4;
  u_long uVar5;
  int iVar6;
  int unaff_EBP;
  undefined4 uVar7;
  
  *(undefined ***)(unaff_EBP + -0x24) = AMOPacket::CItemWearPacket::vftable;
  *(undefined4 *)(unaff_EBP + -4) = 0;
  cVar2 = FUN_0061da63(*(undefined4 *)(unaff_EBP + 8));
  if (cVar2 == '\0') {
    return;
  }
  iVar6 = *(int *)(unaff_EBP + -0x20);
  uVar3 = ntohl(*(u_long *)(iVar6 + 6));
  iVar4 = FUN_004203ec(uVar3);
  *(int *)(unaff_EBP + -0x1c) = iVar4;
  if (iVar4 == 0) {
    return;
  }
  uVar3 = ntohl(*(u_long *)(iVar6 + 6));
  iVar4 = unaff_EBP + -0x2c;
  FUN_005e2185(iVar4,uVar3);
  FUN_005e1cac(iVar4,uVar3);
  uVar3 = *(u_long *)(iVar6 + 0xd);
  iVar4 = *(int *)(unaff_EBP + -0x28);
  *(int *)(unaff_EBP + 8) = (int)*(char *)(iVar6 + 0xc);
  uVar3 = ntohl(uVar3);
  *(u_long *)(unaff_EBP + -0x10) = uVar3;
  if ((iVar4 == 0) || (0x1e < *(uint *)(unaff_EBP + 8))) goto LAB_006528cc;
  iVar4 = *(int *)(iVar4 + 8) + 0x7e6 + *(uint *)(unaff_EBP + 8) * 4;
  *(u_long *)(iVar4 + 0x77) = uVar3;
  *(int *)(iVar4 + 0xf3) = (int)*(char *)(iVar6 + 0x11);
  uVar3 = ntohl(*(u_long *)(iVar6 + 6));
  *(u_long *)(unaff_EBP + -0x14) = uVar3;
  iVar4 = FUN_0041e29a();
  if (*(int *)(unaff_EBP + -0x14) == iVar4) {
LAB_0065287f:
    FUN_005de8ac(*(undefined4 *)(unaff_EBP + 8),*(undefined4 *)(unaff_EBP + -0x10));
  }
  else {
    uVar3 = ntohl(*(u_long *)(iVar6 + 6));
    FUN_00602161(unaff_EBP + -0x18,uVar3);
    if ((*(int *)(unaff_EBP + -0x14) != 0) &&
       (iVar4 = FUN_0060010e(*(undefined4 *)(unaff_EBP + -0x14)), iVar4 == 0)) goto LAB_0065287f;
  }
  iVar4 = FUN_004521c1(0xc366);
  *(int *)(unaff_EBP + -0x14) = iVar4;
  if (iVar4 != 0) {
    uVar3 = ntohl(*(u_long *)(iVar6 + 6));
    uVar5 = FUN_0041e29a();
    if (uVar3 == uVar5) {
      FUN_00488387();
    }
  }
LAB_006528cc:
  uVar3 = ntohl(*(u_long *)(iVar6 + 6));
  uVar5 = FUN_0041e29a();
  if (uVar3 == uVar5) {
    FUN_005e6cf6(*(undefined4 *)(unaff_EBP + 8),*(undefined4 *)(unaff_EBP + -0x10));
  }
  if ((*(char *)(iVar6 + 0xc) == '\a') || (*(char *)(iVar6 + 0xc) == '\b')) {
    uVar1 = *(undefined4 *)(unaff_EBP + -0x1c);
    iVar6 = FUN_005dc772();
    uVar7 = DAT_008eff8c;
    if ((iVar6 == 1) || (iVar6 = FUN_005dc772(), uVar7 = DAT_008f1724, iVar6 == 2)) {
      FUN_005dc9b7(uVar1,uVar7,0);
    }
  }
  return;
}



========== handler recepcao 06 01 (putoff) @ 00652959 ==========
-- funcao: FUN_00652959 @ 00652959

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

void FUN_00652959(void)

{
  char cVar1;
  u_long uVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  int *piVar6;
  int iVar7;
  int unaff_EBP;
  
  *(undefined ***)(unaff_EBP + -0x1c) = AMOPacket::CItemPutoffPacket::vftable;
  *(undefined4 *)(unaff_EBP + -4) = 0;
  cVar1 = FUN_0061da94(*(undefined4 *)(unaff_EBP + 8));
  if (cVar1 == '\0') {
    return;
  }
  iVar7 = *(int *)(unaff_EBP + -0x18);
  uVar2 = ntohl(*(u_long *)(iVar7 + 6));
  iVar3 = FUN_004203ec(uVar2);
  if (iVar3 == 0) {
    return;
  }
  uVar2 = ntohl(*(u_long *)(iVar7 + 6));
  iVar3 = unaff_EBP + -0x24;
  FUN_005e2185(iVar3,uVar2);
  FUN_005e1cac(iVar3,uVar2);
  uVar2 = *(u_long *)(iVar7 + 0xd);
  iVar3 = *(int *)(unaff_EBP + -0x20);
  *(int *)(unaff_EBP + 8) = (int)*(char *)(iVar7 + 0xc);
  uVar2 = ntohl(uVar2);
  if (iVar3 == 0) goto LAB_00652a71;
  thunk_FUN_00637b85(uVar2);
  uVar4 = FUN_0062b690(uVar2);
  iVar5 = FUN_005dd78d(uVar4);
  if (iVar5 != 0) {
    piVar6 = (int *)FUN_0048ab6a();
    if (*piVar6 == 2) {
      uVar4 = 3;
    }
    else {
      piVar6 = (int *)FUN_0048ab6a();
      if (*piVar6 != 1) goto LAB_006529fe;
      uVar4 = 0;
    }
    FUN_005ddfb2(uVar4);
  }
LAB_006529fe:
  if (*(uint *)(unaff_EBP + 8) < 0x1f) {
    *(undefined4 *)(*(int *)(iVar3 + 8) + 0x85d + *(uint *)(unaff_EBP + 8) * 4) = 0;
    uVar2 = ntohl(*(u_long *)(iVar7 + 6));
    *(u_long *)(unaff_EBP + -0x10) = uVar2;
    iVar3 = FUN_0041e29a();
    if (*(int *)(unaff_EBP + -0x10) != iVar3) {
      uVar2 = ntohl(*(u_long *)(iVar7 + 6));
      FUN_00602161(unaff_EBP + -0x14,uVar2);
      if ((*(int *)(unaff_EBP + -0x10) == 0) ||
         (iVar3 = FUN_0060010e(*(undefined4 *)(unaff_EBP + -0x10)), iVar3 != 0)) goto LAB_00652a71;
    }
    FUN_005de8ac(*(undefined4 *)(unaff_EBP + 8),0);
  }
LAB_00652a71:
  uVar2 = ntohl(*(u_long *)(iVar7 + 6));
  *(u_long *)(unaff_EBP + -0x10) = uVar2;
  iVar3 = FUN_0041e29a();
  if (*(int *)(unaff_EBP + -0x10) == iVar3) {
    FUN_005e6cf6(*(undefined4 *)(unaff_EBP + 8),0);
  }
  cVar1 = *(char *)(iVar7 + 0xc);
  if (cVar1 == '\x06') {
    uVar2 = ntohl(*(u_long *)(iVar7 + 6));
    iVar7 = FUN_004203ec(uVar2);
    if (iVar7 != 0) {
      FUN_005d64f1(0);
    }
  }
  else if ((cVar1 == '\a') || (cVar1 == '\b')) {
    uVar2 = ntohl(*(u_long *)(iVar7 + 6));
    iVar7 = FUN_004203ec(uVar2);
    if ((iVar7 != 0) &&
       ((iVar3 = FUN_005dc772(), uVar4 = DAT_008eff8c, iVar3 == 1 ||
        (iVar3 = FUN_005dc772(), uVar4 = DAT_008f1724, iVar3 == 2)))) {
      FUN_005dc9b7(iVar7,uVar4,0);
    }
  }
  return;
}



