client.dll - sha1: 2f17fb6b520ed76bea98c33cf7c2a99f8d944600 timestamp: 1717201500(00:25:00 01 Jun 2024)
engine2.dll - sha1: 8ac410b63a431da7751ff2c1fc053f17ecb7311c timestamp: 1717025664(23:34:24 29 May 2024)
particles.dll - sha1: e221ecea54a3520357c2c8f7cf46e1db2d2656f9 timestamp: 1717025579(23:32:59 29 May 2024)
show enemy abilitiy status on HUD
(client.dll: xref "CDOTA_Hud_AbilityPanel::UpdateCooldown")
48 0F 45 ?? ?? 8D ?? ?? ?? ?? ?? 48 8B ?? FF 50 ?? 84 C0 0F 84(@ $+117) client.dll
$ ==> | 48:895C24 08 | mov qword ptr ss:[rsp+8],rbx
$+5 | 48:896C24 20 | mov qword ptr ss:[rsp+20],rbp
$+A | 56 | push rsi
$+B | 57 | push rdi
$+C | 41:56 | push r14
$+E | 48:81EC 80000000 | sub rsp,80
...
$+114 | 48:85C0 | test rax,rax
$+117 | 48:0F45F8 | cmovne rdi,rax | 48 0F 45 ?? ?? 8D ?? ?? ?? ?? ?? 48 8B ?? FF 50 ?? 84 C0 0F 84
$+11B | 49:8D8E 200A0000 | lea rcx,qword ptr ds:[r14+A20]
$+122 | 48:8B01 | mov rax,qword ptr ds:[rcx]
$+125 | FF50 58 | call qword ptr ds:[rax+58] <-------- team check
$+128 | 84C0 | test al,al
$+12A | 0F84 DA000000 | je client.7FF9B3B8EEBA <-------- if jump taken, shows cooldown
$+130 | 41:80BE C3030000 04 | cmp byte ptr ds:[r14+3C3],4
$+138 | 0F84 CC000000 | je client.7FF9B3B8EEBA
$+13E | BD FFFF0000 | mov ebp,FFFF
$+143 | 66:392D 42E87D02 | cmp word ptr ds:[7FF9B636D63C],bp
replacement:
$+12A | E9 DB000000 | jmp client.7FF9B3B8EEBA <-------- always jump(show cooldown)
$+12F | 90 | nop
(client.dll: xref "CDOTA_Hud_AbilityPanel::UpdateLevel")
49 8B CC FF ?? ?? 41 BE(@ $+28B) client.dll
49 8B CC FF ?? ?? 84 C0 75 ?? 44(@ $+3DE) client.dll
$ ==> | 48:895424 10 | mov qword ptr ss:[rsp+10],rdx
$+5 | 53 | push rbx
$+6 | 55 | push rbp
$+7 | 56 | push rsi
$+8 | 57 | push rdi
$+9 | 41:55 | push r13
$+B | 41:56 | push r14
$+D | 48:81EC 38010000 | sub rsp,138
...
$+28B | 49:8BCC | mov rcx,r12 | 49 8B CC FF ?? ?? 41 BE
$+28E | FF52 58 | call qword ptr ds:[rdx+58] <-------- team check
$+291 | 41:BE FFFF0000 | mov r14d,FFFF
$+297 | 84C0 | test al,al
$+299 | 74 5B | je client.7FF9B3B921C6 <-------- if jump taken, colorize icon if ability learnt
$+29B | 6644:3935 E1B47D02 | cmp word ptr ds:[7FF9B636D654],r14w
...
$+3DE | 49:8BCC | mov rcx,r12 | 49 8B CC FF ?? ?? 84 C0 75 ?? 44
$+3E1 | FF50 58 | call qword ptr ds:[rax+58] <-------- team check
$+3E4 | 84C0 | test al,al
$+3E6 | 75 68 | jne client.7FF9B3B92320 <-------- if jump not taken, show level
$+3E8 | 44:8BBF B0050000 | mov r15d,dword ptr ds:[rdi+5B0]
$+3EF | 44:89BC24 70010000 | mov dword ptr ss:[rsp+170],r15d
$+3F7 | 45:85FF | test r15d,r15d
$+3FA | 79 26 | jns client.7FF9B3B922F2
$+3FC | 4C:39AF 38050000 | cmp qword ptr ds:[rdi+538],r13
replacement:
$+297 | 84C0 | test al,al
$+299 | EB 5B | jmp client.7FF9B3B921C6 <-------- always jump(colorize learnt)
$+29B | 6644:3935 E1B47D02 | cmp word ptr ds:[7FF9B636D654],r14w
...
$+3E1 | FF50 58 | call qword ptr ds:[rax+58]
$+3E4 | 84C0 | test al,al
$+3E6 | 90 | nop <-------- never jump(show level)
$+3E7 | 90 | nop
$+3E8 | 44:8BBF B0050000 | mov r15d,dword ptr ds:[rdi+5B0]
(client.dll: xrefs "mana_cost" "health_cost" "gold_cost" one after another in that sequence)
40 0F 9F ?? 41 80 BE(@ $+124) client.dll
$ ==> | 48:895C24 08 | mov qword ptr ss:[rsp+8],rbx
$+5 | 48:896C24 10 | mov qword ptr ss:[rsp+10],rbp
$+A | 48:897424 18 | mov qword ptr ss:[rsp+18],rsi
$+F | 48:897C24 20 | mov qword ptr ss:[rsp+20],rdi
$+14 | 41:54 | push r12
$+16 | 41:56 | push r14
$+18 | 41:57 | push r15
$+1A | 48:83EC 40 | sub rsp,40
...
$+124 | 40:0F9FC6 | setg sil | 40 0F 9F ?? 41 80 BE
$+128 | 41:80BE C3030000 04 | cmp byte ptr ds:[r14+3C3],4
$+130 | 74 19 | je client.7FF9B3B8C88B
$+132 | 49:8D8E 200A0000 | lea rcx,qword ptr ds:[r14+A20]
$+139 | 48:8B01 | mov rax,qword ptr ds:[rcx]
$+13C | FF50 58 | call qword ptr ds:[rax+58] <-------- team check
$+13F | 84C0 | test al,al
$+141 | 74 08 | je client.7FF9B3B8C88B <-------- if jump taken, show manacost
$+143 | 33FF | xor edi,edi
$+145 | 45:33FF | xor r15d,r15d
replacement:
$+13C | FF50 58 | call qword ptr ds:[rax+58]
$+13F | 84C0 | test al,al
$+141 | EB 08 | jmp client.7FF9B3B8C88B <-------- always jump(show manacost)
$+143 | 33FF | xor edi,edi
display hidden buffs/debuffs
(client.dll: xrefs "stack_count" "file://{{images}}/spellicons/empty.png")
48 8B CB FF 90 ?? ?? ?? ?? 84 C0 74 ?? 48 8B ?? 48 8B ?? FF 90 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 41 BF(@ $+A6) client.dll
$ ==> | 40:55 | push rbp
$+2 | 53 | push rbx
$+3 | 56 | push rsi
$+4 | 57 | push rdi
$+5 | 41:55 | push r13
$+7 | 41:56 | push r14
$+9 | 41:57 | push r15
$+B | 48:8DAC24 60FEFFFF | lea rbp,qword ptr ss:[rsp-1A0]
...
$+A6 | 48:8BCB | mov rcx,rbx | 48 8B CB FF 90 ?? ?? ?? ?? 84 C0 74 ?? 48 8B ?? 48 8B ?? FF 90 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 41 BF
$+A9 | FF90 88000000 | call qword ptr ds:[rax+88] <-------- buff hidden check
$+AF | 84C0 | test al,al
$+B1 | 74 14 | je client.7FF9B3B89FE7 <-------- if jump taken, show buff(part 1)
$+B3 | 48:8B03 | mov rax,qword ptr ds:[rbx]
$+B6 | 48:8BCB | mov rcx,rbx
$+B9 | FF90 90000000 | call qword ptr ds:[rax+90]
$+BF | 84C0 | test al,al
$+C1 | 0F84 0B080000 | je client.7FF9B3B8A7F2
$+C7 | 41:BF FFFF0000 | mov r15d,FFFF
$+CD | 4C:89A424 98020000 | mov qword ptr ss:[rsp+298],r12
$+D5 | 0F29B424 80020000 | movaps xmmword ptr ss:[rsp+280],xmm6
$+DD | 0F29BC24 70020000 | movaps xmmword ptr ss:[rsp+270],xmm7
$+E5 | 44:3877 30 | cmp byte ptr ds:[rdi+30],r14b
$+E9 | 75 36 | jne client.7FF9B3B8A041
$+EB | C647 30 01 | mov byte ptr ds:[rdi+30],1
replacement:
$+A9 | FF90 88000000 | call qword ptr ds:[rax+88]
$+AF | 84C0 | test al,al
$+B1 | EB 14 | jmp client.7FF9B3B89FE7 <-------- always jump(show buff(part 1))
$+B3 | 48:8B03 | mov rax,qword ptr ds:[rbx]
(client.dll: xref "CDOTA_Hud_BuffList::Update")
48 8B 10 48 8B C8 FF 92 ?? ?? ?? ?? 84 C0 74 ?? 48 8B 0D ?? ?? ?? ?? 83 B9(@ $+A3) client.dll
$ ==> | 48:895C24 10 | mov qword ptr ss:[rsp+10],rbx
$+5 | 48:896C24 18 | mov qword ptr ss:[rsp+18],rbp
$+A | 56 | push rsi
$+B | 57 | push rdi
$+C | 41:54 | push r12
$+E | 41:56 | push r14
$+10 | 41:57 | push r15
$+12 | 48:83EC 70 | sub rsp,70
...
$+A3 | 48:8B10 | mov rdx,qword ptr ds:[rax] | 48 8B 10 48 8B C8 FF 92 ?? ?? ?? ?? 84 C0 74 ?? 48 8B 0D ?? ?? ?? ?? 83 B9
$+A6 | 48:8BC8 | mov rcx,rax
$+A9 | FF92 88000000 | call qword ptr ds:[rdx+88] <-------- buff hidden check
$+AF | 84C0 | test al,al
$+B1 | 74 28 | je client.7FF9B3B8A97B <-------- if jump taken, show buff(part 2)
$+B3 | 48:8B0D 16157102 | mov rcx,qword ptr ds:[7FF9B629BE70]
$+BA | 83B9 E4000000 12 | cmp dword ptr ds:[rcx+E4],12
replacement:
$+A9 | FF92 88000000 | call qword ptr ds:[rdx+88]
$+AF | 84C0 | test al,al
$+B1 | EB 28 | jmp client.7FF9B3B8A97B <-------- always jump(show buff(part 2))
$+B3 | 48:8B0D 16157102 | mov rcx,qword ptr ds:[7FF9B629BE70]