home *** CD-ROM | disk | FTP | other *** search
/ Programming a Multiplayer FPS in DirectX / Programming a Multiplayer FPS in DirectX (Companion CD).iso / DirectX / dxsdk_oct2004.exe / dxsdk.exe / Utilities / MView / gxu / crackdecl.cod < prev    next >
Encoding:
Text File  |  2004-09-30  |  54.8 KB  |  1,860 lines

  1. ; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4035 
  2.  
  3.     TITLE    .\crackdecl.cpp
  4.     .386P
  5. include listing.inc
  6. if @Version gt 510
  7. .model FLAT
  8. else
  9. _TEXT    SEGMENT PARA USE32 PUBLIC 'CODE'
  10. _TEXT    ENDS
  11. _DATA    SEGMENT DWORD USE32 PUBLIC 'DATA'
  12. _DATA    ENDS
  13. CONST    SEGMENT DWORD USE32 PUBLIC 'CONST'
  14. CONST    ENDS
  15. _BSS    SEGMENT DWORD USE32 PUBLIC 'BSS'
  16. _BSS    ENDS
  17. $$SYMBOLS    SEGMENT BYTE USE32 'DEBSYM'
  18. $$SYMBOLS    ENDS
  19. _TLS    SEGMENT DWORD USE32 PUBLIC 'TLS'
  20. _TLS    ENDS
  21. ;    COMDAT ??0CD3DXCrackDecl@@QAE@XZ
  22. _TEXT    SEGMENT PARA USE32 PUBLIC 'CODE'
  23. _TEXT    ENDS
  24. ;    COMDAT ?SetDeclaration@CD3DXCrackDecl@@QAEJPBU_D3DVERTEXELEMENT9@@@Z
  25. _TEXT    SEGMENT PARA USE32 PUBLIC 'CODE'
  26. _TEXT    ENDS
  27. ;    COMDAT ?SetStreamSource@CD3DXCrackDecl@@QAEJIPAXI@Z
  28. _TEXT    SEGMENT PARA USE32 PUBLIC 'CODE'
  29. _TEXT    ENDS
  30. ;    COMDAT ?Decode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPAMI@Z
  31. _TEXT    SEGMENT PARA USE32 PUBLIC 'CODE'
  32. _TEXT    ENDS
  33. ;    COMDAT ?Encode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPBMI@Z
  34. _TEXT    SEGMENT PARA USE32 PUBLIC 'CODE'
  35. _TEXT    ENDS
  36. ;    COMDAT ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z
  37. _TEXT    SEGMENT PARA USE32 PUBLIC 'CODE'
  38. _TEXT    ENDS
  39. ;    COMDAT ?GetVertex@CD3DXCrackDecl@@QAEPAEII@Z
  40. _TEXT    SEGMENT PARA USE32 PUBLIC 'CODE'
  41. _TEXT    ENDS
  42. FLAT    GROUP _DATA, CONST, _BSS
  43.     ASSUME    CS: FLAT, DS: FLAT, SS: FLAT
  44. endif
  45.  
  46. INCLUDELIB LIBC
  47. INCLUDELIB OLDNAMES
  48.  
  49. PUBLIC    ??0CD3DXCrackDecl@@QAE@XZ            ; CD3DXCrackDecl::CD3DXCrackDecl
  50. ; Function compile flags: /Ogs
  51. ; File d:\builds\nt32_fre\multimedia\directx\dxsdk\src\mview\gxu\crackdecl.cpp
  52. ;    COMDAT ??0CD3DXCrackDecl@@QAE@XZ
  53. _TEXT    SEGMENT
  54. ??0CD3DXCrackDecl@@QAE@XZ PROC NEAR            ; CD3DXCrackDecl::CD3DXCrackDecl, COMDAT
  55. ; _this$ = ecx
  56.  
  57. ; 24   :     }
  58. ; 25   : }
  59.  
  60.   00000    8b ff         npad     2
  61.   00002    57         push     edi
  62.  
  63. ; 20   : {
  64.  
  65.   00003    8b d1         mov     edx, ecx
  66.  
  67. ; 21   :     for(UINT i = 0; i < 16; i++)
  68. ; 22   :     {
  69. ; 23   :         dwStride[i] = 0;
  70.  
  71.   00005    6a 10         push     16            ; 00000010H
  72.   00007    59         pop     ecx
  73.   00008    33 c0         xor     eax, eax
  74.   0000a    8d 7a 48     lea     edi, DWORD PTR [edx+72]
  75.   0000d    f3 ab         rep stosd
  76.  
  77. ; 24   :     }
  78. ; 25   : }
  79.  
  80.   0000f    8b c2         mov     eax, edx
  81.   00011    5f         pop     edi
  82.   00012    c3         ret     0
  83. ??0CD3DXCrackDecl@@QAE@XZ ENDP                ; CD3DXCrackDecl::CD3DXCrackDecl
  84. _TEXT    ENDS
  85. PUBLIC    ?SetDeclaration@CD3DXCrackDecl@@QAEJPBU_D3DVERTEXELEMENT9@@@Z ; CD3DXCrackDecl::SetDeclaration
  86. EXTRN    _D3DXGetDeclLength@4:NEAR
  87. ; Function compile flags: /Ogs
  88. ;    COMDAT ?SetDeclaration@CD3DXCrackDecl@@QAEJPBU_D3DVERTEXELEMENT9@@@Z
  89. _TEXT    SEGMENT
  90. _pDecl$ = 8                        ; size = 4
  91. ?SetDeclaration@CD3DXCrackDecl@@QAEJPBU_D3DVERTEXELEMENT9@@@Z PROC NEAR ; CD3DXCrackDecl::SetDeclaration, COMDAT
  92. ; _this$ = ecx
  93.  
  94. ; 34   : }
  95.  
  96.   00000    8b ff         npad     2
  97.  
  98. ; 30   : {
  99.  
  100.   00002    55         push     ebp
  101.   00003    8b ec         mov     ebp, esp
  102.  
  103. ; 31   :     pElements = pDecl;
  104.  
  105.   00005    8b 45 08     mov     eax, DWORD PTR _pDecl$[ebp]
  106.   00008    56         push     esi
  107.   00009    8b f1         mov     esi, ecx
  108.  
  109. ; 32   :     dwNumElements = D3DXGetDeclLength(pDecl);
  110.  
  111.   0000b    50         push     eax
  112.   0000c    89 06         mov     DWORD PTR [esi], eax
  113.   0000e    e8 00 00 00 00     call     _D3DXGetDeclLength@4
  114.   00013    89 46 04     mov     DWORD PTR [esi+4], eax
  115.  
  116. ; 33   :      return S_OK;
  117.  
  118.   00016    33 c0         xor     eax, eax
  119.   00018    5e         pop     esi
  120.  
  121. ; 34   : }
  122.  
  123.   00019    5d         pop     ebp
  124.   0001a    c2 04 00     ret     4
  125. ?SetDeclaration@CD3DXCrackDecl@@QAEJPBU_D3DVERTEXELEMENT9@@@Z ENDP ; CD3DXCrackDecl::SetDeclaration
  126. _TEXT    ENDS
  127. PUBLIC    ?SetStreamSource@CD3DXCrackDecl@@QAEJIPAXI@Z    ; CD3DXCrackDecl::SetStreamSource
  128. EXTRN    _D3DXGetDeclVertexSize@8:NEAR
  129. ; Function compile flags: /Ogs
  130. ;    COMDAT ?SetStreamSource@CD3DXCrackDecl@@QAEJIPAXI@Z
  131. _TEXT    SEGMENT
  132. _Stream$ = 8                        ; size = 4
  133. _pData$ = 12                        ; size = 4
  134. _Stride$ = 16                        ; size = 4
  135. ?SetStreamSource@CD3DXCrackDecl@@QAEJIPAXI@Z PROC NEAR    ; CD3DXCrackDecl::SetStreamSource, COMDAT
  136. ; _this$ = ecx
  137.  
  138. ; 48   : }
  139.  
  140.   00000    8b ff         npad     2
  141.  
  142. ; 39   : {
  143.  
  144.   00002    55         push     ebp
  145.   00003    8b ec         mov     ebp, esp
  146.  
  147. ; 40   : 
  148. ; 41   :     pStream[Stream]   = (LPBYTE) pData;
  149.  
  150.   00005    8b 45 0c     mov     eax, DWORD PTR _pData$[ebp]
  151.   00008    56         push     esi
  152.   00009    57         push     edi
  153.   0000a    8b 7d 08     mov     edi, DWORD PTR _Stream$[ebp]
  154.   0000d    8b f1         mov     esi, ecx
  155.   0000f    89 44 be 08     mov     DWORD PTR [esi+edi*4+8], eax
  156.  
  157. ; 42   :     if(Stride == 0)
  158.  
  159.   00013    8b 45 10     mov     eax, DWORD PTR _Stride$[ebp]
  160.   00016    85 c0         test     eax, eax
  161.   00018    75 08         jne     SHORT $L56228
  162.  
  163. ; 43   :         dwStride[Stream] = D3DXGetDeclVertexSize(pElements,Stream);
  164.  
  165.   0001a    57         push     edi
  166.   0001b    ff 36         push     DWORD PTR [esi]
  167.   0001d    e8 00 00 00 00     call     _D3DXGetDeclVertexSize@8
  168. $L56228:
  169.  
  170. ; 44   :     else
  171. ; 45   :         dwStride[Stream] = Stride;
  172.  
  173.   00022    89 44 be 48     mov     DWORD PTR [esi+edi*4+72], eax
  174.   00026    5f         pop     edi
  175.  
  176. ; 46   : 
  177. ; 47   :     return S_OK;
  178.  
  179.   00027    33 c0         xor     eax, eax
  180.   00029    5e         pop     esi
  181.  
  182. ; 48   : }
  183.  
  184.   0002a    5d         pop     ebp
  185.   0002b    c2 0c 00     ret     12            ; 0000000cH
  186. ?SetStreamSource@CD3DXCrackDecl@@QAEJIPAXI@Z ENDP    ; CD3DXCrackDecl::SetStreamSource
  187. _TEXT    ENDS
  188. PUBLIC    ?GetVertex@CD3DXCrackDecl@@QAEPAEII@Z        ; CD3DXCrackDecl::GetVertex
  189. ; Function compile flags: /Ogs
  190. ; File d:\builds\nt32_fre\multimedia\directx\dxsdk\src\mview\gxu\crackdecl.h
  191. ;    COMDAT ?GetVertex@CD3DXCrackDecl@@QAEPAEII@Z
  192. _TEXT    SEGMENT
  193. _Stream$ = 8                        ; size = 4
  194. _Index$ = 12                        ; size = 4
  195. ?GetVertex@CD3DXCrackDecl@@QAEPAEII@Z PROC NEAR        ; CD3DXCrackDecl::GetVertex, COMDAT
  196. ; _this$ = ecx
  197.  
  198. ; 153  : }
  199.  
  200.   00000    8b ff         npad     2
  201.  
  202. ; 151  : {
  203.  
  204.   00002    55         push     ebp
  205.   00003    8b ec         mov     ebp, esp
  206.  
  207. ; 152  :     return pStream[Stream] + dwStride[Stream] * Index;
  208.  
  209.   00005    8b 55 08     mov     edx, DWORD PTR _Stream$[ebp]
  210.   00008    8b 44 91 48     mov     eax, DWORD PTR [ecx+edx*4+72]
  211.   0000c    0f af 45 0c     imul     eax, DWORD PTR _Index$[ebp]
  212.   00010    03 44 91 08     add     eax, DWORD PTR [ecx+edx*4+8]
  213.  
  214. ; 153  : }
  215.  
  216.   00014    5d         pop     ebp
  217.   00015    c2 08 00     ret     8
  218. ?GetVertex@CD3DXCrackDecl@@QAEPAEII@Z ENDP        ; CD3DXCrackDecl::GetVertex
  219. _TEXT    ENDS
  220. PUBLIC    ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z ; CD3DXCrackDecl::GetElementPointer
  221. ; Function compile flags: /Ogs
  222. ;    COMDAT ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z
  223. _TEXT    SEGMENT
  224. _pElement$ = 8                        ; size = 4
  225. _Index$ = 12                        ; size = 4
  226. ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z PROC NEAR ; CD3DXCrackDecl::GetElementPointer, COMDAT
  227. ; _this$ = ecx
  228.  
  229. ; 160  : }
  230.  
  231.   00000    8b ff         npad     2
  232.  
  233. ; 158  : {
  234.  
  235.   00002    55         push     ebp
  236.   00003    8b ec         mov     ebp, esp
  237.   00005    56         push     esi
  238.  
  239. ; 159  :     return GetVertex(pElement->Stream, Index) + pElement->Offset;
  240.  
  241.   00006    8b 75 08     mov     esi, DWORD PTR _pElement$[ebp]
  242.   00009    0f b7 16     movzx     edx, WORD PTR [esi]
  243.   0000c    8b 44 91 48     mov     eax, DWORD PTR [ecx+edx*4+72]
  244.   00010    0f af 45 0c     imul     eax, DWORD PTR _Index$[ebp]
  245.   00014    03 44 91 08     add     eax, DWORD PTR [ecx+edx*4+8]
  246.   00018    0f b7 4e 02     movzx     ecx, WORD PTR [esi+2]
  247.   0001c    03 c1         add     eax, ecx
  248.   0001e    5e         pop     esi
  249.  
  250. ; 160  : }
  251.  
  252.   0001f    5d         pop     ebp
  253.   00020    c2 08 00     ret     8
  254. ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z ENDP ; CD3DXCrackDecl::GetElementPointer
  255. _TEXT    ENDS
  256. PUBLIC    __real@3b808081
  257. PUBLIC    __real@38000100
  258. PUBLIC    __real@37800080
  259. PUBLIC    __real@3b004020
  260. PUBLIC    __real@4f800000
  261. PUBLIC    ?Decode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPAMI@Z ; CD3DXCrackDecl::Decode
  262. EXTRN    _D3DXFloat16To32Array@12:NEAR
  263. EXTRN    __fltused:NEAR
  264. ;    COMDAT __real@3b808081
  265. ; File d:\builds\nt32_fre\multimedia\directx\dxsdk\src\mview\gxu\crackdecl.cpp
  266. CONST    SEGMENT
  267. __real@3b808081 DD 03b808081r            ; 0.00392157
  268. CONST    ENDS
  269. ;    COMDAT __real@38000100
  270. CONST    SEGMENT
  271. __real@38000100 DD 038000100r            ; 3.05185e-005
  272. CONST    ENDS
  273. ;    COMDAT __real@37800080
  274. CONST    SEGMENT
  275. __real@37800080 DD 037800080r            ; 1.5259e-005
  276. CONST    ENDS
  277. ;    COMDAT __real@4f800000
  278. CONST    SEGMENT
  279. __real@4f800000 DD 04f800000r            ; 4.29497e+009
  280. CONST    ENDS
  281. ;    COMDAT __real@3b004020
  282. CONST    SEGMENT
  283. __real@3b004020 DD 03b004020r            ; 0.00195695
  284. ; Function compile flags: /Ogs
  285. CONST    ENDS
  286. ;    COMDAT ?Decode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPAMI@Z
  287. _TEXT    SEGMENT
  288. _Data$ = -16                        ; size = 16
  289. tv650 = 8                        ; size = 4
  290. tv649 = 8                        ; size = 4
  291. tv648 = 8                        ; size = 4
  292. tv647 = 8                        ; size = 4
  293. tv646 = 8                        ; size = 4
  294. tv645 = 8                        ; size = 4
  295. tv644 = 8                        ; size = 4
  296. tv643 = 8                        ; size = 4
  297. tv642 = 8                        ; size = 4
  298. tv641 = 8                        ; size = 4
  299. tv638 = 8                        ; size = 4
  300. tv637 = 8                        ; size = 4
  301. tv636 = 8                        ; size = 4
  302. tv635 = 8                        ; size = 4
  303. tv634 = 8                        ; size = 4
  304. tv633 = 8                        ; size = 4
  305. tv632 = 8                        ; size = 4
  306. tv631 = 8                        ; size = 4
  307. tv628 = 8                        ; size = 4
  308. tv625 = 8                        ; size = 4
  309. tv620 = 8                        ; size = 4
  310. tv617 = 8                        ; size = 4
  311. tv614 = 8                        ; size = 4
  312. tv611 = 8                        ; size = 4
  313. tv610 = 8                        ; size = 4
  314. tv609 = 8                        ; size = 4
  315. tv606 = 8                        ; size = 4
  316. tv605 = 8                        ; size = 4
  317. tv604 = 8                        ; size = 4
  318. tv603 = 8                        ; size = 4
  319. tv602 = 8                        ; size = 4
  320. tv601 = 8                        ; size = 4
  321. tv600 = 8                        ; size = 4
  322. tv594 = 8                        ; size = 4
  323. tv591 = 8                        ; size = 4
  324. tv588 = 8                        ; size = 4
  325. _pElem$ = 8                        ; size = 4
  326. _index$ = 12                        ; size = 4
  327. _pData$ = 16                        ; size = 4
  328. _cData$ = 20                        ; size = 4
  329. ?Decode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPAMI@Z PROC NEAR ; CD3DXCrackDecl::Decode, COMDAT
  330. ; _this$ = ecx
  331.  
  332. ; 218  :         pData[i] = Data[i];
  333. ; 219  : }
  334.  
  335.   00000    8b ff         npad     2
  336.  
  337. ; 53   : {
  338.  
  339.   00002    55         push     ebp
  340.   00003    8b ec         mov     ebp, esp
  341.   00005    83 ec 10     sub     esp, 16            ; 00000010H
  342.   00008    56         push     esi
  343.  
  344. ; 54   :     FLOAT Data[4];
  345. ; 55   : 
  346. ; 56   :     if(pElem)
  347.  
  348.   00009    8b 75 08     mov     esi, DWORD PTR _pElem$[ebp]
  349.   0000c    85 f6         test     esi, esi
  350.   0000e    57         push     edi
  351.   0000f    0f 84 86 03 00
  352.     00         je     $L56239
  353.  
  354. ; 57   :     {
  355. ; 58   :         LPVOID pElement = GetElementPointer(pElem,index);
  356.  
  357.   00015    ff 75 0c     push     DWORD PTR _index$[ebp]
  358.   00018    56         push     esi
  359.   00019    e8 00 00 00 00     call     ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z ; CD3DXCrackDecl::GetElementPointer
  360.  
  361. ; 59   : 
  362. ; 60   :         switch(pElem->Type)
  363.  
  364.   0001e    0f b6 4e 04     movzx     ecx, BYTE PTR [esi+4]
  365.   00022    83 f9 10     cmp     ecx, 16            ; 00000010H
  366.   00025    0f 87 84 03 00
  367.     00         ja     $L56359
  368.   0002b    ff 24 8d 00 00
  369.     00 00         jmp     DWORD PTR $L56550[ecx*4]
  370. $L56245:
  371.  
  372. ; 61   :         {
  373. ; 62   :         case D3DDECLTYPE_FLOAT1:
  374. ; 63   :             Data[0] = ((FLOAT *) pElement)[0];
  375.  
  376.   00032    8b 00         mov     eax, DWORD PTR [eax]
  377.   00034    89 45 f0     mov     DWORD PTR _Data$[ebp], eax
  378.  
  379. ; 64   :             Data[1] = 0.0f;
  380. ; 65   :             Data[2] = 0.0f;
  381. ; 66   :             Data[3] = 1.0f;
  382. ; 67   :             break;
  383.  
  384.   00037    e9 64 03 00 00     jmp     $L56543
  385. $L56247:
  386.  
  387. ; 68   : 
  388. ; 69   :         case D3DDECLTYPE_FLOAT2:
  389. ; 70   :             Data[0] = ((FLOAT *) pElement)[0];
  390.  
  391.   0003c    8b 08         mov     ecx, DWORD PTR [eax]
  392.   0003e    89 4d f0     mov     DWORD PTR _Data$[ebp], ecx
  393.  
  394. ; 71   :             Data[1] = ((FLOAT *) pElement)[1];
  395.  
  396.   00041    8b 40 04     mov     eax, DWORD PTR [eax+4]
  397.   00044    89 45 f4     mov     DWORD PTR _Data$[ebp+4], eax
  398.  
  399. ; 72   :             Data[2] = 0.0f;
  400. ; 73   :             Data[3] = 1.0f;
  401. ; 74   :             break;
  402.  
  403.   00047    e9 59 03 00 00     jmp     $L56544
  404. $L56250:
  405.  
  406. ; 75   : 
  407. ; 76   :         case D3DDECLTYPE_FLOAT3:
  408. ; 77   :             Data[0] = ((FLOAT *) pElement)[0];
  409.  
  410.   0004c    8b 08         mov     ecx, DWORD PTR [eax]
  411.   0004e    89 4d f0     mov     DWORD PTR _Data$[ebp], ecx
  412.  
  413. ; 78   :             Data[1] = ((FLOAT *) pElement)[1];
  414.  
  415.   00051    8b 48 04     mov     ecx, DWORD PTR [eax+4]
  416.   00054    89 4d f4     mov     DWORD PTR _Data$[ebp+4], ecx
  417.  
  418. ; 79   :             Data[2] = ((FLOAT *) pElement)[2];
  419.  
  420.   00057    8b 40 08     mov     eax, DWORD PTR [eax+8]
  421.   0005a    89 45 f8     mov     DWORD PTR _Data$[ebp+8], eax
  422.  
  423. ; 80   :             Data[3] = 1.0f;
  424. ; 81   :             break;
  425.  
  426.   0005d    e9 48 03 00 00     jmp     $L56545
  427. $L56254:
  428.  
  429. ; 82   : 
  430. ; 83   :         case D3DDECLTYPE_FLOAT4:
  431. ; 84   :             Data[0] = ((FLOAT *) pElement)[0];
  432.  
  433.   00062    8b 08         mov     ecx, DWORD PTR [eax]
  434.   00064    89 4d f0     mov     DWORD PTR _Data$[ebp], ecx
  435.  
  436. ; 85   :             Data[1] = ((FLOAT *) pElement)[1];
  437.  
  438.   00067    8b 48 04     mov     ecx, DWORD PTR [eax+4]
  439.   0006a    89 4d f4     mov     DWORD PTR _Data$[ebp+4], ecx
  440.  
  441. ; 86   :             Data[2] = ((FLOAT *) pElement)[2];
  442.  
  443.   0006d    8b 48 08     mov     ecx, DWORD PTR [eax+8]
  444.   00070    89 4d f8     mov     DWORD PTR _Data$[ebp+8], ecx
  445.  
  446. ; 87   :             Data[3] = ((FLOAT *) pElement)[3];
  447.  
  448.   00073    8b 40 0c     mov     eax, DWORD PTR [eax+12]
  449.   00076    89 45 fc     mov     DWORD PTR _Data$[ebp+12], eax
  450.  
  451. ; 88   :             break;
  452.  
  453.   00079    e9 31 03 00 00     jmp     $L56359
  454. $L56259:
  455.  
  456. ; 89   : 
  457. ; 90   :         case D3DDECLTYPE_D3DCOLOR:
  458. ; 91   :             Data[0] = (1.0f / 255.0f) * (FLOAT) (UINT8) (*((D3DCOLOR *) pElement) >> 16);
  459.  
  460.   0007e    0f b6 48 02     movzx     ecx, BYTE PTR [eax+2]
  461.   00082    d9 05 00 00 00
  462.     00         fld     DWORD PTR __real@3b808081
  463.   00088    89 4d 08     mov     DWORD PTR tv650[ebp], ecx
  464.   0008b    db 45 08     fild     DWORD PTR tv650[ebp]
  465.   0008e    d8 c9         fmul     ST(0), ST(1)
  466.   00090    d9 5d f0     fstp     DWORD PTR _Data$[ebp]
  467.  
  468. ; 92   :             Data[1] = (1.0f / 255.0f) * (FLOAT) (UINT8) (*((D3DCOLOR *) pElement) >>  8);
  469.  
  470.   00093    8b 08         mov     ecx, DWORD PTR [eax]
  471.   00095    c1 e9 08     shr     ecx, 8
  472.   00098    0f b6 c9     movzx     ecx, cl
  473.   0009b    89 4d 08     mov     DWORD PTR tv649[ebp], ecx
  474.   0009e    db 45 08     fild     DWORD PTR tv649[ebp]
  475.   000a1    d8 c9         fmul     ST(0), ST(1)
  476.   000a3    d9 5d f4     fstp     DWORD PTR _Data$[ebp+4]
  477.  
  478. ; 93   :             Data[2] = (1.0f / 255.0f) * (FLOAT) (UINT8) (*((D3DCOLOR *) pElement) >>  0);
  479.  
  480.   000a6    0f b6 08     movzx     ecx, BYTE PTR [eax]
  481.   000a9    89 4d 08     mov     DWORD PTR tv648[ebp], ecx
  482.   000ac    db 45 08     fild     DWORD PTR tv648[ebp]
  483.   000af    d8 c9         fmul     ST(0), ST(1)
  484.   000b1    d9 5d f8     fstp     DWORD PTR _Data$[ebp+8]
  485.  
  486. ; 94   :             Data[3] = (1.0f / 255.0f) * (FLOAT) (UINT8) (*((D3DCOLOR *) pElement) >> 24);
  487.  
  488.   000b4    0f b6 40 03     movzx     eax, BYTE PTR [eax+3]
  489.   000b8    89 45 08     mov     DWORD PTR tv647[ebp], eax
  490.   000bb    db 45 08     fild     DWORD PTR tv647[ebp]
  491. $L56549:
  492.   000be    d8 c9         fmul     ST(0), ST(1)
  493.   000c0    d9 5d fc     fstp     DWORD PTR _Data$[ebp+12]
  494.   000c3    dd d8         fstp     ST(0)
  495.  
  496. ; 95   :             break;
  497.  
  498.   000c5    e9 e5 02 00 00     jmp     $L56359
  499. $L56272:
  500.  
  501. ; 96   : 
  502. ; 97   :         case D3DDECLTYPE_UBYTE4:
  503. ; 98   :             Data[0] = (FLOAT) ((UINT8 *) pElement)[0];
  504.  
  505.   000ca    0f b6 08     movzx     ecx, BYTE PTR [eax]
  506.   000cd    89 4d 08     mov     DWORD PTR tv646[ebp], ecx
  507.   000d0    db 45 08     fild     DWORD PTR tv646[ebp]
  508.   000d3    d9 5d f0     fstp     DWORD PTR _Data$[ebp]
  509.  
  510. ; 99   :             Data[1] = (FLOAT) ((UINT8 *) pElement)[1];
  511.  
  512.   000d6    0f b6 48 01     movzx     ecx, BYTE PTR [eax+1]
  513.   000da    89 4d 08     mov     DWORD PTR tv645[ebp], ecx
  514.   000dd    db 45 08     fild     DWORD PTR tv645[ebp]
  515.   000e0    d9 5d f4     fstp     DWORD PTR _Data$[ebp+4]
  516.  
  517. ; 100  :             Data[2] = (FLOAT) ((UINT8 *) pElement)[2];
  518.  
  519.   000e3    0f b6 48 02     movzx     ecx, BYTE PTR [eax+2]
  520.   000e7    89 4d 08     mov     DWORD PTR tv644[ebp], ecx
  521.   000ea    db 45 08     fild     DWORD PTR tv644[ebp]
  522.   000ed    d9 5d f8     fstp     DWORD PTR _Data$[ebp+8]
  523.  
  524. ; 101  :             Data[3] = (FLOAT) ((UINT8 *) pElement)[3];
  525.  
  526.   000f0    0f b6 40 03     movzx     eax, BYTE PTR [eax+3]
  527.   000f4    89 45 08     mov     DWORD PTR tv643[ebp], eax
  528.   000f7    db 45 08     fild     DWORD PTR tv643[ebp]
  529.  
  530. ; 102  :             break;
  531.  
  532.   000fa    e9 ad 02 00 00     jmp     $L56546
  533. $L56281:
  534.  
  535. ; 103  : 
  536. ; 104  :         case D3DDECLTYPE_SHORT2:
  537. ; 105  :             Data[0] = (FLOAT) ((INT16 *) pElement)[0];
  538.  
  539.   000ff    0f bf 08     movsx     ecx, WORD PTR [eax]
  540.   00102    89 4d 08     mov     DWORD PTR tv642[ebp], ecx
  541.   00105    db 45 08     fild     DWORD PTR tv642[ebp]
  542.   00108    d9 5d f0     fstp     DWORD PTR _Data$[ebp]
  543.  
  544. ; 106  :             Data[1] = (FLOAT) ((INT16 *) pElement)[1];
  545.  
  546.   0010b    0f bf 40 02     movsx     eax, WORD PTR [eax+2]
  547.   0010f    89 45 08     mov     DWORD PTR tv641[ebp], eax
  548.   00112    db 45 08     fild     DWORD PTR tv641[ebp]
  549.  
  550. ; 107  :             Data[2] = 0.0f;
  551. ; 108  :             Data[3] = 1.0f;
  552. ; 109  :             break;
  553.  
  554.   00115    e9 88 02 00 00     jmp     $L56547
  555. $L56286:
  556.  
  557. ; 110  : 
  558. ; 111  :         case D3DDECLTYPE_SHORT4:
  559. ; 112  :             Data[0] = (FLOAT) ((INT16 *) pElement)[0];
  560.  
  561.   0011a    0f bf 08     movsx     ecx, WORD PTR [eax]
  562.   0011d    89 4d 08     mov     DWORD PTR tv638[ebp], ecx
  563.   00120    db 45 08     fild     DWORD PTR tv638[ebp]
  564.   00123    d9 5d f0     fstp     DWORD PTR _Data$[ebp]
  565.  
  566. ; 113  :             Data[1] = (FLOAT) ((INT16 *) pElement)[1];
  567.  
  568.   00126    0f bf 48 02     movsx     ecx, WORD PTR [eax+2]
  569.   0012a    89 4d 08     mov     DWORD PTR tv637[ebp], ecx
  570.   0012d    db 45 08     fild     DWORD PTR tv637[ebp]
  571.   00130    d9 5d f4     fstp     DWORD PTR _Data$[ebp+4]
  572.  
  573. ; 114  :             Data[2] = (FLOAT) ((INT16 *) pElement)[2];
  574.  
  575.   00133    0f bf 48 04     movsx     ecx, WORD PTR [eax+4]
  576.   00137    89 4d 08     mov     DWORD PTR tv636[ebp], ecx
  577.   0013a    db 45 08     fild     DWORD PTR tv636[ebp]
  578.   0013d    d9 5d f8     fstp     DWORD PTR _Data$[ebp+8]
  579.  
  580. ; 115  :             Data[3] = (FLOAT) ((INT16 *) pElement)[3];
  581.  
  582.   00140    0f bf 40 06     movsx     eax, WORD PTR [eax+6]
  583.   00144    89 45 08     mov     DWORD PTR tv635[ebp], eax
  584.   00147    db 45 08     fild     DWORD PTR tv635[ebp]
  585.  
  586. ; 116  :             break;
  587.  
  588.   0014a    e9 5d 02 00 00     jmp     $L56546
  589. $L56295:
  590.  
  591. ; 117  : 
  592. ; 118  :         case D3DDECLTYPE_UBYTE4N:
  593. ; 119  :             Data[0] = (1.0f / 255.0f) * (FLOAT) (((UINT8 *) pElement)[0]);
  594.  
  595.   0014f    0f b6 08     movzx     ecx, BYTE PTR [eax]
  596.   00152    d9 05 00 00 00
  597.     00         fld     DWORD PTR __real@3b808081
  598.   00158    89 4d 08     mov     DWORD PTR tv634[ebp], ecx
  599.   0015b    db 45 08     fild     DWORD PTR tv634[ebp]
  600.   0015e    d8 c9         fmul     ST(0), ST(1)
  601.   00160    d9 5d f0     fstp     DWORD PTR _Data$[ebp]
  602.  
  603. ; 120  :             Data[1] = (1.0f / 255.0f) * (FLOAT) (((UINT8 *) pElement)[1]);
  604.  
  605.   00163    0f b6 48 01     movzx     ecx, BYTE PTR [eax+1]
  606.   00167    89 4d 08     mov     DWORD PTR tv633[ebp], ecx
  607.   0016a    db 45 08     fild     DWORD PTR tv633[ebp]
  608.   0016d    d8 c9         fmul     ST(0), ST(1)
  609.   0016f    d9 5d f4     fstp     DWORD PTR _Data$[ebp+4]
  610.  
  611. ; 121  :             Data[2] = (1.0f / 255.0f) * (FLOAT) (((UINT8 *) pElement)[2]);
  612.  
  613.   00172    0f b6 48 02     movzx     ecx, BYTE PTR [eax+2]
  614.   00176    89 4d 08     mov     DWORD PTR tv632[ebp], ecx
  615.   00179    db 45 08     fild     DWORD PTR tv632[ebp]
  616.   0017c    d8 c9         fmul     ST(0), ST(1)
  617.   0017e    d9 5d f8     fstp     DWORD PTR _Data$[ebp+8]
  618.  
  619. ; 122  :             Data[3] = (1.0f / 255.0f) * (FLOAT) (((UINT8 *) pElement)[3]);
  620.  
  621.   00181    0f b6 40 03     movzx     eax, BYTE PTR [eax+3]
  622.   00185    89 45 08     mov     DWORD PTR tv631[ebp], eax
  623.   00188    db 45 08     fild     DWORD PTR tv631[ebp]
  624.  
  625. ; 123  :             break;
  626.  
  627.   0018b    e9 2e ff ff ff     jmp     $L56549
  628. $L56304:
  629.  
  630. ; 124  :             
  631. ; 125  :         case D3DDECLTYPE_SHORT2N:
  632. ; 126  :             {
  633. ; 127  :                 INT16 nX = (((INT16 *) pElement)[0]);
  634. ; 128  :                 INT16 nY = (((INT16 *) pElement)[1]);
  635.  
  636.   00190    66 8b 70 02     mov     si, WORD PTR [eax+2]
  637.  
  638. ; 129  : 
  639. ; 130  :                 nX += (-32768 == nX);
  640. ; 131  :                 nY += (-32768 == nY);
  641. ; 132  : 
  642. ; 133  :                 Data[0] = (1.0f / 32767.0f) * (FLOAT) nX;
  643.  
  644.   00194    d9 05 00 00 00
  645.     00         fld     DWORD PTR __real@38000100
  646.   0019a    33 d2         xor     edx, edx
  647.   0019c    66 8b 10     mov     dx, WORD PTR [eax]
  648.   0019f    33 c0         xor     eax, eax
  649.   001a1    b9 00 80 ff ff     mov     ecx, -32768        ; ffff8000H
  650.   001a6    66 3b d1     cmp     dx, cx
  651.   001a9    0f 94 c0     sete     al
  652.   001ac    03 c2         add     eax, edx
  653.   001ae    0f bf c0     movsx     eax, ax
  654.   001b1    89 45 08     mov     DWORD PTR tv628[ebp], eax
  655.   001b4    33 c0         xor     eax, eax
  656.   001b6    66 3b f1     cmp     si, cx
  657.   001b9    db 45 08     fild     DWORD PTR tv628[ebp]
  658.   001bc    0f 94 c0     sete     al
  659.   001bf    d8 c9         fmul     ST(0), ST(1)
  660.   001c1    d9 5d f0     fstp     DWORD PTR _Data$[ebp]
  661.   001c4    03 c6         add     eax, esi
  662.  
  663. ; 134  :                 Data[1] = (1.0f / 32767.0f) * (FLOAT) nY;
  664.  
  665.   001c6    0f bf c0     movsx     eax, ax
  666.   001c9    89 45 08     mov     DWORD PTR tv625[ebp], eax
  667.   001cc    db 45 08     fild     DWORD PTR tv625[ebp]
  668.  
  669. ; 135  :                 Data[2] = 0.0f;
  670. ; 136  :                 Data[3] = 1.0f;
  671. ; 137  :             }
  672. ; 138  :             break;
  673.  
  674.   001cf    e9 a3 00 00 00     jmp     $L56548
  675. $L56311:
  676.  
  677. ; 139  : 
  678. ; 140  :         case D3DDECLTYPE_SHORT4N:
  679. ; 141  :             {
  680. ; 142  :                 INT16 nX = (((INT16 *) pElement)[0]);
  681. ; 143  :                 INT16 nY = (((INT16 *) pElement)[1]);
  682.  
  683.   001d4    66 8b 70 02     mov     si, WORD PTR [eax+2]
  684.  
  685. ; 144  :                 INT16 nZ = (((INT16 *) pElement)[2]);
  686. ; 145  :                 INT16 nW = (((INT16 *) pElement)[3]);
  687. ; 146  : 
  688. ; 147  :                 nX += (-32768 == nX);
  689. ; 148  :                 nY += (-32768 == nY);
  690. ; 149  :                 nZ += (-32768 == nZ);
  691. ; 150  :                 nW += (-32768 == nW);
  692. ; 151  : 
  693. ; 152  :                 Data[0] = (1.0f / 32767.0f) * (FLOAT) nX;
  694.  
  695.   001d8    d9 05 00 00 00
  696.     00         fld     DWORD PTR __real@38000100
  697.   001de    33 d2         xor     edx, edx
  698.   001e0    66 8b 10     mov     dx, WORD PTR [eax]
  699.   001e3    53         push     ebx
  700.   001e4    33 db         xor     ebx, ebx
  701.   001e6    66 8b 78 04     mov     di, WORD PTR [eax+4]
  702.   001ea    b9 00 80 ff ff     mov     ecx, -32768        ; ffff8000H
  703.   001ef    66 3b d1     cmp     dx, cx
  704.   001f2    0f 94 c3     sete     bl
  705.   001f5    66 8b 40 06     mov     ax, WORD PTR [eax+6]
  706.   001f9    03 da         add     ebx, edx
  707.   001fb    0f bf d3     movsx     edx, bx
  708.   001fe    89 55 08     mov     DWORD PTR tv620[ebp], edx
  709.   00201    33 d2         xor     edx, edx
  710.   00203    66 3b f1     cmp     si, cx
  711.   00206    db 45 08     fild     DWORD PTR tv620[ebp]
  712.   00209    0f 94 c2     sete     dl
  713.   0020c    5b         pop     ebx
  714.   0020d    d8 c9         fmul     ST(0), ST(1)
  715.   0020f    d9 5d f0     fstp     DWORD PTR _Data$[ebp]
  716.   00212    03 d6         add     edx, esi
  717.  
  718. ; 153  :                 Data[1] = (1.0f / 32767.0f) * (FLOAT) nY;
  719.  
  720.   00214    0f bf d2     movsx     edx, dx
  721.   00217    89 55 08     mov     DWORD PTR tv617[ebp], edx
  722.   0021a    33 d2         xor     edx, edx
  723.   0021c    66 3b f9     cmp     di, cx
  724.   0021f    db 45 08     fild     DWORD PTR tv617[ebp]
  725.   00222    0f 94 c2     sete     dl
  726.   00225    d8 c9         fmul     ST(0), ST(1)
  727.   00227    d9 5d f4     fstp     DWORD PTR _Data$[ebp+4]
  728.   0022a    03 d7         add     edx, edi
  729.  
  730. ; 154  :                 Data[2] = (1.0f / 32767.0f) * (FLOAT) nZ;
  731.  
  732.   0022c    0f bf d2     movsx     edx, dx
  733.   0022f    89 55 08     mov     DWORD PTR tv614[ebp], edx
  734.   00232    33 d2         xor     edx, edx
  735.   00234    66 3b c1     cmp     ax, cx
  736.   00237    db 45 08     fild     DWORD PTR tv614[ebp]
  737.   0023a    0f 94 c2     sete     dl
  738.   0023d    d8 c9         fmul     ST(0), ST(1)
  739.   0023f    d9 5d f8     fstp     DWORD PTR _Data$[ebp+8]
  740.   00242    03 d0         add     edx, eax
  741.  
  742. ; 155  :                 Data[3] = (1.0f / 32767.0f) * (FLOAT) nW;
  743.  
  744.   00244    0f bf c2     movsx     eax, dx
  745.   00247    89 45 08     mov     DWORD PTR tv611[ebp], eax
  746.   0024a    db 45 08     fild     DWORD PTR tv611[ebp]
  747.   0024d    d8 c9         fmul     ST(0), ST(1)
  748.   0024f    d9 5d fc     fstp     DWORD PTR _Data$[ebp+12]
  749.   00252    dd d8         fstp     ST(0)
  750.  
  751. ; 156  :             }
  752. ; 157  :             break;
  753.  
  754.   00254    e9 56 01 00 00     jmp     $L56359
  755. $L56324:
  756.  
  757. ; 158  : 
  758. ; 159  :         case D3DDECLTYPE_USHORT2N:
  759. ; 160  :             Data[0] = (1.0f / 65535.0f) * (FLOAT) (((UINT16 *) pElement)[0]);
  760.  
  761.   00259    0f b7 08     movzx     ecx, WORD PTR [eax]
  762.   0025c    d9 05 00 00 00
  763.     00         fld     DWORD PTR __real@37800080
  764.   00262    89 4d 08     mov     DWORD PTR tv610[ebp], ecx
  765.   00265    db 45 08     fild     DWORD PTR tv610[ebp]
  766.   00268    d8 c9         fmul     ST(0), ST(1)
  767.   0026a    d9 5d f0     fstp     DWORD PTR _Data$[ebp]
  768.  
  769. ; 161  :             Data[1] = (1.0f / 65535.0f) * (FLOAT) (((UINT16 *) pElement)[1]);
  770.  
  771.   0026d    0f b7 40 02     movzx     eax, WORD PTR [eax+2]
  772.   00271    89 45 08     mov     DWORD PTR tv609[ebp], eax
  773.   00274    db 45 08     fild     DWORD PTR tv609[ebp]
  774. $L56548:
  775.   00277    d8 c9         fmul     ST(0), ST(1)
  776.   00279    d9 5d f4     fstp     DWORD PTR _Data$[ebp+4]
  777.   0027c    dd d8         fstp     ST(0)
  778.  
  779. ; 162  :             Data[2] = 0.0f;
  780. ; 163  :             Data[3] = 1.0f;
  781. ; 164  :             break;
  782.  
  783.   0027e    e9 22 01 00 00     jmp     $L56544
  784. $L56329:
  785.  
  786. ; 165  : 
  787. ; 166  :         case D3DDECLTYPE_USHORT4N:
  788. ; 167  :             Data[0] = (1.0f / 65535.0f) * (FLOAT) (((UINT16 *) pElement)[0]);
  789.  
  790.   00283    0f b7 08     movzx     ecx, WORD PTR [eax]
  791.   00286    d9 05 00 00 00
  792.     00         fld     DWORD PTR __real@37800080
  793.   0028c    89 4d 08     mov     DWORD PTR tv606[ebp], ecx
  794.   0028f    db 45 08     fild     DWORD PTR tv606[ebp]
  795.   00292    d8 c9         fmul     ST(0), ST(1)
  796.   00294    d9 5d f0     fstp     DWORD PTR _Data$[ebp]
  797.  
  798. ; 168  :             Data[1] = (1.0f / 65535.0f) * (FLOAT) (((UINT16 *) pElement)[1]);
  799.  
  800.   00297    0f b7 48 02     movzx     ecx, WORD PTR [eax+2]
  801.   0029b    89 4d 08     mov     DWORD PTR tv605[ebp], ecx
  802.   0029e    db 45 08     fild     DWORD PTR tv605[ebp]
  803.   002a1    d8 c9         fmul     ST(0), ST(1)
  804.   002a3    d9 5d f4     fstp     DWORD PTR _Data$[ebp+4]
  805.  
  806. ; 169  :             Data[2] = (1.0f / 65535.0f) * (FLOAT) (((UINT16 *) pElement)[2]);
  807.  
  808.   002a6    0f b7 48 04     movzx     ecx, WORD PTR [eax+4]
  809.   002aa    89 4d 08     mov     DWORD PTR tv604[ebp], ecx
  810.   002ad    db 45 08     fild     DWORD PTR tv604[ebp]
  811.   002b0    d8 c9         fmul     ST(0), ST(1)
  812.   002b2    d9 5d f8     fstp     DWORD PTR _Data$[ebp+8]
  813.  
  814. ; 170  :             Data[3] = (1.0f / 65535.0f) * (FLOAT) (((UINT16 *) pElement)[3]);
  815.  
  816.   002b5    0f b7 40 06     movzx     eax, WORD PTR [eax+6]
  817.   002b9    89 45 08     mov     DWORD PTR tv603[ebp], eax
  818.   002bc    db 45 08     fild     DWORD PTR tv603[ebp]
  819.  
  820. ; 171  :             break;
  821.  
  822.   002bf    e9 fa fd ff ff     jmp     $L56549
  823. $L56338:
  824.  
  825. ; 172  : 
  826. ; 173  :         case D3DDECLTYPE_UDEC3:
  827. ; 174  :             Data[0] = (FLOAT) ((*((UINT32 *) pElement) >>  0) & 0x3ff);
  828.  
  829.   002c4    8b 10         mov     edx, DWORD PTR [eax]
  830.   002c6    b9 ff 03 00 00     mov     ecx, 1023        ; 000003ffH
  831.   002cb    23 d1         and     edx, ecx
  832.   002cd    85 d2         test     edx, edx
  833.   002cf    89 55 08     mov     DWORD PTR tv602[ebp], edx
  834.   002d2    db 45 08     fild     DWORD PTR tv602[ebp]
  835.   002d5    7d 06         jge     SHORT $L56538
  836.   002d7    d8 05 00 00 00
  837.     00         fadd     DWORD PTR __real@4f800000
  838. $L56538:
  839.   002dd    d9 5d f0     fstp     DWORD PTR _Data$[ebp]
  840.  
  841. ; 175  :             Data[1] = (FLOAT) ((*((UINT32 *) pElement) >> 10) & 0x3ff);
  842.  
  843.   002e0    8b 10         mov     edx, DWORD PTR [eax]
  844.   002e2    c1 ea 0a     shr     edx, 10            ; 0000000aH
  845.   002e5    23 d1         and     edx, ecx
  846.   002e7    85 d2         test     edx, edx
  847.   002e9    89 55 08     mov     DWORD PTR tv601[ebp], edx
  848.   002ec    db 45 08     fild     DWORD PTR tv601[ebp]
  849.   002ef    7d 06         jge     SHORT $L56541
  850.   002f1    d8 05 00 00 00
  851.     00         fadd     DWORD PTR __real@4f800000
  852. $L56541:
  853.   002f7    d9 5d f4     fstp     DWORD PTR _Data$[ebp+4]
  854.  
  855. ; 176  :             Data[2] = (FLOAT) ((*((UINT32 *) pElement) >> 20) & 0x3ff);
  856.  
  857.   002fa    8b 00         mov     eax, DWORD PTR [eax]
  858.   002fc    c1 e8 14     shr     eax, 20            ; 00000014H
  859.   002ff    23 c1         and     eax, ecx
  860.   00301    85 c0         test     eax, eax
  861.   00303    89 45 08     mov     DWORD PTR tv600[ebp], eax
  862.   00306    db 45 08     fild     DWORD PTR tv600[ebp]
  863.   00309    0f 8d 98 00 00
  864.     00         jge     $L56542
  865.   0030f    d8 05 00 00 00
  866.     00         fadd     DWORD PTR __real@4f800000
  867.  
  868. ; 177  :             Data[3] = 1.0f;
  869. ; 178  :             break;
  870.  
  871.   00315    e9 8d 00 00 00     jmp     $L56542
  872. $L56345:
  873.  
  874. ; 179  : 
  875. ; 180  :         case D3DDECLTYPE_DEC3N:
  876. ; 181  :             {
  877. ; 182  :                 INT32 nX = ((*((INT32 *) pElement) << 22)) >> 22;
  878.  
  879.   0031a    8b 00         mov     eax, DWORD PTR [eax]
  880.  
  881. ; 183  :                 INT32 nY = ((*((INT32 *) pElement) << 12)) >> 22;
  882. ; 184  :                 INT32 nZ = ((*((INT32 *) pElement) <<  2)) >> 22;
  883. ; 185  : 
  884. ; 186  :                 nX += (-512 == nX);
  885. ; 187  :                 nY += (-512 == nY);
  886. ; 188  :                 nZ += (-512 == nZ);
  887. ; 189  : 
  888. ; 190  :                 Data[0] = (1.0f / 511.0f) * (FLOAT) nX;
  889.  
  890.   0031c    d9 05 00 00 00
  891.     00         fld     DWORD PTR __real@3b004020
  892.   00322    33 d2         xor     edx, edx
  893.   00324    8b f0         mov     esi, eax
  894.   00326    c1 e6 16     shl     esi, 22            ; 00000016H
  895.   00329    c1 fe 16     sar     esi, 22            ; 00000016H
  896.   0032c    8b f8         mov     edi, eax
  897.   0032e    c1 e7 0c     shl     edi, 12            ; 0000000cH
  898.   00331    8b c8         mov     ecx, eax
  899.   00333    c1 e1 02     shl     ecx, 2
  900.   00336    c1 ff 16     sar     edi, 22            ; 00000016H
  901.   00339    c1 f9 16     sar     ecx, 22            ; 00000016H
  902.   0033c    b8 00 fe ff ff     mov     eax, -512        ; fffffe00H
  903.   00341    3b f0         cmp     esi, eax
  904.   00343    0f 94 c2     sete     dl
  905.   00346    03 d6         add     edx, esi
  906.   00348    89 55 08     mov     DWORD PTR tv594[ebp], edx
  907.   0034b    db 45 08     fild     DWORD PTR tv594[ebp]
  908.   0034e    33 d2         xor     edx, edx
  909.   00350    3b f8         cmp     edi, eax
  910.   00352    0f 94 c2     sete     dl
  911.   00355    d8 c9         fmul     ST(0), ST(1)
  912.   00357    d9 5d f0     fstp     DWORD PTR _Data$[ebp]
  913.   0035a    03 d7         add     edx, edi
  914.  
  915. ; 191  :                 Data[1] = (1.0f / 511.0f) * (FLOAT) nY;
  916.  
  917.   0035c    89 55 08     mov     DWORD PTR tv591[ebp], edx
  918.   0035f    db 45 08     fild     DWORD PTR tv591[ebp]
  919.   00362    33 d2         xor     edx, edx
  920.   00364    3b c8         cmp     ecx, eax
  921.   00366    0f 94 c2     sete     dl
  922.   00369    d8 c9         fmul     ST(0), ST(1)
  923.   0036b    d9 5d f4     fstp     DWORD PTR _Data$[ebp+4]
  924.   0036e    03 d1         add     edx, ecx
  925.  
  926. ; 192  :                 Data[2] = (1.0f / 511.0f) * (FLOAT) nZ;
  927.  
  928.   00370    89 55 08     mov     DWORD PTR tv588[ebp], edx
  929.   00373    db 45 08     fild     DWORD PTR tv588[ebp]
  930.   00376    d8 c9         fmul     ST(0), ST(1)
  931.   00378    d9 5d f8     fstp     DWORD PTR _Data$[ebp+8]
  932.   0037b    dd d8         fstp     ST(0)
  933.  
  934. ; 193  :                 Data[3] = 1.0f;
  935. ; 194  :             }
  936. ; 195  :             break;
  937.  
  938.   0037d    eb 2b         jmp     SHORT $L56545
  939. $L56355:
  940.  
  941. ; 196  :         case D3DDECLTYPE_FLOAT16_2:
  942. ; 197  :             D3DXFloat16To32Array(Data,(D3DXFLOAT16*)pElement,2);
  943.  
  944.   0037f    6a 02         push     2
  945.   00381    50         push     eax
  946.   00382    8d 45 f0     lea     eax, DWORD PTR _Data$[ebp]
  947.   00385    50         push     eax
  948.   00386    e8 00 00 00 00     call     _D3DXFloat16To32Array@12
  949.  
  950. ; 198  :             Data[2] = 0.0f;
  951. ; 199  :             Data[3] = 1.0f;           
  952. ; 200  :             break;
  953.  
  954.   0038b    eb 18         jmp     SHORT $L56544
  955. $L56357:
  956.  
  957. ; 201  :         case D3DDECLTYPE_FLOAT16_4:
  958. ; 202  :             D3DXFloat16To32Array(Data,(D3DXFLOAT16*)pElement,4);
  959.  
  960.   0038d    6a 04         push     4
  961.   0038f    50         push     eax
  962.   00390    8d 45 f0     lea     eax, DWORD PTR _Data$[ebp]
  963.   00393    50         push     eax
  964.   00394    e8 00 00 00 00     call     _D3DXFloat16To32Array@12
  965.  
  966. ; 203  :             break;
  967. ; 204  :         }
  968. ; 205  :     }
  969. ; 206  :     else
  970.  
  971.   00399    eb 14         jmp     SHORT $L56359
  972. $L56239:
  973.  
  974. ; 207  :     {
  975. ; 208  :         Data[0] = 0.0f;
  976.  
  977.   0039b    d9 ee         fldz
  978.   0039d    d9 5d f0     fstp     DWORD PTR _Data$[ebp]
  979. $L56543:
  980.  
  981. ; 209  :         Data[1] = 0.0f;
  982.  
  983.   003a0    d9 ee         fldz
  984. $L56547:
  985.   003a2    d9 5d f4     fstp     DWORD PTR _Data$[ebp+4]
  986. $L56544:
  987.  
  988. ; 210  :         Data[2] = 0.0f;
  989.  
  990.   003a5    d9 ee         fldz
  991. $L56542:
  992.   003a7    d9 5d f8     fstp     DWORD PTR _Data$[ebp+8]
  993. $L56545:
  994.  
  995. ; 211  :         Data[3] = 1.0f;
  996.  
  997.   003aa    d9 e8         fld1
  998. $L56546:
  999.   003ac    d9 5d fc     fstp     DWORD PTR _Data$[ebp+12]
  1000. $L56359:
  1001.  
  1002. ; 212  :     }
  1003. ; 213  : 
  1004. ; 214  :     if(cData > 4)
  1005.  
  1006.   003af    8b 4d 14     mov     ecx, DWORD PTR _cData$[ebp]
  1007.   003b2    83 f9 04     cmp     ecx, 4
  1008.   003b5    76 03         jbe     SHORT $L56360
  1009.  
  1010. ; 215  :         cData = 4;
  1011.  
  1012.   003b7    6a 04         push     4
  1013.   003b9    59         pop     ecx
  1014. $L56360:
  1015.  
  1016. ; 216  : 
  1017. ; 217  :     for(UINT i = 0; i < cData; i++)
  1018.  
  1019.   003ba    85 c9         test     ecx, ecx
  1020.   003bc    76 08         jbe     SHORT $L56362
  1021.   003be    8b 7d 10     mov     edi, DWORD PTR _pData$[ebp]
  1022.   003c1    8d 75 f0     lea     esi, DWORD PTR _Data$[ebp]
  1023.   003c4    f3 a5         rep movsd
  1024. $L56362:
  1025.   003c6    5f         pop     edi
  1026.   003c7    5e         pop     esi
  1027.  
  1028. ; 218  :         pData[i] = Data[i];
  1029. ; 219  : }
  1030.  
  1031.   003c8    c9         leave
  1032.   003c9    c2 10 00     ret     16            ; 00000010H
  1033. $L56550:
  1034.   003cc    00 00 00 00     DD     $L56245
  1035.   003d0    00 00 00 00     DD     $L56247
  1036.   003d4    00 00 00 00     DD     $L56250
  1037.   003d8    00 00 00 00     DD     $L56254
  1038.   003dc    00 00 00 00     DD     $L56259
  1039.   003e0    00 00 00 00     DD     $L56272
  1040.   003e4    00 00 00 00     DD     $L56281
  1041.   003e8    00 00 00 00     DD     $L56286
  1042.   003ec    00 00 00 00     DD     $L56295
  1043.   003f0    00 00 00 00     DD     $L56304
  1044.   003f4    00 00 00 00     DD     $L56311
  1045.   003f8    00 00 00 00     DD     $L56324
  1046.   003fc    00 00 00 00     DD     $L56329
  1047.   00400    00 00 00 00     DD     $L56338
  1048.   00404    00 00 00 00     DD     $L56345
  1049.   00408    00 00 00 00     DD     $L56355
  1050.   0040c    00 00 00 00     DD     $L56357
  1051. ?Decode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPAMI@Z ENDP ; CD3DXCrackDecl::Decode
  1052. _TEXT    ENDS
  1053. PUBLIC    __real@bf800000
  1054. PUBLIC    __real@437f0000
  1055. PUBLIC    __real@3f000000
  1056. PUBLIC    __real@46fffe00
  1057. PUBLIC    __real@477fff00
  1058. PUBLIC    __real@43ff8000
  1059. PUBLIC    ?Encode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPBMI@Z ; CD3DXCrackDecl::Encode
  1060. EXTRN    _D3DXFloat32To16Array@12:NEAR
  1061. EXTRN    __ftol:NEAR
  1062. ;    COMDAT __real@bf800000
  1063. CONST    SEGMENT
  1064. __real@bf800000 DD 0bf800000r            ; -1
  1065. CONST    ENDS
  1066. ;    COMDAT __real@437f0000
  1067. CONST    SEGMENT
  1068. __real@437f0000 DD 0437f0000r            ; 255
  1069. CONST    ENDS
  1070. ;    COMDAT __real@3f000000
  1071. CONST    SEGMENT
  1072. __real@3f000000 DD 03f000000r            ; 0.5
  1073. CONST    ENDS
  1074. ;    COMDAT __real@46fffe00
  1075. CONST    SEGMENT
  1076. __real@46fffe00 DD 046fffe00r            ; 32767
  1077. CONST    ENDS
  1078. ;    COMDAT __real@477fff00
  1079. CONST    SEGMENT
  1080. __real@477fff00 DD 0477fff00r            ; 65535
  1081. CONST    ENDS
  1082. ;    COMDAT __real@43ff8000
  1083. CONST    SEGMENT
  1084. __real@43ff8000 DD 043ff8000r            ; 511
  1085. ; Function compile flags: /Ogs
  1086. CONST    ENDS
  1087. ;    COMDAT ?Encode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPBMI@Z
  1088. _TEXT    SEGMENT
  1089. _Data$ = -20                        ; size = 16
  1090. _this$ = -4                        ; size = 4
  1091. _pElem$ = 8                        ; size = 4
  1092. _index$ = 12                        ; size = 4
  1093. _pData$ = 16                        ; size = 4
  1094. tv484 = 20                        ; size = 4
  1095. _cData$ = 20                        ; size = 4
  1096. ?Encode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPBMI@Z PROC NEAR ; CD3DXCrackDecl::Encode, COMDAT
  1097. ; _this$ = ecx
  1098.  
  1099. ; 370  :             break;
  1100. ; 371  :         }
  1101. ; 372  :     }
  1102. ; 373  : }
  1103.  
  1104.   00000    8b ff         npad     2
  1105.  
  1106. ; 224  : {
  1107.  
  1108.   00002    55         push     ebp
  1109.   00003    8b ec         mov     ebp, esp
  1110.   00005    83 ec 14     sub     esp, 20            ; 00000014H
  1111.  
  1112. ; 225  :     UINT i = 0;
  1113. ; 226  :     FLOAT Data[4];
  1114. ; 227  : 
  1115. ; 228  :     if(cData > 4)
  1116.  
  1117.   00008    8b 55 14     mov     edx, DWORD PTR _cData$[ebp]
  1118.   0000b    53         push     ebx
  1119.   0000c    56         push     esi
  1120.   0000d    33 db         xor     ebx, ebx
  1121.   0000f    83 fa 04     cmp     edx, 4
  1122.   00012    57         push     edi
  1123.   00013    89 4d fc     mov     DWORD PTR _this$[ebp], ecx
  1124.   00016    76 03         jbe     SHORT $L56374
  1125.  
  1126. ; 229  :         cData = 4;
  1127.  
  1128.   00018    6a 04         push     4
  1129.   0001a    5a         pop     edx
  1130. $L56374:
  1131.  
  1132. ; 230  : 
  1133. ; 231  :     switch(pElem->Type)
  1134.  
  1135.   0001b    8b 45 08     mov     eax, DWORD PTR _pElem$[ebp]
  1136.   0001e    0f b6 40 04     movzx     eax, BYTE PTR [eax+4]
  1137.   00022    89 45 14     mov     DWORD PTR tv484[ebp], eax
  1138.   00025    83 c0 fc     add     eax, -4            ; fffffffcH
  1139.   00028    83 f8 0a     cmp     eax, 10            ; 0000000aH
  1140.   0002b    0f 87 ba 00 00
  1141.     00         ja     $L56391
  1142.   00031    0f b6 80 00 00
  1143.     00 00         movzx     eax, BYTE PTR $L56578[eax]
  1144.   00038    ff 24 85 00 00
  1145.     00 00         jmp     DWORD PTR $L56600[eax*4]
  1146. $L56379:
  1147.  
  1148. ; 232  :     {
  1149. ; 233  :     case D3DDECLTYPE_D3DCOLOR:
  1150. ; 234  :     case D3DDECLTYPE_UBYTE4N:
  1151. ; 235  :     case D3DDECLTYPE_USHORT2N:
  1152. ; 236  :     case D3DDECLTYPE_USHORT4N:
  1153. ; 237  :         for(; i < cData; i++)
  1154.  
  1155.   0003f    85 d2         test     edx, edx
  1156.   00041    0f 86 b9 00 00
  1157.     00         jbe     $L56592
  1158.   00047    8b 75 10     mov     esi, DWORD PTR _pData$[ebp]
  1159.   0004a    8d 4d ec     lea     ecx, DWORD PTR _Data$[ebp]
  1160.   0004d    2b ce         sub     ecx, esi
  1161.   0004f    8b fa         mov     edi, edx
  1162.   00051    8b da         mov     ebx, edx
  1163. $L56380:
  1164.  
  1165. ; 238  :             Data[i] = (0.0f > pData[i]) ? 0.0f : ((1.0f < pData[i]) ? 1.0f : pData[i]);
  1166.  
  1167.   00053    d9 ee         fldz
  1168.   00055    d8 1e         fcomp     DWORD PTR [esi]
  1169.   00057    df e0         fnstsw     ax
  1170.   00059    f6 c4 41     test     ah, 65            ; 00000041H
  1171.   0005c    75 04         jne     SHORT $L56555
  1172.   0005e    d9 ee         fldz
  1173.   00060    eb 11         jmp     SHORT $L56554
  1174. $L56555:
  1175.   00062    d9 e8         fld1
  1176.   00064    d8 1e         fcomp     DWORD PTR [esi]
  1177.   00066    df e0         fnstsw     ax
  1178.   00068    f6 c4 05     test     ah, 5
  1179.   0006b    7a 04         jp     SHORT $L56553
  1180.   0006d    d9 e8         fld1
  1181.   0006f    eb 02         jmp     SHORT $L56554
  1182. $L56553:
  1183.   00071    d9 06         fld     DWORD PTR [esi]
  1184. $L56554:
  1185.   00073    d9 1c 31     fstp     DWORD PTR [ecx+esi]
  1186.   00076    83 c6 04     add     esi, 4
  1187.   00079    4f         dec     edi
  1188.   0007a    75 d7         jne     SHORT $L56380
  1189.  
  1190. ; 239  :         break;                    
  1191.  
  1192.   0007c    eb 7d         jmp     SHORT $L56392
  1193. $L56383:
  1194.  
  1195. ; 240  : 
  1196. ; 241  :     case D3DDECLTYPE_SHORT2N:
  1197. ; 242  :     case D3DDECLTYPE_SHORT4N:
  1198. ; 243  :     case D3DDECLTYPE_DEC3N:
  1199. ; 244  :         for(; i < cData; i++)
  1200.  
  1201.   0007e    85 d2         test     edx, edx
  1202.   00080    76 7e         jbe     SHORT $L56592
  1203.   00082    8b 75 10     mov     esi, DWORD PTR _pData$[ebp]
  1204.   00085    d9 05 00 00 00
  1205.     00         fld     DWORD PTR __real@bf800000
  1206.   0008b    8d 4d ec     lea     ecx, DWORD PTR _Data$[ebp]
  1207.   0008e    2b ce         sub     ecx, esi
  1208.   00090    8b fa         mov     edi, edx
  1209.   00092    8b da         mov     ebx, edx
  1210. $L56384:
  1211.  
  1212. ; 245  :             Data[i] = (-1.0f > pData[i]) ? -1.0f : ((1.0f < pData[i]) ? 1.0f : pData[i]);
  1213.  
  1214.   00094    d8 16         fcom     DWORD PTR [esi]
  1215.   00096    df e0         fnstsw     ax
  1216.   00098    f6 c4 41     test     ah, 65            ; 00000041H
  1217.   0009b    75 04         jne     SHORT $L56559
  1218.   0009d    d9 c0         fld     ST(0)
  1219.   0009f    eb 11         jmp     SHORT $L56558
  1220. $L56559:
  1221.   000a1    d9 e8         fld1
  1222.   000a3    d8 1e         fcomp     DWORD PTR [esi]
  1223.   000a5    df e0         fnstsw     ax
  1224.   000a7    f6 c4 05     test     ah, 5
  1225.   000aa    7a 04         jp     SHORT $L56557
  1226.   000ac    d9 e8         fld1
  1227.   000ae    eb 02         jmp     SHORT $L56558
  1228. $L56557:
  1229.   000b0    d9 06         fld     DWORD PTR [esi]
  1230. $L56558:
  1231.   000b2    d9 1c 0e     fstp     DWORD PTR [esi+ecx]
  1232.   000b5    83 c6 04     add     esi, 4
  1233.   000b8    4f         dec     edi
  1234.   000b9    75 d9         jne     SHORT $L56384
  1235.   000bb    dd d8         fstp     ST(0)
  1236.  
  1237. ; 246  :         break;                    
  1238.  
  1239.   000bd    eb 3c         jmp     SHORT $L56392
  1240. $L56387:
  1241.  
  1242. ; 247  : 
  1243. ; 248  :     case D3DDECLTYPE_UBYTE4:
  1244. ; 249  :     case D3DDECLTYPE_UDEC3:
  1245. ; 250  :         for(; i < cData; i++)
  1246.  
  1247.   000bf    85 d2         test     edx, edx
  1248.   000c1    76 3d         jbe     SHORT $L56592
  1249.   000c3    8b 75 10     mov     esi, DWORD PTR _pData$[ebp]
  1250.   000c6    8d 4d ec     lea     ecx, DWORD PTR _Data$[ebp]
  1251.   000c9    2b ce         sub     ecx, esi
  1252.   000cb    8b fa         mov     edi, edx
  1253.   000cd    8b da         mov     ebx, edx
  1254. $L56388:
  1255.  
  1256. ; 251  :             Data[i] = (0.0f > pData[i]) ? 0.0f : pData[i];
  1257.  
  1258.   000cf    d9 ee         fldz
  1259.   000d1    d8 1e         fcomp     DWORD PTR [esi]
  1260.   000d3    df e0         fnstsw     ax
  1261.   000d5    f6 c4 41     test     ah, 65            ; 00000041H
  1262.   000d8    75 04         jne     SHORT $L56561
  1263.   000da    d9 ee         fldz
  1264.   000dc    eb 02         jmp     SHORT $L56562
  1265. $L56561:
  1266.   000de    d9 06         fld     DWORD PTR [esi]
  1267. $L56562:
  1268.   000e0    d9 1c 0e     fstp     DWORD PTR [esi+ecx]
  1269.   000e3    83 c6 04     add     esi, 4
  1270.   000e6    4f         dec     edi
  1271.   000e7    75 e6         jne     SHORT $L56388
  1272.  
  1273. ; 252  :         break;                    
  1274.  
  1275.   000e9    eb 10         jmp     SHORT $L56392
  1276. $L56391:
  1277.  
  1278. ; 253  : 
  1279. ; 254  :     default:
  1280. ; 255  :         for(; i < cData; i++)
  1281.  
  1282.   000eb    85 d2         test     edx, edx
  1283.   000ed    76 11         jbe     SHORT $L56592
  1284.   000ef    8b 75 10     mov     esi, DWORD PTR _pData$[ebp]
  1285.   000f2    8b ca         mov     ecx, edx
  1286.   000f4    8d 7d ec     lea     edi, DWORD PTR _Data$[ebp]
  1287.   000f7    f3 a5         rep movsd
  1288.   000f9    8b da         mov     ebx, edx
  1289. $L56392:
  1290.  
  1291. ; 256  :             Data[i] = pData[i];
  1292. ; 257  :         break;
  1293. ; 258  :     }
  1294. ; 259  : 
  1295. ; 260  :     for(; i < 3; i++)
  1296.  
  1297.   000fb    83 fa 03     cmp     edx, 3
  1298.   000fe    73 11         jae     SHORT $L56575
  1299. $L56592:
  1300.  
  1301. ; 261  :         Data[i] = 0.0f;
  1302.  
  1303.   00100    6a 03         push     3
  1304.   00102    5a         pop     edx
  1305.   00103    2b d3         sub     edx, ebx
  1306.   00105    8d 7c 9d ec     lea     edi, DWORD PTR _Data$[ebp+ebx*4]
  1307.   00109    33 c0         xor     eax, eax
  1308.   0010b    8b ca         mov     ecx, edx
  1309.   0010d    f3 ab         rep stosd
  1310.   0010f    03 da         add     ebx, edx
  1311. $L56575:
  1312.  
  1313. ; 262  : 
  1314. ; 263  :     for(; i < 4; i++)
  1315.  
  1316.   00111    6a 04         push     4
  1317.   00113    59         pop     ecx
  1318.   00114    3b d9         cmp     ebx, ecx
  1319.   00116    73 0d         jae     SHORT $L56398
  1320.   00118    8d 7c 9d ec     lea     edi, DWORD PTR _Data$[ebp+ebx*4]
  1321.   0011c    2b cb         sub     ecx, ebx
  1322.   0011e    b8 00 00 80 3f     mov     eax, 1065353216        ; 3f800000H
  1323.   00123    f3 ab         rep stosd
  1324. $L56398:
  1325.  
  1326. ; 264  :         Data[i] = 1.0f;
  1327. ; 265  : 
  1328. ; 266  :     if(pElem)
  1329. ; 267  :     {
  1330. ; 268  :         LPVOID pElement = GetElementPointer(pElem,index);
  1331.  
  1332.   00125    ff 75 0c     push     DWORD PTR _index$[ebp]
  1333.   00128    8b 4d fc     mov     ecx, DWORD PTR _this$[ebp]
  1334.   0012b    ff 75 08     push     DWORD PTR _pElem$[ebp]
  1335.   0012e    e8 00 00 00 00     call     ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z ; CD3DXCrackDecl::GetElementPointer
  1336.   00133    8b f0         mov     esi, eax
  1337.  
  1338. ; 269  : 
  1339. ; 270  :         switch(pElem->Type)
  1340.  
  1341.   00135    8b 45 14     mov     eax, DWORD PTR tv484[ebp]
  1342.   00138    83 f8 10     cmp     eax, 16            ; 00000010H
  1343.   0013b    0f 87 cf 02 00
  1344.     00         ja     $L56404
  1345.   00141    ff 24 85 00 00
  1346.     00 00         jmp     DWORD PTR $L56601[eax*4]
  1347. $L56407:
  1348.  
  1349. ; 271  :         {
  1350. ; 272  :         case D3DDECLTYPE_FLOAT1:
  1351. ; 273  :             ((FLOAT *) pElement)[0] = Data[0];
  1352.  
  1353.   00148    8b 45 ec     mov     eax, DWORD PTR _Data$[ebp]
  1354.   0014b    89 06         mov     DWORD PTR [esi], eax
  1355.  
  1356. ; 274  :             break;
  1357.  
  1358.   0014d    e9 be 02 00 00     jmp     $L56404
  1359. $L56409:
  1360.  
  1361. ; 275  : 
  1362. ; 276  :         case D3DDECLTYPE_FLOAT2:
  1363. ; 277  :             ((FLOAT *) pElement)[0] = Data[0];
  1364.  
  1365.   00152    8b 45 ec     mov     eax, DWORD PTR _Data$[ebp]
  1366.   00155    89 06         mov     DWORD PTR [esi], eax
  1367.  
  1368. ; 278  :             ((FLOAT *) pElement)[1] = Data[1];
  1369.  
  1370.   00157    8b 45 f0     mov     eax, DWORD PTR _Data$[ebp+4]
  1371.   0015a    89 46 04     mov     DWORD PTR [esi+4], eax
  1372.  
  1373. ; 279  :             break;
  1374.  
  1375.   0015d    e9 ae 02 00 00     jmp     $L56404
  1376. $L56412:
  1377.  
  1378. ; 280  : 
  1379. ; 281  :         case D3DDECLTYPE_FLOAT3:
  1380. ; 282  :             ((FLOAT *) pElement)[0] = Data[0];
  1381.  
  1382.   00162    8b 45 ec     mov     eax, DWORD PTR _Data$[ebp]
  1383.   00165    89 06         mov     DWORD PTR [esi], eax
  1384.  
  1385. ; 283  :             ((FLOAT *) pElement)[1] = Data[1];
  1386.  
  1387.   00167    8b 45 f0     mov     eax, DWORD PTR _Data$[ebp+4]
  1388.   0016a    89 46 04     mov     DWORD PTR [esi+4], eax
  1389.  
  1390. ; 284  :             ((FLOAT *) pElement)[2] = Data[2];
  1391.  
  1392.   0016d    8b 45 f4     mov     eax, DWORD PTR _Data$[ebp+8]
  1393.   00170    89 46 08     mov     DWORD PTR [esi+8], eax
  1394.  
  1395. ; 285  :             break;
  1396.  
  1397.   00173    e9 98 02 00 00     jmp     $L56404
  1398. $L56416:
  1399.  
  1400. ; 286  : 
  1401. ; 287  :         case D3DDECLTYPE_FLOAT4:
  1402. ; 288  :             ((FLOAT *) pElement)[0] = Data[0];
  1403.  
  1404.   00178    8b 45 ec     mov     eax, DWORD PTR _Data$[ebp]
  1405.   0017b    89 06         mov     DWORD PTR [esi], eax
  1406.  
  1407. ; 289  :             ((FLOAT *) pElement)[1] = Data[1];
  1408.  
  1409.   0017d    8b 45 f0     mov     eax, DWORD PTR _Data$[ebp+4]
  1410.   00180    89 46 04     mov     DWORD PTR [esi+4], eax
  1411.  
  1412. ; 290  :             ((FLOAT *) pElement)[2] = Data[2];
  1413.  
  1414.   00183    8b 45 f4     mov     eax, DWORD PTR _Data$[ebp+8]
  1415.   00186    89 46 08     mov     DWORD PTR [esi+8], eax
  1416.  
  1417. ; 291  :             ((FLOAT *) pElement)[3] = Data[3];
  1418.  
  1419.   00189    8b 45 f8     mov     eax, DWORD PTR _Data$[ebp+12]
  1420.   0018c    89 46 0c     mov     DWORD PTR [esi+12], eax
  1421.  
  1422. ; 292  :             break;
  1423.  
  1424.   0018f    e9 7c 02 00 00     jmp     $L56404
  1425. $L56421:
  1426.  
  1427. ; 293  : 
  1428. ; 294  :         case D3DDECLTYPE_D3DCOLOR:
  1429. ; 295  :             ((D3DCOLOR *) pElement)[0] = 
  1430. ; 296  :                 (((D3DCOLOR) (Data[0] * 255.0f + 0.5f) & 0xff) << 16) |
  1431. ; 297  :                 (((D3DCOLOR) (Data[1] * 255.0f + 0.5f) & 0xff) <<  8) |
  1432. ; 298  :                 (((D3DCOLOR) (Data[2] * 255.0f + 0.5f) & 0xff) <<  0) |
  1433. ; 299  :                 (((D3DCOLOR) (Data[3] * 255.0f + 0.5f) & 0xff) << 24);
  1434.  
  1435.   00194    d9 05 00 00 00
  1436.     00         fld     DWORD PTR __real@437f0000
  1437.   0019a    d9 05 00 00 00
  1438.     00         fld     DWORD PTR __real@3f000000
  1439.   001a0    d9 45 ec     fld     DWORD PTR _Data$[ebp]
  1440.   001a3    d8 ca         fmul     ST(0), ST(2)
  1441.   001a5    d8 c1         fadd     ST(0), ST(1)
  1442.   001a7    e8 00 00 00 00     call     __ftol
  1443.   001ac    d9 45 f8     fld     DWORD PTR _Data$[ebp+12]
  1444.   001af    d8 ca         fmul     ST(0), ST(2)
  1445.   001b1    8b d8         mov     ebx, eax
  1446.   001b3    bf ff 00 00 00     mov     edi, 255        ; 000000ffH
  1447.   001b8    23 df         and     ebx, edi
  1448.   001ba    d8 c1         fadd     ST(0), ST(1)
  1449.   001bc    e8 00 00 00 00     call     __ftol
  1450.   001c1    d9 45 f0     fld     DWORD PTR _Data$[ebp+4]
  1451.   001c4    d8 ca         fmul     ST(0), ST(2)
  1452.   001c6    c1 e0 08     shl     eax, 8
  1453.   001c9    0b d8         or     ebx, eax
  1454.   001cb    c1 e3 08     shl     ebx, 8
  1455.   001ce    d8 c1         fadd     ST(0), ST(1)
  1456.   001d0    e8 00 00 00 00     call     __ftol
  1457.   001d5    d9 45 f4     fld     DWORD PTR _Data$[ebp+8]
  1458.   001d8    23 c7         and     eax, edi
  1459.   001da    0b d8         or     ebx, eax
  1460.   001dc    c1 e3 08     shl     ebx, 8
  1461.  
  1462. ; 300  :             break;                    
  1463.  
  1464.   001df    e9 07 02 00 00     jmp     $L56595
  1465. $L56427:
  1466.  
  1467. ; 301  : 
  1468. ; 302  :         case D3DDECLTYPE_UBYTE4:
  1469. ; 303  :             ((UINT8 *) pElement)[0] = (UINT8) (Data[0] + 0.5f);
  1470.  
  1471.   001e4    d9 05 00 00 00
  1472.     00         fld     DWORD PTR __real@3f000000
  1473.   001ea    d9 45 ec     fld     DWORD PTR _Data$[ebp]
  1474.   001ed    d8 c1         fadd     ST(0), ST(1)
  1475.   001ef    e8 00 00 00 00     call     __ftol
  1476.   001f4    88 06         mov     BYTE PTR [esi], al
  1477.  
  1478. ; 304  :             ((UINT8 *) pElement)[1] = (UINT8) (Data[1] + 0.5f);
  1479.  
  1480.   001f6    d9 45 f0     fld     DWORD PTR _Data$[ebp+4]
  1481.   001f9    d8 c1         fadd     ST(0), ST(1)
  1482.   001fb    e8 00 00 00 00     call     __ftol
  1483.   00200    88 46 01     mov     BYTE PTR [esi+1], al
  1484.  
  1485. ; 305  :             ((UINT8 *) pElement)[2] = (UINT8) (Data[2] + 0.5f);
  1486.  
  1487.   00203    d9 45 f4     fld     DWORD PTR _Data$[ebp+8]
  1488.   00206    d8 c1         fadd     ST(0), ST(1)
  1489.   00208    e8 00 00 00 00     call     __ftol
  1490.   0020d    88 46 02     mov     BYTE PTR [esi+2], al
  1491.  
  1492. ; 306  :             ((UINT8 *) pElement)[3] = (UINT8) (Data[3] + 0.5f);
  1493.  
  1494.   00210    d9 45 f8     fld     DWORD PTR _Data$[ebp+12]
  1495.   00213    d8 c1         fadd     ST(0), ST(1)
  1496.   00215    e8 00 00 00 00     call     __ftol
  1497.  
  1498. ; 307  :             break;
  1499.  
  1500.   0021a    e9 9d 00 00 00     jmp     $L56599
  1501. $L56436:
  1502.  
  1503. ; 308  : 
  1504. ; 309  :         case D3DDECLTYPE_SHORT2:
  1505. ; 310  :             ((INT16 *) pElement)[0] = (INT16) (Data[0] + 0.5f);
  1506.  
  1507.   0021f    d9 45 ec     fld     DWORD PTR _Data$[ebp]
  1508.   00222    d8 05 00 00 00
  1509.     00         fadd     DWORD PTR __real@3f000000
  1510.   00228    e8 00 00 00 00     call     __ftol
  1511.   0022d    66 89 06     mov     WORD PTR [esi], ax
  1512.  
  1513. ; 311  :             ((INT16 *) pElement)[1] = (INT16) (Data[1] + 0.5f);
  1514.  
  1515.   00230    d9 45 f0     fld     DWORD PTR _Data$[ebp+4]
  1516.  
  1517. ; 312  :             break;
  1518.  
  1519.   00233    e9 d8 00 00 00     jmp     $L56598
  1520. $L56441:
  1521.  
  1522. ; 313  : 
  1523. ; 314  :         case D3DDECLTYPE_SHORT4:
  1524. ; 315  :             ((INT16 *) pElement)[0] = (INT16) (Data[0] + 0.5f);
  1525.  
  1526.   00238    d9 05 00 00 00
  1527.     00         fld     DWORD PTR __real@3f000000
  1528.   0023e    d9 45 ec     fld     DWORD PTR _Data$[ebp]
  1529.   00241    d8 c1         fadd     ST(0), ST(1)
  1530.   00243    e8 00 00 00 00     call     __ftol
  1531.   00248    66 89 06     mov     WORD PTR [esi], ax
  1532.  
  1533. ; 316  :             ((INT16 *) pElement)[1] = (INT16) (Data[1] + 0.5f);
  1534.  
  1535.   0024b    d9 45 f0     fld     DWORD PTR _Data$[ebp+4]
  1536.   0024e    d8 c1         fadd     ST(0), ST(1)
  1537.   00250    e8 00 00 00 00     call     __ftol
  1538.   00255    66 89 46 02     mov     WORD PTR [esi+2], ax
  1539.  
  1540. ; 317  :             ((INT16 *) pElement)[2] = (INT16) (Data[2] + 0.5f);
  1541.  
  1542.   00259    d9 45 f4     fld     DWORD PTR _Data$[ebp+8]
  1543.   0025c    d8 c1         fadd     ST(0), ST(1)
  1544.   0025e    e8 00 00 00 00     call     __ftol
  1545.   00263    66 89 46 04     mov     WORD PTR [esi+4], ax
  1546.  
  1547. ; 318  :             ((INT16 *) pElement)[3] = (INT16) (Data[3] + 0.5f);
  1548.  
  1549.   00267    d9 45 f8     fld     DWORD PTR _Data$[ebp+12]
  1550.   0026a    d8 c1         fadd     ST(0), ST(1)
  1551.   0026c    e8 00 00 00 00     call     __ftol
  1552.  
  1553. ; 319  :             break;
  1554.  
  1555.   00271    e9 f7 00 00 00     jmp     $L56597
  1556. $L56450:
  1557.  
  1558. ; 320  : 
  1559. ; 321  :         case D3DDECLTYPE_UBYTE4N:
  1560. ; 322  :             ((UINT8 *) pElement)[0] = (UINT8) (Data[0] * 255.0f + 0.5f);
  1561.  
  1562.   00276    d9 05 00 00 00
  1563.     00         fld     DWORD PTR __real@437f0000
  1564.   0027c    d9 05 00 00 00
  1565.     00         fld     DWORD PTR __real@3f000000
  1566.   00282    d9 45 ec     fld     DWORD PTR _Data$[ebp]
  1567.   00285    d8 ca         fmul     ST(0), ST(2)
  1568.   00287    d8 c1         fadd     ST(0), ST(1)
  1569.   00289    e8 00 00 00 00     call     __ftol
  1570.   0028e    88 06         mov     BYTE PTR [esi], al
  1571.  
  1572. ; 323  :             ((UINT8 *) pElement)[1] = (UINT8) (Data[1] * 255.0f + 0.5f);
  1573.  
  1574.   00290    d9 45 f0     fld     DWORD PTR _Data$[ebp+4]
  1575.   00293    d8 ca         fmul     ST(0), ST(2)
  1576.   00295    d8 c1         fadd     ST(0), ST(1)
  1577.   00297    e8 00 00 00 00     call     __ftol
  1578.   0029c    88 46 01     mov     BYTE PTR [esi+1], al
  1579.  
  1580. ; 324  :             ((UINT8 *) pElement)[2] = (UINT8) (Data[2] * 255.0f + 0.5f);
  1581.  
  1582.   0029f    d9 45 f4     fld     DWORD PTR _Data$[ebp+8]
  1583.   002a2    d8 ca         fmul     ST(0), ST(2)
  1584.   002a4    d8 c1         fadd     ST(0), ST(1)
  1585.   002a6    e8 00 00 00 00     call     __ftol
  1586.   002ab    88 46 02     mov     BYTE PTR [esi+2], al
  1587.  
  1588. ; 325  :             ((UINT8 *) pElement)[3] = (UINT8) (Data[3] * 255.0f + 0.5f);
  1589.  
  1590.   002ae    d9 45 f8     fld     DWORD PTR _Data$[ebp+12]
  1591.   002b1    d8 ca         fmul     ST(0), ST(2)
  1592.   002b3    d8 c1         fadd     ST(0), ST(1)
  1593.   002b5    e8 00 00 00 00     call     __ftol
  1594.   002ba    dd d8         fstp     ST(0)
  1595. $L56599:
  1596.   002bc    dd d8         fstp     ST(0)
  1597.   002be    88 46 03     mov     BYTE PTR [esi+3], al
  1598.  
  1599. ; 326  :             break;
  1600.  
  1601.   002c1    e9 4a 01 00 00     jmp     $L56404
  1602. $L56459:
  1603.  
  1604. ; 327  : 
  1605. ; 328  :         case D3DDECLTYPE_SHORT2N:
  1606. ; 329  :             ((INT16 *) pElement)[0] = (INT16) (Data[0] * 32767.0f + 0.5f);
  1607.  
  1608.   002c6    d9 45 ec     fld     DWORD PTR _Data$[ebp]
  1609.   002c9    d8 0d 00 00 00
  1610.     00         fmul     DWORD PTR __real@46fffe00
  1611.   002cf    d8 05 00 00 00
  1612.     00         fadd     DWORD PTR __real@3f000000
  1613.   002d5    e8 00 00 00 00     call     __ftol
  1614.   002da    66 89 06     mov     WORD PTR [esi], ax
  1615.  
  1616. ; 330  :             ((INT16 *) pElement)[1] = (INT16) (Data[1] * 32767.0f + 0.5f);
  1617.  
  1618.   002dd    d9 45 f0     fld     DWORD PTR _Data$[ebp+4]
  1619.   002e0    d8 0d 00 00 00
  1620.     00         fmul     DWORD PTR __real@46fffe00
  1621.  
  1622. ; 331  :             break;
  1623.  
  1624.   002e6    eb 28         jmp     SHORT $L56598
  1625. $L56464:
  1626.  
  1627. ; 332  : 
  1628. ; 333  :         case D3DDECLTYPE_SHORT4N:
  1629. ; 334  :             ((INT16 *) pElement)[0] = (INT16) (Data[0] * 32767.0f + 0.5f);
  1630.  
  1631.   002e8    d9 05 00 00 00
  1632.     00         fld     DWORD PTR __real@46fffe00
  1633.  
  1634. ; 335  :             ((INT16 *) pElement)[1] = (INT16) (Data[1] * 32767.0f + 0.5f);
  1635. ; 336  :             ((INT16 *) pElement)[2] = (INT16) (Data[2] * 32767.0f + 0.5f);
  1636. ; 337  :             ((INT16 *) pElement)[3] = (INT16) (Data[3] * 32767.0f + 0.5f);
  1637. ; 338  :             break;
  1638.  
  1639.   002ee    eb 3a         jmp     SHORT $L56596
  1640. $L56473:
  1641.  
  1642. ; 339  : 
  1643. ; 340  :         case D3DDECLTYPE_USHORT2N:
  1644. ; 341  :             ((UINT16 *) pElement)[0] = (UINT16) (Data[0] * 65535.0f + 0.5f);
  1645.  
  1646.   002f0    d9 45 ec     fld     DWORD PTR _Data$[ebp]
  1647.   002f3    d8 0d 00 00 00
  1648.     00         fmul     DWORD PTR __real@477fff00
  1649.   002f9    d8 05 00 00 00
  1650.     00         fadd     DWORD PTR __real@3f000000
  1651.   002ff    e8 00 00 00 00     call     __ftol
  1652.   00304    66 89 06     mov     WORD PTR [esi], ax
  1653.  
  1654. ; 342  :             ((UINT16 *) pElement)[1] = (UINT16) (Data[1] * 65535.0f + 0.5f);
  1655.  
  1656.   00307    d9 45 f0     fld     DWORD PTR _Data$[ebp+4]
  1657.   0030a    d8 0d 00 00 00
  1658.     00         fmul     DWORD PTR __real@477fff00
  1659. $L56598:
  1660.   00310    d8 05 00 00 00
  1661.     00         fadd     DWORD PTR __real@3f000000
  1662.   00316    e8 00 00 00 00     call     __ftol
  1663.   0031b    66 89 46 02     mov     WORD PTR [esi+2], ax
  1664.  
  1665. ; 343  :             break;
  1666.  
  1667.   0031f    e9 ec 00 00 00     jmp     $L56404
  1668. $L56478:
  1669.  
  1670. ; 344  : 
  1671. ; 345  :         case D3DDECLTYPE_USHORT4N:
  1672. ; 346  :             ((UINT16 *) pElement)[0] = (UINT16) (Data[0] * 65535.0f + 0.5f);
  1673.  
  1674.   00324    d9 05 00 00 00
  1675.     00         fld     DWORD PTR __real@477fff00
  1676. $L56596:
  1677.   0032a    d9 05 00 00 00
  1678.     00         fld     DWORD PTR __real@3f000000
  1679.   00330    d9 45 ec     fld     DWORD PTR _Data$[ebp]
  1680.   00333    d8 ca         fmul     ST(0), ST(2)
  1681.   00335    d8 c1         fadd     ST(0), ST(1)
  1682.   00337    e8 00 00 00 00     call     __ftol
  1683.   0033c    66 89 06     mov     WORD PTR [esi], ax
  1684.  
  1685. ; 347  :             ((UINT16 *) pElement)[1] = (UINT16) (Data[1] * 65535.0f + 0.5f);
  1686.  
  1687.   0033f    d9 45 f0     fld     DWORD PTR _Data$[ebp+4]
  1688.   00342    d8 ca         fmul     ST(0), ST(2)
  1689.   00344    d8 c1         fadd     ST(0), ST(1)
  1690.   00346    e8 00 00 00 00     call     __ftol
  1691.   0034b    66 89 46 02     mov     WORD PTR [esi+2], ax
  1692.  
  1693. ; 348  :             ((UINT16 *) pElement)[2] = (UINT16) (Data[2] * 65535.0f + 0.5f);
  1694.  
  1695.   0034f    d9 45 f4     fld     DWORD PTR _Data$[ebp+8]
  1696.   00352    d8 ca         fmul     ST(0), ST(2)
  1697.   00354    d8 c1         fadd     ST(0), ST(1)
  1698.   00356    e8 00 00 00 00     call     __ftol
  1699.   0035b    66 89 46 04     mov     WORD PTR [esi+4], ax
  1700.  
  1701. ; 349  :             ((UINT16 *) pElement)[3] = (UINT16) (Data[3] * 65535.0f + 0.5f);
  1702.  
  1703.   0035f    d9 45 f8     fld     DWORD PTR _Data$[ebp+12]
  1704.   00362    d8 ca         fmul     ST(0), ST(2)
  1705.   00364    d8 c1         fadd     ST(0), ST(1)
  1706.   00366    e8 00 00 00 00     call     __ftol
  1707.   0036b    dd d8         fstp     ST(0)
  1708. $L56597:
  1709.   0036d    dd d8         fstp     ST(0)
  1710.   0036f    66 89 46 06     mov     WORD PTR [esi+6], ax
  1711.  
  1712. ; 350  :             break;
  1713.  
  1714.   00373    e9 98 00 00 00     jmp     $L56404
  1715. $L56487:
  1716.  
  1717. ; 351  : 
  1718. ; 352  :         case D3DDECLTYPE_UDEC3:
  1719. ; 353  :             ((UINT32 *) pElement)[0] = 
  1720. ; 354  :                 (((UINT32) (Data[0] + 0.5f) & 0x3ff) <<  0) |
  1721. ; 355  :                 (((UINT32) (Data[1] + 0.5f) & 0x3ff) << 10) |
  1722. ; 356  :                 (((UINT32) (Data[2] + 0.5f) & 0x3ff) << 20); 
  1723.  
  1724.   00378    d9 05 00 00 00
  1725.     00         fld     DWORD PTR __real@3f000000
  1726.   0037e    d9 45 f4     fld     DWORD PTR _Data$[ebp+8]
  1727.   00381    d8 c1         fadd     ST(0), ST(1)
  1728.   00383    e8 00 00 00 00     call     __ftol
  1729.   00388    d9 45 f0     fld     DWORD PTR _Data$[ebp+4]
  1730.   0038b    8b d8         mov     ebx, eax
  1731.   0038d    d8 c1         fadd     ST(0), ST(1)
  1732.   0038f    bf ff 03 00 00     mov     edi, 1023        ; 000003ffH
  1733.   00394    23 df         and     ebx, edi
  1734.   00396    c1 e3 0a     shl     ebx, 10            ; 0000000aH
  1735.   00399    e8 00 00 00 00     call     __ftol
  1736.   0039e    d9 45 ec     fld     DWORD PTR _Data$[ebp]
  1737.   003a1    23 c7         and     eax, edi
  1738.   003a3    d8 c1         fadd     ST(0), ST(1)
  1739.   003a5    0b d8         or     ebx, eax
  1740.   003a7    c1 e3 0a     shl     ebx, 10            ; 0000000aH
  1741.   003aa    e8 00 00 00 00     call     __ftol
  1742.  
  1743. ; 357  :             break;                    
  1744.  
  1745.   003af    eb 45         jmp     SHORT $L56594
  1746. $L56492:
  1747.  
  1748. ; 358  : 
  1749. ; 359  :         case D3DDECLTYPE_DEC3N:
  1750. ; 360  :             ((UINT32 *) pElement)[0] = 
  1751. ; 361  :                 (((UINT32) (Data[0] * 511.0f + 0.5f) & 0x3ff) <<  0) |
  1752. ; 362  :                 (((UINT32) (Data[1] * 511.0f + 0.5f) & 0x3ff) << 10) |
  1753. ; 363  :                 (((UINT32) (Data[2] * 511.0f + 0.5f) & 0x3ff) << 20); 
  1754.  
  1755.   003b1    d9 05 00 00 00
  1756.     00         fld     DWORD PTR __real@43ff8000
  1757.   003b7    d9 05 00 00 00
  1758.     00         fld     DWORD PTR __real@3f000000
  1759.   003bd    d9 45 f4     fld     DWORD PTR _Data$[ebp+8]
  1760.   003c0    d8 ca         fmul     ST(0), ST(2)
  1761.   003c2    d8 c1         fadd     ST(0), ST(1)
  1762.   003c4    e8 00 00 00 00     call     __ftol
  1763.   003c9    d9 45 f0     fld     DWORD PTR _Data$[ebp+4]
  1764.   003cc    d8 ca         fmul     ST(0), ST(2)
  1765.   003ce    8b d8         mov     ebx, eax
  1766.   003d0    bf ff 03 00 00     mov     edi, 1023        ; 000003ffH
  1767.   003d5    23 df         and     ebx, edi
  1768.   003d7    d8 c1         fadd     ST(0), ST(1)
  1769.   003d9    c1 e3 0a     shl     ebx, 10            ; 0000000aH
  1770.   003dc    e8 00 00 00 00     call     __ftol
  1771.   003e1    d9 45 ec     fld     DWORD PTR _Data$[ebp]
  1772.   003e4    23 c7         and     eax, edi
  1773.   003e6    0b d8         or     ebx, eax
  1774.   003e8    c1 e3 0a     shl     ebx, 10            ; 0000000aH
  1775. $L56595:
  1776.   003eb    d8 ca         fmul     ST(0), ST(2)
  1777.   003ed    d8 c1         fadd     ST(0), ST(1)
  1778.   003ef    e8 00 00 00 00     call     __ftol
  1779.   003f4    dd d8         fstp     ST(0)
  1780. $L56594:
  1781.   003f6    23 c7         and     eax, edi
  1782.   003f8    dd d8         fstp     ST(0)
  1783.   003fa    0b d8         or     ebx, eax
  1784.   003fc    89 1e         mov     DWORD PTR [esi], ebx
  1785.  
  1786. ; 364  :             break;                  
  1787.  
  1788.   003fe    eb 10         jmp     SHORT $L56404
  1789. $L56497:
  1790.  
  1791. ; 365  :         case D3DDECLTYPE_FLOAT16_2:
  1792. ; 366  :             D3DXFloat32To16Array((D3DXFLOAT16*)pElement,Data,2);
  1793.  
  1794.   00400    6a 02         push     2
  1795.  
  1796. ; 367  :             break;
  1797.  
  1798.   00402    eb 02         jmp     SHORT $L56593
  1799. $L56499:
  1800.  
  1801. ; 368  :         case D3DDECLTYPE_FLOAT16_4:
  1802. ; 369  :             D3DXFloat32To16Array((D3DXFLOAT16*)pElement,Data,4);
  1803.  
  1804.   00404    6a 04         push     4
  1805. $L56593:
  1806.   00406    8d 45 ec     lea     eax, DWORD PTR _Data$[ebp]
  1807.   00409    50         push     eax
  1808.   0040a    56         push     esi
  1809.   0040b    e8 00 00 00 00     call     _D3DXFloat32To16Array@12
  1810. $L56404:
  1811.   00410    5f         pop     edi
  1812.   00411    5e         pop     esi
  1813.   00412    5b         pop     ebx
  1814.  
  1815. ; 370  :             break;
  1816. ; 371  :         }
  1817. ; 372  :     }
  1818. ; 373  : }
  1819.  
  1820.   00413    c9         leave
  1821.   00414    c2 10 00     ret     16            ; 00000010H
  1822. $L56600:
  1823.   00417    00 00 00 00     DD     $L56379
  1824.   0041b    00 00 00 00     DD     $L56387
  1825.   0041f    00 00 00 00     DD     $L56383
  1826.   00423    00 00 00 00     DD     $L56391
  1827. $L56578:
  1828.   00427    00         DB     0
  1829.   00428    01         DB     1
  1830.   00429    03         DB     3
  1831.   0042a    03         DB     3
  1832.   0042b    00         DB     0
  1833.   0042c    02         DB     2
  1834.   0042d    02         DB     2
  1835.   0042e    00         DB     0
  1836.   0042f    00         DB     0
  1837.   00430    01         DB     1
  1838.   00431    02         DB     2
  1839. $L56601:
  1840.   00432    00 00 00 00     DD     $L56407
  1841.   00436    00 00 00 00     DD     $L56409
  1842.   0043a    00 00 00 00     DD     $L56412
  1843.   0043e    00 00 00 00     DD     $L56416
  1844.   00442    00 00 00 00     DD     $L56421
  1845.   00446    00 00 00 00     DD     $L56427
  1846.   0044a    00 00 00 00     DD     $L56436
  1847.   0044e    00 00 00 00     DD     $L56441
  1848.   00452    00 00 00 00     DD     $L56450
  1849.   00456    00 00 00 00     DD     $L56459
  1850.   0045a    00 00 00 00     DD     $L56464
  1851.   0045e    00 00 00 00     DD     $L56473
  1852.   00462    00 00 00 00     DD     $L56478
  1853.   00466    00 00 00 00     DD     $L56487
  1854.   0046a    00 00 00 00     DD     $L56492
  1855.   0046e    00 00 00 00     DD     $L56497
  1856.   00472    00 00 00 00     DD     $L56499
  1857. ?Encode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPBMI@Z ENDP ; CD3DXCrackDecl::Encode
  1858. _TEXT    ENDS
  1859. END
  1860.