Не будет это работать)
в pk у тебя будет адрес возврата из процедуры.
Нада чето типа того:
push ebp
mov ebp, esp
mov eax,[ebp+8]
pop ebp
mov pk, eax
где в [ebp+8] пропускаем в стеке адрес возврата 4 байта и еще 4 сохраненого нами ебп. Если вызываеш через call то придетса отступить еще на один адрес возврата [ebp+12]
Добавлено через 6 минут
И разумеетса после этих хуков ты обязан восстановить указатиль стека в соответствии с соглашениями вызова cdecl
Добавлено через 10 минут
Ах и да, если хукашеш диспатч то там еще и проверка нужна) она вызываетса в тике клиента около 100 раз в секунду в активном режиме и намного менше в неактивном, при этом в зависимости от плотности траффика от 99% до 10% она вызываетса вхолостую. Тоесть в ней пакета нет
и нада проверять есть ли там пакет чтоб сразуже не словить генерал протекшн фолт