lbl_80312BD4: /* 80312BD4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80312BD8 7C 08 02 A6 */ mflr r0 /* 80312BDC 90 01 00 24 */ stw r0, 0x24(r1) /* 80312BE0 39 61 00 20 */ addi r11, r1, 0x20 /* 80312BE4 48 04 F5 F5 */ bl _savegpr_28 /* 80312BE8 7C 7D 1B 78 */ mr r29, r3 /* 80312BEC 7C 9E 23 78 */ mr r30, r4 /* 80312BF0 3B E0 00 00 */ li r31, 0 /* 80312BF4 38 60 00 00 */ li r3, 0 /* 80312BF8 3C 80 80 3D */ lis r4, sDifferedRegister@ha /* 0x803CD900@ha */ /* 80312BFC 38 A4 D9 00 */ addi r5, r4, sDifferedRegister@l /* 0x803CD900@l */ /* 80312C00 3C 80 80 3D */ lis r4, sSizeOfDiffered@ha /* 0x803CD920@ha */ /* 80312C04 38 84 D9 20 */ addi r4, r4, sSizeOfDiffered@l /* 0x803CD920@l */ /* 80312C08 38 00 00 08 */ li r0, 8 /* 80312C0C 7C 09 03 A6 */ mtctr r0 lbl_80312C10: /* 80312C10 7C 05 18 2E */ lwzx r0, r5, r3 /* 80312C14 7F C0 00 39 */ and. r0, r30, r0 /* 80312C18 41 82 00 0C */ beq lbl_80312C24 /* 80312C1C 7C 04 18 2E */ lwzx r0, r4, r3 /* 80312C20 7F FF 02 14 */ add r31, r31, r0 lbl_80312C24: /* 80312C24 38 63 00 04 */ addi r3, r3, 4 /* 80312C28 42 00 FF E8 */ bdnz lbl_80312C10 /* 80312C2C 57 C0 E7 3E */ rlwinm r0, r30, 0x1c, 0x1c, 0x1f /* 80312C30 1C 00 00 48 */ mulli r0, r0, 0x48 /* 80312C34 7F FF 02 14 */ add r31, r31, r0 /* 80312C38 57 DC C7 3F */ rlwinm. r28, r30, 0x18, 0x1c, 0x1f /* 80312C3C 41 82 00 4C */ beq lbl_80312C88 /* 80312C40 80 7D 00 28 */ lwz r3, 0x28(r29) /* 80312C44 80 63 00 04 */ lwz r3, 4(r3) /* 80312C48 80 63 00 28 */ lwz r3, 0x28(r3) /* 80312C4C 81 83 00 00 */ lwz r12, 0(r3) /* 80312C50 81 8C 00 40 */ lwz r12, 0x40(r12) /* 80312C54 7D 89 03 A6 */ mtctr r12 /* 80312C58 4E 80 04 21 */ bctrl /* 80312C5C 7C 1C 18 40 */ cmplw r28, r3 /* 80312C60 40 81 00 08 */ ble lbl_80312C68 /* 80312C64 7F 83 E3 78 */ mr r3, r28 lbl_80312C68: /* 80312C68 57 C0 04 E7 */ rlwinm. r0, r30, 0, 0x13, 0x13 /* 80312C6C 41 82 00 14 */ beq lbl_80312C80 /* 80312C70 1C 03 00 3D */ mulli r0, r3, 0x3d /* 80312C74 7F E0 FA 14 */ add r31, r0, r31 /* 80312C78 3B FF 00 0A */ addi r31, r31, 0xa /* 80312C7C 48 00 00 0C */ b lbl_80312C88 lbl_80312C80: /* 80312C80 1C 03 00 35 */ mulli r0, r3, 0x35 /* 80312C84 7F FF 02 14 */ add r31, r31, r0 lbl_80312C88: /* 80312C88 57 DC 87 3F */ rlwinm. r28, r30, 0x10, 0x1c, 0x1f /* 80312C8C 41 82 00 90 */ beq lbl_80312D1C /* 80312C90 80 7D 00 28 */ lwz r3, 0x28(r29) /* 80312C94 80 63 00 04 */ lwz r3, 4(r3) /* 80312C98 80 63 00 2C */ lwz r3, 0x2c(r3) /* 80312C9C 81 83 00 00 */ lwz r12, 0(r3) /* 80312CA0 81 8C 00 98 */ lwz r12, 0x98(r12) /* 80312CA4 7D 89 03 A6 */ mtctr r12 /* 80312CA8 4E 80 04 21 */ bctrl /* 80312CAC 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 80312CB0 28 00 00 08 */ cmplwi r0, 8 /* 80312CB4 40 81 00 0C */ ble lbl_80312CC0 /* 80312CB8 38 60 00 08 */ li r3, 8 /* 80312CBC 48 00 00 20 */ b lbl_80312CDC lbl_80312CC0: /* 80312CC0 80 7D 00 28 */ lwz r3, 0x28(r29) /* 80312CC4 80 63 00 04 */ lwz r3, 4(r3) /* 80312CC8 80 63 00 2C */ lwz r3, 0x2c(r3) /* 80312CCC 81 83 00 00 */ lwz r12, 0(r3) /* 80312CD0 81 8C 00 98 */ lwz r12, 0x98(r12) /* 80312CD4 7D 89 03 A6 */ mtctr r12 /* 80312CD8 4E 80 04 21 */ bctrl lbl_80312CDC: /* 80312CDC 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 80312CE0 7C 1C 00 40 */ cmplw r28, r0 /* 80312CE4 7C 03 03 78 */ mr r3, r0 /* 80312CE8 40 81 00 08 */ ble lbl_80312CF0 /* 80312CEC 7F 83 E3 78 */ mr r3, r28 lbl_80312CF0: /* 80312CF0 57 C0 01 4B */ rlwinm. r0, r30, 0, 5, 5 /* 80312CF4 41 82 00 20 */ beq lbl_80312D14 /* 80312CF8 1C 83 00 37 */ mulli r4, r3, 0x37 /* 80312CFC 38 03 00 01 */ addi r0, r3, 1 /* 80312D00 54 00 F8 7E */ srwi r0, r0, 1 /* 80312D04 1C 00 00 37 */ mulli r0, r0, 0x37 /* 80312D08 7C 84 02 14 */ add r4, r4, r0 /* 80312D0C 7F FF 22 14 */ add r31, r31, r4 /* 80312D10 48 00 00 0C */ b lbl_80312D1C lbl_80312D14: /* 80312D14 1C 03 00 37 */ mulli r0, r3, 0x37 /* 80312D18 7F FF 02 14 */ add r31, r31, r0 lbl_80312D1C: /* 80312D1C 57 DC 67 3F */ rlwinm. r28, r30, 0xc, 0x1c, 0x1f /* 80312D20 41 82 00 7C */ beq lbl_80312D9C /* 80312D24 80 7D 00 28 */ lwz r3, 0x28(r29) /* 80312D28 80 63 00 04 */ lwz r3, 4(r3) /* 80312D2C 80 63 00 2C */ lwz r3, 0x2c(r3) /* 80312D30 81 83 00 00 */ lwz r12, 0(r3) /* 80312D34 81 8C 00 98 */ lwz r12, 0x98(r12) /* 80312D38 7D 89 03 A6 */ mtctr r12 /* 80312D3C 4E 80 04 21 */ bctrl /* 80312D40 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 80312D44 28 00 00 08 */ cmplwi r0, 8 /* 80312D48 40 81 00 0C */ ble lbl_80312D54 /* 80312D4C 38 60 00 08 */ li r3, 8 /* 80312D50 48 00 00 20 */ b lbl_80312D70 lbl_80312D54: /* 80312D54 80 7D 00 28 */ lwz r3, 0x28(r29) /* 80312D58 80 63 00 04 */ lwz r3, 4(r3) /* 80312D5C 80 63 00 2C */ lwz r3, 0x2c(r3) /* 80312D60 81 83 00 00 */ lwz r12, 0(r3) /* 80312D64 81 8C 00 98 */ lwz r12, 0x98(r12) /* 80312D68 7D 89 03 A6 */ mtctr r12 /* 80312D6C 4E 80 04 21 */ bctrl lbl_80312D70: /* 80312D70 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 80312D74 7C 1C 00 40 */ cmplw r28, r0 /* 80312D78 7C 03 03 78 */ mr r3, r0 /* 80312D7C 40 81 00 08 */ ble lbl_80312D84 /* 80312D80 7F 83 E3 78 */ mr r3, r28 lbl_80312D84: /* 80312D84 1C 03 00 0A */ mulli r0, r3, 0xa /* 80312D88 7F FF 02 14 */ add r31, r31, r0 /* 80312D8C 57 C0 01 09 */ rlwinm. r0, r30, 0, 4, 4 /* 80312D90 41 82 00 0C */ beq lbl_80312D9C /* 80312D94 1C 03 00 05 */ mulli r0, r3, 5 /* 80312D98 7F FF 02 14 */ add r31, r31, r0 lbl_80312D9C: /* 80312D9C 38 1F 00 1F */ addi r0, r31, 0x1f /* 80312DA0 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a /* 80312DA4 39 61 00 20 */ addi r11, r1, 0x20 /* 80312DA8 48 04 F4 7D */ bl _restgpr_28 /* 80312DAC 80 01 00 24 */ lwz r0, 0x24(r1) /* 80312DB0 7C 08 03 A6 */ mtlr r0 /* 80312DB4 38 21 00 20 */ addi r1, r1, 0x20 /* 80312DB8 4E 80 00 20 */ blr