My setup bones:

Code:
	bool SetupBones(matrix3x4_t *pBoneToWorldOut, int nMaxBones, int boneMask, float currentTime)
	{
		void *pRenderable = (void*)(this + 0x4);
		typedef bool(__thiscall* OriginalFn)(PVOID, matrix3x4_t*, int, int, float);
		return ((OriginalFn)VMT.GetFunction(pRenderable, 16))(pRenderable, pBoneToWorldOut, nMaxBones, boneMask, currentTime);
	}
This is how I call it.

Code:
bool GetBonePosition(CBaseEntity* pPlayer, Vector& Hitbox, int Bone)
{
	matrix3x4_t MatrixArray[128];
	float fTime = Interfaces.Globals->curtime;
	if (fTime < 0.001f)
		return false;
	if (!pPlayer->SetupBones(&MatrixArray[0], 128, 0x00000100, fTime))
		return false;
	printf("OK!\n");
	matrix3x4_t HitboxMatrix = MatrixArray[Bone];
	Hitbox = Vector(HitboxMatrix[0][3], HitboxMatrix[1][3], HitboxMatrix[2][3]);
	return true;
}

Well Ok doesnt print therefore there must be problem in setupbones..