• Welcome to Valhalla Legends Archive.
 

0xac(ssCmd_NewMonsterEx) breackdown

Started by ShadowDancer, September 25, 2006, 06:17 PM

Previous topic - Next topic

ShadowDancer

well, .....



Fire enchanted, Stone skin, Aura enchanted - Immune to Physical/poison
AC EC B3 0E 85 B8 01 4D 27 B3 33 80 1B [91 20 A0 A1 01 10 49 E0 F0 B0 00 D0 F4 02]

0 -> +
10001001000001000000010110000101100-00000000-01000100-10010000-00111000-01111000-01101000-00000000-010110010111101000000

10001001000001000000010110000101100

first 0:
00000000

unique mod:
01000100 => 00100010 => 34 ai_after_death

unique mod:
10010000 => 00001001 => 9 fire enchanter

unique mod:
00111000 => 00011100 => 28 (stoneskin)

unique mod:
01111000 => 00011110 => 30 (aura)

unique mod:
01101000 => 00010110 => 22 (questcomplete ??)

unique mod:
00000000 => 0 breaking the loop

0101100101111010 => 16 bits readed by loc_6FAB4DCE

0 => 0 => readed by 6FAB4DDE

0000

Pindleskin Pindleskin reanimatedhorde5 52 9 0 0 6 6 1 0 0 22 22 22 Act 5 Super Cx Act 5 (N) Super Cx Act 5 (H) Super Cx 0

001011 => 110100


===========================================================================================================

Fire enchanted, Magic Resistance - Immune to poison, Immune to fire
AC 85 33 CD 2E B8 01 46 27 A1 33 80 1A [F1 21 A0 A1 01 10 49 40 B0 00 60 AD 00]

0 -> +
10001111100001000000010110000101100
00000000-01000100-10010000-00010000-01101000-00000000-0011010110101000-0-0000

unique mod:
01000100 => 00100010 => 34 ai_after_death

unique mod:
10010000 => 00001001 => 9 fire enchanter

unique mod:
00010000 => 00001000 => 8 (resist) fire imunity + magic resist??

unique mod:
01101000 => 00010110 => 22 (questcomplete ??)

unique mod:
00000000 => 0 breaking the loop

===========================================================================================================

Fire enchanted, Teleportation, Aura enchanted - Immune to poison
AC F0 12 73 76 B8 01 4E 27 BB 33 2E 1B [D1 01 A0 A1 01 10 49 D0 F0 B0 00 98 CD 06]

0 -> +
10001011100000000000010110000101100-00000000-01000100-10010000-01011000-01111000-01101000-00000000110011011001101100000

unique mod:
01000100 => 00100010 => 34 ai_after_death

unique mod:
10010000 => 00001001 => 9 fire enchanter

unique mod:
01011000 => 00011010 => teleport

unique mod:
01111000 => 00011110 => 30 (aura)

unique mod:
01101000 => 00010110 => 22 (questcomplete ??)

unique mod:
00000000 => 0 breaking the loop


monumod.txt


uniquemod id enabled version xfer champion fPick exclude1 exclude2 cpick cpick (N) cpick (H) upick upick (N) upick (H) fInit constants *constant desc *eol
none 0 0 0 1 20 champion chance 0
rndname 1 1 0 0 100 minion +hp% 0
hpmultiply 2 1 0 0 75 minion +hp% (N) 0
light 3 1 0 0 50 minion +hp% (H) 0
leveladd 4 1 0 0 200 champion +hp% 0
strong 5 1 0 1 6 6 6 150 champion +hp% (N) 0
fast 6 1 0 1 3 6 6 6 100 champion +hp% (H) 0
curse 7 1 0 1 6 6 6 300 unique +hp% 0
resist 8 1 0 1 6 6 200 unique +hp% (N) 0
fire 9 1 0 1 6 6 6 100 unique +hp% (H) 0
poisondead 10 1 0 0 75 champion +tohit% 0
durieldead 11 1 0 0 100 champion +dmg% 0
bloodraven 12 1 0 0 50 minion +tohit% 0
rage 13 1 0 0 100 unique +tohit% 0
spcdamage 14 1 0 0 75 minion +dmg% (strong) 0
partydead 15 1 0 0 150 unique +dmg% (strong) 0
champion 16 1 0 1 1 1 1 1 0 minion +elem min dmg% 0
lightning 17 1 0 1 sandleaper 6 6 6 33 minion +elem min dmg% (N) 0
cold 18 1 0 1 6 6 6 33 minion +elem min dmg% (H) 0
hireable 19 1 0 0 0 minion +elem max dmg% 0
scarab 20 1 0 0 50 minion +elem max dmg% (N) 0
killself 21 1 0 0 50 minion +elem max dmg% (H) 0
questcomplete 22 1 0 0 33 champion +elem min dmg% 0
poisonhit 23 1 0 0 33 champion +elem min dmg% (N) 0
thief 24 0 0 1 33 champion +elem min dmg% (H) 0
manahit 25 1 0 1 6 6 6 50 champion +elem max dmg% 0
teleport 26 1 0 1 1 6 6 6 50 champion +elem max dmg% (N) 0
spectralhit 27 1 0 1 6 6 6 50 champion +elem max dmg% (H) 0
stoneskin 28 1 0 1 6 6 6 66 unique +elem min dmg% 0
multishot 29 1 0 1 2 6 6 6 66 unique +elem min dmg% (N) 0
aura 30 1 0 0 6 6 6 66 unique +elem min dmg% (H) 0
goboom 31 1 0 0 100 unique +elem max dmg% 0
firespike_explode 32 1 100 0 100 unique +elem max dmg% (N) 0
suicideminion_explode 33 1 100 0 100 unique +elem max dmg% (H) 0
ai_after_death 34 1 100 0 0
shatter_on_death 35 1 100 0 0
ghostly 36 1 100 1 1 1 1 1 0
fanatic 37 1 100 1 1 1 1 1 0
possessed 38 1 100 1 1 1 1 1 0
berserk 39 1 100 1 1 1 1 1 0
worms_on_death 40 1 100 0 0
always_run_ai 41 1 100 0 0
lightningdeath 42 1 100 0 0



1.10 ac packet process from d2client.dll


ac:

.text:6FAB4BD0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:6FAB4BD0
.text:6FAB4BD0
.text:6FAB4BD0 sub_6FAB4BD0    proc near               ; DATA XREF: .data:6FB76A80o
.text:6FAB4BD0
.text:6FAB4BD0 var_188         = dword ptr -188h
.text:6FAB4BD0 var_16C         = dword ptr -16Ch
.text:6FAB4BD0 var_14C         = dword ptr -14Ch
.text:6FAB4BD0 var_144         = dword ptr -144h
.text:6FAB4BD0 var_140         = dword ptr -140h
.text:6FAB4BD0 var_120         = dword ptr -120h
.text:6FAB4BD0 var_118         = dword ptr -118h
.text:6FAB4BD0 var_110         = dword ptr -110h
.text:6FAB4BD0 var_10C         = dword ptr -10Ch
.text:6FAB4BD0 var_108         = dword ptr -108h
.text:6FAB4BD0 var_F8          = dword ptr -0F8h
.text:6FAB4BD0 var_F4          = dword ptr -0F4h
.text:6FAB4BD0 var_F0          = dword ptr -0F0h
.text:6FAB4BD0 var_EC          = dword ptr -0ECh
.text:6FAB4BD0 var_E8          = dword ptr -0E8h
.text:6FAB4BD0 var_E4          = dword ptr -0E4h
.text:6FAB4BD0 var_E0          = dword ptr -0E0h
.text:6FAB4BD0 var_D8          = dword ptr -0D8h
.text:6FAB4BD0 var_D4          = word ptr -0D4h
.text:6FAB4BD0 var_CC          = dword ptr -0CCh
.text:6FAB4BD0 var_C8          = dword ptr -0C8h
.text:6FAB4BD0 var_B0          = dword ptr -0B0h
.text:6FAB4BD0 var_AC          = dword ptr -0ACh
.text:6FAB4BD0 var_A8          = dword ptr -0A8h
.text:6FAB4BD0 var_A4          = dword ptr -0A4h
.text:6FAB4BD0 var_A0          = dword ptr -0A0h
.text:6FAB4BD0 var_9C          = dword ptr -9Ch
.text:6FAB4BD0 var_98          = dword ptr -98h
.text:6FAB4BD0 var_94          = dword ptr -94h
.text:6FAB4BD0 var_90          = dword ptr -90h
.text:6FAB4BD0 var_8C          = dword ptr -8Ch
.text:6FAB4BD0 var_88          = dword ptr -88h
.text:6FAB4BD0 var_84          = dword ptr -84h
.text:6FAB4BD0 var_7C          = dword ptr -7Ch
.text:6FAB4BD0 var_78          = byte ptr -78h
.text:6FAB4BD0 var_74          = dword ptr -74h
.text:6FAB4BD0 var_6C          = dword ptr -6Ch
.text:6FAB4BD0 var_64          = dword ptr -64h
.text:6FAB4BD0 var_60          = word ptr -60h
.text:6FAB4BD0 var_5C          = dword ptr -5Ch
.text:6FAB4BD0 var_58          = dword ptr -58h
.text:6FAB4BD0 var_54          = dword ptr -54h
.text:6FAB4BD0 var_50          = dword ptr -50h
.text:6FAB4BD0 var_4C          = dword ptr -4Ch
.text:6FAB4BD0 var_44          = dword ptr -44h
.text:6FAB4BD0 var_3C          = dword ptr -3Ch
.text:6FAB4BD0 var_30          = dword ptr -30h
.text:6FAB4BD0
.text:6FAB4BD0                 sub     esp, 74h
.text:6FAB4BD3                 push    ebx
.text:6FAB4BD4                 push    ebp
.text:6FAB4BD5                 mov     ebp, ecx
.text:6FAB4BD7                 push    esi
.text:6FAB4BD8                 push    edi
.text:6FAB4BD9                 mov     [esp+84h+var_58], ebp
.text:6FAB4BDD                 mov     eax, [ebp+1]
.text:6FAB4BE0                 mov     cx, [ebp+7]
.text:6FAB4BE4                 mov     dx, [ebp+9]
.text:6FAB4BE8                 mov     [esp+84h+var_54], eax
.text:6FAB4BEC                 mov     di, [ebp+5]
.text:6FAB4BF0                 xor     eax, eax
.text:6FAB4BF2                 mov     al, [ebp+0Ch]
.text:6FAB4BF5                 mov     word ptr [esp+84h+var_5C], cx
.text:6FAB4BFA                 sub     eax, 0Dh
.text:6FAB4BFD                 mov     [esp+84h+var_60], dx
.text:6FAB4C02                 lea     ecx, [ebp+0Dh]
.text:6FAB4C05                 push    eax
.text:6FAB4C06                 lea     edx, [esp+88h+var_30]
.text:6FAB4C0A                 push    ecx
.text:6FAB4C0B                 push    edx
.text:6FAB4C0C                 mov     [esp+90h+var_50], edi
.text:6FAB4C10                 call    Fog_10126
.text:6FAB4C15                 lea     eax, [esp+90h+var_3C]

*** read 4 bits
.text:6FAB4C19                 push    4
.text:6FAB4C1B                 push    eax
.text:6FAB4C1C                 call    Fog_10130

.text:6FAB4C21                 lea     ecx, [esp+98h+var_44]
.text:6FAB4C25                 xor     ebx, ebx

*** read 1 bit
.text:6FAB4C27                 push    1
.text:6FAB4C29                 push    ecx
.text:6FAB4C2A                 mov     [esp+0A0h+var_78], al
.text:6FAB4C2E                 mov     [esp+0A0h+var_7C], ebx
.text:6FAB4C32                 call    Fog_10130


.text:6FAB4C37                 test    eax, eax
.text:6FAB4C39                 jz      main_flow_label_1

.text:6FAB4C3F                 movsx   eax, di
.text:6FAB4C42                 cmp     eax, ebx
.text:6FAB4C44                 jl      exit_label_1

.text:6FAB4C4A                 mov     edx, ds:sgptDataTables
.text:6FAB4C50                 mov     edx, [edx]
.text:6FAB4C52                 cmp     eax, [edx+0A80h]
.text:6FAB4C58                 jge     exit_label_1


.text:6FAB4C5E                 lea     ecx, [eax+eax*2]
.text:6FAB4C61                 lea     ecx, [ecx+ecx*8]
.text:6FAB4C64                 add     ecx, ecx
.text:6FAB4C66                 sub     ecx, eax
.text:6FAB4C68                 mov     eax, [edx+0A78h]
.text:6FAB4C6E                 movsx   eax, word ptr [eax+ecx*8+18h]
.text:6FAB4C73                 cmp     eax, ebx
.text:6FAB4C75                 jl      exit_label_1

.text:6FAB4C7B                 cmp     eax, [edx+0A98h]
.text:6FAB4C81                 jge     exit_label_1

.text:6FAB4C87                 lea     ecx, [eax+eax*8]
.text:6FAB4C8A                 lea     ecx, [eax+ecx*2]
.text:6FAB4C8D                 lea     eax, [eax+ecx*4]
.text:6FAB4C90                 mov     ecx, [edx+0A90h]
.text:6FAB4C96                 lea     esi, [ecx+eax*4]
.text:6FAB4C99                 cmp     esi, ebx
.text:6FAB4C9B                 jz      exit_label_1

.text:6FAB4CA1                 lea     edx, [esp+0A0h+var_5C]
.text:6FAB4CA5                 xor     edi, edi
.text:6FAB4CA7                 mov     [esp+0A0h+var_84], edx
.text:6FAB4CAB
.text:6FAB4CAB loop_label_2:                           ; CODE XREF: sub_6FAB4BD0+11Bj
.text:6FAB4CAB                 xor     eax, eax
.text:6FAB4CAD                 mov     al, [esi+edi+15h]
.text:6FAB4CB1                 cmp     eax, 3
.text:6FAB4CB4                 jge     short loc_6FAB4CBD
.text:6FAB4CB6                 mov     eax, 1
.text:6FAB4CBB                 jmp     short loc_6FAB4CD8
.text:6FAB4CBD ; ---------------------------------------------------------------------------
.text:6FAB4CBD
.text:6FAB4CBD loc_6FAB4CBD:                           ; CODE XREF: sub_6FAB4BD0+E4j
.text:6FAB4CBD                 dec     eax
.text:6FAB4CBE                 cmp     eax, ebx
.text:6FAB4CC0                 mov     [esp+0A0h+var_90], eax
.text:6FAB4CC4                 jnz     short loc_6FAB4CCA

.text:6FAB4CC6                 xor     eax, eax
.text:6FAB4CC8                 jmp     short loc_6FAB4CD8
.text:6FAB4CCA ; ---------------------------------------------------------------------------
.text:6FAB4CCA
.text:6FAB4CCA loc_6FAB4CCA:                           ; CODE XREF: sub_6FAB4BD0+F4j
.text:6FAB4CCA                 bsr     eax, [esp+0A0h+var_90]
.text:6FAB4CCF                 inc     eax
.text:6FAB4CD0                 mov     [esp+0A0h+var_90], eax
.text:6FAB4CD4                 mov     eax, [esp+0A0h+var_90]
.text:6FAB4CD8
.text:6FAB4CD8 loc_6FAB4CD8:                           ; CODE XREF: sub_6FAB4BD0+EBj
.text:6FAB4CD8 

                                       ; sub_6FAB4BD0+F8j
**** read eax bits ??
.text:6FAB4CD8                 push    eax
.text:6FAB4CD9                 lea     eax, [esp+0A4h+var_4C]
.text:6FAB4CDD                 push    eax
.text:6FAB4CDE                 call    Fog_10130

.text:6FAB4CE3                 mov     byte ptr [esp+edi+0A8h+var_64], al
.text:6FAB4CE7                 inc     edi
.text:6FAB4CE8                 cmp     edi, 10h
.text:6FAB4CEB                 jl      short loop_label_2
.text:6FAB4CED
.text:6FAB4CED main_flow_label_1:                           ; CODE XREF: sub_6FAB4BD0+69j
.text:6FAB4CED                 lea     ecx, [esp+0A8h+var_54]

*** read 1 bit
.text:6FAB4CF1                 push    1
.text:6FAB4CF3                 push    ecx
.text:6FAB4CF4                 mov     [esp+0B0h+var_90], ebx
.text:6FAB4CF8                 xor     esi, esi
.text:6FAB4CFA                 mov     [esp+0B0h+var_98], 0FFFFFFFFh
.text:6FAB4D02                 mov     [esp+0B0h+var_94], ebx
.text:6FAB4D06                 call    Fog_10130

.text:6FAB4D0B                 test    eax, eax
.text:6FAB4D0D                 jz      loc_6FAB4DFE
.text:6FAB4D13                 lea     edx, [esp+0B0h+var_5C]

*** read 1 bit
.text:6FAB4D17                 push    1
.text:6FAB4D19                 push    edx
.text:6FAB4D1A                 call    Fog_10130
.text:6FAB4D1F                 mov     ebx, eax
.text:6FAB4D21                 lea     eax, [esp+0B8h+var_64]
.text:6FAB4D25                 neg     ebx
.text:6FAB4D27                 sbb     ebx, ebx

*** read 1 bit
.text:6FAB4D29                 push    1
.text:6FAB4D2B                 push    eax
.text:6FAB4D2C                 and     ebx, 4
.text:6FAB4D2F                 call    Fog_10130
.text:6FAB4D34                 neg     eax
.text:6FAB4D36                 sbb     eax, eax
.text:6FAB4D38                 lea     ecx, [esp+0C0h+var_6C]
.text:6FAB4D3C                 and     eax, 8

*** read 1 bit
.text:6FAB4D3F                 push    1
.text:6FAB4D41                 push    ecx
.text:6FAB4D42                 or      ebx, eax
.text:6FAB4D44                 call    Fog_10130
.text:6FAB4D49                 neg     eax
.text:6FAB4D4B                 sbb     eax, eax
.text:6FAB4D4D                 lea     edx, [esp+0C8h+var_74]
.text:6FAB4D51                 and     eax, 2

*** read 1 bit
.text:6FAB4D54                 push    1
.text:6FAB4D56                 push    edx
.text:6FAB4D57                 or      ebx, eax
.text:6FAB4D59                 call    Fog_10130
.text:6FAB4D5E                 neg     eax
.text:6FAB4D60                 sbb     eax, eax

*** read 1 bit
.text:6FAB4D62                 push    1
.text:6FAB4D64                 and     eax, 10h
.text:6FAB4D67                 or      ebx, eax
.text:6FAB4D69                 lea     eax, [esp+0D4h+var_7C]
.text:6FAB4D6D                 push    eax
.text:6FAB4D6E                 call    Fog_10130

.text:6FAB4D73                 neg     eax
.text:6FAB4D75                 sbb     eax, eax
.text:6FAB4D77                 and     eax, 40h
.text:6FAB4D7A                 or      ebx, eax
.text:6FAB4D7C                 test    bl, 2
.text:6FAB4D7F                 jz      short loc_6FAB4D91
.text:6FAB4D81                 lea     ecx, [esp+0D8h+var_84]


(????????) 16 bits
.text:6FAB4D85                 push    10h
.text:6FAB4D87                 push    ecx
.text:6FAB4D88                 call    Fog_10129
.text:6FAB4D8D                 mov     [esp+0E0h+var_CC], eax
.text:6FAB4D91
.text:6FAB4D91 loc_6FAB4D91:                           ; CODE XREF: sub_6FAB4BD0+1AFj
.text:6FAB4D91                 xor     edx, edx
.text:6FAB4D93                 lea     ecx, [esp+0E0h+var_8C]
.text:6FAB4D97                 mov     [esp+0E0h+var_A8], edx
.text:6FAB4D9B                 lea     eax, [esp+0E0h+var_A8]
.text:6FAB4D9F                 mov     [esp+0E0h+var_A4], edx

*** read 8 bit
.text:6FAB4DA3                 push    8
.text:6FAB4DA5                 push    ecx
.text:6FAB4DA6                 mov     byte ptr [esp+0E8h+var_A0], dl
.text:6FAB4DAA                 mov     [esp+0E8h+var_C8], eax
.text:6FAB4DAE                 call    Fog_10130

.text:6FAB4DB3                 test    al, al
.text:6FAB4DB5                 jz      short loc_6FAB4DCE

.text:6FAB4DB7                 lea     esi, [esp+0E8h+var_B0]
.text:6FAB4DBB
.text:6FAB4DBB loc_6FAB4DBB:                           ; CODE XREF: sub_6FAB4BD0+1FCj
.text:6FAB4DBB                 lea     edx, [esp+0E8h+var_94]

*** read 8 bit
.text:6FAB4DBF                 push    8
.text:6FAB4DC1                 mov     [esi], al
.text:6FAB4DC3                 push    edx
.text:6FAB4DC4                 inc     esi
.text:6FAB4DC5                 call    Fog_10130

.text:6FAB4DCA                 test    al, al
.text:6FAB4DCC                 jnz     short loc_6FAB4DBB
.text:6FAB4DCE
.text:6FAB4DCE loc_6FAB4DCE:                           ; CODE XREF: sub_6FAB4BD0+1E5j
.text:6FAB4DCE                 lea     eax, [esp+0F0h+var_9C]
.text:6FAB4DD2                 push    10h
.text:6FAB4DD4                 push    eax
.text:6FAB4DD5                 call    Fog_10130
.text:6FAB4DDA                 lea     ecx, [esp+0F8h+var_A4]

*** read 1 bit
.text:6FAB4DDE                 push    1
.text:6FAB4DE0                 push    ecx
.text:6FAB4DE1                 movzx   si, al
.text:6FAB4DE5                 call    Fog_10130

.text:6FAB4DEA                 test    eax, eax
.text:6FAB4DEC                 jz      short loc_6FAB4DFE

.text:6FAB4DEE                 lea     edx, [esp+100h+var_AC]

*** read 32 bit
.text:6FAB4DF2                 push    20h
.text:6FAB4DF4                 push    edx
.text:6FAB4DF5                 call    Fog_10130
.text:6FAB4DFA                 mov     [esp+108h+var_F8], eax
.text:6FAB4DFE
.text:6FAB4DFE loc_6FAB4DFE:                           ; CODE XREF: sub_6FAB4BD0+13Dj
.text:6FAB4DFE                                         ; sub_6FAB4BD0+21Cj
.text:6FAB4DFE                 mov     edx, [esp+108h+var_E4]
.text:6FAB4E02                 mov     ecx, 7
.text:6FAB4E07                 xor     eax, eax
.text:6FAB4E09                 lea     edi, [esp+108h+var_A0]
.text:6FAB4E0D                 rep stosd
.text:6FAB4E0F                 mov     eax, [esp+108h+var_E0]
.text:6FAB4E13                 mov     edi, [esp+108h+var_D8]
.text:6FAB4E17                 movsx   ecx, [esp+108h+var_D4]
.text:6FAB4E1C                 and     edx, 0FFFFh
.text:6FAB4E22                 and     eax, 0FFFFh
.text:6FAB4E27                 mov     [esp+108h+var_94], edx
.text:6FAB4E2B                 mov     edx, [esp+108h+var_E8]
.text:6FAB4E2F                 mov     [esp+108h+var_98], eax
.text:6FAB4E33                 mov     eax, [esp+108h+var_F8]
.text:6FAB4E37                 and     ebx, 0FFFFh
.text:6FAB4E3D                 and     edx, 0FFh
.text:6FAB4E43                 mov     [esp+108h+var_A0], edi
.text:6FAB4E47                 mov     [esp+108h+var_9C], ecx
.text:6FAB4E4B                 mov     [esp+108h+var_90], ebx
.text:6FAB4E4F                 mov     [esp+108h+var_8C], eax
.text:6FAB4E53                 mov     [esp+108h+var_88], edx
.text:6FAB4E5A                 call    sub_6FAAE030
.text:6FAB4E5F                 mov     eax, [esp+108h+var_F4]
.text:6FAB4E63                 mov     ecx, [esp+108h+var_F0]
.text:6FAB4E67                 mov     edx, [esp+108h+var_EC]
.text:6FAB4E6B                 push    0
.text:6FAB4E6D                 push    eax
.text:6FAB4E6E                 push    esi
.text:6FAB4E6F                 push    ecx
.text:6FAB4E70                 lea     ecx, [esp+118h+var_A0]
.text:6FAB4E74                 call    sub_6FB27630
.text:6FAB4E79                 mov     esi, eax
.text:6FAB4E7B                 test    esi, esi
.text:6FAB4E7D                 jz      exit_label_1

.text:6FAB4E83                 mov     ecx, esi
.text:6FAB4E85                 call    sub_6FB5DAB0
.text:6FAB4E8A                 push    esi
.text:6FAB4E8B                 call    D2Common_11067
.text:6FAB4E90                 test    eax, eax
.text:6FAB4E92                 jz      short custom_label_4

.text:6FAB4E94                 push    1
.text:6FAB4E96                 call    sub_6FB283D0
.text:6FAB4E9B                 mov     edx, 7
.text:6FAB4EA0                 mov     ecx, eax
.text:6FAB4EA2                 call    sub_6FAB1920
.text:6FAB4EA7                 cmp     edi, eax
.text:6FAB4EA9                 jz      short custom_label_3
.text:6FAB4EAB
.text:6FAB4EAB custom_label_4:                           ; CODE XREF: sub_6FAB4BD0+2C2j
.text:6FAB4EAB                 push    0
.text:6FAB4EAD                 push    8000h
.text:6FAB4EB2                 push    7
.text:6FAB4EB4                 push    esi
.text:6FAB4EB5                 call    D2Common_10517
.text:6FAB4EBA                 xor     edx, edx
.text:6FAB4EBC                 mov     dh, [ebp+0Bh]
.text:6FAB4EBF                 push    0
.text:6FAB4EC1                 push    edx
.text:6FAB4EC2                 push    6
.text:6FAB4EC4                 push    esi
.text:6FAB4EC5                 call    D2Common_10517
.text:6FAB4ECA
.text:6FAB4ECA custom_label_3:                           ; CODE XREF: sub_6FAB4BD0+2D9j
.text:6FAB4ECA                 push    esi
.text:6FAB4ECB                 call    D2Common_11067
.text:6FAB4ED0                 test    eax, eax
.text:6FAB4ED2                 jz      short custom_label_2
.text:6FAB4ED4                 cmp     byte ptr [esp+130h+var_110], 1
.text:6FAB4ED9                 jnz     short custom_label_2
.text:6FAB4EDB                 and     dword ptr [esi+0C8h], 0FFFBFFFFh
.text:6FAB4EE5
.text:6FAB4EE5 custom_label_2:                           ; CODE XREF: sub_6FAB4BD0+302j
.text:6FAB4EE5                                         ; sub_6FAB4BD0+309j
.text:6FAB4EE5                 mov     eax, [esp+130h+var_10C]
.text:6FAB4EE9                 mov     ecx, [esp+130h+var_108]
.text:6FAB4EED                 add     eax, ecx
.text:6FAB4EEF                 push    0
.text:6FAB4EF1                 and     eax, 0FFFFh
.text:6FAB4EF6                 push    eax
.text:6FAB4EF7                 push    148h
.text:6FAB4EFC                 push    esi
.text:6FAB4EFD                 call    D2Common_10517
.text:6FAB4F02                 lea     edx, [esp+140h+var_EC]

*** read 1 bit
.text:6FAB4F06                 push    1
.text:6FAB4F08                 push    edx
.text:6FAB4F09                 call    Fog_10130

*** if (it = 0) or (it=1) then custom_label_1
.text:6FAB4F0E                 test    eax, eax
.text:6FAB4F10                 jz      short custom_label_1

.text:6FAB4F12                 lea     eax, [esp+148h+var_F4]

*** read 31 bits
.text:6FAB4F16                 push    1Fh
.text:6FAB4F18                 push    eax
.text:6FAB4F19                 call    Fog_10130

.text:6FAB4F1E                 push    eax
.text:6FAB4F1F                 push    0
.text:6FAB4F21                 push    esi
.text:6FAB4F22                 call    D2Common_10416

.text:6FAB4F27
.text:6FAB4F27 custom_label_1:                           ; CODE XREF: sub_6FAB4BD0+340j
.text:6FAB4F27                 lea     ecx, [esp+15Ch+var_108]

*** read 1 bit
.text:6FAB4F2B                 push    1
.text:6FAB4F2D                 push    ecx
.text:6FAB4F2E                 call    Fog_10130
.text:6FAB4F33                 test    eax, eax
.text:6FAB4F35                 jz      exit_label_1

.text:6FAB4F3B                 lea     edx, [esp+164h+var_110]

*** read 9 bits
.text:6FAB4F3F                 push    9
.text:6FAB4F41                 push    edx
.text:6FAB4F42                 xor     edi, edi
.text:6FAB4F44                 call    Fog_10130

*** if eax = 1FFh then exit
.text:6FAB4F49                 mov     ebp, eax
.text:6FAB4F4B                 cmp     ebp, 1FFh
.text:6FAB4F51                 jge     exit_label_1

.text:6FAB4F57
.text:6FAB4F57 read_loop_label_1:                           ; CODE XREF: sub_6FAB4BD0+47Cj
.text:6FAB4F57                 test    ebp, ebp
.text:6FAB4F59                 jl      loc_6FAB505A
.text:6FAB4F5F                 mov     eax, ds:sgptDataTables
.text:6FAB4F64                 mov     ecx, [eax]
.text:6FAB4F66                 cmp     ebp, [ecx+0BD4h]
.text:6FAB4F6C                 jge     loc_6FAB505A
.text:6FAB4F72                 lea     eax, [ebp+ebp*8+0]
.text:6FAB4F76                 lea     edx, [eax+eax*8]
.text:6FAB4F79                 mov     eax, [ecx+0BCCh]
.text:6FAB4F7F                 lea     ebx, [eax+edx*4]
.text:6FAB4F82                 test    ebx, ebx
.text:6FAB4F84                 jz      loc_6FAB505A
.text:6FAB4F8A                 mov     al, [ebx+8]
.text:6FAB4F8D                 test    al, al
.text:6FAB4F8F                 jbe     loc_6FAB5066
.text:6FAB4F95                 mov     al, [ebx+9]
.text:6FAB4F98                 mov     [esp+16Ch+var_144], 0
.text:6FAB4FA0                 test    al, al
.text:6FAB4FA2                 jbe     short loc_6FAB4FB8

.text:6FAB4FA4                 and     eax, 0FFh
.text:6FAB4FA9                 lea     ecx, [esp+16Ch+var_118]

.text:6FAB4FAD                 push    eax
.text:6FAB4FAE                 push    ecx
.text:6FAB4FAF                 call    Fog_10129

.text:6FAB4FB4                 mov     [esp+174h+var_14C], eax
.text:6FAB4FB8
.text:6FAB4FB8 loc_6FAB4FB8:                           ; CODE XREF: sub_6FAB4BD0+3D2j
.text:6FAB4FB8                 mov     al, [ebx+8]
.text:6FAB4FBB                 cmp     al, 20h


*** if al <= 32 then read_w_var_len
.text:6FAB4FBD                 jnb     short read_w_var_len

.text:6FAB4FBF                 mov     ecx, ds:gdwBitMasks
.text:6FAB4FC5                 mov     dl, [ebx+4]
.text:6FAB4FC8                 test    [ecx+4], dl
.text:6FAB4FCB                 jz      short read_w_var_len

.text:6FAB4FCD                 and     eax, 0FFh
.text:6FAB4FD2                 lea     edx, [esp+174h+var_120]

.text:6FAB4FD6                 push    eax
.text:6FAB4FD7                 push    edx
.text:6FAB4FD8                 call    Fog_10129

.text:6FAB4FDD                 jmp     short cutom_label_7
.text:6FAB4FDF ; ---------------------------------------------------------------------------
.text:6FAB4FDF
.text:6FAB4FDF read_w_var_len:                           ; CODE XREF: sub_6FAB4BD0+3EDj
.text:6FAB4FDF                                         ; sub_6FAB4BD0+3FBj

.text:6FAB4FDF                 and     eax, 0FFh
.text:6FAB4FE4                 push    eax
.text:6FAB4FE5                 lea     eax, [esp+178h+var_120]
.text:6FAB4FE9                 push    eax
.text:6FAB4FEA                 call    Fog_10130

.text:6FAB4FEF
.text:6FAB4FEF cutom_label_7:                           ; CODE XREF: sub_6FAB4BD0+40Dj
.text:6FAB4FEF                 test    edi, edi
.text:6FAB4FF1                 mov     ebx, eax
.text:6FAB4FF3                 jnz     short loc_6FAB502B

.text:6FAB4FF5                 push    40h
.text:6FAB4FF7                 push    edi
.text:6FAB4FF8                 push    esi
.text:6FAB4FF9                 call    D2Common_10484

.text:6FAB4FFE                 mov     edi, eax
.text:6FAB5000                 test    edi, edi
.text:6FAB5002                 jnz     short loc_6FAB502B
.text:6FAB5004                 mov     eax, [esi+0Ch]
.text:6FAB5007                 mov     ecx, [esi]


.text:6FAB5009                 push    eax
.text:6FAB500A                 push    ecx
.text:6FAB500B                 push    edi
.text:6FAB500C                 push    40h
.text:6FAB500E                 push    edi
.text:6FAB500F                 call    D2Common_10470

.text:6FAB5014                 mov     edi, eax

.text:6FAB5016                 push    0
.text:6FAB5018                 push    edi
.text:6FAB5019                 call    D2Common_10478

.text:6FAB501E                 push    1
.text:6FAB5020                 push    edi
.text:6FAB5021                 push    esi
.text:6FAB5022                 call    D2Common_10475

.text:6FAB5027                 test    edi, edi
.text:6FAB5029                 jz      short loc_6FAB5038
.text:6FAB502B
.text:6FAB502B loc_6FAB502B:                           ; CODE XREF: sub_6FAB4BD0+423j
.text:6FAB502B                                         ; sub_6FAB4BD0+432j
.text:6FAB502B                 mov     ecx, [esp+1B0h+var_188]
.text:6FAB502F                 push    ecx
.text:6FAB5030                 push    ebx
.text:6FAB5031                 push    ebp
.text:6FAB5032                 push    edi
.text:6FAB5033                 call    D2Common_10465
.text:6FAB5038
.text:6FAB5038 loc_6FAB5038:                           ; CODE XREF: sub_6FAB4BD0+459j
.text:6FAB5038                 lea     edx, [esp+1C0h+var_16C]

.text:6FAB503C                 push    9
.text:6FAB503E                 push    edx
.text:6FAB503F                 call    Fog_10130

.text:6FAB5044                 mov     ebp, eax
.text:6FAB5046                 cmp     ebp, 1FFh

.text:6FAB504C                 jl      read_loop_label_1
.text:6FAB5052                 pop     edi
.text:6FAB5053                 pop     esi
.text:6FAB5054                 pop     ebp
.text:6FAB5055                 pop     ebx
.text:6FAB5056                 add     esp, 74h
.text:6FAB5059                 retn

.text:6FAB505A ; ---------------------------------------------------------------------------
.text:6FAB505A
.text:6FAB505A loc_6FAB505A:                           ; CODE XREF: sub_6FAB4BD0+389j
.text:6FAB505A                                         ; sub_6FAB4BD0+39Cj ...
.text:6FAB505A                 mov     eax, [esp+16Ch+var_140]
.text:6FAB505E                 push    ebp
.text:6FAB505F                 movsx   ecx, word ptr [eax+5]
.text:6FAB5063                 push    ecx
.text:6FAB5064                 jmp     short error_label_1
.text:6FAB5066 ; ---------------------------------------------------------------------------
.text:6FAB5066
.text:6FAB5066 loc_6FAB5066:                           ; CODE XREF: sub_6FAB4BD0+3BFj
.text:6FAB5066                 mov     edx, [esp+16Ch+var_140]
.text:6FAB506A                 push    ebp
.text:6FAB506B                 movsx   eax, word ptr [edx+5]
.text:6FAB506F                 push    eax
.text:6FAB5070
.text:6FAB5070 error_label_1:                           ; CODE XREF: sub_6FAB4BD0+494j
.text:6FAB5070                 push    offset aWarningSscmd_n ; "WARNING: sSCmd_NewMonsterEx, Attempt to"...
.text:6FAB5075                 call    Fog_10029
.text:6FAB507A                 add     esp, 0Ch
.text:6FAB507D
.text:6FAB507D exit_label_1:                           ; CODE XREF: sub_6FAB4BD0+74j
.text:6FAB507D                                         ; sub_6FAB4BD0+88j ...
.text:6FAB507D                 pop     edi
.text:6FAB507E                 pop     esi
.text:6FAB507F                 pop     ebp
.text:6FAB5080                 pop     ebx
.text:6FAB5081                 add     esp, 74h
.text:6FAB5084                 retn
.text:6FAB5084 sub_6FAB4BD0    endp ; sp = -0E8h
Quote from: MyndFyre-vL
No. We help people who help themselves.
http://sourceforge.net/projects/d2gs
http://assembla.com/space/d2gs