logo logo

 Back to main page

The NWNX Community Forum

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
A NWscript function table, or a bunch of junk?

 
Post new topic   Reply to topic    nwnx.org Forum Index -> Windows development
View previous topic :: View next topic  
Author Message
addicted2rpg



Joined: 01 Aug 2008
Posts: 106

PostPosted: Tue Oct 27, 2009 9:47    Post subject: A NWscript function table, or a bunch of junk? Reply with quote

I need someone who knows more asm than me to help me out with this - I'm still a C coder at heart...

My hypothesis is that the following sets up a bunch of function pointers for a lot NWScript functions (but definitely not all -- Papillion's SetLocalString isn't here - some such functions have xrefs in hard coded internal NWN procedures like the map pins, so it seems kind of an "exception" / outside-the-box status).

I theorize the following said function pointers (I hope they're function pointers) are invoked dynamically by the script engine processing code.

I've gotten xrefs of a couple of scripting functions going to this block which is why I've concocted up this idea to try to explain why. Also, it looks like there is a whole lot of memory movement!!! What else in NWN could warrant that? (don't answer that!!!)

I'm still.... not sure of myself yet. Could this be a bunch of junk and I'm just smoking crack because of a few convenient xrefs, or am I actually on to something here?


[code:1:4d28a3a094]
.text:0056390B mov dword ptr [eax+ecx], 0
.text:00563912 add eax, 4
.text:00563915 cmp eax, 0D40h
.text:0056391A jl short loc_563908
.text:0056391C mov edx, [esi+0Ch]
.text:0056391F mov dword ptr [edx], offset loc_567DA0
.text:00563925 mov eax, [esi+0Ch]
.text:00563928 mov dword ptr [eax+4], offset loc_567E00
.text:0056392F mov ecx, [esi+0Ch]
.text:00563932 mov dword ptr [ecx+8], offset sub_567F60
.text:00563939 mov edx, [esi+0Ch]
.text:0056393C mov dword ptr [edx+10h], offset loc_568140
.text:00563943 mov eax, [esi+0Ch]
.text:00563946 mov dword ptr [eax+14h], offset loc_568220
.text:0056394D mov ecx, [esi+0Ch]
.text:00563950 mov dword ptr [ecx+18h], offset sub_568430
.text:00563957 mov edx, [esi+0Ch]
.text:0056395A mov dword ptr [edx+1Ch], offset sub_5684F0
.text:00563961 mov eax, [esi+0Ch]
.text:00563964 mov dword ptr [eax+20h], offset loc_568670
.text:0056396B mov ecx, [esi+0Ch]
.text:0056396E mov dword ptr [ecx+24h], offset sub_568770
.text:00563975 mov edx, [esi+0Ch]
.text:00563978 mov dword ptr [edx+0B80h], offset sub_568910
.text:00563982 mov eax, [esi+0Ch]
.text:00563985 mov dword ptr [eax+0B7Ch], offset sub_5689D0
.text:0056398F mov ecx, [esi+0Ch]
.text:00563992 mov dword ptr [ecx+28h], offset sub_568A80
.text:00563999 mov edx, [esi+0Ch]
.text:0056399C mov dword ptr [edx+2Ch], offset loc_568DA0
.text:005639A3 mov eax, [esi+0Ch]
.text:005639A6 mov dword ptr [eax+30h], offset loc_568FC0
.text:005639AD mov ecx, [esi+0Ch]
.text:005639B0 mov dword ptr [ecx+34h], offset loc_569120
.text:005639B7 mov edx, [esi+0Ch]
.text:005639BA mov dword ptr [edx+38h], offset loc_569170
.text:005639C1 mov eax, [esi+0Ch]
.text:005639C4 mov dword ptr [eax+3Ch], offset loc_5691C0
.text:005639CB mov ecx, [esi+0Ch]
.text:005639CE mov dword ptr [ecx+40h], offset loc_569210
.text:005639D5 mov edx, [esi+0Ch]
.text:005639D8 mov dword ptr [edx+44h], offset loc_569260
.text:005639DF mov eax, [esi+0Ch]
.text:005639E2 mov dword ptr [eax+48h], offset loc_5692B0
.text:005639E9 mov ecx, [esi+0Ch]
.text:005639EC mov dword ptr [ecx+4Ch], offset loc_569300
.text:005639F3 mov edx, [esi+0Ch]
.text:005639F6 mov dword ptr [edx+50h], offset loc_569350
.text:005639FD mov eax, [esi+0Ch]
.text:00563A00 mov dword ptr [eax+54h], offset sub_569480
.text:00563A07 mov ecx, [esi+0Ch]
.text:00563A0A mov dword ptr [ecx+58h], offset sub_56A210
.text:00563A11 mov edx, [esi+0Ch]
.text:00563A14 mov dword ptr [edx+5Ch], offset sub_56A4A0
.text:00563A1B mov eax, [esi+0Ch]
.text:00563A1E mov dword ptr [eax+60h], offset loc_56A670
.text:00563A25 mov ecx, [esi+0Ch]
.text:00563A28 mov dword ptr [ecx+64h], offset off_56A780
.text:00563A2F mov edx, [esi+0Ch]
.text:00563A32 mov dword ptr [edx+68h], offset loc_56A8A0
.text:00563A39 mov eax, [esi+0Ch]
.text:00563A3C mov dword ptr [eax+6Ch], offset sub_56A990
.text:00563A43 mov ecx, [esi+0Ch]
.text:00563A46 mov dword ptr [ecx+70h], offset sub_56AB70
.text:00563A4D mov edx, [esi+0Ch]
.text:00563A50 mov dword ptr [edx+74h], offset loc_56AC90
.text:00563A57 mov eax, [esi+0Ch]
.text:00563A5A mov dword ptr [eax+78h], offset loc_56B0E0
.text:00563A61 mov ecx, [esi+0Ch]
.text:00563A64 mov dword ptr [ecx+7Ch], offset loc_56AD80
.text:00563A6B mov edx, [esi+0Ch]
.text:00563A6E mov dword ptr [edx+80h], offset loc_56B3C0
.text:00563A78 mov eax, [esi+0Ch]
.text:00563A7B mov dword ptr [eax+84h], offset loc_56B580
.text:00563A85 mov ecx, [esi+0Ch]
.text:00563A88 mov dword ptr [ecx+88h], offset loc_56B620
.text:00563A92 mov edx, [esi+0Ch]
.text:00563A95 mov dword ptr [edx+8Ch], offset loc_56B6C0
.text:00563A9F mov eax, [esi+0Ch]
.text:00563AA2 mov dword ptr [eax+90h], offset loc_56B760
.text:00563AAC mov ecx, [esi+0Ch]
.text:00563AAF mov dword ptr [ecx+94h], offset sub_56B7E0
.text:00563AB9 mov eax, [esi+0Ch]
.text:00563ABC mov edx, offset loc_56B8A0
.text:00563AC1 mov [eax+98h], edx
.text:00563AC7 mov ecx, [esi+0Ch]
.text:00563ACA mov edi, offset loc_56C6B0
.text:00563ACF mov [ecx+9Ch], edi
.text:00563AD5 mov eax, [esi+0Ch]
.text:00563AD8 mov dword ptr [eax+0A0h], offset sub_56CA10
.text:00563AE2 mov ecx, [esi+0Ch]
.text:00563AE5 mov dword ptr [ecx+0A4h], offset sub_56D380
.text:00563AEF mov eax, [esi+0Ch]
.text:00563AF2 mov dword ptr [eax+0A8h], offset loc_56D4C0
.text:00563AFC mov ecx, [esi+0Ch]
.text:00563AFF mov dword ptr [ecx+0ACh], offset sub_56D520
.text:00563B09 mov eax, [esi+0Ch]
.text:00563B0C mov dword ptr [eax+0B0h], offset sub_56D5C0
.text:00563B16 mov ecx, [esi+0Ch]
.text:00563B19 mov dword ptr [ecx+0B4h], offset sub_56D640
.text:00563B23 mov eax, [esi+0Ch]
.text:00563B26 mov dword ptr [eax+0B8h], offset loc_56D7F0
.text:00563B30 mov ecx, [esi+0Ch]
.text:00563B33 mov dword ptr [ecx+0BCh], offset loc_56DC20
.text:00563B3D mov eax, [esi+0Ch]
.text:00563B40 mov ebx, offset loc_569750
.text:00563B45 mov [eax+0C0h], ebx
.text:00563B4B mov ecx, [esi+0Ch]
.text:00563B4E mov eax, offset loc_56DCB0
.text:00563B53 mov [ecx+0C4h], eax
.text:00563B59 mov ecx, [esi+0Ch]
.text:00563B5C mov [ecx+0C8h], eax
.text:00563B62 mov ecx, [esi+0Ch]
.text:00563B65 mov eax, offset loc_56DD90
.text:00563B6A mov [ecx+0CCh], eax
.text:00563B70 mov ecx, [esi+0Ch]
.text:00563B73 mov [ecx+0D0h], eax
.text:00563B79 mov ecx, [esi+0Ch]
.text:00563B7C mov [ecx+0D4h], eax
.text:00563B82 mov ecx, [esi+0Ch]
.text:00563B85 mov [ecx+0D8h], eax
.text:00563B8B mov ecx, [esi+0Ch]
.text:00563B8E mov [ecx+264h], eax
.text:00563B94 mov ecx, [esi+0Ch]
.text:00563B97 mov eax, offset loc_56E120
.text:00563B9C mov [ecx+0DCh], eax
.text:00563BA2 mov ecx, [esi+0Ch]
.text:00563BA5 mov [ecx+0E0h], eax
.text:00563BAB mov ecx, [esi+0Ch]
.text:00563BAE mov [ecx+0E4h], eax
.text:00563BB4 mov ecx, [esi+0Ch]
.text:00563BB7 mov [ecx+0E8h], eax
.text:00563BBD mov ecx, [esi+0Ch]
.text:00563BC0 mov [ecx+260h], eax
.text:00563BC6 mov eax, [esi+0Ch]
.text:00563BC9 mov dword ptr [eax+0ECh], offset loc_56E500
.text:00563BD3 mov ecx, [esi+0Ch]
.text:00563BD6 mov dword ptr [ecx+0F0h], offset loc_56E5C0
.text:00563BE0 mov eax, [esi+0Ch]
.text:00563BE3 mov dword ptr [eax+0F4h], offset loc_56E6E0
.text:00563BED mov ecx, [esi+0Ch]
.text:00563BF0 mov dword ptr [ecx+0F8h], offset loc_56E800
.text:00563BFA mov eax, [esi+0Ch]
.text:00563BFD mov dword ptr [eax+0FCh], offset loc_56E940
.text:00563C07 mov ecx, [esi+0Ch]
.text:00563C0A mov dword ptr [ecx+100h], offset loc_56EA80
.text:00563C14 mov eax, [esi+0Ch]
.text:00563C17 mov dword ptr [eax+104h], offset loc_56EBB0
.text:00563C21 mov ecx, [esi+0Ch]
.text:00563C24 mov dword ptr [ecx+108h], offset loc_56ED00
.text:00563C2E mov ecx, [esi+0Ch]
.text:00563C31 mov eax, offset sub_56EE40
.text:00563C36 mov [ecx+10Ch], eax
.text:00563C3C mov ecx, [esi+0Ch]
.text:00563C3F mov [ecx+110h], eax
.text:00563C45 mov ecx, [esi+0Ch]
.text:00563C48 mov [ecx+114h], eax
.text:00563C4E mov ecx, [esi+0Ch]
.text:00563C51 mov [ecx+118h], eax
.text:00563C57 mov ecx, [esi+0Ch]
.text:00563C5A mov [ecx+11Ch], eax
.text:00563C60 mov ecx, [esi+0Ch]
.text:00563C63 mov [ecx+120h], eax
.text:00563C69 mov ecx, [esi+0Ch]
.text:00563C6C mov [ecx+124h], eax
.text:00563C72 mov ecx, [esi+0Ch]
.text:00563C75 mov [ecx+128h], eax
.text:00563C7B mov ecx, [esi+0Ch]
.text:00563C7E mov [ecx+12Ch], eax
.text:00563C84 mov ecx, [esi+0Ch]
.text:00563C87 mov [ecx+130h], eax
.text:00563C8D mov ecx, [esi+0Ch]
.text:00563C90 mov [ecx+134h], eax
.text:00563C96 mov eax, [esi+0Ch]
.text:00563C99 mov dword ptr [eax+138h], offset sub_56F090
.text:00563CA3 mov ecx, [esi+0Ch]
.text:00563CA6 mov dword ptr [ecx+13Ch], offset sub_56F200
.text:00563CB0 mov eax, [esi+0Ch]
.text:00563CB3 mov dword ptr [eax+140h], offset sub_56F450
.text:00563CBD mov ecx, [esi+0Ch]
.text:00563CC0 mov dword ptr [ecx+144h], offset sub_570FA0
.text:00563CCA mov eax, [esi+0Ch]
.text:00563CCD mov dword ptr [eax+148h], offset loc_56F770
.text:00563CD7 mov ecx, [esi+0Ch]
.text:00563CDA mov dword ptr [ecx+14Ch], offset loc_56F870
.text:00563CE4 mov eax, [esi+0Ch]
.text:00563CE7 mov dword ptr [eax+150h], offset loc_56FA40
.text:00563CF1 mov ecx, [esi+0Ch]
.text:00563CF4 mov eax, offset loc_56FC40
.text:00563CF9 mov [ecx+154h], eax
.text:00563CFF mov ecx, [esi+0Ch]
.text:00563D02 mov [ecx+158h], eax
.text:00563D08 mov eax, [esi+0Ch]
.text:00563D0B mov dword ptr [eax+15Ch], offset sub_56FE60
.text:00563D15 mov ecx, [esi+0Ch]
.text:00563D18 mov dword ptr [ecx+160h], offset loc_56FF80
.text:00563D22 mov eax, [esi+0Ch]
.text:00563D25 mov dword ptr [eax+164h], offset loc_570030
.text:00563D2F mov ecx, [esi+0Ch]
.text:00563D32 mov dword ptr [ecx+168h], offset loc_5700A0
.text:00563D3C mov eax, [esi+0Ch]
.text:00563D3F mov dword ptr [eax+16Ch], offset loc_570180
.text:00563D49 mov ecx, [esi+0Ch]
.text:00563D4C mov dword ptr [ecx+170h], offset loc_570200
.text:00563D56 mov ecx, [esi+0Ch]
.text:00563D59 mov eax, offset loc_5702F0
.text:00563D5E mov [ecx+174h], eax
.text:00563D64 mov ecx, [esi+0Ch]
.text:00563D67 mov [ecx+178h], eax
.text:00563D6D mov ecx, [esi+0Ch]
.text:00563D70 mov eax, offset loc_570A50
.text:00563D75 mov [ecx+17Ch], eax
.text:00563D7B mov ecx, [esi+0Ch]
.text:00563D7E mov [ecx+180h], eax
.text:00563D84 mov ecx, [esi+0Ch]
.text:00563D87 mov [ecx+184h], eax
.text:00563D8D mov ecx, [esi+0Ch]
.text:00563D90 mov [ecx+188h], eax
.text:00563D96 mov ecx, [esi+0Ch]
.text:00563D99 mov [ecx+18Ch], eax
.text:00563D9F mov ecx, [esi+0Ch]
.text:00563DA2 mov [ecx+190h], eax
.text:00563DA8 mov ecx, [esi+0Ch]
.text:00563DAB mov [ecx+194h], eax
.text:00563DB1 mov ecx, [esi+0Ch]
.text:00563DB4 mov [ecx+198h], eax
.text:00563DBA mov ecx, [esi+0Ch]
.text:00563DBD mov [ecx+19Ch], eax
.text:00563DC3 mov eax, [esi+0Ch]
.text:00563DC6 mov dword ptr [eax+1A0h], offset sub_570B40
.text:00563DD0 mov ecx, [esi+0Ch]
.text:00563DD3 mov dword ptr [ecx+1A4h], offset loc_570BB0
.text:00563DDD mov eax, [esi+0Ch]
.text:00563DE0 mov dword ptr [eax+1A8h], offset loc_570C20
.text:00563DEA mov ecx, [esi+0Ch]
.text:00563DED mov dword ptr [ecx+1ACh], offset loc_570D20
.text:00563DF7 mov ecx, [esi+0Ch]
.text:00563DFA mov eax, offset sub_570DC0
.text:00563DFF mov [ecx+1B0h], eax
.text:00563E05 mov ecx, [esi+0Ch]
.text:00563E08 mov [ecx+1B4h], eax
.text:00563E0E mov ecx, [esi+0Ch]
.text:00563E11 mov [ecx+1B8h], eax
.text:00563E17 mov eax, [esi+0Ch]
.text:00563E1A mov dword ptr [eax+1BCh], offset loc_570F00
.text:00563E24 mov ecx, [esi+0Ch]
.text:00563E27 mov eax, offset loc_571160
.text:00563E2C mov [ecx+1C0h], eax
.text:00563E32 mov ecx, [esi+0Ch]
.text:00563E35 mov [ecx+1C4h], eax
.text:00563E3B mov ecx, [esi+0Ch]
.text:00563E3E mov [ecx+1C8h], eax
.text:00563E44 mov eax, [esi+0Ch]
.text:00563E47 mov dword ptr [eax+1CCh], offset sub_571220
.text:00563E51 mov ecx, [esi+0Ch]
.text:00563E54 mov dword ptr [ecx+1D0h], offset sub_571600
.text:00563E5E mov eax, [esi+0Ch]
.text:00563E61 mov dword ptr [eax+1D4h], offset loc_5716F0
.text:00563E6B mov ecx, [esi+0Ch]
.text:00563E6E mov dword ptr [ecx+1D8h], offset sub_571AB0
.text:00563E78 mov eax, [esi+0Ch]
.text:00563E7B mov dword ptr [eax+1DCh], offset sub_571DF0
.text:00563E85 mov ecx, [esi+0Ch]
.text:00563E88 mov dword ptr [ecx+1E0h], offset sub_571FE0
.text:00563E92 mov ecx, [esi+0Ch]
.text:00563E95 mov eax, offset sub_572380
.text:00563E9A mov [ecx+1E4h], eax
.text:00563EA0 mov ecx, [esi+0Ch]
.text:00563EA3 mov [ecx+1E8h], eax
.text:00563EA9 mov ecx, [esi+0Ch]
.text:00563EAC mov [ecx+1ECh], eax
.text:00563EB2 mov ecx, [esi+0Ch]
.text:00563EB5 mov eax, offset loc_572430
.text:00563EBA mov [ecx+1F0h], eax
.text:00563EC0 mov ecx, [esi+0Ch]
.text:00563EC3 mov [ecx+1F4h], eax
.text:00563EC9 mov ecx, [esi+0Ch]
.text:00563ECC mov [ecx+1F8h], eax
.text:00563ED2 mov ecx, [esi+0Ch]
.text:00563ED5 mov [ecx+1FCh], eax
.text:00563EDB mov ecx, [esi+0Ch]
.text:00563EDE mov eax, offset sub_572510
.text:00563EE3 mov [ecx+200h], eax
.text:00563EE9 mov ecx, [esi+0Ch]
.text:00563EEC mov [ecx+204h], eax
.text:00563EF2 mov eax, [esi+0Ch]
.text:00563EF5 mov ecx, offset loc_573360
.text:00563EFA mov [eax+208h], ecx
.text:00563F00 mov eax, [esi+0Ch]
.text:00563F03 mov dword ptr [eax+20Ch], offset sub_573A40
.text:00563F0D mov eax, [esi+0Ch]
.text:00563F10 mov dword ptr [eax+210h], offset loc_573960
.text:00563F1A mov eax, [esi+0Ch]
.text:00563F1D mov [eax+214h], ecx
.text:00563F23 mov eax, [esi+0Ch]
.text:00563F26 mov [eax+218h], ecx
.text:00563F2C mov ebp, [esi+0Ch]
.text:00563F2F mov eax, offset sub_57AD50
.text:00563F34 mov [ebp+21Ch], eax
.text:00563F3A mov ebp, [esi+0Ch]
.text:00563F3D mov [ebp+220h], eax
.text:00563F43 mov eax, [esi+0Ch]
.text:00563F46 mov dword ptr [eax+224h], offset sub_573B20
.text:00563F50 mov eax, [esi+0Ch]
.text:00563F53 mov [eax+228h], ecx
.text:00563F59 mov eax, [esi+0Ch]
.text:00563F5C mov dword ptr [eax+22Ch], offset sub_57B1E0
.text:00563F66 mov eax, [esi+0Ch]
.text:00563F69 mov dword ptr [eax+230h], offset loc_573C00
.text:00563F73 mov eax, [esi+0Ch]
.text:00563F76 mov dword ptr [eax+234h], offset sub_568300
.text:00563F80 mov eax, [esi+0Ch]
.text:00563F83 mov dword ptr [eax+238h], offset sub_573CB0
.text:00563F8D mov eax, [esi+0Ch]
.text:00563F90 mov dword ptr [eax+23Ch], offset sub_568A80
.text:00563F9A mov ebp, [esi+0Ch]
.text:00563F9D mov eax, offset off_573D50
.text:00563FA2 mov [ebp+240h], eax
.text:00563FA8 mov ebp, [esi+0Ch]
.text:00563FAB mov [ebp+244h], eax
.text:00563FB1 mov ebp, [esi+0Ch]
.text:00563FB4 mov eax, offset loc_573EC0
.text:00563FB9 mov [ebp+248h], eax
.text:00563FBF mov ebp, [esi+0Ch]
.text:00563FC2 mov [ebp+24Ch], eax
.text:00563FC8 mov eax, [esi+0Ch]
.text:00563FCB mov [eax+250h], ecx
.text:00563FD1 mov eax, [esi+0Ch]
.text:00563FD4 mov dword ptr [eax+254h], offset sub_5853E0
.text:00563FDE mov eax, [esi+0Ch]
.text:00563FE1 mov [eax+258h], ecx
.text:00563FE7 mov eax, [esi+0Ch]
.text:00563FEA mov dword ptr [eax+0Ch], offset sub_574340
.text:00563FF1 mov eax, [esi+0Ch]
.text:00563FF4 mov dword ptr [eax+25Ch], offset sub_574520
.text:00563FFE mov eax, [esi+0Ch]
.text:00564001 mov dword ptr [eax+26Ch], offset loc_574640
.text:0056400B mov eax, [esi+0Ch]
.text:0056400E mov [eax+268h], ecx
.text:00564014 mov eax, [esi+0Ch]
.text:00564017 mov [eax+270h], ecx
.text:0056401D mov eax, [esi+0Ch]
.text:00564020 mov [eax+274h], ecx
.text:00564026 mov eax, [esi+0Ch]
.text:00564029 mov [eax+278h], ecx
.text:0056402F mov eax, [esi+0Ch]
.text:00564032 mov [eax+27Ch], ecx
.text:00564038 mov eax, [esi+0Ch]
.text:0056403B mov [eax+280h], ecx
.text:00564041 mov eax, [esi+0Ch]
.text:00564044 mov [eax+284h], ecx
.text:0056404A mov eax, [esi+0Ch]
.text:0056404D mov dword ptr [eax+288h], offset sub_574710
.text:00564057 mov eax, [esi+0Ch]
.text:0056405A mov dword ptr [eax+28Ch], offset loc_5747B0
.text:00564064 mov eax, [esi+0Ch]
.text:00564067 mov [eax+290h], ecx
.text:0056406D mov eax, [esi+0Ch]
.text:00564070 mov dword ptr [eax+294h], offset sub_574840
.text:0056407A mov eax, [esi+0Ch]
.text:0056407D mov dword ptr [eax+298h], offset loc_574B00
.text:00564087 mov eax, [esi+0Ch]
.text:0056408A mov dword ptr [eax+29Ch], offset sub_574BA0
.text:00564094 mov eax, [esi+0Ch]
.text:00564097 mov dword ptr [eax+2A0h], offset loc_574CF0
.text:005640A1 mov eax, [esi+0Ch]
.text:005640A4 mov dword ptr [eax+2A4h], offset sub_574E90
.text:005640AE mov eax, [esi+0Ch]
.text:005640B1 mov dword ptr [eax+2A8h], offset loc_570110
.text:005640BB mov eax, [esi+0Ch]
.text:005640BE mov dword ptr [eax+2ACh], offset loc_5752A0
.text:005640C8 mov eax, [esi+0Ch]
.text:005640CB mov dword ptr [eax+2B0h], offset loc_575540
.text:005640D5 mov ebp, [esi+0Ch]
.text:005640D8 mov eax, offset sub_5755F0
.text:005640DD mov [ebp+2B4h], eax
.text:005640E3 mov ebp, [esi+0Ch]
.text:005640E6 mov [ebp+670h], eax
.text:005640EC mov eax, [esi+0Ch]
.text:005640EF mov dword ptr [eax+2B8h], offset loc_575790
.text:005640F9 mov eax, [esi+0Ch]
.text:005640FC mov dword ptr [eax+2BCh], offset loc_575810
.text:00564106 mov eax, [esi+0Ch]
.text:00564109 mov dword ptr [eax+2C0h], offset loc_575890
.text:00564113 mov eax, [esi+0Ch]
.text:00564116 mov dword ptr [eax+2C4h], offset loc_5759B0
.text:00564120 mov eax, [esi+0Ch]
.text:00564123 mov dword ptr [eax+2C8h], offset loc_575B10
.text:0056412D mov eax, [esi+0Ch]
.text:00564130 mov dword ptr [eax+2CCh], offset loc_575D00
.text:0056413A mov eax, [esi+0Ch]
.text:0056413D mov dword ptr [eax+2D0h], offset loc_575DC0
.text:00564147 mov eax, [esi+0Ch]
.text:0056414A mov dword ptr [eax+2D4h], offset sub_575F40
.text:00564154 mov eax, [esi+0Ch]
.text:00564157 mov dword ptr [eax+2D8h], offset sub_576020
.text:00564161 mov eax, [esi+0Ch]
.text:00564164 mov dword ptr [eax+2DCh], offset sub_576100
.text:0056416E mov eax, [esi+0Ch]
.text:00564171 mov dword ptr [eax+2E0h], offset sub_5761E0
.text:0056417B mov eax, [esi+0Ch]
.text:0056417E mov dword ptr [eax+2E4h], offset loc_5762C0
.text:00564188 mov eax, [esi+0Ch]
.text:0056418B mov dword ptr [eax+2E8h], offset loc_576360
.text:00564195 mov eax, [esi+0Ch]
.text:00564198 mov dword ptr [eax+2ECh], offset loc_576420
.text:005641A2 mov eax, [esi+0Ch]
.text:005641A5 mov dword ptr [eax+2F0h], offset loc_5764C0
.text:005641AF mov eax, [esi+0Ch]
.text:005641B2 mov dword ptr [eax+2F4h], offset loc_576560
.text:005641BC mov eax, [esi+0Ch]
.text:005641BF mov dword ptr [eax+2F8h], offset loc_576600
.text:005641C9 mov eax, [esi+0Ch]
.text:005641CC mov dword ptr [eax+2FCh], offset loc_5766A0
.text:005641D6 mov eax, [esi+0Ch]
.text:005641D9 mov dword ptr [eax+300h], offset sub_576740
.text:005641E3 mov eax, [esi+0Ch]
.text:005641E6 mov dword ptr [eax+304h], offset sub_576820
.text:005641F0 mov eax, [esi+0Ch]
.text:005641F3 mov dword ptr [eax+308h], offset loc_587730
.text:005641FD mov eax, [esi+0Ch]
.text:00564200 mov dword ptr [eax+30Ch], offset loc_575D60
.text:0056420A mov eax, [esi+0Ch]
.text:0056420D mov dword ptr [eax+310h], offset sub_569EC0
.text:00564217 mov eax, [esi+0Ch]
.text:0056421A mov dword ptr [eax+314h], offset loc_576900
.text:00564224 mov eax, [esi+0Ch]
.text:00564227 mov dword ptr [eax+318h], offset sub_5769F0
.text:00564231 mov eax, [esi+0Ch]
.text:00564234 mov dword ptr [eax+31Ch], offset loc_57AE10
.text:0056423E mov eax, [esi+0Ch]
.text:00564241 mov dword ptr [eax+320h], offset loc_576B60
.text:0056424B mov eax, [esi+0Ch]
.text:0056424E mov dword ptr [eax+324h], offset sub_57B6C0
.text:00564258 mov eax, [esi+0Ch]
.text:0056425B mov dword ptr [eax+328h], offset sub_576C50
.text:00564265 mov eax, [esi+0Ch]
.text:00564268 mov dword ptr [eax+32Ch], offset loc_576D20
.text:00564272 mov eax, [esi+0Ch]
.text:00564275 mov dword ptr [eax+330h], offset loc_576F80
.text:0056427F mov eax, [esi+0Ch]
.text:00564282 mov dword ptr [eax+334h], offset off_5771C0
.text:0056428C mov eax, [esi+0Ch]
.text:0056428F mov dword ptr [eax+338h], offset off_577240
.text:00564299 mov eax, [esi+0Ch]
.text:0056429C mov dword ptr [eax+33Ch], offset loc_5772C0
.text:005642A6 mov eax, [esi+0Ch]
.text:005642A9 mov dword ptr [eax+348h], offset loc_587780
.text:005642B3 mov eax, [esi+0Ch]
.text:005642B6 mov dword ptr [eax+34Ch], offset loc_5877E0
.text:005642C0 mov eax, [esi+0Ch]
.text:005642C3 mov dword ptr [eax+340h], offset loc_577550
.text:005642CD mov eax, [esi+0Ch]
.text:005642D0 mov dword ptr [eax+344h], offset sub_577610
.text:005642DA mov eax, [esi+0Ch]
.text:005642DD mov dword ptr [eax+350h], offset sub_577700
.text:005642E7 mov eax, [esi+0Ch]
.text:005642EA mov dword ptr [eax+354h], offset loc_56AA50
.text:005642F4 mov eax, [esi+0Ch]
.text:005642F7 mov dword ptr [eax+358h], offset sub_569FA0
.text:00564301 mov eax, [esi+0Ch]
.text:00564304 mov dword ptr [eax+35Ch], offset loc_577920
.text:0056430E mov eax, [esi+0Ch]
.text:00564311 mov dword ptr [eax+360h], offset loc_577AA0
.text:0056431B mov eax, [esi+0Ch]
.text:0056431E mov dword ptr [eax+364h], offset loc_577C30
.text:00564328 mov ebp, [esi+0Ch]
.text:0056432B mov eax, offset loc_577D80
.text:00564330 mov [ebp+368h], eax
.text:00564336 mov ebp, [esi+0Ch]
.text:00564339 mov [ebp+36Ch], eax
.text:0056433F mov eax, [esi+0Ch]
.text:00564342 mov dword ptr [eax+370h], offset loc_577DF0
.text:0056434C mov eax, [esi+0Ch]
.text:0056434F mov [eax+374h], edi
.text:00564355 mov eax, [esi+0Ch]
.text:00564358 mov dword ptr [eax+684h], offset loc_56C8D0
.text:00564362 mov eax, [esi+0Ch]
.text:00564365 mov dword ptr [eax+378h], offset loc_577FB0
.text:0056436F mov edi, [esi+0Ch]
.text:00564372 mov eax, offset loc_578130
.text:00564377 mov [edi+37Ch], eax
.text:0056437D mov edi, [esi+0Ch]
.text:00564380 mov [edi+380h], eax
.text:00564386 mov edi, [esi+0Ch]
.text:00564389 mov [edi+384h], eax
.text:0056438F mov eax, [esi+0Ch]
.text:00564392 mov [eax+388h], edx
.text:00564398 mov eax, [esi+0Ch]
.text:0056439B mov [eax+38Ch], edx
.text:005643A1 mov eax, [esi+0Ch]
.text:005643A4 mov [eax+390h], edx
.text:005643AA mov eax, [esi+0Ch]
.text:005643AD mov [eax+394h], edx
.text:005643B3 mov edx, [esi+0Ch]
.text:005643B6 mov dword ptr [edx+398h], offset loc_578240
.text:005643C0 mov eax, [esi+0Ch]
.text:005643C3 mov dword ptr [eax+39Ch], offset loc_578290
.text:005643CD mov edx, [esi+0Ch]
.text:005643D0 mov eax, offset loc_5782E0
.text:005643D5 mov [edx+3A0h], eax
.text:005643DB mov edx, [esi+0Ch]
.text:005643DE mov [edx+3A4h], eax
.text:005643E4 mov eax, [esi+0Ch]
.text:005643E7 mov [eax+3A8h], ebx
.text:005643ED mov edx, [esi+0Ch]
.text:005643F0 mov eax, offset sub_5783D0
.text:005643F5 mov [edx+3ACh], eax
.text:005643FB mov edx, [esi+0Ch]
.text:005643FE mov [edx+3B0h], eax
.text:00564404 mov edx, [esi+0Ch]
.text:00564407 mov [edx+3B4h], eax
.text:0056440D mov eax, [esi+0Ch]
.text:00564410 mov dword ptr [eax+3B8h], offset loc_578520
.text:0056441A mov edx, [esi+0Ch]
.text:0056441D mov dword ptr [edx+3BCh], offset loc_5785C0
.text:00564427 mov eax, [esi+0Ch]
.text:0056442A mov dword ptr [eax+3C0h], offset sub_578730
.text:00564434 mov edx, [esi+0Ch]
.text:00564437 mov dword ptr [edx+3C4h], offset sub_5789F0
.text:00564441 mov eax, [esi+0Ch]
.text:00564444 mov dword ptr [eax+3C8h], offset loc_578AB0
.text:0056444E mov edx, [esi+0Ch]
.text:00564451 mov dword ptr [edx+3CCh], offset loc_578AF0
.text:0056445B mov eax, [esi+0Ch]
.text:0056445E mov dword ptr [eax+3D0h], offset loc_5794B0
.text:00564468 mov edx, [esi+0Ch]
.text:0056446B mov eax, offset loc_579610
.text:00564470 mov [edx+3D4h], eax
.text:00564476 mov edx, [esi+0Ch]
.text:00564479 mov [edx+3D8h], eax
.text:0056447F mov eax, [esi+0Ch]
.text:00564482 mov dword ptr [eax+3DCh], offset loc_579750
.text:0056448C mov edx, [esi+0Ch]
.text:0056448F mov dword ptr [edx+3E0h], offset loc_579820
.text:00564499 mov eax, [esi+0Ch]
.text:0056449C mov dword ptr [eax+3E4h], offset loc_579890
.text:005644A6 mov edx, [esi+0Ch]
.text:005644A9 mov dword ptr [edx+3E8h], offset sub_579BB0
.text:005644B3 mov eax, [esi+0Ch]
.text:005644B6 mov dword ptr [eax+3ECh], offset sub_579CC0
.text:005644C0 mov edx, [esi+0Ch]
.text:005644C3 mov [edx+3F0h], ecx
.text:005644C9 mov eax, [esi+0Ch]
.text:005644CC mov dword ptr [eax+3F4h], offset loc_570580
.text:005644D6 mov edx, [esi+0Ch]
.text:005644D9 mov dword ptr [edx+3F8h], offset loc_579DD0
.text:005644E3 mov eax, [esi+0Ch]
.text:005644E6 mov dword ptr [eax+3FCh], offset loc_579E40
.text:005644F0 mov edx, [esi+0Ch]
.text:005644F3 mov dword ptr [edx+400h], offset loc_57A1D0
.text:005644FD mov edx, [esi+0Ch]
.text:00564500 mov eax, offset loc_57A240
.text:00564505 mov [edx+404h], eax
.text:0056450B mov edx, [esi+0Ch]
.text:0056450E mov [edx+408h], eax
.text:00564514 mov edx, [esi+0Ch]
.text:00564517 mov [edx+40Ch], eax
.text:0056451D mov edx, [esi+0Ch]
.text:00564520 mov dword ptr [edx+410h], offset loc_589300
.text:0056452A mov edx, [esi+0Ch]
.text:0056452D mov [edx+414h], eax
.text:00564533 mov edx, [esi+0Ch]
.text:00564536 mov eax, offset sub_57A4A0
.text:0056453B mov [edx+418h], eax
.text:00564541 mov edx, [esi+0Ch]
.text:00564544 mov [edx+41Ch], eax
.text:0056454A mov eax, [esi+0Ch]
.text:0056454D mov dword ptr [eax+420h], offset loc_57B150
.text:00564557 mov edx, [esi+0Ch]
.text:0056455A mov eax, offset loc_57AF90
.text:0056455F mov [edx+424h], eax
.text:00564565 mov edx, [esi+0Ch]
.text:00564568 mov [edx+428h], eax
.text:0056456E mov edx, [esi+0Ch]
.text:00564571 mov [edx+42Ch], eax
.text:00564577 mov edx, [esi+0Ch]
.text:0056457A mov [edx+430h], eax
.text:00564580 mov edx, [esi+0Ch]
.text:00564583 mov [edx+434h], eax
.text:00564589 mov eax, [esi+0Ch]
.text:0056458C mov [eax+438h], ecx
.text:00564592 mov edx, [esi+0Ch]
.text:00564595 mov [edx+43Ch], ecx
.text:0056459B mov eax, [esi+0Ch]
.text:0056459E mov dword ptr [eax+440h], offset sub_57B5D0
.text:005645A8 mov edx, [esi+0Ch]
.text:005645AB mov dword ptr [edx+444h], offset loc_57B860
.text:005645B5 mov eax, [esi+0Ch]
.text:005645B8 mov dword ptr [eax+448h], offset loc_57B9A0
.text:005645C2 mov edx, [esi+0Ch]
.text:005645C5 mov dword ptr [edx+44Ch], offset loc_57BCF0
.text:005645CF mov eax, [esi+0Ch]
.text:005645D2 mov edx, offset loc_57BFF0
.text:005645D7 mov [eax+450h], edx
.text:005645DD mov edi, [esi+0Ch]
.text:005645E0 mov eax, offset sub_57C0A0
.text:005645E5 mov [edi+454h], eax
.text:005645EB mov edi, [esi+0Ch]
.text:005645EE mov [edi+458h], edx
.text:005645F4 mov edi, [esi+0Ch]
.text:005645F7 mov [edi+45Ch], eax
.text:005645FD mov edi, [esi+0Ch]
.text:00564600 mov [edi+460h], edx
.text:00564606 mov edi, [esi+0Ch]
.text:00564609 mov [edi+464h], eax
.text:0056460F mov ebp, [esi+0Ch]
.text:00564612 mov edi, offset loc_57C180
.text:00564617 mov [ebp+468h], edi
.text:0056461D mov ebp, [esi+0Ch]
.text:00564620 mov [ebp+46Ch], edi
.text:00564626 mov ebp, [esi+0Ch]
.text:00564629 mov dword ptr [ebp+470h], offset loc_576E20
.text:00564633 mov ebp, [esi+0Ch]
.text:00564636 mov dword ptr [ebp+474h], offset loc_57C240
.text:00564640 mov ebp, [esi+0Ch]
.text:00564643 mov dword ptr [ebp+478h], offset loc_57C330
.text:0056464D mov ebp, [esi+0Ch]
.text:00564650 mov dword ptr [ebp+47Ch], offset sub_57C4F0
.text:0056465A mov ebp, [esi+0Ch]
.text:0056465D mov dword ptr [ebp+480h], offset sub_57C5C0
.text:00564667 mov ebp, [esi+0Ch]
.text:0056466A mov dword ptr [ebp+484h], offset loc_57A3B0
.text:00564674 mov ebp, [esi+0Ch]
.text:00564677 mov dword ptr [ebp+488h], offset loc_57A3B0
.text:00564681 mov ebp, [esi+0Ch]
.text:00564684 mov dword ptr [ebp+48Ch], offset loc_57C740
.text:0056468E mov ebp, [esi+0Ch]
.text:00564691 mov [ebp+490h], edi
.text:00564697 mov ebp, [esi+0Ch]
.text:0056469A mov [ebp+494h], edi
.text:005646A0 mov ebp, [esi+0Ch]
.text:005646A3 mov dword ptr [ebp+498h], offset sub_57C900
.text:005646AD mov ebp, [esi+0Ch]
.text:005646B0 mov dword ptr [ebp+49Ch], offset loc_57C980
.text:005646BA mov ebp, [esi+0Ch]
.text:005646BD mov [ebp+4A0h], eax
.text:005646C3 mov eax, [esi+0Ch]
.text:005646C6 mov [eax+4A4h], edx
.text:005646CC mov edx, [esi+0Ch]
.text:005646CF mov dword ptr [edx+4A8h], offset loc_57CA20
.text:005646D9 mov eax, [esi+0Ch]
.text:005646DC mov dword ptr [eax+4ACh], offset sub_57CB10
.text:005646E6 mov edx, [esi+0Ch]
.text:005646E9 mov dword ptr [edx+4B0h], offset sub_56CA10
.text:005646F3 mov edx, [esi+0Ch]
.text:005646F6 mov eax, offset loc_57CE00
.text:005646FB mov [edx+4B4h], eax
.text:00564701 mov edx, [esi+0Ch]
.text:00564704 mov [edx+4B8h], eax
.text:0056470A mov edx, [esi+0Ch]
.text:0056470D mov [edx+4BCh], eax
.text:00564713 mov eax, [esi+0Ch]
.text:00564716 mov dword ptr [eax+4C0h], offset loc_57CF00
.text:00564720 mov edx, [esi+0Ch]
.text:00564723 mov dword ptr [edx+4C4h], offset loc_57CFB0
.text:0056472D mov eax, [esi+0Ch]
.text:00564730 mov dword ptr [eax+4C8h], offset sub_57D020
.text:0056473A mov edx, [esi+0Ch]
.text:0056473D mov eax, offset loc_57D0F0
.text:00564742 mov [edx+4CCh], eax
.text:00564748 mov edx, [esi+0Ch]
.text:0056474B mov [edx+4D0h], eax
.text:00564751 mov edx, [esi+0Ch]
.text:00564754 mov eax, offset sub_57D2D0
.text:00564759 mov [edx+4D4h], eax
.text:0056475F mov edx, [esi+0Ch]
.text:00564762 mov [edx+4D8h], eax
.text:00564768 mov eax, [esi+0Ch]
.text:0056476B mov dword ptr [eax+4DCh], offset loc_57D480
.text:00564775 mov edx, [esi+0Ch]
.text:00564778 mov dword ptr [edx+4E0h], offset loc_57D520
.text:00564782 mov eax, [esi+0Ch]
.text:00564785 mov dword ptr [eax+4E4h], offset sub_569FA0
.text:0056478F mov edx, [esi+0Ch]
.text:00564792 mov dword ptr [edx+4E8h], offset sub_57D630
.text:0056479C mov eax, [esi+0Ch]
.text:0056479F mov dword ptr [eax+4ECh], offset sub_57C3F0
.text:005647A9 mov edx, [esi+0Ch]
.text:005647AC mov dword ptr [edx+4F0h], offset loc_57D780
.text:005647B6 mov eax, [esi+0Ch]
.text:005647B9 mov dword ptr [eax+4F4h], offset loc_57D7E0
.text:005647C3 mov edx, [esi+0Ch]
.text:005647C6 mov dword ptr [edx+4F8h], offset loc_57D950
.text:005647D0 mov eax, [esi+0Ch]
.text:005647D3 mov dword ptr [eax+4FCh], offset loc_57DA70
.text:005647DD mov edx, [esi+0Ch]
.text:005647E0 mov dword ptr [edx+500h], offset loc_57DAE0
.text:005647EA mov eax, [esi+0Ch]
.text:005647ED mov dword ptr [eax+504h], offset loc_57DB40
.text:005647F7 mov edx, [esi+0Ch]
.text:005647FA mov dword ptr [edx+508h], offset loc_5820A0
.text:00564804 mov eax, [esi+0Ch]
.text:00564807 mov dword ptr [eax+50Ch], offset sub_57DBA0
.text:00564811 mov edx, [esi+0Ch]
.text:00564814 mov dword ptr [edx+510h], offset loc_57DD10
.text:0056481E mov eax, [esi+0Ch]
.text:00564821 mov dword ptr [eax+514h], offset loc_57DE80
.text:0056482B mov edx, [esi+0Ch]
.text:0056482E mov dword ptr [edx+518h], offset off_56A780
.text:00564838 mov eax, [esi+0Ch]
.text:0056483B mov dword ptr [eax+51Ch], offset loc_57DF30
.text:00564845 mov edx, [esi+0Ch]
.text:00564848 mov dword ptr [edx+520h], offset loc_57DF80
.text:00564852 mov eax, [esi+0Ch]
.text:00564855 mov dword ptr [eax+524h], offset loc_57DFE0
.text:0056485F mov edx, [esi+0Ch]
.text:00564862 mov dword ptr [edx+528h], offset loc_57E050
.text:0056486C mov eax, [esi+0Ch]
.text:0056486F mov dword ptr [eax+52Ch], offset loc_57E180
.text:00564879 mov edx, [esi+0Ch]
.text:0056487C mov dword ptr [edx+530h], offset loc_57E290
.text:00564886 mov eax, [esi+0Ch]
.text:00564889 mov dword ptr [eax+534h], offset loc_57E2F0
.text:00564893 mov edx, [esi+0Ch]
.text:00564896 mov eax, offset loc_57E360
.text:0056489B mov [edx+538h], eax
.text:005648A1 mov edx, [esi+0Ch]
.text:005648A4 mov [edx+53Ch], eax
.text:005648AA mov eax, [esi+0Ch]
.text:005648AD mov dword ptr [eax+540h], offset loc_57E3C0
.text:005648B7 mov edx, [esi+0Ch]
.text:005648BA mov dword ptr [edx+544h], offset loc_57E410
.text:005648C4 mov eax, [esi+0Ch]
.text:005648C7 mov dword ptr [eax+548h], offset sub_57E6E0
.text:005648D1 mov edx, [esi+0Ch]
.text:005648D4 mov eax, offset sub_57E9E0
.text:005648D9 mov [edx+54Ch], eax
.text:005648DF mov edx, [esi+0Ch]
.text:005648E2 mov [edx+550h], eax
.text:005648E8 mov edx, [esi+0Ch]
.text:005648EB mov eax, offset loc_57EED0
.text:005648F0 mov [edx+554h], eax
.text:005648F6 mov edx, [esi+0Ch]
.text:005648F9 mov [edx+558h], eax
.text:005648FF mov edx, [esi+0Ch]
.text:00564902 mov [edx+55Ch], eax
.text:00564908 mov eax, [esi+0Ch]
.text:0056490B mov dword ptr [eax+560h], offset loc_57F050
.text:00564915 mov edx, [esi+0Ch]
.text:00564918 mov dword ptr [edx+564h], offset loc_57F100
.text:00564922 mov eax, [esi+0Ch]
.text:00564925 mov dword ptr [eax+568h], offset loc_57F190
.text:0056492F mov edx, [esi+0Ch]
.text:00564932 mov dword ptr [edx+56Ch], offset loc_57F220
.text:0056493C mov eax, [esi+0Ch]
.text:0056493F mov dword ptr [eax+570h], offset loc_57F2C0
.text:00564949 mov edx, [esi+0Ch]
.text:0056494C mov dword ptr [edx+574h], offset loc_57F340
.text:00564956 mov eax, [esi+0Ch]
.text:00564959 mov dword ptr [eax+578h], offset loc_57F3D0
.text:00564963 mov edx, [esi+0Ch]
.text:00564966 mov dword ptr [edx+57Ch], offset sub_57FF30
.text:00564970 mov eax, [esi+0Ch]
.text:00564973 mov dword ptr [eax+580h], offset loc_57F520
.text:0056497D mov edx, [esi+0Ch]
.text:00564980 mov dword ptr [edx+584h], offset loc_57F580
.text:0056498A mov eax, [esi+0Ch]
.text:0056498D mov dword ptr [eax+588h], offset sub_57F460
.text:00564997 mov edx, [esi+0Ch]
.text:0056499A mov eax, offset loc_57F5E0
.text:0056499F mov [edx+58Ch], eax
.text:005649A5 mov edx, [esi+0Ch]
.text:005649A8 mov [edx+590h], eax
.text:005649AE mov edx, [esi+0Ch]
.text:005649B1 mov [edx+594h], eax
.text:005649B7 mov eax, [esi+0Ch]
.text:005649BA mov dword ptr [eax+598h], offset loc_57F960
.text:005649C4 mov edx, [esi+0Ch]
.text:005649C7 mov dword ptr [edx+59Ch], offset loc_57FCA0
.text:005649D1 mov eax, [esi+0Ch]
.text:005649D4 mov dword ptr [eax+5A0h], offset sub_57F9D0
.text:005649DE mov edx, [esi+0Ch]
.text:005649E1 mov dword ptr [edx+5A4h], offset loc_57FD10
.text:005649EB mov edx, [esi+0Ch]
.text:005649EE mov eax, offset loc_57FDB0
.text:005649F3 mov [edx+5A8h], eax
.text:005649F9 mov edx, [esi+0Ch]
.text:005649FC mov [edx+5ACh], eax
.text:00564A02 mov eax, [esi+0Ch]
.text:00564A05 mov dword ptr [eax+5B0h], offset sub_57FE40
.text:00564A0F mov edx, [esi+0Ch]
.text:00564A12 mov eax, offset sub_580290
.text:00564A17 mov [edx+5B4h], eax
.text:00564A1D mov edx, [esi+0Ch]
.text:00564A20 mov [edx+5B8h], eax
.text:00564A26 mov eax, [esi+0Ch]
.text:00564A29 mov dword ptr [eax+5BCh], offset loc_580400
.text:00564A33 mov edx, [esi+0Ch]
.text:00564A36 mov dword ptr [edx+5C0h], offset loc_580840
.text:00564A40 mov eax, [esi+0Ch]
.text:00564A43 mov dword ptr [eax+5C4h], offset loc_580BA0
.text:00564A4D mov edx, [esi+0Ch]
.text:00564A50 mov dword ptr [edx+5C8h], offset loc_580E20
.text:00564A5A mov eax, [esi+0Ch]
.text:00564A5D mov dword ptr [eax+5CCh], offset loc_580F60
.text:00564A67 mov edx, [esi+0Ch]
.text:00564A6A mov dword ptr [edx+5D0h], offset loc_581090
.text:00564A74 mov eax, [esi+0Ch]
.text:00564A77 mov dword ptr [eax+5D4h], offset loc_5811C0
.text:00564A81 mov edx, [esi+0Ch]
.text:00564A84 mov dword ptr [edx+5D8h], offset loc_589410
.text:00564A8E mov eax, [esi+0Ch]
.text:00564A91 mov dword ptr [eax+5DCh], offset loc_57FD60
.text:00564A9B mov edx, [esi+0Ch]
.text:00564A9E mov dword ptr [edx+5E0h], offset loc_57E0F0
.text:00564AA8 mov eax, [esi+0Ch]
.text:00564AAB mov dword ptr [eax+5E4h], offset sub_581500
.text:00564AB5 mov edx, [esi+0Ch]
.text:00564AB8 mov dword ptr [edx+5E8h], offset sub_581870
.text:00564AC2 mov eax, [esi+0Ch]
.text:00564AC5 mov [eax+5ECh], ecx
.text:00564ACB mov edx, [esi+0Ch]
.text:00564ACE mov eax, offset sub_5819A0
.text:00564AD3 mov [edx+5F0h], eax
.text:00564AD9 mov edx, [esi+0Ch]
.text:00564ADC mov [edx+5F4h], eax
.text:00564AE2 mov eax, [esi+0Ch]
.text:00564AE5 mov dword ptr [eax+5F8h], offset sub_569480
.text:00564AEF mov edx, [esi+0Ch]
.text:00564AF2 mov dword ptr [edx+5FCh], offset sub_56A210
.text:00564AFC mov eax, [esi+0Ch]
.text:00564AFF mov dword ptr [eax+600h], offset loc_5812F0
.text:00564B09 mov edx, [esi+0Ch]
.text:00564B0C mov dword ptr [edx+604h], offset sub_569EC0
.text:00564B16 mov eax, [esi+0Ch]
.text:00564B19 mov dword ptr [eax+608h], offset loc_581AB0
.text:00564B23 mov edx, [esi+0Ch]
.text:00564B26 mov dword ptr [edx+60Ch], offset sub_581BA0
.text:00564B30 mov eax, [esi+0Ch]
.text:00564B33 mov dword ptr [eax+610h], offset loc_581CD0
.text:00564B3D mov edx, [esi+0Ch]
.text:00564B40 mov eax, offset sub_581EE0
.text:00564B45 mov [edx+614h], eax
.text:00564B4B mov edx, [esi+0Ch]
.text:00564B4E mov [edx+618h], eax
.text:00564B54 mov edx, [esi+0Ch]
.text:00564B57 mov [edx+61Ch], eax
.text:00564B5D mov edx, [esi+0Ch]
.text:00564B60 mov [edx+620h], eax
.text:00564B66 mov eax, [esi+0Ch]
.text:00564B69 mov dword ptr [eax+624h], offset loc_582140
.text:00564B73 mov edx, [esi+0Ch]
.text:00564B76 mov dword ptr [edx+628h], offset loc_5821F0
.text:00564B80 mov eax, [esi+0Ch]
.text:00564B83 mov dword ptr [eax+62Ch], offset loc_5822A0
.text:00564B8D mov edx, [esi+0Ch]
.text:00564B90 mov dword ptr [edx+630h], offset loc_582330
.text:00564B9A mov eax, [esi+0Ch]
.text:00564B9D mov dword ptr [eax+634h], offset loc_582400
.text:00564BA7 mov edx, [esi+0Ch]
.text:00564BAA mov dword ptr [edx+638h], offset loc_582460
.text:00564BB4 mov eax, [esi+0Ch]
.text:00564BB7 mov dword ptr [eax+63Ch], offset sub_582550
.text:00564BC1 mov edx, [esi+0Ch]
.text:00564BC4 mov dword ptr [edx+640h], offset loc_5825E0
.text:00564BCE mov eax, [esi+0Ch]
.text:00564BD1 mov dword ptr [eax+644h], offset loc_582640
.text:00564BDB mov edx, [esi+0Ch]
.text:00564BDE mov dword ptr [edx+648h], offset loc_5826E0
.text:00564BE8 mov eax, [esi+0Ch]
.text:00564BEB mov dword ptr [eax+64Ch], offset sub_582750
.text:00564BF5 mov edx, [esi+0Ch]
.text:00564BF8 mov dword ptr [edx+650h], offset loc_58284
Back to top
View user's profile Send private message
virusman



Joined: 30 Jan 2005
Posts: 1020
Location: Russia

PostPosted: Tue Oct 27, 2009 11:36    Post subject: Reply with quote

That's right, this is CNWVirtualMachineCommands::InitializeCommands which initializes the function table for NWScript virtual machine.
And these are Get/SetLocal* functons:
Code:

.text:00563B65 mov eax, offset loc_56DD90
.text:00563B6A mov [ecx+0CCh], eax
.text:00563B70 mov ecx, [esi+0Ch]
.text:00563B73 mov [ecx+0D0h], eax
.text:00563B79 mov ecx, [esi+0Ch]
.text:00563B7C mov [ecx+0D4h], eax
.text:00563B82 mov ecx, [esi+0Ch]
.text:00563B85 mov [ecx+0D8h], eax
.text:00563B8B mov ecx, [esi+0Ch]
.text:00563B8E mov [ecx+264h], eax
.text:00563B94 mov ecx, [esi+0Ch]
.text:00563B97 mov eax, offset loc_56E120
.text:00563B9C mov [ecx+0DCh], eax
.text:00563BA2 mov ecx, [esi+0Ch]
.text:00563BA5 mov [ecx+0E0h], eax
.text:00563BAB mov ecx, [esi+0Ch]
.text:00563BAE mov [ecx+0E4h], eax
.text:00563BB4 mov ecx, [esi+0Ch]
.text:00563BB7 mov [ecx+0E8h], eax
.text:00563BBD mov ecx, [esi+0Ch]
.text:00563BC0 mov [ecx+260h], eax
.text:00563BC6 mov eax, [esi+0Ch]
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger
addicted2rpg



Joined: 01 Aug 2008
Posts: 106

PostPosted: Wed Oct 28, 2009 2:38    Post subject: Reply with quote

Virusman, I love you! Smile


I'm quite impressed how you can translate it so precisely to the C equivalent of probably what it really is in the NWN source. You got some great skillz there sir.


Sweet, so I at least am actually reading what I think I'm reading, a good sign and a confidence builder for me.

Although at the moment I can't think of what existing NWN functions needed to be altered from their original behavior; the fashion these days is to find new functions by modifying other aspects of NWN's runtime process.

I'm still glad I know where it is though, in case some idea comes up. I'm sure those who maintain busy PW's with pressing needs could have some more well developed ideas on the subject.

Thanks again virus for helping out.
Back to top
View user's profile Send private message
ShaDoOoW



Joined: 20 Aug 2005
Posts: 584

PostPosted: Mon Nov 02, 2009 21:34    Post subject: Reply with quote

Quote:
Although at the moment I can't think of what existing NWN functions needed to be altered from their original behavior; the fashion these days is to find new functions by modifying other aspects of NWN's runtime process.

Hey, but I can. For now, I using for this purpose "core function override". It would be great to change the value of eg. GetCasterLevel without this. So go for it Twisted Evil .
_________________
Community Patch / NWNX Patch / NWNX Files / NWNX Connect
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    nwnx.org Forum Index -> Windows development All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group