pues bueno hace mucho que no veo Assembly pero me parece que este bocado es lá funcion que se está alterando
8000000000050594:   7d 69 38 38    and     r9,r11,r7
8000000000050598:   40 9a ff e0    bne     cr6,0x8000000000050578
800000000005059c:   7f a9 58 00    cmpd    cr7,r9,r11
80000000000505a0:   7c a0 20 38    and     r0,r5,r4
80000000000505a4:   7f 20 28 00    cmpd    cr6,r0,r5
80000000000505a8:   40 9e ff d0    bne     cr7,0x8000000000050578
80000000000505ac:   40 9a ff cc    bne     cr6,0x8000000000050578
80000000000505b0:   80 01 01 08    lwz     r0,264(r1)      # 108
80000000000505b4:   7f e3 fb 78    mr      r3,r31
80000000000505b8:   38 81 01 08    addi    r4,r1,264      # 108
80000000000505bc:   2b 80 03 ff    cmplwi  cr7,r0,1023      # 3ff
80000000000505c0:   41 9d ff bc    bgt     cr7,0x800000000005057c
80000000000505c4:   4b ff fd 55    bl      0x8000000000050318
80000000000505c8:   54 66 06 3e    clrlwi  r6,r3,24      # 18
80000000000505cc:   4b ff ff b0    b       0x800000000005057c
80000000000505d0:   e9 22 96 88    ld      r9,-27000(r2)      # ffff9688
80000000000505d4:   7c 08 02 a6    mflr    r0
se substitue el retorno por esto
80000000000505d0:   38 60 00 01    li      r3,1
80000000000505d4:   4e 80 00 20    blr
con tanto and em la function solo pode estar hacendo una evaluation de permitiones. agora hai que aclarar-lo mas, para saber que realmente hace e veer qual es el mejor punto onde parchear. 
salu2