.meta name="CallProtectedHandler" .meta description="" entry_ptr: reloc0: .offsetof start .versions 3OJT 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0 start: stwu [r1 - 0x10], r1 mflr r0 stw [r1 + 0x14], r0 stw [r1 + 0x08], r31 stw [r1 + 0x0C], r30 b get_data_addr resume: mflr r31 lwz r30, [r31] li r0, 1 stw [r30], r0 addi r3, r31, 0x0C lwz r4, [r31 + 8] lwz r0, [r31 + 4] mtctr r0 bctrl li r0, 0 stw [r30], r0 lwz r30, [r1 + 0x0C] lwz r31, [r1 + 0x08] lwz r0, [r1 + 0x14] mtlr r0 addi r1, r1, 0x10 blr get_data_addr: bl resume # allow_local_client_commands .data # RcvPsoData2 .data .versions 4OJB 4OJD 4OJU 4OED 4OEU 4OPD 4OPU start: jmp get_data_addr resume: xchg ebx, [esp] mov edx, [ebx] mov dword [edx], 1 mov edx, [ebx + 4] lea ecx, [ebx + 0x0C] mov eax, [ebx + 8] call edx mov edx, [ebx] mov dword [edx], 0 pop ebx ret get_data_addr: call resume .data .data .versions 50YJ 59NJ 59NL start: jmp get_data_addr resume: xchg ebx, [esp] mov edx, [ebx] mov dword [edx], 1 mov edx, [ebx + 4] push dword [ebx + 8] lea ecx, [ebx + 0x0C] push ecx call edx # RcvPsoData2(data, size) add esp, 8 mov edx, [ebx] mov dword [edx], 0 pop ebx ret get_data_addr: call resume .data # should_allow_protected_commands .data # RcvPsoData2[std](void* data @ [esp + 4], uint32_t size @ [esp + 8]) .all_versions size: .data 0x00000000 data: