Advertisement
Guest User

binkw32.dll

a guest
May 26th, 2014
515
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.92 KB | None | 0 0
  1. // dllmain.cpp : Definiert den Einstiegspunkt für die DLL-Anwendung.
  2. #include "stdafx.h"
  3. #include <windows.h>
  4. #include <stdio.h>
  5. #pragma pack(1)
  6. #pragma comment(lib, "detours.lib")
  7. #include "detours.h"
  8.  
  9.  
  10. HINSTANCE t_hInst;
  11. HINSTANCE hLThis = 0;
  12. HINSTANCE hL = 0;
  13. FARPROC p[72] = {0};
  14. BYTE pattern [] = { 0x8B, 0x11, 0x8B, 0x42, 0x0C,
  15. 0x57, 0x56, 0xFF, 0xD0,
  16. 0x8B, 0xC3, // <-- move eax,ebx; offset 0x9; will be replaced with 0xB0 0x01 to get mov al,1;
  17. 0x8B, 0x4D, 0xF4, 0x64,
  18. 0x89, 0x0D, 0x00, 0x00, 0x00,
  19. 0x00, 0x59, 0x5F, 0x5E, 0x5B,
  20. 0x8B, 0xE5, 0x5D, 0xC2, 0x08,
  21. 0x00, 0xCC, 0xCC, 0xCC, 0x8B,
  22. 0x41, 0x04, 0x56, 0x85, 0xC0 };
  23. BYTE pattern2 [] = {
  24. 0x8B, 0x45, 0x0C, // mov eax, [ebp+arg_4]
  25. 0xC7, 0x00, 0x01, 0x00, 0x00, 0x00, // mov dword ptr [eax], 1
  26. 0x5D, // pop ebp
  27. 0xC2, 0x08, 0x00, // retn 8
  28. 0x8B, 0x4D, 0x0C, // mov ecx, [ebp+arg_4]
  29. 0xC7, 0x01, 0x01, 0x00, 0x00, 0x00, // mov dword ptr [ecx], 1
  30. 0x5D, // pop ebp
  31. 0xC2, 0x08, 0x00, // retn 8
  32. 0xCC, 0xCC, 0xCC, 0xCC, 0xCC
  33. };
  34.  
  35. BYTE pattern3[] = {0x51, 0x80, 0x7C, 0x24, 0x10, 0x01, 0x53, 0x55, 0x56, 0x8B, 0x74, 0x24, 0x18, 0x57, 0xC7, 0x44};
  36.  
  37.  
  38. signed int __cdecl CertCheck(int a1, int a2, char a3)
  39. {
  40. return 0;
  41. }
  42.  
  43. int ADDRESS;
  44. typedef signed int (__cdecl * FUNC_F4E4)(int a1, int a2, char a3);
  45. FUNC_F4E4 osub_F4E470 = NULL;
  46.  
  47. bool DataCompare(const BYTE* OpCodes, const BYTE* Mask, const char* StrMask)
  48. {
  49. while (*StrMask)
  50. {
  51. if(*StrMask == 'x' && *OpCodes != *Mask )
  52. return false;
  53. ++StrMask;
  54. ++OpCodes;
  55. ++Mask;
  56. }
  57. return true;
  58. }
  59.  
  60. DWORD FindPattern(DWORD StartAddress, DWORD CodeLen, BYTE* Mask, char* StrMask, unsigned short ignore)
  61. {
  62. unsigned short Ign = 0;
  63. DWORD i = 0;
  64. while (Ign <= ignore)
  65. {
  66. if(DataCompare((BYTE*)(StartAddress + i++), Mask,StrMask))
  67. ++Ign;
  68. else if (i>=CodeLen)
  69. return 0;
  70. }
  71. return StartAddress + i - 1;
  72. }
  73.  
  74. void GetAdresses()
  75. {
  76. hLThis = t_hInst;
  77. hL = LoadLibrary(L"binkw23.dll");
  78. p[0] = GetProcAddress(hL,"_BinkBufferBlit@12");
  79. p[1] = GetProcAddress(hL,"_BinkBufferCheckWinPos@12");
  80. p[2] = GetProcAddress(hL,"_BinkBufferClear@8");
  81. p[3] = GetProcAddress(hL,"_BinkBufferClose@4");
  82. p[4] = GetProcAddress(hL,"_BinkBufferGetDescription@4");
  83. p[5] = GetProcAddress(hL,"_BinkBufferGetError@0");
  84. p[6] = GetProcAddress(hL,"_BinkBufferLock@4");
  85. p[7] = GetProcAddress(hL,"_BinkBufferOpen@16");
  86. p[8] = GetProcAddress(hL,"_BinkBufferSetDirectDraw@8");
  87. p[9] = GetProcAddress(hL,"_BinkBufferSetHWND@8");
  88. p[10] = GetProcAddress(hL,"_BinkBufferSetOffset@12");
  89. p[11] = GetProcAddress(hL,"_BinkBufferSetResolution@12");
  90. p[12] = GetProcAddress(hL,"_BinkBufferSetScale@12");
  91. p[13] = GetProcAddress(hL,"_BinkBufferUnlock@4");
  92. p[14] = GetProcAddress(hL,"_BinkCheckCursor@20");
  93. p[15] = GetProcAddress(hL,"_BinkClose@4");
  94. p[16] = GetProcAddress(hL,"_BinkCloseTrack@4");
  95. p[17] = GetProcAddress(hL,"_BinkControlBackgroundIO@8");
  96. p[18] = GetProcAddress(hL,"_BinkControlPlatformFeatures@8");
  97. p[19] = GetProcAddress(hL,"_BinkCopyToBuffer@28");
  98. p[20] = GetProcAddress(hL,"_BinkCopyToBufferRect@44");
  99. p[21] = GetProcAddress(hL,"_BinkDDSurfaceType@4");
  100. p[22] = GetProcAddress(hL,"_BinkDX8SurfaceType@4");
  101. p[23] = GetProcAddress(hL,"_BinkDX9SurfaceType@4");
  102. p[24] = GetProcAddress(hL,"_BinkDoFrame@4");
  103. p[25] = GetProcAddress(hL,"_BinkDoFrameAsync@12");
  104. p[26] = GetProcAddress(hL,"_BinkDoFrameAsyncWait@8");
  105. p[27] = GetProcAddress(hL,"_BinkDoFramePlane@8");
  106. p[28] = GetProcAddress(hL,"_BinkGetError@0");
  107. p[29] = GetProcAddress(hL,"_BinkGetFrameBuffersInfo@8");
  108. p[30] = GetProcAddress(hL,"_BinkGetKeyFrame@12");
  109. p[31] = GetProcAddress(hL,"_BinkGetPalette@4");
  110. p[32] = GetProcAddress(hL,"_BinkGetRealtime@12");
  111. p[33] = GetProcAddress(hL,"_BinkGetRects@8");
  112. p[34] = GetProcAddress(hL,"_BinkGetSummary@8");
  113. p[35] = GetProcAddress(hL,"_BinkGetTrackData@8");
  114. p[36] = GetProcAddress(hL,"_BinkGetTrackID@8");
  115. p[37] = GetProcAddress(hL,"_BinkGetTrackMaxSize@8");
  116. p[38] = GetProcAddress(hL,"_BinkGetTrackType@8");
  117. p[39] = GetProcAddress(hL,"_BinkGoto@12");
  118. p[40] = GetProcAddress(hL,"_BinkIsSoftwareCursor@8");
  119. p[41] = GetProcAddress(hL,"_BinkLogoAddress@0");
  120. p[42] = GetProcAddress(hL,"_BinkNextFrame@4");
  121. p[43] = GetProcAddress(hL,"_BinkOpen@8");
  122. p[44] = GetProcAddress(hL,"_BinkOpenDirectSound@4");
  123. p[45] = GetProcAddress(hL,"_BinkOpenMiles@4");
  124. p[46] = GetProcAddress(hL,"_BinkOpenTrack@8");
  125. p[47] = GetProcAddress(hL,"_BinkOpenWaveOut@4");
  126. p[48] = GetProcAddress(hL,"_BinkPause@8");
  127. p[49] = GetProcAddress(hL,"_BinkRegisterFrameBuffers@8");
  128. p[50] = GetProcAddress(hL,"_BinkRequestStopAsyncThread@4");
  129. p[51] = GetProcAddress(hL,"_BinkRestoreCursor@4");
  130. p[52] = GetProcAddress(hL,"_BinkService@4");
  131. p[53] = GetProcAddress(hL,"_BinkSetError@4");
  132. p[54] = GetProcAddress(hL,"_BinkSetFrameRate@8");
  133. p[55] = GetProcAddress(hL,"_BinkSetIO@4");
  134. p[56] = GetProcAddress(hL,"_BinkSetIOSize@4");
  135. p[57] = GetProcAddress(hL,"_BinkSetMemory@8");
  136. p[58] = GetProcAddress(hL,"_BinkSetMixBinVolumes@20");
  137. p[59] = GetProcAddress(hL,"_BinkSetMixBins@16");
  138. p[60] = GetProcAddress(hL,"_BinkSetPan@12");
  139. p[61] = GetProcAddress(hL,"_BinkSetSimulate@4");
  140. p[62] = GetProcAddress(hL,"_BinkSetSoundOnOff@8");
  141. p[63] = GetProcAddress(hL,"_BinkSetSoundSystem@8");
  142. p[64] = GetProcAddress(hL,"_BinkSetSoundTrack@8");
  143. p[65] = GetProcAddress(hL,"_BinkSetVideoOnOff@8");
  144. p[66] = GetProcAddress(hL,"_BinkSetVolume@12");
  145. p[67] = GetProcAddress(hL,"_BinkShouldSkip@4");
  146. p[68] = GetProcAddress(hL,"_BinkStartAsyncThread@8");
  147. p[69] = GetProcAddress(hL,"_BinkWait@4");
  148. p[70] = GetProcAddress(hL,"_BinkWaitStopAsyncThread@4");
  149. p[71] = GetProcAddress(hL,"_RADTimerRead@0");
  150. }
  151.  
  152. static void FindAddress()
  153. {
  154. ADDRESS = 0;
  155. unsigned char * p = (unsigned char*)(0x401000);
  156. for(int i = 0; i < 0xE00000; i ++)
  157. {
  158. if(p[0] == pattern3[0] && p[1] == pattern3[1])
  159. {
  160. bool Found = true;
  161. for(int j = 0; j < 16; j++)
  162. if(p[j] != pattern3[j])
  163. Found = false;
  164. if(Found)
  165. {
  166. ADDRESS = (int)(p);
  167. break;
  168. }
  169. }
  170. p++;
  171. }
  172. }
  173.  
  174. DWORD WINAPI Start(LPVOID lpParam)
  175. {
  176. FILE* Log;
  177. fopen_s ( &Log, "binkw32log.txt", "w" );
  178. fprintf(Log, "Autopatcher by Warranty Voider\n");
  179. GetAdresses();
  180. fprintf(Log, "Got adresses\n");
  181. DWORD patch1, patch2;
  182. int count = 0;
  183. while((patch1 = FindPattern(0x401000, 0xE52000, pattern, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",0))==0 && count++ < 10)
  184. {
  185. fprintf(Log, "Trying again...\n");
  186. Sleep(300);
  187. }
  188. if(patch1 != 0)
  189. {
  190. fprintf(Log, "Patch position 1: 0x%x\n", patch1);
  191. DWORD dwProtect;
  192. VirtualProtect( (void*)(patch1 + 9), 0x2, PAGE_READWRITE, &dwProtect );
  193. BYTE* p = (BYTE *)(patch1 + 9);
  194. *p++ = 0xB0;
  195. *p = 0x01;
  196. VirtualProtect( (void*)(patch1 + 9), 0x2, dwProtect, &dwProtect );
  197. fprintf(Log, "Patch position 1: Patched\n");
  198. }
  199. count = 0;
  200. while((patch2 = FindPattern(0x401000, 0xE52000, pattern2, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",0))==0 && count++ < 10)
  201. {
  202. fprintf(Log, "Trying again...\n");
  203. Sleep(300);
  204. }
  205. if(patch2 != 0)
  206. {
  207. fprintf(Log, "Patch position 2: 0x%x\n", patch2);
  208. DWORD dwProtect;
  209. VirtualProtect( (void*)patch2, 0x16, PAGE_READWRITE, &dwProtect );
  210. BYTE* p = (BYTE *)(patch2 + 5);
  211. *p++ = 0;
  212. *p++ = 0;
  213. *p++ = 0;
  214. *p = 0;
  215. p = (BYTE *)(patch2 + 0x12);
  216. *p++ = 0;
  217. *p++ = 0;
  218. *p++ = 0;
  219. *p = 0;
  220. VirtualProtect( (void*)patch2, 0x16, dwProtect, &dwProtect );
  221. fprintf(Log, "Patch position 2: Patched\n");
  222. }
  223. FindAddress();
  224. if(ADDRESS)
  225. {
  226. fprintf(Log, "Patched Cert Check!\n");
  227. osub_F4E470 = (FUNC_F4E4)DetourFunction((PBYTE)ADDRESS, (PBYTE)CertCheck);
  228. }
  229. else
  230. fprintf(Log, "Patched Cert Check failed!\n");
  231. fclose ( Log );
  232. return 0;
  233. }
  234.  
  235. BOOL WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID)
  236. {
  237. if (reason == DLL_PROCESS_ATTACH)
  238. {
  239. t_hInst = hInst;
  240. DWORD dwThreadId, dwThrdParam = 1;
  241. HANDLE hThread;
  242. hThread = CreateThread(NULL,0, Start, &dwThrdParam, 0, &dwThreadId);
  243. }
  244. if (reason == DLL_PROCESS_DETACH)
  245. {
  246. FreeLibrary(hL);
  247. }
  248.  
  249. return 1;
  250. }
  251.  
  252. // _BinkBufferBlit@12
  253. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferBlit(int a1, int a2, int a3)
  254. {
  255. __asm
  256. {
  257. jmp p[0*4];
  258. }
  259. }
  260.  
  261. // _BinkBufferCheckWinPos@12
  262. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferCheckWinPos(int a1, int a2, int a3)
  263. {
  264. __asm
  265. {
  266. jmp p[1*4];
  267. }
  268. }
  269.  
  270. // _BinkBufferClear@8
  271. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferClear(int a1, int a2)
  272. {
  273. __asm
  274. {
  275. jmp p[2*4];
  276. }
  277. }
  278.  
  279. // _BinkBufferClose@4
  280. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferClose(int a1)
  281. {
  282. __asm
  283. {
  284. jmp p[3*4];
  285. }
  286. }
  287.  
  288. // _BinkBufferGetDescription@4
  289. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferGetDescription(int a1)
  290. {
  291. __asm
  292. {
  293. jmp p[4*4];
  294. }
  295. }
  296.  
  297. // _BinkBufferGetError@0
  298. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferGetError()
  299. {
  300. __asm
  301. {
  302. jmp p[5*4];
  303. }
  304. }
  305.  
  306. // _BinkBufferLock@4
  307. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferLock(int a1)
  308. {
  309. __asm
  310. {
  311. jmp p[6*4];
  312. }
  313. }
  314.  
  315. // _BinkBufferOpen@16
  316. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferOpen(int a1,int a2,int a3,int a4)
  317. {
  318. __asm
  319. {
  320. jmp p[7*4];
  321. }
  322. }
  323.  
  324. // _BinkBufferSetDirectDraw@8
  325. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferSetDirectDraw(int a1, int a2)
  326. {
  327. __asm
  328. {
  329. jmp p[8*4];
  330. }
  331. }
  332.  
  333. // _BinkBufferSetHWND@8
  334. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferSetHWND(int a1, int a2)
  335. {
  336. __asm
  337. {
  338. jmp p[9*4];
  339. }
  340. }
  341.  
  342. // _BinkBufferSetOffset@12
  343. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferSetOffset(int a1, int a2, int a3)
  344. {
  345. __asm
  346. {
  347. jmp p[10*4];
  348. }
  349. }
  350.  
  351. // _BinkBufferSetResolution@12
  352. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferSetResolution(int a1, int a2, int a3)
  353. {
  354. __asm
  355. {
  356. jmp p[11*4];
  357. }
  358. }
  359.  
  360. // _BinkBufferSetScale@12
  361. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferSetScale(int a1, int a2, int a3)
  362. {
  363. __asm
  364. {
  365. jmp p[12*4];
  366. }
  367. }
  368.  
  369. // _BinkBufferUnlock@4
  370. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkBufferUnlock(int a1)
  371. {
  372. __asm
  373. {
  374. jmp p[13*4];
  375. }
  376. }
  377.  
  378. // _BinkCheckCursor@20
  379. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkCheckCursor(int a1,int a2,int a3,int a4,int a5)
  380. {
  381. __asm
  382. {
  383. jmp p[14*4];
  384. }
  385. }
  386.  
  387. // _BinkClose@4
  388. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkClose(int a1)
  389. {
  390. __asm
  391. {
  392. jmp p[15*4];
  393. }
  394. }
  395.  
  396. // _BinkCloseTrack@4
  397. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkCloseTrack(int a1)
  398. {
  399. __asm
  400. {
  401. jmp p[16*4];
  402. }
  403. }
  404.  
  405. // _BinkControlBackgroundIO@8
  406. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkControlBackgroundIO(int a1, int a2)
  407. {
  408. __asm
  409. {
  410. jmp p[17*4];
  411. }
  412. }
  413.  
  414. // _BinkControlPlatformFeatures@8
  415. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkControlPlatformFeatures(int a1, int a2)
  416. {
  417. __asm
  418. {
  419. jmp p[18*4];
  420. }
  421. }
  422.  
  423. // _BinkCopyToBuffer@28
  424. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkCopyToBuffer(int a1,int a2,int a3,int a4,int a5,int a6,int a7)
  425. {
  426. __asm
  427. {
  428. jmp p[19*4];
  429. }
  430. }
  431.  
  432. // _BinkCopyToBufferRect@44
  433. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkCopyToBufferRect(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10,int a11)
  434. {
  435. __asm
  436. {
  437. jmp p[20*4];
  438. }
  439. }
  440.  
  441. // _BinkDDSurfaceType@4
  442. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkDDSurfaceType(int a1)
  443. {
  444. __asm
  445. {
  446. jmp p[21*4];
  447. }
  448. }
  449.  
  450. // _BinkDX8SurfaceType@4
  451. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkDX8SurfaceType(int a1)
  452. {
  453. __asm
  454. {
  455. jmp p[22*4];
  456. }
  457. }
  458.  
  459. // _BinkDX9SurfaceType@4
  460. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkDX9SurfaceType(int a1)
  461. {
  462. __asm
  463. {
  464. jmp p[23*4];
  465. }
  466. }
  467.  
  468. // _BinkDoFrame@4
  469. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkDoFrame(int a1)
  470. {
  471. __asm
  472. {
  473. jmp p[24*4];
  474. }
  475. }
  476.  
  477. // _BinkDoFrameAsync@12
  478. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkDoFrameAsync(int a1, int a2, int a3)
  479. {
  480. __asm
  481. {
  482. jmp p[25*4];
  483. }
  484. }
  485.  
  486. // _BinkDoFrameAsyncWait@8
  487. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkDoFrameAsyncWait(int a1, int a2)
  488. {
  489. __asm
  490. {
  491. jmp p[26*4];
  492. }
  493. }
  494.  
  495. // _BinkDoFramePlane@8
  496. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkDoFramePlane(int a1, int a2)
  497. {
  498. __asm
  499. {
  500. jmp p[27*4];
  501. }
  502. }
  503.  
  504. // _BinkGetError@0
  505. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkGetError()
  506. {
  507. __asm
  508. {
  509. jmp p[28*4];
  510. }
  511. }
  512.  
  513. // _BinkGetFrameBuffersInfo@8
  514. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkGetFrameBuffersInfo(int a1, int a2)
  515. {
  516. __asm
  517. {
  518. jmp p[29*4];
  519. }
  520. }
  521.  
  522. // _BinkGetKeyFrame@12
  523. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkGetKeyFrame(int a1, int a2, int a3)
  524. {
  525. __asm
  526. {
  527. jmp p[30*4];
  528. }
  529. }
  530.  
  531. // _BinkGetPalette@4
  532. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkGetPalette(int a1)
  533. {
  534. __asm
  535. {
  536. jmp p[31*4];
  537. }
  538. }
  539.  
  540. // _BinkGetRealtime@12
  541. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkGetRealtime(int a1, int a2, int a3)
  542. {
  543. __asm
  544. {
  545. jmp p[32*4];
  546. }
  547. }
  548.  
  549. // _BinkGetRects@8
  550. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkGetRects(int a1, int a2)
  551. {
  552. __asm
  553. {
  554. jmp p[33*4];
  555. }
  556. }
  557.  
  558. // _BinkGetSummary@8
  559. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkGetSummary(int a1, int a2)
  560. {
  561. __asm
  562. {
  563. jmp p[34*4];
  564. }
  565. }
  566.  
  567. // _BinkGetTrackData@8
  568. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkGetTrackData(int a1, int a2)
  569. {
  570. __asm
  571. {
  572. jmp p[35*4];
  573. }
  574. }
  575.  
  576. // _BinkGetTrackID@8
  577. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkGetTrackID(int a1, int a2)
  578. {
  579. __asm
  580. {
  581. jmp p[36*4];
  582. }
  583. }
  584.  
  585. // _BinkGetTrackMaxSize@8
  586. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkGetTrackMaxSize(int a1, int a2)
  587. {
  588. __asm
  589. {
  590. jmp p[37*4];
  591. }
  592. }
  593.  
  594. // _BinkGetTrackType@8
  595. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkGetTrackType(int a1, int a2)
  596. {
  597. __asm
  598. {
  599. jmp p[38*4];
  600. }
  601. }
  602.  
  603. // _BinkGoto@12
  604. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkGoto(int a1, int a2, int a3)
  605. {
  606. __asm
  607. {
  608. jmp p[39*4];
  609. }
  610. }
  611.  
  612. // _BinkIsSoftwareCursor@8
  613. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkIsSoftwareCursor(int a1, int a2)
  614. {
  615. __asm
  616. {
  617. jmp p[40*4];
  618. }
  619. }
  620.  
  621. // _BinkLogoAddress@0
  622. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkLogoAddress()
  623. {
  624. __asm
  625. {
  626. jmp p[41*4];
  627. }
  628. }
  629.  
  630. // _BinkNextFrame@4
  631. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkNextFrame(int a1)
  632. {
  633. __asm
  634. {
  635. jmp p[42*4];
  636. }
  637. }
  638.  
  639. // _BinkOpen@8
  640. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkOpen(int a1, int a2)
  641. {
  642. __asm
  643. {
  644. jmp p[43*4];
  645. }
  646. }
  647.  
  648. // _BinkOpenDirectSound@4
  649. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkOpenDirectSound(int a1)
  650. {
  651. __asm
  652. {
  653. jmp p[44*4];
  654. }
  655. }
  656.  
  657. // _BinkOpenMiles@4
  658. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkOpenMiles(int a1)
  659. {
  660. __asm
  661. {
  662. jmp p[45*4];
  663. }
  664. }
  665.  
  666. // _BinkOpenTrack@8
  667. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkOpenTrack(int a1, int a2)
  668. {
  669. __asm
  670. {
  671. jmp p[46*4];
  672. }
  673. }
  674.  
  675. // _BinkOpenWaveOut@4
  676. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkOpenWaveOut(int a1)
  677. {
  678. __asm
  679. {
  680. jmp p[47*4];
  681. }
  682. }
  683.  
  684. // _BinkPause@8
  685. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkPause(int a1, int a2)
  686. {
  687. __asm
  688. {
  689. jmp p[48*4];
  690. }
  691. }
  692.  
  693. // _BinkRegisterFrameBuffers@8
  694. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkRegisterFrameBuffers(int a1, int a2)
  695. {
  696. __asm
  697. {
  698. jmp p[49*4];
  699. }
  700. }
  701.  
  702. // _BinkRequestStopAsyncThread@4
  703. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkRequestStopAsyncThread(int a1)
  704. {
  705. __asm
  706. {
  707. jmp p[50*4];
  708. }
  709. }
  710.  
  711. // _BinkRestoreCursor@4
  712. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkRestoreCursor(int a1)
  713. {
  714. __asm
  715. {
  716. jmp p[51*4];
  717. }
  718. }
  719.  
  720. // _BinkService@4
  721. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkService(int a1)
  722. {
  723. __asm
  724. {
  725. jmp p[52*4];
  726. }
  727. }
  728.  
  729. // _BinkSetError@4
  730. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetError(int a1)
  731. {
  732. __asm
  733. {
  734. jmp p[53*4];
  735. }
  736. }
  737.  
  738. // _BinkSetFrameRate@8
  739. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetFrameRate(int a1, int a2)
  740. {
  741. __asm
  742. {
  743. jmp p[54*4];
  744. }
  745. }
  746.  
  747. // _BinkSetIO@4
  748. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetIO(int a1)
  749. {
  750. __asm
  751. {
  752. jmp p[55*4];
  753. }
  754. }
  755.  
  756. // _BinkSetIOSize@4
  757. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetIOSize(int a1)
  758. {
  759. __asm
  760. {
  761. jmp p[56*4];
  762. }
  763. }
  764.  
  765. // _BinkSetMemory@8
  766. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetMemory(int a1, int a2)
  767. {
  768. __asm
  769. {
  770. jmp p[57*4];
  771. }
  772. }
  773.  
  774. // _BinkSetMixBinVolumes@20
  775. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetMixBinVolumes(int a1,int a2,int a3,int a4,int a5)
  776. {
  777. __asm
  778. {
  779. jmp p[58*4];
  780. }
  781. }
  782.  
  783. // _BinkSetMixBins@16
  784. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetMixBins(int a1,int a2,int a3,int a4)
  785. {
  786. __asm
  787. {
  788. jmp p[59*4];
  789. }
  790. }
  791.  
  792. // _BinkSetPan@12
  793. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetPan(int a1, int a2, int a3)
  794. {
  795. __asm
  796. {
  797. jmp p[60*4];
  798. }
  799. }
  800.  
  801. // _BinkSetSimulate@4
  802. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetSimulate(int a1)
  803. {
  804. __asm
  805. {
  806. jmp p[61*4];
  807. }
  808. }
  809.  
  810. // _BinkSetSoundOnOff@8
  811. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetSoundOnOff(int a1, int a2)
  812. {
  813. __asm
  814. {
  815. jmp p[62*4];
  816. }
  817. }
  818.  
  819. // _BinkSetSoundSystem@8
  820. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetSoundSystem(int a1, int a2)
  821. {
  822. __asm
  823. {
  824. jmp p[63*4];
  825. }
  826. }
  827.  
  828. // _BinkSetSoundTrack@8
  829. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetSoundTrack(int a1, int a2)
  830. {
  831. __asm
  832. {
  833. jmp p[64*4];
  834. }
  835. }
  836.  
  837. // _BinkSetVideoOnOff@8
  838. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetVideoOnOff(int a1, int a2)
  839. {
  840. __asm
  841. {
  842. jmp p[65*4];
  843. }
  844. }
  845.  
  846. // _BinkSetVolume@12
  847. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkSetVolume(int a1, int a2, int a3)
  848. {
  849. __asm
  850. {
  851. jmp p[66*4];
  852. }
  853. }
  854.  
  855. // _BinkShouldSkip@4
  856. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkShouldSkip(int a1)
  857. {
  858. __asm
  859. {
  860. jmp p[67*4];
  861. }
  862. }
  863.  
  864. // _BinkStartAsyncThread@8
  865. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkStartAsyncThread(int a1, int a2)
  866. {
  867. __asm
  868. {
  869. jmp p[68*4];
  870. }
  871. }
  872.  
  873. // _BinkWait@4
  874. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkWait(int a1)
  875. {
  876. __asm
  877. {
  878. jmp p[69*4];
  879. }
  880. }
  881.  
  882. // _BinkWaitStopAsyncThread@4
  883. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall BinkWaitStopAsyncThread(int a1)
  884. {
  885. __asm
  886. {
  887. jmp p[70*4];
  888. }
  889. }
  890.  
  891. // _RADTimerRead@0
  892. extern "C" __declspec(dllexport) __declspec(naked) void __stdcall RADTimerRead()
  893. {
  894. __asm
  895. {
  896. jmp p[71*4];
  897. }
  898. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement