L L4D2node

CNavLadder::Save

0x00733670 · 3178 bytes · __cdecl

_ZNK10CNavLadder4SaveER10CUtlBufferj

Decompiled

undefined (2 params)

/* CNavLadder::Save(CUtlBuffer&, unsigned int) const */

void CNavLadder::Save(CUtlBuffer *param_1,uint param_2)

{
  char cVar1;
  int iVar2;
  void *pvVar3;
  undefined4 uVar4;
  float fVar5;
  undefined1 local_5c;
  undefined1 uStack_5b;
  undefined1 uStack_5a;
  undefined1 uStack_59;
  undefined1 local_58;
  undefined1 uStack_57;
  undefined1 uStack_56;
  undefined1 uStack_55;
  undefined1 local_54;
  undefined1 uStack_53;
  undefined1 uStack_52;
  undefined1 uStack_51;
  undefined1 local_50;
  undefined1 uStack_4f;
  undefined1 uStack_4e;
  undefined1 uStack_4d;
  undefined1 local_4c;
  undefined1 uStack_4b;
  undefined1 uStack_4a;
  undefined1 uStack_49;
  undefined1 local_48;
  undefined1 uStack_47;
  undefined1 uStack_46;
  undefined1 uStack_45;
  undefined1 local_44;
  undefined1 uStack_43;
  undefined1 uStack_42;
  undefined1 uStack_41;
  undefined1 local_40;
  undefined1 uStack_3f;
  undefined1 uStack_3e;
  undefined1 uStack_3d;
  undefined1 local_3c;
  undefined1 uStack_3b;
  undefined1 uStack_3a;
  undefined1 uStack_39;
  undefined1 local_38;
  undefined1 uStack_37;
  undefined1 uStack_36;
  undefined1 uStack_35;
  undefined1 local_34;
  undefined1 uStack_33;
  undefined1 uStack_32;
  undefined1 uStack_31;
  undefined1 local_30;
  undefined1 uStack_2f;
  undefined1 uStack_2e;
  undefined1 uStack_2d;
  undefined1 local_2c;
  undefined1 uStack_2b;
  undefined1 uStack_2a;
  undefined1 uStack_29;
  undefined1 local_28;
  undefined1 uStack_27;
  undefined1 uStack_26;
  undefined1 uStack_25;
  undefined1 local_24;
  undefined1 uStack_23;
  undefined1 uStack_22;
  undefined1 uStack_21;
  undefined1 local_20;
  undefined1 local_1f;
  undefined1 local_1e;
  undefined1 local_1d;
  
  uVar4 = *(undefined4 *)(param_1 + 0x4c);
  if ((*(byte *)(param_2 + 0x15) & 1) == 0) {
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_007336a0;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(undefined4 *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) =
           uVar4;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_59 = (undefined1)((uint)uVar4 >> 0x18);
        local_20 = uStack_59;
        uStack_5a = (undefined1)((uint)uVar4 >> 0x10);
        local_1f = uStack_5a;
        uStack_5b = (undefined1)((uint)uVar4 >> 8);
        local_1e = uStack_5b;
        local_5c = (undefined1)uVar4;
        local_1d = local_5c;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    fVar5 = *(float *)(param_1 + 0x20);
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_007336af;
LAB_00733960:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_007336cb;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(float *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) = fVar5;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_55 = (undefined1)((uint)fVar5 >> 0x18);
        local_20 = uStack_55;
        uStack_56 = (undefined1)((uint)fVar5 >> 0x10);
        local_1f = uStack_56;
        uStack_57 = (undefined1)((uint)fVar5 >> 8);
        local_1e = uStack_57;
        local_58 = SUB41(fVar5,0);
        local_1d = local_58;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    fVar5 = *(float *)(param_1 + 4);
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_007336da;
LAB_007339be:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_007336f6;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(float *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) = fVar5;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_51 = (undefined1)((uint)fVar5 >> 0x18);
        local_20 = uStack_51;
        uStack_52 = (undefined1)((uint)fVar5 >> 0x10);
        local_1f = uStack_52;
        uStack_53 = (undefined1)((uint)fVar5 >> 8);
        local_1e = uStack_53;
        local_54 = SUB41(fVar5,0);
        local_1d = local_54;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    fVar5 = *(float *)(param_1 + 8);
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_00733705;
LAB_00733a1c:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_00733721;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(float *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) = fVar5;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_4d = (undefined1)((uint)fVar5 >> 0x18);
        local_20 = uStack_4d;
        uStack_4e = (undefined1)((uint)fVar5 >> 0x10);
        local_1f = uStack_4e;
        uStack_4f = (undefined1)((uint)fVar5 >> 8);
        local_1e = uStack_4f;
        local_50 = SUB41(fVar5,0);
        local_1d = local_50;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    fVar5 = *(float *)(param_1 + 0xc);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733a7a;
LAB_00733730:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%f",(double)fVar5);
LAB_0073374c:
    fVar5 = *(float *)(param_1 + 0x10);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733ad8;
LAB_0073375b:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%f",(double)fVar5);
LAB_00733777:
    fVar5 = *(float *)(param_1 + 0x14);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733b36;
LAB_00733786:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%f",(double)fVar5);
LAB_007337a2:
    fVar5 = *(float *)(param_1 + 0x18);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733b94;
LAB_007337b1:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%f",(double)fVar5);
LAB_007337cd:
    fVar5 = *(float *)(param_1 + 0x1c);
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_007337dc;
LAB_00733bf2:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_007337f8;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(float *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) = fVar5;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_39 = (undefined1)((uint)fVar5 >> 0x18);
        local_20 = uStack_39;
        uStack_3a = (undefined1)((uint)fVar5 >> 0x10);
        local_1f = uStack_3a;
        uStack_3b = (undefined1)((uint)fVar5 >> 8);
        local_1e = uStack_3b;
        local_3c = SUB41(fVar5,0);
        local_1d = local_3c;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    uVar4 = *(undefined4 *)(param_1 + 0x3c);
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_00733805;
LAB_00733c4e:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_00733819;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(undefined4 *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) =
           uVar4;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_35 = (undefined1)((uint)uVar4 >> 0x18);
        local_20 = uStack_35;
        uStack_36 = (undefined1)((uint)uVar4 >> 0x10);
        local_1f = uStack_36;
        uStack_37 = (undefined1)((uint)uVar4 >> 8);
        local_1e = uStack_37;
        local_38 = (undefined1)uVar4;
        local_1d = local_38;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    iVar2 = *(int *)(param_1 + 0x24);
    if (iVar2 != 0) goto LAB_00733824;
LAB_00733c9a:
    uVar4 = 0;
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_00733834;
    uVar4 = 0;
LAB_00733cb0:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_00733848;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(undefined4 *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) =
           uVar4;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_31 = (undefined1)((uint)uVar4 >> 0x18);
        local_20 = uStack_31;
        uStack_32 = (undefined1)((uint)uVar4 >> 0x10);
        local_1f = uStack_32;
        uStack_33 = (undefined1)((uint)uVar4 >> 8);
        local_1e = uStack_33;
        local_34 = (undefined1)uVar4;
        local_1d = local_34;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    iVar2 = *(int *)(param_1 + 0x28);
    if (iVar2 != 0) goto LAB_00733853;
LAB_00733cfc:
    uVar4 = 0;
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_00733863;
LAB_00733d10:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_00733877;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(undefined4 *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) =
           uVar4;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_2d = (undefined1)((uint)uVar4 >> 0x18);
        local_20 = uStack_2d;
        uStack_2e = (undefined1)((uint)uVar4 >> 0x10);
        local_1f = uStack_2e;
        uStack_2f = (undefined1)((uint)uVar4 >> 8);
        local_1e = uStack_2f;
        local_30 = (undefined1)uVar4;
        local_1d = local_30;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    iVar2 = *(int *)(param_1 + 0x2c);
    if (iVar2 == 0) goto LAB_00733d5c;
LAB_00733882:
    uVar4 = *(undefined4 *)(iVar2 + 0x8c);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733d70;
LAB_00733892:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%u",uVar4);
LAB_007338a6:
    iVar2 = *(int *)(param_1 + 0x30);
    if (iVar2 != 0) goto LAB_007338b1;
LAB_00733dbc:
    uVar4 = 0;
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_007338c1;
LAB_00733dd0:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_007338d5;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(undefined4 *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) =
           uVar4;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_25 = (undefined1)((uint)uVar4 >> 0x18);
        local_20 = uStack_25;
        uStack_26 = (undefined1)((uint)uVar4 >> 0x10);
        local_1f = uStack_26;
        uStack_27 = (undefined1)((uint)uVar4 >> 8);
        local_1e = uStack_27;
        local_28 = (undefined1)uVar4;
        local_1d = local_28;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    iVar2 = *(int *)(param_1 + 0x34);
  }
  else {
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%u",uVar4);
LAB_007336a0:
    fVar5 = *(float *)(param_1 + 0x20);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733960;
LAB_007336af:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%f",(double)fVar5);
LAB_007336cb:
    fVar5 = *(float *)(param_1 + 4);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_007339be;
LAB_007336da:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%f",(double)fVar5);
LAB_007336f6:
    fVar5 = *(float *)(param_1 + 8);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733a1c;
LAB_00733705:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%f",(double)fVar5);
LAB_00733721:
    fVar5 = *(float *)(param_1 + 0xc);
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_00733730;
LAB_00733a7a:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_0073374c;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(float *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) = fVar5;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_49 = (undefined1)((uint)fVar5 >> 0x18);
        local_20 = uStack_49;
        uStack_4a = (undefined1)((uint)fVar5 >> 0x10);
        local_1f = uStack_4a;
        uStack_4b = (undefined1)((uint)fVar5 >> 8);
        local_1e = uStack_4b;
        local_4c = SUB41(fVar5,0);
        local_1d = local_4c;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    fVar5 = *(float *)(param_1 + 0x10);
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_0073375b;
LAB_00733ad8:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_00733777;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(float *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) = fVar5;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_45 = (undefined1)((uint)fVar5 >> 0x18);
        local_20 = uStack_45;
        uStack_46 = (undefined1)((uint)fVar5 >> 0x10);
        local_1f = uStack_46;
        uStack_47 = (undefined1)((uint)fVar5 >> 8);
        local_1e = uStack_47;
        local_48 = SUB41(fVar5,0);
        local_1d = local_48;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    fVar5 = *(float *)(param_1 + 0x14);
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_00733786;
LAB_00733b36:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_007337a2;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(float *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) = fVar5;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_41 = (undefined1)((uint)fVar5 >> 0x18);
        local_20 = uStack_41;
        uStack_42 = (undefined1)((uint)fVar5 >> 0x10);
        local_1f = uStack_42;
        uStack_43 = (undefined1)((uint)fVar5 >> 8);
        local_1e = uStack_43;
        local_44 = SUB41(fVar5,0);
        local_1d = local_44;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    fVar5 = *(float *)(param_1 + 0x18);
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_007337b1;
LAB_00733b94:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_007337cd;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(float *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) = fVar5;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_3d = (undefined1)((uint)fVar5 >> 0x18);
        local_20 = uStack_3d;
        uStack_3e = (undefined1)((uint)fVar5 >> 0x10);
        local_1f = uStack_3e;
        uStack_3f = (undefined1)((uint)fVar5 >> 8);
        local_1e = uStack_3f;
        local_40 = SUB41(fVar5,0);
        local_1d = local_40;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    fVar5 = *(float *)(param_1 + 0x1c);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733bf2;
LAB_007337dc:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%f",(double)fVar5);
LAB_007337f8:
    uVar4 = *(undefined4 *)(param_1 + 0x3c);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733c4e;
LAB_00733805:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%u",uVar4);
LAB_00733819:
    iVar2 = *(int *)(param_1 + 0x24);
    if (iVar2 == 0) goto LAB_00733c9a;
LAB_00733824:
    uVar4 = *(undefined4 *)(iVar2 + 0x8c);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733cb0;
LAB_00733834:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%u",uVar4);
LAB_00733848:
    iVar2 = *(int *)(param_1 + 0x28);
    if (iVar2 == 0) goto LAB_00733cfc;
LAB_00733853:
    uVar4 = *(undefined4 *)(iVar2 + 0x8c);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733d10;
LAB_00733863:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%u",uVar4);
LAB_00733877:
    iVar2 = *(int *)(param_1 + 0x2c);
    if (iVar2 != 0) goto LAB_00733882;
LAB_00733d5c:
    uVar4 = 0;
    if ((*(byte *)(param_2 + 0x15) & 1) != 0) goto LAB_00733892;
LAB_00733d70:
    cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
    if (cVar1 == '\0') goto LAB_007338a6;
    if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
      *(undefined4 *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) =
           uVar4;
      iVar2 = *(int *)(param_2 + 0x10);
    }
    else {
      iVar2 = *(int *)(param_2 + 0x10);
      pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
      if (pvVar3 != (void *)0x0) {
        uStack_29 = (undefined1)((uint)uVar4 >> 0x18);
        local_20 = uStack_29;
        uStack_2a = (undefined1)((uint)uVar4 >> 0x10);
        local_1f = uStack_2a;
        uStack_2b = (undefined1)((uint)uVar4 >> 8);
        local_1e = uStack_2b;
        local_2c = (undefined1)uVar4;
        local_1d = local_2c;
        _V_memcpy(pvVar3,&local_20,4);
        iVar2 = *(int *)(param_2 + 0x10);
      }
    }
    *(int *)(param_2 + 0x10) = iVar2 + 4;
    CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
    iVar2 = *(int *)(param_1 + 0x30);
    if (iVar2 == 0) goto LAB_00733dbc;
LAB_007338b1:
    uVar4 = *(undefined4 *)(iVar2 + 0x8c);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733dd0;
LAB_007338c1:
    CUtlBuffer::Printf((CUtlBuffer *)param_2,"%u",uVar4);
LAB_007338d5:
    iVar2 = *(int *)(param_1 + 0x34);
  }
  if (iVar2 == 0) {
    uVar4 = 0;
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) {
      uVar4 = 0;
LAB_00733e30:
      cVar1 = CUtlBuffer::CheckPut((CUtlBuffer *)param_2,4);
      if (cVar1 != '\0') {
        if ((*(byte *)(param_2 + 0x34) & 1) == 0) {
          *(undefined4 *)(*(int *)param_2 + (*(int *)(param_2 + 0x10) - *(int *)(param_2 + 0x20))) =
               uVar4;
          iVar2 = *(int *)(param_2 + 0x10);
        }
        else {
          iVar2 = *(int *)(param_2 + 0x10);
          pvVar3 = (void *)((iVar2 - *(int *)(param_2 + 0x20)) + *(int *)param_2);
          if (pvVar3 != (void *)0x0) {
            uStack_21 = (undefined1)((uint)uVar4 >> 0x18);
            local_20 = uStack_21;
            uStack_22 = (undefined1)((uint)uVar4 >> 0x10);
            local_1f = uStack_22;
            uStack_23 = (undefined1)((uint)uVar4 >> 8);
            local_1e = uStack_23;
            local_24 = (undefined1)uVar4;
            local_1d = local_24;
            _V_memcpy(pvVar3,&local_20,4);
            iVar2 = *(int *)(param_2 + 0x10);
          }
        }
        *(int *)(param_2 + 0x10) = iVar2 + 4;
        CUtlBuffer::AddNullTermination((CUtlBuffer *)param_2);
        return;
      }
      return;
    }
  }
  else {
    uVar4 = *(undefined4 *)(iVar2 + 0x8c);
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) goto LAB_00733e30;
  }
  CUtlBuffer::Printf((CUtlBuffer *)param_2,"%u",uVar4);
  return;
}

SourceMod gamedata

paste into addons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)

Just a Signatures{} block, ready to drop into a gamedata file. Wire it up in your plugin however you like - SDKCall, DHooks, raw memory ops, or anything else.



        

        

          

Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.

Return-type handling cheatsheet (DHookReturn)