Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;disregard the numbers before the :, its just for original reference
- ; all this shit should go somewhere else in free space
- ; then 44ba46 should be a 'jmp' to :angelCheck's address
- :angelCheck: cmp dword [eax], 0xc ; angel check, jump if pass
- 44ba49: jz :passedAngel
- 44ba4b: inc ecx ; ecx = ecx + 1
- 44ba4c: add eax, 0x4 ; eax = eax + 4
- 44ba4f: cmp ecx, 0x7 ; if ecx < 7, then...
- 44ba52: jl :angelCheck ; check a diff stack for angels
- 44ba54: xor eax, eax ; eax = 0. none of them were angels. eax & ecx swap functionalities here
- 44ba56: mov ecx, edx ; ecx = 4-byte contents of 1884A0
- :aaCheck1: cmp dword [ecx], 0xd ; archangel check, jump if pass
- 44ba5b: jz :passedAngel
- 44ba5d: inc eax ; eax = eax + 1
- 44ba5e: add ecx, 0x4 ; ecx = ecx + 4
- 44ba61: cmp eax, 0x7 ; if ecx < 7, then...
- 44ba64: jl :aaCheck1 ; check a diff stack for archangels
- 44ba66: jmp :devilCheck ; you have no angels or archangels in your team
- :passedAngel: mov eax, 0xc ; set type as 0xC (angel)
- 44ba6d: xor ecx, ecx ; zero ecx
- :aaCheck2: cmp dword [edx], 0xd ; secondary archangel check, jump if pass
- 44ba72: jz :passedArchangel
- 44ba74: inc ecx ; ecx = ecx + 1
- 44ba75: add edx, 0x4 ; edx = edx + 4 (edx was contents of 1884A0)
- 44ba78: cmp ecx, 0x7 ; if ecx < 7, then...
- 44ba7b: jl :aaCheck2 ; check a diff stack for archangels
- 44ba7d: jmp :anyAngel ; we have angels but no archangels
- :passedArchangel: mov eax, 0xd ; set type as 0xC (archangel)
- :anyAngel: lea ecx, [eax*8+0x0] ; ecx = TYPE*8
- 44ba8b: sub ecx, eax ; ecx = ecx - TYPE (...so TYPE*7??)
- 44ba8d: lea edx, [eax+ecx*4] ; edx = TYPE + <ecx*4> (...so edx = TYPE*29?)
- 44ba90: mov eax, [0x6747b0] ; eax = 4-byte contents of 0x6747B0 <$2747B0>
- 44ba95: mov ecx, [0x6a58a4] ; ecx = 4-byte contents of 0x6A58A4 <$2A58A4>
- 44ba9b: mov eax, [eax+edx*4+0x18] ; eax = eax + (edx*4) + 0x18
- 44ba9f: lea edx, [ebp-0x40] ; if ebp is 1884B0 then edx = "188470"
- 44baa2: push eax ; store eax
- 44baa3: push ecx ; store ecx
- 44baa4: push edx ; store edx
- 44baa5: call dword 0x50c7f0
- 44baaa: add esp, 0xc
- 44baad: mov ecx, [0x63a60c]
- 44bab3: mov byte [ebp-0x4], 0x3
- 44bab7: push ecx
- 44bab8: push 0x0
- 44baba: push eax
- 44babb: lea ecx, [ebp-0x5c]
- 44babe: call dword 0x41b1b0
- 44bac3: push 0x1
- 44bac5: lea ecx, [ebp-0x40]
- 44bac8: mov byte [ebp-0x4], 0x0
- 44bacc: call dword 0x404130
- <jmp 44bad1 if no stack, if they do stack just delete this line so it automatically goes to devilCheck>
- ;
- ;
- ;
- :devilCheck: mov edx, [ebp-0x10] ; if ebp is 1884B0, then edx = contents of 1884A0
- 44ba42: xor ecx, ecx ; ecx = 0
- 44ba44: mov eax, edx ; eax = 4-byte contents of 1884A0 <056FF275>
- :devilLoop: cmp dword [eax], 0xDEVIL_ID ; devil check, jump if pass
- 44ba49: jz :passedDevil
- 44ba4b: inc ecx ; ecx = ecx + 1
- 44ba4c: add eax, 0x4 ; eax = eax + 4
- 44ba4f: cmp ecx, 0x7 ; if ecx < 7, then...
- 44ba52: jl :devilLoop ; check a diff stack for devils
- 44ba54: xor eax, eax ; eax = 0. none of them were devils. eax & ecx swap functionalities here
- 44ba56: mov ecx, edx ; ecx = 4-byte contents of 1884A0
- :adCheck1: cmp dword [ecx], 0xARCHDEVIL_ID ; archdevil check, jump if pass
- 44ba5b: jz :passedDevil
- 44ba5d: inc eax ; eax = eax + 1
- 44ba5e: add ecx, 0x4 ; ecx = ecx + 4
- 44ba61: cmp eax, 0x7 ; if ecx < 7, then...
- 44ba64: jl :adCheck1 ; check a diff stack for archdevils
- 44ba66: jmp 44bad1 ; you have no devils or archdevils in your team
- :passedDevil: mov eax, 0xDEVIL_ID ; set type as 0x (devil)
- 44ba6d: xor ecx, ecx ; zero ecx
- :adCheck2: cmp dword [edx], 0xARCHDEVIL_ID ; secondary archdevil check, jump if pass
- 44ba72: jz :passedArchdevil
- 44ba74: inc ecx ; ecx = ecx + 1
- 44ba75: add edx, 0x4 ; edx = edx + 4 (edx was contents of 1884A0)
- 44ba78: cmp ecx, 0x7 ; if ecx < 7, then...
- 44ba7b: jl :adCheck2: ; check a diff stack for archdevils
- 44ba7d: jmp :anyDevil ; we have devils but no archdevils
- :passedArchdevil: mov eax, 0xARCHDEVIL_ID ; set type as 0x (archdevil)
- :anyDevil: lea ecx, [eax*8+0x0] ; ecx = TYPE*8
- 44ba8b: sub ecx, eax ; ecx = ecx - TYPE (...so TYPE*7??)
- 44ba8d: lea edx, [eax+ecx*4] ; edx = TYPE + <ecx*4> (...so edx = TYPE*29?)
- 44ba90: mov eax, [0x6747b0] ; eax = 4-byte contents of 0x6747B0 <$2747B0>
- 44ba95: mov ecx, [0x6a58a4] ; ecx = 4-byte contents of 0x6A58A4 <$2A58A4>
- 44ba9b: mov eax, [eax+edx*4+0x18] ; eax = eax + (edx*4) + 0x18
- 44ba9f: lea edx, [ebp-0x40] ; if ebp is 1884B0 then edx = "188470"
- 44baa2: push eax ; store eax
- 44baa3: push ecx ; store ecx
- 44baa4: push edx ; store edx
- 44baa5: call dword 0x50c7f0
- readme 44baaa: add esp, 0xc ; idk what this is but bone dragon has it too??? i'm worried tho lol. MAYBE DELETE THIS LINE??????
- 44baad: mov ecx, [0x63a60c]
- 44bab3: mov byte [ebp-0x4], 0xBUFF_ID_OF_LUCK ; i'm assuming ??? since 0x3 was angel buff, 0x4 was b.dragon debuff. might just be 0x3 again but idk...
- 44bab7: push ecx
- 44bab8: push 0x0
- 44baba: push eax
- 44babb: lea ecx, [ebp-0x5c]
- 44babe: call dword 0x41b1b0
- 44bac3: push 0x1
- 44bac5: lea ecx, [ebp-0x40]
- 44bac8: mov byte [ebp-0x4], 0x0
- 44bacc: call dword 0x404130
- jmp 44bad1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement