TZip::ideflate
0x000ee3f0 · 515 bytes · __thiscall
_ZN4TZip8ideflateEP5zlist
Decompiled
undefined (2 params)
/* TZip::ideflate(zlist*) */
undefined4 __thiscall TZip::ideflate(TZip *this,zlist *param_1)
{
int iVar1;
undefined4 uVar2;
int in_GS_OFFSET;
TZip *pTStack_6afc8;
int iStack_6afc4;
TZip TStack_6afc0;
code *pcStack_6afbc;
code *pcStack_6afb8;
undefined1 auStack_6afb4 [2292];
undefined1 auStack_6a6c0 [244];
undefined1 auStack_6a5cc [1152];
undefined1 auStack_6a14c [2];
undefined2 uStack_6a14a;
undefined1 auStack_6a0d4 [156];
undefined1 *puStack_6a038;
undefined1 *puStack_6a034;
undefined4 *puStack_6a030;
undefined4 uStack_6a02c;
undefined4 uStack_6a028;
undefined4 uStack_6a024;
undefined4 uStack_6a020;
undefined1 *puStack_6a01c;
undefined1 *puStack_6a018;
undefined4 *puStack_6a014;
undefined4 uStack_6a010;
undefined4 uStack_6a00c;
undefined4 uStack_6a008;
undefined4 uStack_6a004;
undefined1 *puStack_6a000;
undefined4 uStack_69ffc;
undefined1 *puStack_69ff8;
undefined4 uStack_69ff4;
undefined4 uStack_69ff0;
undefined4 uStack_69fec;
undefined4 uStack_69fe8;
iVar1 = *(int *)(in_GS_OFFSET + 0x14);
puStack_6a038 = auStack_6afb4;
puStack_6a034 = auStack_6a5cc;
puStack_6a01c = auStack_6a6c0;
puStack_6a018 = auStack_6a14c;
puStack_6a000 = auStack_6a0d4;
puStack_6a030 = &extra_lbits;
uStack_6a02c = 0x101;
uStack_6a028 = 0x11e;
uStack_6a024 = 0xf;
uStack_6a020 = 0;
puStack_6a014 = &extra_dbits;
uStack_6a010 = 0;
uStack_6a00c = 0x1e;
uStack_6a008 = 0xf;
uStack_6a004 = 0;
uStack_69ffc = 0;
puStack_69ff8 = extra_blbits;
uStack_69ff4 = 0;
uStack_69ff0 = 0x13;
uStack_69fec = 7;
uStack_69fe8 = 0;
TStack_6afc0 = this[0x40];
pcStack_6afbc = sread;
pcStack_6afb8 = sflush;
uStack_6a14a = 0;
pTStack_6afc8 = this;
iStack_6afc4 = 8;
ct_init((TState *)&pTStack_6afc8,(ushort *)(param_1 + 0x2a));
lm_init((TState *)&pTStack_6afc8,iStack_6afc4,(ushort *)(param_1 + 4));
uVar2 = deflate((TState *)&pTStack_6afc8);
*(undefined4 *)(this + 100) = uVar2;
if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
return 0;
}
/* WARNING: Subroutine does not return */
__stack_chk_fail();
}
SourceMod gamedata
paste intoaddons/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.
Signatures + Functions block. The plugin uses
DHookCreateFromConf - DHooks reads return type, this-type,
calling convention, and argument types straight from the gamedata. Less
boilerplate in the plugin, types travel with the gamedata.
Gamedata KeyValues
DHooks plugin example
Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.