home *** CD-ROM | disk | FTP | other *** search
Text File | 2004-09-30 | 54.8 KB | 1,860 lines |
- ; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4035
-
- TITLE .\crackdecl.cpp
- .386P
- include listing.inc
- if @Version gt 510
- .model FLAT
- else
- _TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
- _TEXT ENDS
- _DATA SEGMENT DWORD USE32 PUBLIC 'DATA'
- _DATA ENDS
- CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
- CONST ENDS
- _BSS SEGMENT DWORD USE32 PUBLIC 'BSS'
- _BSS ENDS
- $$SYMBOLS SEGMENT BYTE USE32 'DEBSYM'
- $$SYMBOLS ENDS
- _TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
- _TLS ENDS
- ; COMDAT ??0CD3DXCrackDecl@@QAE@XZ
- _TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
- _TEXT ENDS
- ; COMDAT ?SetDeclaration@CD3DXCrackDecl@@QAEJPBU_D3DVERTEXELEMENT9@@@Z
- _TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
- _TEXT ENDS
- ; COMDAT ?SetStreamSource@CD3DXCrackDecl@@QAEJIPAXI@Z
- _TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
- _TEXT ENDS
- ; COMDAT ?Decode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPAMI@Z
- _TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
- _TEXT ENDS
- ; COMDAT ?Encode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPBMI@Z
- _TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
- _TEXT ENDS
- ; COMDAT ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z
- _TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
- _TEXT ENDS
- ; COMDAT ?GetVertex@CD3DXCrackDecl@@QAEPAEII@Z
- _TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
- _TEXT ENDS
- FLAT GROUP _DATA, CONST, _BSS
- ASSUME CS: FLAT, DS: FLAT, SS: FLAT
- endif
-
- INCLUDELIB LIBC
- INCLUDELIB OLDNAMES
-
- PUBLIC ??0CD3DXCrackDecl@@QAE@XZ ; CD3DXCrackDecl::CD3DXCrackDecl
- ; Function compile flags: /Ogs
- ; File d:\builds\nt32_fre\multimedia\directx\dxsdk\src\mview\gxu\crackdecl.cpp
- ; COMDAT ??0CD3DXCrackDecl@@QAE@XZ
- _TEXT SEGMENT
- ??0CD3DXCrackDecl@@QAE@XZ PROC NEAR ; CD3DXCrackDecl::CD3DXCrackDecl, COMDAT
- ; _this$ = ecx
-
- ; 24 : }
- ; 25 : }
-
- 00000 8b ff npad 2
- 00002 57 push edi
-
- ; 20 : {
-
- 00003 8b d1 mov edx, ecx
-
- ; 21 : for(UINT i = 0; i < 16; i++)
- ; 22 : {
- ; 23 : dwStride[i] = 0;
-
- 00005 6a 10 push 16 ; 00000010H
- 00007 59 pop ecx
- 00008 33 c0 xor eax, eax
- 0000a 8d 7a 48 lea edi, DWORD PTR [edx+72]
- 0000d f3 ab rep stosd
-
- ; 24 : }
- ; 25 : }
-
- 0000f 8b c2 mov eax, edx
- 00011 5f pop edi
- 00012 c3 ret 0
- ??0CD3DXCrackDecl@@QAE@XZ ENDP ; CD3DXCrackDecl::CD3DXCrackDecl
- _TEXT ENDS
- PUBLIC ?SetDeclaration@CD3DXCrackDecl@@QAEJPBU_D3DVERTEXELEMENT9@@@Z ; CD3DXCrackDecl::SetDeclaration
- EXTRN _D3DXGetDeclLength@4:NEAR
- ; Function compile flags: /Ogs
- ; COMDAT ?SetDeclaration@CD3DXCrackDecl@@QAEJPBU_D3DVERTEXELEMENT9@@@Z
- _TEXT SEGMENT
- _pDecl$ = 8 ; size = 4
- ?SetDeclaration@CD3DXCrackDecl@@QAEJPBU_D3DVERTEXELEMENT9@@@Z PROC NEAR ; CD3DXCrackDecl::SetDeclaration, COMDAT
- ; _this$ = ecx
-
- ; 34 : }
-
- 00000 8b ff npad 2
-
- ; 30 : {
-
- 00002 55 push ebp
- 00003 8b ec mov ebp, esp
-
- ; 31 : pElements = pDecl;
-
- 00005 8b 45 08 mov eax, DWORD PTR _pDecl$[ebp]
- 00008 56 push esi
- 00009 8b f1 mov esi, ecx
-
- ; 32 : dwNumElements = D3DXGetDeclLength(pDecl);
-
- 0000b 50 push eax
- 0000c 89 06 mov DWORD PTR [esi], eax
- 0000e e8 00 00 00 00 call _D3DXGetDeclLength@4
- 00013 89 46 04 mov DWORD PTR [esi+4], eax
-
- ; 33 : return S_OK;
-
- 00016 33 c0 xor eax, eax
- 00018 5e pop esi
-
- ; 34 : }
-
- 00019 5d pop ebp
- 0001a c2 04 00 ret 4
- ?SetDeclaration@CD3DXCrackDecl@@QAEJPBU_D3DVERTEXELEMENT9@@@Z ENDP ; CD3DXCrackDecl::SetDeclaration
- _TEXT ENDS
- PUBLIC ?SetStreamSource@CD3DXCrackDecl@@QAEJIPAXI@Z ; CD3DXCrackDecl::SetStreamSource
- EXTRN _D3DXGetDeclVertexSize@8:NEAR
- ; Function compile flags: /Ogs
- ; COMDAT ?SetStreamSource@CD3DXCrackDecl@@QAEJIPAXI@Z
- _TEXT SEGMENT
- _Stream$ = 8 ; size = 4
- _pData$ = 12 ; size = 4
- _Stride$ = 16 ; size = 4
- ?SetStreamSource@CD3DXCrackDecl@@QAEJIPAXI@Z PROC NEAR ; CD3DXCrackDecl::SetStreamSource, COMDAT
- ; _this$ = ecx
-
- ; 48 : }
-
- 00000 8b ff npad 2
-
- ; 39 : {
-
- 00002 55 push ebp
- 00003 8b ec mov ebp, esp
-
- ; 40 :
- ; 41 : pStream[Stream] = (LPBYTE) pData;
-
- 00005 8b 45 0c mov eax, DWORD PTR _pData$[ebp]
- 00008 56 push esi
- 00009 57 push edi
- 0000a 8b 7d 08 mov edi, DWORD PTR _Stream$[ebp]
- 0000d 8b f1 mov esi, ecx
- 0000f 89 44 be 08 mov DWORD PTR [esi+edi*4+8], eax
-
- ; 42 : if(Stride == 0)
-
- 00013 8b 45 10 mov eax, DWORD PTR _Stride$[ebp]
- 00016 85 c0 test eax, eax
- 00018 75 08 jne SHORT $L56228
-
- ; 43 : dwStride[Stream] = D3DXGetDeclVertexSize(pElements,Stream);
-
- 0001a 57 push edi
- 0001b ff 36 push DWORD PTR [esi]
- 0001d e8 00 00 00 00 call _D3DXGetDeclVertexSize@8
- $L56228:
-
- ; 44 : else
- ; 45 : dwStride[Stream] = Stride;
-
- 00022 89 44 be 48 mov DWORD PTR [esi+edi*4+72], eax
- 00026 5f pop edi
-
- ; 46 :
- ; 47 : return S_OK;
-
- 00027 33 c0 xor eax, eax
- 00029 5e pop esi
-
- ; 48 : }
-
- 0002a 5d pop ebp
- 0002b c2 0c 00 ret 12 ; 0000000cH
- ?SetStreamSource@CD3DXCrackDecl@@QAEJIPAXI@Z ENDP ; CD3DXCrackDecl::SetStreamSource
- _TEXT ENDS
- PUBLIC ?GetVertex@CD3DXCrackDecl@@QAEPAEII@Z ; CD3DXCrackDecl::GetVertex
- ; Function compile flags: /Ogs
- ; File d:\builds\nt32_fre\multimedia\directx\dxsdk\src\mview\gxu\crackdecl.h
- ; COMDAT ?GetVertex@CD3DXCrackDecl@@QAEPAEII@Z
- _TEXT SEGMENT
- _Stream$ = 8 ; size = 4
- _Index$ = 12 ; size = 4
- ?GetVertex@CD3DXCrackDecl@@QAEPAEII@Z PROC NEAR ; CD3DXCrackDecl::GetVertex, COMDAT
- ; _this$ = ecx
-
- ; 153 : }
-
- 00000 8b ff npad 2
-
- ; 151 : {
-
- 00002 55 push ebp
- 00003 8b ec mov ebp, esp
-
- ; 152 : return pStream[Stream] + dwStride[Stream] * Index;
-
- 00005 8b 55 08 mov edx, DWORD PTR _Stream$[ebp]
- 00008 8b 44 91 48 mov eax, DWORD PTR [ecx+edx*4+72]
- 0000c 0f af 45 0c imul eax, DWORD PTR _Index$[ebp]
- 00010 03 44 91 08 add eax, DWORD PTR [ecx+edx*4+8]
-
- ; 153 : }
-
- 00014 5d pop ebp
- 00015 c2 08 00 ret 8
- ?GetVertex@CD3DXCrackDecl@@QAEPAEII@Z ENDP ; CD3DXCrackDecl::GetVertex
- _TEXT ENDS
- PUBLIC ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z ; CD3DXCrackDecl::GetElementPointer
- ; Function compile flags: /Ogs
- ; COMDAT ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z
- _TEXT SEGMENT
- _pElement$ = 8 ; size = 4
- _Index$ = 12 ; size = 4
- ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z PROC NEAR ; CD3DXCrackDecl::GetElementPointer, COMDAT
- ; _this$ = ecx
-
- ; 160 : }
-
- 00000 8b ff npad 2
-
- ; 158 : {
-
- 00002 55 push ebp
- 00003 8b ec mov ebp, esp
- 00005 56 push esi
-
- ; 159 : return GetVertex(pElement->Stream, Index) + pElement->Offset;
-
- 00006 8b 75 08 mov esi, DWORD PTR _pElement$[ebp]
- 00009 0f b7 16 movzx edx, WORD PTR [esi]
- 0000c 8b 44 91 48 mov eax, DWORD PTR [ecx+edx*4+72]
- 00010 0f af 45 0c imul eax, DWORD PTR _Index$[ebp]
- 00014 03 44 91 08 add eax, DWORD PTR [ecx+edx*4+8]
- 00018 0f b7 4e 02 movzx ecx, WORD PTR [esi+2]
- 0001c 03 c1 add eax, ecx
- 0001e 5e pop esi
-
- ; 160 : }
-
- 0001f 5d pop ebp
- 00020 c2 08 00 ret 8
- ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z ENDP ; CD3DXCrackDecl::GetElementPointer
- _TEXT ENDS
- PUBLIC __real@3b808081
- PUBLIC __real@38000100
- PUBLIC __real@37800080
- PUBLIC __real@3b004020
- PUBLIC __real@4f800000
- PUBLIC ?Decode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPAMI@Z ; CD3DXCrackDecl::Decode
- EXTRN _D3DXFloat16To32Array@12:NEAR
- EXTRN __fltused:NEAR
- ; COMDAT __real@3b808081
- ; File d:\builds\nt32_fre\multimedia\directx\dxsdk\src\mview\gxu\crackdecl.cpp
- CONST SEGMENT
- __real@3b808081 DD 03b808081r ; 0.00392157
- CONST ENDS
- ; COMDAT __real@38000100
- CONST SEGMENT
- __real@38000100 DD 038000100r ; 3.05185e-005
- CONST ENDS
- ; COMDAT __real@37800080
- CONST SEGMENT
- __real@37800080 DD 037800080r ; 1.5259e-005
- CONST ENDS
- ; COMDAT __real@4f800000
- CONST SEGMENT
- __real@4f800000 DD 04f800000r ; 4.29497e+009
- CONST ENDS
- ; COMDAT __real@3b004020
- CONST SEGMENT
- __real@3b004020 DD 03b004020r ; 0.00195695
- ; Function compile flags: /Ogs
- CONST ENDS
- ; COMDAT ?Decode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPAMI@Z
- _TEXT SEGMENT
- _Data$ = -16 ; size = 16
- tv650 = 8 ; size = 4
- tv649 = 8 ; size = 4
- tv648 = 8 ; size = 4
- tv647 = 8 ; size = 4
- tv646 = 8 ; size = 4
- tv645 = 8 ; size = 4
- tv644 = 8 ; size = 4
- tv643 = 8 ; size = 4
- tv642 = 8 ; size = 4
- tv641 = 8 ; size = 4
- tv638 = 8 ; size = 4
- tv637 = 8 ; size = 4
- tv636 = 8 ; size = 4
- tv635 = 8 ; size = 4
- tv634 = 8 ; size = 4
- tv633 = 8 ; size = 4
- tv632 = 8 ; size = 4
- tv631 = 8 ; size = 4
- tv628 = 8 ; size = 4
- tv625 = 8 ; size = 4
- tv620 = 8 ; size = 4
- tv617 = 8 ; size = 4
- tv614 = 8 ; size = 4
- tv611 = 8 ; size = 4
- tv610 = 8 ; size = 4
- tv609 = 8 ; size = 4
- tv606 = 8 ; size = 4
- tv605 = 8 ; size = 4
- tv604 = 8 ; size = 4
- tv603 = 8 ; size = 4
- tv602 = 8 ; size = 4
- tv601 = 8 ; size = 4
- tv600 = 8 ; size = 4
- tv594 = 8 ; size = 4
- tv591 = 8 ; size = 4
- tv588 = 8 ; size = 4
- _pElem$ = 8 ; size = 4
- _index$ = 12 ; size = 4
- _pData$ = 16 ; size = 4
- _cData$ = 20 ; size = 4
- ?Decode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPAMI@Z PROC NEAR ; CD3DXCrackDecl::Decode, COMDAT
- ; _this$ = ecx
-
- ; 218 : pData[i] = Data[i];
- ; 219 : }
-
- 00000 8b ff npad 2
-
- ; 53 : {
-
- 00002 55 push ebp
- 00003 8b ec mov ebp, esp
- 00005 83 ec 10 sub esp, 16 ; 00000010H
- 00008 56 push esi
-
- ; 54 : FLOAT Data[4];
- ; 55 :
- ; 56 : if(pElem)
-
- 00009 8b 75 08 mov esi, DWORD PTR _pElem$[ebp]
- 0000c 85 f6 test esi, esi
- 0000e 57 push edi
- 0000f 0f 84 86 03 00
- 00 je $L56239
-
- ; 57 : {
- ; 58 : LPVOID pElement = GetElementPointer(pElem,index);
-
- 00015 ff 75 0c push DWORD PTR _index$[ebp]
- 00018 56 push esi
- 00019 e8 00 00 00 00 call ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z ; CD3DXCrackDecl::GetElementPointer
-
- ; 59 :
- ; 60 : switch(pElem->Type)
-
- 0001e 0f b6 4e 04 movzx ecx, BYTE PTR [esi+4]
- 00022 83 f9 10 cmp ecx, 16 ; 00000010H
- 00025 0f 87 84 03 00
- 00 ja $L56359
- 0002b ff 24 8d 00 00
- 00 00 jmp DWORD PTR $L56550[ecx*4]
- $L56245:
-
- ; 61 : {
- ; 62 : case D3DDECLTYPE_FLOAT1:
- ; 63 : Data[0] = ((FLOAT *) pElement)[0];
-
- 00032 8b 00 mov eax, DWORD PTR [eax]
- 00034 89 45 f0 mov DWORD PTR _Data$[ebp], eax
-
- ; 64 : Data[1] = 0.0f;
- ; 65 : Data[2] = 0.0f;
- ; 66 : Data[3] = 1.0f;
- ; 67 : break;
-
- 00037 e9 64 03 00 00 jmp $L56543
- $L56247:
-
- ; 68 :
- ; 69 : case D3DDECLTYPE_FLOAT2:
- ; 70 : Data[0] = ((FLOAT *) pElement)[0];
-
- 0003c 8b 08 mov ecx, DWORD PTR [eax]
- 0003e 89 4d f0 mov DWORD PTR _Data$[ebp], ecx
-
- ; 71 : Data[1] = ((FLOAT *) pElement)[1];
-
- 00041 8b 40 04 mov eax, DWORD PTR [eax+4]
- 00044 89 45 f4 mov DWORD PTR _Data$[ebp+4], eax
-
- ; 72 : Data[2] = 0.0f;
- ; 73 : Data[3] = 1.0f;
- ; 74 : break;
-
- 00047 e9 59 03 00 00 jmp $L56544
- $L56250:
-
- ; 75 :
- ; 76 : case D3DDECLTYPE_FLOAT3:
- ; 77 : Data[0] = ((FLOAT *) pElement)[0];
-
- 0004c 8b 08 mov ecx, DWORD PTR [eax]
- 0004e 89 4d f0 mov DWORD PTR _Data$[ebp], ecx
-
- ; 78 : Data[1] = ((FLOAT *) pElement)[1];
-
- 00051 8b 48 04 mov ecx, DWORD PTR [eax+4]
- 00054 89 4d f4 mov DWORD PTR _Data$[ebp+4], ecx
-
- ; 79 : Data[2] = ((FLOAT *) pElement)[2];
-
- 00057 8b 40 08 mov eax, DWORD PTR [eax+8]
- 0005a 89 45 f8 mov DWORD PTR _Data$[ebp+8], eax
-
- ; 80 : Data[3] = 1.0f;
- ; 81 : break;
-
- 0005d e9 48 03 00 00 jmp $L56545
- $L56254:
-
- ; 82 :
- ; 83 : case D3DDECLTYPE_FLOAT4:
- ; 84 : Data[0] = ((FLOAT *) pElement)[0];
-
- 00062 8b 08 mov ecx, DWORD PTR [eax]
- 00064 89 4d f0 mov DWORD PTR _Data$[ebp], ecx
-
- ; 85 : Data[1] = ((FLOAT *) pElement)[1];
-
- 00067 8b 48 04 mov ecx, DWORD PTR [eax+4]
- 0006a 89 4d f4 mov DWORD PTR _Data$[ebp+4], ecx
-
- ; 86 : Data[2] = ((FLOAT *) pElement)[2];
-
- 0006d 8b 48 08 mov ecx, DWORD PTR [eax+8]
- 00070 89 4d f8 mov DWORD PTR _Data$[ebp+8], ecx
-
- ; 87 : Data[3] = ((FLOAT *) pElement)[3];
-
- 00073 8b 40 0c mov eax, DWORD PTR [eax+12]
- 00076 89 45 fc mov DWORD PTR _Data$[ebp+12], eax
-
- ; 88 : break;
-
- 00079 e9 31 03 00 00 jmp $L56359
- $L56259:
-
- ; 89 :
- ; 90 : case D3DDECLTYPE_D3DCOLOR:
- ; 91 : Data[0] = (1.0f / 255.0f) * (FLOAT) (UINT8) (*((D3DCOLOR *) pElement) >> 16);
-
- 0007e 0f b6 48 02 movzx ecx, BYTE PTR [eax+2]
- 00082 d9 05 00 00 00
- 00 fld DWORD PTR __real@3b808081
- 00088 89 4d 08 mov DWORD PTR tv650[ebp], ecx
- 0008b db 45 08 fild DWORD PTR tv650[ebp]
- 0008e d8 c9 fmul ST(0), ST(1)
- 00090 d9 5d f0 fstp DWORD PTR _Data$[ebp]
-
- ; 92 : Data[1] = (1.0f / 255.0f) * (FLOAT) (UINT8) (*((D3DCOLOR *) pElement) >> 8);
-
- 00093 8b 08 mov ecx, DWORD PTR [eax]
- 00095 c1 e9 08 shr ecx, 8
- 00098 0f b6 c9 movzx ecx, cl
- 0009b 89 4d 08 mov DWORD PTR tv649[ebp], ecx
- 0009e db 45 08 fild DWORD PTR tv649[ebp]
- 000a1 d8 c9 fmul ST(0), ST(1)
- 000a3 d9 5d f4 fstp DWORD PTR _Data$[ebp+4]
-
- ; 93 : Data[2] = (1.0f / 255.0f) * (FLOAT) (UINT8) (*((D3DCOLOR *) pElement) >> 0);
-
- 000a6 0f b6 08 movzx ecx, BYTE PTR [eax]
- 000a9 89 4d 08 mov DWORD PTR tv648[ebp], ecx
- 000ac db 45 08 fild DWORD PTR tv648[ebp]
- 000af d8 c9 fmul ST(0), ST(1)
- 000b1 d9 5d f8 fstp DWORD PTR _Data$[ebp+8]
-
- ; 94 : Data[3] = (1.0f / 255.0f) * (FLOAT) (UINT8) (*((D3DCOLOR *) pElement) >> 24);
-
- 000b4 0f b6 40 03 movzx eax, BYTE PTR [eax+3]
- 000b8 89 45 08 mov DWORD PTR tv647[ebp], eax
- 000bb db 45 08 fild DWORD PTR tv647[ebp]
- $L56549:
- 000be d8 c9 fmul ST(0), ST(1)
- 000c0 d9 5d fc fstp DWORD PTR _Data$[ebp+12]
- 000c3 dd d8 fstp ST(0)
-
- ; 95 : break;
-
- 000c5 e9 e5 02 00 00 jmp $L56359
- $L56272:
-
- ; 96 :
- ; 97 : case D3DDECLTYPE_UBYTE4:
- ; 98 : Data[0] = (FLOAT) ((UINT8 *) pElement)[0];
-
- 000ca 0f b6 08 movzx ecx, BYTE PTR [eax]
- 000cd 89 4d 08 mov DWORD PTR tv646[ebp], ecx
- 000d0 db 45 08 fild DWORD PTR tv646[ebp]
- 000d3 d9 5d f0 fstp DWORD PTR _Data$[ebp]
-
- ; 99 : Data[1] = (FLOAT) ((UINT8 *) pElement)[1];
-
- 000d6 0f b6 48 01 movzx ecx, BYTE PTR [eax+1]
- 000da 89 4d 08 mov DWORD PTR tv645[ebp], ecx
- 000dd db 45 08 fild DWORD PTR tv645[ebp]
- 000e0 d9 5d f4 fstp DWORD PTR _Data$[ebp+4]
-
- ; 100 : Data[2] = (FLOAT) ((UINT8 *) pElement)[2];
-
- 000e3 0f b6 48 02 movzx ecx, BYTE PTR [eax+2]
- 000e7 89 4d 08 mov DWORD PTR tv644[ebp], ecx
- 000ea db 45 08 fild DWORD PTR tv644[ebp]
- 000ed d9 5d f8 fstp DWORD PTR _Data$[ebp+8]
-
- ; 101 : Data[3] = (FLOAT) ((UINT8 *) pElement)[3];
-
- 000f0 0f b6 40 03 movzx eax, BYTE PTR [eax+3]
- 000f4 89 45 08 mov DWORD PTR tv643[ebp], eax
- 000f7 db 45 08 fild DWORD PTR tv643[ebp]
-
- ; 102 : break;
-
- 000fa e9 ad 02 00 00 jmp $L56546
- $L56281:
-
- ; 103 :
- ; 104 : case D3DDECLTYPE_SHORT2:
- ; 105 : Data[0] = (FLOAT) ((INT16 *) pElement)[0];
-
- 000ff 0f bf 08 movsx ecx, WORD PTR [eax]
- 00102 89 4d 08 mov DWORD PTR tv642[ebp], ecx
- 00105 db 45 08 fild DWORD PTR tv642[ebp]
- 00108 d9 5d f0 fstp DWORD PTR _Data$[ebp]
-
- ; 106 : Data[1] = (FLOAT) ((INT16 *) pElement)[1];
-
- 0010b 0f bf 40 02 movsx eax, WORD PTR [eax+2]
- 0010f 89 45 08 mov DWORD PTR tv641[ebp], eax
- 00112 db 45 08 fild DWORD PTR tv641[ebp]
-
- ; 107 : Data[2] = 0.0f;
- ; 108 : Data[3] = 1.0f;
- ; 109 : break;
-
- 00115 e9 88 02 00 00 jmp $L56547
- $L56286:
-
- ; 110 :
- ; 111 : case D3DDECLTYPE_SHORT4:
- ; 112 : Data[0] = (FLOAT) ((INT16 *) pElement)[0];
-
- 0011a 0f bf 08 movsx ecx, WORD PTR [eax]
- 0011d 89 4d 08 mov DWORD PTR tv638[ebp], ecx
- 00120 db 45 08 fild DWORD PTR tv638[ebp]
- 00123 d9 5d f0 fstp DWORD PTR _Data$[ebp]
-
- ; 113 : Data[1] = (FLOAT) ((INT16 *) pElement)[1];
-
- 00126 0f bf 48 02 movsx ecx, WORD PTR [eax+2]
- 0012a 89 4d 08 mov DWORD PTR tv637[ebp], ecx
- 0012d db 45 08 fild DWORD PTR tv637[ebp]
- 00130 d9 5d f4 fstp DWORD PTR _Data$[ebp+4]
-
- ; 114 : Data[2] = (FLOAT) ((INT16 *) pElement)[2];
-
- 00133 0f bf 48 04 movsx ecx, WORD PTR [eax+4]
- 00137 89 4d 08 mov DWORD PTR tv636[ebp], ecx
- 0013a db 45 08 fild DWORD PTR tv636[ebp]
- 0013d d9 5d f8 fstp DWORD PTR _Data$[ebp+8]
-
- ; 115 : Data[3] = (FLOAT) ((INT16 *) pElement)[3];
-
- 00140 0f bf 40 06 movsx eax, WORD PTR [eax+6]
- 00144 89 45 08 mov DWORD PTR tv635[ebp], eax
- 00147 db 45 08 fild DWORD PTR tv635[ebp]
-
- ; 116 : break;
-
- 0014a e9 5d 02 00 00 jmp $L56546
- $L56295:
-
- ; 117 :
- ; 118 : case D3DDECLTYPE_UBYTE4N:
- ; 119 : Data[0] = (1.0f / 255.0f) * (FLOAT) (((UINT8 *) pElement)[0]);
-
- 0014f 0f b6 08 movzx ecx, BYTE PTR [eax]
- 00152 d9 05 00 00 00
- 00 fld DWORD PTR __real@3b808081
- 00158 89 4d 08 mov DWORD PTR tv634[ebp], ecx
- 0015b db 45 08 fild DWORD PTR tv634[ebp]
- 0015e d8 c9 fmul ST(0), ST(1)
- 00160 d9 5d f0 fstp DWORD PTR _Data$[ebp]
-
- ; 120 : Data[1] = (1.0f / 255.0f) * (FLOAT) (((UINT8 *) pElement)[1]);
-
- 00163 0f b6 48 01 movzx ecx, BYTE PTR [eax+1]
- 00167 89 4d 08 mov DWORD PTR tv633[ebp], ecx
- 0016a db 45 08 fild DWORD PTR tv633[ebp]
- 0016d d8 c9 fmul ST(0), ST(1)
- 0016f d9 5d f4 fstp DWORD PTR _Data$[ebp+4]
-
- ; 121 : Data[2] = (1.0f / 255.0f) * (FLOAT) (((UINT8 *) pElement)[2]);
-
- 00172 0f b6 48 02 movzx ecx, BYTE PTR [eax+2]
- 00176 89 4d 08 mov DWORD PTR tv632[ebp], ecx
- 00179 db 45 08 fild DWORD PTR tv632[ebp]
- 0017c d8 c9 fmul ST(0), ST(1)
- 0017e d9 5d f8 fstp DWORD PTR _Data$[ebp+8]
-
- ; 122 : Data[3] = (1.0f / 255.0f) * (FLOAT) (((UINT8 *) pElement)[3]);
-
- 00181 0f b6 40 03 movzx eax, BYTE PTR [eax+3]
- 00185 89 45 08 mov DWORD PTR tv631[ebp], eax
- 00188 db 45 08 fild DWORD PTR tv631[ebp]
-
- ; 123 : break;
-
- 0018b e9 2e ff ff ff jmp $L56549
- $L56304:
-
- ; 124 :
- ; 125 : case D3DDECLTYPE_SHORT2N:
- ; 126 : {
- ; 127 : INT16 nX = (((INT16 *) pElement)[0]);
- ; 128 : INT16 nY = (((INT16 *) pElement)[1]);
-
- 00190 66 8b 70 02 mov si, WORD PTR [eax+2]
-
- ; 129 :
- ; 130 : nX += (-32768 == nX);
- ; 131 : nY += (-32768 == nY);
- ; 132 :
- ; 133 : Data[0] = (1.0f / 32767.0f) * (FLOAT) nX;
-
- 00194 d9 05 00 00 00
- 00 fld DWORD PTR __real@38000100
- 0019a 33 d2 xor edx, edx
- 0019c 66 8b 10 mov dx, WORD PTR [eax]
- 0019f 33 c0 xor eax, eax
- 001a1 b9 00 80 ff ff mov ecx, -32768 ; ffff8000H
- 001a6 66 3b d1 cmp dx, cx
- 001a9 0f 94 c0 sete al
- 001ac 03 c2 add eax, edx
- 001ae 0f bf c0 movsx eax, ax
- 001b1 89 45 08 mov DWORD PTR tv628[ebp], eax
- 001b4 33 c0 xor eax, eax
- 001b6 66 3b f1 cmp si, cx
- 001b9 db 45 08 fild DWORD PTR tv628[ebp]
- 001bc 0f 94 c0 sete al
- 001bf d8 c9 fmul ST(0), ST(1)
- 001c1 d9 5d f0 fstp DWORD PTR _Data$[ebp]
- 001c4 03 c6 add eax, esi
-
- ; 134 : Data[1] = (1.0f / 32767.0f) * (FLOAT) nY;
-
- 001c6 0f bf c0 movsx eax, ax
- 001c9 89 45 08 mov DWORD PTR tv625[ebp], eax
- 001cc db 45 08 fild DWORD PTR tv625[ebp]
-
- ; 135 : Data[2] = 0.0f;
- ; 136 : Data[3] = 1.0f;
- ; 137 : }
- ; 138 : break;
-
- 001cf e9 a3 00 00 00 jmp $L56548
- $L56311:
-
- ; 139 :
- ; 140 : case D3DDECLTYPE_SHORT4N:
- ; 141 : {
- ; 142 : INT16 nX = (((INT16 *) pElement)[0]);
- ; 143 : INT16 nY = (((INT16 *) pElement)[1]);
-
- 001d4 66 8b 70 02 mov si, WORD PTR [eax+2]
-
- ; 144 : INT16 nZ = (((INT16 *) pElement)[2]);
- ; 145 : INT16 nW = (((INT16 *) pElement)[3]);
- ; 146 :
- ; 147 : nX += (-32768 == nX);
- ; 148 : nY += (-32768 == nY);
- ; 149 : nZ += (-32768 == nZ);
- ; 150 : nW += (-32768 == nW);
- ; 151 :
- ; 152 : Data[0] = (1.0f / 32767.0f) * (FLOAT) nX;
-
- 001d8 d9 05 00 00 00
- 00 fld DWORD PTR __real@38000100
- 001de 33 d2 xor edx, edx
- 001e0 66 8b 10 mov dx, WORD PTR [eax]
- 001e3 53 push ebx
- 001e4 33 db xor ebx, ebx
- 001e6 66 8b 78 04 mov di, WORD PTR [eax+4]
- 001ea b9 00 80 ff ff mov ecx, -32768 ; ffff8000H
- 001ef 66 3b d1 cmp dx, cx
- 001f2 0f 94 c3 sete bl
- 001f5 66 8b 40 06 mov ax, WORD PTR [eax+6]
- 001f9 03 da add ebx, edx
- 001fb 0f bf d3 movsx edx, bx
- 001fe 89 55 08 mov DWORD PTR tv620[ebp], edx
- 00201 33 d2 xor edx, edx
- 00203 66 3b f1 cmp si, cx
- 00206 db 45 08 fild DWORD PTR tv620[ebp]
- 00209 0f 94 c2 sete dl
- 0020c 5b pop ebx
- 0020d d8 c9 fmul ST(0), ST(1)
- 0020f d9 5d f0 fstp DWORD PTR _Data$[ebp]
- 00212 03 d6 add edx, esi
-
- ; 153 : Data[1] = (1.0f / 32767.0f) * (FLOAT) nY;
-
- 00214 0f bf d2 movsx edx, dx
- 00217 89 55 08 mov DWORD PTR tv617[ebp], edx
- 0021a 33 d2 xor edx, edx
- 0021c 66 3b f9 cmp di, cx
- 0021f db 45 08 fild DWORD PTR tv617[ebp]
- 00222 0f 94 c2 sete dl
- 00225 d8 c9 fmul ST(0), ST(1)
- 00227 d9 5d f4 fstp DWORD PTR _Data$[ebp+4]
- 0022a 03 d7 add edx, edi
-
- ; 154 : Data[2] = (1.0f / 32767.0f) * (FLOAT) nZ;
-
- 0022c 0f bf d2 movsx edx, dx
- 0022f 89 55 08 mov DWORD PTR tv614[ebp], edx
- 00232 33 d2 xor edx, edx
- 00234 66 3b c1 cmp ax, cx
- 00237 db 45 08 fild DWORD PTR tv614[ebp]
- 0023a 0f 94 c2 sete dl
- 0023d d8 c9 fmul ST(0), ST(1)
- 0023f d9 5d f8 fstp DWORD PTR _Data$[ebp+8]
- 00242 03 d0 add edx, eax
-
- ; 155 : Data[3] = (1.0f / 32767.0f) * (FLOAT) nW;
-
- 00244 0f bf c2 movsx eax, dx
- 00247 89 45 08 mov DWORD PTR tv611[ebp], eax
- 0024a db 45 08 fild DWORD PTR tv611[ebp]
- 0024d d8 c9 fmul ST(0), ST(1)
- 0024f d9 5d fc fstp DWORD PTR _Data$[ebp+12]
- 00252 dd d8 fstp ST(0)
-
- ; 156 : }
- ; 157 : break;
-
- 00254 e9 56 01 00 00 jmp $L56359
- $L56324:
-
- ; 158 :
- ; 159 : case D3DDECLTYPE_USHORT2N:
- ; 160 : Data[0] = (1.0f / 65535.0f) * (FLOAT) (((UINT16 *) pElement)[0]);
-
- 00259 0f b7 08 movzx ecx, WORD PTR [eax]
- 0025c d9 05 00 00 00
- 00 fld DWORD PTR __real@37800080
- 00262 89 4d 08 mov DWORD PTR tv610[ebp], ecx
- 00265 db 45 08 fild DWORD PTR tv610[ebp]
- 00268 d8 c9 fmul ST(0), ST(1)
- 0026a d9 5d f0 fstp DWORD PTR _Data$[ebp]
-
- ; 161 : Data[1] = (1.0f / 65535.0f) * (FLOAT) (((UINT16 *) pElement)[1]);
-
- 0026d 0f b7 40 02 movzx eax, WORD PTR [eax+2]
- 00271 89 45 08 mov DWORD PTR tv609[ebp], eax
- 00274 db 45 08 fild DWORD PTR tv609[ebp]
- $L56548:
- 00277 d8 c9 fmul ST(0), ST(1)
- 00279 d9 5d f4 fstp DWORD PTR _Data$[ebp+4]
- 0027c dd d8 fstp ST(0)
-
- ; 162 : Data[2] = 0.0f;
- ; 163 : Data[3] = 1.0f;
- ; 164 : break;
-
- 0027e e9 22 01 00 00 jmp $L56544
- $L56329:
-
- ; 165 :
- ; 166 : case D3DDECLTYPE_USHORT4N:
- ; 167 : Data[0] = (1.0f / 65535.0f) * (FLOAT) (((UINT16 *) pElement)[0]);
-
- 00283 0f b7 08 movzx ecx, WORD PTR [eax]
- 00286 d9 05 00 00 00
- 00 fld DWORD PTR __real@37800080
- 0028c 89 4d 08 mov DWORD PTR tv606[ebp], ecx
- 0028f db 45 08 fild DWORD PTR tv606[ebp]
- 00292 d8 c9 fmul ST(0), ST(1)
- 00294 d9 5d f0 fstp DWORD PTR _Data$[ebp]
-
- ; 168 : Data[1] = (1.0f / 65535.0f) * (FLOAT) (((UINT16 *) pElement)[1]);
-
- 00297 0f b7 48 02 movzx ecx, WORD PTR [eax+2]
- 0029b 89 4d 08 mov DWORD PTR tv605[ebp], ecx
- 0029e db 45 08 fild DWORD PTR tv605[ebp]
- 002a1 d8 c9 fmul ST(0), ST(1)
- 002a3 d9 5d f4 fstp DWORD PTR _Data$[ebp+4]
-
- ; 169 : Data[2] = (1.0f / 65535.0f) * (FLOAT) (((UINT16 *) pElement)[2]);
-
- 002a6 0f b7 48 04 movzx ecx, WORD PTR [eax+4]
- 002aa 89 4d 08 mov DWORD PTR tv604[ebp], ecx
- 002ad db 45 08 fild DWORD PTR tv604[ebp]
- 002b0 d8 c9 fmul ST(0), ST(1)
- 002b2 d9 5d f8 fstp DWORD PTR _Data$[ebp+8]
-
- ; 170 : Data[3] = (1.0f / 65535.0f) * (FLOAT) (((UINT16 *) pElement)[3]);
-
- 002b5 0f b7 40 06 movzx eax, WORD PTR [eax+6]
- 002b9 89 45 08 mov DWORD PTR tv603[ebp], eax
- 002bc db 45 08 fild DWORD PTR tv603[ebp]
-
- ; 171 : break;
-
- 002bf e9 fa fd ff ff jmp $L56549
- $L56338:
-
- ; 172 :
- ; 173 : case D3DDECLTYPE_UDEC3:
- ; 174 : Data[0] = (FLOAT) ((*((UINT32 *) pElement) >> 0) & 0x3ff);
-
- 002c4 8b 10 mov edx, DWORD PTR [eax]
- 002c6 b9 ff 03 00 00 mov ecx, 1023 ; 000003ffH
- 002cb 23 d1 and edx, ecx
- 002cd 85 d2 test edx, edx
- 002cf 89 55 08 mov DWORD PTR tv602[ebp], edx
- 002d2 db 45 08 fild DWORD PTR tv602[ebp]
- 002d5 7d 06 jge SHORT $L56538
- 002d7 d8 05 00 00 00
- 00 fadd DWORD PTR __real@4f800000
- $L56538:
- 002dd d9 5d f0 fstp DWORD PTR _Data$[ebp]
-
- ; 175 : Data[1] = (FLOAT) ((*((UINT32 *) pElement) >> 10) & 0x3ff);
-
- 002e0 8b 10 mov edx, DWORD PTR [eax]
- 002e2 c1 ea 0a shr edx, 10 ; 0000000aH
- 002e5 23 d1 and edx, ecx
- 002e7 85 d2 test edx, edx
- 002e9 89 55 08 mov DWORD PTR tv601[ebp], edx
- 002ec db 45 08 fild DWORD PTR tv601[ebp]
- 002ef 7d 06 jge SHORT $L56541
- 002f1 d8 05 00 00 00
- 00 fadd DWORD PTR __real@4f800000
- $L56541:
- 002f7 d9 5d f4 fstp DWORD PTR _Data$[ebp+4]
-
- ; 176 : Data[2] = (FLOAT) ((*((UINT32 *) pElement) >> 20) & 0x3ff);
-
- 002fa 8b 00 mov eax, DWORD PTR [eax]
- 002fc c1 e8 14 shr eax, 20 ; 00000014H
- 002ff 23 c1 and eax, ecx
- 00301 85 c0 test eax, eax
- 00303 89 45 08 mov DWORD PTR tv600[ebp], eax
- 00306 db 45 08 fild DWORD PTR tv600[ebp]
- 00309 0f 8d 98 00 00
- 00 jge $L56542
- 0030f d8 05 00 00 00
- 00 fadd DWORD PTR __real@4f800000
-
- ; 177 : Data[3] = 1.0f;
- ; 178 : break;
-
- 00315 e9 8d 00 00 00 jmp $L56542
- $L56345:
-
- ; 179 :
- ; 180 : case D3DDECLTYPE_DEC3N:
- ; 181 : {
- ; 182 : INT32 nX = ((*((INT32 *) pElement) << 22)) >> 22;
-
- 0031a 8b 00 mov eax, DWORD PTR [eax]
-
- ; 183 : INT32 nY = ((*((INT32 *) pElement) << 12)) >> 22;
- ; 184 : INT32 nZ = ((*((INT32 *) pElement) << 2)) >> 22;
- ; 185 :
- ; 186 : nX += (-512 == nX);
- ; 187 : nY += (-512 == nY);
- ; 188 : nZ += (-512 == nZ);
- ; 189 :
- ; 190 : Data[0] = (1.0f / 511.0f) * (FLOAT) nX;
-
- 0031c d9 05 00 00 00
- 00 fld DWORD PTR __real@3b004020
- 00322 33 d2 xor edx, edx
- 00324 8b f0 mov esi, eax
- 00326 c1 e6 16 shl esi, 22 ; 00000016H
- 00329 c1 fe 16 sar esi, 22 ; 00000016H
- 0032c 8b f8 mov edi, eax
- 0032e c1 e7 0c shl edi, 12 ; 0000000cH
- 00331 8b c8 mov ecx, eax
- 00333 c1 e1 02 shl ecx, 2
- 00336 c1 ff 16 sar edi, 22 ; 00000016H
- 00339 c1 f9 16 sar ecx, 22 ; 00000016H
- 0033c b8 00 fe ff ff mov eax, -512 ; fffffe00H
- 00341 3b f0 cmp esi, eax
- 00343 0f 94 c2 sete dl
- 00346 03 d6 add edx, esi
- 00348 89 55 08 mov DWORD PTR tv594[ebp], edx
- 0034b db 45 08 fild DWORD PTR tv594[ebp]
- 0034e 33 d2 xor edx, edx
- 00350 3b f8 cmp edi, eax
- 00352 0f 94 c2 sete dl
- 00355 d8 c9 fmul ST(0), ST(1)
- 00357 d9 5d f0 fstp DWORD PTR _Data$[ebp]
- 0035a 03 d7 add edx, edi
-
- ; 191 : Data[1] = (1.0f / 511.0f) * (FLOAT) nY;
-
- 0035c 89 55 08 mov DWORD PTR tv591[ebp], edx
- 0035f db 45 08 fild DWORD PTR tv591[ebp]
- 00362 33 d2 xor edx, edx
- 00364 3b c8 cmp ecx, eax
- 00366 0f 94 c2 sete dl
- 00369 d8 c9 fmul ST(0), ST(1)
- 0036b d9 5d f4 fstp DWORD PTR _Data$[ebp+4]
- 0036e 03 d1 add edx, ecx
-
- ; 192 : Data[2] = (1.0f / 511.0f) * (FLOAT) nZ;
-
- 00370 89 55 08 mov DWORD PTR tv588[ebp], edx
- 00373 db 45 08 fild DWORD PTR tv588[ebp]
- 00376 d8 c9 fmul ST(0), ST(1)
- 00378 d9 5d f8 fstp DWORD PTR _Data$[ebp+8]
- 0037b dd d8 fstp ST(0)
-
- ; 193 : Data[3] = 1.0f;
- ; 194 : }
- ; 195 : break;
-
- 0037d eb 2b jmp SHORT $L56545
- $L56355:
-
- ; 196 : case D3DDECLTYPE_FLOAT16_2:
- ; 197 : D3DXFloat16To32Array(Data,(D3DXFLOAT16*)pElement,2);
-
- 0037f 6a 02 push 2
- 00381 50 push eax
- 00382 8d 45 f0 lea eax, DWORD PTR _Data$[ebp]
- 00385 50 push eax
- 00386 e8 00 00 00 00 call _D3DXFloat16To32Array@12
-
- ; 198 : Data[2] = 0.0f;
- ; 199 : Data[3] = 1.0f;
- ; 200 : break;
-
- 0038b eb 18 jmp SHORT $L56544
- $L56357:
-
- ; 201 : case D3DDECLTYPE_FLOAT16_4:
- ; 202 : D3DXFloat16To32Array(Data,(D3DXFLOAT16*)pElement,4);
-
- 0038d 6a 04 push 4
- 0038f 50 push eax
- 00390 8d 45 f0 lea eax, DWORD PTR _Data$[ebp]
- 00393 50 push eax
- 00394 e8 00 00 00 00 call _D3DXFloat16To32Array@12
-
- ; 203 : break;
- ; 204 : }
- ; 205 : }
- ; 206 : else
-
- 00399 eb 14 jmp SHORT $L56359
- $L56239:
-
- ; 207 : {
- ; 208 : Data[0] = 0.0f;
-
- 0039b d9 ee fldz
- 0039d d9 5d f0 fstp DWORD PTR _Data$[ebp]
- $L56543:
-
- ; 209 : Data[1] = 0.0f;
-
- 003a0 d9 ee fldz
- $L56547:
- 003a2 d9 5d f4 fstp DWORD PTR _Data$[ebp+4]
- $L56544:
-
- ; 210 : Data[2] = 0.0f;
-
- 003a5 d9 ee fldz
- $L56542:
- 003a7 d9 5d f8 fstp DWORD PTR _Data$[ebp+8]
- $L56545:
-
- ; 211 : Data[3] = 1.0f;
-
- 003aa d9 e8 fld1
- $L56546:
- 003ac d9 5d fc fstp DWORD PTR _Data$[ebp+12]
- $L56359:
-
- ; 212 : }
- ; 213 :
- ; 214 : if(cData > 4)
-
- 003af 8b 4d 14 mov ecx, DWORD PTR _cData$[ebp]
- 003b2 83 f9 04 cmp ecx, 4
- 003b5 76 03 jbe SHORT $L56360
-
- ; 215 : cData = 4;
-
- 003b7 6a 04 push 4
- 003b9 59 pop ecx
- $L56360:
-
- ; 216 :
- ; 217 : for(UINT i = 0; i < cData; i++)
-
- 003ba 85 c9 test ecx, ecx
- 003bc 76 08 jbe SHORT $L56362
- 003be 8b 7d 10 mov edi, DWORD PTR _pData$[ebp]
- 003c1 8d 75 f0 lea esi, DWORD PTR _Data$[ebp]
- 003c4 f3 a5 rep movsd
- $L56362:
- 003c6 5f pop edi
- 003c7 5e pop esi
-
- ; 218 : pData[i] = Data[i];
- ; 219 : }
-
- 003c8 c9 leave
- 003c9 c2 10 00 ret 16 ; 00000010H
- $L56550:
- 003cc 00 00 00 00 DD $L56245
- 003d0 00 00 00 00 DD $L56247
- 003d4 00 00 00 00 DD $L56250
- 003d8 00 00 00 00 DD $L56254
- 003dc 00 00 00 00 DD $L56259
- 003e0 00 00 00 00 DD $L56272
- 003e4 00 00 00 00 DD $L56281
- 003e8 00 00 00 00 DD $L56286
- 003ec 00 00 00 00 DD $L56295
- 003f0 00 00 00 00 DD $L56304
- 003f4 00 00 00 00 DD $L56311
- 003f8 00 00 00 00 DD $L56324
- 003fc 00 00 00 00 DD $L56329
- 00400 00 00 00 00 DD $L56338
- 00404 00 00 00 00 DD $L56345
- 00408 00 00 00 00 DD $L56355
- 0040c 00 00 00 00 DD $L56357
- ?Decode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPAMI@Z ENDP ; CD3DXCrackDecl::Decode
- _TEXT ENDS
- PUBLIC __real@bf800000
- PUBLIC __real@437f0000
- PUBLIC __real@3f000000
- PUBLIC __real@46fffe00
- PUBLIC __real@477fff00
- PUBLIC __real@43ff8000
- PUBLIC ?Encode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPBMI@Z ; CD3DXCrackDecl::Encode
- EXTRN _D3DXFloat32To16Array@12:NEAR
- EXTRN __ftol:NEAR
- ; COMDAT __real@bf800000
- CONST SEGMENT
- __real@bf800000 DD 0bf800000r ; -1
- CONST ENDS
- ; COMDAT __real@437f0000
- CONST SEGMENT
- __real@437f0000 DD 0437f0000r ; 255
- CONST ENDS
- ; COMDAT __real@3f000000
- CONST SEGMENT
- __real@3f000000 DD 03f000000r ; 0.5
- CONST ENDS
- ; COMDAT __real@46fffe00
- CONST SEGMENT
- __real@46fffe00 DD 046fffe00r ; 32767
- CONST ENDS
- ; COMDAT __real@477fff00
- CONST SEGMENT
- __real@477fff00 DD 0477fff00r ; 65535
- CONST ENDS
- ; COMDAT __real@43ff8000
- CONST SEGMENT
- __real@43ff8000 DD 043ff8000r ; 511
- ; Function compile flags: /Ogs
- CONST ENDS
- ; COMDAT ?Encode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPBMI@Z
- _TEXT SEGMENT
- _Data$ = -20 ; size = 16
- _this$ = -4 ; size = 4
- _pElem$ = 8 ; size = 4
- _index$ = 12 ; size = 4
- _pData$ = 16 ; size = 4
- tv484 = 20 ; size = 4
- _cData$ = 20 ; size = 4
- ?Encode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPBMI@Z PROC NEAR ; CD3DXCrackDecl::Encode, COMDAT
- ; _this$ = ecx
-
- ; 370 : break;
- ; 371 : }
- ; 372 : }
- ; 373 : }
-
- 00000 8b ff npad 2
-
- ; 224 : {
-
- 00002 55 push ebp
- 00003 8b ec mov ebp, esp
- 00005 83 ec 14 sub esp, 20 ; 00000014H
-
- ; 225 : UINT i = 0;
- ; 226 : FLOAT Data[4];
- ; 227 :
- ; 228 : if(cData > 4)
-
- 00008 8b 55 14 mov edx, DWORD PTR _cData$[ebp]
- 0000b 53 push ebx
- 0000c 56 push esi
- 0000d 33 db xor ebx, ebx
- 0000f 83 fa 04 cmp edx, 4
- 00012 57 push edi
- 00013 89 4d fc mov DWORD PTR _this$[ebp], ecx
- 00016 76 03 jbe SHORT $L56374
-
- ; 229 : cData = 4;
-
- 00018 6a 04 push 4
- 0001a 5a pop edx
- $L56374:
-
- ; 230 :
- ; 231 : switch(pElem->Type)
-
- 0001b 8b 45 08 mov eax, DWORD PTR _pElem$[ebp]
- 0001e 0f b6 40 04 movzx eax, BYTE PTR [eax+4]
- 00022 89 45 14 mov DWORD PTR tv484[ebp], eax
- 00025 83 c0 fc add eax, -4 ; fffffffcH
- 00028 83 f8 0a cmp eax, 10 ; 0000000aH
- 0002b 0f 87 ba 00 00
- 00 ja $L56391
- 00031 0f b6 80 00 00
- 00 00 movzx eax, BYTE PTR $L56578[eax]
- 00038 ff 24 85 00 00
- 00 00 jmp DWORD PTR $L56600[eax*4]
- $L56379:
-
- ; 232 : {
- ; 233 : case D3DDECLTYPE_D3DCOLOR:
- ; 234 : case D3DDECLTYPE_UBYTE4N:
- ; 235 : case D3DDECLTYPE_USHORT2N:
- ; 236 : case D3DDECLTYPE_USHORT4N:
- ; 237 : for(; i < cData; i++)
-
- 0003f 85 d2 test edx, edx
- 00041 0f 86 b9 00 00
- 00 jbe $L56592
- 00047 8b 75 10 mov esi, DWORD PTR _pData$[ebp]
- 0004a 8d 4d ec lea ecx, DWORD PTR _Data$[ebp]
- 0004d 2b ce sub ecx, esi
- 0004f 8b fa mov edi, edx
- 00051 8b da mov ebx, edx
- $L56380:
-
- ; 238 : Data[i] = (0.0f > pData[i]) ? 0.0f : ((1.0f < pData[i]) ? 1.0f : pData[i]);
-
- 00053 d9 ee fldz
- 00055 d8 1e fcomp DWORD PTR [esi]
- 00057 df e0 fnstsw ax
- 00059 f6 c4 41 test ah, 65 ; 00000041H
- 0005c 75 04 jne SHORT $L56555
- 0005e d9 ee fldz
- 00060 eb 11 jmp SHORT $L56554
- $L56555:
- 00062 d9 e8 fld1
- 00064 d8 1e fcomp DWORD PTR [esi]
- 00066 df e0 fnstsw ax
- 00068 f6 c4 05 test ah, 5
- 0006b 7a 04 jp SHORT $L56553
- 0006d d9 e8 fld1
- 0006f eb 02 jmp SHORT $L56554
- $L56553:
- 00071 d9 06 fld DWORD PTR [esi]
- $L56554:
- 00073 d9 1c 31 fstp DWORD PTR [ecx+esi]
- 00076 83 c6 04 add esi, 4
- 00079 4f dec edi
- 0007a 75 d7 jne SHORT $L56380
-
- ; 239 : break;
-
- 0007c eb 7d jmp SHORT $L56392
- $L56383:
-
- ; 240 :
- ; 241 : case D3DDECLTYPE_SHORT2N:
- ; 242 : case D3DDECLTYPE_SHORT4N:
- ; 243 : case D3DDECLTYPE_DEC3N:
- ; 244 : for(; i < cData; i++)
-
- 0007e 85 d2 test edx, edx
- 00080 76 7e jbe SHORT $L56592
- 00082 8b 75 10 mov esi, DWORD PTR _pData$[ebp]
- 00085 d9 05 00 00 00
- 00 fld DWORD PTR __real@bf800000
- 0008b 8d 4d ec lea ecx, DWORD PTR _Data$[ebp]
- 0008e 2b ce sub ecx, esi
- 00090 8b fa mov edi, edx
- 00092 8b da mov ebx, edx
- $L56384:
-
- ; 245 : Data[i] = (-1.0f > pData[i]) ? -1.0f : ((1.0f < pData[i]) ? 1.0f : pData[i]);
-
- 00094 d8 16 fcom DWORD PTR [esi]
- 00096 df e0 fnstsw ax
- 00098 f6 c4 41 test ah, 65 ; 00000041H
- 0009b 75 04 jne SHORT $L56559
- 0009d d9 c0 fld ST(0)
- 0009f eb 11 jmp SHORT $L56558
- $L56559:
- 000a1 d9 e8 fld1
- 000a3 d8 1e fcomp DWORD PTR [esi]
- 000a5 df e0 fnstsw ax
- 000a7 f6 c4 05 test ah, 5
- 000aa 7a 04 jp SHORT $L56557
- 000ac d9 e8 fld1
- 000ae eb 02 jmp SHORT $L56558
- $L56557:
- 000b0 d9 06 fld DWORD PTR [esi]
- $L56558:
- 000b2 d9 1c 0e fstp DWORD PTR [esi+ecx]
- 000b5 83 c6 04 add esi, 4
- 000b8 4f dec edi
- 000b9 75 d9 jne SHORT $L56384
- 000bb dd d8 fstp ST(0)
-
- ; 246 : break;
-
- 000bd eb 3c jmp SHORT $L56392
- $L56387:
-
- ; 247 :
- ; 248 : case D3DDECLTYPE_UBYTE4:
- ; 249 : case D3DDECLTYPE_UDEC3:
- ; 250 : for(; i < cData; i++)
-
- 000bf 85 d2 test edx, edx
- 000c1 76 3d jbe SHORT $L56592
- 000c3 8b 75 10 mov esi, DWORD PTR _pData$[ebp]
- 000c6 8d 4d ec lea ecx, DWORD PTR _Data$[ebp]
- 000c9 2b ce sub ecx, esi
- 000cb 8b fa mov edi, edx
- 000cd 8b da mov ebx, edx
- $L56388:
-
- ; 251 : Data[i] = (0.0f > pData[i]) ? 0.0f : pData[i];
-
- 000cf d9 ee fldz
- 000d1 d8 1e fcomp DWORD PTR [esi]
- 000d3 df e0 fnstsw ax
- 000d5 f6 c4 41 test ah, 65 ; 00000041H
- 000d8 75 04 jne SHORT $L56561
- 000da d9 ee fldz
- 000dc eb 02 jmp SHORT $L56562
- $L56561:
- 000de d9 06 fld DWORD PTR [esi]
- $L56562:
- 000e0 d9 1c 0e fstp DWORD PTR [esi+ecx]
- 000e3 83 c6 04 add esi, 4
- 000e6 4f dec edi
- 000e7 75 e6 jne SHORT $L56388
-
- ; 252 : break;
-
- 000e9 eb 10 jmp SHORT $L56392
- $L56391:
-
- ; 253 :
- ; 254 : default:
- ; 255 : for(; i < cData; i++)
-
- 000eb 85 d2 test edx, edx
- 000ed 76 11 jbe SHORT $L56592
- 000ef 8b 75 10 mov esi, DWORD PTR _pData$[ebp]
- 000f2 8b ca mov ecx, edx
- 000f4 8d 7d ec lea edi, DWORD PTR _Data$[ebp]
- 000f7 f3 a5 rep movsd
- 000f9 8b da mov ebx, edx
- $L56392:
-
- ; 256 : Data[i] = pData[i];
- ; 257 : break;
- ; 258 : }
- ; 259 :
- ; 260 : for(; i < 3; i++)
-
- 000fb 83 fa 03 cmp edx, 3
- 000fe 73 11 jae SHORT $L56575
- $L56592:
-
- ; 261 : Data[i] = 0.0f;
-
- 00100 6a 03 push 3
- 00102 5a pop edx
- 00103 2b d3 sub edx, ebx
- 00105 8d 7c 9d ec lea edi, DWORD PTR _Data$[ebp+ebx*4]
- 00109 33 c0 xor eax, eax
- 0010b 8b ca mov ecx, edx
- 0010d f3 ab rep stosd
- 0010f 03 da add ebx, edx
- $L56575:
-
- ; 262 :
- ; 263 : for(; i < 4; i++)
-
- 00111 6a 04 push 4
- 00113 59 pop ecx
- 00114 3b d9 cmp ebx, ecx
- 00116 73 0d jae SHORT $L56398
- 00118 8d 7c 9d ec lea edi, DWORD PTR _Data$[ebp+ebx*4]
- 0011c 2b cb sub ecx, ebx
- 0011e b8 00 00 80 3f mov eax, 1065353216 ; 3f800000H
- 00123 f3 ab rep stosd
- $L56398:
-
- ; 264 : Data[i] = 1.0f;
- ; 265 :
- ; 266 : if(pElem)
- ; 267 : {
- ; 268 : LPVOID pElement = GetElementPointer(pElem,index);
-
- 00125 ff 75 0c push DWORD PTR _index$[ebp]
- 00128 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
- 0012b ff 75 08 push DWORD PTR _pElem$[ebp]
- 0012e e8 00 00 00 00 call ?GetElementPointer@CD3DXCrackDecl@@QAEPAEPBU_D3DVERTEXELEMENT9@@I@Z ; CD3DXCrackDecl::GetElementPointer
- 00133 8b f0 mov esi, eax
-
- ; 269 :
- ; 270 : switch(pElem->Type)
-
- 00135 8b 45 14 mov eax, DWORD PTR tv484[ebp]
- 00138 83 f8 10 cmp eax, 16 ; 00000010H
- 0013b 0f 87 cf 02 00
- 00 ja $L56404
- 00141 ff 24 85 00 00
- 00 00 jmp DWORD PTR $L56601[eax*4]
- $L56407:
-
- ; 271 : {
- ; 272 : case D3DDECLTYPE_FLOAT1:
- ; 273 : ((FLOAT *) pElement)[0] = Data[0];
-
- 00148 8b 45 ec mov eax, DWORD PTR _Data$[ebp]
- 0014b 89 06 mov DWORD PTR [esi], eax
-
- ; 274 : break;
-
- 0014d e9 be 02 00 00 jmp $L56404
- $L56409:
-
- ; 275 :
- ; 276 : case D3DDECLTYPE_FLOAT2:
- ; 277 : ((FLOAT *) pElement)[0] = Data[0];
-
- 00152 8b 45 ec mov eax, DWORD PTR _Data$[ebp]
- 00155 89 06 mov DWORD PTR [esi], eax
-
- ; 278 : ((FLOAT *) pElement)[1] = Data[1];
-
- 00157 8b 45 f0 mov eax, DWORD PTR _Data$[ebp+4]
- 0015a 89 46 04 mov DWORD PTR [esi+4], eax
-
- ; 279 : break;
-
- 0015d e9 ae 02 00 00 jmp $L56404
- $L56412:
-
- ; 280 :
- ; 281 : case D3DDECLTYPE_FLOAT3:
- ; 282 : ((FLOAT *) pElement)[0] = Data[0];
-
- 00162 8b 45 ec mov eax, DWORD PTR _Data$[ebp]
- 00165 89 06 mov DWORD PTR [esi], eax
-
- ; 283 : ((FLOAT *) pElement)[1] = Data[1];
-
- 00167 8b 45 f0 mov eax, DWORD PTR _Data$[ebp+4]
- 0016a 89 46 04 mov DWORD PTR [esi+4], eax
-
- ; 284 : ((FLOAT *) pElement)[2] = Data[2];
-
- 0016d 8b 45 f4 mov eax, DWORD PTR _Data$[ebp+8]
- 00170 89 46 08 mov DWORD PTR [esi+8], eax
-
- ; 285 : break;
-
- 00173 e9 98 02 00 00 jmp $L56404
- $L56416:
-
- ; 286 :
- ; 287 : case D3DDECLTYPE_FLOAT4:
- ; 288 : ((FLOAT *) pElement)[0] = Data[0];
-
- 00178 8b 45 ec mov eax, DWORD PTR _Data$[ebp]
- 0017b 89 06 mov DWORD PTR [esi], eax
-
- ; 289 : ((FLOAT *) pElement)[1] = Data[1];
-
- 0017d 8b 45 f0 mov eax, DWORD PTR _Data$[ebp+4]
- 00180 89 46 04 mov DWORD PTR [esi+4], eax
-
- ; 290 : ((FLOAT *) pElement)[2] = Data[2];
-
- 00183 8b 45 f4 mov eax, DWORD PTR _Data$[ebp+8]
- 00186 89 46 08 mov DWORD PTR [esi+8], eax
-
- ; 291 : ((FLOAT *) pElement)[3] = Data[3];
-
- 00189 8b 45 f8 mov eax, DWORD PTR _Data$[ebp+12]
- 0018c 89 46 0c mov DWORD PTR [esi+12], eax
-
- ; 292 : break;
-
- 0018f e9 7c 02 00 00 jmp $L56404
- $L56421:
-
- ; 293 :
- ; 294 : case D3DDECLTYPE_D3DCOLOR:
- ; 295 : ((D3DCOLOR *) pElement)[0] =
- ; 296 : (((D3DCOLOR) (Data[0] * 255.0f + 0.5f) & 0xff) << 16) |
- ; 297 : (((D3DCOLOR) (Data[1] * 255.0f + 0.5f) & 0xff) << 8) |
- ; 298 : (((D3DCOLOR) (Data[2] * 255.0f + 0.5f) & 0xff) << 0) |
- ; 299 : (((D3DCOLOR) (Data[3] * 255.0f + 0.5f) & 0xff) << 24);
-
- 00194 d9 05 00 00 00
- 00 fld DWORD PTR __real@437f0000
- 0019a d9 05 00 00 00
- 00 fld DWORD PTR __real@3f000000
- 001a0 d9 45 ec fld DWORD PTR _Data$[ebp]
- 001a3 d8 ca fmul ST(0), ST(2)
- 001a5 d8 c1 fadd ST(0), ST(1)
- 001a7 e8 00 00 00 00 call __ftol
- 001ac d9 45 f8 fld DWORD PTR _Data$[ebp+12]
- 001af d8 ca fmul ST(0), ST(2)
- 001b1 8b d8 mov ebx, eax
- 001b3 bf ff 00 00 00 mov edi, 255 ; 000000ffH
- 001b8 23 df and ebx, edi
- 001ba d8 c1 fadd ST(0), ST(1)
- 001bc e8 00 00 00 00 call __ftol
- 001c1 d9 45 f0 fld DWORD PTR _Data$[ebp+4]
- 001c4 d8 ca fmul ST(0), ST(2)
- 001c6 c1 e0 08 shl eax, 8
- 001c9 0b d8 or ebx, eax
- 001cb c1 e3 08 shl ebx, 8
- 001ce d8 c1 fadd ST(0), ST(1)
- 001d0 e8 00 00 00 00 call __ftol
- 001d5 d9 45 f4 fld DWORD PTR _Data$[ebp+8]
- 001d8 23 c7 and eax, edi
- 001da 0b d8 or ebx, eax
- 001dc c1 e3 08 shl ebx, 8
-
- ; 300 : break;
-
- 001df e9 07 02 00 00 jmp $L56595
- $L56427:
-
- ; 301 :
- ; 302 : case D3DDECLTYPE_UBYTE4:
- ; 303 : ((UINT8 *) pElement)[0] = (UINT8) (Data[0] + 0.5f);
-
- 001e4 d9 05 00 00 00
- 00 fld DWORD PTR __real@3f000000
- 001ea d9 45 ec fld DWORD PTR _Data$[ebp]
- 001ed d8 c1 fadd ST(0), ST(1)
- 001ef e8 00 00 00 00 call __ftol
- 001f4 88 06 mov BYTE PTR [esi], al
-
- ; 304 : ((UINT8 *) pElement)[1] = (UINT8) (Data[1] + 0.5f);
-
- 001f6 d9 45 f0 fld DWORD PTR _Data$[ebp+4]
- 001f9 d8 c1 fadd ST(0), ST(1)
- 001fb e8 00 00 00 00 call __ftol
- 00200 88 46 01 mov BYTE PTR [esi+1], al
-
- ; 305 : ((UINT8 *) pElement)[2] = (UINT8) (Data[2] + 0.5f);
-
- 00203 d9 45 f4 fld DWORD PTR _Data$[ebp+8]
- 00206 d8 c1 fadd ST(0), ST(1)
- 00208 e8 00 00 00 00 call __ftol
- 0020d 88 46 02 mov BYTE PTR [esi+2], al
-
- ; 306 : ((UINT8 *) pElement)[3] = (UINT8) (Data[3] + 0.5f);
-
- 00210 d9 45 f8 fld DWORD PTR _Data$[ebp+12]
- 00213 d8 c1 fadd ST(0), ST(1)
- 00215 e8 00 00 00 00 call __ftol
-
- ; 307 : break;
-
- 0021a e9 9d 00 00 00 jmp $L56599
- $L56436:
-
- ; 308 :
- ; 309 : case D3DDECLTYPE_SHORT2:
- ; 310 : ((INT16 *) pElement)[0] = (INT16) (Data[0] + 0.5f);
-
- 0021f d9 45 ec fld DWORD PTR _Data$[ebp]
- 00222 d8 05 00 00 00
- 00 fadd DWORD PTR __real@3f000000
- 00228 e8 00 00 00 00 call __ftol
- 0022d 66 89 06 mov WORD PTR [esi], ax
-
- ; 311 : ((INT16 *) pElement)[1] = (INT16) (Data[1] + 0.5f);
-
- 00230 d9 45 f0 fld DWORD PTR _Data$[ebp+4]
-
- ; 312 : break;
-
- 00233 e9 d8 00 00 00 jmp $L56598
- $L56441:
-
- ; 313 :
- ; 314 : case D3DDECLTYPE_SHORT4:
- ; 315 : ((INT16 *) pElement)[0] = (INT16) (Data[0] + 0.5f);
-
- 00238 d9 05 00 00 00
- 00 fld DWORD PTR __real@3f000000
- 0023e d9 45 ec fld DWORD PTR _Data$[ebp]
- 00241 d8 c1 fadd ST(0), ST(1)
- 00243 e8 00 00 00 00 call __ftol
- 00248 66 89 06 mov WORD PTR [esi], ax
-
- ; 316 : ((INT16 *) pElement)[1] = (INT16) (Data[1] + 0.5f);
-
- 0024b d9 45 f0 fld DWORD PTR _Data$[ebp+4]
- 0024e d8 c1 fadd ST(0), ST(1)
- 00250 e8 00 00 00 00 call __ftol
- 00255 66 89 46 02 mov WORD PTR [esi+2], ax
-
- ; 317 : ((INT16 *) pElement)[2] = (INT16) (Data[2] + 0.5f);
-
- 00259 d9 45 f4 fld DWORD PTR _Data$[ebp+8]
- 0025c d8 c1 fadd ST(0), ST(1)
- 0025e e8 00 00 00 00 call __ftol
- 00263 66 89 46 04 mov WORD PTR [esi+4], ax
-
- ; 318 : ((INT16 *) pElement)[3] = (INT16) (Data[3] + 0.5f);
-
- 00267 d9 45 f8 fld DWORD PTR _Data$[ebp+12]
- 0026a d8 c1 fadd ST(0), ST(1)
- 0026c e8 00 00 00 00 call __ftol
-
- ; 319 : break;
-
- 00271 e9 f7 00 00 00 jmp $L56597
- $L56450:
-
- ; 320 :
- ; 321 : case D3DDECLTYPE_UBYTE4N:
- ; 322 : ((UINT8 *) pElement)[0] = (UINT8) (Data[0] * 255.0f + 0.5f);
-
- 00276 d9 05 00 00 00
- 00 fld DWORD PTR __real@437f0000
- 0027c d9 05 00 00 00
- 00 fld DWORD PTR __real@3f000000
- 00282 d9 45 ec fld DWORD PTR _Data$[ebp]
- 00285 d8 ca fmul ST(0), ST(2)
- 00287 d8 c1 fadd ST(0), ST(1)
- 00289 e8 00 00 00 00 call __ftol
- 0028e 88 06 mov BYTE PTR [esi], al
-
- ; 323 : ((UINT8 *) pElement)[1] = (UINT8) (Data[1] * 255.0f + 0.5f);
-
- 00290 d9 45 f0 fld DWORD PTR _Data$[ebp+4]
- 00293 d8 ca fmul ST(0), ST(2)
- 00295 d8 c1 fadd ST(0), ST(1)
- 00297 e8 00 00 00 00 call __ftol
- 0029c 88 46 01 mov BYTE PTR [esi+1], al
-
- ; 324 : ((UINT8 *) pElement)[2] = (UINT8) (Data[2] * 255.0f + 0.5f);
-
- 0029f d9 45 f4 fld DWORD PTR _Data$[ebp+8]
- 002a2 d8 ca fmul ST(0), ST(2)
- 002a4 d8 c1 fadd ST(0), ST(1)
- 002a6 e8 00 00 00 00 call __ftol
- 002ab 88 46 02 mov BYTE PTR [esi+2], al
-
- ; 325 : ((UINT8 *) pElement)[3] = (UINT8) (Data[3] * 255.0f + 0.5f);
-
- 002ae d9 45 f8 fld DWORD PTR _Data$[ebp+12]
- 002b1 d8 ca fmul ST(0), ST(2)
- 002b3 d8 c1 fadd ST(0), ST(1)
- 002b5 e8 00 00 00 00 call __ftol
- 002ba dd d8 fstp ST(0)
- $L56599:
- 002bc dd d8 fstp ST(0)
- 002be 88 46 03 mov BYTE PTR [esi+3], al
-
- ; 326 : break;
-
- 002c1 e9 4a 01 00 00 jmp $L56404
- $L56459:
-
- ; 327 :
- ; 328 : case D3DDECLTYPE_SHORT2N:
- ; 329 : ((INT16 *) pElement)[0] = (INT16) (Data[0] * 32767.0f + 0.5f);
-
- 002c6 d9 45 ec fld DWORD PTR _Data$[ebp]
- 002c9 d8 0d 00 00 00
- 00 fmul DWORD PTR __real@46fffe00
- 002cf d8 05 00 00 00
- 00 fadd DWORD PTR __real@3f000000
- 002d5 e8 00 00 00 00 call __ftol
- 002da 66 89 06 mov WORD PTR [esi], ax
-
- ; 330 : ((INT16 *) pElement)[1] = (INT16) (Data[1] * 32767.0f + 0.5f);
-
- 002dd d9 45 f0 fld DWORD PTR _Data$[ebp+4]
- 002e0 d8 0d 00 00 00
- 00 fmul DWORD PTR __real@46fffe00
-
- ; 331 : break;
-
- 002e6 eb 28 jmp SHORT $L56598
- $L56464:
-
- ; 332 :
- ; 333 : case D3DDECLTYPE_SHORT4N:
- ; 334 : ((INT16 *) pElement)[0] = (INT16) (Data[0] * 32767.0f + 0.5f);
-
- 002e8 d9 05 00 00 00
- 00 fld DWORD PTR __real@46fffe00
-
- ; 335 : ((INT16 *) pElement)[1] = (INT16) (Data[1] * 32767.0f + 0.5f);
- ; 336 : ((INT16 *) pElement)[2] = (INT16) (Data[2] * 32767.0f + 0.5f);
- ; 337 : ((INT16 *) pElement)[3] = (INT16) (Data[3] * 32767.0f + 0.5f);
- ; 338 : break;
-
- 002ee eb 3a jmp SHORT $L56596
- $L56473:
-
- ; 339 :
- ; 340 : case D3DDECLTYPE_USHORT2N:
- ; 341 : ((UINT16 *) pElement)[0] = (UINT16) (Data[0] * 65535.0f + 0.5f);
-
- 002f0 d9 45 ec fld DWORD PTR _Data$[ebp]
- 002f3 d8 0d 00 00 00
- 00 fmul DWORD PTR __real@477fff00
- 002f9 d8 05 00 00 00
- 00 fadd DWORD PTR __real@3f000000
- 002ff e8 00 00 00 00 call __ftol
- 00304 66 89 06 mov WORD PTR [esi], ax
-
- ; 342 : ((UINT16 *) pElement)[1] = (UINT16) (Data[1] * 65535.0f + 0.5f);
-
- 00307 d9 45 f0 fld DWORD PTR _Data$[ebp+4]
- 0030a d8 0d 00 00 00
- 00 fmul DWORD PTR __real@477fff00
- $L56598:
- 00310 d8 05 00 00 00
- 00 fadd DWORD PTR __real@3f000000
- 00316 e8 00 00 00 00 call __ftol
- 0031b 66 89 46 02 mov WORD PTR [esi+2], ax
-
- ; 343 : break;
-
- 0031f e9 ec 00 00 00 jmp $L56404
- $L56478:
-
- ; 344 :
- ; 345 : case D3DDECLTYPE_USHORT4N:
- ; 346 : ((UINT16 *) pElement)[0] = (UINT16) (Data[0] * 65535.0f + 0.5f);
-
- 00324 d9 05 00 00 00
- 00 fld DWORD PTR __real@477fff00
- $L56596:
- 0032a d9 05 00 00 00
- 00 fld DWORD PTR __real@3f000000
- 00330 d9 45 ec fld DWORD PTR _Data$[ebp]
- 00333 d8 ca fmul ST(0), ST(2)
- 00335 d8 c1 fadd ST(0), ST(1)
- 00337 e8 00 00 00 00 call __ftol
- 0033c 66 89 06 mov WORD PTR [esi], ax
-
- ; 347 : ((UINT16 *) pElement)[1] = (UINT16) (Data[1] * 65535.0f + 0.5f);
-
- 0033f d9 45 f0 fld DWORD PTR _Data$[ebp+4]
- 00342 d8 ca fmul ST(0), ST(2)
- 00344 d8 c1 fadd ST(0), ST(1)
- 00346 e8 00 00 00 00 call __ftol
- 0034b 66 89 46 02 mov WORD PTR [esi+2], ax
-
- ; 348 : ((UINT16 *) pElement)[2] = (UINT16) (Data[2] * 65535.0f + 0.5f);
-
- 0034f d9 45 f4 fld DWORD PTR _Data$[ebp+8]
- 00352 d8 ca fmul ST(0), ST(2)
- 00354 d8 c1 fadd ST(0), ST(1)
- 00356 e8 00 00 00 00 call __ftol
- 0035b 66 89 46 04 mov WORD PTR [esi+4], ax
-
- ; 349 : ((UINT16 *) pElement)[3] = (UINT16) (Data[3] * 65535.0f + 0.5f);
-
- 0035f d9 45 f8 fld DWORD PTR _Data$[ebp+12]
- 00362 d8 ca fmul ST(0), ST(2)
- 00364 d8 c1 fadd ST(0), ST(1)
- 00366 e8 00 00 00 00 call __ftol
- 0036b dd d8 fstp ST(0)
- $L56597:
- 0036d dd d8 fstp ST(0)
- 0036f 66 89 46 06 mov WORD PTR [esi+6], ax
-
- ; 350 : break;
-
- 00373 e9 98 00 00 00 jmp $L56404
- $L56487:
-
- ; 351 :
- ; 352 : case D3DDECLTYPE_UDEC3:
- ; 353 : ((UINT32 *) pElement)[0] =
- ; 354 : (((UINT32) (Data[0] + 0.5f) & 0x3ff) << 0) |
- ; 355 : (((UINT32) (Data[1] + 0.5f) & 0x3ff) << 10) |
- ; 356 : (((UINT32) (Data[2] + 0.5f) & 0x3ff) << 20);
-
- 00378 d9 05 00 00 00
- 00 fld DWORD PTR __real@3f000000
- 0037e d9 45 f4 fld DWORD PTR _Data$[ebp+8]
- 00381 d8 c1 fadd ST(0), ST(1)
- 00383 e8 00 00 00 00 call __ftol
- 00388 d9 45 f0 fld DWORD PTR _Data$[ebp+4]
- 0038b 8b d8 mov ebx, eax
- 0038d d8 c1 fadd ST(0), ST(1)
- 0038f bf ff 03 00 00 mov edi, 1023 ; 000003ffH
- 00394 23 df and ebx, edi
- 00396 c1 e3 0a shl ebx, 10 ; 0000000aH
- 00399 e8 00 00 00 00 call __ftol
- 0039e d9 45 ec fld DWORD PTR _Data$[ebp]
- 003a1 23 c7 and eax, edi
- 003a3 d8 c1 fadd ST(0), ST(1)
- 003a5 0b d8 or ebx, eax
- 003a7 c1 e3 0a shl ebx, 10 ; 0000000aH
- 003aa e8 00 00 00 00 call __ftol
-
- ; 357 : break;
-
- 003af eb 45 jmp SHORT $L56594
- $L56492:
-
- ; 358 :
- ; 359 : case D3DDECLTYPE_DEC3N:
- ; 360 : ((UINT32 *) pElement)[0] =
- ; 361 : (((UINT32) (Data[0] * 511.0f + 0.5f) & 0x3ff) << 0) |
- ; 362 : (((UINT32) (Data[1] * 511.0f + 0.5f) & 0x3ff) << 10) |
- ; 363 : (((UINT32) (Data[2] * 511.0f + 0.5f) & 0x3ff) << 20);
-
- 003b1 d9 05 00 00 00
- 00 fld DWORD PTR __real@43ff8000
- 003b7 d9 05 00 00 00
- 00 fld DWORD PTR __real@3f000000
- 003bd d9 45 f4 fld DWORD PTR _Data$[ebp+8]
- 003c0 d8 ca fmul ST(0), ST(2)
- 003c2 d8 c1 fadd ST(0), ST(1)
- 003c4 e8 00 00 00 00 call __ftol
- 003c9 d9 45 f0 fld DWORD PTR _Data$[ebp+4]
- 003cc d8 ca fmul ST(0), ST(2)
- 003ce 8b d8 mov ebx, eax
- 003d0 bf ff 03 00 00 mov edi, 1023 ; 000003ffH
- 003d5 23 df and ebx, edi
- 003d7 d8 c1 fadd ST(0), ST(1)
- 003d9 c1 e3 0a shl ebx, 10 ; 0000000aH
- 003dc e8 00 00 00 00 call __ftol
- 003e1 d9 45 ec fld DWORD PTR _Data$[ebp]
- 003e4 23 c7 and eax, edi
- 003e6 0b d8 or ebx, eax
- 003e8 c1 e3 0a shl ebx, 10 ; 0000000aH
- $L56595:
- 003eb d8 ca fmul ST(0), ST(2)
- 003ed d8 c1 fadd ST(0), ST(1)
- 003ef e8 00 00 00 00 call __ftol
- 003f4 dd d8 fstp ST(0)
- $L56594:
- 003f6 23 c7 and eax, edi
- 003f8 dd d8 fstp ST(0)
- 003fa 0b d8 or ebx, eax
- 003fc 89 1e mov DWORD PTR [esi], ebx
-
- ; 364 : break;
-
- 003fe eb 10 jmp SHORT $L56404
- $L56497:
-
- ; 365 : case D3DDECLTYPE_FLOAT16_2:
- ; 366 : D3DXFloat32To16Array((D3DXFLOAT16*)pElement,Data,2);
-
- 00400 6a 02 push 2
-
- ; 367 : break;
-
- 00402 eb 02 jmp SHORT $L56593
- $L56499:
-
- ; 368 : case D3DDECLTYPE_FLOAT16_4:
- ; 369 : D3DXFloat32To16Array((D3DXFLOAT16*)pElement,Data,4);
-
- 00404 6a 04 push 4
- $L56593:
- 00406 8d 45 ec lea eax, DWORD PTR _Data$[ebp]
- 00409 50 push eax
- 0040a 56 push esi
- 0040b e8 00 00 00 00 call _D3DXFloat32To16Array@12
- $L56404:
- 00410 5f pop edi
- 00411 5e pop esi
- 00412 5b pop ebx
-
- ; 370 : break;
- ; 371 : }
- ; 372 : }
- ; 373 : }
-
- 00413 c9 leave
- 00414 c2 10 00 ret 16 ; 00000010H
- $L56600:
- 00417 00 00 00 00 DD $L56379
- 0041b 00 00 00 00 DD $L56387
- 0041f 00 00 00 00 DD $L56383
- 00423 00 00 00 00 DD $L56391
- $L56578:
- 00427 00 DB 0
- 00428 01 DB 1
- 00429 03 DB 3
- 0042a 03 DB 3
- 0042b 00 DB 0
- 0042c 02 DB 2
- 0042d 02 DB 2
- 0042e 00 DB 0
- 0042f 00 DB 0
- 00430 01 DB 1
- 00431 02 DB 2
- $L56601:
- 00432 00 00 00 00 DD $L56407
- 00436 00 00 00 00 DD $L56409
- 0043a 00 00 00 00 DD $L56412
- 0043e 00 00 00 00 DD $L56416
- 00442 00 00 00 00 DD $L56421
- 00446 00 00 00 00 DD $L56427
- 0044a 00 00 00 00 DD $L56436
- 0044e 00 00 00 00 DD $L56441
- 00452 00 00 00 00 DD $L56450
- 00456 00 00 00 00 DD $L56459
- 0045a 00 00 00 00 DD $L56464
- 0045e 00 00 00 00 DD $L56473
- 00462 00 00 00 00 DD $L56478
- 00466 00 00 00 00 DD $L56487
- 0046a 00 00 00 00 DD $L56492
- 0046e 00 00 00 00 DD $L56497
- 00472 00 00 00 00 DD $L56499
- ?Encode@CD3DXCrackDecl@@QAEXPBU_D3DVERTEXELEMENT9@@IPBMI@Z ENDP ; CD3DXCrackDecl::Encode
- _TEXT ENDS
- END
-