"oh, so i have it the wrong way..." <- you can see the GOT type is used in the rodata part where it finds the addresses of the core functions it wants in the init function in objdump: ```RELOCATION RECORDS FOR [.rodata.lzma12_mf_mao.0]: OFFSET TYPE VALUE 0000000000000000 R_X86_64_GOTOFF64 .Lrc_read_destroy 0000000000000008 R_X86_64_GOT64 _cpuid 0000000000000010 R_X86_64_GOTOFF64 .Llzma_delta_props_encoder``` but in the init function when it calls the original _cpuid it doesn't use GOT type, and instead PLT: ```RELOCATION RECORDS FOR [.text._get_cpuia]: OFFSET TYPE VALUE 0000000000000014 R_X86_64_PC32 .bss.__intr2-0x0000000000000005 0000000000000045 R_X86_64_PLT32 .Llzma_block_param_encoder.0-0x0000000000000004 000000000000005d R_X86_64_PC32 .bss.__intr2-0x0000000000000004 0000000000000066 R_X86_64_PLT32 _cpuid-0x0000000000000004 0000000000000088 R_X86_64_PLT32 .Llzma_delta_props_decoder-0x0000000000000004 0000000000000094 R_X86_64_GOTPCREL .Llzma_block_buffer_decode.0-0x0000000000000004 00000000000000c9 R_X86_64_GOTPCREL _cpuid-0x0000000000000004``` however now looking at it PLT I think calls the value in GOT... so maybe I have this mixed up and the change in the GOT value will affect the PLT call