d3d_model_vertex_normal_texture_color - Actual function (the address you get with get_function_addr):
CPU Disasm
Address Hex dump Command Comments
00669900 /. 55 PUSH EBP
00669901 |. 8BEC MOV EBP,ESP
00669903 |. 53 PUSH EBX
00669904 |. 8B5D 10 MOV EBX,DWORD PTR SS:[ARG.3]
00669907 |. FF73 24 PUSH DWORD PTR DS:[EBX+24] ; /Arg18
0066990A |. FF73 20 PUSH DWORD PTR DS:[EBX+20] ; |Arg17
0066990D |. FF73 3C PUSH DWORD PTR DS:[EBX+3C] ; |Arg16
00669910 |. FF73 38 PUSH DWORD PTR DS:[EBX+38] ; |Arg15
00669913 |. FF73 54 PUSH DWORD PTR DS:[EBX+54] ; |Arg14
00669916 |. FF73 50 PUSH DWORD PTR DS:[EBX+50] ; |Arg13
00669919 |. FF73 6C PUSH DWORD PTR DS:[EBX+6C] ; |Arg12
0066991C |. FF73 68 PUSH DWORD PTR DS:[EBX+68] ; |Arg11
0066991F |. FFB3 84000000 PUSH DWORD PTR DS:[EBX+84] ; |Arg10
00669925 |. FFB3 80000000 PUSH DWORD PTR DS:[EBX+80] ; |Arg9
0066992B |. FFB3 9C000000 PUSH DWORD PTR DS:[EBX+9C] ; |Arg8
00669931 |. FFB3 98000000 PUSH DWORD PTR DS:[EBX+98] ; |Arg7
00669937 |. FFB3 B4000000 PUSH DWORD PTR DS:[EBX+0B4] ; |Arg6
0066993D |. FFB3 B0000000 PUSH DWORD PTR DS:[EBX+0B0] ; |Arg5
00669943 |. FFB3 CC000000 PUSH DWORD PTR DS:[EBX+0CC] ; |Arg4
00669949 |. FFB3 C8000000 PUSH DWORD PTR DS:[EBX+0C8] ; |Arg3
0066994F |. FFB3 FC000000 PUSH DWORD PTR DS:[EBX+0FC] ; |Arg2
00669955 |. FFB3 F8000000 PUSH DWORD PTR DS:[EBX+0F8] ; |Arg1
0066995B |. DD83 E0000000 FLD QWORD PTR DS:[EBX+0E0] ; |
00669961 |. E8 52AFD9FF CALL 004048B8 ; |
00669966 |. 50 PUSH EAX ; |
00669967 |. DD43 08 FLD QWORD PTR DS:[EBX+8] ; |
0066996A |. E8 49AFD9FF CALL 004048B8 ; |
0066996F |. 5A POP EDX ; |
00669970 |. E8 53EDFFFF CALL 006686C8 ; \d3d_model_load_fast.006686C8 <-------------
00669975 |. 5B POP EBX
00669976 |. 5D POP EBP
00669977 \. C2 0C00 RETN 0C
CPU Disasm
Address Hex dump Command Comments
006686C8 /$ 55 PUSH EBP ; d3d_model_load_fast.006686C8(guessed Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,Arg8,Arg9,Arg10,Arg11,Arg12,Arg13,Arg14,Arg15,Arg16,Arg17,Arg18)
006686C9 |. 8BEC MOV EBP,ESP
006686CB |. 51 PUSH ECX
006686CC |. 85C0 TEST EAX,EAX
006686CE |. 7C 6A JL SHORT 0066873A
006686D0 |. 3B05 48886800 CMP EAX,DWORD PTR DS:[688848]
006686D6 |. 7D 62 JGE SHORT 0066873A
006686D8 |. 8B0D 94E28800 MOV ECX,DWORD PTR DS:[88E294]
006686DE |. 833C81 00 CMP DWORD PTR DS:[EAX*4+ECX],0
006686E2 |. 74 56 JE SHORT 0066873A
006686E4 |. FF75 4C PUSH DWORD PTR SS:[ARG.18] ; /Arg20 => [ARG.18]
006686E7 |. FF75 48 PUSH DWORD PTR SS:[ARG.17] ; |Arg19 => [ARG.17]
006686EA |. FF75 44 PUSH DWORD PTR SS:[ARG.16] ; |Arg18 => [ARG.16]
006686ED |. FF75 40 PUSH DWORD PTR SS:[ARG.15] ; |Arg17 => [ARG.15]
006686F0 |. FF75 3C PUSH DWORD PTR SS:[ARG.14] ; |Arg16 => [ARG.14]
006686F3 |. FF75 38 PUSH DWORD PTR SS:[ARG.13] ; |Arg15 => [ARG.13]
006686F6 |. FF75 34 PUSH DWORD PTR SS:[ARG.12] ; |Arg14 => [ARG.12]
006686F9 |. FF75 30 PUSH DWORD PTR SS:[ARG.11] ; |Arg13 => [ARG.11]
006686FC |. FF75 2C PUSH DWORD PTR SS:[ARG.10] ; |Arg12 => [ARG.10]
006686FF |. FF75 28 PUSH DWORD PTR SS:[ARG.9] ; |Arg11 => [ARG.9]
00668702 |. FF75 24 PUSH DWORD PTR SS:[ARG.8] ; |Arg10 => [ARG.8]
00668705 |. FF75 20 PUSH DWORD PTR SS:[ARG.7] ; |Arg9 => [ARG.7]
00668708 |. FF75 1C PUSH DWORD PTR SS:[ARG.6] ; |Arg8 => [ARG.6]
0066870B |. FF75 18 PUSH DWORD PTR SS:[ARG.5] ; |Arg7 => [ARG.5]
0066870E |. FF75 14 PUSH DWORD PTR SS:[ARG.4] ; |Arg6 => [ARG.4]
00668711 |. FF75 10 PUSH DWORD PTR SS:[ARG.3] ; |Arg5 => [ARG.3]
00668714 |. 8955 FC MOV DWORD PTR SS:[LOCAL.1],EDX ; |
00668717 |. DB45 FC FILD DWORD PTR SS:[LOCAL.1] ; |
0066871A |. 83C4 F8 ADD ESP,-8 ; |
0066871D |. DD1C24 FSTP QWORD PTR SS:[LOCAL.19] ; |Arg3_4
00668720 |. 9B WAIT ; |
00668721 |. FF75 0C PUSH DWORD PTR SS:[ARG.2] ; |Arg2 => [ARG.2]
00668724 |. FF75 08 PUSH DWORD PTR SS:[ARG.1] ; |Arg1 => [ARG.1]
00668727 |. 8B15 94E28800 MOV EDX,DWORD PTR DS:[88E294] ; | <------------- !!!!!!! Offset model base: struct Model {void * classInstance; int vertCount; void* data;}; ModelBase[MAX_MODELS];
0066872D |. 8B0482 MOV EAX,DWORD PTR DS:[EAX*4+EDX] ; | EAX contains model id returned by create_model before this. 0 based.
00668730 |. BA 09000000 MOV EDX,9 ; | EAX now contains the pointer to the GMModel structure of the model specified
00668735 |. E8 0EF4FFFF CALL 00667B48 ; \d3d_model_load_fast.00667B48 <-------------
0066873A |> 59 POP ECX
0066873B |. 5D POP EBP
0066873C \. C2 4800 RETN 48
CPU Disasm
Address Hex dump Command Comments
00667B48 /$ 55 PUSH EBP ; d3d_model_load_fast.00667B48(guessed Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7,Arg8,Arg9,Arg10,Arg11,Arg12,Arg13,Arg14,Arg15,Arg16,Arg17,Arg18,Arg19,Arg20)
00667B49 |. 8BEC MOV EBP,ESP
00667B4B |. 53 PUSH EBX
00667B4C |. 56 PUSH ESI
00667B4D |. 8BF2 MOV ESI,EDX
00667B4F |. 8BD8 MOV EBX,EAX ; EBX now contains the GMModel pointer
00667B51 |. 8B43 08 MOV EAX,DWORD PTR DS:[EBX+8]
00667B54 |. E8 DB20DAFF CALL 00409C34
00667B59 |. 3B43 04 CMP EAX,DWORD PTR DS:[EBX+4]
00667B5C |. 7F 1D JG SHORT 00667B7B
00667B5E |. 8B43 04 MOV EAX,DWORD PTR DS:[EBX+4]
00667B61 |. 83C0 20 ADD EAX,20
00667B64 |. 50 PUSH EAX
00667B65 |. 8D43 08 LEA EAX,[EBX+8]
00667B68 |. B9 01000000 MOV ECX,1
00667B6D |. 8B15 28716600 MOV EDX,DWORD PTR DS:[667128]
00667B73 |. E8 8422DAFF CALL 00409DFC
00667B78 |. 83C4 04 ADD ESP,4
00667B7B |> 6B43 04 0B IMUL EAX,DWORD PTR DS:[EBX+4],0B <---- load GMModel.vertexCommandCount * 11 (11 values (doubles/first int)) stored per vertex into EAX
00667B7F |. 8B53 08 MOV EDX,DWORD PTR DS:[EBX+8]
00667B82 |. 8934C2 MOV DWORD PTR DS:[EAX*8+EDX],ESI
00667B85 |. 6B43 04 0B IMUL EAX,DWORD PTR DS:[EBX+4],0B
00667B89 |. 8B53 08 MOV EDX,DWORD PTR DS:[EBX+8] <------------ EDX now points to current GMVertexCommand
00667B8C |. 8B4D 50 MOV ECX,DWORD PTR SS:[ARG.19]
00667B8F |. 894CC2 08 MOV DWORD PTR DS:[EAX*8+EDX+8],ECX
00667B93 |. 8B4D 54 MOV ECX,DWORD PTR SS:[ARG.20]
00667B96 |. 894CC2 0C MOV DWORD PTR DS:[EAX*8+EDX+0C],ECX
00667B9A |. 6B43 04 0B IMUL EAX,DWORD PTR DS:[EBX+4],0B
00667B9E |. 8B53 08 MOV EDX,DWORD PTR DS:[EBX+8]
00667BA1 |. 8B4D 48 MOV ECX,DWORD PTR SS:[ARG.17]
00667BA4 |. 894CC2 10 MOV DWORD PTR DS:[EAX*8+EDX+10],ECX
00667BA8 |. 8B4D 4C MOV ECX,DWORD PTR SS:[ARG.18]
00667BAB |. 894CC2 14 MOV DWORD PTR DS:[EAX*8+EDX+14],ECX
00667BAF |. 6B43 04 0B IMUL EAX,DWORD PTR DS:[EBX+4],0B
00667BB3 |. 8B53 08 MOV EDX,DWORD PTR DS:[EBX+8]
00667BB6 |. 8B4D 40 MOV ECX,DWORD PTR SS:[ARG.15]
00667BB9 |. 894CC2 18 MOV DWORD PTR DS:[EAX*8+EDX+18],ECX
00667BBD |. 8B4D 44 MOV ECX,DWORD PTR SS:[ARG.16]
00667BC0 |. 894CC2 1C MOV DWORD PTR DS:[EAX*8+EDX+1C],ECX
00667BC4 |. 6B43 04 0B IMUL EAX,DWORD PTR DS:[EBX+4],0B
00667BC8 |. 8B53 08 MOV EDX,DWORD PTR DS:[EBX+8]
00667BCB |. 8B4D 38 MOV ECX,DWORD PTR SS:[ARG.13]
00667BCE |. 894CC2 20 MOV DWORD PTR DS:[EAX*8+EDX+20],ECX
00667BD2 |. 8B4D 3C MOV ECX,DWORD PTR SS:[ARG.14]
00667BD5 |. 894CC2 24 MOV DWORD PTR DS:[EAX*8+EDX+24],ECX
00667BD9 |. 6B43 04 0B IMUL EAX,DWORD PTR DS:[EBX+4],0B
00667BDD |. 8B53 08 MOV EDX,DWORD PTR DS:[EBX+8]
00667BE0 |. 8B4D 30 MOV ECX,DWORD PTR SS:[ARG.11]
00667BE3 |. 894CC2 28 MOV DWORD PTR DS:[EAX*8+EDX+28],ECX
00667BE7 |. 8B4D 34 MOV ECX,DWORD PTR SS:[ARG.12]
00667BEA |. 894CC2 2C MOV DWORD PTR DS:[EAX*8+EDX+2C],ECX
00667BEE |. 6B43 04 0B IMUL EAX,DWORD PTR DS:[EBX+4],0B
00667BF2 |. 8B53 08 MOV EDX,DWORD PTR DS:[EBX+8]
00667BF5 |. 8B4D 28 MOV ECX,DWORD PTR SS:[ARG.9]
00667BF8 |. 894CC2 30 MOV DWORD PTR DS:[EAX*8+EDX+30],ECX
00667BFC |. 8B4D 2C MOV ECX,DWORD PTR SS:[ARG.10]
00667BFF |. 894CC2 34 MOV DWORD PTR DS:[EAX*8+EDX+34],ECX
00667C03 |. 6B43 04 0B IMUL EAX,DWORD PTR DS:[EBX+4],0B
00667C07 |. 8B53 08 MOV EDX,DWORD PTR DS:[EBX+8]
00667C0A |. 8B4D 20 MOV ECX,DWORD PTR SS:[ARG.7]
00667C0D |. 894CC2 38 MOV DWORD PTR DS:[EAX*8+EDX+38],ECX
00667C11 |. 8B4D 24 MOV ECX,DWORD PTR SS:[ARG.8]
00667C14 |. 894CC2 3C MOV DWORD PTR DS:[EAX*8+EDX+3C],ECX
00667C18 |. 6B43 04 0B IMUL EAX,DWORD PTR DS:[EBX+4],0B
00667C1C |. 8B53 08 MOV EDX,DWORD PTR DS:[EBX+8]
00667C1F |. 8B4D 18 MOV ECX,DWORD PTR SS:[ARG.5]
00667C22 |. 894CC2 40 MOV DWORD PTR DS:[EAX*8+EDX+40],ECX
00667C26 |. 8B4D 1C MOV ECX,DWORD PTR SS:[ARG.6]
00667C29 |. 894CC2 44 MOV DWORD PTR DS:[EAX*8+EDX+44],ECX
00667C2D |. 6B43 04 0B IMUL EAX,DWORD PTR DS:[EBX+4],0B
00667C31 |. 8B53 08 MOV EDX,DWORD PTR DS:[EBX+8]
00667C34 |. 8B4D 10 MOV ECX,DWORD PTR SS:[ARG.3]
00667C37 |. 894CC2 48 MOV DWORD PTR DS:[EAX*8+EDX+48],ECX
00667C3B |. 8B4D 14 MOV ECX,DWORD PTR SS:[ARG.4]
00667C3E |. 894CC2 4C MOV DWORD PTR DS:[EAX*8+EDX+4C],ECX
00667C42 |. 6B43 04 0B IMUL EAX,DWORD PTR DS:[EBX+4],0B
00667C46 |. 8B53 08 MOV EDX,DWORD PTR DS:[EBX+8]
00667C49 |. 8B4D 08 MOV ECX,DWORD PTR SS:[ARG.1]
00667C4C |. 894CC2 50 MOV DWORD PTR DS:[EAX*8+EDX+50],ECX
00667C50 |. 8B4D 0C MOV ECX,DWORD PTR SS:[ARG.2]
00667C53 |. 894CC2 54 MOV DWORD PTR DS:[EAX*8+EDX+54],ECX
00667C57 |. FF43 04 INC DWORD PTR DS:[EBX+4] <------------------- increases vertex count (GMModel.vertexCommandCount)
00667C5A |. 5E POP ESI
00667C5B |. 5B POP EBX
00667C5C |. 5D POP EBP
00667C5D \. C2 5000 RETN 50