Процедура получает два аргумента на стеке и ноль в регистре ecx. Стек освобождает вызывающая процедура. Вопрос: как правильно определить ее тип для компилятора? __cdecl портит ecx.
Скорее всего thiscall от майкрософт. http://en.wikipedia.org/wiki/X86_calling_conventions - в самом низу 32bit microsoft thiscall. Объявить соответственно как метод объекта.
Вызывай через __asm вставку, или всетаки подробнее займись есх (в С++ через него передают указатели на обьект класса перед вызовом метода), а вдруг твоя процедура есть метод С++ класса.
Пока два предположения: либо это метод класса с переменным числом аргументов и this==NULL (весселенькое сочетание), либо продукт левого компайлера, для которого такие вызовы - норма. Вызываю через асм-вставку.
Возможно это вызов метода объекта через указатель на этот метод. Частенько в таких случаях вызов делается через промежуточную функцию. Объект в этом случае так же передаётся через ecx, но сама функция stdcall.
да... и кстати вполне вероятно, что это что-то из библиотеки Boost... например Boost::Bind или Boost::Phoenix... здесь мало телепатов к сожалению... ничего криминального, если функция не обращается к элементам класса (NULL + смещение)... даже есть несколько программных паттернов, при которых работа класса зависит от того, был ли экземпляр выделен (на стеке или в куче) или не был...