Apparently Vainglory uses mshook, and every item/mechanic/ability has an offset and a function connected to it
Sample code of the game is below
[hide]MOV R5, #(aIronguardcontr - 0x1379C) ; "IronguardContract__Cooldown" __text:00013796 01 30 ADDS R0, #1 __text:00013798 7D 44 ADD R5, PC __text:0001379A 30 60 STR R0, [R6] __text:0001379C 28 46 MOV R0, R5 __text:0001379E 28 F3 47 D8 BL.W unk_B3B830 __text:000137A2 01 46 MOV R1, R0 __text:000137A4 28 46 MOV R0, R5 __text:000137A6 52 46 MOV R2, R10 __text:000137A8 FC F1 E2 C1 BLX.W unk_E0FB70 __text:000137AC 20 F0 7F 40 BIC.W R0, R0, #0xFF000000 __text:000137B0 C4 F8 20 04 STR.W R0, [R4,#0x420] __text:000137B4 4F F4 B0 70 MOV.W R0, #0x160 __text:000137B8 A4 F8 24 04 STRH.W R0, [R4,#0x424] __text:000137BC 30 68 LDR R0, [R6] __text:000137BE C4 F8 28 B4 STR.W R11, [R4,#0x428] __text:000137C2 42 F6 14 45 C0 F2 22 15 MOV R5, #(aIronguardcon_0 - 0x137D0) ; "IronguardContract__GoldGranted" __text:000137CA 01 30 ADDS R0, #1 __text:000137CC 7D 44 ADD R5, PC __text:000137CE 30 60 STR R0, [R6] __text:000137D0 28 46 MOV R0, R5 __text:000137D2 28 F3 2D D8 BL.W unk_B3B830 __text:000137D6 01 46 MOV R1, R0 __text:000137D8 28 46 MOV R0, R5 __text:000137DA 52 46 MOV R2, R10 __text:000137DC FC F1 C8 C1 BLX.W unk_E0FB70 __text:000137E0 20 F0 7F 40 BIC.W R0, R0, #0xFF000000 __text:000137E4 C4 F8 2C 04 STR.W R0, [R4,#0x42C] __text:000137E8 4F F4 B2 70 MOV.W R0, #0x164 __text:000137EC A4 F8 30 04 STRH.W R0, [R4,#0x430] __text:000137F0 30 68 LDR R0, [R6] __text:000137F2 C4 F8 34 B4 STR.W R11, [R4,#0x434] __text:000137F6 42 F6 FF 35 C0 F2 22 15 MOV R5, #(aIronguardcon_1 - 0x13804) ; "IronguardContract__ShareBountyRange" __text:000137FE 01 30 ADDS R0, #1 __text:00013800 7D 44 ADD R5, PC __text:00013802 30 60 STR R0, [R6] __text:00013804 28 46 MOV R0, R5 __text:00013806 28 F3 13 D8 BL.W unk_B3B830 __text:0001380A 01 46 MOV R1, R0 __text:0001380C 28 46 MOV R0, R5 __text:0001380E 52 46 MOV R2, R10 __text:00013810 FC F1 AE C1 BLX.W unk_E0FB70 __text:00013814 20 F0 7F 40 BIC.W R0, R0, #0xFF000000 __text:00013818 C4 F8 38 04 STR.W R0, [R4,#0x438] __text:0001381C 4F F4 B4 70 MOV.W R0, #0x168 __text:00013820 A4 F8 3C 04 STRH.W R0, [R4,#0x43C] __text:00013824 30 68 LDR R0, [R6] __text:00013826 C4 F8 40 B4 STR.W R11, [R4,#0x440] __text:0001382A 42 F6 EF 35 C0 F2 22 15 MOV R5, #(aIronguardcon_2 - 0x13838) ; "IronguardContract__FractionBountyShared"... __text:00013832 01 30 ADDS R0, #1 __text:00013834 7D 44 ADD R5, PC __text:00013836 30 60 STR R0, [R6] __text:00013838 28 46 MOV R0, R5 __text:0001383A 27 F3 F9 DF BL.W unk_B3B830 __text:0001383E 01 46 MOV R1, R0 __text:00013840 28 46 MOV R0, R5 __text:00013842 52 46 MOV R2, R10 __text:00013844 FC F1 94 C1 BLX.W unk_E0FB70 __text:00013848 20 F0 7F 40 BIC.W R0, R0, #0xFF000000 __text:0001384C C4 F8 44 04 STR.W R0, [R4,#0x444] __text:00013850 4F F4 B6 70 MOV.W R0, #0x16C __text:00013854 A4 F8 48 04 STRH.W R0, [R4,#0x448] __text:00013858 30 68 LDR R0, [R6] __text:0001385A C4 F8 4C B4 STR.W R11, [R4,#0x44C] __text:0001385E 42 F6 E3 35 C0 F2 22 15 MOV R5, #(aIronguardcon_3 - 0x1386C) ; "IronguardContract__FractionBountyShared"... __text:00013866 01 30 ADDS R0, #1 __text:00013868 7D 44 ADD R5, PC __text:0001386A 30 60 STR R0, [R6] __text:0001386C 28 46 MOV R0, R5 __text:0001386E 27 F3 DF DF BL.W unk_B3B830 __text:00013872 01 46 MOV R1, R0 __text:00013874 28 46 MOV R0, R5 __text:00013876 52 46 MOV R2, R10 __text:00013878 FC F1 7A C1 BLX.W unk_E0FB70 __text:0001387C 20 F0 7F 40 BIC.W R0, R0, #0xFF000000 __text:00013880 C4 F8 50 04 STR.W R0, [R4,#0x450] __text:00013884 4F F4 B8 70 MOV.W R0, #0x170 __text:00013888 A4 F8 54 04 STRH.W R0, [R4,#0x454] __text:0001388C 30 68 LDR R0, [R6] __text:0001388E C4 F8 58 B4 STR.W R11, [R4,#0x458][/hide]