diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1713f3e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/Build +/Intermediate +*.sdf +*.opensdf diff --git a/BlitzExtensions.v12.suo b/BlitzExtensions.v12.suo index 4031cf8..ec20da1 100644 Binary files a/BlitzExtensions.v12.suo and b/BlitzExtensions.v12.suo differ diff --git a/BlitzPointer/BlitzPointer.bb b/BlitzPointer/BlitzPointer.bb new file mode 100644 index 0000000..e69de29 diff --git a/BlitzPointer/BlitzPointer.cpp b/BlitzPointer/BlitzPointer.cpp new file mode 100644 index 0000000..e9d527c --- /dev/null +++ b/BlitzPointer/BlitzPointer.cpp @@ -0,0 +1,180 @@ +// Original Code by Noodoby +// Modified Code by Xaymar + +#include "BlitzPointer.h" + +DLL_EXPORT uint32_t BlitzPointer_GetReturnAddress() { + unsigned int StackPointer, ReturnAddress; + + __asm { //ASM. Do touch if suicidal. + mov StackPointer, esp // Store current Stack Pointer + mov esp, ebp // On X86, EBP[0] is our own function and EBP[1] is the return address. + add esp, 4 // Which means that we can just take it from there into our own variable. + pop ReturnAddress // Just like this. + mov esp, [StackPointer] // And then reset the Stack Pointer. + } + + return ReturnAddress; +} + +DLL_EXPORT uint32_t BlitzPointer_GetFunctionPointer() { + unsigned int StackPointer, ReturnAddress; + + __asm { //ASM. Do touch if suicidal. + mov StackPointer, esp // Store current Stack Pointer + mov esp, ebp // On X86, EBP[0] is our own function and EBP[1] is the return address. + add esp, 4 // Which means that we can just take it from there into our own variable. + pop ReturnAddress // Just like this. + mov esp, [StackPointer] // And then reset the Stack Pointer. + } + + // let's look backwards in memory for the function signature (0x53 0x56 0x57 0x55 0x89 0xE5) for at most one megabyte. + uint8_t* startPtr = (uint8_t*)ReturnAddress; + uint8_t* endPtr = (uint8_t*)(ReturnAddress - 1048576); + for (uint8_t* curPtr = startPtr; curPtr != endPtr; curPtr--) { + if (*(curPtr) == 0x53) // push ebx + if (*(curPtr + 1) == 0x56) // push esi + if (*(curPtr + 2) == 0x57) // push edi + if (*(curPtr + 3) == 0x55) // push ebp + if (*(curPtr + 4) == 0x89 && *(curPtr + 5) == 0xE5) // mov ebp,esp + return (uint32_t)curPtr; + } + + return 0; +} + +uint32_t __declspec(naked) BlitzPointer_CallFunction() { + __asm { + jmp eax + } +} + +DLL_EXPORT uint32_t BlitzPointer_CallFunction0(uint32_t fpFunctionPointer) { + uint32_t returnvalue; + __asm { + call dword ptr[fpFunctionPointer]; + mov[returnvalue], eax; + } + return returnvalue; +} +DLL_EXPORT uint32_t BlitzPointer_CallFunction1(uint32_t fpFunctionPointer, uint32_t p1) { + uint32_t returnvalue; + __asm { + sub esp, 0x4; + mov eax, [p1]; + mov[esp], eax; + call dword ptr[fpFunctionPointer]; + mov[returnvalue], eax; + } + return returnvalue; +} +DLL_EXPORT uint32_t BlitzPointer_CallFunction2(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2) { + uint32_t returnvalue; + __asm { + sub esp, 0x8 + mov eax, [p2]; + mov[esp + 4], eax; + mov eax, [p1]; + mov[esp], eax; + call dword ptr[fpFunctionPointer]; + mov[returnvalue], eax; + } + return returnvalue; +} +DLL_EXPORT uint32_t BlitzPointer_CallFunction3(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2, uint32_t p3) { + uint32_t returnvalue; + __asm { + sub esp, 0xC; + mov eax, [p3]; + mov[esp + 8], eax; + mov eax, [p2]; + mov[esp + 4], eax; + mov eax, [p1]; + mov[esp], eax; + call dword ptr[fpFunctionPointer]; + mov[returnvalue], eax; + } + return returnvalue; +} +DLL_EXPORT uint32_t BlitzPointer_CallFunction4(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4) { + uint32_t returnvalue; + __asm { + sub esp, 0x10; + mov eax, [p4]; + mov[esp + 12], eax; + mov eax, [p3]; + mov[esp + 8], eax; + mov eax, [p2]; + mov[esp + 4], eax; + mov eax, [p1]; + mov[esp], eax; + call dword ptr[fpFunctionPointer]; + mov[returnvalue], eax; + } + return returnvalue; +} + +DLL_EXPORT uint32_t BlitzPointer_CallFunctionS0(uint32_t fpFunctionPointer) { + uint32_t returnvalue; + __asm { + call dword ptr[fpFunctionPointer]; + mov[returnvalue], eax; + } + return *((uint32_t*)(returnvalue + 4)); +} +DLL_EXPORT uint32_t BlitzPointer_CallFunctionS1(uint32_t fpFunctionPointer, uint32_t p1) { + uint32_t returnvalue; + __asm { + sub esp, 0x4; + mov eax, [p1]; + mov[esp], eax; + call dword ptr[fpFunctionPointer]; + mov[returnvalue], eax; + } + return *((uint32_t*)(returnvalue + 4)); +} +DLL_EXPORT uint32_t BlitzPointer_CallFunctionS2(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2) { + uint32_t returnvalue; + __asm { + sub esp, 0x8; + mov eax, [p2]; + mov[esp + 4], eax; + mov eax, [p1]; + mov[esp], eax; + call dword ptr[fpFunctionPointer]; + mov[returnvalue], eax; + } + return *((uint32_t*)(returnvalue + 4)); +} +DLL_EXPORT uint32_t BlitzPointer_CallFunctionS3(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2, uint32_t p3) { + uint32_t returnvalue; + __asm { + sub esp, 0xC; + mov eax, [p3]; + mov[esp + 8], eax; + mov eax, [p2]; + mov[esp + 4], eax; + mov eax, [p1]; + mov[esp], eax; + call dword ptr[fpFunctionPointer]; + mov[returnvalue], eax; + } + return *((uint32_t*)(returnvalue + 4)); +} +DLL_EXPORT uint32_t BlitzPointer_CallFunctionS4(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4) { + uint32_t returnvalue; + __asm { + sub esp, 0x10; + mov eax, [p4]; + mov[esp + 12], eax; + mov eax, [p3]; + mov[esp + 8], eax; + mov eax, [p2]; + mov[esp + 4], eax; + mov eax, [p1]; + mov[esp], eax; + call dword ptr[fpFunctionPointer]; + mov[returnvalue], eax; + } + return *((uint32_t*)(returnvalue + 4)); +} diff --git a/BlitzPointer/BlitzPointer.decls b/BlitzPointer/BlitzPointer.decls new file mode 100644 index 0000000..a877c44 --- /dev/null +++ b/BlitzPointer/BlitzPointer.decls @@ -0,0 +1,1368 @@ +.lib "BlitzPointer.dll" +; BlitzPointer +BlitzPointer_GetReturnAddress%() +BlitzPointer_GetFunctionPointer%() +BlitzPointer_CallFunctionV(lpFunctionPointer%) : "BlitzPointer_CallFunction0" +BlitzPointer_CallFunctionVI(lpFunctionPointer%, P1%) : "BlitzPointer_CallFunction1" +BlitzPointer_CallFunctionVII(lpFunctionPointer%, p1%, p2%) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVIII(lpFunctionPointer%, p1%, p2%, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVIIII(lpFunctionPointer%, p1%, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIIIF(lpFunctionPointer%, p1%, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIIIS(lpFunctionPointer%, p1%, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIIIP(lpFunctionPointer%, p1%, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIIF(lpFunctionPointer%, p1%, p2%, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVIIFI(lpFunctionPointer%, p1%, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIIFF(lpFunctionPointer%, p1%, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIIFS(lpFunctionPointer%, p1%, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIIFP(lpFunctionPointer%, p1%, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIIS(lpFunctionPointer%, p1%, p2%, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVIISI(lpFunctionPointer%, p1%, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIISF(lpFunctionPointer%, p1%, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIISS(lpFunctionPointer%, p1%, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIISP(lpFunctionPointer%, p1%, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIIP(lpFunctionPointer%, p1%, p2%, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVIIPI(lpFunctionPointer%, p1%, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIIPF(lpFunctionPointer%, p1%, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIIPS(lpFunctionPointer%, p1%, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIIPP(lpFunctionPointer%, p1%, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIF(lpFunctionPointer%, p1%, p2#) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVIFI(lpFunctionPointer%, p1%, p2#, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVIFII(lpFunctionPointer%, p1%, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFIF(lpFunctionPointer%, p1%, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFIS(lpFunctionPointer%, p1%, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFIP(lpFunctionPointer%, p1%, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFF(lpFunctionPointer%, p1%, p2#, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVIFFI(lpFunctionPointer%, p1%, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFFF(lpFunctionPointer%, p1%, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFFS(lpFunctionPointer%, p1%, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFFP(lpFunctionPointer%, p1%, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFS(lpFunctionPointer%, p1%, p2#, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVIFSI(lpFunctionPointer%, p1%, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFSF(lpFunctionPointer%, p1%, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFSS(lpFunctionPointer%, p1%, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFSP(lpFunctionPointer%, p1%, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFP(lpFunctionPointer%, p1%, p2#, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVIFPI(lpFunctionPointer%, p1%, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFPF(lpFunctionPointer%, p1%, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFPS(lpFunctionPointer%, p1%, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIFPP(lpFunctionPointer%, p1%, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIS(lpFunctionPointer%, p1%, p2$) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVISI(lpFunctionPointer%, p1%, p2$, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVISII(lpFunctionPointer%, p1%, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISIF(lpFunctionPointer%, p1%, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISIS(lpFunctionPointer%, p1%, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISIP(lpFunctionPointer%, p1%, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISF(lpFunctionPointer%, p1%, p2$, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVISFI(lpFunctionPointer%, p1%, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISFF(lpFunctionPointer%, p1%, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISFS(lpFunctionPointer%, p1%, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISFP(lpFunctionPointer%, p1%, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISS(lpFunctionPointer%, p1%, p2$, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVISSI(lpFunctionPointer%, p1%, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISSF(lpFunctionPointer%, p1%, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISSS(lpFunctionPointer%, p1%, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISSP(lpFunctionPointer%, p1%, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISP(lpFunctionPointer%, p1%, p2$, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVISPI(lpFunctionPointer%, p1%, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISPF(lpFunctionPointer%, p1%, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISPS(lpFunctionPointer%, p1%, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVISPP(lpFunctionPointer%, p1%, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIP(lpFunctionPointer%, p1%, p2*) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVIPI(lpFunctionPointer%, p1%, p2*, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVIPII(lpFunctionPointer%, p1%, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPIF(lpFunctionPointer%, p1%, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPIS(lpFunctionPointer%, p1%, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPIP(lpFunctionPointer%, p1%, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPF(lpFunctionPointer%, p1%, p2*, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVIPFI(lpFunctionPointer%, p1%, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPFF(lpFunctionPointer%, p1%, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPFS(lpFunctionPointer%, p1%, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPFP(lpFunctionPointer%, p1%, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPS(lpFunctionPointer%, p1%, p2*, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVIPSI(lpFunctionPointer%, p1%, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPSF(lpFunctionPointer%, p1%, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPSS(lpFunctionPointer%, p1%, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPSP(lpFunctionPointer%, p1%, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPP(lpFunctionPointer%, p1%, p2*, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVIPPI(lpFunctionPointer%, p1%, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPPF(lpFunctionPointer%, p1%, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPPS(lpFunctionPointer%, p1%, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVIPPP(lpFunctionPointer%, p1%, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVF(lpFunctionPointer%, P1#) : "BlitzPointer_CallFunction1" +BlitzPointer_CallFunctionVFI(lpFunctionPointer%, p1#, p2%) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVFII(lpFunctionPointer%, p1#, p2%, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFIII(lpFunctionPointer%, p1#, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFIIF(lpFunctionPointer%, p1#, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFIIS(lpFunctionPointer%, p1#, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFIIP(lpFunctionPointer%, p1#, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFIF(lpFunctionPointer%, p1#, p2%, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFIFI(lpFunctionPointer%, p1#, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFIFF(lpFunctionPointer%, p1#, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFIFS(lpFunctionPointer%, p1#, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFIFP(lpFunctionPointer%, p1#, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFIS(lpFunctionPointer%, p1#, p2%, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFISI(lpFunctionPointer%, p1#, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFISF(lpFunctionPointer%, p1#, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFISS(lpFunctionPointer%, p1#, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFISP(lpFunctionPointer%, p1#, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFIP(lpFunctionPointer%, p1#, p2%, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFIPI(lpFunctionPointer%, p1#, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFIPF(lpFunctionPointer%, p1#, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFIPS(lpFunctionPointer%, p1#, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFIPP(lpFunctionPointer%, p1#, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFF(lpFunctionPointer%, p1#, p2#) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVFFI(lpFunctionPointer%, p1#, p2#, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFFII(lpFunctionPointer%, p1#, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFIF(lpFunctionPointer%, p1#, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFIS(lpFunctionPointer%, p1#, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFIP(lpFunctionPointer%, p1#, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFF(lpFunctionPointer%, p1#, p2#, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFFFI(lpFunctionPointer%, p1#, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFFF(lpFunctionPointer%, p1#, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFFS(lpFunctionPointer%, p1#, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFFP(lpFunctionPointer%, p1#, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFS(lpFunctionPointer%, p1#, p2#, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFFSI(lpFunctionPointer%, p1#, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFSF(lpFunctionPointer%, p1#, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFSS(lpFunctionPointer%, p1#, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFSP(lpFunctionPointer%, p1#, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFP(lpFunctionPointer%, p1#, p2#, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFFPI(lpFunctionPointer%, p1#, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFPF(lpFunctionPointer%, p1#, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFPS(lpFunctionPointer%, p1#, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFFPP(lpFunctionPointer%, p1#, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFS(lpFunctionPointer%, p1#, p2$) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVFSI(lpFunctionPointer%, p1#, p2$, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFSII(lpFunctionPointer%, p1#, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSIF(lpFunctionPointer%, p1#, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSIS(lpFunctionPointer%, p1#, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSIP(lpFunctionPointer%, p1#, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSF(lpFunctionPointer%, p1#, p2$, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFSFI(lpFunctionPointer%, p1#, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSFF(lpFunctionPointer%, p1#, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSFS(lpFunctionPointer%, p1#, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSFP(lpFunctionPointer%, p1#, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSS(lpFunctionPointer%, p1#, p2$, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFSSI(lpFunctionPointer%, p1#, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSSF(lpFunctionPointer%, p1#, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSSS(lpFunctionPointer%, p1#, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSSP(lpFunctionPointer%, p1#, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSP(lpFunctionPointer%, p1#, p2$, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFSPI(lpFunctionPointer%, p1#, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSPF(lpFunctionPointer%, p1#, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSPS(lpFunctionPointer%, p1#, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFSPP(lpFunctionPointer%, p1#, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFP(lpFunctionPointer%, p1#, p2*) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVFPI(lpFunctionPointer%, p1#, p2*, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFPII(lpFunctionPointer%, p1#, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPIF(lpFunctionPointer%, p1#, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPIS(lpFunctionPointer%, p1#, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPIP(lpFunctionPointer%, p1#, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPF(lpFunctionPointer%, p1#, p2*, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFPFI(lpFunctionPointer%, p1#, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPFF(lpFunctionPointer%, p1#, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPFS(lpFunctionPointer%, p1#, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPFP(lpFunctionPointer%, p1#, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPS(lpFunctionPointer%, p1#, p2*, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFPSI(lpFunctionPointer%, p1#, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPSF(lpFunctionPointer%, p1#, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPSS(lpFunctionPointer%, p1#, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPSP(lpFunctionPointer%, p1#, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPP(lpFunctionPointer%, p1#, p2*, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVFPPI(lpFunctionPointer%, p1#, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPPF(lpFunctionPointer%, p1#, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPPS(lpFunctionPointer%, p1#, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVFPPP(lpFunctionPointer%, p1#, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVS(lpFunctionPointer%, P1$) : "BlitzPointer_CallFunction1" +BlitzPointer_CallFunctionVSI(lpFunctionPointer%, p1$, p2%) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVSII(lpFunctionPointer%, p1$, p2%, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSIII(lpFunctionPointer%, p1$, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSIIF(lpFunctionPointer%, p1$, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSIIS(lpFunctionPointer%, p1$, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSIIP(lpFunctionPointer%, p1$, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSIF(lpFunctionPointer%, p1$, p2%, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSIFI(lpFunctionPointer%, p1$, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSIFF(lpFunctionPointer%, p1$, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSIFS(lpFunctionPointer%, p1$, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSIFP(lpFunctionPointer%, p1$, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSIS(lpFunctionPointer%, p1$, p2%, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSISI(lpFunctionPointer%, p1$, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSISF(lpFunctionPointer%, p1$, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSISS(lpFunctionPointer%, p1$, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSISP(lpFunctionPointer%, p1$, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSIP(lpFunctionPointer%, p1$, p2%, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSIPI(lpFunctionPointer%, p1$, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSIPF(lpFunctionPointer%, p1$, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSIPS(lpFunctionPointer%, p1$, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSIPP(lpFunctionPointer%, p1$, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSF(lpFunctionPointer%, p1$, p2#) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVSFI(lpFunctionPointer%, p1$, p2#, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSFII(lpFunctionPointer%, p1$, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFIF(lpFunctionPointer%, p1$, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFIS(lpFunctionPointer%, p1$, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFIP(lpFunctionPointer%, p1$, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFF(lpFunctionPointer%, p1$, p2#, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSFFI(lpFunctionPointer%, p1$, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFFF(lpFunctionPointer%, p1$, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFFS(lpFunctionPointer%, p1$, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFFP(lpFunctionPointer%, p1$, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFS(lpFunctionPointer%, p1$, p2#, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSFSI(lpFunctionPointer%, p1$, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFSF(lpFunctionPointer%, p1$, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFSS(lpFunctionPointer%, p1$, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFSP(lpFunctionPointer%, p1$, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFP(lpFunctionPointer%, p1$, p2#, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSFPI(lpFunctionPointer%, p1$, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFPF(lpFunctionPointer%, p1$, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFPS(lpFunctionPointer%, p1$, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSFPP(lpFunctionPointer%, p1$, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSS(lpFunctionPointer%, p1$, p2$) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVSSI(lpFunctionPointer%, p1$, p2$, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSSII(lpFunctionPointer%, p1$, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSIF(lpFunctionPointer%, p1$, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSIS(lpFunctionPointer%, p1$, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSIP(lpFunctionPointer%, p1$, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSF(lpFunctionPointer%, p1$, p2$, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSSFI(lpFunctionPointer%, p1$, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSFF(lpFunctionPointer%, p1$, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSFS(lpFunctionPointer%, p1$, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSFP(lpFunctionPointer%, p1$, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSS(lpFunctionPointer%, p1$, p2$, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSSSI(lpFunctionPointer%, p1$, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSSF(lpFunctionPointer%, p1$, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSSS(lpFunctionPointer%, p1$, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSSP(lpFunctionPointer%, p1$, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSP(lpFunctionPointer%, p1$, p2$, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSSPI(lpFunctionPointer%, p1$, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSPF(lpFunctionPointer%, p1$, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSPS(lpFunctionPointer%, p1$, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSSPP(lpFunctionPointer%, p1$, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSP(lpFunctionPointer%, p1$, p2*) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVSPI(lpFunctionPointer%, p1$, p2*, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSPII(lpFunctionPointer%, p1$, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPIF(lpFunctionPointer%, p1$, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPIS(lpFunctionPointer%, p1$, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPIP(lpFunctionPointer%, p1$, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPF(lpFunctionPointer%, p1$, p2*, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSPFI(lpFunctionPointer%, p1$, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPFF(lpFunctionPointer%, p1$, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPFS(lpFunctionPointer%, p1$, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPFP(lpFunctionPointer%, p1$, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPS(lpFunctionPointer%, p1$, p2*, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSPSI(lpFunctionPointer%, p1$, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPSF(lpFunctionPointer%, p1$, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPSS(lpFunctionPointer%, p1$, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPSP(lpFunctionPointer%, p1$, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPP(lpFunctionPointer%, p1$, p2*, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVSPPI(lpFunctionPointer%, p1$, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPPF(lpFunctionPointer%, p1$, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPPS(lpFunctionPointer%, p1$, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVSPPP(lpFunctionPointer%, p1$, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVP(lpFunctionPointer%, P1*) : "BlitzPointer_CallFunction1" +BlitzPointer_CallFunctionVPI(lpFunctionPointer%, p1*, p2%) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVPII(lpFunctionPointer%, p1*, p2%, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPIII(lpFunctionPointer%, p1*, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPIIF(lpFunctionPointer%, p1*, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPIIS(lpFunctionPointer%, p1*, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPIIP(lpFunctionPointer%, p1*, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPIF(lpFunctionPointer%, p1*, p2%, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPIFI(lpFunctionPointer%, p1*, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPIFF(lpFunctionPointer%, p1*, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPIFS(lpFunctionPointer%, p1*, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPIFP(lpFunctionPointer%, p1*, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPIS(lpFunctionPointer%, p1*, p2%, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPISI(lpFunctionPointer%, p1*, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPISF(lpFunctionPointer%, p1*, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPISS(lpFunctionPointer%, p1*, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPISP(lpFunctionPointer%, p1*, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPIP(lpFunctionPointer%, p1*, p2%, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPIPI(lpFunctionPointer%, p1*, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPIPF(lpFunctionPointer%, p1*, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPIPS(lpFunctionPointer%, p1*, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPIPP(lpFunctionPointer%, p1*, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPF(lpFunctionPointer%, p1*, p2#) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVPFI(lpFunctionPointer%, p1*, p2#, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPFII(lpFunctionPointer%, p1*, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFIF(lpFunctionPointer%, p1*, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFIS(lpFunctionPointer%, p1*, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFIP(lpFunctionPointer%, p1*, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFF(lpFunctionPointer%, p1*, p2#, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPFFI(lpFunctionPointer%, p1*, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFFF(lpFunctionPointer%, p1*, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFFS(lpFunctionPointer%, p1*, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFFP(lpFunctionPointer%, p1*, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFS(lpFunctionPointer%, p1*, p2#, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPFSI(lpFunctionPointer%, p1*, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFSF(lpFunctionPointer%, p1*, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFSS(lpFunctionPointer%, p1*, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFSP(lpFunctionPointer%, p1*, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFP(lpFunctionPointer%, p1*, p2#, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPFPI(lpFunctionPointer%, p1*, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFPF(lpFunctionPointer%, p1*, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFPS(lpFunctionPointer%, p1*, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPFPP(lpFunctionPointer%, p1*, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPS(lpFunctionPointer%, p1*, p2$) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVPSI(lpFunctionPointer%, p1*, p2$, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPSII(lpFunctionPointer%, p1*, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSIF(lpFunctionPointer%, p1*, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSIS(lpFunctionPointer%, p1*, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSIP(lpFunctionPointer%, p1*, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSF(lpFunctionPointer%, p1*, p2$, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPSFI(lpFunctionPointer%, p1*, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSFF(lpFunctionPointer%, p1*, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSFS(lpFunctionPointer%, p1*, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSFP(lpFunctionPointer%, p1*, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSS(lpFunctionPointer%, p1*, p2$, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPSSI(lpFunctionPointer%, p1*, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSSF(lpFunctionPointer%, p1*, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSSS(lpFunctionPointer%, p1*, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSSP(lpFunctionPointer%, p1*, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSP(lpFunctionPointer%, p1*, p2$, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPSPI(lpFunctionPointer%, p1*, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSPF(lpFunctionPointer%, p1*, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSPS(lpFunctionPointer%, p1*, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPSPP(lpFunctionPointer%, p1*, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPP(lpFunctionPointer%, p1*, p2*) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionVPPI(lpFunctionPointer%, p1*, p2*, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPPII(lpFunctionPointer%, p1*, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPIF(lpFunctionPointer%, p1*, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPIS(lpFunctionPointer%, p1*, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPIP(lpFunctionPointer%, p1*, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPF(lpFunctionPointer%, p1*, p2*, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPPFI(lpFunctionPointer%, p1*, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPFF(lpFunctionPointer%, p1*, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPFS(lpFunctionPointer%, p1*, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPFP(lpFunctionPointer%, p1*, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPS(lpFunctionPointer%, p1*, p2*, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPPSI(lpFunctionPointer%, p1*, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPSF(lpFunctionPointer%, p1*, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPSS(lpFunctionPointer%, p1*, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPSP(lpFunctionPointer%, p1*, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPP(lpFunctionPointer%, p1*, p2*, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionVPPPI(lpFunctionPointer%, p1*, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPPF(lpFunctionPointer%, p1*, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPPS(lpFunctionPointer%, p1*, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionVPPPP(lpFunctionPointer%, p1*, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionI%(lpFunctionPointer%) : "BlitzPointer_CallFunction0" +BlitzPointer_CallFunctionII%(lpFunctionPointer%, P1%) : "BlitzPointer_CallFunction1" +BlitzPointer_CallFunctionIII%(lpFunctionPointer%, p1%, p2%) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionIIII%(lpFunctionPointer%, p1%, p2%, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIIIII%(lpFunctionPointer%, p1%, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIIIF%(lpFunctionPointer%, p1%, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIIIS%(lpFunctionPointer%, p1%, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIIIP%(lpFunctionPointer%, p1%, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIIF%(lpFunctionPointer%, p1%, p2%, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIIIFI%(lpFunctionPointer%, p1%, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIIFF%(lpFunctionPointer%, p1%, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIIFS%(lpFunctionPointer%, p1%, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIIFP%(lpFunctionPointer%, p1%, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIIS%(lpFunctionPointer%, p1%, p2%, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIIISI%(lpFunctionPointer%, p1%, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIISF%(lpFunctionPointer%, p1%, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIISS%(lpFunctionPointer%, p1%, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIISP%(lpFunctionPointer%, p1%, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIIP%(lpFunctionPointer%, p1%, p2%, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIIIPI%(lpFunctionPointer%, p1%, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIIPF%(lpFunctionPointer%, p1%, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIIPS%(lpFunctionPointer%, p1%, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIIPP%(lpFunctionPointer%, p1%, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIF%(lpFunctionPointer%, p1%, p2#) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionIIFI%(lpFunctionPointer%, p1%, p2#, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIIFII%(lpFunctionPointer%, p1%, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFIF%(lpFunctionPointer%, p1%, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFIS%(lpFunctionPointer%, p1%, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFIP%(lpFunctionPointer%, p1%, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFF%(lpFunctionPointer%, p1%, p2#, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIIFFI%(lpFunctionPointer%, p1%, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFFF%(lpFunctionPointer%, p1%, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFFS%(lpFunctionPointer%, p1%, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFFP%(lpFunctionPointer%, p1%, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFS%(lpFunctionPointer%, p1%, p2#, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIIFSI%(lpFunctionPointer%, p1%, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFSF%(lpFunctionPointer%, p1%, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFSS%(lpFunctionPointer%, p1%, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFSP%(lpFunctionPointer%, p1%, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFP%(lpFunctionPointer%, p1%, p2#, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIIFPI%(lpFunctionPointer%, p1%, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFPF%(lpFunctionPointer%, p1%, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFPS%(lpFunctionPointer%, p1%, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIFPP%(lpFunctionPointer%, p1%, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIS%(lpFunctionPointer%, p1%, p2$) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionIISI%(lpFunctionPointer%, p1%, p2$, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIISII%(lpFunctionPointer%, p1%, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISIF%(lpFunctionPointer%, p1%, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISIS%(lpFunctionPointer%, p1%, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISIP%(lpFunctionPointer%, p1%, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISF%(lpFunctionPointer%, p1%, p2$, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIISFI%(lpFunctionPointer%, p1%, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISFF%(lpFunctionPointer%, p1%, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISFS%(lpFunctionPointer%, p1%, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISFP%(lpFunctionPointer%, p1%, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISS%(lpFunctionPointer%, p1%, p2$, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIISSI%(lpFunctionPointer%, p1%, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISSF%(lpFunctionPointer%, p1%, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISSS%(lpFunctionPointer%, p1%, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISSP%(lpFunctionPointer%, p1%, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISP%(lpFunctionPointer%, p1%, p2$, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIISPI%(lpFunctionPointer%, p1%, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISPF%(lpFunctionPointer%, p1%, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISPS%(lpFunctionPointer%, p1%, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIISPP%(lpFunctionPointer%, p1%, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIP%(lpFunctionPointer%, p1%, p2*) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionIIPI%(lpFunctionPointer%, p1%, p2*, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIIPII%(lpFunctionPointer%, p1%, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPIF%(lpFunctionPointer%, p1%, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPIS%(lpFunctionPointer%, p1%, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPIP%(lpFunctionPointer%, p1%, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPF%(lpFunctionPointer%, p1%, p2*, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIIPFI%(lpFunctionPointer%, p1%, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPFF%(lpFunctionPointer%, p1%, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPFS%(lpFunctionPointer%, p1%, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPFP%(lpFunctionPointer%, p1%, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPS%(lpFunctionPointer%, p1%, p2*, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIIPSI%(lpFunctionPointer%, p1%, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPSF%(lpFunctionPointer%, p1%, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPSS%(lpFunctionPointer%, p1%, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPSP%(lpFunctionPointer%, p1%, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPP%(lpFunctionPointer%, p1%, p2*, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIIPPI%(lpFunctionPointer%, p1%, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPPF%(lpFunctionPointer%, p1%, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPPS%(lpFunctionPointer%, p1%, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIIPPP%(lpFunctionPointer%, p1%, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIF%(lpFunctionPointer%, P1#) : "BlitzPointer_CallFunction1" +BlitzPointer_CallFunctionIFI%(lpFunctionPointer%, p1#, p2%) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionIFII%(lpFunctionPointer%, p1#, p2%, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFIII%(lpFunctionPointer%, p1#, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFIIF%(lpFunctionPointer%, p1#, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFIIS%(lpFunctionPointer%, p1#, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFIIP%(lpFunctionPointer%, p1#, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFIF%(lpFunctionPointer%, p1#, p2%, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFIFI%(lpFunctionPointer%, p1#, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFIFF%(lpFunctionPointer%, p1#, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFIFS%(lpFunctionPointer%, p1#, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFIFP%(lpFunctionPointer%, p1#, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFIS%(lpFunctionPointer%, p1#, p2%, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFISI%(lpFunctionPointer%, p1#, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFISF%(lpFunctionPointer%, p1#, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFISS%(lpFunctionPointer%, p1#, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFISP%(lpFunctionPointer%, p1#, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFIP%(lpFunctionPointer%, p1#, p2%, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFIPI%(lpFunctionPointer%, p1#, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFIPF%(lpFunctionPointer%, p1#, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFIPS%(lpFunctionPointer%, p1#, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFIPP%(lpFunctionPointer%, p1#, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFF%(lpFunctionPointer%, p1#, p2#) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionIFFI%(lpFunctionPointer%, p1#, p2#, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFFII%(lpFunctionPointer%, p1#, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFIF%(lpFunctionPointer%, p1#, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFIS%(lpFunctionPointer%, p1#, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFIP%(lpFunctionPointer%, p1#, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFF%(lpFunctionPointer%, p1#, p2#, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFFFI%(lpFunctionPointer%, p1#, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFFF%(lpFunctionPointer%, p1#, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFFS%(lpFunctionPointer%, p1#, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFFP%(lpFunctionPointer%, p1#, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFS%(lpFunctionPointer%, p1#, p2#, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFFSI%(lpFunctionPointer%, p1#, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFSF%(lpFunctionPointer%, p1#, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFSS%(lpFunctionPointer%, p1#, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFSP%(lpFunctionPointer%, p1#, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFP%(lpFunctionPointer%, p1#, p2#, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFFPI%(lpFunctionPointer%, p1#, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFPF%(lpFunctionPointer%, p1#, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFPS%(lpFunctionPointer%, p1#, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFFPP%(lpFunctionPointer%, p1#, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFS%(lpFunctionPointer%, p1#, p2$) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionIFSI%(lpFunctionPointer%, p1#, p2$, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFSII%(lpFunctionPointer%, p1#, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSIF%(lpFunctionPointer%, p1#, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSIS%(lpFunctionPointer%, p1#, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSIP%(lpFunctionPointer%, p1#, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSF%(lpFunctionPointer%, p1#, p2$, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFSFI%(lpFunctionPointer%, p1#, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSFF%(lpFunctionPointer%, p1#, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSFS%(lpFunctionPointer%, p1#, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSFP%(lpFunctionPointer%, p1#, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSS%(lpFunctionPointer%, p1#, p2$, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFSSI%(lpFunctionPointer%, p1#, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSSF%(lpFunctionPointer%, p1#, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSSS%(lpFunctionPointer%, p1#, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSSP%(lpFunctionPointer%, p1#, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSP%(lpFunctionPointer%, p1#, p2$, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFSPI%(lpFunctionPointer%, p1#, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSPF%(lpFunctionPointer%, p1#, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSPS%(lpFunctionPointer%, p1#, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFSPP%(lpFunctionPointer%, p1#, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFP%(lpFunctionPointer%, p1#, p2*) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionIFPI%(lpFunctionPointer%, p1#, p2*, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFPII%(lpFunctionPointer%, p1#, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPIF%(lpFunctionPointer%, p1#, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPIS%(lpFunctionPointer%, p1#, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPIP%(lpFunctionPointer%, p1#, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPF%(lpFunctionPointer%, p1#, p2*, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFPFI%(lpFunctionPointer%, p1#, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPFF%(lpFunctionPointer%, p1#, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPFS%(lpFunctionPointer%, p1#, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPFP%(lpFunctionPointer%, p1#, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPS%(lpFunctionPointer%, p1#, p2*, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFPSI%(lpFunctionPointer%, p1#, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPSF%(lpFunctionPointer%, p1#, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPSS%(lpFunctionPointer%, p1#, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPSP%(lpFunctionPointer%, p1#, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPP%(lpFunctionPointer%, p1#, p2*, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIFPPI%(lpFunctionPointer%, p1#, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPPF%(lpFunctionPointer%, p1#, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPPS%(lpFunctionPointer%, p1#, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIFPPP%(lpFunctionPointer%, p1#, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIS%(lpFunctionPointer%, P1$) : "BlitzPointer_CallFunction1" +BlitzPointer_CallFunctionISI%(lpFunctionPointer%, p1$, p2%) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionISII%(lpFunctionPointer%, p1$, p2%, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISIII%(lpFunctionPointer%, p1$, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISIIF%(lpFunctionPointer%, p1$, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISIIS%(lpFunctionPointer%, p1$, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISIIP%(lpFunctionPointer%, p1$, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISIF%(lpFunctionPointer%, p1$, p2%, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISIFI%(lpFunctionPointer%, p1$, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISIFF%(lpFunctionPointer%, p1$, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISIFS%(lpFunctionPointer%, p1$, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISIFP%(lpFunctionPointer%, p1$, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISIS%(lpFunctionPointer%, p1$, p2%, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISISI%(lpFunctionPointer%, p1$, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISISF%(lpFunctionPointer%, p1$, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISISS%(lpFunctionPointer%, p1$, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISISP%(lpFunctionPointer%, p1$, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISIP%(lpFunctionPointer%, p1$, p2%, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISIPI%(lpFunctionPointer%, p1$, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISIPF%(lpFunctionPointer%, p1$, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISIPS%(lpFunctionPointer%, p1$, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISIPP%(lpFunctionPointer%, p1$, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISF%(lpFunctionPointer%, p1$, p2#) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionISFI%(lpFunctionPointer%, p1$, p2#, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISFII%(lpFunctionPointer%, p1$, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFIF%(lpFunctionPointer%, p1$, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFIS%(lpFunctionPointer%, p1$, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFIP%(lpFunctionPointer%, p1$, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFF%(lpFunctionPointer%, p1$, p2#, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISFFI%(lpFunctionPointer%, p1$, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFFF%(lpFunctionPointer%, p1$, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFFS%(lpFunctionPointer%, p1$, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFFP%(lpFunctionPointer%, p1$, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFS%(lpFunctionPointer%, p1$, p2#, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISFSI%(lpFunctionPointer%, p1$, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFSF%(lpFunctionPointer%, p1$, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFSS%(lpFunctionPointer%, p1$, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFSP%(lpFunctionPointer%, p1$, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFP%(lpFunctionPointer%, p1$, p2#, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISFPI%(lpFunctionPointer%, p1$, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFPF%(lpFunctionPointer%, p1$, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFPS%(lpFunctionPointer%, p1$, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISFPP%(lpFunctionPointer%, p1$, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISS%(lpFunctionPointer%, p1$, p2$) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionISSI%(lpFunctionPointer%, p1$, p2$, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISSII%(lpFunctionPointer%, p1$, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSIF%(lpFunctionPointer%, p1$, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSIS%(lpFunctionPointer%, p1$, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSIP%(lpFunctionPointer%, p1$, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSF%(lpFunctionPointer%, p1$, p2$, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISSFI%(lpFunctionPointer%, p1$, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSFF%(lpFunctionPointer%, p1$, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSFS%(lpFunctionPointer%, p1$, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSFP%(lpFunctionPointer%, p1$, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSS%(lpFunctionPointer%, p1$, p2$, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISSSI%(lpFunctionPointer%, p1$, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSSF%(lpFunctionPointer%, p1$, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSSS%(lpFunctionPointer%, p1$, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSSP%(lpFunctionPointer%, p1$, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSP%(lpFunctionPointer%, p1$, p2$, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISSPI%(lpFunctionPointer%, p1$, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSPF%(lpFunctionPointer%, p1$, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSPS%(lpFunctionPointer%, p1$, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISSPP%(lpFunctionPointer%, p1$, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISP%(lpFunctionPointer%, p1$, p2*) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionISPI%(lpFunctionPointer%, p1$, p2*, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISPII%(lpFunctionPointer%, p1$, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPIF%(lpFunctionPointer%, p1$, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPIS%(lpFunctionPointer%, p1$, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPIP%(lpFunctionPointer%, p1$, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPF%(lpFunctionPointer%, p1$, p2*, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISPFI%(lpFunctionPointer%, p1$, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPFF%(lpFunctionPointer%, p1$, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPFS%(lpFunctionPointer%, p1$, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPFP%(lpFunctionPointer%, p1$, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPS%(lpFunctionPointer%, p1$, p2*, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISPSI%(lpFunctionPointer%, p1$, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPSF%(lpFunctionPointer%, p1$, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPSS%(lpFunctionPointer%, p1$, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPSP%(lpFunctionPointer%, p1$, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPP%(lpFunctionPointer%, p1$, p2*, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionISPPI%(lpFunctionPointer%, p1$, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPPF%(lpFunctionPointer%, p1$, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPPS%(lpFunctionPointer%, p1$, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionISPPP%(lpFunctionPointer%, p1$, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIP%(lpFunctionPointer%, P1*) : "BlitzPointer_CallFunction1" +BlitzPointer_CallFunctionIPI%(lpFunctionPointer%, p1*, p2%) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionIPII%(lpFunctionPointer%, p1*, p2%, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPIII%(lpFunctionPointer%, p1*, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPIIF%(lpFunctionPointer%, p1*, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPIIS%(lpFunctionPointer%, p1*, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPIIP%(lpFunctionPointer%, p1*, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPIF%(lpFunctionPointer%, p1*, p2%, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPIFI%(lpFunctionPointer%, p1*, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPIFF%(lpFunctionPointer%, p1*, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPIFS%(lpFunctionPointer%, p1*, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPIFP%(lpFunctionPointer%, p1*, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPIS%(lpFunctionPointer%, p1*, p2%, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPISI%(lpFunctionPointer%, p1*, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPISF%(lpFunctionPointer%, p1*, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPISS%(lpFunctionPointer%, p1*, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPISP%(lpFunctionPointer%, p1*, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPIP%(lpFunctionPointer%, p1*, p2%, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPIPI%(lpFunctionPointer%, p1*, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPIPF%(lpFunctionPointer%, p1*, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPIPS%(lpFunctionPointer%, p1*, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPIPP%(lpFunctionPointer%, p1*, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPF%(lpFunctionPointer%, p1*, p2#) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionIPFI%(lpFunctionPointer%, p1*, p2#, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPFII%(lpFunctionPointer%, p1*, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFIF%(lpFunctionPointer%, p1*, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFIS%(lpFunctionPointer%, p1*, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFIP%(lpFunctionPointer%, p1*, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFF%(lpFunctionPointer%, p1*, p2#, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPFFI%(lpFunctionPointer%, p1*, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFFF%(lpFunctionPointer%, p1*, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFFS%(lpFunctionPointer%, p1*, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFFP%(lpFunctionPointer%, p1*, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFS%(lpFunctionPointer%, p1*, p2#, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPFSI%(lpFunctionPointer%, p1*, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFSF%(lpFunctionPointer%, p1*, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFSS%(lpFunctionPointer%, p1*, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFSP%(lpFunctionPointer%, p1*, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFP%(lpFunctionPointer%, p1*, p2#, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPFPI%(lpFunctionPointer%, p1*, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFPF%(lpFunctionPointer%, p1*, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFPS%(lpFunctionPointer%, p1*, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPFPP%(lpFunctionPointer%, p1*, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPS%(lpFunctionPointer%, p1*, p2$) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionIPSI%(lpFunctionPointer%, p1*, p2$, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPSII%(lpFunctionPointer%, p1*, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSIF%(lpFunctionPointer%, p1*, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSIS%(lpFunctionPointer%, p1*, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSIP%(lpFunctionPointer%, p1*, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSF%(lpFunctionPointer%, p1*, p2$, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPSFI%(lpFunctionPointer%, p1*, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSFF%(lpFunctionPointer%, p1*, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSFS%(lpFunctionPointer%, p1*, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSFP%(lpFunctionPointer%, p1*, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSS%(lpFunctionPointer%, p1*, p2$, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPSSI%(lpFunctionPointer%, p1*, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSSF%(lpFunctionPointer%, p1*, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSSS%(lpFunctionPointer%, p1*, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSSP%(lpFunctionPointer%, p1*, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSP%(lpFunctionPointer%, p1*, p2$, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPSPI%(lpFunctionPointer%, p1*, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSPF%(lpFunctionPointer%, p1*, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSPS%(lpFunctionPointer%, p1*, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPSPP%(lpFunctionPointer%, p1*, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPP%(lpFunctionPointer%, p1*, p2*) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionIPPI%(lpFunctionPointer%, p1*, p2*, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPPII%(lpFunctionPointer%, p1*, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPIF%(lpFunctionPointer%, p1*, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPIS%(lpFunctionPointer%, p1*, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPIP%(lpFunctionPointer%, p1*, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPF%(lpFunctionPointer%, p1*, p2*, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPPFI%(lpFunctionPointer%, p1*, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPFF%(lpFunctionPointer%, p1*, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPFS%(lpFunctionPointer%, p1*, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPFP%(lpFunctionPointer%, p1*, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPS%(lpFunctionPointer%, p1*, p2*, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPPSI%(lpFunctionPointer%, p1*, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPSF%(lpFunctionPointer%, p1*, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPSS%(lpFunctionPointer%, p1*, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPSP%(lpFunctionPointer%, p1*, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPP%(lpFunctionPointer%, p1*, p2*, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionIPPPI%(lpFunctionPointer%, p1*, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPPF%(lpFunctionPointer%, p1*, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPPS%(lpFunctionPointer%, p1*, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionIPPPP%(lpFunctionPointer%, p1*, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionF#(lpFunctionPointer%) : "BlitzPointer_CallFunction0" +BlitzPointer_CallFunctionFI#(lpFunctionPointer%, P1%) : "BlitzPointer_CallFunction1" +BlitzPointer_CallFunctionFII#(lpFunctionPointer%, p1%, p2%) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFIII#(lpFunctionPointer%, p1%, p2%, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFIIII#(lpFunctionPointer%, p1%, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIIIF#(lpFunctionPointer%, p1%, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIIIS#(lpFunctionPointer%, p1%, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIIIP#(lpFunctionPointer%, p1%, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIIF#(lpFunctionPointer%, p1%, p2%, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFIIFI#(lpFunctionPointer%, p1%, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIIFF#(lpFunctionPointer%, p1%, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIIFS#(lpFunctionPointer%, p1%, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIIFP#(lpFunctionPointer%, p1%, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIIS#(lpFunctionPointer%, p1%, p2%, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFIISI#(lpFunctionPointer%, p1%, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIISF#(lpFunctionPointer%, p1%, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIISS#(lpFunctionPointer%, p1%, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIISP#(lpFunctionPointer%, p1%, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIIP#(lpFunctionPointer%, p1%, p2%, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFIIPI#(lpFunctionPointer%, p1%, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIIPF#(lpFunctionPointer%, p1%, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIIPS#(lpFunctionPointer%, p1%, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIIPP#(lpFunctionPointer%, p1%, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIF#(lpFunctionPointer%, p1%, p2#) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFIFI#(lpFunctionPointer%, p1%, p2#, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFIFII#(lpFunctionPointer%, p1%, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFIF#(lpFunctionPointer%, p1%, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFIS#(lpFunctionPointer%, p1%, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFIP#(lpFunctionPointer%, p1%, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFF#(lpFunctionPointer%, p1%, p2#, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFIFFI#(lpFunctionPointer%, p1%, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFFF#(lpFunctionPointer%, p1%, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFFS#(lpFunctionPointer%, p1%, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFFP#(lpFunctionPointer%, p1%, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFS#(lpFunctionPointer%, p1%, p2#, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFIFSI#(lpFunctionPointer%, p1%, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFSF#(lpFunctionPointer%, p1%, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFSS#(lpFunctionPointer%, p1%, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFSP#(lpFunctionPointer%, p1%, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFP#(lpFunctionPointer%, p1%, p2#, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFIFPI#(lpFunctionPointer%, p1%, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFPF#(lpFunctionPointer%, p1%, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFPS#(lpFunctionPointer%, p1%, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIFPP#(lpFunctionPointer%, p1%, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIS#(lpFunctionPointer%, p1%, p2$) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFISI#(lpFunctionPointer%, p1%, p2$, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFISII#(lpFunctionPointer%, p1%, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISIF#(lpFunctionPointer%, p1%, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISIS#(lpFunctionPointer%, p1%, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISIP#(lpFunctionPointer%, p1%, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISF#(lpFunctionPointer%, p1%, p2$, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFISFI#(lpFunctionPointer%, p1%, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISFF#(lpFunctionPointer%, p1%, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISFS#(lpFunctionPointer%, p1%, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISFP#(lpFunctionPointer%, p1%, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISS#(lpFunctionPointer%, p1%, p2$, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFISSI#(lpFunctionPointer%, p1%, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISSF#(lpFunctionPointer%, p1%, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISSS#(lpFunctionPointer%, p1%, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISSP#(lpFunctionPointer%, p1%, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISP#(lpFunctionPointer%, p1%, p2$, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFISPI#(lpFunctionPointer%, p1%, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISPF#(lpFunctionPointer%, p1%, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISPS#(lpFunctionPointer%, p1%, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFISPP#(lpFunctionPointer%, p1%, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIP#(lpFunctionPointer%, p1%, p2*) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFIPI#(lpFunctionPointer%, p1%, p2*, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFIPII#(lpFunctionPointer%, p1%, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPIF#(lpFunctionPointer%, p1%, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPIS#(lpFunctionPointer%, p1%, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPIP#(lpFunctionPointer%, p1%, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPF#(lpFunctionPointer%, p1%, p2*, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFIPFI#(lpFunctionPointer%, p1%, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPFF#(lpFunctionPointer%, p1%, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPFS#(lpFunctionPointer%, p1%, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPFP#(lpFunctionPointer%, p1%, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPS#(lpFunctionPointer%, p1%, p2*, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFIPSI#(lpFunctionPointer%, p1%, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPSF#(lpFunctionPointer%, p1%, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPSS#(lpFunctionPointer%, p1%, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPSP#(lpFunctionPointer%, p1%, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPP#(lpFunctionPointer%, p1%, p2*, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFIPPI#(lpFunctionPointer%, p1%, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPPF#(lpFunctionPointer%, p1%, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPPS#(lpFunctionPointer%, p1%, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFIPPP#(lpFunctionPointer%, p1%, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFF#(lpFunctionPointer%, P1#) : "BlitzPointer_CallFunction1" +BlitzPointer_CallFunctionFFI#(lpFunctionPointer%, p1#, p2%) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFFII#(lpFunctionPointer%, p1#, p2%, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFIII#(lpFunctionPointer%, p1#, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFIIF#(lpFunctionPointer%, p1#, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFIIS#(lpFunctionPointer%, p1#, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFIIP#(lpFunctionPointer%, p1#, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFIF#(lpFunctionPointer%, p1#, p2%, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFIFI#(lpFunctionPointer%, p1#, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFIFF#(lpFunctionPointer%, p1#, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFIFS#(lpFunctionPointer%, p1#, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFIFP#(lpFunctionPointer%, p1#, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFIS#(lpFunctionPointer%, p1#, p2%, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFISI#(lpFunctionPointer%, p1#, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFISF#(lpFunctionPointer%, p1#, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFISS#(lpFunctionPointer%, p1#, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFISP#(lpFunctionPointer%, p1#, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFIP#(lpFunctionPointer%, p1#, p2%, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFIPI#(lpFunctionPointer%, p1#, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFIPF#(lpFunctionPointer%, p1#, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFIPS#(lpFunctionPointer%, p1#, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFIPP#(lpFunctionPointer%, p1#, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFF#(lpFunctionPointer%, p1#, p2#) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFFFI#(lpFunctionPointer%, p1#, p2#, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFFII#(lpFunctionPointer%, p1#, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFIF#(lpFunctionPointer%, p1#, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFIS#(lpFunctionPointer%, p1#, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFIP#(lpFunctionPointer%, p1#, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFF#(lpFunctionPointer%, p1#, p2#, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFFFI#(lpFunctionPointer%, p1#, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFFF#(lpFunctionPointer%, p1#, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFFS#(lpFunctionPointer%, p1#, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFFP#(lpFunctionPointer%, p1#, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFS#(lpFunctionPointer%, p1#, p2#, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFFSI#(lpFunctionPointer%, p1#, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFSF#(lpFunctionPointer%, p1#, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFSS#(lpFunctionPointer%, p1#, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFSP#(lpFunctionPointer%, p1#, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFP#(lpFunctionPointer%, p1#, p2#, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFFPI#(lpFunctionPointer%, p1#, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFPF#(lpFunctionPointer%, p1#, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFPS#(lpFunctionPointer%, p1#, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFFPP#(lpFunctionPointer%, p1#, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFS#(lpFunctionPointer%, p1#, p2$) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFFSI#(lpFunctionPointer%, p1#, p2$, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFSII#(lpFunctionPointer%, p1#, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSIF#(lpFunctionPointer%, p1#, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSIS#(lpFunctionPointer%, p1#, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSIP#(lpFunctionPointer%, p1#, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSF#(lpFunctionPointer%, p1#, p2$, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFSFI#(lpFunctionPointer%, p1#, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSFF#(lpFunctionPointer%, p1#, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSFS#(lpFunctionPointer%, p1#, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSFP#(lpFunctionPointer%, p1#, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSS#(lpFunctionPointer%, p1#, p2$, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFSSI#(lpFunctionPointer%, p1#, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSSF#(lpFunctionPointer%, p1#, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSSS#(lpFunctionPointer%, p1#, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSSP#(lpFunctionPointer%, p1#, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSP#(lpFunctionPointer%, p1#, p2$, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFSPI#(lpFunctionPointer%, p1#, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSPF#(lpFunctionPointer%, p1#, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSPS#(lpFunctionPointer%, p1#, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFSPP#(lpFunctionPointer%, p1#, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFP#(lpFunctionPointer%, p1#, p2*) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFFPI#(lpFunctionPointer%, p1#, p2*, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFPII#(lpFunctionPointer%, p1#, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPIF#(lpFunctionPointer%, p1#, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPIS#(lpFunctionPointer%, p1#, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPIP#(lpFunctionPointer%, p1#, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPF#(lpFunctionPointer%, p1#, p2*, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFPFI#(lpFunctionPointer%, p1#, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPFF#(lpFunctionPointer%, p1#, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPFS#(lpFunctionPointer%, p1#, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPFP#(lpFunctionPointer%, p1#, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPS#(lpFunctionPointer%, p1#, p2*, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFPSI#(lpFunctionPointer%, p1#, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPSF#(lpFunctionPointer%, p1#, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPSS#(lpFunctionPointer%, p1#, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPSP#(lpFunctionPointer%, p1#, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPP#(lpFunctionPointer%, p1#, p2*, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFFPPI#(lpFunctionPointer%, p1#, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPPF#(lpFunctionPointer%, p1#, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPPS#(lpFunctionPointer%, p1#, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFFPPP#(lpFunctionPointer%, p1#, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFS#(lpFunctionPointer%, P1$) : "BlitzPointer_CallFunction1" +BlitzPointer_CallFunctionFSI#(lpFunctionPointer%, p1$, p2%) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFSII#(lpFunctionPointer%, p1$, p2%, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSIII#(lpFunctionPointer%, p1$, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSIIF#(lpFunctionPointer%, p1$, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSIIS#(lpFunctionPointer%, p1$, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSIIP#(lpFunctionPointer%, p1$, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSIF#(lpFunctionPointer%, p1$, p2%, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSIFI#(lpFunctionPointer%, p1$, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSIFF#(lpFunctionPointer%, p1$, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSIFS#(lpFunctionPointer%, p1$, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSIFP#(lpFunctionPointer%, p1$, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSIS#(lpFunctionPointer%, p1$, p2%, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSISI#(lpFunctionPointer%, p1$, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSISF#(lpFunctionPointer%, p1$, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSISS#(lpFunctionPointer%, p1$, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSISP#(lpFunctionPointer%, p1$, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSIP#(lpFunctionPointer%, p1$, p2%, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSIPI#(lpFunctionPointer%, p1$, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSIPF#(lpFunctionPointer%, p1$, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSIPS#(lpFunctionPointer%, p1$, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSIPP#(lpFunctionPointer%, p1$, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSF#(lpFunctionPointer%, p1$, p2#) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFSFI#(lpFunctionPointer%, p1$, p2#, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSFII#(lpFunctionPointer%, p1$, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFIF#(lpFunctionPointer%, p1$, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFIS#(lpFunctionPointer%, p1$, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFIP#(lpFunctionPointer%, p1$, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFF#(lpFunctionPointer%, p1$, p2#, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSFFI#(lpFunctionPointer%, p1$, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFFF#(lpFunctionPointer%, p1$, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFFS#(lpFunctionPointer%, p1$, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFFP#(lpFunctionPointer%, p1$, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFS#(lpFunctionPointer%, p1$, p2#, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSFSI#(lpFunctionPointer%, p1$, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFSF#(lpFunctionPointer%, p1$, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFSS#(lpFunctionPointer%, p1$, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFSP#(lpFunctionPointer%, p1$, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFP#(lpFunctionPointer%, p1$, p2#, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSFPI#(lpFunctionPointer%, p1$, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFPF#(lpFunctionPointer%, p1$, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFPS#(lpFunctionPointer%, p1$, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSFPP#(lpFunctionPointer%, p1$, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSS#(lpFunctionPointer%, p1$, p2$) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFSSI#(lpFunctionPointer%, p1$, p2$, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSSII#(lpFunctionPointer%, p1$, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSIF#(lpFunctionPointer%, p1$, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSIS#(lpFunctionPointer%, p1$, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSIP#(lpFunctionPointer%, p1$, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSF#(lpFunctionPointer%, p1$, p2$, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSSFI#(lpFunctionPointer%, p1$, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSFF#(lpFunctionPointer%, p1$, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSFS#(lpFunctionPointer%, p1$, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSFP#(lpFunctionPointer%, p1$, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSS#(lpFunctionPointer%, p1$, p2$, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSSSI#(lpFunctionPointer%, p1$, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSSF#(lpFunctionPointer%, p1$, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSSS#(lpFunctionPointer%, p1$, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSSP#(lpFunctionPointer%, p1$, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSP#(lpFunctionPointer%, p1$, p2$, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSSPI#(lpFunctionPointer%, p1$, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSPF#(lpFunctionPointer%, p1$, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSPS#(lpFunctionPointer%, p1$, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSSPP#(lpFunctionPointer%, p1$, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSP#(lpFunctionPointer%, p1$, p2*) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFSPI#(lpFunctionPointer%, p1$, p2*, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSPII#(lpFunctionPointer%, p1$, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPIF#(lpFunctionPointer%, p1$, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPIS#(lpFunctionPointer%, p1$, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPIP#(lpFunctionPointer%, p1$, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPF#(lpFunctionPointer%, p1$, p2*, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSPFI#(lpFunctionPointer%, p1$, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPFF#(lpFunctionPointer%, p1$, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPFS#(lpFunctionPointer%, p1$, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPFP#(lpFunctionPointer%, p1$, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPS#(lpFunctionPointer%, p1$, p2*, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSPSI#(lpFunctionPointer%, p1$, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPSF#(lpFunctionPointer%, p1$, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPSS#(lpFunctionPointer%, p1$, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPSP#(lpFunctionPointer%, p1$, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPP#(lpFunctionPointer%, p1$, p2*, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFSPPI#(lpFunctionPointer%, p1$, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPPF#(lpFunctionPointer%, p1$, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPPS#(lpFunctionPointer%, p1$, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFSPPP#(lpFunctionPointer%, p1$, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFP#(lpFunctionPointer%, P1*) : "BlitzPointer_CallFunction1" +BlitzPointer_CallFunctionFPI#(lpFunctionPointer%, p1*, p2%) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFPII#(lpFunctionPointer%, p1*, p2%, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPIII#(lpFunctionPointer%, p1*, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPIIF#(lpFunctionPointer%, p1*, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPIIS#(lpFunctionPointer%, p1*, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPIIP#(lpFunctionPointer%, p1*, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPIF#(lpFunctionPointer%, p1*, p2%, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPIFI#(lpFunctionPointer%, p1*, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPIFF#(lpFunctionPointer%, p1*, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPIFS#(lpFunctionPointer%, p1*, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPIFP#(lpFunctionPointer%, p1*, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPIS#(lpFunctionPointer%, p1*, p2%, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPISI#(lpFunctionPointer%, p1*, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPISF#(lpFunctionPointer%, p1*, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPISS#(lpFunctionPointer%, p1*, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPISP#(lpFunctionPointer%, p1*, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPIP#(lpFunctionPointer%, p1*, p2%, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPIPI#(lpFunctionPointer%, p1*, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPIPF#(lpFunctionPointer%, p1*, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPIPS#(lpFunctionPointer%, p1*, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPIPP#(lpFunctionPointer%, p1*, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPF#(lpFunctionPointer%, p1*, p2#) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFPFI#(lpFunctionPointer%, p1*, p2#, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPFII#(lpFunctionPointer%, p1*, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFIF#(lpFunctionPointer%, p1*, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFIS#(lpFunctionPointer%, p1*, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFIP#(lpFunctionPointer%, p1*, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFF#(lpFunctionPointer%, p1*, p2#, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPFFI#(lpFunctionPointer%, p1*, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFFF#(lpFunctionPointer%, p1*, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFFS#(lpFunctionPointer%, p1*, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFFP#(lpFunctionPointer%, p1*, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFS#(lpFunctionPointer%, p1*, p2#, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPFSI#(lpFunctionPointer%, p1*, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFSF#(lpFunctionPointer%, p1*, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFSS#(lpFunctionPointer%, p1*, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFSP#(lpFunctionPointer%, p1*, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFP#(lpFunctionPointer%, p1*, p2#, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPFPI#(lpFunctionPointer%, p1*, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFPF#(lpFunctionPointer%, p1*, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFPS#(lpFunctionPointer%, p1*, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPFPP#(lpFunctionPointer%, p1*, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPS#(lpFunctionPointer%, p1*, p2$) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFPSI#(lpFunctionPointer%, p1*, p2$, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPSII#(lpFunctionPointer%, p1*, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSIF#(lpFunctionPointer%, p1*, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSIS#(lpFunctionPointer%, p1*, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSIP#(lpFunctionPointer%, p1*, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSF#(lpFunctionPointer%, p1*, p2$, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPSFI#(lpFunctionPointer%, p1*, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSFF#(lpFunctionPointer%, p1*, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSFS#(lpFunctionPointer%, p1*, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSFP#(lpFunctionPointer%, p1*, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSS#(lpFunctionPointer%, p1*, p2$, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPSSI#(lpFunctionPointer%, p1*, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSSF#(lpFunctionPointer%, p1*, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSSS#(lpFunctionPointer%, p1*, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSSP#(lpFunctionPointer%, p1*, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSP#(lpFunctionPointer%, p1*, p2$, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPSPI#(lpFunctionPointer%, p1*, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSPF#(lpFunctionPointer%, p1*, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSPS#(lpFunctionPointer%, p1*, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPSPP#(lpFunctionPointer%, p1*, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPP#(lpFunctionPointer%, p1*, p2*) : "BlitzPointer_CallFunction2" +BlitzPointer_CallFunctionFPPI#(lpFunctionPointer%, p1*, p2*, p3%) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPPII#(lpFunctionPointer%, p1*, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPIF#(lpFunctionPointer%, p1*, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPIS#(lpFunctionPointer%, p1*, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPIP#(lpFunctionPointer%, p1*, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPF#(lpFunctionPointer%, p1*, p2*, p3#) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPPFI#(lpFunctionPointer%, p1*, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPFF#(lpFunctionPointer%, p1*, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPFS#(lpFunctionPointer%, p1*, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPFP#(lpFunctionPointer%, p1*, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPS#(lpFunctionPointer%, p1*, p2*, p3$) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPPSI#(lpFunctionPointer%, p1*, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPSF#(lpFunctionPointer%, p1*, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPSS#(lpFunctionPointer%, p1*, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPSP#(lpFunctionPointer%, p1*, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPP#(lpFunctionPointer%, p1*, p2*, p3*) : "BlitzPointer_CallFunction3" +BlitzPointer_CallFunctionFPPPI#(lpFunctionPointer%, p1*, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPPF#(lpFunctionPointer%, p1*, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPPS#(lpFunctionPointer%, p1*, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionFPPPP#(lpFunctionPointer%, p1*, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" +BlitzPointer_CallFunctionS$(lpFunctionPointer%) : "BlitzPointer_CallFunctionS0" +BlitzPointer_CallFunctionSI$(lpFunctionPointer%, P1%) : "BlitzPointer_CallFunctionS1" +BlitzPointer_CallFunctionSII$(lpFunctionPointer%, p1%, p2%) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSIII$(lpFunctionPointer%, p1%, p2%, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSIIII$(lpFunctionPointer%, p1%, p2%, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIIIF$(lpFunctionPointer%, p1%, p2%, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIIIS$(lpFunctionPointer%, p1%, p2%, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIIIP$(lpFunctionPointer%, p1%, p2%, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIIF$(lpFunctionPointer%, p1%, p2%, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSIIFI$(lpFunctionPointer%, p1%, p2%, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIIFF$(lpFunctionPointer%, p1%, p2%, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIIFS$(lpFunctionPointer%, p1%, p2%, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIIFP$(lpFunctionPointer%, p1%, p2%, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIIS$(lpFunctionPointer%, p1%, p2%, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSIISI$(lpFunctionPointer%, p1%, p2%, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIISF$(lpFunctionPointer%, p1%, p2%, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIISS$(lpFunctionPointer%, p1%, p2%, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIISP$(lpFunctionPointer%, p1%, p2%, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIIP$(lpFunctionPointer%, p1%, p2%, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSIIPI$(lpFunctionPointer%, p1%, p2%, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIIPF$(lpFunctionPointer%, p1%, p2%, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIIPS$(lpFunctionPointer%, p1%, p2%, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIIPP$(lpFunctionPointer%, p1%, p2%, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIF$(lpFunctionPointer%, p1%, p2#) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSIFI$(lpFunctionPointer%, p1%, p2#, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSIFII$(lpFunctionPointer%, p1%, p2#, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFIF$(lpFunctionPointer%, p1%, p2#, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFIS$(lpFunctionPointer%, p1%, p2#, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFIP$(lpFunctionPointer%, p1%, p2#, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFF$(lpFunctionPointer%, p1%, p2#, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSIFFI$(lpFunctionPointer%, p1%, p2#, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFFF$(lpFunctionPointer%, p1%, p2#, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFFS$(lpFunctionPointer%, p1%, p2#, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFFP$(lpFunctionPointer%, p1%, p2#, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFS$(lpFunctionPointer%, p1%, p2#, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSIFSI$(lpFunctionPointer%, p1%, p2#, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFSF$(lpFunctionPointer%, p1%, p2#, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFSS$(lpFunctionPointer%, p1%, p2#, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFSP$(lpFunctionPointer%, p1%, p2#, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFP$(lpFunctionPointer%, p1%, p2#, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSIFPI$(lpFunctionPointer%, p1%, p2#, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFPF$(lpFunctionPointer%, p1%, p2#, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFPS$(lpFunctionPointer%, p1%, p2#, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIFPP$(lpFunctionPointer%, p1%, p2#, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIS$(lpFunctionPointer%, p1%, p2$) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSISI$(lpFunctionPointer%, p1%, p2$, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSISII$(lpFunctionPointer%, p1%, p2$, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISIF$(lpFunctionPointer%, p1%, p2$, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISIS$(lpFunctionPointer%, p1%, p2$, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISIP$(lpFunctionPointer%, p1%, p2$, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISF$(lpFunctionPointer%, p1%, p2$, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSISFI$(lpFunctionPointer%, p1%, p2$, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISFF$(lpFunctionPointer%, p1%, p2$, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISFS$(lpFunctionPointer%, p1%, p2$, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISFP$(lpFunctionPointer%, p1%, p2$, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISS$(lpFunctionPointer%, p1%, p2$, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSISSI$(lpFunctionPointer%, p1%, p2$, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISSF$(lpFunctionPointer%, p1%, p2$, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISSS$(lpFunctionPointer%, p1%, p2$, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISSP$(lpFunctionPointer%, p1%, p2$, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISP$(lpFunctionPointer%, p1%, p2$, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSISPI$(lpFunctionPointer%, p1%, p2$, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISPF$(lpFunctionPointer%, p1%, p2$, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISPS$(lpFunctionPointer%, p1%, p2$, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSISPP$(lpFunctionPointer%, p1%, p2$, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIP$(lpFunctionPointer%, p1%, p2*) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSIPI$(lpFunctionPointer%, p1%, p2*, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSIPII$(lpFunctionPointer%, p1%, p2*, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPIF$(lpFunctionPointer%, p1%, p2*, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPIS$(lpFunctionPointer%, p1%, p2*, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPIP$(lpFunctionPointer%, p1%, p2*, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPF$(lpFunctionPointer%, p1%, p2*, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSIPFI$(lpFunctionPointer%, p1%, p2*, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPFF$(lpFunctionPointer%, p1%, p2*, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPFS$(lpFunctionPointer%, p1%, p2*, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPFP$(lpFunctionPointer%, p1%, p2*, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPS$(lpFunctionPointer%, p1%, p2*, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSIPSI$(lpFunctionPointer%, p1%, p2*, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPSF$(lpFunctionPointer%, p1%, p2*, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPSS$(lpFunctionPointer%, p1%, p2*, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPSP$(lpFunctionPointer%, p1%, p2*, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPP$(lpFunctionPointer%, p1%, p2*, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSIPPI$(lpFunctionPointer%, p1%, p2*, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPPF$(lpFunctionPointer%, p1%, p2*, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPPS$(lpFunctionPointer%, p1%, p2*, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSIPPP$(lpFunctionPointer%, p1%, p2*, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSF$(lpFunctionPointer%, P1#) : "BlitzPointer_CallFunctionS1" +BlitzPointer_CallFunctionSFI$(lpFunctionPointer%, p1#, p2%) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSFII$(lpFunctionPointer%, p1#, p2%, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFIII$(lpFunctionPointer%, p1#, p2%, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFIIF$(lpFunctionPointer%, p1#, p2%, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFIIS$(lpFunctionPointer%, p1#, p2%, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFIIP$(lpFunctionPointer%, p1#, p2%, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFIF$(lpFunctionPointer%, p1#, p2%, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFIFI$(lpFunctionPointer%, p1#, p2%, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFIFF$(lpFunctionPointer%, p1#, p2%, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFIFS$(lpFunctionPointer%, p1#, p2%, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFIFP$(lpFunctionPointer%, p1#, p2%, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFIS$(lpFunctionPointer%, p1#, p2%, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFISI$(lpFunctionPointer%, p1#, p2%, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFISF$(lpFunctionPointer%, p1#, p2%, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFISS$(lpFunctionPointer%, p1#, p2%, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFISP$(lpFunctionPointer%, p1#, p2%, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFIP$(lpFunctionPointer%, p1#, p2%, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFIPI$(lpFunctionPointer%, p1#, p2%, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFIPF$(lpFunctionPointer%, p1#, p2%, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFIPS$(lpFunctionPointer%, p1#, p2%, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFIPP$(lpFunctionPointer%, p1#, p2%, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFF$(lpFunctionPointer%, p1#, p2#) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSFFI$(lpFunctionPointer%, p1#, p2#, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFFII$(lpFunctionPointer%, p1#, p2#, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFIF$(lpFunctionPointer%, p1#, p2#, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFIS$(lpFunctionPointer%, p1#, p2#, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFIP$(lpFunctionPointer%, p1#, p2#, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFF$(lpFunctionPointer%, p1#, p2#, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFFFI$(lpFunctionPointer%, p1#, p2#, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFFF$(lpFunctionPointer%, p1#, p2#, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFFS$(lpFunctionPointer%, p1#, p2#, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFFP$(lpFunctionPointer%, p1#, p2#, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFS$(lpFunctionPointer%, p1#, p2#, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFFSI$(lpFunctionPointer%, p1#, p2#, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFSF$(lpFunctionPointer%, p1#, p2#, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFSS$(lpFunctionPointer%, p1#, p2#, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFSP$(lpFunctionPointer%, p1#, p2#, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFP$(lpFunctionPointer%, p1#, p2#, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFFPI$(lpFunctionPointer%, p1#, p2#, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFPF$(lpFunctionPointer%, p1#, p2#, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFPS$(lpFunctionPointer%, p1#, p2#, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFFPP$(lpFunctionPointer%, p1#, p2#, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFS$(lpFunctionPointer%, p1#, p2$) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSFSI$(lpFunctionPointer%, p1#, p2$, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFSII$(lpFunctionPointer%, p1#, p2$, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSIF$(lpFunctionPointer%, p1#, p2$, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSIS$(lpFunctionPointer%, p1#, p2$, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSIP$(lpFunctionPointer%, p1#, p2$, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSF$(lpFunctionPointer%, p1#, p2$, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFSFI$(lpFunctionPointer%, p1#, p2$, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSFF$(lpFunctionPointer%, p1#, p2$, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSFS$(lpFunctionPointer%, p1#, p2$, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSFP$(lpFunctionPointer%, p1#, p2$, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSS$(lpFunctionPointer%, p1#, p2$, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFSSI$(lpFunctionPointer%, p1#, p2$, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSSF$(lpFunctionPointer%, p1#, p2$, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSSS$(lpFunctionPointer%, p1#, p2$, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSSP$(lpFunctionPointer%, p1#, p2$, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSP$(lpFunctionPointer%, p1#, p2$, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFSPI$(lpFunctionPointer%, p1#, p2$, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSPF$(lpFunctionPointer%, p1#, p2$, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSPS$(lpFunctionPointer%, p1#, p2$, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFSPP$(lpFunctionPointer%, p1#, p2$, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFP$(lpFunctionPointer%, p1#, p2*) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSFPI$(lpFunctionPointer%, p1#, p2*, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFPII$(lpFunctionPointer%, p1#, p2*, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPIF$(lpFunctionPointer%, p1#, p2*, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPIS$(lpFunctionPointer%, p1#, p2*, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPIP$(lpFunctionPointer%, p1#, p2*, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPF$(lpFunctionPointer%, p1#, p2*, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFPFI$(lpFunctionPointer%, p1#, p2*, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPFF$(lpFunctionPointer%, p1#, p2*, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPFS$(lpFunctionPointer%, p1#, p2*, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPFP$(lpFunctionPointer%, p1#, p2*, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPS$(lpFunctionPointer%, p1#, p2*, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFPSI$(lpFunctionPointer%, p1#, p2*, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPSF$(lpFunctionPointer%, p1#, p2*, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPSS$(lpFunctionPointer%, p1#, p2*, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPSP$(lpFunctionPointer%, p1#, p2*, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPP$(lpFunctionPointer%, p1#, p2*, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSFPPI$(lpFunctionPointer%, p1#, p2*, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPPF$(lpFunctionPointer%, p1#, p2*, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPPS$(lpFunctionPointer%, p1#, p2*, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSFPPP$(lpFunctionPointer%, p1#, p2*, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSS$(lpFunctionPointer%, P1$) : "BlitzPointer_CallFunctionS1" +BlitzPointer_CallFunctionSSI$(lpFunctionPointer%, p1$, p2%) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSSII$(lpFunctionPointer%, p1$, p2%, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSIII$(lpFunctionPointer%, p1$, p2%, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSIIF$(lpFunctionPointer%, p1$, p2%, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSIIS$(lpFunctionPointer%, p1$, p2%, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSIIP$(lpFunctionPointer%, p1$, p2%, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSIF$(lpFunctionPointer%, p1$, p2%, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSIFI$(lpFunctionPointer%, p1$, p2%, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSIFF$(lpFunctionPointer%, p1$, p2%, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSIFS$(lpFunctionPointer%, p1$, p2%, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSIFP$(lpFunctionPointer%, p1$, p2%, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSIS$(lpFunctionPointer%, p1$, p2%, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSISI$(lpFunctionPointer%, p1$, p2%, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSISF$(lpFunctionPointer%, p1$, p2%, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSISS$(lpFunctionPointer%, p1$, p2%, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSISP$(lpFunctionPointer%, p1$, p2%, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSIP$(lpFunctionPointer%, p1$, p2%, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSIPI$(lpFunctionPointer%, p1$, p2%, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSIPF$(lpFunctionPointer%, p1$, p2%, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSIPS$(lpFunctionPointer%, p1$, p2%, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSIPP$(lpFunctionPointer%, p1$, p2%, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSF$(lpFunctionPointer%, p1$, p2#) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSSFI$(lpFunctionPointer%, p1$, p2#, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSFII$(lpFunctionPointer%, p1$, p2#, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFIF$(lpFunctionPointer%, p1$, p2#, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFIS$(lpFunctionPointer%, p1$, p2#, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFIP$(lpFunctionPointer%, p1$, p2#, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFF$(lpFunctionPointer%, p1$, p2#, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSFFI$(lpFunctionPointer%, p1$, p2#, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFFF$(lpFunctionPointer%, p1$, p2#, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFFS$(lpFunctionPointer%, p1$, p2#, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFFP$(lpFunctionPointer%, p1$, p2#, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFS$(lpFunctionPointer%, p1$, p2#, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSFSI$(lpFunctionPointer%, p1$, p2#, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFSF$(lpFunctionPointer%, p1$, p2#, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFSS$(lpFunctionPointer%, p1$, p2#, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFSP$(lpFunctionPointer%, p1$, p2#, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFP$(lpFunctionPointer%, p1$, p2#, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSFPI$(lpFunctionPointer%, p1$, p2#, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFPF$(lpFunctionPointer%, p1$, p2#, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFPS$(lpFunctionPointer%, p1$, p2#, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSFPP$(lpFunctionPointer%, p1$, p2#, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSS$(lpFunctionPointer%, p1$, p2$) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSSSI$(lpFunctionPointer%, p1$, p2$, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSSII$(lpFunctionPointer%, p1$, p2$, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSIF$(lpFunctionPointer%, p1$, p2$, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSIS$(lpFunctionPointer%, p1$, p2$, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSIP$(lpFunctionPointer%, p1$, p2$, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSF$(lpFunctionPointer%, p1$, p2$, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSSFI$(lpFunctionPointer%, p1$, p2$, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSFF$(lpFunctionPointer%, p1$, p2$, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSFS$(lpFunctionPointer%, p1$, p2$, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSFP$(lpFunctionPointer%, p1$, p2$, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSS$(lpFunctionPointer%, p1$, p2$, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSSSI$(lpFunctionPointer%, p1$, p2$, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSSF$(lpFunctionPointer%, p1$, p2$, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSSS$(lpFunctionPointer%, p1$, p2$, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSSP$(lpFunctionPointer%, p1$, p2$, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSP$(lpFunctionPointer%, p1$, p2$, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSSPI$(lpFunctionPointer%, p1$, p2$, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSPF$(lpFunctionPointer%, p1$, p2$, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSPS$(lpFunctionPointer%, p1$, p2$, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSSPP$(lpFunctionPointer%, p1$, p2$, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSP$(lpFunctionPointer%, p1$, p2*) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSSPI$(lpFunctionPointer%, p1$, p2*, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSPII$(lpFunctionPointer%, p1$, p2*, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPIF$(lpFunctionPointer%, p1$, p2*, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPIS$(lpFunctionPointer%, p1$, p2*, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPIP$(lpFunctionPointer%, p1$, p2*, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPF$(lpFunctionPointer%, p1$, p2*, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSPFI$(lpFunctionPointer%, p1$, p2*, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPFF$(lpFunctionPointer%, p1$, p2*, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPFS$(lpFunctionPointer%, p1$, p2*, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPFP$(lpFunctionPointer%, p1$, p2*, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPS$(lpFunctionPointer%, p1$, p2*, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSPSI$(lpFunctionPointer%, p1$, p2*, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPSF$(lpFunctionPointer%, p1$, p2*, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPSS$(lpFunctionPointer%, p1$, p2*, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPSP$(lpFunctionPointer%, p1$, p2*, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPP$(lpFunctionPointer%, p1$, p2*, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSSPPI$(lpFunctionPointer%, p1$, p2*, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPPF$(lpFunctionPointer%, p1$, p2*, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPPS$(lpFunctionPointer%, p1$, p2*, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSSPPP$(lpFunctionPointer%, p1$, p2*, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSP$(lpFunctionPointer%, P1*) : "BlitzPointer_CallFunctionS1" +BlitzPointer_CallFunctionSPI$(lpFunctionPointer%, p1*, p2%) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSPII$(lpFunctionPointer%, p1*, p2%, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPIII$(lpFunctionPointer%, p1*, p2%, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPIIF$(lpFunctionPointer%, p1*, p2%, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPIIS$(lpFunctionPointer%, p1*, p2%, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPIIP$(lpFunctionPointer%, p1*, p2%, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPIF$(lpFunctionPointer%, p1*, p2%, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPIFI$(lpFunctionPointer%, p1*, p2%, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPIFF$(lpFunctionPointer%, p1*, p2%, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPIFS$(lpFunctionPointer%, p1*, p2%, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPIFP$(lpFunctionPointer%, p1*, p2%, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPIS$(lpFunctionPointer%, p1*, p2%, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPISI$(lpFunctionPointer%, p1*, p2%, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPISF$(lpFunctionPointer%, p1*, p2%, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPISS$(lpFunctionPointer%, p1*, p2%, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPISP$(lpFunctionPointer%, p1*, p2%, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPIP$(lpFunctionPointer%, p1*, p2%, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPIPI$(lpFunctionPointer%, p1*, p2%, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPIPF$(lpFunctionPointer%, p1*, p2%, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPIPS$(lpFunctionPointer%, p1*, p2%, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPIPP$(lpFunctionPointer%, p1*, p2%, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPF$(lpFunctionPointer%, p1*, p2#) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSPFI$(lpFunctionPointer%, p1*, p2#, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPFII$(lpFunctionPointer%, p1*, p2#, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFIF$(lpFunctionPointer%, p1*, p2#, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFIS$(lpFunctionPointer%, p1*, p2#, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFIP$(lpFunctionPointer%, p1*, p2#, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFF$(lpFunctionPointer%, p1*, p2#, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPFFI$(lpFunctionPointer%, p1*, p2#, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFFF$(lpFunctionPointer%, p1*, p2#, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFFS$(lpFunctionPointer%, p1*, p2#, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFFP$(lpFunctionPointer%, p1*, p2#, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFS$(lpFunctionPointer%, p1*, p2#, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPFSI$(lpFunctionPointer%, p1*, p2#, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFSF$(lpFunctionPointer%, p1*, p2#, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFSS$(lpFunctionPointer%, p1*, p2#, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFSP$(lpFunctionPointer%, p1*, p2#, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFP$(lpFunctionPointer%, p1*, p2#, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPFPI$(lpFunctionPointer%, p1*, p2#, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFPF$(lpFunctionPointer%, p1*, p2#, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFPS$(lpFunctionPointer%, p1*, p2#, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPFPP$(lpFunctionPointer%, p1*, p2#, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPS$(lpFunctionPointer%, p1*, p2$) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSPSI$(lpFunctionPointer%, p1*, p2$, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPSII$(lpFunctionPointer%, p1*, p2$, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSIF$(lpFunctionPointer%, p1*, p2$, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSIS$(lpFunctionPointer%, p1*, p2$, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSIP$(lpFunctionPointer%, p1*, p2$, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSF$(lpFunctionPointer%, p1*, p2$, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPSFI$(lpFunctionPointer%, p1*, p2$, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSFF$(lpFunctionPointer%, p1*, p2$, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSFS$(lpFunctionPointer%, p1*, p2$, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSFP$(lpFunctionPointer%, p1*, p2$, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSS$(lpFunctionPointer%, p1*, p2$, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPSSI$(lpFunctionPointer%, p1*, p2$, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSSF$(lpFunctionPointer%, p1*, p2$, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSSS$(lpFunctionPointer%, p1*, p2$, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSSP$(lpFunctionPointer%, p1*, p2$, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSP$(lpFunctionPointer%, p1*, p2$, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPSPI$(lpFunctionPointer%, p1*, p2$, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSPF$(lpFunctionPointer%, p1*, p2$, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSPS$(lpFunctionPointer%, p1*, p2$, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPSPP$(lpFunctionPointer%, p1*, p2$, p3*, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPP$(lpFunctionPointer%, p1*, p2*) : "BlitzPointer_CallFunctionS2" +BlitzPointer_CallFunctionSPPI$(lpFunctionPointer%, p1*, p2*, p3%) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPPII$(lpFunctionPointer%, p1*, p2*, p3%, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPIF$(lpFunctionPointer%, p1*, p2*, p3%, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPIS$(lpFunctionPointer%, p1*, p2*, p3%, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPIP$(lpFunctionPointer%, p1*, p2*, p3%, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPF$(lpFunctionPointer%, p1*, p2*, p3#) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPPFI$(lpFunctionPointer%, p1*, p2*, p3#, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPFF$(lpFunctionPointer%, p1*, p2*, p3#, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPFS$(lpFunctionPointer%, p1*, p2*, p3#, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPFP$(lpFunctionPointer%, p1*, p2*, p3#, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPS$(lpFunctionPointer%, p1*, p2*, p3$) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPPSI$(lpFunctionPointer%, p1*, p2*, p3$, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPSF$(lpFunctionPointer%, p1*, p2*, p3$, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPSS$(lpFunctionPointer%, p1*, p2*, p3$, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPSP$(lpFunctionPointer%, p1*, p2*, p3$, p4*) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPP$(lpFunctionPointer%, p1*, p2*, p3*) : "BlitzPointer_CallFunctionS3" +BlitzPointer_CallFunctionSPPPI$(lpFunctionPointer%, p1*, p2*, p3*, p4%) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPPF$(lpFunctionPointer%, p1*, p2*, p3*, p4#) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPPS$(lpFunctionPointer%, p1*, p2*, p3*, p4$) : "BlitzPointer_CallFunctionS4" +BlitzPointer_CallFunctionSPPPP$(lpFunctionPointer%, p1*, p2*, p3*, p4*) : "BlitzPointer_CallFunctionS4" diff --git a/BlitzPointer/BlitzPointer.h b/BlitzPointer/BlitzPointer.h new file mode 100644 index 0000000..a4e1b32 --- /dev/null +++ b/BlitzPointer/BlitzPointer.h @@ -0,0 +1,15 @@ +#include "dllmain.h" + +DLL_EXPORT uint32_t BlitzPointer_GetReturnAddress(); +DLL_EXPORT uint32_t BlitzPointer_GetFunctionPointer(); + +DLL_EXPORT uint32_t BlitzPointer_CallFunction0(uint32_t fpFunctionPointer); +DLL_EXPORT uint32_t BlitzPointer_CallFunction1(uint32_t fpFunctionPointer, uint32_t p1); +DLL_EXPORT uint32_t BlitzPointer_CallFunction2(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2); +DLL_EXPORT uint32_t BlitzPointer_CallFunction3(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2, uint32_t p3); +DLL_EXPORT uint32_t BlitzPointer_CallFunction4(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4); +DLL_EXPORT uint32_t BlitzPointer_CallFunctionS0(uint32_t fpFunctionPointer); +DLL_EXPORT uint32_t BlitzPointer_CallFunctionS1(uint32_t fpFunctionPointer, uint32_t p1); +DLL_EXPORT uint32_t BlitzPointer_CallFunctionS2(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2); +DLL_EXPORT uint32_t BlitzPointer_CallFunctionS3(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2, uint32_t p3); +DLL_EXPORT uint32_t BlitzPointer_CallFunctionS4(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4); \ No newline at end of file diff --git a/BlitzPointer/BlitzPointer.vcxproj b/BlitzPointer/BlitzPointer.vcxproj index ed4bf1d..daacefc 100644 --- a/BlitzPointer/BlitzPointer.vcxproj +++ b/BlitzPointer/BlitzPointer.vcxproj @@ -57,21 +57,22 @@ $(SolutionDir);$(ProjectDir) - false + true Default MultiThreaded false - false + true false false 4Bytes true - - - false - true + true + + false - dllmain.h + + + false true @@ -84,12 +85,12 @@ Level3 Full - false + true true $(SolutionDir);$(ProjectDir) - false + true Speed MultiThreaded false @@ -97,13 +98,14 @@ false 4Bytes true - - - false - true + true + + false - dllmain.h + + Default + true false @@ -115,11 +117,23 @@ + + + + + BlitzPointer.bb + PreserveNewest + + + BlitzPointer.decls + PreserveNewest + + diff --git a/BlitzPointer/BlitzPointer.vcxproj.filters b/BlitzPointer/BlitzPointer.vcxproj.filters index 60329ee..850fbee 100644 --- a/BlitzPointer/BlitzPointer.vcxproj.filters +++ b/BlitzPointer/BlitzPointer.vcxproj.filters @@ -5,15 +5,32 @@ {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + {53eae672-7e3f-4de4-af1f-79e46e407a39} + Source Files + + Source Files + Source Files + + Source Files + + + + + Blitz Files + + + Blitz Files + \ No newline at end of file diff --git a/BlitzSteam/BlitzPointer.cpp b/BlitzSteam/BlitzPointer.cpp deleted file mode 100644 index 9305d14..0000000 --- a/BlitzSteam/BlitzPointer.cpp +++ /dev/null @@ -1,109 +0,0 @@ -// Original Code by Noodoby -// Modified Code by Xaymar - -#include "BlitzPointer.h" - -DLL_EXPORT uint32_t BlitzPointer_GetReturnAddress() { - unsigned int StackPointer, ReturnAddress; - - __asm { //ASM. Do touch if suicidal. - mov StackPointer, esp // Store current Stack Pointer - mov esp, ebp // On X86, EBP[0] is our own function and EBP[1] is the return address. - add esp, 4 // Which means that we can just take it from there into our own variable. - pop ReturnAddress // Just like this. - mov esp, [StackPointer] // And then reset the Stack Pointer. - } - - return ReturnAddress; -} - -DLL_EXPORT uint32_t BlitzPointer_GetFunctionPointer() { - unsigned int StackPointer, ReturnAddress; - - __asm { //ASM. Do touch if suicidal. - mov StackPointer, esp // Store current Stack Pointer - mov esp, ebp // On X86, EBP[0] is our own function and EBP[1] is the return address. - add esp, 4 // Which means that we can just take it from there into our own variable. - pop ReturnAddress // Just like this. - mov esp, [StackPointer] // And then reset the Stack Pointer. - } - - // let's look backwards in memory for the function signature (0x53 0x56 0x57 0x55 0x89 0xE5) for at most one megabyte. - uint8_t* startPtr = (uint8_t*)ReturnAddress; - uint8_t* endPtr = (uint8_t*)(ReturnAddress - 1048576); - for (uint8_t* curPtr = startPtr; curPtr != endPtr; curPtr--) { - if (*(curPtr) == 0x53) // push ebx - if (*(curPtr+1) == 0x56) // push esi - if (*(curPtr+2) == 0x57) // push edi - if (*(curPtr+3) == 0x55) // push ebp - if (*(curPtr + 4) == 0x89 && *(curPtr +5) == 0xE5) // mov ebp,esp - return (uint32_t)curPtr; - } - - return 0; -} - -DLL_EXPORT uint32_t BlitzPointer_CallFunction0(uint32_t fpFunctionPointer) { - uint32_t returnvalue; - __asm { - call dword ptr[fpFunctionPointer] - mov[returnvalue], eax - } - return returnvalue; -} -DLL_EXPORT uint32_t BlitzPointer_CallFunction1(uint32_t fpFunctionPointer, uint32_t p1) { - uint32_t returnvalue; - __asm { - sub esp, 0x4 - mov eax, [p1] - mov[esp], eax - call dword ptr[fpFunctionPointer] - mov[returnvalue], eax - } - return returnvalue; -} -DLL_EXPORT uint32_t BlitzPointer_CallFunction2(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2) { - uint32_t returnvalue; - __asm { - sub esp, 0x8 - mov eax, [p2] - mov[esp+4], eax - mov eax, [p1] - mov[esp], eax - call dword ptr[fpFunctionPointer] - mov[returnvalue], eax - } - return returnvalue; -} -DLL_EXPORT uint32_t BlitzPointer_CallFunction3(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2, uint32_t p3) { - uint32_t returnvalue; - __asm { - sub esp, 0xC - mov eax, [p3] - mov[esp + 8], eax - mov eax, [p2] - mov[esp + 4], eax - mov eax, [p1] - mov[esp], eax - call dword ptr[fpFunctionPointer] - mov[returnvalue], eax - } - return returnvalue; -} -DLL_EXPORT uint32_t BlitzPointer_CallFunction4(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4) { - uint32_t returnvalue; - __asm { - sub esp, 0x10 - mov eax, [p4] - mov[esp + 12], eax - mov eax, [p3] - mov[esp + 8], eax - mov eax, [p2] - mov[esp + 4], eax - mov eax, [p1] - mov[esp], eax - call dword ptr[fpFunctionPointer] - mov[returnvalue], eax - } - return returnvalue; -} \ No newline at end of file diff --git a/BlitzSteam/BlitzPointer.h b/BlitzSteam/BlitzPointer.h deleted file mode 100644 index 9d7b8b8..0000000 --- a/BlitzSteam/BlitzPointer.h +++ /dev/null @@ -1,9 +0,0 @@ -#include "dllmain.h" - -DLL_EXPORT uint32_t BlitzPointer_GetReturnAddress(); -DLL_EXPORT uint32_t BlitzPointer_GetFunctionPointer(); -DLL_EXPORT uint32_t BlitzPointer_CallFunction0(uint32_t fpFunctionPointer); -DLL_EXPORT uint32_t BlitzPointer_CallFunction1(uint32_t fpFunctionPointer, uint32_t p1); -DLL_EXPORT uint32_t BlitzPointer_CallFunction2(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2); -DLL_EXPORT uint32_t BlitzPointer_CallFunction3(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2, uint32_t p3); -DLL_EXPORT uint32_t BlitzPointer_CallFunction4(uint32_t fpFunctionPointer, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4); \ No newline at end of file diff --git a/BlitzSteam/BlitzPointerLink.cpp b/BlitzSteam/BlitzPointerLink.cpp new file mode 100644 index 0000000..3c1d892 --- /dev/null +++ b/BlitzSteam/BlitzPointerLink.cpp @@ -0,0 +1,5 @@ +#include "BlitzPointer.h" + +uint32_t BlitzPointer_CallFunction0(uint32_t fpFunctionPointer) { + +} \ No newline at end of file diff --git a/BlitzSteam/BlitzSteam.decls b/BlitzSteam/BlitzSteam.decls index da7b87a..3dbc239 100644 --- a/BlitzSteam/BlitzSteam.decls +++ b/BlitzSteam/BlitzSteam.decls @@ -109,1372 +109,4 @@ BlitzSteam_CreateCallback%(fpFunctionPointer%) BlitzSteam_DestroyCallback(lpCallback%) ;ISteamUser -BlitzSteam_ISteamUser_GetSteamID%(lpSteamUser%) - -; BlitzPointer -BlitzPointer_GetReturnAddress%() -BlitzPointer_GetFunctionPointer%() -BlitzPointer_CallFunctionV(lpFunctionPointer%) : "BlitzPointer_CallFunction0" -BlitzPointer_CallFunctionVI(lpFunctionPointer%, P1%) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionVII(lpFunctionPointer%, p1%, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVIII(lpFunctionPointer%, p1%, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVIIII(lpFunctionPointer%, p1%, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIIIF(lpFunctionPointer%, p1%, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIIIS(lpFunctionPointer%, p1%, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIIIP(lpFunctionPointer%, p1%, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIIF(lpFunctionPointer%, p1%, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVIIFI(lpFunctionPointer%, p1%, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIIFF(lpFunctionPointer%, p1%, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIIFS(lpFunctionPointer%, p1%, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIIFP(lpFunctionPointer%, p1%, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIIS(lpFunctionPointer%, p1%, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVIISI(lpFunctionPointer%, p1%, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIISF(lpFunctionPointer%, p1%, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIISS(lpFunctionPointer%, p1%, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIISP(lpFunctionPointer%, p1%, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIIP(lpFunctionPointer%, p1%, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVIIPI(lpFunctionPointer%, p1%, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIIPF(lpFunctionPointer%, p1%, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIIPS(lpFunctionPointer%, p1%, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIIPP(lpFunctionPointer%, p1%, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIF(lpFunctionPointer%, p1%, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVIFI(lpFunctionPointer%, p1%, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVIFII(lpFunctionPointer%, p1%, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFIF(lpFunctionPointer%, p1%, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFIS(lpFunctionPointer%, p1%, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFIP(lpFunctionPointer%, p1%, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFF(lpFunctionPointer%, p1%, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVIFFI(lpFunctionPointer%, p1%, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFFF(lpFunctionPointer%, p1%, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFFS(lpFunctionPointer%, p1%, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFFP(lpFunctionPointer%, p1%, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFS(lpFunctionPointer%, p1%, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVIFSI(lpFunctionPointer%, p1%, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFSF(lpFunctionPointer%, p1%, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFSS(lpFunctionPointer%, p1%, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFSP(lpFunctionPointer%, p1%, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFP(lpFunctionPointer%, p1%, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVIFPI(lpFunctionPointer%, p1%, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFPF(lpFunctionPointer%, p1%, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFPS(lpFunctionPointer%, p1%, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIFPP(lpFunctionPointer%, p1%, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIS(lpFunctionPointer%, p1%, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVISI(lpFunctionPointer%, p1%, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVISII(lpFunctionPointer%, p1%, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISIF(lpFunctionPointer%, p1%, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISIS(lpFunctionPointer%, p1%, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISIP(lpFunctionPointer%, p1%, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISF(lpFunctionPointer%, p1%, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVISFI(lpFunctionPointer%, p1%, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISFF(lpFunctionPointer%, p1%, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISFS(lpFunctionPointer%, p1%, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISFP(lpFunctionPointer%, p1%, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISS(lpFunctionPointer%, p1%, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVISSI(lpFunctionPointer%, p1%, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISSF(lpFunctionPointer%, p1%, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISSS(lpFunctionPointer%, p1%, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISSP(lpFunctionPointer%, p1%, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISP(lpFunctionPointer%, p1%, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVISPI(lpFunctionPointer%, p1%, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISPF(lpFunctionPointer%, p1%, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISPS(lpFunctionPointer%, p1%, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVISPP(lpFunctionPointer%, p1%, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIP(lpFunctionPointer%, p1%, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVIPI(lpFunctionPointer%, p1%, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVIPII(lpFunctionPointer%, p1%, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPIF(lpFunctionPointer%, p1%, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPIS(lpFunctionPointer%, p1%, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPIP(lpFunctionPointer%, p1%, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPF(lpFunctionPointer%, p1%, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVIPFI(lpFunctionPointer%, p1%, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPFF(lpFunctionPointer%, p1%, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPFS(lpFunctionPointer%, p1%, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPFP(lpFunctionPointer%, p1%, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPS(lpFunctionPointer%, p1%, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVIPSI(lpFunctionPointer%, p1%, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPSF(lpFunctionPointer%, p1%, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPSS(lpFunctionPointer%, p1%, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPSP(lpFunctionPointer%, p1%, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPP(lpFunctionPointer%, p1%, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVIPPI(lpFunctionPointer%, p1%, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPPF(lpFunctionPointer%, p1%, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPPS(lpFunctionPointer%, p1%, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVIPPP(lpFunctionPointer%, p1%, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVF(lpFunctionPointer%, P1#) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionVFI(lpFunctionPointer%, p1#, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVFII(lpFunctionPointer%, p1#, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFIII(lpFunctionPointer%, p1#, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFIIF(lpFunctionPointer%, p1#, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFIIS(lpFunctionPointer%, p1#, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFIIP(lpFunctionPointer%, p1#, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFIF(lpFunctionPointer%, p1#, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFIFI(lpFunctionPointer%, p1#, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFIFF(lpFunctionPointer%, p1#, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFIFS(lpFunctionPointer%, p1#, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFIFP(lpFunctionPointer%, p1#, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFIS(lpFunctionPointer%, p1#, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFISI(lpFunctionPointer%, p1#, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFISF(lpFunctionPointer%, p1#, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFISS(lpFunctionPointer%, p1#, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFISP(lpFunctionPointer%, p1#, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFIP(lpFunctionPointer%, p1#, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFIPI(lpFunctionPointer%, p1#, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFIPF(lpFunctionPointer%, p1#, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFIPS(lpFunctionPointer%, p1#, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFIPP(lpFunctionPointer%, p1#, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFF(lpFunctionPointer%, p1#, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVFFI(lpFunctionPointer%, p1#, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFFII(lpFunctionPointer%, p1#, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFIF(lpFunctionPointer%, p1#, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFIS(lpFunctionPointer%, p1#, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFIP(lpFunctionPointer%, p1#, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFF(lpFunctionPointer%, p1#, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFFFI(lpFunctionPointer%, p1#, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFFF(lpFunctionPointer%, p1#, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFFS(lpFunctionPointer%, p1#, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFFP(lpFunctionPointer%, p1#, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFS(lpFunctionPointer%, p1#, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFFSI(lpFunctionPointer%, p1#, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFSF(lpFunctionPointer%, p1#, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFSS(lpFunctionPointer%, p1#, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFSP(lpFunctionPointer%, p1#, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFP(lpFunctionPointer%, p1#, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFFPI(lpFunctionPointer%, p1#, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFPF(lpFunctionPointer%, p1#, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFPS(lpFunctionPointer%, p1#, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFFPP(lpFunctionPointer%, p1#, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFS(lpFunctionPointer%, p1#, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVFSI(lpFunctionPointer%, p1#, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFSII(lpFunctionPointer%, p1#, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSIF(lpFunctionPointer%, p1#, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSIS(lpFunctionPointer%, p1#, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSIP(lpFunctionPointer%, p1#, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSF(lpFunctionPointer%, p1#, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFSFI(lpFunctionPointer%, p1#, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSFF(lpFunctionPointer%, p1#, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSFS(lpFunctionPointer%, p1#, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSFP(lpFunctionPointer%, p1#, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSS(lpFunctionPointer%, p1#, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFSSI(lpFunctionPointer%, p1#, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSSF(lpFunctionPointer%, p1#, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSSS(lpFunctionPointer%, p1#, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSSP(lpFunctionPointer%, p1#, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSP(lpFunctionPointer%, p1#, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFSPI(lpFunctionPointer%, p1#, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSPF(lpFunctionPointer%, p1#, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSPS(lpFunctionPointer%, p1#, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFSPP(lpFunctionPointer%, p1#, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFP(lpFunctionPointer%, p1#, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVFPI(lpFunctionPointer%, p1#, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFPII(lpFunctionPointer%, p1#, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPIF(lpFunctionPointer%, p1#, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPIS(lpFunctionPointer%, p1#, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPIP(lpFunctionPointer%, p1#, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPF(lpFunctionPointer%, p1#, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFPFI(lpFunctionPointer%, p1#, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPFF(lpFunctionPointer%, p1#, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPFS(lpFunctionPointer%, p1#, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPFP(lpFunctionPointer%, p1#, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPS(lpFunctionPointer%, p1#, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFPSI(lpFunctionPointer%, p1#, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPSF(lpFunctionPointer%, p1#, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPSS(lpFunctionPointer%, p1#, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPSP(lpFunctionPointer%, p1#, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPP(lpFunctionPointer%, p1#, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVFPPI(lpFunctionPointer%, p1#, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPPF(lpFunctionPointer%, p1#, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPPS(lpFunctionPointer%, p1#, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVFPPP(lpFunctionPointer%, p1#, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVS(lpFunctionPointer%, P1$) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionVSI(lpFunctionPointer%, p1$, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVSII(lpFunctionPointer%, p1$, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSIII(lpFunctionPointer%, p1$, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSIIF(lpFunctionPointer%, p1$, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSIIS(lpFunctionPointer%, p1$, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSIIP(lpFunctionPointer%, p1$, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSIF(lpFunctionPointer%, p1$, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSIFI(lpFunctionPointer%, p1$, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSIFF(lpFunctionPointer%, p1$, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSIFS(lpFunctionPointer%, p1$, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSIFP(lpFunctionPointer%, p1$, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSIS(lpFunctionPointer%, p1$, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSISI(lpFunctionPointer%, p1$, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSISF(lpFunctionPointer%, p1$, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSISS(lpFunctionPointer%, p1$, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSISP(lpFunctionPointer%, p1$, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSIP(lpFunctionPointer%, p1$, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSIPI(lpFunctionPointer%, p1$, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSIPF(lpFunctionPointer%, p1$, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSIPS(lpFunctionPointer%, p1$, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSIPP(lpFunctionPointer%, p1$, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSF(lpFunctionPointer%, p1$, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVSFI(lpFunctionPointer%, p1$, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSFII(lpFunctionPointer%, p1$, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFIF(lpFunctionPointer%, p1$, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFIS(lpFunctionPointer%, p1$, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFIP(lpFunctionPointer%, p1$, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFF(lpFunctionPointer%, p1$, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSFFI(lpFunctionPointer%, p1$, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFFF(lpFunctionPointer%, p1$, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFFS(lpFunctionPointer%, p1$, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFFP(lpFunctionPointer%, p1$, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFS(lpFunctionPointer%, p1$, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSFSI(lpFunctionPointer%, p1$, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFSF(lpFunctionPointer%, p1$, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFSS(lpFunctionPointer%, p1$, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFSP(lpFunctionPointer%, p1$, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFP(lpFunctionPointer%, p1$, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSFPI(lpFunctionPointer%, p1$, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFPF(lpFunctionPointer%, p1$, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFPS(lpFunctionPointer%, p1$, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSFPP(lpFunctionPointer%, p1$, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSS(lpFunctionPointer%, p1$, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVSSI(lpFunctionPointer%, p1$, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSSII(lpFunctionPointer%, p1$, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSIF(lpFunctionPointer%, p1$, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSIS(lpFunctionPointer%, p1$, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSIP(lpFunctionPointer%, p1$, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSF(lpFunctionPointer%, p1$, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSSFI(lpFunctionPointer%, p1$, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSFF(lpFunctionPointer%, p1$, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSFS(lpFunctionPointer%, p1$, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSFP(lpFunctionPointer%, p1$, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSS(lpFunctionPointer%, p1$, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSSSI(lpFunctionPointer%, p1$, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSSF(lpFunctionPointer%, p1$, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSSS(lpFunctionPointer%, p1$, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSSP(lpFunctionPointer%, p1$, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSP(lpFunctionPointer%, p1$, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSSPI(lpFunctionPointer%, p1$, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSPF(lpFunctionPointer%, p1$, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSPS(lpFunctionPointer%, p1$, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSSPP(lpFunctionPointer%, p1$, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSP(lpFunctionPointer%, p1$, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVSPI(lpFunctionPointer%, p1$, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSPII(lpFunctionPointer%, p1$, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPIF(lpFunctionPointer%, p1$, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPIS(lpFunctionPointer%, p1$, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPIP(lpFunctionPointer%, p1$, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPF(lpFunctionPointer%, p1$, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSPFI(lpFunctionPointer%, p1$, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPFF(lpFunctionPointer%, p1$, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPFS(lpFunctionPointer%, p1$, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPFP(lpFunctionPointer%, p1$, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPS(lpFunctionPointer%, p1$, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSPSI(lpFunctionPointer%, p1$, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPSF(lpFunctionPointer%, p1$, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPSS(lpFunctionPointer%, p1$, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPSP(lpFunctionPointer%, p1$, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPP(lpFunctionPointer%, p1$, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVSPPI(lpFunctionPointer%, p1$, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPPF(lpFunctionPointer%, p1$, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPPS(lpFunctionPointer%, p1$, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVSPPP(lpFunctionPointer%, p1$, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVP(lpFunctionPointer%, P1*) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionVPI(lpFunctionPointer%, p1*, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVPII(lpFunctionPointer%, p1*, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPIII(lpFunctionPointer%, p1*, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPIIF(lpFunctionPointer%, p1*, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPIIS(lpFunctionPointer%, p1*, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPIIP(lpFunctionPointer%, p1*, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPIF(lpFunctionPointer%, p1*, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPIFI(lpFunctionPointer%, p1*, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPIFF(lpFunctionPointer%, p1*, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPIFS(lpFunctionPointer%, p1*, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPIFP(lpFunctionPointer%, p1*, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPIS(lpFunctionPointer%, p1*, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPISI(lpFunctionPointer%, p1*, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPISF(lpFunctionPointer%, p1*, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPISS(lpFunctionPointer%, p1*, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPISP(lpFunctionPointer%, p1*, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPIP(lpFunctionPointer%, p1*, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPIPI(lpFunctionPointer%, p1*, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPIPF(lpFunctionPointer%, p1*, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPIPS(lpFunctionPointer%, p1*, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPIPP(lpFunctionPointer%, p1*, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPF(lpFunctionPointer%, p1*, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVPFI(lpFunctionPointer%, p1*, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPFII(lpFunctionPointer%, p1*, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFIF(lpFunctionPointer%, p1*, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFIS(lpFunctionPointer%, p1*, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFIP(lpFunctionPointer%, p1*, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFF(lpFunctionPointer%, p1*, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPFFI(lpFunctionPointer%, p1*, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFFF(lpFunctionPointer%, p1*, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFFS(lpFunctionPointer%, p1*, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFFP(lpFunctionPointer%, p1*, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFS(lpFunctionPointer%, p1*, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPFSI(lpFunctionPointer%, p1*, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFSF(lpFunctionPointer%, p1*, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFSS(lpFunctionPointer%, p1*, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFSP(lpFunctionPointer%, p1*, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFP(lpFunctionPointer%, p1*, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPFPI(lpFunctionPointer%, p1*, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFPF(lpFunctionPointer%, p1*, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFPS(lpFunctionPointer%, p1*, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPFPP(lpFunctionPointer%, p1*, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPS(lpFunctionPointer%, p1*, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVPSI(lpFunctionPointer%, p1*, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPSII(lpFunctionPointer%, p1*, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSIF(lpFunctionPointer%, p1*, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSIS(lpFunctionPointer%, p1*, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSIP(lpFunctionPointer%, p1*, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSF(lpFunctionPointer%, p1*, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPSFI(lpFunctionPointer%, p1*, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSFF(lpFunctionPointer%, p1*, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSFS(lpFunctionPointer%, p1*, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSFP(lpFunctionPointer%, p1*, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSS(lpFunctionPointer%, p1*, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPSSI(lpFunctionPointer%, p1*, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSSF(lpFunctionPointer%, p1*, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSSS(lpFunctionPointer%, p1*, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSSP(lpFunctionPointer%, p1*, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSP(lpFunctionPointer%, p1*, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPSPI(lpFunctionPointer%, p1*, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSPF(lpFunctionPointer%, p1*, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSPS(lpFunctionPointer%, p1*, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPSPP(lpFunctionPointer%, p1*, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPP(lpFunctionPointer%, p1*, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionVPPI(lpFunctionPointer%, p1*, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPPII(lpFunctionPointer%, p1*, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPIF(lpFunctionPointer%, p1*, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPIS(lpFunctionPointer%, p1*, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPIP(lpFunctionPointer%, p1*, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPF(lpFunctionPointer%, p1*, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPPFI(lpFunctionPointer%, p1*, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPFF(lpFunctionPointer%, p1*, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPFS(lpFunctionPointer%, p1*, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPFP(lpFunctionPointer%, p1*, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPS(lpFunctionPointer%, p1*, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPPSI(lpFunctionPointer%, p1*, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPSF(lpFunctionPointer%, p1*, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPSS(lpFunctionPointer%, p1*, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPSP(lpFunctionPointer%, p1*, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPP(lpFunctionPointer%, p1*, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionVPPPI(lpFunctionPointer%, p1*, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPPF(lpFunctionPointer%, p1*, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPPS(lpFunctionPointer%, p1*, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionVPPPP(lpFunctionPointer%, p1*, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionI%(lpFunctionPointer%) : "BlitzPointer_CallFunction0" -BlitzPointer_CallFunctionII%(lpFunctionPointer%, P1%) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionIII%(lpFunctionPointer%, p1%, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionIIII%(lpFunctionPointer%, p1%, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIIIII%(lpFunctionPointer%, p1%, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIIIF%(lpFunctionPointer%, p1%, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIIIS%(lpFunctionPointer%, p1%, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIIIP%(lpFunctionPointer%, p1%, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIIF%(lpFunctionPointer%, p1%, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIIIFI%(lpFunctionPointer%, p1%, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIIFF%(lpFunctionPointer%, p1%, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIIFS%(lpFunctionPointer%, p1%, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIIFP%(lpFunctionPointer%, p1%, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIIS%(lpFunctionPointer%, p1%, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIIISI%(lpFunctionPointer%, p1%, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIISF%(lpFunctionPointer%, p1%, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIISS%(lpFunctionPointer%, p1%, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIISP%(lpFunctionPointer%, p1%, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIIP%(lpFunctionPointer%, p1%, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIIIPI%(lpFunctionPointer%, p1%, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIIPF%(lpFunctionPointer%, p1%, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIIPS%(lpFunctionPointer%, p1%, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIIPP%(lpFunctionPointer%, p1%, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIF%(lpFunctionPointer%, p1%, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionIIFI%(lpFunctionPointer%, p1%, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIIFII%(lpFunctionPointer%, p1%, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFIF%(lpFunctionPointer%, p1%, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFIS%(lpFunctionPointer%, p1%, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFIP%(lpFunctionPointer%, p1%, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFF%(lpFunctionPointer%, p1%, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIIFFI%(lpFunctionPointer%, p1%, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFFF%(lpFunctionPointer%, p1%, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFFS%(lpFunctionPointer%, p1%, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFFP%(lpFunctionPointer%, p1%, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFS%(lpFunctionPointer%, p1%, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIIFSI%(lpFunctionPointer%, p1%, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFSF%(lpFunctionPointer%, p1%, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFSS%(lpFunctionPointer%, p1%, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFSP%(lpFunctionPointer%, p1%, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFP%(lpFunctionPointer%, p1%, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIIFPI%(lpFunctionPointer%, p1%, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFPF%(lpFunctionPointer%, p1%, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFPS%(lpFunctionPointer%, p1%, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIFPP%(lpFunctionPointer%, p1%, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIS%(lpFunctionPointer%, p1%, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionIISI%(lpFunctionPointer%, p1%, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIISII%(lpFunctionPointer%, p1%, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISIF%(lpFunctionPointer%, p1%, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISIS%(lpFunctionPointer%, p1%, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISIP%(lpFunctionPointer%, p1%, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISF%(lpFunctionPointer%, p1%, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIISFI%(lpFunctionPointer%, p1%, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISFF%(lpFunctionPointer%, p1%, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISFS%(lpFunctionPointer%, p1%, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISFP%(lpFunctionPointer%, p1%, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISS%(lpFunctionPointer%, p1%, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIISSI%(lpFunctionPointer%, p1%, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISSF%(lpFunctionPointer%, p1%, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISSS%(lpFunctionPointer%, p1%, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISSP%(lpFunctionPointer%, p1%, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISP%(lpFunctionPointer%, p1%, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIISPI%(lpFunctionPointer%, p1%, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISPF%(lpFunctionPointer%, p1%, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISPS%(lpFunctionPointer%, p1%, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIISPP%(lpFunctionPointer%, p1%, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIP%(lpFunctionPointer%, p1%, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionIIPI%(lpFunctionPointer%, p1%, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIIPII%(lpFunctionPointer%, p1%, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPIF%(lpFunctionPointer%, p1%, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPIS%(lpFunctionPointer%, p1%, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPIP%(lpFunctionPointer%, p1%, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPF%(lpFunctionPointer%, p1%, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIIPFI%(lpFunctionPointer%, p1%, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPFF%(lpFunctionPointer%, p1%, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPFS%(lpFunctionPointer%, p1%, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPFP%(lpFunctionPointer%, p1%, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPS%(lpFunctionPointer%, p1%, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIIPSI%(lpFunctionPointer%, p1%, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPSF%(lpFunctionPointer%, p1%, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPSS%(lpFunctionPointer%, p1%, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPSP%(lpFunctionPointer%, p1%, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPP%(lpFunctionPointer%, p1%, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIIPPI%(lpFunctionPointer%, p1%, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPPF%(lpFunctionPointer%, p1%, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPPS%(lpFunctionPointer%, p1%, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIIPPP%(lpFunctionPointer%, p1%, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIF%(lpFunctionPointer%, P1#) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionIFI%(lpFunctionPointer%, p1#, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionIFII%(lpFunctionPointer%, p1#, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFIII%(lpFunctionPointer%, p1#, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFIIF%(lpFunctionPointer%, p1#, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFIIS%(lpFunctionPointer%, p1#, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFIIP%(lpFunctionPointer%, p1#, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFIF%(lpFunctionPointer%, p1#, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFIFI%(lpFunctionPointer%, p1#, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFIFF%(lpFunctionPointer%, p1#, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFIFS%(lpFunctionPointer%, p1#, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFIFP%(lpFunctionPointer%, p1#, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFIS%(lpFunctionPointer%, p1#, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFISI%(lpFunctionPointer%, p1#, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFISF%(lpFunctionPointer%, p1#, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFISS%(lpFunctionPointer%, p1#, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFISP%(lpFunctionPointer%, p1#, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFIP%(lpFunctionPointer%, p1#, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFIPI%(lpFunctionPointer%, p1#, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFIPF%(lpFunctionPointer%, p1#, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFIPS%(lpFunctionPointer%, p1#, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFIPP%(lpFunctionPointer%, p1#, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFF%(lpFunctionPointer%, p1#, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionIFFI%(lpFunctionPointer%, p1#, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFFII%(lpFunctionPointer%, p1#, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFIF%(lpFunctionPointer%, p1#, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFIS%(lpFunctionPointer%, p1#, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFIP%(lpFunctionPointer%, p1#, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFF%(lpFunctionPointer%, p1#, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFFFI%(lpFunctionPointer%, p1#, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFFF%(lpFunctionPointer%, p1#, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFFS%(lpFunctionPointer%, p1#, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFFP%(lpFunctionPointer%, p1#, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFS%(lpFunctionPointer%, p1#, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFFSI%(lpFunctionPointer%, p1#, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFSF%(lpFunctionPointer%, p1#, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFSS%(lpFunctionPointer%, p1#, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFSP%(lpFunctionPointer%, p1#, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFP%(lpFunctionPointer%, p1#, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFFPI%(lpFunctionPointer%, p1#, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFPF%(lpFunctionPointer%, p1#, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFPS%(lpFunctionPointer%, p1#, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFFPP%(lpFunctionPointer%, p1#, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFS%(lpFunctionPointer%, p1#, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionIFSI%(lpFunctionPointer%, p1#, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFSII%(lpFunctionPointer%, p1#, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSIF%(lpFunctionPointer%, p1#, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSIS%(lpFunctionPointer%, p1#, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSIP%(lpFunctionPointer%, p1#, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSF%(lpFunctionPointer%, p1#, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFSFI%(lpFunctionPointer%, p1#, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSFF%(lpFunctionPointer%, p1#, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSFS%(lpFunctionPointer%, p1#, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSFP%(lpFunctionPointer%, p1#, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSS%(lpFunctionPointer%, p1#, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFSSI%(lpFunctionPointer%, p1#, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSSF%(lpFunctionPointer%, p1#, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSSS%(lpFunctionPointer%, p1#, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSSP%(lpFunctionPointer%, p1#, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSP%(lpFunctionPointer%, p1#, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFSPI%(lpFunctionPointer%, p1#, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSPF%(lpFunctionPointer%, p1#, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSPS%(lpFunctionPointer%, p1#, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFSPP%(lpFunctionPointer%, p1#, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFP%(lpFunctionPointer%, p1#, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionIFPI%(lpFunctionPointer%, p1#, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFPII%(lpFunctionPointer%, p1#, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPIF%(lpFunctionPointer%, p1#, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPIS%(lpFunctionPointer%, p1#, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPIP%(lpFunctionPointer%, p1#, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPF%(lpFunctionPointer%, p1#, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFPFI%(lpFunctionPointer%, p1#, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPFF%(lpFunctionPointer%, p1#, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPFS%(lpFunctionPointer%, p1#, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPFP%(lpFunctionPointer%, p1#, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPS%(lpFunctionPointer%, p1#, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFPSI%(lpFunctionPointer%, p1#, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPSF%(lpFunctionPointer%, p1#, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPSS%(lpFunctionPointer%, p1#, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPSP%(lpFunctionPointer%, p1#, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPP%(lpFunctionPointer%, p1#, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIFPPI%(lpFunctionPointer%, p1#, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPPF%(lpFunctionPointer%, p1#, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPPS%(lpFunctionPointer%, p1#, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIFPPP%(lpFunctionPointer%, p1#, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIS%(lpFunctionPointer%, P1$) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionISI%(lpFunctionPointer%, p1$, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionISII%(lpFunctionPointer%, p1$, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISIII%(lpFunctionPointer%, p1$, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISIIF%(lpFunctionPointer%, p1$, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISIIS%(lpFunctionPointer%, p1$, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISIIP%(lpFunctionPointer%, p1$, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISIF%(lpFunctionPointer%, p1$, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISIFI%(lpFunctionPointer%, p1$, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISIFF%(lpFunctionPointer%, p1$, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISIFS%(lpFunctionPointer%, p1$, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISIFP%(lpFunctionPointer%, p1$, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISIS%(lpFunctionPointer%, p1$, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISISI%(lpFunctionPointer%, p1$, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISISF%(lpFunctionPointer%, p1$, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISISS%(lpFunctionPointer%, p1$, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISISP%(lpFunctionPointer%, p1$, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISIP%(lpFunctionPointer%, p1$, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISIPI%(lpFunctionPointer%, p1$, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISIPF%(lpFunctionPointer%, p1$, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISIPS%(lpFunctionPointer%, p1$, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISIPP%(lpFunctionPointer%, p1$, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISF%(lpFunctionPointer%, p1$, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionISFI%(lpFunctionPointer%, p1$, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISFII%(lpFunctionPointer%, p1$, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFIF%(lpFunctionPointer%, p1$, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFIS%(lpFunctionPointer%, p1$, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFIP%(lpFunctionPointer%, p1$, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFF%(lpFunctionPointer%, p1$, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISFFI%(lpFunctionPointer%, p1$, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFFF%(lpFunctionPointer%, p1$, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFFS%(lpFunctionPointer%, p1$, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFFP%(lpFunctionPointer%, p1$, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFS%(lpFunctionPointer%, p1$, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISFSI%(lpFunctionPointer%, p1$, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFSF%(lpFunctionPointer%, p1$, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFSS%(lpFunctionPointer%, p1$, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFSP%(lpFunctionPointer%, p1$, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFP%(lpFunctionPointer%, p1$, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISFPI%(lpFunctionPointer%, p1$, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFPF%(lpFunctionPointer%, p1$, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFPS%(lpFunctionPointer%, p1$, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISFPP%(lpFunctionPointer%, p1$, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISS%(lpFunctionPointer%, p1$, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionISSI%(lpFunctionPointer%, p1$, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISSII%(lpFunctionPointer%, p1$, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSIF%(lpFunctionPointer%, p1$, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSIS%(lpFunctionPointer%, p1$, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSIP%(lpFunctionPointer%, p1$, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSF%(lpFunctionPointer%, p1$, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISSFI%(lpFunctionPointer%, p1$, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSFF%(lpFunctionPointer%, p1$, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSFS%(lpFunctionPointer%, p1$, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSFP%(lpFunctionPointer%, p1$, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSS%(lpFunctionPointer%, p1$, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISSSI%(lpFunctionPointer%, p1$, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSSF%(lpFunctionPointer%, p1$, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSSS%(lpFunctionPointer%, p1$, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSSP%(lpFunctionPointer%, p1$, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSP%(lpFunctionPointer%, p1$, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISSPI%(lpFunctionPointer%, p1$, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSPF%(lpFunctionPointer%, p1$, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSPS%(lpFunctionPointer%, p1$, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISSPP%(lpFunctionPointer%, p1$, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISP%(lpFunctionPointer%, p1$, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionISPI%(lpFunctionPointer%, p1$, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISPII%(lpFunctionPointer%, p1$, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPIF%(lpFunctionPointer%, p1$, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPIS%(lpFunctionPointer%, p1$, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPIP%(lpFunctionPointer%, p1$, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPF%(lpFunctionPointer%, p1$, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISPFI%(lpFunctionPointer%, p1$, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPFF%(lpFunctionPointer%, p1$, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPFS%(lpFunctionPointer%, p1$, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPFP%(lpFunctionPointer%, p1$, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPS%(lpFunctionPointer%, p1$, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISPSI%(lpFunctionPointer%, p1$, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPSF%(lpFunctionPointer%, p1$, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPSS%(lpFunctionPointer%, p1$, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPSP%(lpFunctionPointer%, p1$, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPP%(lpFunctionPointer%, p1$, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionISPPI%(lpFunctionPointer%, p1$, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPPF%(lpFunctionPointer%, p1$, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPPS%(lpFunctionPointer%, p1$, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionISPPP%(lpFunctionPointer%, p1$, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIP%(lpFunctionPointer%, P1*) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionIPI%(lpFunctionPointer%, p1*, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionIPII%(lpFunctionPointer%, p1*, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPIII%(lpFunctionPointer%, p1*, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPIIF%(lpFunctionPointer%, p1*, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPIIS%(lpFunctionPointer%, p1*, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPIIP%(lpFunctionPointer%, p1*, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPIF%(lpFunctionPointer%, p1*, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPIFI%(lpFunctionPointer%, p1*, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPIFF%(lpFunctionPointer%, p1*, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPIFS%(lpFunctionPointer%, p1*, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPIFP%(lpFunctionPointer%, p1*, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPIS%(lpFunctionPointer%, p1*, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPISI%(lpFunctionPointer%, p1*, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPISF%(lpFunctionPointer%, p1*, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPISS%(lpFunctionPointer%, p1*, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPISP%(lpFunctionPointer%, p1*, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPIP%(lpFunctionPointer%, p1*, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPIPI%(lpFunctionPointer%, p1*, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPIPF%(lpFunctionPointer%, p1*, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPIPS%(lpFunctionPointer%, p1*, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPIPP%(lpFunctionPointer%, p1*, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPF%(lpFunctionPointer%, p1*, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionIPFI%(lpFunctionPointer%, p1*, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPFII%(lpFunctionPointer%, p1*, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFIF%(lpFunctionPointer%, p1*, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFIS%(lpFunctionPointer%, p1*, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFIP%(lpFunctionPointer%, p1*, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFF%(lpFunctionPointer%, p1*, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPFFI%(lpFunctionPointer%, p1*, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFFF%(lpFunctionPointer%, p1*, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFFS%(lpFunctionPointer%, p1*, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFFP%(lpFunctionPointer%, p1*, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFS%(lpFunctionPointer%, p1*, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPFSI%(lpFunctionPointer%, p1*, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFSF%(lpFunctionPointer%, p1*, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFSS%(lpFunctionPointer%, p1*, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFSP%(lpFunctionPointer%, p1*, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFP%(lpFunctionPointer%, p1*, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPFPI%(lpFunctionPointer%, p1*, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFPF%(lpFunctionPointer%, p1*, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFPS%(lpFunctionPointer%, p1*, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPFPP%(lpFunctionPointer%, p1*, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPS%(lpFunctionPointer%, p1*, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionIPSI%(lpFunctionPointer%, p1*, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPSII%(lpFunctionPointer%, p1*, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSIF%(lpFunctionPointer%, p1*, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSIS%(lpFunctionPointer%, p1*, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSIP%(lpFunctionPointer%, p1*, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSF%(lpFunctionPointer%, p1*, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPSFI%(lpFunctionPointer%, p1*, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSFF%(lpFunctionPointer%, p1*, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSFS%(lpFunctionPointer%, p1*, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSFP%(lpFunctionPointer%, p1*, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSS%(lpFunctionPointer%, p1*, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPSSI%(lpFunctionPointer%, p1*, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSSF%(lpFunctionPointer%, p1*, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSSS%(lpFunctionPointer%, p1*, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSSP%(lpFunctionPointer%, p1*, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSP%(lpFunctionPointer%, p1*, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPSPI%(lpFunctionPointer%, p1*, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSPF%(lpFunctionPointer%, p1*, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSPS%(lpFunctionPointer%, p1*, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPSPP%(lpFunctionPointer%, p1*, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPP%(lpFunctionPointer%, p1*, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionIPPI%(lpFunctionPointer%, p1*, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPPII%(lpFunctionPointer%, p1*, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPIF%(lpFunctionPointer%, p1*, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPIS%(lpFunctionPointer%, p1*, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPIP%(lpFunctionPointer%, p1*, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPF%(lpFunctionPointer%, p1*, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPPFI%(lpFunctionPointer%, p1*, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPFF%(lpFunctionPointer%, p1*, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPFS%(lpFunctionPointer%, p1*, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPFP%(lpFunctionPointer%, p1*, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPS%(lpFunctionPointer%, p1*, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPPSI%(lpFunctionPointer%, p1*, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPSF%(lpFunctionPointer%, p1*, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPSS%(lpFunctionPointer%, p1*, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPSP%(lpFunctionPointer%, p1*, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPP%(lpFunctionPointer%, p1*, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionIPPPI%(lpFunctionPointer%, p1*, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPPF%(lpFunctionPointer%, p1*, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPPS%(lpFunctionPointer%, p1*, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionIPPPP%(lpFunctionPointer%, p1*, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionF#(lpFunctionPointer%) : "BlitzPointer_CallFunction0" -BlitzPointer_CallFunctionFI#(lpFunctionPointer%, P1%) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionFII#(lpFunctionPointer%, p1%, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFIII#(lpFunctionPointer%, p1%, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFIIII#(lpFunctionPointer%, p1%, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIIIF#(lpFunctionPointer%, p1%, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIIIS#(lpFunctionPointer%, p1%, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIIIP#(lpFunctionPointer%, p1%, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIIF#(lpFunctionPointer%, p1%, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFIIFI#(lpFunctionPointer%, p1%, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIIFF#(lpFunctionPointer%, p1%, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIIFS#(lpFunctionPointer%, p1%, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIIFP#(lpFunctionPointer%, p1%, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIIS#(lpFunctionPointer%, p1%, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFIISI#(lpFunctionPointer%, p1%, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIISF#(lpFunctionPointer%, p1%, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIISS#(lpFunctionPointer%, p1%, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIISP#(lpFunctionPointer%, p1%, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIIP#(lpFunctionPointer%, p1%, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFIIPI#(lpFunctionPointer%, p1%, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIIPF#(lpFunctionPointer%, p1%, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIIPS#(lpFunctionPointer%, p1%, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIIPP#(lpFunctionPointer%, p1%, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIF#(lpFunctionPointer%, p1%, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFIFI#(lpFunctionPointer%, p1%, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFIFII#(lpFunctionPointer%, p1%, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFIF#(lpFunctionPointer%, p1%, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFIS#(lpFunctionPointer%, p1%, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFIP#(lpFunctionPointer%, p1%, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFF#(lpFunctionPointer%, p1%, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFIFFI#(lpFunctionPointer%, p1%, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFFF#(lpFunctionPointer%, p1%, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFFS#(lpFunctionPointer%, p1%, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFFP#(lpFunctionPointer%, p1%, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFS#(lpFunctionPointer%, p1%, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFIFSI#(lpFunctionPointer%, p1%, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFSF#(lpFunctionPointer%, p1%, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFSS#(lpFunctionPointer%, p1%, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFSP#(lpFunctionPointer%, p1%, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFP#(lpFunctionPointer%, p1%, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFIFPI#(lpFunctionPointer%, p1%, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFPF#(lpFunctionPointer%, p1%, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFPS#(lpFunctionPointer%, p1%, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIFPP#(lpFunctionPointer%, p1%, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIS#(lpFunctionPointer%, p1%, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFISI#(lpFunctionPointer%, p1%, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFISII#(lpFunctionPointer%, p1%, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISIF#(lpFunctionPointer%, p1%, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISIS#(lpFunctionPointer%, p1%, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISIP#(lpFunctionPointer%, p1%, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISF#(lpFunctionPointer%, p1%, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFISFI#(lpFunctionPointer%, p1%, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISFF#(lpFunctionPointer%, p1%, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISFS#(lpFunctionPointer%, p1%, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISFP#(lpFunctionPointer%, p1%, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISS#(lpFunctionPointer%, p1%, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFISSI#(lpFunctionPointer%, p1%, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISSF#(lpFunctionPointer%, p1%, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISSS#(lpFunctionPointer%, p1%, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISSP#(lpFunctionPointer%, p1%, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISP#(lpFunctionPointer%, p1%, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFISPI#(lpFunctionPointer%, p1%, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISPF#(lpFunctionPointer%, p1%, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISPS#(lpFunctionPointer%, p1%, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFISPP#(lpFunctionPointer%, p1%, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIP#(lpFunctionPointer%, p1%, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFIPI#(lpFunctionPointer%, p1%, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFIPII#(lpFunctionPointer%, p1%, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPIF#(lpFunctionPointer%, p1%, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPIS#(lpFunctionPointer%, p1%, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPIP#(lpFunctionPointer%, p1%, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPF#(lpFunctionPointer%, p1%, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFIPFI#(lpFunctionPointer%, p1%, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPFF#(lpFunctionPointer%, p1%, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPFS#(lpFunctionPointer%, p1%, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPFP#(lpFunctionPointer%, p1%, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPS#(lpFunctionPointer%, p1%, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFIPSI#(lpFunctionPointer%, p1%, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPSF#(lpFunctionPointer%, p1%, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPSS#(lpFunctionPointer%, p1%, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPSP#(lpFunctionPointer%, p1%, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPP#(lpFunctionPointer%, p1%, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFIPPI#(lpFunctionPointer%, p1%, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPPF#(lpFunctionPointer%, p1%, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPPS#(lpFunctionPointer%, p1%, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFIPPP#(lpFunctionPointer%, p1%, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFF#(lpFunctionPointer%, P1#) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionFFI#(lpFunctionPointer%, p1#, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFFII#(lpFunctionPointer%, p1#, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFIII#(lpFunctionPointer%, p1#, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFIIF#(lpFunctionPointer%, p1#, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFIIS#(lpFunctionPointer%, p1#, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFIIP#(lpFunctionPointer%, p1#, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFIF#(lpFunctionPointer%, p1#, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFIFI#(lpFunctionPointer%, p1#, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFIFF#(lpFunctionPointer%, p1#, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFIFS#(lpFunctionPointer%, p1#, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFIFP#(lpFunctionPointer%, p1#, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFIS#(lpFunctionPointer%, p1#, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFISI#(lpFunctionPointer%, p1#, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFISF#(lpFunctionPointer%, p1#, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFISS#(lpFunctionPointer%, p1#, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFISP#(lpFunctionPointer%, p1#, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFIP#(lpFunctionPointer%, p1#, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFIPI#(lpFunctionPointer%, p1#, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFIPF#(lpFunctionPointer%, p1#, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFIPS#(lpFunctionPointer%, p1#, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFIPP#(lpFunctionPointer%, p1#, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFF#(lpFunctionPointer%, p1#, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFFFI#(lpFunctionPointer%, p1#, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFFII#(lpFunctionPointer%, p1#, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFIF#(lpFunctionPointer%, p1#, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFIS#(lpFunctionPointer%, p1#, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFIP#(lpFunctionPointer%, p1#, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFF#(lpFunctionPointer%, p1#, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFFFI#(lpFunctionPointer%, p1#, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFFF#(lpFunctionPointer%, p1#, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFFS#(lpFunctionPointer%, p1#, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFFP#(lpFunctionPointer%, p1#, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFS#(lpFunctionPointer%, p1#, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFFSI#(lpFunctionPointer%, p1#, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFSF#(lpFunctionPointer%, p1#, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFSS#(lpFunctionPointer%, p1#, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFSP#(lpFunctionPointer%, p1#, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFP#(lpFunctionPointer%, p1#, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFFPI#(lpFunctionPointer%, p1#, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFPF#(lpFunctionPointer%, p1#, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFPS#(lpFunctionPointer%, p1#, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFFPP#(lpFunctionPointer%, p1#, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFS#(lpFunctionPointer%, p1#, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFFSI#(lpFunctionPointer%, p1#, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFSII#(lpFunctionPointer%, p1#, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSIF#(lpFunctionPointer%, p1#, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSIS#(lpFunctionPointer%, p1#, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSIP#(lpFunctionPointer%, p1#, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSF#(lpFunctionPointer%, p1#, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFSFI#(lpFunctionPointer%, p1#, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSFF#(lpFunctionPointer%, p1#, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSFS#(lpFunctionPointer%, p1#, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSFP#(lpFunctionPointer%, p1#, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSS#(lpFunctionPointer%, p1#, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFSSI#(lpFunctionPointer%, p1#, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSSF#(lpFunctionPointer%, p1#, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSSS#(lpFunctionPointer%, p1#, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSSP#(lpFunctionPointer%, p1#, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSP#(lpFunctionPointer%, p1#, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFSPI#(lpFunctionPointer%, p1#, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSPF#(lpFunctionPointer%, p1#, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSPS#(lpFunctionPointer%, p1#, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFSPP#(lpFunctionPointer%, p1#, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFP#(lpFunctionPointer%, p1#, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFFPI#(lpFunctionPointer%, p1#, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFPII#(lpFunctionPointer%, p1#, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPIF#(lpFunctionPointer%, p1#, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPIS#(lpFunctionPointer%, p1#, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPIP#(lpFunctionPointer%, p1#, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPF#(lpFunctionPointer%, p1#, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFPFI#(lpFunctionPointer%, p1#, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPFF#(lpFunctionPointer%, p1#, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPFS#(lpFunctionPointer%, p1#, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPFP#(lpFunctionPointer%, p1#, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPS#(lpFunctionPointer%, p1#, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFPSI#(lpFunctionPointer%, p1#, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPSF#(lpFunctionPointer%, p1#, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPSS#(lpFunctionPointer%, p1#, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPSP#(lpFunctionPointer%, p1#, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPP#(lpFunctionPointer%, p1#, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFFPPI#(lpFunctionPointer%, p1#, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPPF#(lpFunctionPointer%, p1#, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPPS#(lpFunctionPointer%, p1#, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFFPPP#(lpFunctionPointer%, p1#, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFS#(lpFunctionPointer%, P1$) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionFSI#(lpFunctionPointer%, p1$, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFSII#(lpFunctionPointer%, p1$, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSIII#(lpFunctionPointer%, p1$, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSIIF#(lpFunctionPointer%, p1$, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSIIS#(lpFunctionPointer%, p1$, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSIIP#(lpFunctionPointer%, p1$, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSIF#(lpFunctionPointer%, p1$, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSIFI#(lpFunctionPointer%, p1$, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSIFF#(lpFunctionPointer%, p1$, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSIFS#(lpFunctionPointer%, p1$, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSIFP#(lpFunctionPointer%, p1$, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSIS#(lpFunctionPointer%, p1$, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSISI#(lpFunctionPointer%, p1$, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSISF#(lpFunctionPointer%, p1$, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSISS#(lpFunctionPointer%, p1$, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSISP#(lpFunctionPointer%, p1$, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSIP#(lpFunctionPointer%, p1$, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSIPI#(lpFunctionPointer%, p1$, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSIPF#(lpFunctionPointer%, p1$, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSIPS#(lpFunctionPointer%, p1$, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSIPP#(lpFunctionPointer%, p1$, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSF#(lpFunctionPointer%, p1$, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFSFI#(lpFunctionPointer%, p1$, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSFII#(lpFunctionPointer%, p1$, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFIF#(lpFunctionPointer%, p1$, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFIS#(lpFunctionPointer%, p1$, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFIP#(lpFunctionPointer%, p1$, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFF#(lpFunctionPointer%, p1$, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSFFI#(lpFunctionPointer%, p1$, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFFF#(lpFunctionPointer%, p1$, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFFS#(lpFunctionPointer%, p1$, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFFP#(lpFunctionPointer%, p1$, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFS#(lpFunctionPointer%, p1$, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSFSI#(lpFunctionPointer%, p1$, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFSF#(lpFunctionPointer%, p1$, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFSS#(lpFunctionPointer%, p1$, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFSP#(lpFunctionPointer%, p1$, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFP#(lpFunctionPointer%, p1$, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSFPI#(lpFunctionPointer%, p1$, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFPF#(lpFunctionPointer%, p1$, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFPS#(lpFunctionPointer%, p1$, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSFPP#(lpFunctionPointer%, p1$, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSS#(lpFunctionPointer%, p1$, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFSSI#(lpFunctionPointer%, p1$, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSSII#(lpFunctionPointer%, p1$, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSIF#(lpFunctionPointer%, p1$, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSIS#(lpFunctionPointer%, p1$, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSIP#(lpFunctionPointer%, p1$, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSF#(lpFunctionPointer%, p1$, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSSFI#(lpFunctionPointer%, p1$, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSFF#(lpFunctionPointer%, p1$, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSFS#(lpFunctionPointer%, p1$, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSFP#(lpFunctionPointer%, p1$, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSS#(lpFunctionPointer%, p1$, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSSSI#(lpFunctionPointer%, p1$, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSSF#(lpFunctionPointer%, p1$, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSSS#(lpFunctionPointer%, p1$, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSSP#(lpFunctionPointer%, p1$, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSP#(lpFunctionPointer%, p1$, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSSPI#(lpFunctionPointer%, p1$, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSPF#(lpFunctionPointer%, p1$, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSPS#(lpFunctionPointer%, p1$, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSSPP#(lpFunctionPointer%, p1$, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSP#(lpFunctionPointer%, p1$, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFSPI#(lpFunctionPointer%, p1$, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSPII#(lpFunctionPointer%, p1$, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPIF#(lpFunctionPointer%, p1$, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPIS#(lpFunctionPointer%, p1$, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPIP#(lpFunctionPointer%, p1$, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPF#(lpFunctionPointer%, p1$, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSPFI#(lpFunctionPointer%, p1$, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPFF#(lpFunctionPointer%, p1$, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPFS#(lpFunctionPointer%, p1$, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPFP#(lpFunctionPointer%, p1$, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPS#(lpFunctionPointer%, p1$, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSPSI#(lpFunctionPointer%, p1$, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPSF#(lpFunctionPointer%, p1$, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPSS#(lpFunctionPointer%, p1$, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPSP#(lpFunctionPointer%, p1$, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPP#(lpFunctionPointer%, p1$, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFSPPI#(lpFunctionPointer%, p1$, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPPF#(lpFunctionPointer%, p1$, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPPS#(lpFunctionPointer%, p1$, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFSPPP#(lpFunctionPointer%, p1$, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFP#(lpFunctionPointer%, P1*) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionFPI#(lpFunctionPointer%, p1*, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFPII#(lpFunctionPointer%, p1*, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPIII#(lpFunctionPointer%, p1*, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPIIF#(lpFunctionPointer%, p1*, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPIIS#(lpFunctionPointer%, p1*, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPIIP#(lpFunctionPointer%, p1*, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPIF#(lpFunctionPointer%, p1*, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPIFI#(lpFunctionPointer%, p1*, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPIFF#(lpFunctionPointer%, p1*, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPIFS#(lpFunctionPointer%, p1*, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPIFP#(lpFunctionPointer%, p1*, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPIS#(lpFunctionPointer%, p1*, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPISI#(lpFunctionPointer%, p1*, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPISF#(lpFunctionPointer%, p1*, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPISS#(lpFunctionPointer%, p1*, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPISP#(lpFunctionPointer%, p1*, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPIP#(lpFunctionPointer%, p1*, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPIPI#(lpFunctionPointer%, p1*, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPIPF#(lpFunctionPointer%, p1*, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPIPS#(lpFunctionPointer%, p1*, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPIPP#(lpFunctionPointer%, p1*, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPF#(lpFunctionPointer%, p1*, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFPFI#(lpFunctionPointer%, p1*, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPFII#(lpFunctionPointer%, p1*, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFIF#(lpFunctionPointer%, p1*, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFIS#(lpFunctionPointer%, p1*, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFIP#(lpFunctionPointer%, p1*, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFF#(lpFunctionPointer%, p1*, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPFFI#(lpFunctionPointer%, p1*, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFFF#(lpFunctionPointer%, p1*, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFFS#(lpFunctionPointer%, p1*, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFFP#(lpFunctionPointer%, p1*, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFS#(lpFunctionPointer%, p1*, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPFSI#(lpFunctionPointer%, p1*, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFSF#(lpFunctionPointer%, p1*, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFSS#(lpFunctionPointer%, p1*, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFSP#(lpFunctionPointer%, p1*, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFP#(lpFunctionPointer%, p1*, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPFPI#(lpFunctionPointer%, p1*, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFPF#(lpFunctionPointer%, p1*, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFPS#(lpFunctionPointer%, p1*, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPFPP#(lpFunctionPointer%, p1*, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPS#(lpFunctionPointer%, p1*, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFPSI#(lpFunctionPointer%, p1*, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPSII#(lpFunctionPointer%, p1*, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSIF#(lpFunctionPointer%, p1*, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSIS#(lpFunctionPointer%, p1*, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSIP#(lpFunctionPointer%, p1*, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSF#(lpFunctionPointer%, p1*, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPSFI#(lpFunctionPointer%, p1*, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSFF#(lpFunctionPointer%, p1*, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSFS#(lpFunctionPointer%, p1*, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSFP#(lpFunctionPointer%, p1*, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSS#(lpFunctionPointer%, p1*, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPSSI#(lpFunctionPointer%, p1*, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSSF#(lpFunctionPointer%, p1*, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSSS#(lpFunctionPointer%, p1*, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSSP#(lpFunctionPointer%, p1*, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSP#(lpFunctionPointer%, p1*, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPSPI#(lpFunctionPointer%, p1*, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSPF#(lpFunctionPointer%, p1*, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSPS#(lpFunctionPointer%, p1*, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPSPP#(lpFunctionPointer%, p1*, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPP#(lpFunctionPointer%, p1*, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionFPPI#(lpFunctionPointer%, p1*, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPPII#(lpFunctionPointer%, p1*, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPIF#(lpFunctionPointer%, p1*, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPIS#(lpFunctionPointer%, p1*, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPIP#(lpFunctionPointer%, p1*, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPF#(lpFunctionPointer%, p1*, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPPFI#(lpFunctionPointer%, p1*, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPFF#(lpFunctionPointer%, p1*, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPFS#(lpFunctionPointer%, p1*, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPFP#(lpFunctionPointer%, p1*, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPS#(lpFunctionPointer%, p1*, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPPSI#(lpFunctionPointer%, p1*, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPSF#(lpFunctionPointer%, p1*, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPSS#(lpFunctionPointer%, p1*, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPSP#(lpFunctionPointer%, p1*, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPP#(lpFunctionPointer%, p1*, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionFPPPI#(lpFunctionPointer%, p1*, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPPF#(lpFunctionPointer%, p1*, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPPS#(lpFunctionPointer%, p1*, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionFPPPP#(lpFunctionPointer%, p1*, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionS$(lpFunctionPointer%) : "BlitzPointer_CallFunction0" -BlitzPointer_CallFunctionSI$(lpFunctionPointer%, P1%) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionSII$(lpFunctionPointer%, p1%, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSIII$(lpFunctionPointer%, p1%, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSIIII$(lpFunctionPointer%, p1%, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIIIF$(lpFunctionPointer%, p1%, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIIIS$(lpFunctionPointer%, p1%, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIIIP$(lpFunctionPointer%, p1%, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIIF$(lpFunctionPointer%, p1%, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSIIFI$(lpFunctionPointer%, p1%, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIIFF$(lpFunctionPointer%, p1%, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIIFS$(lpFunctionPointer%, p1%, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIIFP$(lpFunctionPointer%, p1%, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIIS$(lpFunctionPointer%, p1%, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSIISI$(lpFunctionPointer%, p1%, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIISF$(lpFunctionPointer%, p1%, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIISS$(lpFunctionPointer%, p1%, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIISP$(lpFunctionPointer%, p1%, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIIP$(lpFunctionPointer%, p1%, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSIIPI$(lpFunctionPointer%, p1%, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIIPF$(lpFunctionPointer%, p1%, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIIPS$(lpFunctionPointer%, p1%, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIIPP$(lpFunctionPointer%, p1%, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIF$(lpFunctionPointer%, p1%, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSIFI$(lpFunctionPointer%, p1%, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSIFII$(lpFunctionPointer%, p1%, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFIF$(lpFunctionPointer%, p1%, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFIS$(lpFunctionPointer%, p1%, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFIP$(lpFunctionPointer%, p1%, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFF$(lpFunctionPointer%, p1%, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSIFFI$(lpFunctionPointer%, p1%, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFFF$(lpFunctionPointer%, p1%, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFFS$(lpFunctionPointer%, p1%, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFFP$(lpFunctionPointer%, p1%, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFS$(lpFunctionPointer%, p1%, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSIFSI$(lpFunctionPointer%, p1%, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFSF$(lpFunctionPointer%, p1%, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFSS$(lpFunctionPointer%, p1%, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFSP$(lpFunctionPointer%, p1%, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFP$(lpFunctionPointer%, p1%, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSIFPI$(lpFunctionPointer%, p1%, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFPF$(lpFunctionPointer%, p1%, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFPS$(lpFunctionPointer%, p1%, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIFPP$(lpFunctionPointer%, p1%, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIS$(lpFunctionPointer%, p1%, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSISI$(lpFunctionPointer%, p1%, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSISII$(lpFunctionPointer%, p1%, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISIF$(lpFunctionPointer%, p1%, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISIS$(lpFunctionPointer%, p1%, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISIP$(lpFunctionPointer%, p1%, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISF$(lpFunctionPointer%, p1%, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSISFI$(lpFunctionPointer%, p1%, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISFF$(lpFunctionPointer%, p1%, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISFS$(lpFunctionPointer%, p1%, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISFP$(lpFunctionPointer%, p1%, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISS$(lpFunctionPointer%, p1%, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSISSI$(lpFunctionPointer%, p1%, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISSF$(lpFunctionPointer%, p1%, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISSS$(lpFunctionPointer%, p1%, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISSP$(lpFunctionPointer%, p1%, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISP$(lpFunctionPointer%, p1%, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSISPI$(lpFunctionPointer%, p1%, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISPF$(lpFunctionPointer%, p1%, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISPS$(lpFunctionPointer%, p1%, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSISPP$(lpFunctionPointer%, p1%, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIP$(lpFunctionPointer%, p1%, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSIPI$(lpFunctionPointer%, p1%, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSIPII$(lpFunctionPointer%, p1%, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPIF$(lpFunctionPointer%, p1%, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPIS$(lpFunctionPointer%, p1%, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPIP$(lpFunctionPointer%, p1%, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPF$(lpFunctionPointer%, p1%, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSIPFI$(lpFunctionPointer%, p1%, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPFF$(lpFunctionPointer%, p1%, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPFS$(lpFunctionPointer%, p1%, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPFP$(lpFunctionPointer%, p1%, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPS$(lpFunctionPointer%, p1%, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSIPSI$(lpFunctionPointer%, p1%, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPSF$(lpFunctionPointer%, p1%, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPSS$(lpFunctionPointer%, p1%, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPSP$(lpFunctionPointer%, p1%, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPP$(lpFunctionPointer%, p1%, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSIPPI$(lpFunctionPointer%, p1%, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPPF$(lpFunctionPointer%, p1%, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPPS$(lpFunctionPointer%, p1%, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSIPPP$(lpFunctionPointer%, p1%, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSF$(lpFunctionPointer%, P1#) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionSFI$(lpFunctionPointer%, p1#, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSFII$(lpFunctionPointer%, p1#, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFIII$(lpFunctionPointer%, p1#, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFIIF$(lpFunctionPointer%, p1#, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFIIS$(lpFunctionPointer%, p1#, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFIIP$(lpFunctionPointer%, p1#, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFIF$(lpFunctionPointer%, p1#, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFIFI$(lpFunctionPointer%, p1#, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFIFF$(lpFunctionPointer%, p1#, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFIFS$(lpFunctionPointer%, p1#, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFIFP$(lpFunctionPointer%, p1#, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFIS$(lpFunctionPointer%, p1#, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFISI$(lpFunctionPointer%, p1#, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFISF$(lpFunctionPointer%, p1#, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFISS$(lpFunctionPointer%, p1#, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFISP$(lpFunctionPointer%, p1#, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFIP$(lpFunctionPointer%, p1#, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFIPI$(lpFunctionPointer%, p1#, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFIPF$(lpFunctionPointer%, p1#, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFIPS$(lpFunctionPointer%, p1#, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFIPP$(lpFunctionPointer%, p1#, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFF$(lpFunctionPointer%, p1#, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSFFI$(lpFunctionPointer%, p1#, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFFII$(lpFunctionPointer%, p1#, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFIF$(lpFunctionPointer%, p1#, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFIS$(lpFunctionPointer%, p1#, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFIP$(lpFunctionPointer%, p1#, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFF$(lpFunctionPointer%, p1#, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFFFI$(lpFunctionPointer%, p1#, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFFF$(lpFunctionPointer%, p1#, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFFS$(lpFunctionPointer%, p1#, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFFP$(lpFunctionPointer%, p1#, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFS$(lpFunctionPointer%, p1#, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFFSI$(lpFunctionPointer%, p1#, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFSF$(lpFunctionPointer%, p1#, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFSS$(lpFunctionPointer%, p1#, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFSP$(lpFunctionPointer%, p1#, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFP$(lpFunctionPointer%, p1#, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFFPI$(lpFunctionPointer%, p1#, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFPF$(lpFunctionPointer%, p1#, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFPS$(lpFunctionPointer%, p1#, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFFPP$(lpFunctionPointer%, p1#, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFS$(lpFunctionPointer%, p1#, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSFSI$(lpFunctionPointer%, p1#, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFSII$(lpFunctionPointer%, p1#, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSIF$(lpFunctionPointer%, p1#, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSIS$(lpFunctionPointer%, p1#, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSIP$(lpFunctionPointer%, p1#, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSF$(lpFunctionPointer%, p1#, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFSFI$(lpFunctionPointer%, p1#, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSFF$(lpFunctionPointer%, p1#, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSFS$(lpFunctionPointer%, p1#, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSFP$(lpFunctionPointer%, p1#, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSS$(lpFunctionPointer%, p1#, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFSSI$(lpFunctionPointer%, p1#, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSSF$(lpFunctionPointer%, p1#, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSSS$(lpFunctionPointer%, p1#, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSSP$(lpFunctionPointer%, p1#, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSP$(lpFunctionPointer%, p1#, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFSPI$(lpFunctionPointer%, p1#, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSPF$(lpFunctionPointer%, p1#, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSPS$(lpFunctionPointer%, p1#, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFSPP$(lpFunctionPointer%, p1#, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFP$(lpFunctionPointer%, p1#, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSFPI$(lpFunctionPointer%, p1#, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFPII$(lpFunctionPointer%, p1#, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPIF$(lpFunctionPointer%, p1#, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPIS$(lpFunctionPointer%, p1#, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPIP$(lpFunctionPointer%, p1#, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPF$(lpFunctionPointer%, p1#, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFPFI$(lpFunctionPointer%, p1#, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPFF$(lpFunctionPointer%, p1#, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPFS$(lpFunctionPointer%, p1#, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPFP$(lpFunctionPointer%, p1#, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPS$(lpFunctionPointer%, p1#, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFPSI$(lpFunctionPointer%, p1#, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPSF$(lpFunctionPointer%, p1#, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPSS$(lpFunctionPointer%, p1#, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPSP$(lpFunctionPointer%, p1#, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPP$(lpFunctionPointer%, p1#, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSFPPI$(lpFunctionPointer%, p1#, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPPF$(lpFunctionPointer%, p1#, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPPS$(lpFunctionPointer%, p1#, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSFPPP$(lpFunctionPointer%, p1#, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSS$(lpFunctionPointer%, P1$) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionSSI$(lpFunctionPointer%, p1$, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSSII$(lpFunctionPointer%, p1$, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSIII$(lpFunctionPointer%, p1$, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSIIF$(lpFunctionPointer%, p1$, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSIIS$(lpFunctionPointer%, p1$, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSIIP$(lpFunctionPointer%, p1$, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSIF$(lpFunctionPointer%, p1$, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSIFI$(lpFunctionPointer%, p1$, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSIFF$(lpFunctionPointer%, p1$, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSIFS$(lpFunctionPointer%, p1$, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSIFP$(lpFunctionPointer%, p1$, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSIS$(lpFunctionPointer%, p1$, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSISI$(lpFunctionPointer%, p1$, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSISF$(lpFunctionPointer%, p1$, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSISS$(lpFunctionPointer%, p1$, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSISP$(lpFunctionPointer%, p1$, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSIP$(lpFunctionPointer%, p1$, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSIPI$(lpFunctionPointer%, p1$, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSIPF$(lpFunctionPointer%, p1$, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSIPS$(lpFunctionPointer%, p1$, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSIPP$(lpFunctionPointer%, p1$, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSF$(lpFunctionPointer%, p1$, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSSFI$(lpFunctionPointer%, p1$, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSFII$(lpFunctionPointer%, p1$, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFIF$(lpFunctionPointer%, p1$, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFIS$(lpFunctionPointer%, p1$, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFIP$(lpFunctionPointer%, p1$, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFF$(lpFunctionPointer%, p1$, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSFFI$(lpFunctionPointer%, p1$, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFFF$(lpFunctionPointer%, p1$, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFFS$(lpFunctionPointer%, p1$, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFFP$(lpFunctionPointer%, p1$, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFS$(lpFunctionPointer%, p1$, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSFSI$(lpFunctionPointer%, p1$, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFSF$(lpFunctionPointer%, p1$, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFSS$(lpFunctionPointer%, p1$, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFSP$(lpFunctionPointer%, p1$, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFP$(lpFunctionPointer%, p1$, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSFPI$(lpFunctionPointer%, p1$, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFPF$(lpFunctionPointer%, p1$, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFPS$(lpFunctionPointer%, p1$, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSFPP$(lpFunctionPointer%, p1$, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSS$(lpFunctionPointer%, p1$, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSSSI$(lpFunctionPointer%, p1$, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSSII$(lpFunctionPointer%, p1$, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSIF$(lpFunctionPointer%, p1$, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSIS$(lpFunctionPointer%, p1$, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSIP$(lpFunctionPointer%, p1$, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSF$(lpFunctionPointer%, p1$, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSSFI$(lpFunctionPointer%, p1$, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSFF$(lpFunctionPointer%, p1$, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSFS$(lpFunctionPointer%, p1$, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSFP$(lpFunctionPointer%, p1$, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSS$(lpFunctionPointer%, p1$, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSSSI$(lpFunctionPointer%, p1$, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSSF$(lpFunctionPointer%, p1$, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSSS$(lpFunctionPointer%, p1$, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSSP$(lpFunctionPointer%, p1$, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSP$(lpFunctionPointer%, p1$, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSSPI$(lpFunctionPointer%, p1$, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSPF$(lpFunctionPointer%, p1$, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSPS$(lpFunctionPointer%, p1$, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSSPP$(lpFunctionPointer%, p1$, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSP$(lpFunctionPointer%, p1$, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSSPI$(lpFunctionPointer%, p1$, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSPII$(lpFunctionPointer%, p1$, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPIF$(lpFunctionPointer%, p1$, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPIS$(lpFunctionPointer%, p1$, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPIP$(lpFunctionPointer%, p1$, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPF$(lpFunctionPointer%, p1$, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSPFI$(lpFunctionPointer%, p1$, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPFF$(lpFunctionPointer%, p1$, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPFS$(lpFunctionPointer%, p1$, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPFP$(lpFunctionPointer%, p1$, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPS$(lpFunctionPointer%, p1$, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSPSI$(lpFunctionPointer%, p1$, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPSF$(lpFunctionPointer%, p1$, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPSS$(lpFunctionPointer%, p1$, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPSP$(lpFunctionPointer%, p1$, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPP$(lpFunctionPointer%, p1$, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSSPPI$(lpFunctionPointer%, p1$, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPPF$(lpFunctionPointer%, p1$, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPPS$(lpFunctionPointer%, p1$, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSSPPP$(lpFunctionPointer%, p1$, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSP$(lpFunctionPointer%, P1*) : "BlitzPointer_CallFunction1" -BlitzPointer_CallFunctionSPI$(lpFunctionPointer%, p1*, p2%) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSPII$(lpFunctionPointer%, p1*, p2%, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPIII$(lpFunctionPointer%, p1*, p2%, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPIIF$(lpFunctionPointer%, p1*, p2%, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPIIS$(lpFunctionPointer%, p1*, p2%, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPIIP$(lpFunctionPointer%, p1*, p2%, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPIF$(lpFunctionPointer%, p1*, p2%, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPIFI$(lpFunctionPointer%, p1*, p2%, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPIFF$(lpFunctionPointer%, p1*, p2%, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPIFS$(lpFunctionPointer%, p1*, p2%, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPIFP$(lpFunctionPointer%, p1*, p2%, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPIS$(lpFunctionPointer%, p1*, p2%, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPISI$(lpFunctionPointer%, p1*, p2%, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPISF$(lpFunctionPointer%, p1*, p2%, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPISS$(lpFunctionPointer%, p1*, p2%, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPISP$(lpFunctionPointer%, p1*, p2%, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPIP$(lpFunctionPointer%, p1*, p2%, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPIPI$(lpFunctionPointer%, p1*, p2%, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPIPF$(lpFunctionPointer%, p1*, p2%, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPIPS$(lpFunctionPointer%, p1*, p2%, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPIPP$(lpFunctionPointer%, p1*, p2%, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPF$(lpFunctionPointer%, p1*, p2#) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSPFI$(lpFunctionPointer%, p1*, p2#, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPFII$(lpFunctionPointer%, p1*, p2#, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFIF$(lpFunctionPointer%, p1*, p2#, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFIS$(lpFunctionPointer%, p1*, p2#, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFIP$(lpFunctionPointer%, p1*, p2#, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFF$(lpFunctionPointer%, p1*, p2#, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPFFI$(lpFunctionPointer%, p1*, p2#, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFFF$(lpFunctionPointer%, p1*, p2#, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFFS$(lpFunctionPointer%, p1*, p2#, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFFP$(lpFunctionPointer%, p1*, p2#, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFS$(lpFunctionPointer%, p1*, p2#, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPFSI$(lpFunctionPointer%, p1*, p2#, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFSF$(lpFunctionPointer%, p1*, p2#, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFSS$(lpFunctionPointer%, p1*, p2#, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFSP$(lpFunctionPointer%, p1*, p2#, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFP$(lpFunctionPointer%, p1*, p2#, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPFPI$(lpFunctionPointer%, p1*, p2#, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFPF$(lpFunctionPointer%, p1*, p2#, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFPS$(lpFunctionPointer%, p1*, p2#, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPFPP$(lpFunctionPointer%, p1*, p2#, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPS$(lpFunctionPointer%, p1*, p2$) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSPSI$(lpFunctionPointer%, p1*, p2$, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPSII$(lpFunctionPointer%, p1*, p2$, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSIF$(lpFunctionPointer%, p1*, p2$, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSIS$(lpFunctionPointer%, p1*, p2$, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSIP$(lpFunctionPointer%, p1*, p2$, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSF$(lpFunctionPointer%, p1*, p2$, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPSFI$(lpFunctionPointer%, p1*, p2$, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSFF$(lpFunctionPointer%, p1*, p2$, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSFS$(lpFunctionPointer%, p1*, p2$, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSFP$(lpFunctionPointer%, p1*, p2$, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSS$(lpFunctionPointer%, p1*, p2$, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPSSI$(lpFunctionPointer%, p1*, p2$, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSSF$(lpFunctionPointer%, p1*, p2$, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSSS$(lpFunctionPointer%, p1*, p2$, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSSP$(lpFunctionPointer%, p1*, p2$, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSP$(lpFunctionPointer%, p1*, p2$, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPSPI$(lpFunctionPointer%, p1*, p2$, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSPF$(lpFunctionPointer%, p1*, p2$, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSPS$(lpFunctionPointer%, p1*, p2$, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPSPP$(lpFunctionPointer%, p1*, p2$, p3*, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPP$(lpFunctionPointer%, p1*, p2*) : "BlitzPointer_CallFunction2" -BlitzPointer_CallFunctionSPPI$(lpFunctionPointer%, p1*, p2*, p3%) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPPII$(lpFunctionPointer%, p1*, p2*, p3%, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPIF$(lpFunctionPointer%, p1*, p2*, p3%, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPIS$(lpFunctionPointer%, p1*, p2*, p3%, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPIP$(lpFunctionPointer%, p1*, p2*, p3%, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPF$(lpFunctionPointer%, p1*, p2*, p3#) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPPFI$(lpFunctionPointer%, p1*, p2*, p3#, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPFF$(lpFunctionPointer%, p1*, p2*, p3#, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPFS$(lpFunctionPointer%, p1*, p2*, p3#, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPFP$(lpFunctionPointer%, p1*, p2*, p3#, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPS$(lpFunctionPointer%, p1*, p2*, p3$) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPPSI$(lpFunctionPointer%, p1*, p2*, p3$, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPSF$(lpFunctionPointer%, p1*, p2*, p3$, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPSS$(lpFunctionPointer%, p1*, p2*, p3$, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPSP$(lpFunctionPointer%, p1*, p2*, p3$, p4*) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPP$(lpFunctionPointer%, p1*, p2*, p3*) : "BlitzPointer_CallFunction3" -BlitzPointer_CallFunctionSPPPI$(lpFunctionPointer%, p1*, p2*, p3*, p4%) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPPF$(lpFunctionPointer%, p1*, p2*, p3*, p4#) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPPS$(lpFunctionPointer%, p1*, p2*, p3*, p4$) : "BlitzPointer_CallFunction4" -BlitzPointer_CallFunctionSPPPP$(lpFunctionPointer%, p1*, p2*, p3*, p4*) : "BlitzPointer_CallFunction4" \ No newline at end of file +BlitzSteam_ISteamUser_GetSteamID%(lpSteamUser%) \ No newline at end of file diff --git a/BlitzSteam/BlitzSteam.vcxproj b/BlitzSteam/BlitzSteam.vcxproj index 43a8150..a8eee4a 100644 --- a/BlitzSteam/BlitzSteam.vcxproj +++ b/BlitzSteam/BlitzSteam.vcxproj @@ -62,21 +62,22 @@ false $(SolutionDir);$(ProjectDir);D:\Projects\Cpp\#Libraries\Steamworks SDK\public _CRT_SECURE_NO_WARNINGS;_WINDLL;%(PreprocessorDefinitions) - ProgramDatabase + EditAndContinue false Default 4Bytes true false false - false - false - - - false - true + true + true + true + + false - dllmain.h + + + false true @@ -95,7 +96,7 @@ Level3 Full - false + true true @@ -108,14 +109,15 @@ true false false - false - - - false - true + true + true + + false - dllmain.h + + Default + true false @@ -130,15 +132,15 @@ - - - - + + + + - + diff --git a/BlitzSteam/BlitzSteam.vcxproj.filters b/BlitzSteam/BlitzSteam.vcxproj.filters index e1ef9dc..1c898e0 100644 --- a/BlitzSteam/BlitzSteam.vcxproj.filters +++ b/BlitzSteam/BlitzSteam.vcxproj.filters @@ -1,44 +1,51 @@  - - {5016ba8f-d781-40f4-9904-56cc2ce9a588} + + {3072c53c-2be5-4712-b853-1bc1438cdc6e} - + + {5016ba8f-d781-40f4-9904-56cc2ce9a588} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + {8f00e86e-e1bc-499e-8b2c-da93e9e8f287} + + {1b813d7f-3558-4f10-b237-1bcf7d5f0b60} + - Source + Source Files - - Source + + Source Files\Wrapper - - Source + + Source Files\Wrapper - - Source + + Source Files\Wrapper - - Source + + Source Files\Libraries - Source + Source Files - - Source + + Source Files\Libraries - - Source - - Source + Blitz Files + + + Blitz Files \ No newline at end of file diff --git a/BlitzSteam/Libraries/BlitzPointer.cpp b/BlitzSteam/Libraries/BlitzPointer.cpp new file mode 100644 index 0000000..6a31e85 --- /dev/null +++ b/BlitzSteam/Libraries/BlitzPointer.cpp @@ -0,0 +1,30 @@ +#pragma once +#include "BlitzPointer.h" + +BlitzPointer_CallFunction0_t BlitzPointer_CallFunction0 = 0; +BlitzPointer_CallFunction1_t BlitzPointer_CallFunction1 = 0; +BlitzPointer_CallFunction2_t BlitzPointer_CallFunction2 = 0; +BlitzPointer_CallFunction3_t BlitzPointer_CallFunction3 = 0; +BlitzPointer_CallFunction4_t BlitzPointer_CallFunction4 = 0; +HMODULE hmBlitzPointerDLL; + +void BlitzPointer_Initialize() { + hmBlitzPointerDLL = LoadLibrary(TEXT("BlitzPointer.dll")); + if (hmBlitzPointerDLL != nullptr) { + BlitzPointer_CallFunction0 = (BlitzPointer_CallFunction0_t)GetProcAddress(hmBlitzPointerDLL, "BlitzPointer_CallFunction0"); + BlitzPointer_CallFunction1 = (BlitzPointer_CallFunction1_t)GetProcAddress(hmBlitzPointerDLL, "BlitzPointer_CallFunction1"); + BlitzPointer_CallFunction2 = (BlitzPointer_CallFunction2_t)GetProcAddress(hmBlitzPointerDLL, "BlitzPointer_CallFunction2"); + BlitzPointer_CallFunction3 = (BlitzPointer_CallFunction3_t)GetProcAddress(hmBlitzPointerDLL, "BlitzPointer_CallFunction3"); + BlitzPointer_CallFunction4 = (BlitzPointer_CallFunction4_t)GetProcAddress(hmBlitzPointerDLL, "BlitzPointer_CallFunction4"); + + if (BlitzPointer_CallFunction0 == nullptr + || BlitzPointer_CallFunction1 == nullptr + || BlitzPointer_CallFunction2 == nullptr + || BlitzPointer_CallFunction3 == nullptr + || BlitzPointer_CallFunction4 == nullptr) { + MessageBox(0, ERROR_TEXT_001, ERROR_TITLE_001, 0); + } + } else { + MessageBox(0, ERROR_TEXT_001, ERROR_TITLE_001, 0); + } +} \ No newline at end of file diff --git a/BlitzSteam/Libraries/BlitzPointer.h b/BlitzSteam/Libraries/BlitzPointer.h new file mode 100644 index 0000000..e3f1f6e --- /dev/null +++ b/BlitzSteam/Libraries/BlitzPointer.h @@ -0,0 +1,15 @@ +#include "dllmain.h" + +typedef uint32_t(__cdecl *BlitzPointer_CallFunction0_t)(uint32_t); +typedef uint32_t(__cdecl *BlitzPointer_CallFunction1_t)(uint32_t, uint32_t); +typedef uint32_t(__cdecl *BlitzPointer_CallFunction2_t)(uint32_t, uint32_t, uint32_t); +typedef uint32_t(__cdecl *BlitzPointer_CallFunction3_t)(uint32_t, uint32_t, uint32_t, uint32_t); +typedef uint32_t(__cdecl *BlitzPointer_CallFunction4_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t); + +extern BlitzPointer_CallFunction0_t BlitzPointer_CallFunction0; +extern BlitzPointer_CallFunction1_t BlitzPointer_CallFunction1; +extern BlitzPointer_CallFunction2_t BlitzPointer_CallFunction2; +extern BlitzPointer_CallFunction3_t BlitzPointer_CallFunction3; +extern BlitzPointer_CallFunction4_t BlitzPointer_CallFunction4; + +void BlitzPointer_Initialize(); \ No newline at end of file diff --git a/BlitzSteam/Steam.cpp b/BlitzSteam/Steam.cpp index e213219..06c1d83 100644 --- a/BlitzSteam/Steam.cpp +++ b/BlitzSteam/Steam.cpp @@ -1,5 +1,5 @@ #include "dllmain.h" -#include "BlitzPointer.h" +#include "BlitzPointerLink.cpp" class BlitzSteamCallback : CCallbackBase { public: diff --git a/BlitzSteam/Wrapper/Steam.cpp b/BlitzSteam/Wrapper/Steam.cpp new file mode 100644 index 0000000..56507c6 --- /dev/null +++ b/BlitzSteam/Wrapper/Steam.cpp @@ -0,0 +1,32 @@ +#include "dllmain.h" +#include "Libraries\BlitzPointer.h" + +class BlitzSteamCallback : CCallbackBase { +public: + uint32_t blitzFunctionPointer; + + virtual void Run(void *pvParam) { + BlitzPointer_CallFunction1((uint32_t)blitzFunctionPointer, (uint32_t)pvParam); + } + + virtual void Run(void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall) { + BlitzPointer_CallFunction4((uint32_t)blitzFunctionPointer, (uint32_t)pvParam, bIOFailure, (uint32_t)(hSteamAPICall & 0xFFFFFFFF), (uint32_t)(hSteamAPICall >> 32)); + } + + virtual int GetCallbackSizeBytes() { + return sizeof(BlitzSteamCallback); + } +}; + +DLL_EXPORT void* BlitzSteam_CreateCallback(uint32_t fpFunctionPointer) { + BlitzSteamCallback* lpBSCallback = new BlitzSteamCallback(); + lpBSCallback->blitzFunctionPointer = fpFunctionPointer; + return lpBSCallback; +} + +DLL_EXPORT void BlitzSteam_DestroyCallback(uint32_t lpCallback) { + BlitzSteamCallback* lpBSCallback = (BlitzSteamCallback*)lpCallback; + if (lpBSCallback != nullptr) { + delete lpBSCallback; + } +} \ No newline at end of file diff --git a/BlitzSteam/SteamClient.cpp b/BlitzSteam/Wrapper/SteamClient.cpp similarity index 100% rename from BlitzSteam/SteamClient.cpp rename to BlitzSteam/Wrapper/SteamClient.cpp diff --git a/BlitzSteam/SteamUser.cpp b/BlitzSteam/Wrapper/SteamUser.cpp similarity index 100% rename from BlitzSteam/SteamUser.cpp rename to BlitzSteam/Wrapper/SteamUser.cpp diff --git a/BlitzSteam/dllmain.cpp b/BlitzSteam/dllmain.cpp index e769eba..530c949 100644 --- a/BlitzSteam/dllmain.cpp +++ b/BlitzSteam/dllmain.cpp @@ -1,8 +1,10 @@ #include "dllmain.h" +#include "Libraries\BlitzPointer.h" bool WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: + BlitzPointer_Initialize(); break; case DLL_PROCESS_DETACH: break; diff --git a/BlitzSteam/dllmain.h b/BlitzSteam/dllmain.h index c5bad73..b2e205e 100644 --- a/BlitzSteam/dllmain.h +++ b/BlitzSteam/dllmain.h @@ -12,4 +12,10 @@ #define DLL_EXPORT extern "C" __declspec(dllexport) // Steam -#include "steam/steam_api.h" \ No newline at end of file +#include "steam/steam_api.h" + +// Error Messages +#define ERROR_TITLE_001 TEXT("Error 001") +#define ERROR_TEXT_001 TEXT("E001: Could not load 'BlitzPointer.dll'.") +#define ERROR_TITLE_002 TEXT("Error 002") +#define ERROR_TEXT_002 TEXT("E002: Unable to find one or multiple function addresses in 'BlitzPointer.dll'.") \ No newline at end of file diff --git a/BlitzUtility/BlitzUtility.bb b/BlitzUtility/BlitzUtility.bb index e8e418a..0c8fcd4 100644 --- a/BlitzUtility/BlitzUtility.bb +++ b/BlitzUtility/BlitzUtility.bb @@ -209,9 +209,13 @@ Function BlitzUtility_BorderlessWindowmode(hwnd=0, MonitorId=0, Width=0, Height= Local rct.BlitzUtility_Rectangle = New BlitzUtility_Rectangle BlitzUtility_GetDisplay(MonitorId, rct) + Local rctW, rctH + rctW = (rct\X2 - rct\X) + rctH = (rct\Y2 - rct\Y) - rct\X = rct\X + (rct\X2 / 2.0) - Width / 2.0 - rct\Y = rct\Y + (rct\Y2 / 2.0) - Height / 2.0 + + rct\X = rct\X + (rctW / 2.0) - Width / 2.0 + rct\Y = rct\Y + (rctH / 2.0) - Height / 2.0 rct\X2 = Width rct\Y2 = Height BlitzUtility_User32_SetWindowLong hwnd, -16, $01000000 diff --git a/BlitzUtility/BlitzUtility.vcxproj b/BlitzUtility/BlitzUtility.vcxproj index 8ee1184..d79f3ac 100644 --- a/BlitzUtility/BlitzUtility.vcxproj +++ b/BlitzUtility/BlitzUtility.vcxproj @@ -19,16 +19,12 @@ DynamicLibrary true v120 - Unicode - false DynamicLibrary false v120 false - Unicode - false @@ -59,20 +55,20 @@ $(SolutionDir);$(ProjectDir) MultiThreaded SQLITE_ENABLE_FTS4;SQLITE_ENABLE_RTREE;%(PreprocessorDefinitions) - false - false - false Default 4Bytes false - false - true - - - false - true + + false - dllmain.h + + + true + true + true + true + false + false true @@ -88,27 +84,26 @@ Level3 Full - false true $(SolutionDir);$(ProjectDir) MultiThreaded SQLITE_ENABLE_FTS4;SQLITE_ENABLE_RTREE;%(PreprocessorDefinitions) - false - false - false Speed 4Bytes false - true - - - false - true - false - dllmain.h + + Default + false + + + true + true + true + true + true false @@ -126,14 +121,8 @@ - - true - true - - - true - true - + + @@ -143,14 +132,8 @@ - - true - true - - - true - true - + + diff --git a/BlitzUtility/BlitzUtility.vcxproj.filters b/BlitzUtility/BlitzUtility.vcxproj.filters index 5d4f753..b7f0490 100644 --- a/BlitzUtility/BlitzUtility.vcxproj.filters +++ b/BlitzUtility/BlitzUtility.vcxproj.filters @@ -86,11 +86,7 @@ - - Source Files - - - Source Files - + + \ No newline at end of file diff --git a/BlitzUtility/Database/SQLite/sqlite3.c b/BlitzUtility/Database/SQLite/sqlite3.c index bb960ba..8f74be1 100644 --- a/BlitzUtility/Database/SQLite/sqlite3.c +++ b/BlitzUtility/Database/SQLite/sqlite3.c @@ -1,6 +1,6 @@ /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.8.10. By combining all the individual C code files into this +** version 3.8.10.1. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -253,16 +253,16 @@ extern "C" { ** Provide the ability to override linkage features of the interface. */ #ifndef SQLITE_EXTERN -# define SQLITE_EXTERN extern +# define SQLITE_EXTERN extern "C" __declspec(dllexport) #endif #ifndef SQLITE_API -# define SQLITE_API __declspec(dllexport) +# define SQLITE_API #endif #ifndef SQLITE_CDECL -# define SQLITE_CDECL __cdecl +# define SQLITE_CDECL #endif #ifndef SQLITE_STDCALL -# define SQLITE_STDCALL SQLITE_CDECL +# define SQLITE_STDCALL #endif /* @@ -318,9 +318,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.8.10" +#define SQLITE_VERSION "3.8.10.1" #define SQLITE_VERSION_NUMBER 3008010 -#define SQLITE_SOURCE_ID "2015-04-19 23:11:10 c83052e48bbae0f45db2a44155b4e5482ee4a901" +#define SQLITE_SOURCE_ID "2015-05-09 12:14:55 05b4b1f2a937c06c90db70c09890038f6c98ec40" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -8509,6 +8509,32 @@ SQLITE_PRIVATE void sqlite3Coverage(int); # define NEVER(X) (X) #endif +/* +** Declarations used for tracing the operating system interfaces. +*/ +#if defined(SQLITE_FORCE_OS_TRACE) || defined(SQLITE_TEST) || \ + (defined(SQLITE_DEBUG) && SQLITE_OS_WIN) + extern int sqlite3OSTrace; +# define OSTRACE(X) if( sqlite3OSTrace ) sqlite3DebugPrintf X +# define SQLITE_HAVE_OS_TRACE +#else +# define OSTRACE(X) +# undef SQLITE_HAVE_OS_TRACE +#endif + +/* +** Is the sqlite3ErrName() function needed in the build? Currently, +** it is needed by "mutex_w32.c" (when debugging), "os_win.c" (when +** OSTRACE is enabled), and by several "test*.c" files (which are +** compiled using SQLITE_TEST). +*/ +#if defined(SQLITE_HAVE_OS_TRACE) || defined(SQLITE_TEST) || \ + (defined(SQLITE_DEBUG) && SQLITE_OS_WIN) +# define SQLITE_NEED_ERR_NAME +#else +# undef SQLITE_NEED_ERR_NAME +#endif + /* ** Return true (non-zero) if the input is an integer that is too large ** to fit in 32-bits. This macro is used inside of various testcase() @@ -11473,34 +11499,8 @@ struct VTable { }; /* -** Each SQL table is represented in memory by an instance of the -** following structure. -** -** Table.zName is the name of the table. The case of the original -** CREATE TABLE statement is stored, but case is not significant for -** comparisons. -** -** Table.nCol is the number of columns in this table. Table.aCol is a -** pointer to an array of Column structures, one for each column. -** -** If the table has an INTEGER PRIMARY KEY, then Table.iPKey is the index of -** the column that is that key. Otherwise Table.iPKey is negative. Note -** that the datatype of the PRIMARY KEY must be INTEGER for this field to -** be set. An INTEGER PRIMARY KEY is used as the rowid for each row of -** the table. If a table has no INTEGER PRIMARY KEY, then a random rowid -** is generated for each row of the table. TF_HasPrimaryKey is set if -** the table has any PRIMARY KEY, INTEGER or otherwise. -** -** Table.tnum is the page number for the root BTree page of the table in the -** database file. If Table.iDb is the index of the database table backend -** in sqlite.aDb[]. 0 is for the main database and 1 is for the file that -** holds temporary tables and indices. If TF_Ephemeral is set -** then the table is stored in a file that is automatically deleted -** when the VDBE cursor to the table is closed. In this case Table.tnum -** refers VDBE cursor number that holds the table open, not to the root -** page number. Transient tables are used to hold the results of a -** sub-query that appears instead of a real table name in the FROM clause -** of a SELECT statement. +** The schema for each SQL table and view is represented in memory +** by an instance of the following structure. */ struct Table { char *zName; /* Name of the table or view */ @@ -11512,11 +11512,11 @@ struct Table { #ifndef SQLITE_OMIT_CHECK ExprList *pCheck; /* All CHECK constraints */ #endif - LogEst nRowLogEst; /* Estimated rows in table - from sqlite_stat1 table */ - int tnum; /* Root BTree node for this table (see note above) */ - i16 iPKey; /* If not negative, use aCol[iPKey] as the primary key */ + int tnum; /* Root BTree page for this table */ + i16 iPKey; /* If not negative, use aCol[iPKey] as the rowid */ i16 nCol; /* Number of columns in this table */ u16 nRef; /* Number of pointers to this Table */ + LogEst nRowLogEst; /* Estimated rows in table - from sqlite_stat1 table */ LogEst szTabRow; /* Estimated size of each table row in bytes */ #ifdef SQLITE_ENABLE_COSTMULT LogEst costMult; /* Cost multiplier for using this table */ @@ -12692,7 +12692,7 @@ struct Trigger { * orconf -> stores the ON CONFLICT algorithm * pSelect -> If this is an INSERT INTO ... SELECT ... statement, then * this stores a pointer to the SELECT statement. Otherwise NULL. - * target -> A token holding the quoted name of the table to insert into. + * zTarget -> Dequoted name of the table to insert into. * pExprList -> If this is an INSERT INTO ... VALUES ... statement, then * this stores values to be inserted. Otherwise NULL. * pIdList -> If this is an INSERT INTO ... () VALUES ... @@ -12700,12 +12700,12 @@ struct Trigger { * inserted into. * * (op == TK_DELETE) - * target -> A token holding the quoted name of the table to delete from. + * zTarget -> Dequoted name of the table to delete from. * pWhere -> The WHERE clause of the DELETE statement if one is specified. * Otherwise NULL. * * (op == TK_UPDATE) - * target -> A token holding the quoted name of the table to update rows of. + * zTarget -> Dequoted name of the table to update. * pWhere -> The WHERE clause of the UPDATE statement if one is specified. * Otherwise NULL. * pExprList -> A list of the columns to update and the expressions to update @@ -12717,8 +12717,8 @@ struct TriggerStep { u8 op; /* One of TK_DELETE, TK_UPDATE, TK_INSERT, TK_SELECT */ u8 orconf; /* OE_Rollback etc. */ Trigger *pTrig; /* The trigger that this step is a part of */ - Select *pSelect; /* SELECT statment or RHS of INSERT INTO .. SELECT ... */ - Token target; /* Target table for DELETE, UPDATE, INSERT */ + Select *pSelect; /* SELECT statement or RHS of INSERT INTO SELECT ... */ + char *zTarget; /* Target table for DELETE, UPDATE, INSERT */ Expr *pWhere; /* The WHERE clause for DELETE or UPDATE steps */ ExprList *pExprList; /* SET clause for UPDATE. */ IdList *pIdList; /* Column names for INSERT */ @@ -12751,8 +12751,7 @@ struct StrAccum { char *zText; /* The string collected so far */ int nChar; /* Length of the string so far */ int nAlloc; /* Amount of space allocated in zText */ - int mxAlloc; /* Maximum allowed string length */ - u8 useMalloc; /* 0: none, 1: sqlite3DbMalloc, 2: sqlite3_malloc */ + int mxAlloc; /* Maximum allowed allocation. 0 for no malloc usage */ u8 accError; /* STRACCUM_NOMEM or STRACCUM_TOOBIG */ }; #define STRACCUM_NOMEM 1 @@ -13069,7 +13068,7 @@ SQLITE_PRIVATE void sqlite3XPrintf(StrAccum*, u32, const char*, ...); SQLITE_PRIVATE char *sqlite3MPrintf(sqlite3*,const char*, ...); SQLITE_PRIVATE char *sqlite3VMPrintf(sqlite3*,const char*, va_list); SQLITE_PRIVATE char *sqlite3MAppendf(sqlite3*,char*,const char*,...); -#if defined(SQLITE_TEST) || defined(SQLITE_DEBUG) +#if defined(SQLITE_DEBUG) || defined(SQLITE_HAVE_OS_TRACE) SQLITE_PRIVATE void sqlite3DebugPrintf(const char*, ...); #endif #if defined(SQLITE_TEST) @@ -13416,7 +13415,7 @@ SQLITE_PRIVATE void *sqlite3HexToBlob(sqlite3*, const char *z, int n); SQLITE_PRIVATE u8 sqlite3HexToInt(int h); SQLITE_PRIVATE int sqlite3TwoPartName(Parse *, Token *, Token *, Token **); -#if defined(SQLITE_TEST) +#if defined(SQLITE_NEED_ERR_NAME) SQLITE_PRIVATE const char *sqlite3ErrName(int); #endif @@ -13510,7 +13509,7 @@ SQLITE_PRIVATE int sqlite3CreateFunc(sqlite3 *, const char *, int, int, void *, SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int); SQLITE_PRIVATE int sqlite3OpenTempDatabase(Parse *); -SQLITE_PRIVATE void sqlite3StrAccumInit(StrAccum*, char*, int, int); +SQLITE_PRIVATE void sqlite3StrAccumInit(StrAccum*, sqlite3*, char*, int, int); SQLITE_PRIVATE void sqlite3StrAccumAppend(StrAccum*,const char*,int); SQLITE_PRIVATE void sqlite3StrAccumAppendAll(StrAccum*,const char*); SQLITE_PRIVATE void sqlite3AppendChar(StrAccum*,int,char); @@ -14127,6 +14126,9 @@ static const char * const azCompileOpt[] = { #if SQLITE_ENABLE_COLUMN_METADATA "ENABLE_COLUMN_METADATA", #endif +#if SQLITE_ENABLE_DBSTAT_VTAB + "ENABLE_DBSTAT_VTAB", +#endif #if SQLITE_ENABLE_EXPENSIVE_ASSERT "ENABLE_EXPENSIVE_ASSERT", #endif @@ -19894,16 +19896,6 @@ SQLITE_PRIVATE sqlite3_mutex_methods const *sqlite3DefaultMutex(void){ # error "The MEMORY_DEBUG macro is obsolete. Use SQLITE_DEBUG instead." #endif -#if defined(SQLITE_TEST) && defined(SQLITE_DEBUG) -# ifndef SQLITE_DEBUG_OS_TRACE -# define SQLITE_DEBUG_OS_TRACE 0 -# endif - int sqlite3OSTrace = SQLITE_DEBUG_OS_TRACE; -# define OSTRACE(X) if( sqlite3OSTrace ) sqlite3DebugPrintf X -#else -# define OSTRACE(X) -#endif - /* ** Macros for performance tracing. Normally turned off. Only works ** on i486 hardware. @@ -21488,6 +21480,7 @@ static char et_getdigit(LONGDOUBLE_TYPE *val, int *cnt){ ** Set the StrAccum object to an error mode. */ static void setStrAccumError(StrAccum *p, u8 eError){ + assert( eError==STRACCUM_NOMEM || eError==STRACCUM_TOOBIG ); p->accError = eError; p->nAlloc = 0; } @@ -21602,7 +21595,6 @@ SQLITE_PRIVATE void sqlite3VXPrintf( } }while( !done && (c=(*++fmt))!=0 ); /* Get the field width */ - width = 0; if( c=='*' ){ if( bArgList ){ width = (int)getIntArg(pArgList); @@ -21626,7 +21618,6 @@ SQLITE_PRIVATE void sqlite3VXPrintf( /* Get the precision */ if( c=='.' ){ - precision = 0; c = *++fmt; if( c=='*' ){ if( bArgList ){ @@ -22105,7 +22096,7 @@ static int sqlite3StrAccumEnlarge(StrAccum *p, int N){ testcase(p->accError==STRACCUM_NOMEM); return 0; } - if( !p->useMalloc ){ + if( p->mxAlloc==0 ){ N = p->nAlloc - p->nChar - 1; setStrAccumError(p, STRACCUM_TOOBIG); return N; @@ -22125,10 +22116,10 @@ static int sqlite3StrAccumEnlarge(StrAccum *p, int N){ }else{ p->nAlloc = (int)szNew; } - if( p->useMalloc==1 ){ + if( p->db ){ zNew = sqlite3DbRealloc(p->db, zOld, p->nAlloc); }else{ - zNew = sqlite3_realloc(zOld, p->nAlloc); + zNew = sqlite3_realloc64(zOld, p->nAlloc); } if( zNew ){ assert( p->zText!=0 || p->nChar==0 ); @@ -22205,12 +22196,8 @@ SQLITE_PRIVATE void sqlite3StrAccumAppendAll(StrAccum *p, const char *z){ SQLITE_PRIVATE char *sqlite3StrAccumFinish(StrAccum *p){ if( p->zText ){ p->zText[p->nChar] = 0; - if( p->useMalloc && p->zText==p->zBase ){ - if( p->useMalloc==1 ){ - p->zText = sqlite3DbMallocRaw(p->db, p->nChar+1 ); - }else{ - p->zText = sqlite3_malloc(p->nChar+1); - } + if( p->mxAlloc>0 && p->zText==p->zBase ){ + p->zText = sqlite3DbMallocRaw(p->db, p->nChar+1 ); if( p->zText ){ memcpy(p->zText, p->zBase, p->nChar+1); }else{ @@ -22226,25 +22213,31 @@ SQLITE_PRIVATE char *sqlite3StrAccumFinish(StrAccum *p){ */ SQLITE_PRIVATE void sqlite3StrAccumReset(StrAccum *p){ if( p->zText!=p->zBase ){ - if( p->useMalloc==1 ){ - sqlite3DbFree(p->db, p->zText); - }else{ - sqlite3_free(p->zText); - } + sqlite3DbFree(p->db, p->zText); } p->zText = 0; } /* -** Initialize a string accumulator +** Initialize a string accumulator. +** +** p: The accumulator to be initialized. +** db: Pointer to a database connection. May be NULL. Lookaside +** memory is used if not NULL. db->mallocFailed is set appropriately +** when not NULL. +** zBase: An initial buffer. May be NULL in which case the initial buffer +** is malloced. +** n: Size of zBase in bytes. If total space requirements never exceed +** n then no memory allocations ever occur. +** mx: Maximum number of bytes to accumulate. If mx==0 then no memory +** allocations will ever occur. */ -SQLITE_PRIVATE void sqlite3StrAccumInit(StrAccum *p, char *zBase, int n, int mx){ +SQLITE_PRIVATE void sqlite3StrAccumInit(StrAccum *p, sqlite3 *db, char *zBase, int n, int mx){ p->zText = p->zBase = zBase; - p->db = 0; + p->db = db; p->nChar = 0; p->nAlloc = n; p->mxAlloc = mx; - p->useMalloc = 1; p->accError = 0; } @@ -22257,9 +22250,8 @@ SQLITE_PRIVATE char *sqlite3VMPrintf(sqlite3 *db, const char *zFormat, va_list a char zBase[SQLITE_PRINT_BUF_SIZE]; StrAccum acc; assert( db!=0 ); - sqlite3StrAccumInit(&acc, zBase, sizeof(zBase), + sqlite3StrAccumInit(&acc, db, zBase, sizeof(zBase), db->aLimit[SQLITE_LIMIT_LENGTH]); - acc.db = db; sqlite3VXPrintf(&acc, SQLITE_PRINTF_INTERNAL, zFormat, ap); z = sqlite3StrAccumFinish(&acc); if( acc.accError==STRACCUM_NOMEM ){ @@ -22317,8 +22309,7 @@ SQLITE_API char *SQLITE_STDCALL sqlite3_vmprintf(const char *zFormat, va_list ap #ifndef SQLITE_OMIT_AUTOINIT if( sqlite3_initialize() ) return 0; #endif - sqlite3StrAccumInit(&acc, zBase, sizeof(zBase), SQLITE_MAX_LENGTH); - acc.useMalloc = 2; + sqlite3StrAccumInit(&acc, 0, zBase, sizeof(zBase), SQLITE_MAX_LENGTH); sqlite3VXPrintf(&acc, 0, zFormat, ap); z = sqlite3StrAccumFinish(&acc); return z; @@ -22363,8 +22354,7 @@ SQLITE_API char *SQLITE_STDCALL sqlite3_vsnprintf(int n, char *zBuf, const char return zBuf; } #endif - sqlite3StrAccumInit(&acc, zBuf, n, 0); - acc.useMalloc = 0; + sqlite3StrAccumInit(&acc, 0, zBuf, n, 0); sqlite3VXPrintf(&acc, 0, zFormat, ap); return sqlite3StrAccumFinish(&acc); } @@ -22390,8 +22380,7 @@ static void renderLogMsg(int iErrCode, const char *zFormat, va_list ap){ StrAccum acc; /* String accumulator */ char zMsg[SQLITE_PRINT_BUF_SIZE*3]; /* Complete log message */ - sqlite3StrAccumInit(&acc, zMsg, sizeof(zMsg), 0); - acc.useMalloc = 0; + sqlite3StrAccumInit(&acc, 0, zMsg, sizeof(zMsg), 0); sqlite3VXPrintf(&acc, 0, zFormat, ap); sqlite3GlobalConfig.xLog(sqlite3GlobalConfig.pLogArg, iErrCode, sqlite3StrAccumFinish(&acc)); @@ -22409,7 +22398,7 @@ SQLITE_API void SQLITE_CDECL sqlite3_log(int iErrCode, const char *zFormat, ...) } } -#if defined(SQLITE_DEBUG) +#if defined(SQLITE_DEBUG) || defined(SQLITE_HAVE_OS_TRACE) /* ** A version of printf() that understands %lld. Used for debugging. ** The printf() built into some versions of windows does not understand %lld @@ -22419,8 +22408,7 @@ SQLITE_PRIVATE void sqlite3DebugPrintf(const char *zFormat, ...){ va_list ap; StrAccum acc; char zBuf[500]; - sqlite3StrAccumInit(&acc, zBuf, sizeof(zBuf), 0); - acc.useMalloc = 0; + sqlite3StrAccumInit(&acc, 0, zBuf, sizeof(zBuf), 0); va_start(ap,zFormat); sqlite3VXPrintf(&acc, 0, zFormat, ap); va_end(ap); @@ -22447,7 +22435,7 @@ SQLITE_PRIVATE void sqlite3DebugPrintf(const char *zFormat, ...){ ** is not the last item in the tree. */ SQLITE_PRIVATE TreeView *sqlite3TreeViewPush(TreeView *p, u8 moreToFollow){ if( p==0 ){ - p = sqlite3_malloc( sizeof(*p) ); + p = sqlite3_malloc64( sizeof(*p) ); if( p==0 ) return 0; memset(p, 0, sizeof(*p)); }else{ @@ -22470,8 +22458,7 @@ SQLITE_PRIVATE void sqlite3TreeViewLine(TreeView *p, const char *zFormat, ...){ int i; StrAccum acc; char zBuf[500]; - sqlite3StrAccumInit(&acc, zBuf, sizeof(zBuf), 0); - acc.useMalloc = 0; + sqlite3StrAccumInit(&acc, 0, zBuf, sizeof(zBuf), 0); if( p ){ for(i=0; iiLevel && ibLine)-1; i++){ sqlite3StrAccumAppend(&acc, p->bLine[i] ? "| " : " ", 4); @@ -25556,16 +25543,6 @@ static pid_t randomnessPid = 0; # error "The MEMORY_DEBUG macro is obsolete. Use SQLITE_DEBUG instead." #endif -#if defined(SQLITE_TEST) && defined(SQLITE_DEBUG) -# ifndef SQLITE_DEBUG_OS_TRACE -# define SQLITE_DEBUG_OS_TRACE 0 -# endif - int sqlite3OSTrace = SQLITE_DEBUG_OS_TRACE; -# define OSTRACE(X) if( sqlite3OSTrace ) sqlite3DebugPrintf X -#else -# define OSTRACE(X) -#endif - /* ** Macros for performance tracing. Normally turned off. Only works ** on i486 hardware. @@ -26108,7 +26085,7 @@ static int unixMutexHeld(void) { #endif -#if defined(SQLITE_TEST) && defined(SQLITE_DEBUG) +#ifdef SQLITE_HAVE_OS_TRACE /* ** Helper function for printing out trace information from debugging ** binaries. This returns the string representation of the supplied @@ -26371,7 +26348,7 @@ static struct vxworksFileId *vxworksFindFileId(const char *zAbsoluteName){ assert( zAbsoluteName[0]=='/' ); n = (int)strlen(zAbsoluteName); - pNew = sqlite3_malloc( sizeof(*pNew) + (n+1) ); + pNew = sqlite3_malloc64( sizeof(*pNew) + (n+1) ); if( pNew==0 ) return 0; pNew->zCanonicalName = (char*)&pNew[1]; memcpy(pNew->zCanonicalName, zAbsoluteName, n+1); @@ -26775,7 +26752,7 @@ static int findInodeInfo( pInode = pInode->pNext; } if( pInode==0 ){ - pInode = sqlite3_malloc( sizeof(*pInode) ); + pInode = sqlite3_malloc64( sizeof(*pInode) ); if( pInode==0 ){ return SQLITE_NOMEM; } @@ -29296,7 +29273,7 @@ static int unixFileControl(sqlite3_file *id, int op, void *pArg){ return SQLITE_OK; } case SQLITE_FCNTL_TEMPFILENAME: { - char *zTFile = sqlite3_malloc( pFile->pVfs->mxPathname ); + char *zTFile = sqlite3_malloc64( pFile->pVfs->mxPathname ); if( zTFile ){ unixGetTempname(pFile->pVfs->mxPathname, zTFile); *(char**)pArg = zTFile; @@ -29737,7 +29714,7 @@ static int unixOpenSharedMemory(unixFile *pDbFd){ int nShmFilename; /* Size of the SHM filename in bytes */ /* Allocate space for the new unixShm object. */ - p = sqlite3_malloc( sizeof(*p) ); + p = sqlite3_malloc64( sizeof(*p) ); if( p==0 ) return SQLITE_NOMEM; memset(p, 0, sizeof(*p)); assert( pDbFd->pShm==0 ); @@ -29768,7 +29745,7 @@ static int unixOpenSharedMemory(unixFile *pDbFd){ #else nShmFilename = 6 + (int)strlen(zBasePath); #endif - pShmNode = sqlite3_malloc( sizeof(*pShmNode) + nShmFilename ); + pShmNode = sqlite3_malloc64( sizeof(*pShmNode) + nShmFilename ); if( pShmNode==0 ){ rc = SQLITE_NOMEM; goto shm_open_err; @@ -29978,7 +29955,7 @@ static int unixShmMap( goto shmpage_out; } }else{ - pMem = sqlite3_malloc(szRegion); + pMem = sqlite3_malloc64(szRegion); if( pMem==0 ){ rc = SQLITE_NOMEM; goto shmpage_out; @@ -30815,7 +30792,7 @@ static int fillInUnixFile( ** the afpLockingContext. */ afpLockingContext *pCtx; - pNew->lockingContext = pCtx = sqlite3_malloc( sizeof(*pCtx) ); + pNew->lockingContext = pCtx = sqlite3_malloc64( sizeof(*pCtx) ); if( pCtx==0 ){ rc = SQLITE_NOMEM; }else{ @@ -30845,7 +30822,7 @@ static int fillInUnixFile( int nFilename; assert( zFilename!=0 ); nFilename = (int)strlen(zFilename) + 6; - zLockFile = (char *)sqlite3_malloc(nFilename); + zLockFile = (char *)sqlite3_malloc64(nFilename); if( zLockFile==0 ){ rc = SQLITE_NOMEM; }else{ @@ -31222,7 +31199,7 @@ static int unixOpen( if( pUnused ){ fd = pUnused->fd; }else{ - pUnused = sqlite3_malloc(sizeof(*pUnused)); + pUnused = sqlite3_malloc64(sizeof(*pUnused)); if( !pUnused ){ return SQLITE_NOMEM; } @@ -31602,7 +31579,7 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nBuf, char *zBuf){ */ memset(zBuf, 0, nBuf); randomnessPid = osGetpid(0); -#if !defined(SQLITE_TEST) +#if !defined(SQLITE_TEST) && !defined(SQLITE_OMIT_RANDOMNESS) { int fd, got; fd = robust_open("/dev/urandom", O_RDONLY, 0); @@ -32014,7 +31991,7 @@ static int proxyCreateUnixFile( if( pUnused ){ fd = pUnused->fd; }else{ - pUnused = sqlite3_malloc(sizeof(*pUnused)); + pUnused = sqlite3_malloc64(sizeof(*pUnused)); if( !pUnused ){ return SQLITE_NOMEM; } @@ -32047,7 +32024,7 @@ static int proxyCreateUnixFile( } } - pNew = (unixFile *)sqlite3_malloc(sizeof(*pNew)); + pNew = (unixFile *)sqlite3_malloc64(sizeof(*pNew)); if( pNew==NULL ){ rc = SQLITE_NOMEM; goto end_create_proxy; @@ -32509,7 +32486,7 @@ static int proxyReleaseConch(unixFile *pFile){ /* ** Given the name of a database file, compute the name of its conch file. -** Store the conch filename in memory obtained from sqlite3_malloc(). +** Store the conch filename in memory obtained from sqlite3_malloc64(). ** Make *pConchPath point to the new name. Return SQLITE_OK on success ** or SQLITE_NOMEM if unable to obtain memory. ** @@ -32525,7 +32502,7 @@ static int proxyCreateConchPathname(char *dbPath, char **pConchPath){ /* Allocate space for the conch filename and initialize the name to ** the name of the original database file. */ - *pConchPath = conchPath = (char *)sqlite3_malloc(len + 8); + *pConchPath = conchPath = (char *)sqlite3_malloc64(len + 8); if( conchPath==0 ){ return SQLITE_NOMEM; } @@ -32641,7 +32618,7 @@ static int proxyTransformUnixFile(unixFile *pFile, const char *path) { OSTRACE(("TRANSPROXY %d for %s pid=%d\n", pFile->h, (lockPath ? lockPath : ":auto:"), osGetpid(0))); - pCtx = sqlite3_malloc( sizeof(*pCtx) ); + pCtx = sqlite3_malloc64( sizeof(*pCtx) ); if( pCtx==0 ){ return SQLITE_NOMEM; } @@ -33085,16 +33062,6 @@ SQLITE_API int SQLITE_STDCALL sqlite3_os_end(void){ # error "The MEMORY_DEBUG macro is obsolete. Use SQLITE_DEBUG instead." #endif -#if defined(SQLITE_TEST) && defined(SQLITE_DEBUG) -# ifndef SQLITE_DEBUG_OS_TRACE -# define SQLITE_DEBUG_OS_TRACE 0 -# endif - int sqlite3OSTrace = SQLITE_DEBUG_OS_TRACE; -# define OSTRACE(X) if( sqlite3OSTrace ) sqlite3DebugPrintf X -#else -# define OSTRACE(X) -#endif - /* ** Macros for performance tracing. Normally turned off. Only works ** on i486 hardware. @@ -35998,7 +35965,7 @@ static int winSync(sqlite3_file *id, int flags){ BOOL rc; #endif #if !defined(NDEBUG) || !defined(SQLITE_NO_SYNC) || \ - (defined(SQLITE_TEST) && defined(SQLITE_DEBUG)) + defined(SQLITE_HAVE_OS_TRACE) /* ** Used when SQLITE_NO_SYNC is not defined and by the assert() and/or ** OSTRACE() macros. @@ -36675,7 +36642,7 @@ struct winShmNode { int nRef; /* Number of winShm objects pointing to this */ winShm *pFirst; /* All winShm objects pointing to this */ winShmNode *pNext; /* Next in list of all winShmNode objects */ -#ifdef SQLITE_DEBUG +#if defined(SQLITE_DEBUG) || defined(SQLITE_HAVE_OS_TRACE) u8 nextShmId; /* Next available winShm.id value */ #endif }; @@ -36706,7 +36673,7 @@ struct winShm { u8 hasMutex; /* True if holding the winShmNode mutex */ u16 sharedMask; /* Mask of shared locks held */ u16 exclMask; /* Mask of exclusive locks held */ -#ifdef SQLITE_DEBUG +#if defined(SQLITE_DEBUG) || defined(SQLITE_HAVE_OS_TRACE) u8 id; /* Id of this connection with its winShmNode */ #endif }; @@ -36897,7 +36864,7 @@ static int winOpenSharedMemory(winFile *pDbFd){ /* Make the new connection a child of the winShmNode */ p->pShmNode = pShmNode; -#ifdef SQLITE_DEBUG +#if defined(SQLITE_DEBUG) || defined(SQLITE_HAVE_OS_TRACE) p->id = pShmNode->nextShmId++; #endif pShmNode->nRef++; @@ -37166,7 +37133,7 @@ static int winShmMap( } /* Map the requested memory region into this processes address space. */ - apNew = (struct ShmRegion *)sqlite3_realloc( + apNew = (struct ShmRegion *)sqlite3_realloc64( pShmNode->aRegion, (iRegion+1)*sizeof(apNew[0]) ); if( !apNew ){ @@ -38613,7 +38580,7 @@ static void winDlClose(sqlite3_vfs *pVfs, void *pHandle){ static int winRandomness(sqlite3_vfs *pVfs, int nBuf, char *zBuf){ int n = 0; UNUSED_PARAMETER(pVfs); -#if defined(SQLITE_TEST) +#if defined(SQLITE_TEST) || defined(SQLITE_OMIT_RANDOMNESS) n = nBuf; memset(zBuf, 0, nBuf); #else @@ -38647,7 +38614,6 @@ static int winRandomness(sqlite3_vfs *pVfs, int nBuf, char *zBuf){ memcpy(&zBuf[n], &i, sizeof(i)); n += sizeof(i); } -#endif #if !SQLITE_OS_WINCE && !SQLITE_OS_WINRT && SQLITE_WIN32_USE_UUID if( sizeof(UUID)<=nBuf-n ){ UUID id; @@ -38664,6 +38630,7 @@ static int winRandomness(sqlite3_vfs *pVfs, int nBuf, char *zBuf){ n += sizeof(UUID); } #endif +#endif /* defined(SQLITE_TEST) || defined(SQLITE_ZERO_PRNG_SEED) */ return n; } @@ -39218,7 +39185,7 @@ SQLITE_PRIVATE int sqlite3BitvecBuiltinTest(int sz, int *aOp){ ** bits to act as the reference */ pBitvec = sqlite3BitvecCreate( sz ); pV = sqlite3MallocZero( (sz+7)/8 + 1 ); - pTmpSpace = sqlite3_malloc(BITVEC_SZ); + pTmpSpace = sqlite3_malloc64(BITVEC_SZ); if( pBitvec==0 || pV==0 || pTmpSpace==0 ) goto bitvec_end; /* NULL pBitvec tests */ @@ -44707,9 +44674,7 @@ static int pagerWalFrames( ){ int rc; /* Return code */ int nList; /* Number of pages in pList */ -#if defined(SQLITE_DEBUG) || defined(SQLITE_CHECK_PAGES) PgHdr *p; /* For looping over pages */ -#endif assert( pPager->pWal ); assert( pList ); @@ -44726,7 +44691,6 @@ static int pagerWalFrames( ** any pages with page numbers greater than nTruncate into the WAL file. ** They will never be read by any client. So remove them from the pDirty ** list here. */ - PgHdr *p; PgHdr **ppNext = &pList; nList = 0; for(p=pList; (*ppNext = p)!=0; p=p->pDirty){ @@ -44746,7 +44710,6 @@ static int pagerWalFrames( pPager->pageSize, pList, nTruncate, isCommit, pPager->walSyncFlags ); if( rc==SQLITE_OK && pPager->pBackup ){ - PgHdr *p; for(p=pList; p; p=p->pDirty){ sqlite3BackupUpdate(pPager->pBackup, p->pgno, (u8 *)p->pData); } @@ -48677,6 +48640,8 @@ SQLITE_PRIVATE int sqlite3PagerSetJournalMode(Pager *pPager, int eMode){ } assert( state==pPager->eState ); } + }else if( eMode==PAGER_JOURNALMODE_OFF ){ + sqlite3OsClose(pPager->jfd); } } @@ -49459,7 +49424,7 @@ static int walIndexPage(Wal *pWal, int iPage, volatile u32 **ppPage){ if( pWal->nWiData<=iPage ){ int nByte = sizeof(u32*)*(iPage+1); volatile u32 **apNew; - apNew = (volatile u32 **)sqlite3_realloc((void *)pWal->apWiData, nByte); + apNew = (volatile u32 **)sqlite3_realloc64((void *)pWal->apWiData, nByte); if( !apNew ){ *ppPage = 0; return SQLITE_NOMEM; @@ -50084,7 +50049,7 @@ static int walIndexRecover(Wal *pWal){ /* Malloc a buffer to read frames into. */ szFrame = szPage + WAL_FRAME_HDRSIZE; - aFrame = (u8 *)sqlite3_malloc(szFrame); + aFrame = (u8 *)sqlite3_malloc64(szFrame); if( !aFrame ){ rc = SQLITE_NOMEM; goto recovery_error; @@ -50477,7 +50442,7 @@ static int walIteratorInit(Wal *pWal, WalIterator **pp){ nByte = sizeof(WalIterator) + (nSegment-1)*sizeof(struct WalSegment) + iLast*sizeof(ht_slot); - p = (WalIterator *)sqlite3_malloc(nByte); + p = (WalIterator *)sqlite3_malloc64(nByte); if( !p ){ return SQLITE_NOMEM; } @@ -50487,7 +50452,7 @@ static int walIteratorInit(Wal *pWal, WalIterator **pp){ /* Allocate temporary space used by the merge-sort routine. This block ** of memory will be freed before this function returns. */ - aTmp = (ht_slot *)sqlite3_malloc( + aTmp = (ht_slot *)sqlite3_malloc64( sizeof(ht_slot) * (iLast>HASHTABLE_NPAGE?HASHTABLE_NPAGE:iLast) ); if( !aTmp ){ @@ -55515,7 +55480,7 @@ SQLITE_PRIVATE int sqlite3BtreeSetPageSize(Btree *p, int pageSize, int nReserve, if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE && ((pageSize-1)&pageSize)==0 ){ assert( (pageSize & 7)==0 ); - assert( !pBt->pPage1 && !pBt->pCursor ); + assert( !pBt->pCursor ); pBt->pageSize = (u32)pageSize; freeTempSpace(pBt); } @@ -61623,12 +61588,12 @@ static void checkList( ** ** The heap property is this: Every node is less than or equal to both ** of its daughter nodes. A consequence of the heap property is that the -** root node aHeap[1] is always the minimum value current in the heap. +** root node aHeap[1] is always the minimum value currently in the heap. ** ** The btreeHeapInsert() routine inserts an unsigned 32-bit number onto ** the heap, preserving the heap property. The btreeHeapPull() routine ** removes the root element from the heap (the minimum value in the heap) -** and then move other nodes around as necessary to preserve the heap +** and then moves other nodes around as necessary to preserve the heap ** property. ** ** This heap is used for cell overlap and coverage testing. Each u32 @@ -61985,8 +61950,7 @@ SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck( } i = PENDING_BYTE_PAGE(pBt); if( i<=sCheck.nPage ) setPageReferenced(&sCheck, i); - sqlite3StrAccumInit(&sCheck.errMsg, zErr, sizeof(zErr), SQLITE_MAX_LENGTH); - sCheck.errMsg.useMalloc = 2; + sqlite3StrAccumInit(&sCheck.errMsg, 0, zErr, sizeof(zErr), SQLITE_MAX_LENGTH); /* Check the integrity of the freelist */ @@ -63322,10 +63286,11 @@ SQLITE_PRIVATE int sqlite3VdbeMemMakeWriteable(Mem *pMem){ pMem->z[pMem->n] = 0; pMem->z[pMem->n+1] = 0; pMem->flags |= MEM_Term; -#ifdef SQLITE_DEBUG - pMem->pScopyFrom = 0; -#endif } + pMem->flags &= ~MEM_Ephem; +#ifdef SQLITE_DEBUG + pMem->pScopyFrom = 0; +#endif return SQLITE_OK; } @@ -64769,7 +64734,7 @@ SQLITE_PRIVATE void sqlite3Stat4ProbeFree(UnpackedRecord *pRec){ Mem *aMem = pRec->aMem; sqlite3 *db = aMem[0].db; for(i=0; ipKeyInfo); sqlite3DbFree(db, pRec); @@ -70673,9 +70638,8 @@ SQLITE_PRIVATE char *sqlite3VdbeExpandSql( char zBase[100]; /* Initial working space */ db = p->db; - sqlite3StrAccumInit(&out, zBase, sizeof(zBase), + sqlite3StrAccumInit(&out, db, zBase, sizeof(zBase), db->aLimit[SQLITE_LIMIT_LENGTH]); - out.db = db; if( db->nVdbeExec>1 ){ while( *zRawSql ){ const char *zStart = zRawSql; @@ -71853,7 +71817,6 @@ case OP_Halt: { assert( rc==SQLITE_OK || db->nDeferredCons>0 || db->nDeferredImmCons>0 ); rc = p->rc ? SQLITE_ERROR : SQLITE_DONE; } - pOp = &aOp[pcx]; goto vdbe_return; } @@ -72073,10 +72036,11 @@ case OP_Move: { memAboutToChange(p, pOut); sqlite3VdbeMemMove(pOut, pIn1); #ifdef SQLITE_DEBUG - if( pOut->pScopyFrom>=&aMem[p1] && pOut->pScopyFrom<&aMem[p1+pOp->p3] ){ - pOut->pScopyFrom += p1 - pOp->p2; + if( pOut->pScopyFrom>=&aMem[p1] && pOut->pScopyFrompScopyFrom += pOp->p2 - p1; } #endif + Deephemeralize(pOut); REGISTER_TRACE(p2++, pOut); pIn1++; pOut++; @@ -73345,7 +73309,7 @@ case OP_Column: { } } - /* If after trying to extra new entries from the header, nHdrParsed is + /* If after trying to extract new entries from the header, nHdrParsed is ** still not up to p2, that means that the record has fewer than p2 ** columns. So the result will be either the default value or a NULL. */ @@ -76780,7 +76744,6 @@ case OP_JournalMode: { /* out2 */ } eNew = sqlite3PagerSetJournalMode(pPager, eNew); - pOut = &aMem[pOp->p2]; pOut->flags = MEM_Str|MEM_Static|MEM_Term; pOut->z = (char *)sqlite3JournalModename(eNew); pOut->n = sqlite3Strlen30(pOut->z); @@ -76975,8 +76938,9 @@ case OP_VOpen: { pCur->pVtabCursor = pVtabCursor; pVtab->nRef++; }else{ - db->mallocFailed = 1; + assert( db->mallocFailed ); pModule->xClose(pVtabCursor); + goto no_mem; } } break; @@ -79996,11 +79960,12 @@ static void vdbeMergeEngineCompare( #define INCRINIT_TASK 1 #define INCRINIT_ROOT 2 -/* Forward reference. -** The vdbeIncrMergeInit() and vdbePmaReaderIncrMergeInit() routines call each -** other (when building a merge tree). +/* +** Forward reference required as the vdbeIncrMergeInit() and +** vdbePmaReaderIncrInit() routines are called mutually recursively when +** building a merge tree. */ -static int vdbePmaReaderIncrMergeInit(PmaReader *pReadr, int eMode); +static int vdbePmaReaderIncrInit(PmaReader *pReadr, int eMode); /* ** Initialize the MergeEngine object passed as the second argument. Once this @@ -80047,7 +80012,7 @@ static int vdbeMergeEngineInit( ** better advantage of multi-processor hardware. */ rc = vdbePmaReaderNext(&pMerger->aReadr[nTree-i-1]); }else{ - rc = vdbePmaReaderIncrMergeInit(&pMerger->aReadr[i], INCRINIT_NORMAL); + rc = vdbePmaReaderIncrInit(&pMerger->aReadr[i], INCRINIT_NORMAL); } if( rc!=SQLITE_OK ) return rc; } @@ -80059,17 +80024,15 @@ static int vdbeMergeEngineInit( } /* -** Initialize the IncrMerge field of a PmaReader. -** -** If the PmaReader passed as the first argument is not an incremental-reader -** (if pReadr->pIncr==0), then this function is a no-op. Otherwise, it serves -** to open and/or initialize the temp file related fields of the IncrMerge +** The PmaReader passed as the first argument is guaranteed to be an +** incremental-reader (pReadr->pIncr!=0). This function serves to open +** and/or initialize the temp file related fields of the IncrMerge ** object at (pReadr->pIncr). ** ** If argument eMode is set to INCRINIT_NORMAL, then all PmaReaders -** in the sub-tree headed by pReadr are also initialized. Data is then loaded -** into the buffers belonging to pReadr and it is set to -** point to the first key in its range. +** in the sub-tree headed by pReadr are also initialized. Data is then +** loaded into the buffers belonging to pReadr and it is set to point to +** the first key in its range. ** ** If argument eMode is set to INCRINIT_TASK, then pReadr is guaranteed ** to be a multi-threaded PmaReader and this function is being called in a @@ -80096,59 +80059,62 @@ static int vdbeMergeEngineInit( static int vdbePmaReaderIncrMergeInit(PmaReader *pReadr, int eMode){ int rc = SQLITE_OK; IncrMerger *pIncr = pReadr->pIncr; + SortSubtask *pTask = pIncr->pTask; + sqlite3 *db = pTask->pSorter->db; /* eMode is always INCRINIT_NORMAL in single-threaded mode */ assert( SQLITE_MAX_WORKER_THREADS>0 || eMode==INCRINIT_NORMAL ); - if( pIncr ){ - SortSubtask *pTask = pIncr->pTask; - sqlite3 *db = pTask->pSorter->db; + rc = vdbeMergeEngineInit(pTask, pIncr->pMerger, eMode); - rc = vdbeMergeEngineInit(pTask, pIncr->pMerger, eMode); - - /* Set up the required files for pIncr. A multi-theaded IncrMerge object - ** requires two temp files to itself, whereas a single-threaded object - ** only requires a region of pTask->file2. */ - if( rc==SQLITE_OK ){ - int mxSz = pIncr->mxSz; + /* Set up the required files for pIncr. A multi-theaded IncrMerge object + ** requires two temp files to itself, whereas a single-threaded object + ** only requires a region of pTask->file2. */ + if( rc==SQLITE_OK ){ + int mxSz = pIncr->mxSz; #if SQLITE_MAX_WORKER_THREADS>0 - if( pIncr->bUseThread ){ - rc = vdbeSorterOpenTempFile(db, mxSz, &pIncr->aFile[0].pFd); - if( rc==SQLITE_OK ){ - rc = vdbeSorterOpenTempFile(db, mxSz, &pIncr->aFile[1].pFd); - } - }else + if( pIncr->bUseThread ){ + rc = vdbeSorterOpenTempFile(db, mxSz, &pIncr->aFile[0].pFd); + if( rc==SQLITE_OK ){ + rc = vdbeSorterOpenTempFile(db, mxSz, &pIncr->aFile[1].pFd); + } + }else #endif - /*if( !pIncr->bUseThread )*/{ - if( pTask->file2.pFd==0 ){ - assert( pTask->file2.iEof>0 ); - rc = vdbeSorterOpenTempFile(db, pTask->file2.iEof, &pTask->file2.pFd); - pTask->file2.iEof = 0; - } - if( rc==SQLITE_OK ){ - pIncr->aFile[1].pFd = pTask->file2.pFd; - pIncr->iStartOff = pTask->file2.iEof; - pTask->file2.iEof += mxSz; - } + /*if( !pIncr->bUseThread )*/{ + if( pTask->file2.pFd==0 ){ + assert( pTask->file2.iEof>0 ); + rc = vdbeSorterOpenTempFile(db, pTask->file2.iEof, &pTask->file2.pFd); + pTask->file2.iEof = 0; + } + if( rc==SQLITE_OK ){ + pIncr->aFile[1].pFd = pTask->file2.pFd; + pIncr->iStartOff = pTask->file2.iEof; + pTask->file2.iEof += mxSz; } } + } #if SQLITE_MAX_WORKER_THREADS>0 - if( rc==SQLITE_OK && pIncr->bUseThread ){ - /* Use the current thread to populate aFile[1], even though this - ** PmaReader is multi-threaded. The reason being that this function - ** is already running in background thread pIncr->pTask->thread. */ - assert( eMode==INCRINIT_ROOT || eMode==INCRINIT_TASK ); - rc = vdbeIncrPopulate(pIncr); - } + if( rc==SQLITE_OK && pIncr->bUseThread ){ + /* Use the current thread to populate aFile[1], even though this + ** PmaReader is multi-threaded. If this is an INCRINIT_TASK object, + ** then this function is already running in background thread + ** pIncr->pTask->thread. + ** + ** If this is the INCRINIT_ROOT object, then it is running in the + ** main VDBE thread. But that is Ok, as that thread cannot return + ** control to the VDBE or proceed with anything useful until the + ** first results are ready from this merger object anyway. + */ + assert( eMode==INCRINIT_ROOT || eMode==INCRINIT_TASK ); + rc = vdbeIncrPopulate(pIncr); + } #endif - if( rc==SQLITE_OK - && (SQLITE_MAX_WORKER_THREADS==0 || eMode!=INCRINIT_TASK) - ){ - rc = vdbePmaReaderNext(pReadr); - } + if( rc==SQLITE_OK && (SQLITE_MAX_WORKER_THREADS==0 || eMode!=INCRINIT_TASK) ){ + rc = vdbePmaReaderNext(pReadr); } + return rc; } @@ -80157,7 +80123,7 @@ static int vdbePmaReaderIncrMergeInit(PmaReader *pReadr, int eMode){ ** The main routine for vdbePmaReaderIncrMergeInit() operations run in ** background threads. */ -static void *vdbePmaReaderBgInit(void *pCtx){ +static void *vdbePmaReaderBgIncrInit(void *pCtx){ PmaReader *pReader = (PmaReader*)pCtx; void *pRet = SQLITE_INT_TO_PTR( vdbePmaReaderIncrMergeInit(pReader,INCRINIT_TASK) @@ -80165,20 +80131,36 @@ static void *vdbePmaReaderBgInit(void *pCtx){ pReader->pIncr->pTask->bDone = 1; return pRet; } +#endif /* -** Use a background thread to invoke vdbePmaReaderIncrMergeInit(INCRINIT_TASK) -** on the PmaReader object passed as the first argument. -** -** This call will initialize the various fields of the pReadr->pIncr -** structure and, if it is a multi-threaded IncrMerger, launch a -** background thread to populate aFile[1]. +** If the PmaReader passed as the first argument is not an incremental-reader +** (if pReadr->pIncr==0), then this function is a no-op. Otherwise, it invokes +** the vdbePmaReaderIncrMergeInit() function with the parameters passed to +** this routine to initialize the incremental merge. +** +** If the IncrMerger object is multi-threaded (IncrMerger.bUseThread==1), +** then a background thread is launched to call vdbePmaReaderIncrMergeInit(). +** Or, if the IncrMerger is single threaded, the same function is called +** using the current thread. */ -static int vdbePmaReaderBgIncrInit(PmaReader *pReadr){ - void *pCtx = (void*)pReadr; - return vdbeSorterCreateThread(pReadr->pIncr->pTask, vdbePmaReaderBgInit, pCtx); -} +static int vdbePmaReaderIncrInit(PmaReader *pReadr, int eMode){ + IncrMerger *pIncr = pReadr->pIncr; /* Incremental merger */ + int rc = SQLITE_OK; /* Return code */ + if( pIncr ){ +#if SQLITE_MAX_WORKER_THREADS>0 + assert( pIncr->bUseThread==0 || eMode==INCRINIT_TASK ); + if( pIncr->bUseThread ){ + void *pCtx = (void*)pReadr; + rc = vdbeSorterCreateThread(pIncr->pTask, vdbePmaReaderBgIncrInit, pCtx); + }else #endif + { + rc = vdbePmaReaderIncrMergeInit(pReadr, eMode); + } + } + return rc; +} /* ** Allocate a new MergeEngine object to merge the contents of nPMA level-0 @@ -80423,15 +80405,21 @@ static int vdbeSorterSetupMerge(VdbeSorter *pSorter){ } } for(iTask=0; rc==SQLITE_OK && iTasknTask; iTask++){ + /* Check that: + ** + ** a) The incremental merge object is configured to use the + ** right task, and + ** b) If it is using task (nTask-1), it is configured to run + ** in single-threaded mode. This is important, as the + ** root merge (INCRINIT_ROOT) will be using the same task + ** object. + */ PmaReader *p = &pMain->aReadr[iTask]; - assert( p->pIncr==0 || p->pIncr->pTask==&pSorter->aTask[iTask] ); - if( p->pIncr ){ - if( iTask==pSorter->nTask-1 ){ - rc = vdbePmaReaderIncrMergeInit(p, INCRINIT_TASK); - }else{ - rc = vdbePmaReaderBgIncrInit(p); - } - } + assert( p->pIncr==0 || ( + (p->pIncr->pTask==&pSorter->aTask[iTask]) /* a */ + && (iTask!=pSorter->nTask-1 || p->pIncr->bUseThread==0) /* b */ + )); + rc = vdbePmaReaderIncrInit(p, INCRINIT_TASK); } } pMain = 0; @@ -81386,7 +81374,7 @@ static void incrAggFunctionDepth(Expr *pExpr, int N){ ** SELECT a+b, c+d FROM t1 ORDER BY (a+b) COLLATE nocase; ** ** The nSubquery parameter specifies how many levels of subquery the -** alias is removed from the original expression. The usually value is +** alias is removed from the original expression. The usual value is ** zero but it might be more if the alias is contained within a subquery ** of the original expression. The Expr.op2 field of TK_AGG_FUNCTION ** structures must be increased by the nSubquery amount. @@ -81406,7 +81394,6 @@ static void resolveAlias( assert( iCol>=0 && iColnExpr ); pOrig = pEList->a[iCol].pExpr; assert( pOrig!=0 ); - assert( pOrig->flags & EP_Resolved ); db = pParse->db; pDup = sqlite3ExprDup(db, pOrig, 0); if( pDup==0 ) return; @@ -84067,7 +84054,7 @@ SQLITE_PRIVATE u32 sqlite3ExprListFlags(const ExprList *pList){ if( pList ){ for(i=0; inExpr; i++){ Expr *pExpr = pList->a[i].pExpr; - if( pExpr ) m |= pList->a[i].pExpr->flags; + if( ALWAYS(pExpr) ) m |= pExpr->flags; } } return m; @@ -86198,7 +86185,7 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m break; } case TK_ID: { - sqlite3TreeViewLine(pView,"ID %Q", pExpr->u.zToken); + sqlite3TreeViewLine(pView,"ID \"%w\"", pExpr->u.zToken); break; } #ifndef SQLITE_OMIT_CAST @@ -87365,6 +87352,7 @@ static void renameParentFunc( n = sqlite3GetToken(z, &token); }while( token==TK_SPACE ); + if( token==TK_ILLEGAL ) break; zParent = sqlite3DbStrNDup(db, (const char *)z, n); if( zParent==0 ) break; sqlite3Dequote(zParent); @@ -89591,14 +89579,17 @@ static int analysisLoader(void *pData, int argc, char **argv, char **NotUsed){ z = argv[2]; if( pIndex ){ + tRowcnt *aiRowEst = 0; int nCol = pIndex->nKeyCol+1; #ifdef SQLITE_ENABLE_STAT3_OR_STAT4 - tRowcnt * const aiRowEst = pIndex->aiRowEst = (tRowcnt*)sqlite3MallocZero( - sizeof(tRowcnt) * nCol - ); - if( aiRowEst==0 ) pInfo->db->mallocFailed = 1; -#else - tRowcnt * const aiRowEst = 0; + /* Index.aiRowEst may already be set here if there are duplicate + ** sqlite_stat1 entries for this index. In that case just clobber + ** the old data with the new instead of allocating a new array. */ + if( pIndex->aiRowEst==0 ){ + pIndex->aiRowEst = (tRowcnt*)sqlite3MallocZero(sizeof(tRowcnt) * nCol); + if( pIndex->aiRowEst==0 ) pInfo->db->mallocFailed = 1; + } + aiRowEst = pIndex->aiRowEst; #endif pIndex->bUnordered = 0; decodeIntArray((char*)z, nCol, aiRowEst, pIndex->aiRowLogEst, pIndex); @@ -94835,8 +94826,7 @@ SQLITE_PRIVATE void sqlite3UniqueConstraint( StrAccum errMsg; Table *pTab = pIdx->pTable; - sqlite3StrAccumInit(&errMsg, 0, 0, 200); - errMsg.db = pParse->db; + sqlite3StrAccumInit(&errMsg, pParse->db, 0, 0, 200); for(j=0; jnKeyCol; j++){ char *zCol = pTab->aCol[pIdx->aiColumn[j]].zName; if( j ) sqlite3StrAccumAppend(&errMsg, ", ", 2); @@ -96665,13 +96655,13 @@ static void printfFunc( StrAccum str; const char *zFormat; int n; + sqlite3 *db = sqlite3_context_db_handle(context); if( argc>=1 && (zFormat = (const char*)sqlite3_value_text(argv[0]))!=0 ){ x.nArg = argc-1; x.nUsed = 0; x.apArg = argv+1; - sqlite3StrAccumInit(&str, 0, 0, SQLITE_MAX_LENGTH); - str.db = sqlite3_context_db_handle(context); + sqlite3StrAccumInit(&str, db, 0, 0, db->aLimit[SQLITE_LIMIT_LENGTH]); sqlite3XPrintf(&str, SQLITE_PRINTF_SQLFUNC, zFormat, &x); n = str.nChar; sqlite3_result_text(context, sqlite3StrAccumFinish(&str), n, @@ -96821,7 +96811,7 @@ static void roundFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ #endif /* -** Allocate nByte bytes of space using sqlite3_malloc(). If the +** Allocate nByte bytes of space using sqlite3Malloc(). If the ** allocation fails, call sqlite3_result_error_nomem() to notify ** the database handle that malloc() has failed and return NULL. ** If nByte is larger than the maximum string or blob length, then @@ -97490,7 +97480,7 @@ static void charFunc( ){ unsigned char *z, *zOut; int i; - zOut = z = sqlite3_malloc( argc*4+1 ); + zOut = z = sqlite3_malloc64( argc*4+1 ); if( z==0 ){ sqlite3_result_error_nomem(context); return; @@ -97638,7 +97628,7 @@ static void replaceFunc( return; } zOld = zOut; - zOut = sqlite3_realloc(zOut, (int)nOut); + zOut = sqlite3_realloc64(zOut, (int)nOut); if( zOut==0 ){ sqlite3_result_error_nomem(context); sqlite3_free(zOld); @@ -98000,8 +97990,7 @@ static void groupConcatStep( if( pAccum ){ sqlite3 *db = sqlite3_context_db_handle(context); - int firstTerm = pAccum->useMalloc==0; - pAccum->useMalloc = 2; + int firstTerm = pAccum->mxAlloc==0; pAccum->mxAlloc = db->aLimit[SQLITE_LIMIT_LENGTH]; if( !firstTerm ){ if( argc==2 ){ @@ -99434,10 +99423,10 @@ static Trigger *fkActionTrigger( ** parent table are used for the comparison. */ pEq = sqlite3PExpr(pParse, TK_EQ, sqlite3PExpr(pParse, TK_DOT, - sqlite3PExpr(pParse, TK_ID, 0, 0, &tOld), - sqlite3PExpr(pParse, TK_ID, 0, 0, &tToCol) + sqlite3ExprAlloc(db, TK_ID, &tOld, 0), + sqlite3ExprAlloc(db, TK_ID, &tToCol, 0) , 0), - sqlite3PExpr(pParse, TK_ID, 0, 0, &tFromCol) + sqlite3ExprAlloc(db, TK_ID, &tFromCol, 0) , 0); pWhere = sqlite3ExprAnd(db, pWhere, pEq); @@ -99449,12 +99438,12 @@ static Trigger *fkActionTrigger( if( pChanges ){ pEq = sqlite3PExpr(pParse, TK_IS, sqlite3PExpr(pParse, TK_DOT, - sqlite3PExpr(pParse, TK_ID, 0, 0, &tOld), - sqlite3PExpr(pParse, TK_ID, 0, 0, &tToCol), + sqlite3ExprAlloc(db, TK_ID, &tOld, 0), + sqlite3ExprAlloc(db, TK_ID, &tToCol, 0), 0), sqlite3PExpr(pParse, TK_DOT, - sqlite3PExpr(pParse, TK_ID, 0, 0, &tNew), - sqlite3PExpr(pParse, TK_ID, 0, 0, &tToCol), + sqlite3ExprAlloc(db, TK_ID, &tNew, 0), + sqlite3ExprAlloc(db, TK_ID, &tToCol, 0), 0), 0); pWhen = sqlite3ExprAnd(db, pWhen, pEq); @@ -99464,8 +99453,8 @@ static Trigger *fkActionTrigger( Expr *pNew; if( action==OE_Cascade ){ pNew = sqlite3PExpr(pParse, TK_DOT, - sqlite3PExpr(pParse, TK_ID, 0, 0, &tNew), - sqlite3PExpr(pParse, TK_ID, 0, 0, &tToCol) + sqlite3ExprAlloc(db, TK_ID, &tNew, 0), + sqlite3ExprAlloc(db, TK_ID, &tToCol, 0) , 0); }else if( action==OE_SetDflt ){ Expr *pDflt = pFKey->pFrom->aCol[iFromCol].pDflt; @@ -99512,13 +99501,12 @@ static Trigger *fkActionTrigger( pTrigger = (Trigger *)sqlite3DbMallocZero(db, sizeof(Trigger) + /* struct Trigger */ sizeof(TriggerStep) + /* Single step in trigger program */ - nFrom + 1 /* Space for pStep->target.z */ + nFrom + 1 /* Space for pStep->zTarget */ ); if( pTrigger ){ pStep = pTrigger->step_list = (TriggerStep *)&pTrigger[1]; - pStep->target.z = (char *)&pStep[1]; - pStep->target.n = nFrom; - memcpy((char *)pStep->target.z, zFrom, nFrom); + pStep->zTarget = (char *)&pStep[1]; + memcpy((char *)pStep->zTarget, zFrom, nFrom); pStep->pWhere = sqlite3ExprDup(db, pWhere, EXPRDUP_REDUCE); pStep->pExprList = sqlite3ExprListDup(db, pList, EXPRDUP_REDUCE); @@ -101666,7 +101654,6 @@ static int xferOptimization( ** might change the definition of a collation sequence and then run ** a VACUUM command. In that case keys may not be written in strictly ** sorted order. */ - int i; for(i=0; inColumn; i++){ char *zColl = pSrcIdx->azColl[i]; assert( zColl!=0 ); @@ -102797,7 +102784,7 @@ static int sqlite3LoadExtension( const char *zEntry; char *zAltEntry = 0; void **aHandle; - int nMsg = 300 + sqlite3Strlen30(zFile); + u64 nMsg = 300 + sqlite3Strlen30(zFile); int ii; /* Shared library endings to try if zFile cannot be loaded as written */ @@ -102840,7 +102827,7 @@ static int sqlite3LoadExtension( #endif if( handle==0 ){ if( pzErrMsg ){ - *pzErrMsg = zErrmsg = sqlite3_malloc(nMsg); + *pzErrMsg = zErrmsg = sqlite3_malloc64(nMsg); if( zErrmsg ){ sqlite3_snprintf(nMsg, zErrmsg, "unable to open shared library [%s]", zFile); @@ -102866,7 +102853,7 @@ static int sqlite3LoadExtension( if( xInit==0 && zProc==0 ){ int iFile, iEntry, c; int ncFile = sqlite3Strlen30(zFile); - zAltEntry = sqlite3_malloc(ncFile+30); + zAltEntry = sqlite3_malloc64(ncFile+30); if( zAltEntry==0 ){ sqlite3OsDlClose(pVfs, handle); return SQLITE_NOMEM; @@ -102888,7 +102875,7 @@ static int sqlite3LoadExtension( if( xInit==0 ){ if( pzErrMsg ){ nMsg += sqlite3Strlen30(zEntry); - *pzErrMsg = zErrmsg = sqlite3_malloc(nMsg); + *pzErrMsg = zErrmsg = sqlite3_malloc64(nMsg); if( zErrmsg ){ sqlite3_snprintf(nMsg, zErrmsg, "no entry point [%s] in shared library [%s]", zEntry, zFile); @@ -102987,7 +102974,7 @@ static const sqlite3_api_routines sqlite3Apis = { 0 }; */ typedef struct sqlite3AutoExtList sqlite3AutoExtList; static SQLITE_WSD struct sqlite3AutoExtList { - int nExt; /* Number of entries in aExt[] */ + u32 nExt; /* Number of entries in aExt[] */ void (**aExt)(void); /* Pointers to the extension init functions */ } sqlite3Autoext = { 0, 0 }; @@ -103020,7 +103007,7 @@ SQLITE_API int SQLITE_STDCALL sqlite3_auto_extension(void (*xInit)(void)){ }else #endif { - int i; + u32 i; #if SQLITE_THREADSAFE sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER); #endif @@ -103030,9 +103017,9 @@ SQLITE_API int SQLITE_STDCALL sqlite3_auto_extension(void (*xInit)(void)){ if( wsdAutoext.aExt[i]==xInit ) break; } if( i==wsdAutoext.nExt ){ - int nByte = (wsdAutoext.nExt+1)*sizeof(wsdAutoext.aExt[0]); + u64 nByte = (wsdAutoext.nExt+1)*sizeof(wsdAutoext.aExt[0]); void (**aNew)(void); - aNew = sqlite3_realloc(wsdAutoext.aExt, nByte); + aNew = sqlite3_realloc64(wsdAutoext.aExt, nByte); if( aNew==0 ){ rc = SQLITE_NOMEM; }else{ @@ -103064,7 +103051,7 @@ SQLITE_API int SQLITE_STDCALL sqlite3_cancel_auto_extension(void (*xInit)(void)) int n = 0; wsdAutoextInit; sqlite3_mutex_enter(mutex); - for(i=wsdAutoext.nExt-1; i>=0; i--){ + for(i=(int)wsdAutoext.nExt-1; i>=0; i--){ if( wsdAutoext.aExt[i]==xInit ){ wsdAutoext.nExt--; wsdAutoext.aExt[i] = wsdAutoext.aExt[wsdAutoext.nExt]; @@ -103102,7 +103089,7 @@ SQLITE_API void SQLITE_STDCALL sqlite3_reset_auto_extension(void){ ** If anything goes wrong, set an error in the database connection. */ SQLITE_PRIVATE void sqlite3AutoLoadExtensions(sqlite3 *db){ - int i; + u32 i; int go = 1; int rc; int (*xInit)(sqlite3*,char**,const sqlite3_api_routines*); @@ -103766,15 +103753,15 @@ static int changeTempStorage(Parse *pParse, const char *zStorageType){ */ static void returnSingleInt(Parse *pParse, const char *zLabel, i64 value){ Vdbe *v = sqlite3GetVdbe(pParse); - int mem = ++pParse->nMem; + int nMem = ++pParse->nMem; i64 *pI64 = sqlite3DbMallocRaw(pParse->db, sizeof(value)); if( pI64 ){ memcpy(pI64, &value, sizeof(value)); } - sqlite3VdbeAddOp4(v, OP_Int64, 0, mem, 0, (char*)pI64, P4_INT64); + sqlite3VdbeAddOp4(v, OP_Int64, 0, nMem, 0, (char*)pI64, P4_INT64); sqlite3VdbeSetNumCols(v, 1); sqlite3VdbeSetColName(v, 0, COLNAME_NAME, zLabel, SQLITE_STATIC); - sqlite3VdbeAddOp2(v, OP_ResultRow, mem, 1); + sqlite3VdbeAddOp2(v, OP_ResultRow, nMem, 1); } @@ -103939,11 +103926,11 @@ SQLITE_PRIVATE void sqlite3Pragma( rc = sqlite3_file_control(db, zDb, SQLITE_FCNTL_PRAGMA, (void*)aFcntl); if( rc==SQLITE_OK ){ if( aFcntl[0] ){ - int mem = ++pParse->nMem; - sqlite3VdbeAddOp4(v, OP_String8, 0, mem, 0, aFcntl[0], 0); + int nMem = ++pParse->nMem; + sqlite3VdbeAddOp4(v, OP_String8, 0, nMem, 0, aFcntl[0], 0); sqlite3VdbeSetNumCols(v, 1); sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "result", SQLITE_STATIC); - sqlite3VdbeAddOp2(v, OP_ResultRow, mem, 1); + sqlite3VdbeAddOp2(v, OP_ResultRow, nMem, 1); sqlite3_free(aFcntl[0]); } goto pragma_out; @@ -108179,12 +108166,14 @@ static void selectAddColumnTypeAndCollation( a = pSelect->pEList->a; for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){ p = a[i].pExpr; - pCol->zType = sqlite3DbStrDup(db, columnType(&sNC, p,0,0,0, &pCol->szEst)); + if( pCol->zType==0 ){ + pCol->zType = sqlite3DbStrDup(db, columnType(&sNC, p,0,0,0, &pCol->szEst)); + } szAll += pCol->szEst; pCol->affinity = sqlite3ExprAffinity(p); if( pCol->affinity==0 ) pCol->affinity = SQLITE_AFF_NONE; pColl = sqlite3ExprCollSeq(pParse, p); - if( pColl ){ + if( pColl && pCol->zColl==0 ){ pCol->zColl = sqlite3DbStrDup(db, pColl->zName); } } @@ -109080,7 +109069,7 @@ static int generateOutputSubroutine( */ case SRT_Set: { int r1; - assert( pIn->nSdst==1 ); + assert( pIn->nSdst==1 || pParse->nErr>0 ); pDest->affSdst = sqlite3CompareAffinity(p->pEList->a[0].pExpr, pDest->affSdst); r1 = sqlite3GetTempReg(pParse); @@ -109121,7 +109110,7 @@ static int generateOutputSubroutine( pDest->iSdst = sqlite3GetTempRange(pParse, pIn->nSdst); pDest->nSdst = pIn->nSdst; } - sqlite3ExprCodeMove(pParse, pIn->iSdst, pDest->iSdst, pDest->nSdst); + sqlite3ExprCodeMove(pParse, pIn->iSdst, pDest->iSdst, pIn->nSdst); sqlite3VdbeAddOp1(v, OP_Yield, pDest->iSDParm); break; } @@ -111087,7 +111076,8 @@ static void updateAccumulator(Parse *pParse, AggInfo *pAggInfo){ } if( pF->iDistinct>=0 ){ addrNext = sqlite3VdbeMakeLabel(v); - assert( nArg==1 ); + testcase( nArg==0 ); /* Error condition */ + testcase( nArg>1 ); /* Also an error */ codeDistinct(pParse, pF->iDistinct, addrNext, 1, regAgg); } if( pF->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){ @@ -112015,7 +112005,7 @@ SQLITE_PRIVATE void sqlite3TreeViewSelect(TreeView *pView, const Select *p, u8 m struct SrcList_item *pItem = &p->pSrc->a[i]; StrAccum x; char zLine[100]; - sqlite3StrAccumInit(&x, zLine, sizeof(zLine), 0); + sqlite3StrAccumInit(&x, 0, zLine, sizeof(zLine), 0); sqlite3XPrintf(&x, 0, "{%d,*}", pItem->iCursor); if( pItem->zDatabase ){ sqlite3XPrintf(&x, 0, " %s.%s", pItem->zDatabase, pItem->zName); @@ -112174,7 +112164,7 @@ static int sqlite3_get_table_cb(void *pArg, int nCol, char **argv, char **colv){ z = 0; }else{ int n = sqlite3Strlen30(argv[i])+1; - z = sqlite3_malloc( n ); + z = sqlite3_malloc64( n ); if( z==0 ) goto malloc_failed; memcpy(z, argv[i], n); } @@ -112223,7 +112213,7 @@ SQLITE_API int SQLITE_STDCALL sqlite3_get_table( res.nData = 1; res.nAlloc = 20; res.rc = SQLITE_OK; - res.azResult = sqlite3_malloc(sizeof(char*)*res.nAlloc ); + res.azResult = sqlite3_malloc64(sizeof(char*)*res.nAlloc ); if( res.azResult==0 ){ db->errCode = SQLITE_NOMEM; return SQLITE_NOMEM; @@ -112251,7 +112241,7 @@ SQLITE_API int SQLITE_STDCALL sqlite3_get_table( } if( res.nAlloc>res.nData ){ char **azNew; - azNew = sqlite3_realloc( res.azResult, sizeof(char*)*res.nData ); + azNew = sqlite3_realloc64( res.azResult, sizeof(char*)*res.nData ); if( azNew==0 ){ sqlite3_free_table(&res.azResult[1]); db->errCode = SQLITE_NOMEM; @@ -112658,12 +112648,12 @@ static TriggerStep *triggerStepAllocate( ){ TriggerStep *pTriggerStep; - pTriggerStep = sqlite3DbMallocZero(db, sizeof(TriggerStep) + pName->n); + pTriggerStep = sqlite3DbMallocZero(db, sizeof(TriggerStep) + pName->n + 1); if( pTriggerStep ){ char *z = (char*)&pTriggerStep[1]; memcpy(z, pName->z, pName->n); - pTriggerStep->target.z = z; - pTriggerStep->target.n = pName->n; + sqlite3Dequote(z); + pTriggerStep->zTarget = z; pTriggerStep->op = op; } return pTriggerStep; @@ -112946,7 +112936,7 @@ SQLITE_PRIVATE Trigger *sqlite3TriggersExist( } /* -** Convert the pStep->target token into a SrcList and return a pointer +** Convert the pStep->zTarget string into a SrcList and return a pointer ** to that SrcList. ** ** This routine adds a specific database name, if needed, to the target when @@ -112959,16 +112949,17 @@ static SrcList *targetSrcList( Parse *pParse, /* The parsing context */ TriggerStep *pStep /* The trigger containing the target token */ ){ + sqlite3 *db = pParse->db; int iDb; /* Index of the database to use */ SrcList *pSrc; /* SrcList to be returned */ - pSrc = sqlite3SrcListAppend(pParse->db, 0, &pStep->target, 0); + pSrc = sqlite3SrcListAppend(db, 0, 0, 0); if( pSrc ){ assert( pSrc->nSrc>0 ); - iDb = sqlite3SchemaToIndex(pParse->db, pStep->pTrig->pSchema); + pSrc->a[pSrc->nSrc-1].zName = sqlite3DbStrDup(db, pStep->zTarget); + iDb = sqlite3SchemaToIndex(db, pStep->pTrig->pSchema); if( iDb==0 || iDb>=2 ){ - sqlite3 *db = pParse->db; - assert( iDbdb->nDb ); + assert( iDbnDb ); pSrc->a[pSrc->nSrc-1].zDatabase = sqlite3DbStrDup(db, db->aDb[iDb].zName); } } @@ -115638,7 +115629,7 @@ SQLITE_PRIVATE void sqlite3VtabMakeWritable(Parse *pParse, Table *pTab){ if( pTab==pToplevel->apVtabLock[i] ) return; } n = (pToplevel->nVtabLock+1)*sizeof(pToplevel->apVtabLock[0]); - apVtabLock = sqlite3_realloc(pToplevel->apVtabLock, n); + apVtabLock = sqlite3_realloc64(pToplevel->apVtabLock, n); if( apVtabLock ){ pToplevel->apVtabLock = apVtabLock; pToplevel->apVtabLock[pToplevel->nVtabLock++] = pTab; @@ -116437,13 +116428,14 @@ static int whereClauseInsert(WhereClause *pWC, Expr *p, u16 wtFlags){ ** all terms of the WHERE clause. */ static void whereSplit(WhereClause *pWC, Expr *pExpr, u8 op){ + Expr *pE2 = sqlite3ExprSkipCollate(pExpr); pWC->op = op; - if( pExpr==0 ) return; - if( pExpr->op!=op ){ + if( pE2==0 ) return; + if( pE2->op!=op ){ whereClauseInsert(pWC, pExpr, 0); }else{ - whereSplit(pWC, pExpr->pLeft, op); - whereSplit(pWC, pExpr->pRight, op); + whereSplit(pWC, pE2->pLeft, op); + whereSplit(pWC, pE2->pRight, op); } } @@ -119284,8 +119276,7 @@ static int explainOneScan( || ((flags&WHERE_VIRTUALTABLE)==0 && (pLoop->u.btree.nEq>0)) || (wctrlFlags&(WHERE_ORDERBY_MIN|WHERE_ORDERBY_MAX)); - sqlite3StrAccumInit(&str, zBuf, sizeof(zBuf), SQLITE_MAX_LENGTH); - str.db = db; + sqlite3StrAccumInit(&str, db, zBuf, sizeof(zBuf), SQLITE_MAX_LENGTH); sqlite3StrAccumAppendAll(&str, isSearch ? "SEARCH" : "SCAN"); if( pItem->pSelect ){ sqlite3XPrintf(&str, 0, " SUBQUERY %d", pItem->iSelectId); @@ -120484,6 +120475,13 @@ static void whereLoopDelete(sqlite3 *db, WhereLoop *p){ */ static void whereInfoFree(sqlite3 *db, WhereInfo *pWInfo){ if( ALWAYS(pWInfo) ){ + int i; + for(i=0; inLevel; i++){ + WhereLevel *pLevel = &pWInfo->a[i]; + if( pLevel->pWLoop && (pLevel->pWLoop->wsFlags & WHERE_IN_ABLE) ){ + sqlite3DbFree(db, pLevel->u.in.aInLoop); + } + } whereClauseClear(&pWInfo->sWC); while( pWInfo->pLoops ){ WhereLoop *p = pWInfo->pLoops; @@ -122828,7 +122826,6 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( } #ifdef WHERETRACE_ENABLED /* !=0 */ if( sqlite3WhereTrace ){ - int ii; sqlite3DebugPrintf("---- Solution nRow=%d", pWInfo->nRowOut); if( pWInfo->nOBSat>0 ){ sqlite3DebugPrintf(" ORDERBY=%d,0x%llx", pWInfo->nOBSat, pWInfo->revMask); @@ -123081,7 +123078,6 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ VdbeCoverageIf(v, pIn->eEndLoopOp==OP_NextIfOpen); sqlite3VdbeJumpHere(v, pIn->addrInTop-1); } - sqlite3DbFree(db, pLevel->u.in.aInLoop); } sqlite3VdbeResolveLabel(v, pLevel->addrBrk); if( pLevel->addrSkip ){ @@ -127539,12 +127535,14 @@ SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzEr } abort_parse: assert( nErr==0 ); - if( zSql[i]==0 && pParse->rc==SQLITE_OK ){ + if( zSql[i]==0 && pParse->rc==SQLITE_OK && db->mallocFailed==0 ){ if( lastTokenParsed!=TK_SEMI ){ sqlite3Parser(pEngine, TK_SEMI, pParse->sLastToken, pParse); pParse->zTail = &zSql[i]; } - sqlite3Parser(pEngine, 0, pParse->sLastToken, pParse); + if( pParse->rc==SQLITE_OK && db->mallocFailed==0 ){ + sqlite3Parser(pEngine, 0, pParse->sLastToken, pParse); + } } #ifdef YYTRACKMAXSTACKDEPTH sqlite3_mutex_enter(sqlite3MallocMutex()); @@ -128047,6 +128045,18 @@ SQLITE_API int SQLITE_STDCALL sqlite3_libversion_number(void){ return SQLITE_VER */ SQLITE_API int SQLITE_STDCALL sqlite3_threadsafe(void){ return SQLITE_THREADSAFE; } +/* +** When compiling the test fixture or with debugging enabled (on Win32), +** this variable being set to non-zero will cause OSTRACE macros to emit +** extra diagnostic information. +*/ +#ifdef SQLITE_HAVE_OS_TRACE +# ifndef SQLITE_DEBUG_OS_TRACE +# define SQLITE_DEBUG_OS_TRACE 0 +# endif + int sqlite3OSTrace = SQLITE_DEBUG_OS_TRACE; +#endif + #if !defined(SQLITE_OMIT_TRACE) && defined(SQLITE_ENABLE_IOTRACE) /* ** If the following function pointer is not NULL and if @@ -129186,7 +129196,7 @@ SQLITE_PRIVATE void sqlite3RollbackAll(sqlite3 *db, int tripCode){ ** Return a static string containing the name corresponding to the error code ** specified in the argument. */ -#if (defined(SQLITE_DEBUG) && SQLITE_OS_WIN) || defined(SQLITE_TEST) +#if defined(SQLITE_NEED_ERR_NAME) SQLITE_PRIVATE const char *sqlite3ErrName(int rc){ const char *zName = 0; int i, origRc = rc; @@ -130411,14 +130421,14 @@ SQLITE_PRIVATE int sqlite3ParseUri( int eState; /* Parser state when parsing URI */ int iIn; /* Input character index */ int iOut = 0; /* Output character index */ - int nByte = nUri+2; /* Bytes of space to allocate */ + u64 nByte = nUri+2; /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen ** method that there may be extra parameters following the file-name. */ flags |= SQLITE_OPEN_URI; for(iIn=0; iInmallocFailed && rc==SQLITE_OK){ + int sqlite3_dbstat_register(sqlite3*); + rc = sqlite3_dbstat_register(db); + } +#endif + /* -DSQLITE_DEFAULT_LOCKING_MODE=1 makes EXCLUSIVE the default locking ** mode. -DSQLITE_DEFAULT_LOCKING_MODE=0 make NORMAL the default locking ** mode. Doing nothing at all also makes NORMAL the default. @@ -133198,6 +133215,7 @@ SQLITE_PRIVATE int sqlite3Fts3Incrmerge(Fts3Table*,int,int); ) /* fts3.c */ +SQLITE_PRIVATE void sqlite3Fts3ErrMsg(char**,const char*,...); SQLITE_PRIVATE int sqlite3Fts3PutVarint(char *, sqlite3_int64); SQLITE_PRIVATE int sqlite3Fts3GetVarint(const char *, sqlite_int64 *); SQLITE_PRIVATE int sqlite3Fts3GetVarint32(const char *, int *); @@ -133482,6 +133500,17 @@ static int fts3DisconnectMethod(sqlite3_vtab *pVtab){ return SQLITE_OK; } +/* +** Write an error message into *pzErr +*/ +SQLITE_PRIVATE void sqlite3Fts3ErrMsg(char **pzErr, const char *zFormat, ...){ + va_list ap; + sqlite3_free(*pzErr); + va_start(ap, zFormat); + *pzErr = sqlite3_vmprintf(zFormat, ap); + va_end(ap); +} + /* ** Construct one or more SQL statements from the format string given ** and then evaluate those statements. The success code is written @@ -134013,7 +134042,7 @@ static int fts3ContentColumns( }else{ rc = sqlite3_prepare(db, zSql, -1, &pStmt, 0); if( rc!=SQLITE_OK ){ - *pzErr = sqlite3_mprintf("%s", sqlite3_errmsg(db)); + sqlite3Fts3ErrMsg(pzErr, "%s", sqlite3_errmsg(db)); } } sqlite3_free(zSql); @@ -134181,13 +134210,13 @@ static int fts3InitVtab( } } if( iOpt==SizeofArray(aFts4Opt) ){ - *pzErr = sqlite3_mprintf("unrecognized parameter: %s", z); + sqlite3Fts3ErrMsg(pzErr, "unrecognized parameter: %s", z); rc = SQLITE_ERROR; }else{ switch( iOpt ){ case 0: /* MATCHINFO */ if( strlen(zVal)!=4 || sqlite3_strnicmp(zVal, "fts3", 4) ){ - *pzErr = sqlite3_mprintf("unrecognized matchinfo: %s", zVal); + sqlite3Fts3ErrMsg(pzErr, "unrecognized matchinfo: %s", zVal); rc = SQLITE_ERROR; } bNoDocsize = 1; @@ -134215,7 +134244,7 @@ static int fts3InitVtab( if( (strlen(zVal)!=3 || sqlite3_strnicmp(zVal, "asc", 3)) && (strlen(zVal)!=4 || sqlite3_strnicmp(zVal, "desc", 4)) ){ - *pzErr = sqlite3_mprintf("unrecognized order: %s", zVal); + sqlite3Fts3ErrMsg(pzErr, "unrecognized order: %s", zVal); rc = SQLITE_ERROR; } bDescIdx = (zVal[0]=='d' || zVal[0]=='D'); @@ -134301,7 +134330,7 @@ static int fts3InitVtab( rc = fts3PrefixParameter(zPrefix, &nIndex, &aIndex); if( rc==SQLITE_ERROR ){ assert( zPrefix ); - *pzErr = sqlite3_mprintf("error parsing prefix parameter: %s", zPrefix); + sqlite3Fts3ErrMsg(pzErr, "error parsing prefix parameter: %s", zPrefix); } if( rc!=SQLITE_OK ) goto fts3_init_out; @@ -134383,7 +134412,7 @@ static int fts3InitVtab( } for(i=0; izReadExprlist = fts3ReadExprList(p, zUncompress, &rc); p->zWriteExprlist = fts3WriteExprList(p, zCompress, &rc); @@ -135784,7 +135813,7 @@ static int fts3SegReaderCursor( ** calls out here. */ if( iLevel<0 && p->aIndex ){ Fts3SegReader *pSeg = 0; - rc = sqlite3Fts3SegReaderPending(p, iIndex, zTerm, nTerm, isPrefix, &pSeg); + rc = sqlite3Fts3SegReaderPending(p, iIndex, zTerm, nTerm, isPrefix||isScan, &pSeg); if( rc==SQLITE_OK && pSeg ){ rc = fts3SegReaderCursorAppend(pCsr, pSeg); } @@ -137591,12 +137620,14 @@ static void fts3EvalStartReaders( ){ if( pExpr && SQLITE_OK==*pRc ){ if( pExpr->eType==FTSQUERY_PHRASE ){ - int i; int nToken = pExpr->pPhrase->nToken; - for(i=0; ipPhrase->aToken[i].pDeferred==0 ) break; + if( nToken ){ + int i; + for(i=0; ipPhrase->aToken[i].pDeferred==0 ) break; + } + pExpr->bDeferred = (i==nToken); } - pExpr->bDeferred = (i==nToken); *pRc = fts3EvalPhraseStart(pCsr, 1, pExpr->pPhrase); }else{ fts3EvalStartReaders(pCsr, pExpr->pLeft, pRc); @@ -138972,7 +139003,7 @@ static int fts3auxConnectMethod( return SQLITE_OK; bad_args: - *pzErr = sqlite3_mprintf("invalid arguments to fts4aux constructor"); + sqlite3Fts3ErrMsg(pzErr, "invalid arguments to fts4aux constructor"); return SQLITE_ERROR; } @@ -140430,13 +140461,13 @@ SQLITE_PRIVATE int sqlite3Fts3ExprParse( sqlite3Fts3ExprFree(*ppExpr); *ppExpr = 0; if( rc==SQLITE_TOOBIG ){ - *pzErr = sqlite3_mprintf( + sqlite3Fts3ErrMsg(pzErr, "FTS expression tree is too large (maximum depth %d)", SQLITE_FTS3_MAX_EXPR_DEPTH ); rc = SQLITE_ERROR; }else if( rc==SQLITE_ERROR ){ - *pzErr = sqlite3_mprintf("malformed MATCH expression: [%s]", z); + sqlite3Fts3ErrMsg(pzErr, "malformed MATCH expression: [%s]", z); } } @@ -141912,7 +141943,7 @@ SQLITE_PRIVATE int sqlite3Fts3InitTokenizer( m = (sqlite3_tokenizer_module *)sqlite3Fts3HashFind(pHash,z,(int)strlen(z)+1); if( !m ){ - *pzErr = sqlite3_mprintf("unknown tokenizer: %s", z); + sqlite3Fts3ErrMsg(pzErr, "unknown tokenizer: %s", z); rc = SQLITE_ERROR; }else{ char const **aArg = 0; @@ -141935,7 +141966,7 @@ SQLITE_PRIVATE int sqlite3Fts3InitTokenizer( rc = m->xCreate(iArg, aArg, ppTok); assert( rc!=SQLITE_OK || *ppTok ); if( rc!=SQLITE_OK ){ - *pzErr = sqlite3_mprintf("unknown tokenizer"); + sqlite3Fts3ErrMsg(pzErr, "unknown tokenizer"); }else{ (*ppTok)->pModule = m; } @@ -142019,9 +142050,9 @@ static void testFunc( p = (sqlite3_tokenizer_module *)sqlite3Fts3HashFind(pHash, zName, nName+1); if( !p ){ - char *zErr = sqlite3_mprintf("unknown tokenizer: %s", zName); - sqlite3_result_error(context, zErr, -1); - sqlite3_free(zErr); + char *zErr2 = sqlite3_mprintf("unknown tokenizer: %s", zName); + sqlite3_result_error(context, zErr2, -1); + sqlite3_free(zErr2); return; } @@ -142556,7 +142587,7 @@ static int fts3tokQueryTokenizer( p = (sqlite3_tokenizer_module *)sqlite3Fts3HashFind(pHash, zName, nName+1); if( !p ){ - *pzErr = sqlite3_mprintf("unknown tokenizer: %s", zName); + sqlite3Fts3ErrMsg(pzErr, "unknown tokenizer: %s", zName); return SQLITE_ERROR; } @@ -143253,7 +143284,7 @@ static int fts3SqlStmt( /* 25 */ "", /* 26 */ "DELETE FROM %Q.'%q_segdir' WHERE level BETWEEN ? AND ?", -/* 27 */ "SELECT DISTINCT level / (1024 * ?) FROM %Q.'%q_segdir'", +/* 27 */ "SELECT ? UNION SELECT level / (1024 * ?) FROM %Q.'%q_segdir'", /* This statement is used to determine which level to read the input from ** when performing an incremental merge. It returns the absolute level number @@ -146371,7 +146402,8 @@ static int fts3DoOptimize(Fts3Table *p, int bReturnDone){ rc = fts3SqlStmt(p, SQL_SELECT_ALL_LANGID, &pAllLangid, 0); if( rc==SQLITE_OK ){ int rc2; - sqlite3_bind_int(pAllLangid, 1, p->nIndex); + sqlite3_bind_int(pAllLangid, 1, p->iPrevLangid); + sqlite3_bind_int(pAllLangid, 2, p->nIndex); while( sqlite3_step(pAllLangid)==SQLITE_ROW ){ int i; int iLangid = sqlite3_column_int(pAllLangid, 0); @@ -147703,7 +147735,7 @@ static int fts3IncrmergeHintPop(Blob *pHint, i64 *piAbsLevel, int *pnInput){ pHint->n = i; i += sqlite3Fts3GetVarint(&pHint->a[i], piAbsLevel); i += fts3GetVarint32(&pHint->a[i], pnInput); - if( i!=nHint ) return SQLITE_CORRUPT_VTAB; + if( i!=nHint ) return FTS_CORRUPT_VTAB; return SQLITE_OK; } @@ -148071,7 +148103,8 @@ static int fts3IntegrityCheck(Fts3Table *p, int *pbOk){ rc = fts3SqlStmt(p, SQL_SELECT_ALL_LANGID, &pAllLangid, 0); if( rc==SQLITE_OK ){ int rc2; - sqlite3_bind_int(pAllLangid, 1, p->nIndex); + sqlite3_bind_int(pAllLangid, 1, p->iPrevLangid); + sqlite3_bind_int(pAllLangid, 2, p->nIndex); while( rc==SQLITE_OK && sqlite3_step(pAllLangid)==SQLITE_ROW ){ int iLangid = sqlite3_column_int(pAllLangid, 0); int i; @@ -148084,7 +148117,6 @@ static int fts3IntegrityCheck(Fts3Table *p, int *pbOk){ } /* This block calculates the checksum according to the %_content table */ - rc = fts3SqlStmt(p, SQL_SELECT_ALL_LANGID, &pAllLangid, 0); if( rc==SQLITE_OK ){ sqlite3_tokenizer_module const *pModule = p->pTokenizer->pModule; sqlite3_stmt *pStmt = 0; @@ -148181,7 +148213,7 @@ static int fts3DoIntegrityCheck( int rc; int bOk = 0; rc = fts3IntegrityCheck(p, &bOk); - if( rc==SQLITE_OK && bOk==0 ) rc = SQLITE_CORRUPT_VTAB; + if( rc==SQLITE_OK && bOk==0 ) rc = FTS_CORRUPT_VTAB; return rc; } @@ -148619,6 +148651,7 @@ SQLITE_PRIVATE int sqlite3Fts3Optimize(Fts3Table *p){ #define FTS3_MATCHINFO_LENGTH 'l' /* nCol values */ #define FTS3_MATCHINFO_LCS 's' /* nCol values */ #define FTS3_MATCHINFO_HITS 'x' /* 3*nCol*nPhrase values */ +#define FTS3_MATCHINFO_LHITS 'y' /* nCol*nPhrase values */ /* ** The default value for the second argument to matchinfo(). @@ -149401,6 +149434,51 @@ static int fts3ExprLocalHitsCb( return rc; } +/* +** fts3ExprIterate() callback used to gather information for the matchinfo +** directive 'y'. +*/ +static int fts3ExprLHitsCb( + Fts3Expr *pExpr, /* Phrase expression node */ + int iPhrase, /* Phrase number */ + void *pCtx /* Pointer to MatchInfo structure */ +){ + MatchInfo *p = (MatchInfo *)pCtx; + Fts3Table *pTab = (Fts3Table *)p->pCursor->base.pVtab; + int rc = SQLITE_OK; + int iStart = iPhrase * p->nCol; + Fts3Expr *pEof; /* Ancestor node already at EOF */ + + /* This must be a phrase */ + assert( pExpr->pPhrase ); + + /* Initialize all output integers to zero. */ + memset(&p->aMatchinfo[iStart], 0, sizeof(u32) * p->nCol); + + /* Check if this or any parent node is at EOF. If so, then all output + ** values are zero. */ + for(pEof=pExpr; pEof && pEof->bEof==0; pEof=pEof->pParent); + + if( pEof==0 && pExpr->iDocid==p->pCursor->iPrevId ){ + Fts3Phrase *pPhrase = pExpr->pPhrase; + char *pIter = pPhrase->doclist.pList; + int iCol = 0; + + while( 1 ){ + int nHit = fts3ColumnlistCount(&pIter); + if( (pPhrase->iColumn>=pTab->nColumn || pPhrase->iColumn==iCol) ){ + p->aMatchinfo[iStart + iCol] = (u32)nHit; + } + assert( *pIter==0x00 || *pIter==0x01 ); + if( *pIter!=0x01 ) break; + pIter++; + pIter += fts3GetVarint32(pIter, &iCol); + } + } + + return rc; +} + static int fts3MatchinfoCheck( Fts3Table *pTab, char cArg, @@ -149413,10 +149491,11 @@ static int fts3MatchinfoCheck( || (cArg==FTS3_MATCHINFO_LENGTH && pTab->bHasDocsize) || (cArg==FTS3_MATCHINFO_LCS) || (cArg==FTS3_MATCHINFO_HITS) + || (cArg==FTS3_MATCHINFO_LHITS) ){ return SQLITE_OK; } - *pzErr = sqlite3_mprintf("unrecognized matchinfo request: %c", cArg); + sqlite3Fts3ErrMsg(pzErr, "unrecognized matchinfo request: %c", cArg); return SQLITE_ERROR; } @@ -149436,6 +149515,10 @@ static int fts3MatchinfoSize(MatchInfo *pInfo, char cArg){ nVal = pInfo->nCol; break; + case FTS3_MATCHINFO_LHITS: + nVal = pInfo->nCol * pInfo->nPhrase; + break; + default: assert( cArg==FTS3_MATCHINFO_HITS ); nVal = pInfo->nCol * pInfo->nPhrase * 3; @@ -149690,6 +149773,10 @@ static int fts3MatchinfoValues( } break; + case FTS3_MATCHINFO_LHITS: + (void)fts3ExprIterate(pCsr->pExpr, fts3ExprLHitsCb, (void*)pInfo); + break; + default: { Fts3Expr *pExpr; assert( zArg[i]==FTS3_MATCHINFO_HITS ); @@ -153702,11 +153789,19 @@ static int rtreeUpdate( if( nData>1 ){ int ii; - /* Populate the cell.aCoord[] array. The first coordinate is azData[3]. */ - assert( nData==(pRtree->nDim*2 + 3) ); + /* Populate the cell.aCoord[] array. The first coordinate is azData[3]. + ** + ** NB: nData can only be less than nDim*2+3 if the rtree is mis-declared + ** with "column" that are interpreted as table constraints. + ** Example: CREATE VIRTUAL TABLE bad USING rtree(x,y,CHECK(y>5)); + ** This problem was discovered after years of use, so we silently ignore + ** these kinds of misdeclared tables to avoid breaking any legacy. + */ + assert( nData<=(pRtree->nDim*2 + 3) ); + #ifndef SQLITE_RTREE_INT_ONLY if( pRtree->eCoordType==RTREE_COORD_REAL32 ){ - for(ii=0; ii<(pRtree->nDim*2); ii+=2){ + for(ii=0; iicell.aCoord[ii+1].f ){ @@ -153717,7 +153812,7 @@ static int rtreeUpdate( }else #endif { - for(ii=0; ii<(pRtree->nDim*2); ii+=2){ + for(ii=0; iicell.aCoord[ii+1].i ){ @@ -155117,3 +155212,654 @@ SQLITE_PRIVATE void sqlite3Fts3IcuTokenizerModule( #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ /************** End of fts3_icu.c ********************************************/ +/************** Begin file dbstat.c ******************************************/ +/* +** 2010 July 12 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This file contains an implementation of the "dbstat" virtual table. +** +** The dbstat virtual table is used to extract low-level formatting +** information from an SQLite database in order to implement the +** "sqlite3_analyzer" utility. See the ../tool/spaceanal.tcl script +** for an example implementation. +*/ + +#if (defined(SQLITE_ENABLE_DBSTAT_VTAB) || defined(SQLITE_TEST)) \ + && !defined(SQLITE_OMIT_VIRTUALTABLE) + +/* +** Page paths: +** +** The value of the 'path' column describes the path taken from the +** root-node of the b-tree structure to each page. The value of the +** root-node path is '/'. +** +** The value of the path for the left-most child page of the root of +** a b-tree is '/000/'. (Btrees store content ordered from left to right +** so the pages to the left have smaller keys than the pages to the right.) +** The next to left-most child of the root page is +** '/001', and so on, each sibling page identified by a 3-digit hex +** value. The children of the 451st left-most sibling have paths such +** as '/1c2/000/, '/1c2/001/' etc. +** +** Overflow pages are specified by appending a '+' character and a +** six-digit hexadecimal value to the path to the cell they are linked +** from. For example, the three overflow pages in a chain linked from +** the left-most cell of the 450th child of the root page are identified +** by the paths: +** +** '/1c2/000+000000' // First page in overflow chain +** '/1c2/000+000001' // Second page in overflow chain +** '/1c2/000+000002' // Third page in overflow chain +** +** If the paths are sorted using the BINARY collation sequence, then +** the overflow pages associated with a cell will appear earlier in the +** sort-order than its child page: +** +** '/1c2/000/' // Left-most child of 451st child of root +*/ +#define VTAB_SCHEMA \ + "CREATE TABLE xx( " \ + " name STRING, /* Name of table or index */" \ + " path INTEGER, /* Path to page from root */" \ + " pageno INTEGER, /* Page number */" \ + " pagetype STRING, /* 'internal', 'leaf' or 'overflow' */" \ + " ncell INTEGER, /* Cells on page (0 for overflow) */" \ + " payload INTEGER, /* Bytes of payload on this page */" \ + " unused INTEGER, /* Bytes of unused space on this page */" \ + " mx_payload INTEGER, /* Largest payload size of all cells */" \ + " pgoffset INTEGER, /* Offset of page in file */" \ + " pgsize INTEGER /* Size of the page */" \ + ");" + + +typedef struct StatTable StatTable; +typedef struct StatCursor StatCursor; +typedef struct StatPage StatPage; +typedef struct StatCell StatCell; + +struct StatCell { + int nLocal; /* Bytes of local payload */ + u32 iChildPg; /* Child node (or 0 if this is a leaf) */ + int nOvfl; /* Entries in aOvfl[] */ + u32 *aOvfl; /* Array of overflow page numbers */ + int nLastOvfl; /* Bytes of payload on final overflow page */ + int iOvfl; /* Iterates through aOvfl[] */ +}; + +struct StatPage { + u32 iPgno; + DbPage *pPg; + int iCell; + + char *zPath; /* Path to this page */ + + /* Variables populated by statDecodePage(): */ + u8 flags; /* Copy of flags byte */ + int nCell; /* Number of cells on page */ + int nUnused; /* Number of unused bytes on page */ + StatCell *aCell; /* Array of parsed cells */ + u32 iRightChildPg; /* Right-child page number (or 0) */ + int nMxPayload; /* Largest payload of any cell on this page */ +}; + +struct StatCursor { + sqlite3_vtab_cursor base; + sqlite3_stmt *pStmt; /* Iterates through set of root pages */ + int isEof; /* After pStmt has returned SQLITE_DONE */ + + StatPage aPage[32]; + int iPage; /* Current entry in aPage[] */ + + /* Values to return. */ + char *zName; /* Value of 'name' column */ + char *zPath; /* Value of 'path' column */ + u32 iPageno; /* Value of 'pageno' column */ + char *zPagetype; /* Value of 'pagetype' column */ + int nCell; /* Value of 'ncell' column */ + int nPayload; /* Value of 'payload' column */ + int nUnused; /* Value of 'unused' column */ + int nMxPayload; /* Value of 'mx_payload' column */ + i64 iOffset; /* Value of 'pgOffset' column */ + int szPage; /* Value of 'pgSize' column */ +}; + +struct StatTable { + sqlite3_vtab base; + sqlite3 *db; + int iDb; /* Index of database to analyze */ +}; + +#ifndef get2byte +# define get2byte(x) ((x)[0]<<8 | (x)[1]) +#endif + +/* +** Connect to or create a statvfs virtual table. +*/ +static int statConnect( + sqlite3 *db, + void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVtab, + char **pzErr +){ + StatTable *pTab = 0; + int rc = SQLITE_OK; + int iDb; + + if( argc>=4 ){ + iDb = sqlite3FindDbName(db, argv[3]); + if( iDb<0 ){ + *pzErr = sqlite3_mprintf("no such database: %s", argv[3]); + return SQLITE_ERROR; + } + }else{ + iDb = 0; + } + rc = sqlite3_declare_vtab(db, VTAB_SCHEMA); + if( rc==SQLITE_OK ){ + pTab = (StatTable *)sqlite3_malloc64(sizeof(StatTable)); + if( pTab==0 ) rc = SQLITE_NOMEM; + } + + assert( rc==SQLITE_OK || pTab==0 ); + if( rc==SQLITE_OK ){ + memset(pTab, 0, sizeof(StatTable)); + pTab->db = db; + pTab->iDb = iDb; + } + + *ppVtab = (sqlite3_vtab*)pTab; + return rc; +} + +/* +** Disconnect from or destroy a statvfs virtual table. +*/ +static int statDisconnect(sqlite3_vtab *pVtab){ + sqlite3_free(pVtab); + return SQLITE_OK; +} + +/* +** There is no "best-index". This virtual table always does a linear +** scan of the binary VFS log file. +*/ +static int statBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ + + /* Records are always returned in ascending order of (name, path). + ** If this will satisfy the client, set the orderByConsumed flag so that + ** SQLite does not do an external sort. + */ + if( ( pIdxInfo->nOrderBy==1 + && pIdxInfo->aOrderBy[0].iColumn==0 + && pIdxInfo->aOrderBy[0].desc==0 + ) || + ( pIdxInfo->nOrderBy==2 + && pIdxInfo->aOrderBy[0].iColumn==0 + && pIdxInfo->aOrderBy[0].desc==0 + && pIdxInfo->aOrderBy[1].iColumn==1 + && pIdxInfo->aOrderBy[1].desc==0 + ) + ){ + pIdxInfo->orderByConsumed = 1; + } + + pIdxInfo->estimatedCost = 10.0; + return SQLITE_OK; +} + +/* +** Open a new statvfs cursor. +*/ +static int statOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor){ + StatTable *pTab = (StatTable *)pVTab; + StatCursor *pCsr; + int rc; + + pCsr = (StatCursor *)sqlite3_malloc64(sizeof(StatCursor)); + if( pCsr==0 ){ + rc = SQLITE_NOMEM; + }else{ + char *zSql; + memset(pCsr, 0, sizeof(StatCursor)); + pCsr->base.pVtab = pVTab; + + zSql = sqlite3_mprintf( + "SELECT 'sqlite_master' AS name, 1 AS rootpage, 'table' AS type" + " UNION ALL " + "SELECT name, rootpage, type" + " FROM \"%w\".sqlite_master WHERE rootpage!=0" + " ORDER BY name", pTab->db->aDb[pTab->iDb].zName); + if( zSql==0 ){ + rc = SQLITE_NOMEM; + }else{ + rc = sqlite3_prepare_v2(pTab->db, zSql, -1, &pCsr->pStmt, 0); + sqlite3_free(zSql); + } + if( rc!=SQLITE_OK ){ + sqlite3_free(pCsr); + pCsr = 0; + } + } + + *ppCursor = (sqlite3_vtab_cursor *)pCsr; + return rc; +} + +static void statClearPage(StatPage *p){ + int i; + if( p->aCell ){ + for(i=0; inCell; i++){ + sqlite3_free(p->aCell[i].aOvfl); + } + sqlite3_free(p->aCell); + } + sqlite3PagerUnref(p->pPg); + sqlite3_free(p->zPath); + memset(p, 0, sizeof(StatPage)); +} + +static void statResetCsr(StatCursor *pCsr){ + int i; + sqlite3_reset(pCsr->pStmt); + for(i=0; iaPage); i++){ + statClearPage(&pCsr->aPage[i]); + } + pCsr->iPage = 0; + sqlite3_free(pCsr->zPath); + pCsr->zPath = 0; +} + +/* +** Close a statvfs cursor. +*/ +static int statClose(sqlite3_vtab_cursor *pCursor){ + StatCursor *pCsr = (StatCursor *)pCursor; + statResetCsr(pCsr); + sqlite3_finalize(pCsr->pStmt); + sqlite3_free(pCsr); + return SQLITE_OK; +} + +static void getLocalPayload( + int nUsable, /* Usable bytes per page */ + u8 flags, /* Page flags */ + int nTotal, /* Total record (payload) size */ + int *pnLocal /* OUT: Bytes stored locally */ +){ + int nLocal; + int nMinLocal; + int nMaxLocal; + + if( flags==0x0D ){ /* Table leaf node */ + nMinLocal = (nUsable - 12) * 32 / 255 - 23; + nMaxLocal = nUsable - 35; + }else{ /* Index interior and leaf nodes */ + nMinLocal = (nUsable - 12) * 32 / 255 - 23; + nMaxLocal = (nUsable - 12) * 64 / 255 - 23; + } + + nLocal = nMinLocal + (nTotal - nMinLocal) % (nUsable - 4); + if( nLocal>nMaxLocal ) nLocal = nMinLocal; + *pnLocal = nLocal; +} + +static int statDecodePage(Btree *pBt, StatPage *p){ + int nUnused; + int iOff; + int nHdr; + int isLeaf; + int szPage; + + u8 *aData = sqlite3PagerGetData(p->pPg); + u8 *aHdr = &aData[p->iPgno==1 ? 100 : 0]; + + p->flags = aHdr[0]; + p->nCell = get2byte(&aHdr[3]); + p->nMxPayload = 0; + + isLeaf = (p->flags==0x0A || p->flags==0x0D); + nHdr = 12 - isLeaf*4 + (p->iPgno==1)*100; + + nUnused = get2byte(&aHdr[5]) - nHdr - 2*p->nCell; + nUnused += (int)aHdr[7]; + iOff = get2byte(&aHdr[1]); + while( iOff ){ + nUnused += get2byte(&aData[iOff+2]); + iOff = get2byte(&aData[iOff]); + } + p->nUnused = nUnused; + p->iRightChildPg = isLeaf ? 0 : sqlite3Get4byte(&aHdr[8]); + szPage = sqlite3BtreeGetPageSize(pBt); + + if( p->nCell ){ + int i; /* Used to iterate through cells */ + int nUsable; /* Usable bytes per page */ + + sqlite3BtreeEnter(pBt); + nUsable = szPage - sqlite3BtreeGetReserveNoMutex(pBt); + sqlite3BtreeLeave(pBt); + p->aCell = sqlite3_malloc64((p->nCell+1) * sizeof(StatCell)); + if( p->aCell==0 ) return SQLITE_NOMEM; + memset(p->aCell, 0, (p->nCell+1) * sizeof(StatCell)); + + for(i=0; inCell; i++){ + StatCell *pCell = &p->aCell[i]; + + iOff = get2byte(&aData[nHdr+i*2]); + if( !isLeaf ){ + pCell->iChildPg = sqlite3Get4byte(&aData[iOff]); + iOff += 4; + } + if( p->flags==0x05 ){ + /* A table interior node. nPayload==0. */ + }else{ + u32 nPayload; /* Bytes of payload total (local+overflow) */ + int nLocal; /* Bytes of payload stored locally */ + iOff += getVarint32(&aData[iOff], nPayload); + if( p->flags==0x0D ){ + u64 dummy; + iOff += sqlite3GetVarint(&aData[iOff], &dummy); + } + if( nPayload>(u32)p->nMxPayload ) p->nMxPayload = nPayload; + getLocalPayload(nUsable, p->flags, nPayload, &nLocal); + pCell->nLocal = nLocal; + assert( nLocal>=0 ); + assert( nPayload>=(u32)nLocal ); + assert( nLocal<=(nUsable-35) ); + if( nPayload>(u32)nLocal ){ + int j; + int nOvfl = ((nPayload - nLocal) + nUsable-4 - 1) / (nUsable - 4); + pCell->nLastOvfl = (nPayload-nLocal) - (nOvfl-1) * (nUsable-4); + pCell->nOvfl = nOvfl; + pCell->aOvfl = sqlite3_malloc64(sizeof(u32)*nOvfl); + if( pCell->aOvfl==0 ) return SQLITE_NOMEM; + pCell->aOvfl[0] = sqlite3Get4byte(&aData[iOff+nLocal]); + for(j=1; jaOvfl[j-1]; + DbPage *pPg = 0; + rc = sqlite3PagerGet(sqlite3BtreePager(pBt), iPrev, &pPg); + if( rc!=SQLITE_OK ){ + assert( pPg==0 ); + return rc; + } + pCell->aOvfl[j] = sqlite3Get4byte(sqlite3PagerGetData(pPg)); + sqlite3PagerUnref(pPg); + } + } + } + } + } + + return SQLITE_OK; +} + +/* +** Populate the pCsr->iOffset and pCsr->szPage member variables. Based on +** the current value of pCsr->iPageno. +*/ +static void statSizeAndOffset(StatCursor *pCsr){ + StatTable *pTab = (StatTable *)((sqlite3_vtab_cursor *)pCsr)->pVtab; + Btree *pBt = pTab->db->aDb[pTab->iDb].pBt; + Pager *pPager = sqlite3BtreePager(pBt); + sqlite3_file *fd; + sqlite3_int64 x[2]; + + /* The default page size and offset */ + pCsr->szPage = sqlite3BtreeGetPageSize(pBt); + pCsr->iOffset = (i64)pCsr->szPage * (pCsr->iPageno - 1); + + /* If connected to a ZIPVFS backend, override the page size and + ** offset with actual values obtained from ZIPVFS. + */ + fd = sqlite3PagerFile(pPager); + x[0] = pCsr->iPageno; + if( fd->pMethods!=0 && sqlite3OsFileControl(fd, 230440, &x)==SQLITE_OK ){ + pCsr->iOffset = x[0]; + pCsr->szPage = (int)x[1]; + } +} + +/* +** Move a statvfs cursor to the next entry in the file. +*/ +static int statNext(sqlite3_vtab_cursor *pCursor){ + int rc; + int nPayload; + char *z; + StatCursor *pCsr = (StatCursor *)pCursor; + StatTable *pTab = (StatTable *)pCursor->pVtab; + Btree *pBt = pTab->db->aDb[pTab->iDb].pBt; + Pager *pPager = sqlite3BtreePager(pBt); + + sqlite3_free(pCsr->zPath); + pCsr->zPath = 0; + +statNextRestart: + if( pCsr->aPage[0].pPg==0 ){ + rc = sqlite3_step(pCsr->pStmt); + if( rc==SQLITE_ROW ){ + int nPage; + u32 iRoot = (u32)sqlite3_column_int64(pCsr->pStmt, 1); + sqlite3PagerPagecount(pPager, &nPage); + if( nPage==0 ){ + pCsr->isEof = 1; + return sqlite3_reset(pCsr->pStmt); + } + rc = sqlite3PagerGet(pPager, iRoot, &pCsr->aPage[0].pPg); + pCsr->aPage[0].iPgno = iRoot; + pCsr->aPage[0].iCell = 0; + pCsr->aPage[0].zPath = z = sqlite3_mprintf("/"); + pCsr->iPage = 0; + if( z==0 ) rc = SQLITE_NOMEM; + }else{ + pCsr->isEof = 1; + return sqlite3_reset(pCsr->pStmt); + } + }else{ + + /* Page p itself has already been visited. */ + StatPage *p = &pCsr->aPage[pCsr->iPage]; + + while( p->iCellnCell ){ + StatCell *pCell = &p->aCell[p->iCell]; + if( pCell->iOvflnOvfl ){ + int nUsable; + sqlite3BtreeEnter(pBt); + nUsable = sqlite3BtreeGetPageSize(pBt) - + sqlite3BtreeGetReserveNoMutex(pBt); + sqlite3BtreeLeave(pBt); + pCsr->zName = (char *)sqlite3_column_text(pCsr->pStmt, 0); + pCsr->iPageno = pCell->aOvfl[pCell->iOvfl]; + pCsr->zPagetype = "overflow"; + pCsr->nCell = 0; + pCsr->nMxPayload = 0; + pCsr->zPath = z = sqlite3_mprintf( + "%s%.3x+%.6x", p->zPath, p->iCell, pCell->iOvfl + ); + if( pCell->iOvflnOvfl-1 ){ + pCsr->nUnused = 0; + pCsr->nPayload = nUsable - 4; + }else{ + pCsr->nPayload = pCell->nLastOvfl; + pCsr->nUnused = nUsable - 4 - pCsr->nPayload; + } + pCell->iOvfl++; + statSizeAndOffset(pCsr); + return z==0 ? SQLITE_NOMEM : SQLITE_OK; + } + if( p->iRightChildPg ) break; + p->iCell++; + } + + if( !p->iRightChildPg || p->iCell>p->nCell ){ + statClearPage(p); + if( pCsr->iPage==0 ) return statNext(pCursor); + pCsr->iPage--; + goto statNextRestart; /* Tail recursion */ + } + pCsr->iPage++; + assert( p==&pCsr->aPage[pCsr->iPage-1] ); + + if( p->iCell==p->nCell ){ + p[1].iPgno = p->iRightChildPg; + }else{ + p[1].iPgno = p->aCell[p->iCell].iChildPg; + } + rc = sqlite3PagerGet(pPager, p[1].iPgno, &p[1].pPg); + p[1].iCell = 0; + p[1].zPath = z = sqlite3_mprintf("%s%.3x/", p->zPath, p->iCell); + p->iCell++; + if( z==0 ) rc = SQLITE_NOMEM; + } + + + /* Populate the StatCursor fields with the values to be returned + ** by the xColumn() and xRowid() methods. + */ + if( rc==SQLITE_OK ){ + int i; + StatPage *p = &pCsr->aPage[pCsr->iPage]; + pCsr->zName = (char *)sqlite3_column_text(pCsr->pStmt, 0); + pCsr->iPageno = p->iPgno; + + rc = statDecodePage(pBt, p); + if( rc==SQLITE_OK ){ + statSizeAndOffset(pCsr); + + switch( p->flags ){ + case 0x05: /* table internal */ + case 0x02: /* index internal */ + pCsr->zPagetype = "internal"; + break; + case 0x0D: /* table leaf */ + case 0x0A: /* index leaf */ + pCsr->zPagetype = "leaf"; + break; + default: + pCsr->zPagetype = "corrupted"; + break; + } + pCsr->nCell = p->nCell; + pCsr->nUnused = p->nUnused; + pCsr->nMxPayload = p->nMxPayload; + pCsr->zPath = z = sqlite3_mprintf("%s", p->zPath); + if( z==0 ) rc = SQLITE_NOMEM; + nPayload = 0; + for(i=0; inCell; i++){ + nPayload += p->aCell[i].nLocal; + } + pCsr->nPayload = nPayload; + } + } + + return rc; +} + +static int statEof(sqlite3_vtab_cursor *pCursor){ + StatCursor *pCsr = (StatCursor *)pCursor; + return pCsr->isEof; +} + +static int statFilter( + sqlite3_vtab_cursor *pCursor, + int idxNum, const char *idxStr, + int argc, sqlite3_value **argv +){ + StatCursor *pCsr = (StatCursor *)pCursor; + + statResetCsr(pCsr); + return statNext(pCursor); +} + +static int statColumn( + sqlite3_vtab_cursor *pCursor, + sqlite3_context *ctx, + int i +){ + StatCursor *pCsr = (StatCursor *)pCursor; + switch( i ){ + case 0: /* name */ + sqlite3_result_text(ctx, pCsr->zName, -1, SQLITE_TRANSIENT); + break; + case 1: /* path */ + sqlite3_result_text(ctx, pCsr->zPath, -1, SQLITE_TRANSIENT); + break; + case 2: /* pageno */ + sqlite3_result_int64(ctx, pCsr->iPageno); + break; + case 3: /* pagetype */ + sqlite3_result_text(ctx, pCsr->zPagetype, -1, SQLITE_STATIC); + break; + case 4: /* ncell */ + sqlite3_result_int(ctx, pCsr->nCell); + break; + case 5: /* payload */ + sqlite3_result_int(ctx, pCsr->nPayload); + break; + case 6: /* unused */ + sqlite3_result_int(ctx, pCsr->nUnused); + break; + case 7: /* mx_payload */ + sqlite3_result_int(ctx, pCsr->nMxPayload); + break; + case 8: /* pgoffset */ + sqlite3_result_int64(ctx, pCsr->iOffset); + break; + default: /* pgsize */ + assert( i==9 ); + sqlite3_result_int(ctx, pCsr->szPage); + break; + } + return SQLITE_OK; +} + +static int statRowid(sqlite3_vtab_cursor *pCursor, sqlite_int64 *pRowid){ + StatCursor *pCsr = (StatCursor *)pCursor; + *pRowid = pCsr->iPageno; + return SQLITE_OK; +} + +/* +** Invoke this routine to register the "dbstat" virtual table module +*/ +SQLITE_API int SQLITE_STDCALL sqlite3_dbstat_register(sqlite3 *db){ + static sqlite3_module dbstat_module = { + 0, /* iVersion */ + statConnect, /* xCreate */ + statConnect, /* xConnect */ + statBestIndex, /* xBestIndex */ + statDisconnect, /* xDisconnect */ + statDisconnect, /* xDestroy */ + statOpen, /* xOpen - open a cursor */ + statClose, /* xClose - close a cursor */ + statFilter, /* xFilter - configure scan constraints */ + statNext, /* xNext - advance a cursor */ + statEof, /* xEof - check for end of scan */ + statColumn, /* xColumn - read data */ + statRowid, /* xRowid - read data */ + 0, /* xUpdate */ + 0, /* xBegin */ + 0, /* xSync */ + 0, /* xCommit */ + 0, /* xRollback */ + 0, /* xFindMethod */ + 0, /* xRename */ + }; + return sqlite3_create_module(db, "dbstat", &dbstat_module, 0); +} +#endif /* SQLITE_ENABLE_DBSTAT_VTAB */ + +/************** End of dbstat.c **********************************************/ diff --git a/BlitzUtility/Database/SQLite/sqlite3.h b/BlitzUtility/Database/SQLite/sqlite3.h index eabf262..035b948 100644 --- a/BlitzUtility/Database/SQLite/sqlite3.h +++ b/BlitzUtility/Database/SQLite/sqlite3.h @@ -46,16 +46,16 @@ extern "C" { ** Provide the ability to override linkage features of the interface. */ #ifndef SQLITE_EXTERN -# define SQLITE_EXTERN extern +# define SQLITE_EXTERN extern "C" __declspec(dllexport) #endif #ifndef SQLITE_API -# define SQLITE_API __declspec(dllexport) +# define SQLITE_API #endif #ifndef SQLITE_CDECL -# define SQLITE_CDECL __cdecl +# define SQLITE_CDECL #endif #ifndef SQLITE_STDCALL -# define SQLITE_STDCALL SQLITE_CDECL +# define SQLITE_STDCALL #endif /* @@ -111,9 +111,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.8.10" +#define SQLITE_VERSION "3.8.10.1" #define SQLITE_VERSION_NUMBER 3008010 -#define SQLITE_SOURCE_ID "2015-04-19 23:11:10 c83052e48bbae0f45db2a44155b4e5482ee4a901" +#define SQLITE_SOURCE_ID "2015-05-09 12:14:55 05b4b1f2a937c06c90db70c09890038f6c98ec40" /* ** CAPI3REF: Run-Time Library Version Numbers diff --git a/BlitzUtility/Math/Vector3.cpp b/BlitzUtility/Math/Vector3.cpp index 477780c..42772a4 100644 --- a/BlitzUtility/Math/Vector3.cpp +++ b/BlitzUtility/Math/Vector3.cpp @@ -172,30 +172,30 @@ void Vector3::rotateAround(Vector3 &o, float &pitch, float &yaw, float &roll) this->add(o); } float Vector3::deltaPitch() { - return (float)atan(this->X / -this->Y) * (180.0 / M_PI); + return (float)(atan(this->X / -this->Y) * (180.0 / M_PI)); } float Vector3::deltaPitch(const float &x, const float &y, const float &z) { - return (float)atan((this->X - x) / (-(this->Y - y))) * (180.0 / M_PI); + return (float)(atan((this->X - x) / (-(this->Y - y))) * (180.0 / M_PI)); } float Vector3::deltaPitch(Vector3 &o) { - return (float)atan((this->X - o.X) / (-(this->Y - o.Y))) * (180.0 / M_PI); + return (float)(atan((this->X - o.X) / (-(this->Y - o.Y))) * (180.0 / M_PI)); } float Vector3::deltaYaw() { - return (float)atan(sqrt((this->X * this->X) + (this->Y * this->Y)) / this->Z) * (180.0 / M_PI); + return (float)(atan(sqrt((this->X * this->X) + (this->Y * this->Y)) / this->Z) * (180.0 / M_PI)); } float Vector3::deltaYaw(const float &x, const float &y, const float &z) { float X = (this->X - x); float Y = (this->Y - y); - return (float)atan(sqrt((X * X) + (Y * Y)) / (this->Z - z)) * (180.0 / M_PI); + return (float)(atan(sqrt((X * X) + (Y * Y)) / (this->Z - z)) * (180.0 / M_PI)); } float Vector3::deltaYaw(Vector3 &o) { float X = (this->X - o.X); float Y = (this->Y - o.Y); - return (float)atan(sqrt((X * X) + (Y * Y)) / (this->Z - o.Z)) * (180.0 / M_PI); + return (float)(atan(sqrt((X * X) + (Y * Y)) / (this->Z - o.Z)) * (180.0 / M_PI)); } char* Vector3::serialize() diff --git a/BlitzUtility/dllmain.cpp b/BlitzUtility/dllmain.cpp index f311c90..95ec954 100644 --- a/BlitzUtility/dllmain.cpp +++ b/BlitzUtility/dllmain.cpp @@ -3,7 +3,7 @@ #include #include "Containers\BlitzList.h" -//#include "Database\SQLite\SQLite.h" +#include "Database\SQLite\SQLite.h" #include "Math\Vector2.h" #include "Math\Vector3.h" #include "Math\Matrix3.h" @@ -20,7 +20,7 @@ bool WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { // Math // Database - //SQLite3_OnProcessAttach(); + SQLite3_OnProcessAttach(); // Utility Display_OnProcessAttach(); @@ -34,7 +34,7 @@ bool WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { // Math // Database - //SQLite3_OnProcessDetach(); + SQLite3_OnProcessDetach(); // Utility Display_OnProcessDetach();