Valhalla Legends Forums Archive | Battle.net Bot Development | 0xac(ssCmd_NewMonsterEx) breackdown

AuthorMessageTime
ShadowDancer
well, .....

[code]

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
[/code]

monumod.txt

[code]
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
[/code]


1.10 ac packet process from d2client.dll

[code]
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
[/code]
September 25, 2006, 11:17 PM

Search