.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_80155B50 func_80155B50: /* 80155B50 001517B0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80155B54 001517B4 7C 08 02 A6 */ mflr r0 /* 80155B58 001517B8 90 01 00 24 */ stw r0, 0x24(r1) /* 80155B5C 001517BC 39 61 00 20 */ addi r11, r1, 0x20 /* 80155B60 001517C0 48 07 15 C9 */ bl _savegpr_27 /* 80155B64 001517C4 7C 9C 23 78 */ mr r28, r4 /* 80155B68 001517C8 7C 7B 1B 78 */ mr r27, r3 /* 80155B6C 001517CC 38 80 00 00 */ li r4, 0 /* 80155B70 001517D0 38 A0 00 08 */ li r5, 8 /* 80155B74 001517D4 4B EA E5 91 */ bl memset /* 80155B78 001517D8 38 7B 00 14 */ addi r3, r27, 0x14 /* 80155B7C 001517DC 38 80 00 00 */ li r4, 0 /* 80155B80 001517E0 38 A0 01 D0 */ li r5, 0x1d0 /* 80155B84 001517E4 4B EA E5 81 */ bl memset /* 80155B88 001517E8 38 00 00 00 */ li r0, 0 /* 80155B8C 001517EC 38 7B 01 E4 */ addi r3, r27, 0x1e4 /* 80155B90 001517F0 90 1B 00 08 */ stw r0, 8(r27) /* 80155B94 001517F4 38 80 00 00 */ li r4, 0 /* 80155B98 001517F8 38 A0 00 12 */ li r5, 0x12 /* 80155B9C 001517FC 90 1B 00 10 */ stw r0, 0x10(r27) /* 80155BA0 00151800 4B EA E5 65 */ bl memset /* 80155BA4 00151804 3C 60 80 15 */ lis r3, lbl_80156C28@ha /* 80155BA8 00151808 3C 80 80 15 */ lis r4, lbl_80157188@ha /* 80155BAC 0015180C 38 63 6C 28 */ addi r3, r3, lbl_80156C28@l /* 80155BB0 00151810 38 84 71 88 */ addi r4, r4, lbl_80157188@l /* 80155BB4 00151814 48 0F E3 E9 */ bl func_80253F9C /* 80155BB8 00151818 7F 7F DB 78 */ mr r31, r27 /* 80155BBC 0015181C 3B A0 00 00 */ li r29, 0 lbl_80155BC0: /* 80155BC0 00151820 80 9C 00 00 */ lwz r4, 0(r28) /* 80155BC4 00151824 38 60 03 EA */ li r3, 0x3ea /* 80155BC8 00151828 4B F0 01 D1 */ bl func_80055D98 /* 80155BCC 0015182C 2C 03 00 00 */ cmpwi r3, 0 /* 80155BD0 00151830 7C 7E 1B 78 */ mr r30, r3 /* 80155BD4 00151834 41 82 00 10 */ beq lbl_80155BE4 /* 80155BD8 00151838 7F C4 F3 78 */ mr r4, r30 /* 80155BDC 0015183C 48 08 D9 01 */ bl func_801E34DC /* 80155BE0 00151840 93 DF 00 00 */ stw r30, 0(r31) lbl_80155BE4: /* 80155BE4 00151844 3B BD 00 01 */ addi r29, r29, 1 /* 80155BE8 00151848 3B FF 00 04 */ addi r31, r31, 4 /* 80155BEC 0015184C 2C 1D 00 02 */ cmpwi r29, 2 /* 80155BF0 00151850 3B 9C 00 04 */ addi r28, r28, 4 /* 80155BF4 00151854 41 80 FF CC */ blt lbl_80155BC0 /* 80155BF8 00151858 93 6D 9D 10 */ stw r27, lbl_8063EFD0-_SDA_BASE_(r13) /* 80155BFC 0015185C 39 61 00 20 */ addi r11, r1, 0x20 /* 80155C00 00151860 7F 63 DB 78 */ mr r3, r27 /* 80155C04 00151864 48 07 15 71 */ bl _restgpr_27 /* 80155C08 00151868 80 01 00 24 */ lwz r0, 0x24(r1) /* 80155C0C 0015186C 7C 08 03 A6 */ mtlr r0 /* 80155C10 00151870 38 21 00 20 */ addi r1, r1, 0x20 /* 80155C14 00151874 4E 80 00 20 */ blr .global func_80155C18 func_80155C18: /* 80155C18 00151878 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80155C1C 0015187C 7C 08 02 A6 */ mflr r0 /* 80155C20 00151880 2C 03 00 00 */ cmpwi r3, 0 /* 80155C24 00151884 90 01 00 14 */ stw r0, 0x14(r1) /* 80155C28 00151888 93 E1 00 0C */ stw r31, 0xc(r1) /* 80155C2C 0015188C 7C 9F 23 78 */ mr r31, r4 /* 80155C30 00151890 93 C1 00 08 */ stw r30, 8(r1) /* 80155C34 00151894 7C 7E 1B 78 */ mr r30, r3 /* 80155C38 00151898 41 82 00 68 */ beq lbl_80155CA0 /* 80155C3C 0015189C 48 00 1A F5 */ bl func_80157730 /* 80155C40 001518A0 80 7E 00 10 */ lwz r3, 0x10(r30) /* 80155C44 001518A4 2C 03 00 00 */ cmpwi r3, 0 /* 80155C48 001518A8 41 82 00 24 */ beq lbl_80155C6C /* 80155C4C 001518AC 41 82 00 18 */ beq lbl_80155C64 /* 80155C50 001518B0 81 83 01 00 */ lwz r12, 0x100(r3) /* 80155C54 001518B4 38 80 00 01 */ li r4, 1 /* 80155C58 001518B8 81 8C 00 08 */ lwz r12, 8(r12) /* 80155C5C 001518BC 7D 89 03 A6 */ mtctr r12 /* 80155C60 001518C0 4E 80 04 21 */ bctrl lbl_80155C64: /* 80155C64 001518C4 38 00 00 00 */ li r0, 0 /* 80155C68 001518C8 90 1E 00 10 */ stw r0, 0x10(r30) lbl_80155C6C: /* 80155C6C 001518CC 7F C3 F3 78 */ mr r3, r30 /* 80155C70 001518D0 48 00 16 3D */ bl func_801572AC /* 80155C74 001518D4 7F C3 F3 78 */ mr r3, r30 /* 80155C78 001518D8 48 00 18 3D */ bl func_801574B4 /* 80155C7C 001518DC 38 60 00 00 */ li r3, 0 /* 80155C80 001518E0 38 80 00 00 */ li r4, 0 /* 80155C84 001518E4 48 0F E3 19 */ bl func_80253F9C /* 80155C88 001518E8 38 00 00 00 */ li r0, 0 /* 80155C8C 001518EC 2C 1F 00 00 */ cmpwi r31, 0 /* 80155C90 001518F0 90 0D 9D 10 */ stw r0, lbl_8063EFD0-_SDA_BASE_(r13) /* 80155C94 001518F4 40 81 00 0C */ ble lbl_80155CA0 /* 80155C98 001518F8 7F C3 F3 78 */ mr r3, r30 /* 80155C9C 001518FC 48 08 4E 1D */ bl __dl__FPv lbl_80155CA0: /* 80155CA0 00151900 7F C3 F3 78 */ mr r3, r30 /* 80155CA4 00151904 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80155CA8 00151908 83 C1 00 08 */ lwz r30, 8(r1) /* 80155CAC 0015190C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80155CB0 00151910 7C 08 03 A6 */ mtlr r0 /* 80155CB4 00151914 38 21 00 10 */ addi r1, r1, 0x10 /* 80155CB8 00151918 4E 80 00 20 */ blr .global func_80155CBC func_80155CBC: /* 80155CBC 0015191C 94 21 FF 60 */ stwu r1, -0xa0(r1) /* 80155CC0 00151920 7C 08 02 A6 */ mflr r0 /* 80155CC4 00151924 90 01 00 A4 */ stw r0, 0xa4(r1) /* 80155CC8 00151928 DB E1 00 90 */ stfd f31, 0x90(r1) /* 80155CCC 0015192C F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0 /* 80155CD0 00151930 DB C1 00 80 */ stfd f30, 0x80(r1) /* 80155CD4 00151934 F3 C1 00 88 */ psq_st f30, 136(r1), 0, qr0 /* 80155CD8 00151938 39 61 00 80 */ addi r11, r1, 0x80 /* 80155CDC 0015193C 48 07 14 39 */ bl _savegpr_22 /* 80155CE0 00151940 88 03 00 7B */ lbz r0, 0x7b(r3) /* 80155CE4 00151944 3D 60 43 30 */ lis r11, 0x4330 /* 80155CE8 00151948 FF C0 08 90 */ fmr f30, f1 /* 80155CEC 0015194C 91 61 00 40 */ stw r11, 0x40(r1) /* 80155CF0 00151950 FF E0 10 90 */ fmr f31, f2 /* 80155CF4 00151954 2C 00 00 00 */ cmpwi r0, 0 /* 80155CF8 00151958 91 61 00 48 */ stw r11, 0x48(r1) /* 80155CFC 0015195C 3B C3 00 14 */ addi r30, r3, 0x14 /* 80155D00 00151960 7C 76 1B 78 */ mr r22, r3 /* 80155D04 00151964 7C 97 23 78 */ mr r23, r4 /* 80155D08 00151968 7C B8 2B 78 */ mr r24, r5 /* 80155D0C 0015196C 7C D9 33 78 */ mr r25, r6 /* 80155D10 00151970 7C FA 3B 78 */ mr r26, r7 /* 80155D14 00151974 7D 1B 43 78 */ mr r27, r8 /* 80155D18 00151978 7D 3C 4B 78 */ mr r28, r9 /* 80155D1C 0015197C 7D 5D 53 78 */ mr r29, r10 /* 80155D20 00151980 3B E0 00 00 */ li r31, 0 /* 80155D24 00151984 41 82 00 1C */ beq lbl_80155D40 /* 80155D28 00151988 80 1E 00 68 */ lwz r0, 0x68(r30) /* 80155D2C 0015198C 7C 00 40 40 */ cmplw r0, r8 /* 80155D30 00151990 40 82 00 10 */ bne lbl_80155D40 /* 80155D34 00151994 7F C4 F3 78 */ mr r4, r30 /* 80155D38 00151998 48 00 17 ED */ bl func_80157524 /* 80155D3C 0015199C 48 00 00 9C */ b lbl_80155DD8 lbl_80155D40: /* 80155D40 001519A0 88 1E 00 DB */ lbz r0, 0xdb(r30) /* 80155D44 001519A4 3B E0 00 01 */ li r31, 1 /* 80155D48 001519A8 3B DE 00 74 */ addi r30, r30, 0x74 /* 80155D4C 001519AC 2C 00 00 00 */ cmpwi r0, 0 /* 80155D50 001519B0 41 82 00 20 */ beq lbl_80155D70 /* 80155D54 001519B4 80 1E 00 68 */ lwz r0, 0x68(r30) /* 80155D58 001519B8 7C 00 40 40 */ cmplw r0, r8 /* 80155D5C 001519BC 40 82 00 14 */ bne lbl_80155D70 /* 80155D60 001519C0 7E C3 B3 78 */ mr r3, r22 /* 80155D64 001519C4 7F C4 F3 78 */ mr r4, r30 /* 80155D68 001519C8 48 00 17 BD */ bl func_80157524 /* 80155D6C 001519CC 48 00 00 6C */ b lbl_80155DD8 lbl_80155D70: /* 80155D70 001519D0 88 1E 00 DB */ lbz r0, 0xdb(r30) /* 80155D74 001519D4 3B E0 00 02 */ li r31, 2 /* 80155D78 001519D8 3B DE 00 74 */ addi r30, r30, 0x74 /* 80155D7C 001519DC 2C 00 00 00 */ cmpwi r0, 0 /* 80155D80 001519E0 41 82 00 20 */ beq lbl_80155DA0 /* 80155D84 001519E4 80 1E 00 68 */ lwz r0, 0x68(r30) /* 80155D88 001519E8 7C 00 40 40 */ cmplw r0, r8 /* 80155D8C 001519EC 40 82 00 14 */ bne lbl_80155DA0 /* 80155D90 001519F0 7E C3 B3 78 */ mr r3, r22 /* 80155D94 001519F4 7F C4 F3 78 */ mr r4, r30 /* 80155D98 001519F8 48 00 17 8D */ bl func_80157524 /* 80155D9C 001519FC 48 00 00 3C */ b lbl_80155DD8 lbl_80155DA0: /* 80155DA0 00151A00 88 1E 00 DB */ lbz r0, 0xdb(r30) /* 80155DA4 00151A04 3B E0 00 03 */ li r31, 3 /* 80155DA8 00151A08 3B DE 00 74 */ addi r30, r30, 0x74 /* 80155DAC 00151A0C 2C 00 00 00 */ cmpwi r0, 0 /* 80155DB0 00151A10 41 82 00 20 */ beq lbl_80155DD0 /* 80155DB4 00151A14 80 1E 00 68 */ lwz r0, 0x68(r30) /* 80155DB8 00151A18 7C 00 40 40 */ cmplw r0, r8 /* 80155DBC 00151A1C 40 82 00 14 */ bne lbl_80155DD0 /* 80155DC0 00151A20 7E C3 B3 78 */ mr r3, r22 /* 80155DC4 00151A24 7F C4 F3 78 */ mr r4, r30 /* 80155DC8 00151A28 48 00 17 5D */ bl func_80157524 /* 80155DCC 00151A2C 48 00 00 0C */ b lbl_80155DD8 lbl_80155DD0: /* 80155DD0 00151A30 3B E0 00 04 */ li r31, 4 /* 80155DD4 00151A34 3B DE 00 74 */ addi r30, r30, 0x74 lbl_80155DD8: /* 80155DD8 00151A38 28 1F 00 04 */ cmplwi r31, 4 /* 80155DDC 00151A3C 40 82 00 5C */ bne lbl_80155E38 /* 80155DE0 00151A40 88 16 00 7B */ lbz r0, 0x7b(r22) /* 80155DE4 00151A44 3B D6 00 14 */ addi r30, r22, 0x14 /* 80155DE8 00151A48 3B E0 00 00 */ li r31, 0 /* 80155DEC 00151A4C 2C 00 00 00 */ cmpwi r0, 0 /* 80155DF0 00151A50 41 82 00 48 */ beq lbl_80155E38 /* 80155DF4 00151A54 88 1E 00 DB */ lbz r0, 0xdb(r30) /* 80155DF8 00151A58 3B E0 00 01 */ li r31, 1 /* 80155DFC 00151A5C 3B DE 00 74 */ addi r30, r30, 0x74 /* 80155E00 00151A60 2C 00 00 00 */ cmpwi r0, 0 /* 80155E04 00151A64 41 82 00 34 */ beq lbl_80155E38 /* 80155E08 00151A68 88 1E 00 DB */ lbz r0, 0xdb(r30) /* 80155E0C 00151A6C 3B E0 00 02 */ li r31, 2 /* 80155E10 00151A70 3B DE 00 74 */ addi r30, r30, 0x74 /* 80155E14 00151A74 2C 00 00 00 */ cmpwi r0, 0 /* 80155E18 00151A78 41 82 00 20 */ beq lbl_80155E38 /* 80155E1C 00151A7C 88 1E 00 DB */ lbz r0, 0xdb(r30) /* 80155E20 00151A80 3B E0 00 03 */ li r31, 3 /* 80155E24 00151A84 3B DE 00 74 */ addi r30, r30, 0x74 /* 80155E28 00151A88 2C 00 00 00 */ cmpwi r0, 0 /* 80155E2C 00151A8C 41 82 00 0C */ beq lbl_80155E38 /* 80155E30 00151A90 3B E0 00 04 */ li r31, 4 /* 80155E34 00151A94 3B DE 00 74 */ addi r30, r30, 0x74 lbl_80155E38: /* 80155E38 00151A98 28 1F 00 04 */ cmplwi r31, 4 /* 80155E3C 00151A9C 40 82 00 0C */ bne lbl_80155E48 /* 80155E40 00151AA0 38 60 00 00 */ li r3, 0 /* 80155E44 00151AA4 48 00 06 78 */ b lbl_801564BC lbl_80155E48: /* 80155E48 00151AA8 28 1C 00 11 */ cmplwi r28, 0x11 /* 80155E4C 00151AAC 40 81 00 08 */ ble lbl_80155E54 /* 80155E50 00151AB0 3B 80 00 00 */ li r28, 0 lbl_80155E54: /* 80155E54 00151AB4 C0 22 8E E8 */ lfs f1, lbl_806414E8-_SDA2_BASE_(r2) /* 80155E58 00151AB8 C0 17 00 00 */ lfs f0, 0(r23) /* 80155E5C 00151ABC FC 01 00 00 */ fcmpu cr0, f1, f0 /* 80155E60 00151AC0 40 82 00 2C */ bne lbl_80155E8C /* 80155E64 00151AC4 C0 17 00 04 */ lfs f0, 4(r23) /* 80155E68 00151AC8 FC 01 00 00 */ fcmpu cr0, f1, f0 /* 80155E6C 00151ACC 40 82 00 20 */ bne lbl_80155E8C /* 80155E70 00151AD0 C0 17 00 08 */ lfs f0, 8(r23) /* 80155E74 00151AD4 FC 01 00 00 */ fcmpu cr0, f1, f0 /* 80155E78 00151AD8 40 82 00 14 */ bne lbl_80155E8C /* 80155E7C 00151ADC C0 22 8E EC */ lfs f1, lbl_806414EC-_SDA2_BASE_(r2) /* 80155E80 00151AE0 C0 02 8E F0 */ lfs f0, lbl_806414F0-_SDA2_BASE_(r2) /* 80155E84 00151AE4 D0 37 00 00 */ stfs f1, 0(r23) /* 80155E88 00151AE8 D0 17 00 04 */ stfs f0, 4(r23) lbl_80155E8C: /* 80155E8C 00151AEC 7C 19 C0 40 */ cmplw r25, r24 /* 80155E90 00151AF0 41 80 00 2C */ blt lbl_80155EBC /* 80155E94 00151AF4 7C 18 C8 50 */ subf r0, r24, r25 /* 80155E98 00151AF8 93 41 00 4C */ stw r26, 0x4c(r1) /* 80155E9C 00151AFC C8 42 8F 10 */ lfd f2, lbl_80641510-_SDA2_BASE_(r2) /* 80155EA0 00151B00 90 01 00 44 */ stw r0, 0x44(r1) /* 80155EA4 00151B04 C8 01 00 48 */ lfd f0, 0x48(r1) /* 80155EA8 00151B08 C8 21 00 40 */ lfd f1, 0x40(r1) /* 80155EAC 00151B0C EC 00 10 28 */ fsubs f0, f0, f2 /* 80155EB0 00151B10 EC 21 10 28 */ fsubs f1, f1, f2 /* 80155EB4 00151B14 EC 21 00 24 */ fdivs f1, f1, f0 /* 80155EB8 00151B18 48 00 00 28 */ b lbl_80155EE0 lbl_80155EBC: /* 80155EBC 00151B1C 7C 19 C0 50 */ subf r0, r25, r24 /* 80155EC0 00151B20 93 41 00 4C */ stw r26, 0x4c(r1) /* 80155EC4 00151B24 C8 42 8F 10 */ lfd f2, lbl_80641510-_SDA2_BASE_(r2) /* 80155EC8 00151B28 90 01 00 44 */ stw r0, 0x44(r1) /* 80155ECC 00151B2C C8 01 00 48 */ lfd f0, 0x48(r1) /* 80155ED0 00151B30 C8 21 00 40 */ lfd f1, 0x40(r1) /* 80155ED4 00151B34 EC 00 10 28 */ fsubs f0, f0, f2 /* 80155ED8 00151B38 EC 21 10 28 */ fsubs f1, f1, f2 /* 80155EDC 00151B3C EC 21 00 24 */ fdivs f1, f1, f0 lbl_80155EE0: /* 80155EE0 00151B40 C0 02 8E F4 */ lfs f0, lbl_806414F4-_SDA2_BASE_(r2) /* 80155EE4 00151B44 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 80155EE8 00151B48 4C 41 13 82 */ cror 2, 1, 2 /* 80155EEC 00151B4C 40 82 00 10 */ bne lbl_80155EFC /* 80155EF0 00151B50 38 00 00 01 */ li r0, 1 /* 80155EF4 00151B54 98 1E 00 65 */ stb r0, 0x65(r30) /* 80155EF8 00151B58 48 00 00 28 */ b lbl_80155F20 lbl_80155EFC: /* 80155EFC 00151B5C C0 02 8E F8 */ lfs f0, lbl_806414F8-_SDA2_BASE_(r2) /* 80155F00 00151B60 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 80155F04 00151B64 4C 41 13 82 */ cror 2, 1, 2 /* 80155F08 00151B68 40 82 00 10 */ bne lbl_80155F18 /* 80155F0C 00151B6C 38 00 00 03 */ li r0, 3 /* 80155F10 00151B70 98 1E 00 65 */ stb r0, 0x65(r30) /* 80155F14 00151B74 48 00 00 0C */ b lbl_80155F20 lbl_80155F18: /* 80155F18 00151B78 38 00 00 04 */ li r0, 4 /* 80155F1C 00151B7C 98 1E 00 65 */ stb r0, 0x65(r30) lbl_80155F20: /* 80155F20 00151B80 7E C3 B3 78 */ mr r3, r22 /* 80155F24 00151B84 7F C4 F3 78 */ mr r4, r30 /* 80155F28 00151B88 38 A0 00 00 */ li r5, 0 /* 80155F2C 00151B8C 48 00 05 B9 */ bl func_801564E4 /* 80155F30 00151B90 2C 03 00 00 */ cmpwi r3, 0 /* 80155F34 00151B94 41 82 00 1C */ beq lbl_80155F50 /* 80155F38 00151B98 7E C3 B3 78 */ mr r3, r22 /* 80155F3C 00151B9C 7F C4 F3 78 */ mr r4, r30 /* 80155F40 00151BA0 38 A0 00 01 */ li r5, 1 /* 80155F44 00151BA4 48 00 05 A1 */ bl func_801564E4 /* 80155F48 00151BA8 2C 03 00 00 */ cmpwi r3, 0 /* 80155F4C 00151BAC 40 82 00 18 */ bne lbl_80155F64 lbl_80155F50: /* 80155F50 00151BB0 7E C3 B3 78 */ mr r3, r22 /* 80155F54 00151BB4 7F C4 F3 78 */ mr r4, r30 /* 80155F58 00151BB8 48 00 15 CD */ bl func_80157524 /* 80155F5C 00151BBC 38 60 00 00 */ li r3, 0 /* 80155F60 00151BC0 48 00 05 5C */ b lbl_801564BC lbl_80155F64: /* 80155F64 00151BC4 80 7E 00 08 */ lwz r3, 8(r30) /* 80155F68 00151BC8 80 83 00 08 */ lwz r4, 8(r3) /* 80155F6C 00151BCC 2C 04 00 00 */ cmpwi r4, 0 /* 80155F70 00151BD0 40 82 00 0C */ bne lbl_80155F7C /* 80155F74 00151BD4 38 60 00 00 */ li r3, 0 /* 80155F78 00151BD8 48 00 00 1C */ b lbl_80155F94 lbl_80155F7C: /* 80155F7C 00151BDC A0 03 00 DE */ lhz r0, 0xde(r3) /* 80155F80 00151BE0 28 00 00 01 */ cmplwi r0, 1 /* 80155F84 00151BE4 41 81 00 0C */ bgt lbl_80155F90 /* 80155F88 00151BE8 38 60 00 00 */ li r3, 0 /* 80155F8C 00151BEC 48 00 00 08 */ b lbl_80155F94 lbl_80155F90: /* 80155F90 00151BF0 80 64 00 04 */ lwz r3, 4(r4) lbl_80155F94: /* 80155F94 00151BF4 80 9E 00 0C */ lwz r4, 0xc(r30) /* 80155F98 00151BF8 80 A4 00 08 */ lwz r5, 8(r4) /* 80155F9C 00151BFC 2C 05 00 00 */ cmpwi r5, 0 /* 80155FA0 00151C00 40 82 00 0C */ bne lbl_80155FAC /* 80155FA4 00151C04 38 A0 00 00 */ li r5, 0 /* 80155FA8 00151C08 48 00 00 1C */ b lbl_80155FC4 lbl_80155FAC: /* 80155FAC 00151C0C A0 04 00 DE */ lhz r0, 0xde(r4) /* 80155FB0 00151C10 2C 00 00 00 */ cmpwi r0, 0 /* 80155FB4 00151C14 40 82 00 0C */ bne lbl_80155FC0 /* 80155FB8 00151C18 38 A0 00 00 */ li r5, 0 /* 80155FBC 00151C1C 48 00 00 08 */ b lbl_80155FC4 lbl_80155FC0: /* 80155FC0 00151C20 80 A5 00 00 */ lwz r5, 0(r5) lbl_80155FC4: /* 80155FC4 00151C24 38 80 00 07 */ li r4, 7 /* 80155FC8 00151C28 38 C0 00 00 */ li r6, 0 /* 80155FCC 00151C2C 38 E0 00 03 */ li r7, 3 /* 80155FD0 00151C30 48 09 C1 BD */ bl func_801F218C /* 80155FD4 00151C34 80 7E 00 08 */ lwz r3, 8(r30) /* 80155FD8 00151C38 C0 42 8E E8 */ lfs f2, lbl_806414E8-_SDA2_BASE_(r2) /* 80155FDC 00151C3C 80 63 00 08 */ lwz r3, 8(r3) /* 80155FE0 00151C40 D3 C1 00 30 */ stfs f30, 0x30(r1) /* 80155FE4 00151C44 2C 03 00 00 */ cmpwi r3, 0 /* 80155FE8 00151C48 D3 E1 00 34 */ stfs f31, 0x34(r1) /* 80155FEC 00151C4C D0 41 00 38 */ stfs f2, 0x38(r1) /* 80155FF0 00151C50 41 82 00 2C */ beq lbl_8015601C /* 80155FF4 00151C54 80 63 00 00 */ lwz r3, 0(r3) /* 80155FF8 00151C58 2C 03 00 00 */ cmpwi r3, 0 /* 80155FFC 00151C5C 41 82 00 20 */ beq lbl_8015601C /* 80156000 00151C60 FC 20 F0 18 */ frsp f1, f30 /* 80156004 00151C64 38 80 00 01 */ li r4, 1 /* 80156008 00151C68 FC 00 F8 18 */ frsp f0, f31 /* 8015600C 00151C6C D0 23 00 20 */ stfs f1, 0x20(r3) /* 80156010 00151C70 D0 03 00 24 */ stfs f0, 0x24(r3) /* 80156014 00151C74 D0 43 00 28 */ stfs f2, 0x28(r3) /* 80156018 00151C78 48 09 C6 A1 */ bl func_801F26B8 lbl_8015601C: /* 8015601C 00151C7C 80 7E 00 08 */ lwz r3, 8(r30) /* 80156020 00151C80 C0 77 00 08 */ lfs f3, 8(r23) /* 80156024 00151C84 80 63 00 08 */ lwz r3, 8(r3) /* 80156028 00151C88 C0 57 00 04 */ lfs f2, 4(r23) /* 8015602C 00151C8C C0 37 00 00 */ lfs f1, 0(r23) /* 80156030 00151C90 2C 03 00 00 */ cmpwi r3, 0 /* 80156034 00151C94 C0 02 8E FC */ lfs f0, lbl_806414FC-_SDA2_BASE_(r2) /* 80156038 00151C98 D0 21 00 20 */ stfs f1, 0x20(r1) /* 8015603C 00151C9C D0 41 00 24 */ stfs f2, 0x24(r1) /* 80156040 00151CA0 D0 61 00 28 */ stfs f3, 0x28(r1) /* 80156044 00151CA4 D0 01 00 2C */ stfs f0, 0x2c(r1) /* 80156048 00151CA8 41 82 00 34 */ beq lbl_8015607C /* 8015604C 00151CAC 80 63 00 00 */ lwz r3, 0(r3) /* 80156050 00151CB0 2C 03 00 00 */ cmpwi r3, 0 /* 80156054 00151CB4 41 82 00 28 */ beq lbl_8015607C /* 80156058 00151CB8 D0 23 00 2C */ stfs f1, 0x2c(r3) /* 8015605C 00151CBC 38 80 00 01 */ li r4, 1 /* 80156060 00151CC0 D0 43 00 30 */ stfs f2, 0x30(r3) /* 80156064 00151CC4 D0 63 00 34 */ stfs f3, 0x34(r3) /* 80156068 00151CC8 D0 03 00 38 */ stfs f0, 0x38(r3) /* 8015606C 00151CCC A0 03 00 10 */ lhz r0, 0x10(r3) /* 80156070 00151CD0 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c /* 80156074 00151CD4 B0 03 00 10 */ sth r0, 0x10(r3) /* 80156078 00151CD8 48 09 C6 41 */ bl func_801F26B8 lbl_8015607C: /* 8015607C 00151CDC 80 7E 00 08 */ lwz r3, 8(r30) /* 80156080 00151CE0 80 63 00 08 */ lwz r3, 8(r3) /* 80156084 00151CE4 2C 03 00 00 */ cmpwi r3, 0 /* 80156088 00151CE8 41 82 00 CC */ beq lbl_80156154 /* 8015608C 00151CEC 80 63 00 00 */ lwz r3, 0(r3) /* 80156090 00151CF0 2C 03 00 00 */ cmpwi r3, 0 /* 80156094 00151CF4 41 82 00 C0 */ beq lbl_80156154 /* 80156098 00151CF8 C0 1D 00 00 */ lfs f0, 0(r29) /* 8015609C 00151CFC C0 42 8F 00 */ lfs f2, lbl_80641500-_SDA2_BASE_(r2) /* 801560A0 00151D00 D0 03 00 48 */ stfs f0, 0x48(r3) /* 801560A4 00151D04 C0 3D 00 04 */ lfs f1, 4(r29) /* 801560A8 00151D08 FC 00 10 40 */ fcmpo cr0, f0, f2 /* 801560AC 00151D0C C0 1D 00 08 */ lfs f0, 8(r29) /* 801560B0 00151D10 D0 23 00 4C */ stfs f1, 0x4c(r3) /* 801560B4 00151D14 D0 03 00 50 */ stfs f0, 0x50(r3) /* 801560B8 00151D18 40 80 00 2C */ bge lbl_801560E4 /* 801560BC 00151D1C C0 23 00 48 */ lfs f1, 0x48(r3) /* 801560C0 00151D20 C0 62 8F 04 */ lfs f3, lbl_80641504-_SDA2_BASE_(r2) /* 801560C4 00151D24 FC 01 18 40 */ fcmpo cr0, f1, f3 /* 801560C8 00151D28 40 81 00 1C */ ble lbl_801560E4 /* 801560CC 00151D2C C0 02 8E E8 */ lfs f0, lbl_806414E8-_SDA2_BASE_(r2) /* 801560D0 00151D30 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801560D4 00151D34 40 80 00 08 */ bge lbl_801560DC /* 801560D8 00151D38 48 00 00 08 */ b lbl_801560E0 lbl_801560DC: /* 801560DC 00151D3C FC 60 10 90 */ fmr f3, f2 lbl_801560E0: /* 801560E0 00151D40 D0 63 00 48 */ stfs f3, 0x48(r3) lbl_801560E4: /* 801560E4 00151D44 C0 43 00 4C */ lfs f2, 0x4c(r3) /* 801560E8 00151D48 C0 22 8F 00 */ lfs f1, lbl_80641500-_SDA2_BASE_(r2) /* 801560EC 00151D4C FC 02 08 40 */ fcmpo cr0, f2, f1 /* 801560F0 00151D50 40 80 00 28 */ bge lbl_80156118 /* 801560F4 00151D54 C0 62 8F 04 */ lfs f3, lbl_80641504-_SDA2_BASE_(r2) /* 801560F8 00151D58 FC 02 18 40 */ fcmpo cr0, f2, f3 /* 801560FC 00151D5C 40 81 00 1C */ ble lbl_80156118 /* 80156100 00151D60 C0 02 8E E8 */ lfs f0, lbl_806414E8-_SDA2_BASE_(r2) /* 80156104 00151D64 FC 02 00 40 */ fcmpo cr0, f2, f0 /* 80156108 00151D68 40 80 00 08 */ bge lbl_80156110 /* 8015610C 00151D6C 48 00 00 08 */ b lbl_80156114 lbl_80156110: /* 80156110 00151D70 FC 60 08 90 */ fmr f3, f1 lbl_80156114: /* 80156114 00151D74 D0 63 00 4C */ stfs f3, 0x4c(r3) lbl_80156118: /* 80156118 00151D78 C0 43 00 50 */ lfs f2, 0x50(r3) /* 8015611C 00151D7C C0 22 8F 00 */ lfs f1, lbl_80641500-_SDA2_BASE_(r2) /* 80156120 00151D80 FC 02 08 40 */ fcmpo cr0, f2, f1 /* 80156124 00151D84 40 80 00 28 */ bge lbl_8015614C /* 80156128 00151D88 C0 62 8F 04 */ lfs f3, lbl_80641504-_SDA2_BASE_(r2) /* 8015612C 00151D8C FC 02 18 40 */ fcmpo cr0, f2, f3 /* 80156130 00151D90 40 81 00 1C */ ble lbl_8015614C /* 80156134 00151D94 C0 02 8E E8 */ lfs f0, lbl_806414E8-_SDA2_BASE_(r2) /* 80156138 00151D98 FC 02 00 40 */ fcmpo cr0, f2, f0 /* 8015613C 00151D9C 40 80 00 08 */ bge lbl_80156144 /* 80156140 00151DA0 48 00 00 08 */ b lbl_80156148 lbl_80156144: /* 80156144 00151DA4 FC 60 08 90 */ fmr f3, f1 lbl_80156148: /* 80156148 00151DA8 D0 63 00 50 */ stfs f3, 0x50(r3) lbl_8015614C: /* 8015614C 00151DAC 38 80 00 01 */ li r4, 1 /* 80156150 00151DB0 48 09 C5 69 */ bl func_801F26B8 lbl_80156154: /* 80156154 00151DB4 80 7E 00 08 */ lwz r3, 8(r30) /* 80156158 00151DB8 38 80 00 00 */ li r4, 0 /* 8015615C 00151DBC C0 22 8E E8 */ lfs f1, lbl_806414E8-_SDA2_BASE_(r2) /* 80156160 00151DC0 38 A0 00 00 */ li r5, 0 /* 80156164 00151DC4 C0 42 8E FC */ lfs f2, lbl_806414FC-_SDA2_BASE_(r2) /* 80156168 00151DC8 38 C0 00 00 */ li r6, 0 /* 8015616C 00151DCC 38 E0 00 00 */ li r7, 0 /* 80156170 00151DD0 39 00 00 00 */ li r8, 0 /* 80156174 00151DD4 48 09 EC 81 */ bl func_801F4DF4 /* 80156178 00151DD8 7E C3 B3 78 */ mr r3, r22 /* 8015617C 00151DDC 7F C4 F3 78 */ mr r4, r30 /* 80156180 00151DE0 38 A0 00 01 */ li r5, 1 /* 80156184 00151DE4 48 00 14 FD */ bl func_80157680 /* 80156188 00151DE8 93 41 00 44 */ stw r26, 0x44(r1) /* 8015618C 00151DEC 7C 19 D0 40 */ cmplw r25, r26 /* 80156190 00151DF0 C8 42 8F 10 */ lfd f2, lbl_80641510-_SDA2_BASE_(r2) /* 80156194 00151DF4 C8 01 00 40 */ lfd f0, 0x40(r1) /* 80156198 00151DF8 EC 00 10 28 */ fsubs f0, f0, f2 /* 8015619C 00151DFC EC 01 00 24 */ fdivs f0, f1, f0 /* 801561A0 00151E00 D0 1E 00 5C */ stfs f0, 0x5c(r30) /* 801561A4 00151E04 40 81 00 08 */ ble lbl_801561AC /* 801561A8 00151E08 7F 59 D3 78 */ mr r25, r26 lbl_801561AC: /* 801561AC 00151E0C 7C 19 D0 50 */ subf r0, r25, r26 /* 801561B0 00151E10 C8 42 8F 10 */ lfd f2, lbl_80641510-_SDA2_BASE_(r2) /* 801561B4 00151E14 90 01 00 4C */ stw r0, 0x4c(r1) /* 801561B8 00151E18 38 80 00 00 */ li r4, 0 /* 801561BC 00151E1C C0 1E 00 5C */ lfs f0, 0x5c(r30) /* 801561C0 00151E20 38 A0 00 00 */ li r5, 0 /* 801561C4 00151E24 C8 21 00 48 */ lfd f1, 0x48(r1) /* 801561C8 00151E28 38 C0 00 00 */ li r6, 0 /* 801561CC 00151E2C 80 7E 00 0C */ lwz r3, 0xc(r30) /* 801561D0 00151E30 38 E0 00 00 */ li r7, 0 /* 801561D4 00151E34 EC 21 10 28 */ fsubs f1, f1, f2 /* 801561D8 00151E38 C0 42 8E E8 */ lfs f2, lbl_806414E8-_SDA2_BASE_(r2) /* 801561DC 00151E3C 39 00 00 00 */ li r8, 0 /* 801561E0 00151E40 EC 20 00 72 */ fmuls f1, f0, f1 /* 801561E4 00151E44 48 09 EC 11 */ bl func_801F4DF4 /* 801561E8 00151E48 38 00 00 80 */ li r0, 0x80 /* 801561EC 00151E4C 3A E0 00 00 */ li r23, 0 /* 801561F0 00151E50 98 01 00 0C */ stb r0, 0xc(r1) /* 801561F4 00151E54 38 81 00 0C */ addi r4, r1, 0xc /* 801561F8 00151E58 98 01 00 0D */ stb r0, 0xd(r1) /* 801561FC 00151E5C 98 01 00 0E */ stb r0, 0xe(r1) /* 80156200 00151E60 9A E1 00 0F */ stb r23, 0xf(r1) /* 80156204 00151E64 80 7E 00 0C */ lwz r3, 0xc(r30) /* 80156208 00151E68 48 09 FF 8D */ bl func_801F6194 /* 8015620C 00151E6C 92 FE 00 60 */ stw r23, 0x60(r30) /* 80156210 00151E70 38 00 00 FF */ li r0, 0xff /* 80156214 00151E74 7E C3 B3 78 */ mr r3, r22 /* 80156218 00151E78 7F C4 F3 78 */ mr r4, r30 /* 8015621C 00151E7C 9B 9E 00 66 */ stb r28, 0x66(r30) /* 80156220 00151E80 7F 65 DB 78 */ mr r5, r27 /* 80156224 00151E84 38 C1 00 08 */ addi r6, r1, 8 /* 80156228 00151E88 38 E0 00 01 */ li r7, 1 /* 8015622C 00151E8C 98 01 00 08 */ stb r0, 8(r1) /* 80156230 00151E90 98 01 00 09 */ stb r0, 9(r1) /* 80156234 00151E94 98 01 00 0A */ stb r0, 0xa(r1) /* 80156238 00151E98 98 01 00 0B */ stb r0, 0xb(r1) /* 8015623C 00151E9C 48 00 03 A9 */ bl func_801565E4 /* 80156240 00151EA0 93 01 00 44 */ stw r24, 0x44(r1) /* 80156244 00151EA4 7C 19 C0 40 */ cmplw r25, r24 /* 80156248 00151EA8 C8 42 8F 10 */ lfd f2, lbl_80641510-_SDA2_BASE_(r2) /* 8015624C 00151EAC C8 01 00 40 */ lfd f0, 0x40(r1) /* 80156250 00151EB0 EC 00 10 28 */ fsubs f0, f0, f2 /* 80156254 00151EB4 D0 1E 00 4C */ stfs f0, 0x4c(r30) /* 80156258 00151EB8 41 80 00 34 */ blt lbl_8015628C /* 8015625C 00151EBC 7C 78 C8 50 */ subf r3, r24, r25 /* 80156260 00151EC0 88 1E 00 65 */ lbz r0, 0x65(r30) /* 80156264 00151EC4 90 61 00 4C */ stw r3, 0x4c(r1) /* 80156268 00151EC8 3C 60 80 42 */ lis r3, lbl_8041E818@ha /* 8015626C 00151ECC 54 00 10 3A */ slwi r0, r0, 2 /* 80156270 00151ED0 C8 21 00 48 */ lfd f1, 0x48(r1) /* 80156274 00151ED4 38 63 E8 18 */ addi r3, r3, lbl_8041E818@l /* 80156278 00151ED8 7C 03 04 2E */ lfsx f0, r3, r0 /* 8015627C 00151EDC EC 21 10 28 */ fsubs f1, f1, f2 /* 80156280 00151EE0 EC 01 00 24 */ fdivs f0, f1, f0 /* 80156284 00151EE4 D0 1E 00 50 */ stfs f0, 0x50(r30) /* 80156288 00151EE8 48 00 00 34 */ b lbl_801562BC lbl_8015628C: /* 8015628C 00151EEC 7C 79 C0 50 */ subf r3, r25, r24 /* 80156290 00151EF0 88 1E 00 65 */ lbz r0, 0x65(r30) /* 80156294 00151EF4 90 61 00 44 */ stw r3, 0x44(r1) /* 80156298 00151EF8 3C 60 80 42 */ lis r3, lbl_8041E818@ha /* 8015629C 00151EFC 54 00 10 3A */ slwi r0, r0, 2 /* 801562A0 00151F00 C8 21 00 40 */ lfd f1, 0x40(r1) /* 801562A4 00151F04 38 63 E8 18 */ addi r3, r3, lbl_8041E818@l /* 801562A8 00151F08 7C 03 04 2E */ lfsx f0, r3, r0 /* 801562AC 00151F0C EC 21 10 28 */ fsubs f1, f1, f2 /* 801562B0 00151F10 EC 01 00 24 */ fdivs f0, f1, f0 /* 801562B4 00151F14 FC 00 00 50 */ fneg f0, f0 /* 801562B8 00151F18 D0 1E 00 50 */ stfs f0, 0x50(r30) lbl_801562BC: /* 801562BC 00151F1C 93 21 00 4C */ stw r25, 0x4c(r1) /* 801562C0 00151F20 38 00 00 01 */ li r0, 1 /* 801562C4 00151F24 C8 42 8F 10 */ lfd f2, lbl_80641510-_SDA2_BASE_(r2) /* 801562C8 00151F28 38 60 00 00 */ li r3, 0 /* 801562CC 00151F2C 93 41 00 44 */ stw r26, 0x44(r1) /* 801562D0 00151F30 7C 00 F8 30 */ slw r0, r0, r31 /* 801562D4 00151F34 C8 21 00 48 */ lfd f1, 0x48(r1) /* 801562D8 00151F38 C8 01 00 40 */ lfd f0, 0x40(r1) /* 801562DC 00151F3C EC 21 10 28 */ fsubs f1, f1, f2 /* 801562E0 00151F40 EC 00 10 28 */ fsubs f0, f0, f2 /* 801562E4 00151F44 D0 3E 00 54 */ stfs f1, 0x54(r30) /* 801562E8 00151F48 D0 1E 00 58 */ stfs f0, 0x58(r30) /* 801562EC 00151F4C 98 7E 00 64 */ stb r3, 0x64(r30) /* 801562F0 00151F50 9B FE 00 71 */ stb r31, 0x71(r30) /* 801562F4 00151F54 88 7E 00 66 */ lbz r3, 0x66(r30) /* 801562F8 00151F58 7C 96 1A 14 */ add r4, r22, r3 /* 801562FC 00151F5C 88 64 01 E4 */ lbz r3, 0x1e4(r4) /* 80156300 00151F60 7C 60 00 78 */ andc r0, r3, r0 /* 80156304 00151F64 98 04 01 E4 */ stb r0, 0x1e4(r4) /* 80156308 00151F68 80 7E 00 0C */ lwz r3, 0xc(r30) /* 8015630C 00151F6C 80 83 00 08 */ lwz r4, 8(r3) /* 80156310 00151F70 2C 04 00 00 */ cmpwi r4, 0 /* 80156314 00151F74 40 82 00 0C */ bne lbl_80156320 /* 80156318 00151F78 3A C0 00 00 */ li r22, 0 /* 8015631C 00151F7C 48 00 00 1C */ b lbl_80156338 lbl_80156320: /* 80156320 00151F80 A0 03 00 DE */ lhz r0, 0xde(r3) /* 80156324 00151F84 28 00 00 04 */ cmplwi r0, 4 /* 80156328 00151F88 41 81 00 0C */ bgt lbl_80156334 /* 8015632C 00151F8C 3A C0 00 00 */ li r22, 0 /* 80156330 00151F90 48 00 00 08 */ b lbl_80156338 lbl_80156334: /* 80156334 00151F94 82 C4 00 10 */ lwz r22, 0x10(r4) lbl_80156338: /* 80156338 00151F98 48 08 47 F1 */ bl func_801DAB28 /* 8015633C 00151F9C 2C 03 00 00 */ cmpwi r3, 0 /* 80156340 00151FA0 41 82 00 18 */ beq lbl_80156358 /* 80156344 00151FA4 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13) /* 80156348 00151FA8 38 80 01 40 */ li r4, 0x140 /* 8015634C 00151FAC 48 08 49 49 */ bl func_801DAC94 /* 80156350 00151FB0 7C 77 1B 78 */ mr r23, r3 /* 80156354 00151FB4 48 00 00 08 */ b lbl_8015635C lbl_80156358: /* 80156358 00151FB8 3A E0 00 00 */ li r23, 0 lbl_8015635C: /* 8015635C 00151FBC 2C 17 00 00 */ cmpwi r23, 0 /* 80156360 00151FC0 41 82 00 2C */ beq lbl_8015638C /* 80156364 00151FC4 3C 80 80 42 */ lis r4, lbl_8041E830@ha /* 80156368 00151FC8 57 80 10 3A */ slwi r0, r28, 2 /* 8015636C 00151FCC 38 84 E8 30 */ addi r4, r4, lbl_8041E830@l /* 80156370 00151FD0 38 60 03 EA */ li r3, 0x3ea /* 80156374 00151FD4 7C 84 00 2E */ lwzx r4, r4, r0 /* 80156378 00151FD8 48 08 51 45 */ bl func_801DB4BC /* 8015637C 00151FDC 7C 64 1B 78 */ mr r4, r3 /* 80156380 00151FE0 7E E3 BB 78 */ mr r3, r23 /* 80156384 00151FE4 48 0A 35 69 */ bl func_801F98EC /* 80156388 00151FE8 7C 77 1B 78 */ mr r23, r3 lbl_8015638C: /* 8015638C 00151FEC 2C 17 00 00 */ cmpwi r23, 0 /* 80156390 00151FF0 92 FE 00 10 */ stw r23, 0x10(r30) /* 80156394 00151FF4 41 82 01 18 */ beq lbl_801564AC /* 80156398 00151FF8 7E C3 B3 78 */ mr r3, r22 /* 8015639C 00151FFC 7E E5 BB 78 */ mr r5, r23 /* 801563A0 00152000 38 80 00 01 */ li r4, 1 /* 801563A4 00152004 38 C0 00 00 */ li r6, 0 /* 801563A8 00152008 38 E0 00 03 */ li r7, 3 /* 801563AC 0015200C 48 09 BD E1 */ bl func_801F218C /* 801563B0 00152010 C0 02 8F 08 */ lfs f0, lbl_80641508-_SDA2_BASE_(r2) /* 801563B4 00152014 80 7E 00 10 */ lwz r3, 0x10(r30) /* 801563B8 00152018 C0 42 8F 00 */ lfs f2, lbl_80641500-_SDA2_BASE_(r2) /* 801563BC 0015201C D0 03 00 48 */ stfs f0, 0x48(r3) /* 801563C0 00152020 FC 00 10 40 */ fcmpo cr0, f0, f2 /* 801563C4 00152024 D0 03 00 4C */ stfs f0, 0x4c(r3) /* 801563C8 00152028 D0 01 00 10 */ stfs f0, 0x10(r1) /* 801563CC 0015202C D0 01 00 14 */ stfs f0, 0x14(r1) /* 801563D0 00152030 D0 01 00 18 */ stfs f0, 0x18(r1) /* 801563D4 00152034 D0 03 00 50 */ stfs f0, 0x50(r3) /* 801563D8 00152038 40 80 00 2C */ bge lbl_80156404 /* 801563DC 0015203C C0 23 00 48 */ lfs f1, 0x48(r3) /* 801563E0 00152040 C0 62 8F 04 */ lfs f3, lbl_80641504-_SDA2_BASE_(r2) /* 801563E4 00152044 FC 01 18 40 */ fcmpo cr0, f1, f3 /* 801563E8 00152048 40 81 00 1C */ ble lbl_80156404 /* 801563EC 0015204C C0 02 8E E8 */ lfs f0, lbl_806414E8-_SDA2_BASE_(r2) /* 801563F0 00152050 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801563F4 00152054 40 80 00 08 */ bge lbl_801563FC /* 801563F8 00152058 48 00 00 08 */ b lbl_80156400 lbl_801563FC: /* 801563FC 0015205C FC 60 10 90 */ fmr f3, f2 lbl_80156400: /* 80156400 00152060 D0 63 00 48 */ stfs f3, 0x48(r3) lbl_80156404: /* 80156404 00152064 C0 43 00 4C */ lfs f2, 0x4c(r3) /* 80156408 00152068 C0 22 8F 00 */ lfs f1, lbl_80641500-_SDA2_BASE_(r2) /* 8015640C 0015206C FC 02 08 40 */ fcmpo cr0, f2, f1 /* 80156410 00152070 40 80 00 28 */ bge lbl_80156438 /* 80156414 00152074 C0 62 8F 04 */ lfs f3, lbl_80641504-_SDA2_BASE_(r2) /* 80156418 00152078 FC 02 18 40 */ fcmpo cr0, f2, f3 /* 8015641C 0015207C 40 81 00 1C */ ble lbl_80156438 /* 80156420 00152080 C0 02 8E E8 */ lfs f0, lbl_806414E8-_SDA2_BASE_(r2) /* 80156424 00152084 FC 02 00 40 */ fcmpo cr0, f2, f0 /* 80156428 00152088 40 80 00 08 */ bge lbl_80156430 /* 8015642C 0015208C 48 00 00 08 */ b lbl_80156434 lbl_80156430: /* 80156430 00152090 FC 60 08 90 */ fmr f3, f1 lbl_80156434: /* 80156434 00152094 D0 63 00 4C */ stfs f3, 0x4c(r3) lbl_80156438: /* 80156438 00152098 C0 43 00 50 */ lfs f2, 0x50(r3) /* 8015643C 0015209C C0 22 8F 00 */ lfs f1, lbl_80641500-_SDA2_BASE_(r2) /* 80156440 001520A0 FC 02 08 40 */ fcmpo cr0, f2, f1 /* 80156444 001520A4 40 80 00 28 */ bge lbl_8015646C /* 80156448 001520A8 C0 62 8F 04 */ lfs f3, lbl_80641504-_SDA2_BASE_(r2) /* 8015644C 001520AC FC 02 18 40 */ fcmpo cr0, f2, f3 /* 80156450 001520B0 40 81 00 1C */ ble lbl_8015646C /* 80156454 001520B4 C0 02 8E E8 */ lfs f0, lbl_806414E8-_SDA2_BASE_(r2) /* 80156458 001520B8 FC 02 00 40 */ fcmpo cr0, f2, f0 /* 8015645C 001520BC 40 80 00 08 */ bge lbl_80156464 /* 80156460 001520C0 48 00 00 08 */ b lbl_80156468 lbl_80156464: /* 80156464 001520C4 FC 60 08 90 */ fmr f3, f1 lbl_80156468: /* 80156468 001520C8 D0 63 00 50 */ stfs f3, 0x50(r3) lbl_8015646C: /* 8015646C 001520CC 38 80 00 01 */ li r4, 1 /* 80156470 001520D0 48 09 C2 49 */ bl func_801F26B8 /* 80156474 001520D4 80 7E 00 10 */ lwz r3, 0x10(r30) /* 80156478 001520D8 80 63 01 38 */ lwz r3, 0x138(r3) /* 8015647C 001520DC 2C 03 00 00 */ cmpwi r3, 0 /* 80156480 001520E0 41 82 00 10 */ beq lbl_80156490 /* 80156484 001520E4 A0 03 01 48 */ lhz r0, 0x148(r3) /* 80156488 001520E8 60 00 00 10 */ ori r0, r0, 0x10 /* 8015648C 001520EC B0 03 01 48 */ sth r0, 0x148(r3) lbl_80156490: /* 80156490 001520F0 80 7E 00 10 */ lwz r3, 0x10(r30) /* 80156494 001520F4 80 63 01 38 */ lwz r3, 0x138(r3) /* 80156498 001520F8 2C 03 00 00 */ cmpwi r3, 0 /* 8015649C 001520FC 41 82 00 10 */ beq lbl_801564AC /* 801564A0 00152100 A0 03 01 48 */ lhz r0, 0x148(r3) /* 801564A4 00152104 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b /* 801564A8 00152108 B0 03 01 48 */ sth r0, 0x148(r3) lbl_801564AC: /* 801564AC 0015210C 93 7E 00 68 */ stw r27, 0x68(r30) /* 801564B0 00152110 38 00 00 01 */ li r0, 1 /* 801564B4 00152114 38 7F 00 01 */ addi r3, r31, 1 /* 801564B8 00152118 98 1E 00 67 */ stb r0, 0x67(r30) lbl_801564BC: /* 801564BC 0015211C E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0 /* 801564C0 00152120 CB E1 00 90 */ lfd f31, 0x90(r1) /* 801564C4 00152124 E3 C1 00 88 */ psq_l f30, 136(r1), 0, qr0 /* 801564C8 00152128 39 61 00 80 */ addi r11, r1, 0x80 /* 801564CC 0015212C CB C1 00 80 */ lfd f30, 0x80(r1) /* 801564D0 00152130 48 07 0C 91 */ bl _restgpr_22 /* 801564D4 00152134 80 01 00 A4 */ lwz r0, 0xa4(r1) /* 801564D8 00152138 7C 08 03 A6 */ mtlr r0 /* 801564DC 0015213C 38 21 00 A0 */ addi r1, r1, 0xa0 /* 801564E0 00152140 4E 80 00 20 */ blr .global func_801564E4 func_801564E4: /* 801564E4 00152144 94 21 FF E0 */ stwu r1, -0x20(r1) /* 801564E8 00152148 7C 08 02 A6 */ mflr r0 /* 801564EC 0015214C 90 01 00 24 */ stw r0, 0x24(r1) /* 801564F0 00152150 93 E1 00 1C */ stw r31, 0x1c(r1) /* 801564F4 00152154 54 BF 10 3A */ slwi r31, r5, 2 /* 801564F8 00152158 93 C1 00 18 */ stw r30, 0x18(r1) /* 801564FC 0015215C 93 A1 00 14 */ stw r29, 0x14(r1) /* 80156500 00152160 7C 9D 23 78 */ mr r29, r4 /* 80156504 00152164 7F C3 F8 2E */ lwzx r30, r3, r31 /* 80156508 00152168 2C 1E 00 00 */ cmpwi r30, 0 /* 8015650C 0015216C 40 82 00 0C */ bne lbl_80156518 /* 80156510 00152170 38 60 00 00 */ li r3, 0 /* 80156514 00152174 48 00 00 B4 */ b lbl_801565C8 lbl_80156518: /* 80156518 00152178 48 08 46 11 */ bl func_801DAB28 /* 8015651C 0015217C 2C 03 00 00 */ cmpwi r3, 0 /* 80156520 00152180 41 82 00 14 */ beq lbl_80156534 /* 80156524 00152184 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13) /* 80156528 00152188 38 80 00 14 */ li r4, 0x14 /* 8015652C 0015218C 48 08 47 69 */ bl func_801DAC94 /* 80156530 00152190 48 00 00 08 */ b lbl_80156538 lbl_80156534: /* 80156534 00152194 38 60 00 00 */ li r3, 0 lbl_80156538: /* 80156538 00152198 2C 03 00 00 */ cmpwi r3, 0 /* 8015653C 0015219C 41 82 00 0C */ beq lbl_80156548 /* 80156540 001521A0 7F C4 F3 78 */ mr r4, r30 /* 80156544 001521A4 48 0A 3B 51 */ bl func_801FA094 lbl_80156548: /* 80156548 001521A8 2C 03 00 00 */ cmpwi r3, 0 /* 8015654C 001521AC 7C 7D F9 2E */ stwx r3, r29, r31 /* 80156550 001521B0 40 82 00 0C */ bne lbl_8015655C /* 80156554 001521B4 38 60 00 00 */ li r3, 0 /* 80156558 001521B8 48 00 00 70 */ b lbl_801565C8 lbl_8015655C: /* 8015655C 001521BC 80 83 00 00 */ lwz r4, 0(r3) /* 80156560 001521C0 A0 04 00 18 */ lhz r0, 0x18(r4) /* 80156564 001521C4 2C 80 00 00 */ cmpwi cr1, r0, 0 /* 80156568 001521C8 40 86 00 0C */ bne cr1, lbl_80156574 /* 8015656C 001521CC 38 60 00 00 */ li r3, 0 /* 80156570 001521D0 48 00 00 58 */ b lbl_801565C8 lbl_80156574: /* 80156574 001521D4 80 63 00 04 */ lwz r3, 4(r3) /* 80156578 001521D8 2C 03 00 00 */ cmpwi r3, 0 /* 8015657C 001521DC 40 82 00 0C */ bne lbl_80156588 /* 80156580 001521E0 38 60 00 00 */ li r3, 0 /* 80156584 001521E4 48 00 00 14 */ b lbl_80156598 lbl_80156588: /* 80156588 001521E8 40 86 00 0C */ bne cr1, lbl_80156594 /* 8015658C 001521EC 38 60 00 00 */ li r3, 0 /* 80156590 001521F0 48 00 00 08 */ b lbl_80156598 lbl_80156594: /* 80156594 001521F4 80 63 00 00 */ lwz r3, 0(r3) lbl_80156598: /* 80156598 001521F8 7F FD FA 14 */ add r31, r29, r31 /* 8015659C 001521FC 2C 03 00 00 */ cmpwi r3, 0 /* 801565A0 00152200 90 7F 00 08 */ stw r3, 8(r31) /* 801565A4 00152204 40 82 00 0C */ bne lbl_801565B0 /* 801565A8 00152208 38 60 00 00 */ li r3, 0 /* 801565AC 0015220C 48 00 00 1C */ b lbl_801565C8 lbl_801565B0: /* 801565B0 00152210 48 09 F3 FD */ bl func_801F59AC /* 801565B4 00152214 80 7F 00 08 */ lwz r3, 8(r31) /* 801565B8 00152218 48 0A D2 59 */ bl func_80203810 /* 801565BC 0015221C 80 7F 00 08 */ lwz r3, 8(r31) /* 801565C0 00152220 48 0A A2 99 */ bl func_80200858 /* 801565C4 00152224 38 60 00 01 */ li r3, 1 lbl_801565C8: /* 801565C8 00152228 80 01 00 24 */ lwz r0, 0x24(r1) /* 801565CC 0015222C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 801565D0 00152230 83 C1 00 18 */ lwz r30, 0x18(r1) /* 801565D4 00152234 83 A1 00 14 */ lwz r29, 0x14(r1) /* 801565D8 00152238 7C 08 03 A6 */ mtlr r0 /* 801565DC 0015223C 38 21 00 20 */ addi r1, r1, 0x20 /* 801565E0 00152240 4E 80 00 20 */ blr .global func_801565E4 func_801565E4: /* 801565E4 00152244 94 21 FF 80 */ stwu r1, -0x80(r1) /* 801565E8 00152248 7C 08 02 A6 */ mflr r0 /* 801565EC 0015224C 90 01 00 84 */ stw r0, 0x84(r1) /* 801565F0 00152250 DB E1 00 70 */ stfd f31, 0x70(r1) /* 801565F4 00152254 F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0 /* 801565F8 00152258 DB C1 00 60 */ stfd f30, 0x60(r1) /* 801565FC 0015225C F3 C1 00 68 */ psq_st f30, 104(r1), 0, qr0 /* 80156600 00152260 39 61 00 60 */ addi r11, r1, 0x60 /* 80156604 00152264 48 07 0B 1D */ bl _savegpr_25 /* 80156608 00152268 80 64 00 18 */ lwz r3, 0x18(r4) /* 8015660C 0015226C 7C 99 23 78 */ mr r25, r4 /* 80156610 00152270 7C BC 2B 78 */ mr r28, r5 /* 80156614 00152274 7C DA 33 78 */ mr r26, r6 /* 80156618 00152278 2C 03 00 00 */ cmpwi r3, 0 /* 8015661C 0015227C 7C FB 3B 78 */ mr r27, r7 /* 80156620 00152280 41 82 00 10 */ beq lbl_80156630 /* 80156624 00152284 48 0A D5 D9 */ bl func_80203BFC /* 80156628 00152288 38 00 00 00 */ li r0, 0 /* 8015662C 0015228C 90 19 00 18 */ stw r0, 0x18(r25) lbl_80156630: /* 80156630 00152290 80 79 00 14 */ lwz r3, 0x14(r25) /* 80156634 00152294 2C 03 00 00 */ cmpwi r3, 0 /* 80156638 00152298 41 82 00 10 */ beq lbl_80156648 /* 8015663C 0015229C 48 0A D5 C1 */ bl func_80203BFC /* 80156640 001522A0 38 00 00 00 */ li r0, 0 /* 80156644 001522A4 90 19 00 14 */ stw r0, 0x14(r25) lbl_80156648: /* 80156648 001522A8 80 79 00 08 */ lwz r3, 8(r25) /* 8015664C 001522AC 80 83 00 08 */ lwz r4, 8(r3) /* 80156650 001522B0 2C 04 00 00 */ cmpwi r4, 0 /* 80156654 001522B4 40 82 00 0C */ bne lbl_80156660 /* 80156658 001522B8 3B E0 00 00 */ li r31, 0 /* 8015665C 001522BC 48 00 00 1C */ b lbl_80156678 lbl_80156660: /* 80156660 001522C0 A0 03 00 DE */ lhz r0, 0xde(r3) /* 80156664 001522C4 28 00 00 02 */ cmplwi r0, 2 /* 80156668 001522C8 41 81 00 0C */ bgt lbl_80156674 /* 8015666C 001522CC 3B E0 00 00 */ li r31, 0 /* 80156670 001522D0 48 00 00 08 */ b lbl_80156678 lbl_80156674: /* 80156674 001522D4 83 E4 00 08 */ lwz r31, 8(r4) lbl_80156678: /* 80156678 001522D8 2C 1F 00 00 */ cmpwi r31, 0 /* 8015667C 001522DC 41 82 00 10 */ beq lbl_8015668C /* 80156680 001522E0 A0 1F 00 10 */ lhz r0, 0x10(r31) /* 80156684 001522E4 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d /* 80156688 001522E8 B0 1F 00 10 */ sth r0, 0x10(r31) lbl_8015668C: /* 8015668C 001522EC 80 79 00 08 */ lwz r3, 8(r25) /* 80156690 001522F0 80 83 00 08 */ lwz r4, 8(r3) /* 80156694 001522F4 2C 04 00 00 */ cmpwi r4, 0 /* 80156698 001522F8 40 82 00 0C */ bne lbl_801566A4 /* 8015669C 001522FC 3B C0 00 00 */ li r30, 0 /* 801566A0 00152300 48 00 00 1C */ b lbl_801566BC lbl_801566A4: /* 801566A4 00152304 A0 03 00 DE */ lhz r0, 0xde(r3) /* 801566A8 00152308 28 00 00 03 */ cmplwi r0, 3 /* 801566AC 0015230C 41 81 00 0C */ bgt lbl_801566B8 /* 801566B0 00152310 3B C0 00 00 */ li r30, 0 /* 801566B4 00152314 48 00 00 08 */ b lbl_801566BC lbl_801566B8: /* 801566B8 00152318 83 C4 00 0C */ lwz r30, 0xc(r4) lbl_801566BC: /* 801566BC 0015231C 2C 1E 00 00 */ cmpwi r30, 0 /* 801566C0 00152320 41 82 00 10 */ beq lbl_801566D0 /* 801566C4 00152324 A0 1E 00 10 */ lhz r0, 0x10(r30) /* 801566C8 00152328 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d /* 801566CC 0015232C B0 1E 00 10 */ sth r0, 0x10(r30) lbl_801566D0: /* 801566D0 00152330 38 00 00 FF */ li r0, 0xff /* 801566D4 00152334 98 19 00 6C */ stb r0, 0x6c(r25) /* 801566D8 00152338 98 19 00 6D */ stb r0, 0x6d(r25) /* 801566DC 0015233C 98 19 00 6E */ stb r0, 0x6e(r25) /* 801566E0 00152340 98 19 00 6F */ stb r0, 0x6f(r25) /* 801566E4 00152344 98 19 00 70 */ stb r0, 0x70(r25) /* 801566E8 00152348 4B ED F6 B5 */ bl func_80035D9C /* 801566EC 0015234C 7F 84 E3 78 */ mr r4, r28 /* 801566F0 00152350 4B EE 06 4D */ bl func_80036D3C /* 801566F4 00152354 2C 03 00 00 */ cmpwi r3, 0 /* 801566F8 00152358 7C 64 1B 78 */ mr r4, r3 /* 801566FC 0015235C 41 82 04 3C */ beq lbl_80156B38 /* 80156700 00152360 3C A0 00 01 */ lis r5, 0x0000FFFF@ha /* 80156704 00152364 38 79 00 24 */ addi r3, r25, 0x24 /* 80156708 00152368 38 E5 FF FF */ addi r7, r5, 0x0000FFFF@l /* 8015670C 0015236C 38 84 00 12 */ addi r4, r4, 0x12 /* 80156710 00152370 38 C5 F0 01 */ addi r6, r5, -4095 /* 80156714 00152374 38 05 F1 01 */ addi r0, r5, -3839 /* 80156718 00152378 B0 F9 00 1C */ sth r7, 0x1c(r25) /* 8015671C 0015237C 38 A0 00 20 */ li r5, 0x20 /* 80156720 00152380 B0 D9 00 1E */ sth r6, 0x1e(r25) /* 80156724 00152384 B0 F9 00 20 */ sth r7, 0x20(r25) /* 80156728 00152388 B0 19 00 22 */ sth r0, 0x22(r25) /* 8015672C 0015238C 4B EA D8 D5 */ bl memcpy /* 80156730 00152390 38 00 00 00 */ li r0, 0 /* 80156734 00152394 7F 45 D3 78 */ mr r5, r26 /* 80156738 00152398 B0 19 00 44 */ sth r0, 0x44(r25) /* 8015673C 0015239C 38 79 00 1C */ addi r3, r25, 0x1c /* 80156740 001523A0 38 80 00 07 */ li r4, 7 /* 80156744 001523A4 38 CD A3 DC */ addi r6, r13, lbl_8063F69C-_SDA_BASE_ /* 80156748 001523A8 B0 19 00 46 */ sth r0, 0x46(r25) /* 8015674C 001523AC B0 19 00 48 */ sth r0, 0x48(r25) /* 80156750 001523B0 B0 19 00 4A */ sth r0, 0x4a(r25) /* 80156754 001523B4 48 0A D3 15 */ bl func_80203A68 /* 80156758 001523B8 2C 03 00 00 */ cmpwi r3, 0 /* 8015675C 001523BC 7C 7D 1B 78 */ mr r29, r3 /* 80156760 001523C0 41 82 03 D8 */ beq lbl_80156B38 /* 80156764 001523C4 3B 80 00 00 */ li r28, 0 /* 80156768 001523C8 48 0E 7D D9 */ bl func_8023E540 /* 8015676C 001523CC B0 61 00 0A */ sth r3, 0xa(r1) /* 80156770 001523D0 E3 E1 B0 0A */ psq_l f31, 10(r1), 1, qr3 /* 80156774 001523D4 7F A3 EB 78 */ mr r3, r29 /* 80156778 001523D8 48 0E 7D D1 */ bl func_8023E548 /* 8015677C 001523DC B0 61 00 08 */ sth r3, 8(r1) /* 80156780 001523E0 E3 C1 B0 08 */ psq_l f30, 8(r1), 1, qr3 /* 80156784 001523E4 80 79 00 08 */ lwz r3, 8(r25) /* 80156788 001523E8 93 B9 00 14 */ stw r29, 0x14(r25) /* 8015678C 001523EC 80 83 00 08 */ lwz r4, 8(r3) /* 80156790 001523F0 2C 04 00 00 */ cmpwi r4, 0 /* 80156794 001523F4 40 82 00 0C */ bne lbl_801567A0 /* 80156798 001523F8 38 60 00 00 */ li r3, 0 /* 8015679C 001523FC 48 00 00 1C */ b lbl_801567B8 lbl_801567A0: /* 801567A0 00152400 A0 03 00 DE */ lhz r0, 0xde(r3) /* 801567A4 00152404 28 00 00 05 */ cmplwi r0, 5 /* 801567A8 00152408 41 81 00 0C */ bgt lbl_801567B4 /* 801567AC 0015240C 38 60 00 00 */ li r3, 0 /* 801567B0 00152410 48 00 00 08 */ b lbl_801567B8 lbl_801567B4: /* 801567B4 00152414 80 64 00 14 */ lwz r3, 0x14(r4) lbl_801567B8: /* 801567B8 00152418 2C 03 00 00 */ cmpwi r3, 0 /* 801567BC 0015241C 41 82 00 1C */ beq lbl_801567D8 /* 801567C0 00152420 88 03 00 12 */ lbz r0, 0x12(r3) /* 801567C4 00152424 2C 00 00 03 */ cmpwi r0, 3 /* 801567C8 00152428 40 82 00 08 */ bne lbl_801567D0 /* 801567CC 0015242C 48 00 00 10 */ b lbl_801567DC lbl_801567D0: /* 801567D0 00152430 38 60 00 00 */ li r3, 0 /* 801567D4 00152434 48 00 00 08 */ b lbl_801567DC lbl_801567D8: /* 801567D8 00152438 38 60 00 00 */ li r3, 0 lbl_801567DC: /* 801567DC 0015243C 2C 03 00 00 */ cmpwi r3, 0 /* 801567E0 00152440 41 82 00 58 */ beq lbl_80156838 /* 801567E4 00152444 2C 1F 00 00 */ cmpwi r31, 0 /* 801567E8 00152448 41 82 00 50 */ beq lbl_80156838 /* 801567EC 0015244C C0 23 01 14 */ lfs f1, 0x114(r3) /* 801567F0 00152450 C0 03 01 08 */ lfs f0, 0x108(r3) /* 801567F4 00152454 EC 01 00 28 */ fsubs f0, f1, f0 /* 801567F8 00152458 D0 01 00 38 */ stfs f0, 0x38(r1) /* 801567FC 0015245C EC 20 07 B2 */ fmuls f1, f0, f30 /* 80156800 00152460 C0 43 01 18 */ lfs f2, 0x118(r3) /* 80156804 00152464 C0 03 01 0C */ lfs f0, 0x10c(r3) /* 80156808 00152468 EC 42 00 28 */ fsubs f2, f2, f0 /* 8015680C 0015246C EC 02 07 F2 */ fmuls f0, f2, f31 /* 80156810 00152470 D0 41 00 3C */ stfs f2, 0x3c(r1) /* 80156814 00152474 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 80156818 00152478 4C 41 13 82 */ cror 2, 1, 2 /* 8015681C 0015247C 40 82 00 1C */ bne lbl_80156838 /* 80156820 00152480 EC 00 F0 24 */ fdivs f0, f0, f30 /* 80156824 00152484 7C 7C 1B 78 */ mr r28, r3 /* 80156828 00152488 D0 01 00 38 */ stfs f0, 0x38(r1) /* 8015682C 0015248C A0 1F 00 10 */ lhz r0, 0x10(r31) /* 80156830 00152490 60 00 00 02 */ ori r0, r0, 2 /* 80156834 00152494 B0 1F 00 10 */ sth r0, 0x10(r31) lbl_80156838: /* 80156838 00152498 2C 1C 00 00 */ cmpwi r28, 0 /* 8015683C 0015249C 40 82 00 C0 */ bne lbl_801568FC /* 80156840 001524A0 80 79 00 08 */ lwz r3, 8(r25) /* 80156844 001524A4 80 83 00 08 */ lwz r4, 8(r3) /* 80156848 001524A8 2C 04 00 00 */ cmpwi r4, 0 /* 8015684C 001524AC 40 82 00 0C */ bne lbl_80156858 /* 80156850 001524B0 38 60 00 00 */ li r3, 0 /* 80156854 001524B4 48 00 00 1C */ b lbl_80156870 lbl_80156858: /* 80156858 001524B8 A0 03 00 DE */ lhz r0, 0xde(r3) /* 8015685C 001524BC 28 00 00 06 */ cmplwi r0, 6 /* 80156860 001524C0 41 81 00 0C */ bgt lbl_8015686C /* 80156864 001524C4 38 60 00 00 */ li r3, 0 /* 80156868 001524C8 48 00 00 08 */ b lbl_80156870 lbl_8015686C: /* 8015686C 001524CC 80 64 00 18 */ lwz r3, 0x18(r4) lbl_80156870: /* 80156870 001524D0 2C 03 00 00 */ cmpwi r3, 0 /* 80156874 001524D4 41 82 00 1C */ beq lbl_80156890 /* 80156878 001524D8 88 03 00 12 */ lbz r0, 0x12(r3) /* 8015687C 001524DC 2C 00 00 03 */ cmpwi r0, 3 /* 80156880 001524E0 40 82 00 08 */ bne lbl_80156888 /* 80156884 001524E4 48 00 00 10 */ b lbl_80156894 lbl_80156888: /* 80156888 001524E8 38 60 00 00 */ li r3, 0 /* 8015688C 001524EC 48 00 00 08 */ b lbl_80156894 lbl_80156890: /* 80156890 001524F0 38 60 00 00 */ li r3, 0 lbl_80156894: /* 80156894 001524F4 2C 03 00 00 */ cmpwi r3, 0 /* 80156898 001524F8 41 82 00 64 */ beq lbl_801568FC /* 8015689C 001524FC 2C 1E 00 00 */ cmpwi r30, 0 /* 801568A0 00152500 41 82 00 5C */ beq lbl_801568FC /* 801568A4 00152504 C0 23 01 14 */ lfs f1, 0x114(r3) /* 801568A8 00152508 C0 03 01 08 */ lfs f0, 0x108(r3) /* 801568AC 0015250C EC 01 00 28 */ fsubs f0, f1, f0 /* 801568B0 00152510 D0 01 00 38 */ stfs f0, 0x38(r1) /* 801568B4 00152514 EC 20 07 B2 */ fmuls f1, f0, f30 /* 801568B8 00152518 C0 43 01 18 */ lfs f2, 0x118(r3) /* 801568BC 0015251C C0 03 01 0C */ lfs f0, 0x10c(r3) /* 801568C0 00152520 EC 42 00 28 */ fsubs f2, f2, f0 /* 801568C4 00152524 EC 02 07 F2 */ fmuls f0, f2, f31 /* 801568C8 00152528 D0 41 00 3C */ stfs f2, 0x3c(r1) /* 801568CC 0015252C FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801568D0 00152530 4C 41 13 82 */ cror 2, 1, 2 /* 801568D4 00152534 40 82 00 10 */ bne lbl_801568E4 /* 801568D8 00152538 EC 00 F0 24 */ fdivs f0, f0, f30 /* 801568DC 0015253C D0 01 00 38 */ stfs f0, 0x38(r1) /* 801568E0 00152540 48 00 00 0C */ b lbl_801568EC lbl_801568E4: /* 801568E4 00152544 EC 01 F8 24 */ fdivs f0, f1, f31 /* 801568E8 00152548 D0 01 00 3C */ stfs f0, 0x3c(r1) lbl_801568EC: /* 801568EC 0015254C A0 1E 00 10 */ lhz r0, 0x10(r30) /* 801568F0 00152550 7C 7C 1B 78 */ mr r28, r3 /* 801568F4 00152554 60 00 00 02 */ ori r0, r0, 2 /* 801568F8 00152558 B0 1E 00 10 */ sth r0, 0x10(r30) lbl_801568FC: /* 801568FC 0015255C 2C 1C 00 00 */ cmpwi r28, 0 /* 80156900 00152560 41 82 02 38 */ beq lbl_80156B38 /* 80156904 00152564 80 79 00 08 */ lwz r3, 8(r25) /* 80156908 00152568 7F A4 EB 78 */ mr r4, r29 /* 8015690C 0015256C 7F 85 E3 78 */ mr r5, r28 /* 80156910 00152570 38 C0 00 00 */ li r6, 0 /* 80156914 00152574 48 0A 1D 61 */ bl func_801F8674 /* 80156918 00152578 C0 02 8F 18 */ lfs f0, lbl_80641518-_SDA2_BASE_(r2) /* 8015691C 0015257C 98 79 00 6C */ stb r3, 0x6c(r25) /* 80156920 00152580 EC 5E 00 28 */ fsubs f2, f30, f0 /* 80156924 00152584 C0 21 00 38 */ lfs f1, 0x38(r1) /* 80156928 00152588 C0 01 00 3C */ lfs f0, 0x3c(r1) /* 8015692C 0015258C EC 5E 10 24 */ fdivs f2, f30, f2 /* 80156930 00152590 EC 21 00 B2 */ fmuls f1, f1, f2 /* 80156934 00152594 EC 00 00 B2 */ fmuls f0, f0, f2 /* 80156938 00152598 D0 21 00 38 */ stfs f1, 0x38(r1) /* 8015693C 0015259C D0 01 00 3C */ stfs f0, 0x3c(r1) /* 80156940 001525A0 88 99 00 6C */ lbz r4, 0x6c(r25) /* 80156944 001525A4 28 04 00 FF */ cmplwi r4, 0xff /* 80156948 001525A8 41 82 00 30 */ beq lbl_80156978 /* 8015694C 001525AC 80 79 00 08 */ lwz r3, 8(r25) /* 80156950 001525B0 38 A1 00 38 */ addi r5, r1, 0x38 /* 80156954 001525B4 48 0A 22 1D */ bl func_801F8B70 /* 80156958 001525B8 C0 22 8E E8 */ lfs f1, lbl_806414E8-_SDA2_BASE_(r2) /* 8015695C 001525BC 38 A1 00 30 */ addi r5, r1, 0x30 /* 80156960 001525C0 C0 02 8F 18 */ lfs f0, lbl_80641518-_SDA2_BASE_(r2) /* 80156964 001525C4 D0 21 00 30 */ stfs f1, 0x30(r1) /* 80156968 001525C8 D0 01 00 34 */ stfs f0, 0x34(r1) /* 8015696C 001525CC 80 79 00 08 */ lwz r3, 8(r25) /* 80156970 001525D0 88 99 00 6C */ lbz r4, 0x6c(r25) /* 80156974 001525D4 48 0A 21 CD */ bl func_801F8B40 lbl_80156978: /* 80156978 001525D8 2C 1B 00 00 */ cmpwi r27, 0 /* 8015697C 001525DC 41 82 01 BC */ beq lbl_80156B38 /* 80156980 001525E0 88 7A 00 00 */ lbz r3, 0(r26) /* 80156984 001525E4 38 A0 00 00 */ li r5, 0 /* 80156988 001525E8 88 0D A3 E4 */ lbz r0, lbl_8063F6A4-_SDA_BASE_(r13) /* 8015698C 001525EC 7C 03 00 40 */ cmplw r3, r0 /* 80156990 001525F0 40 82 00 38 */ bne lbl_801569C8 /* 80156994 001525F4 38 8D A3 E4 */ addi r4, r13, lbl_8063F6A4-_SDA_BASE_ /* 80156998 001525F8 88 7A 00 01 */ lbz r3, 1(r26) /* 8015699C 001525FC 88 04 00 01 */ lbz r0, 1(r4) /* 801569A0 00152600 7C 03 00 40 */ cmplw r3, r0 /* 801569A4 00152604 40 82 00 24 */ bne lbl_801569C8 /* 801569A8 00152608 88 7A 00 02 */ lbz r3, 2(r26) /* 801569AC 0015260C 88 04 00 02 */ lbz r0, 2(r4) /* 801569B0 00152610 7C 03 00 40 */ cmplw r3, r0 /* 801569B4 00152614 40 82 00 14 */ bne lbl_801569C8 /* 801569B8 00152618 88 7A 00 03 */ lbz r3, 3(r26) /* 801569BC 0015261C 88 04 00 03 */ lbz r0, 3(r4) /* 801569C0 00152620 7C 03 00 40 */ cmplw r3, r0 /* 801569C4 00152624 41 82 00 08 */ beq lbl_801569CC lbl_801569C8: /* 801569C8 00152628 38 A0 00 01 */ li r5, 1 lbl_801569CC: /* 801569CC 0015262C 2C 05 00 00 */ cmpwi r5, 0 /* 801569D0 00152630 41 82 00 20 */ beq lbl_801569F0 /* 801569D4 00152634 38 79 00 1C */ addi r3, r25, 0x1c /* 801569D8 00152638 38 80 00 07 */ li r4, 7 /* 801569DC 0015263C 38 AD A3 E4 */ addi r5, r13, lbl_8063F6A4-_SDA_BASE_ /* 801569E0 00152640 38 CD A3 DC */ addi r6, r13, lbl_8063F69C-_SDA_BASE_ /* 801569E4 00152644 48 0A D0 85 */ bl func_80203A68 /* 801569E8 00152648 7C 7D 1B 78 */ mr r29, r3 /* 801569EC 0015264C 90 79 00 18 */ stw r3, 0x18(r25) lbl_801569F0: /* 801569F0 00152650 2C 1D 00 00 */ cmpwi r29, 0 /* 801569F4 00152654 41 82 01 44 */ beq lbl_80156B38 /* 801569F8 00152658 80 79 00 08 */ lwz r3, 8(r25) /* 801569FC 0015265C 7F A4 EB 78 */ mr r4, r29 /* 80156A00 00152660 7F 85 E3 78 */ mr r5, r28 /* 80156A04 00152664 38 C0 00 01 */ li r6, 1 /* 80156A08 00152668 48 0A 1C 6D */ bl func_801F8674 /* 80156A0C 0015266C 98 79 00 6D */ stb r3, 0x6d(r25) /* 80156A10 00152670 7F A4 EB 78 */ mr r4, r29 /* 80156A14 00152674 80 79 00 08 */ lwz r3, 8(r25) /* 80156A18 00152678 7F 85 E3 78 */ mr r5, r28 /* 80156A1C 0015267C 38 C0 00 01 */ li r6, 1 /* 80156A20 00152680 48 0A 1C 55 */ bl func_801F8674 /* 80156A24 00152684 98 79 00 6E */ stb r3, 0x6e(r25) /* 80156A28 00152688 7F A4 EB 78 */ mr r4, r29 /* 80156A2C 0015268C 80 79 00 08 */ lwz r3, 8(r25) /* 80156A30 00152690 7F 85 E3 78 */ mr r5, r28 /* 80156A34 00152694 38 C0 00 01 */ li r6, 1 /* 80156A38 00152698 48 0A 1C 3D */ bl func_801F8674 /* 80156A3C 0015269C 98 79 00 6F */ stb r3, 0x6f(r25) /* 80156A40 001526A0 7F A4 EB 78 */ mr r4, r29 /* 80156A44 001526A4 80 79 00 08 */ lwz r3, 8(r25) /* 80156A48 001526A8 7F 85 E3 78 */ mr r5, r28 /* 80156A4C 001526AC 38 C0 00 01 */ li r6, 1 /* 80156A50 001526B0 48 0A 1C 25 */ bl func_801F8674 /* 80156A54 001526B4 88 99 00 6D */ lbz r4, 0x6d(r25) /* 80156A58 001526B8 98 79 00 70 */ stb r3, 0x70(r25) /* 80156A5C 001526BC 28 04 00 FF */ cmplwi r4, 0xff /* 80156A60 001526C0 41 82 00 30 */ beq lbl_80156A90 /* 80156A64 001526C4 80 79 00 08 */ lwz r3, 8(r25) /* 80156A68 001526C8 38 A1 00 38 */ addi r5, r1, 0x38 /* 80156A6C 001526CC 48 0A 21 05 */ bl func_801F8B70 /* 80156A70 001526D0 C0 22 8F 1C */ lfs f1, lbl_8064151C-_SDA2_BASE_(r2) /* 80156A74 001526D4 38 A1 00 28 */ addi r5, r1, 0x28 /* 80156A78 001526D8 C0 02 8F 18 */ lfs f0, lbl_80641518-_SDA2_BASE_(r2) /* 80156A7C 001526DC D0 21 00 28 */ stfs f1, 0x28(r1) /* 80156A80 001526E0 D0 01 00 2C */ stfs f0, 0x2c(r1) /* 80156A84 001526E4 80 79 00 08 */ lwz r3, 8(r25) /* 80156A88 001526E8 88 99 00 6D */ lbz r4, 0x6d(r25) /* 80156A8C 001526EC 48 0A 20 B5 */ bl func_801F8B40 lbl_80156A90: /* 80156A90 001526F0 88 99 00 6E */ lbz r4, 0x6e(r25) /* 80156A94 001526F4 28 04 00 FF */ cmplwi r4, 0xff /* 80156A98 001526F8 41 82 00 30 */ beq lbl_80156AC8 /* 80156A9C 001526FC 80 79 00 08 */ lwz r3, 8(r25) /* 80156AA0 00152700 38 A1 00 38 */ addi r5, r1, 0x38 /* 80156AA4 00152704 48 0A 20 CD */ bl func_801F8B70 /* 80156AA8 00152708 C0 22 8F 20 */ lfs f1, lbl_80641520-_SDA2_BASE_(r2) /* 80156AAC 0015270C 38 A1 00 20 */ addi r5, r1, 0x20 /* 80156AB0 00152710 C0 02 8F 18 */ lfs f0, lbl_80641518-_SDA2_BASE_(r2) /* 80156AB4 00152714 D0 21 00 20 */ stfs f1, 0x20(r1) /* 80156AB8 00152718 D0 01 00 24 */ stfs f0, 0x24(r1) /* 80156ABC 0015271C 80 79 00 08 */ lwz r3, 8(r25) /* 80156AC0 00152720 88 99 00 6E */ lbz r4, 0x6e(r25) /* 80156AC4 00152724 48 0A 20 7D */ bl func_801F8B40 lbl_80156AC8: /* 80156AC8 00152728 88 99 00 6F */ lbz r4, 0x6f(r25) /* 80156ACC 0015272C 28 04 00 FF */ cmplwi r4, 0xff /* 80156AD0 00152730 41 82 00 30 */ beq lbl_80156B00 /* 80156AD4 00152734 80 79 00 08 */ lwz r3, 8(r25) /* 80156AD8 00152738 38 A1 00 38 */ addi r5, r1, 0x38 /* 80156ADC 0015273C 48 0A 20 95 */ bl func_801F8B70 /* 80156AE0 00152740 C0 22 8E E8 */ lfs f1, lbl_806414E8-_SDA2_BASE_(r2) /* 80156AE4 00152744 38 A1 00 18 */ addi r5, r1, 0x18 /* 80156AE8 00152748 C0 02 8F 24 */ lfs f0, lbl_80641524-_SDA2_BASE_(r2) /* 80156AEC 0015274C D0 21 00 18 */ stfs f1, 0x18(r1) /* 80156AF0 00152750 D0 01 00 1C */ stfs f0, 0x1c(r1) /* 80156AF4 00152754 80 79 00 08 */ lwz r3, 8(r25) /* 80156AF8 00152758 88 99 00 6F */ lbz r4, 0x6f(r25) /* 80156AFC 0015275C 48 0A 20 45 */ bl func_801F8B40 lbl_80156B00: /* 80156B00 00152760 88 99 00 70 */ lbz r4, 0x70(r25) /* 80156B04 00152764 28 04 00 FF */ cmplwi r4, 0xff /* 80156B08 00152768 41 82 00 30 */ beq lbl_80156B38 /* 80156B0C 0015276C 80 79 00 08 */ lwz r3, 8(r25) /* 80156B10 00152770 38 A1 00 38 */ addi r5, r1, 0x38 /* 80156B14 00152774 48 0A 20 5D */ bl func_801F8B70 /* 80156B18 00152778 C0 22 8E E8 */ lfs f1, lbl_806414E8-_SDA2_BASE_(r2) /* 80156B1C 0015277C 38 A1 00 10 */ addi r5, r1, 0x10 /* 80156B20 00152780 C0 02 8F 28 */ lfs f0, lbl_80641528-_SDA2_BASE_(r2) /* 80156B24 00152784 D0 21 00 10 */ stfs f1, 0x10(r1) /* 80156B28 00152788 D0 01 00 14 */ stfs f0, 0x14(r1) /* 80156B2C 0015278C 80 79 00 08 */ lwz r3, 8(r25) /* 80156B30 00152790 88 99 00 70 */ lbz r4, 0x70(r25) /* 80156B34 00152794 48 0A 20 0D */ bl func_801F8B40 lbl_80156B38: /* 80156B38 00152798 E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0 /* 80156B3C 0015279C CB E1 00 70 */ lfd f31, 0x70(r1) /* 80156B40 001527A0 E3 C1 00 68 */ psq_l f30, 104(r1), 0, qr0 /* 80156B44 001527A4 39 61 00 60 */ addi r11, r1, 0x60 /* 80156B48 001527A8 CB C1 00 60 */ lfd f30, 0x60(r1) /* 80156B4C 001527AC 48 07 06 21 */ bl _restgpr_25 /* 80156B50 001527B0 80 01 00 84 */ lwz r0, 0x84(r1) /* 80156B54 001527B4 7C 08 03 A6 */ mtlr r0 /* 80156B58 001527B8 38 21 00 80 */ addi r1, r1, 0x80 /* 80156B5C 001527BC 4E 80 00 20 */ blr .global func_80156B60 func_80156B60: /* 80156B60 001527C0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80156B64 001527C4 7C 08 02 A6 */ mflr r0 /* 80156B68 001527C8 C0 02 8F 2C */ lfs f0, lbl_8064152C-_SDA2_BASE_(r2) /* 80156B6C 001527CC 90 01 00 24 */ stw r0, 0x24(r1) /* 80156B70 001527D0 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80156B74 001527D4 7C 7F 1B 78 */ mr r31, r3 /* 80156B78 001527D8 80 03 00 10 */ lwz r0, 0x10(r3) /* 80156B7C 001527DC D0 01 00 08 */ stfs f0, 8(r1) /* 80156B80 001527E0 2C 00 00 00 */ cmpwi r0, 0 /* 80156B84 001527E4 D0 01 00 0C */ stfs f0, 0xc(r1) /* 80156B88 001527E8 D0 01 00 10 */ stfs f0, 0x10(r1) /* 80156B8C 001527EC 40 82 00 74 */ bne lbl_80156C00 /* 80156B90 001527F0 48 08 3F 99 */ bl func_801DAB28 /* 80156B94 001527F4 2C 03 00 00 */ cmpwi r3, 0 /* 80156B98 001527F8 41 82 00 14 */ beq lbl_80156BAC /* 80156B9C 001527FC 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13) /* 80156BA0 00152800 38 80 01 38 */ li r4, 0x138 /* 80156BA4 00152804 48 08 40 F1 */ bl func_801DAC94 /* 80156BA8 00152808 48 00 00 08 */ b lbl_80156BB0 lbl_80156BAC: /* 80156BAC 0015280C 38 60 00 00 */ li r3, 0 lbl_80156BB0: /* 80156BB0 00152810 2C 03 00 00 */ cmpwi r3, 0 /* 80156BB4 00152814 41 82 00 18 */ beq lbl_80156BCC /* 80156BB8 00152818 38 80 00 01 */ li r4, 1 /* 80156BBC 0015281C 38 A0 00 01 */ li r5, 1 /* 80156BC0 00152820 38 C0 00 01 */ li r6, 1 /* 80156BC4 00152824 38 ED A3 E4 */ addi r7, r13, lbl_8063F6A4-_SDA_BASE_ /* 80156BC8 00152828 48 08 F3 B5 */ bl func_801E5F7C lbl_80156BCC: /* 80156BCC 0015282C 2C 03 00 00 */ cmpwi r3, 0 /* 80156BD0 00152830 90 7F 00 10 */ stw r3, 0x10(r31) /* 80156BD4 00152834 40 82 00 0C */ bne lbl_80156BE0 /* 80156BD8 00152838 38 60 00 00 */ li r3, 0 /* 80156BDC 0015283C 48 00 00 38 */ b lbl_80156C14 lbl_80156BE0: /* 80156BE0 00152840 C0 01 00 08 */ lfs f0, 8(r1) /* 80156BE4 00152844 38 80 00 01 */ li r4, 1 /* 80156BE8 00152848 C0 21 00 0C */ lfs f1, 0xc(r1) /* 80156BEC 0015284C D0 03 00 20 */ stfs f0, 0x20(r3) /* 80156BF0 00152850 C0 01 00 10 */ lfs f0, 0x10(r1) /* 80156BF4 00152854 D0 23 00 24 */ stfs f1, 0x24(r3) /* 80156BF8 00152858 D0 03 00 28 */ stfs f0, 0x28(r3) /* 80156BFC 0015285C 48 09 BA BD */ bl func_801F26B8 lbl_80156C00: /* 80156C00 00152860 80 9F 00 10 */ lwz r4, 0x10(r31) /* 80156C04 00152864 38 60 00 01 */ li r3, 1 /* 80156C08 00152868 80 04 01 04 */ lwz r0, 0x104(r4) /* 80156C0C 0015286C 60 00 00 01 */ ori r0, r0, 1 /* 80156C10 00152870 90 04 01 04 */ stw r0, 0x104(r4) lbl_80156C14: /* 80156C14 00152874 80 01 00 24 */ lwz r0, 0x24(r1) /* 80156C18 00152878 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80156C1C 0015287C 7C 08 03 A6 */ mtlr r0 /* 80156C20 00152880 38 21 00 20 */ addi r1, r1, 0x20 /* 80156C24 00152884 4E 80 00 20 */ blr lbl_80156C28: /* 80156C28 00152888 94 21 FF A0 */ stwu r1, -0x60(r1) /* 80156C2C 0015288C 7C 08 02 A6 */ mflr r0 /* 80156C30 00152890 90 01 00 64 */ stw r0, 0x64(r1) /* 80156C34 00152894 DB E1 00 50 */ stfd f31, 0x50(r1) /* 80156C38 00152898 F3 E1 00 58 */ psq_st f31, 88(r1), 0, qr0 /* 80156C3C 0015289C DB C1 00 40 */ stfd f30, 0x40(r1) /* 80156C40 001528A0 F3 C1 00 48 */ psq_st f30, 72(r1), 0, qr0 /* 80156C44 001528A4 39 61 00 40 */ addi r11, r1, 0x40 /* 80156C48 001528A8 48 07 04 D1 */ bl _savegpr_23 /* 80156C4C 001528AC 80 AD 9D 10 */ lwz r5, lbl_8063EFD0-_SDA_BASE_(r13) /* 80156C50 001528B0 38 60 00 80 */ li r3, 0x80 /* 80156C54 001528B4 38 00 00 FF */ li r0, 0xff /* 80156C58 001528B8 98 61 00 08 */ stb r3, 8(r1) /* 80156C5C 001528BC 2C 05 00 00 */ cmpwi r5, 0 /* 80156C60 001528C0 3B 40 00 00 */ li r26, 0 /* 80156C64 001528C4 98 61 00 09 */ stb r3, 9(r1) /* 80156C68 001528C8 98 61 00 0A */ stb r3, 0xa(r1) /* 80156C6C 001528CC 98 01 00 0B */ stb r0, 0xb(r1) /* 80156C70 001528D0 41 82 04 F0 */ beq lbl_80157160 /* 80156C74 001528D4 80 8D A3 D8 */ lwz r4, lbl_8063F698-_SDA_BASE_(r13) /* 80156C78 001528D8 38 60 00 00 */ li r3, 0 /* 80156C7C 001528DC 88 04 00 82 */ lbz r0, 0x82(r4) /* 80156C80 001528E0 2C 00 00 00 */ cmpwi r0, 0 /* 80156C84 001528E4 40 82 00 10 */ bne lbl_80156C94 /* 80156C88 001528E8 88 04 00 83 */ lbz r0, 0x83(r4) /* 80156C8C 001528EC 2C 00 00 00 */ cmpwi r0, 0 /* 80156C90 001528F0 41 82 00 08 */ beq lbl_80156C98 lbl_80156C94: /* 80156C94 001528F4 38 60 00 01 */ li r3, 1 lbl_80156C98: /* 80156C98 001528F8 2C 03 00 00 */ cmpwi r3, 0 /* 80156C9C 001528FC 40 82 04 C4 */ bne lbl_80157160 /* 80156CA0 00152900 3C 80 80 42 */ lis r4, lbl_8041E878@ha /* 80156CA4 00152904 3C 60 80 42 */ lis r3, lbl_8041E818@ha /* 80156CA8 00152908 C3 C2 8E E8 */ lfs f30, lbl_806414E8-_SDA2_BASE_(r2) /* 80156CAC 0015290C 3B 25 00 14 */ addi r25, r5, 0x14 /* 80156CB0 00152910 C3 E2 8F 30 */ lfs f31, lbl_80641530-_SDA2_BASE_(r2) /* 80156CB4 00152914 3B C4 E8 78 */ addi r30, r4, lbl_8041E878@l /* 80156CB8 00152918 3B E3 E8 18 */ addi r31, r3, lbl_8041E818@l /* 80156CBC 0015291C 3B 00 00 00 */ li r24, 0 /* 80156CC0 00152920 3B 80 00 FF */ li r28, 0xff /* 80156CC4 00152924 3B A0 00 01 */ li r29, 1 /* 80156CC8 00152928 3F 60 40 00 */ lis r27, 0x4000 lbl_80156CCC: /* 80156CCC 0015292C 88 19 00 67 */ lbz r0, 0x67(r25) /* 80156CD0 00152930 2C 00 00 00 */ cmpwi r0, 0 /* 80156CD4 00152934 41 82 04 28 */ beq lbl_801570FC /* 80156CD8 00152938 82 F9 00 60 */ lwz r23, 0x60(r25) /* 80156CDC 0015293C 3B 40 00 01 */ li r26, 1 /* 80156CE0 00152940 7C 17 D8 40 */ cmplw r23, r27 /* 80156CE4 00152944 41 80 00 88 */ blt lbl_80156D6C /* 80156CE8 00152948 88 19 00 65 */ lbz r0, 0x65(r25) /* 80156CEC 0015294C 54 00 10 3A */ slwi r0, r0, 2 /* 80156CF0 00152950 7C 3F 04 2E */ lfsx f1, r31, r0 /* 80156CF4 00152954 48 07 03 0D */ bl __cvt_fp2unsigned /* 80156CF8 00152958 3C 03 40 00 */ addis r0, r3, 0x4000 /* 80156CFC 0015295C 7C 17 00 40 */ cmplw r23, r0 /* 80156D00 00152960 40 80 00 6C */ bge lbl_80156D6C /* 80156D04 00152964 80 19 00 0C */ lwz r0, 0xc(r25) /* 80156D08 00152968 2C 00 00 00 */ cmpwi r0, 0 /* 80156D0C 0015296C 41 82 00 60 */ beq lbl_80156D6C /* 80156D10 00152970 C0 39 00 54 */ lfs f1, 0x54(r25) /* 80156D14 00152974 C0 19 00 50 */ lfs f0, 0x50(r25) /* 80156D18 00152978 EC 01 00 28 */ fsubs f0, f1, f0 /* 80156D1C 0015297C FC 00 F0 40 */ fcmpo cr0, f0, f30 /* 80156D20 00152980 D0 19 00 54 */ stfs f0, 0x54(r25) /* 80156D24 00152984 40 80 00 08 */ bge lbl_80156D2C /* 80156D28 00152988 D3 D9 00 54 */ stfs f30, 0x54(r25) lbl_80156D2C: /* 80156D2C 0015298C C0 59 00 58 */ lfs f2, 0x58(r25) /* 80156D30 00152990 C0 39 00 54 */ lfs f1, 0x54(r25) /* 80156D34 00152994 C0 19 00 5C */ lfs f0, 0x5c(r25) /* 80156D38 00152998 EC 22 08 28 */ fsubs f1, f2, f1 /* 80156D3C 0015299C EC 20 00 72 */ fmuls f1, f0, f1 /* 80156D40 001529A0 FC 01 F0 40 */ fcmpo cr0, f1, f30 /* 80156D44 001529A4 40 80 00 08 */ bge lbl_80156D4C /* 80156D48 001529A8 FC 20 F0 90 */ fmr f1, f30 lbl_80156D4C: /* 80156D4C 001529AC 80 79 00 0C */ lwz r3, 0xc(r25) /* 80156D50 001529B0 38 80 00 00 */ li r4, 0 /* 80156D54 001529B4 C0 42 8E E8 */ lfs f2, lbl_806414E8-_SDA2_BASE_(r2) /* 80156D58 001529B8 38 A0 00 00 */ li r5, 0 /* 80156D5C 001529BC 38 C0 00 00 */ li r6, 0 /* 80156D60 001529C0 38 E0 00 00 */ li r7, 0 /* 80156D64 001529C4 39 00 00 00 */ li r8, 0 /* 80156D68 001529C8 48 09 E0 8D */ bl func_801F4DF4 lbl_80156D6C: /* 80156D6C 001529CC 80 79 00 60 */ lwz r3, 0x60(r25) /* 80156D70 001529D0 38 03 00 01 */ addi r0, r3, 1 /* 80156D74 001529D4 90 19 00 60 */ stw r0, 0x60(r25) /* 80156D78 001529D8 88 19 00 64 */ lbz r0, 0x64(r25) /* 80156D7C 001529DC 2C 00 00 02 */ cmpwi r0, 2 /* 80156D80 001529E0 41 82 01 D4 */ beq lbl_80156F54 /* 80156D84 001529E4 40 80 00 14 */ bge lbl_80156D98 /* 80156D88 001529E8 2C 00 00 00 */ cmpwi r0, 0 /* 80156D8C 001529EC 41 82 00 1C */ beq lbl_80156DA8 /* 80156D90 001529F0 40 80 00 DC */ bge lbl_80156E6C /* 80156D94 001529F4 48 00 03 68 */ b lbl_801570FC lbl_80156D98: /* 80156D98 001529F8 2C 00 00 04 */ cmpwi r0, 4 /* 80156D9C 001529FC 41 82 02 90 */ beq lbl_8015702C /* 80156DA0 00152A00 40 80 03 5C */ bge lbl_801570FC /* 80156DA4 00152A04 48 00 02 3C */ b lbl_80156FE0 lbl_80156DA8: /* 80156DA8 00152A08 80 6D 9D 10 */ lwz r3, lbl_8063EFD0-_SDA_BASE_(r13) /* 80156DAC 00152A0C 7F 24 CB 78 */ mr r4, r25 /* 80156DB0 00152A10 38 A0 00 00 */ li r5, 0 /* 80156DB4 00152A14 48 00 05 61 */ bl func_80157314 /* 80156DB8 00152A18 2C 03 00 00 */ cmpwi r3, 0 /* 80156DBC 00152A1C 41 82 00 14 */ beq lbl_80156DD0 /* 80156DC0 00152A20 88 79 00 64 */ lbz r3, 0x64(r25) /* 80156DC4 00152A24 38 03 00 01 */ addi r0, r3, 1 /* 80156DC8 00152A28 98 19 00 64 */ stb r0, 0x64(r25) /* 80156DCC 00152A2C 48 00 03 30 */ b lbl_801570FC lbl_80156DD0: /* 80156DD0 00152A30 80 79 00 08 */ lwz r3, 8(r25) /* 80156DD4 00152A34 80 83 00 1C */ lwz r4, 0x1c(r3) /* 80156DD8 00152A38 2C 04 00 00 */ cmpwi r4, 0 /* 80156DDC 00152A3C 40 82 00 0C */ bne lbl_80156DE8 /* 80156DE0 00152A40 38 60 00 00 */ li r3, 0 /* 80156DE4 00152A44 48 00 00 20 */ b lbl_80156E04 lbl_80156DE8: /* 80156DE8 00152A48 A0 03 00 E6 */ lhz r0, 0xe6(r3) /* 80156DEC 00152A4C 2C 00 00 00 */ cmpwi r0, 0 /* 80156DF0 00152A50 40 82 00 0C */ bne lbl_80156DFC /* 80156DF4 00152A54 38 60 00 00 */ li r3, 0 /* 80156DF8 00152A58 48 00 00 0C */ b lbl_80156E04 lbl_80156DFC: /* 80156DFC 00152A5C 80 64 00 00 */ lwz r3, 0(r4) /* 80156E00 00152A60 80 63 00 14 */ lwz r3, 0x14(r3) lbl_80156E04: /* 80156E04 00152A64 80 63 00 0C */ lwz r3, 0xc(r3) /* 80156E08 00152A68 88 A3 00 63 */ lbz r5, 0x63(r3) /* 80156E0C 00152A6C 98 A1 00 0B */ stb r5, 0xb(r1) /* 80156E10 00152A70 80 79 00 08 */ lwz r3, 8(r25) /* 80156E14 00152A74 88 99 00 6C */ lbz r4, 0x6c(r25) /* 80156E18 00152A78 48 0A 1D 89 */ bl func_801F8BA0 /* 80156E1C 00152A7C 80 79 00 08 */ lwz r3, 8(r25) /* 80156E20 00152A80 88 99 00 6D */ lbz r4, 0x6d(r25) /* 80156E24 00152A84 88 A1 00 0B */ lbz r5, 0xb(r1) /* 80156E28 00152A88 48 0A 1D 79 */ bl func_801F8BA0 /* 80156E2C 00152A8C 80 79 00 08 */ lwz r3, 8(r25) /* 80156E30 00152A90 88 99 00 6E */ lbz r4, 0x6e(r25) /* 80156E34 00152A94 88 A1 00 0B */ lbz r5, 0xb(r1) /* 80156E38 00152A98 48 0A 1D 69 */ bl func_801F8BA0 /* 80156E3C 00152A9C 80 79 00 08 */ lwz r3, 8(r25) /* 80156E40 00152AA0 88 99 00 6F */ lbz r4, 0x6f(r25) /* 80156E44 00152AA4 88 A1 00 0B */ lbz r5, 0xb(r1) /* 80156E48 00152AA8 48 0A 1D 59 */ bl func_801F8BA0 /* 80156E4C 00152AAC 80 79 00 08 */ lwz r3, 8(r25) /* 80156E50 00152AB0 88 99 00 70 */ lbz r4, 0x70(r25) /* 80156E54 00152AB4 88 A1 00 0B */ lbz r5, 0xb(r1) /* 80156E58 00152AB8 48 0A 1D 49 */ bl func_801F8BA0 /* 80156E5C 00152ABC 80 79 00 0C */ lwz r3, 0xc(r25) /* 80156E60 00152AC0 38 81 00 08 */ addi r4, r1, 8 /* 80156E64 00152AC4 48 09 F3 31 */ bl func_801F6194 /* 80156E68 00152AC8 48 00 02 94 */ b lbl_801570FC lbl_80156E6C: /* 80156E6C 00152ACC 80 79 00 08 */ lwz r3, 8(r25) /* 80156E70 00152AD0 38 A0 00 01 */ li r5, 1 /* 80156E74 00152AD4 88 99 00 65 */ lbz r4, 0x65(r25) /* 80156E78 00152AD8 38 C0 00 00 */ li r6, 0 /* 80156E7C 00152ADC C0 22 8E E8 */ lfs f1, lbl_806414E8-_SDA2_BASE_(r2) /* 80156E80 00152AE0 38 E0 00 00 */ li r7, 0 /* 80156E84 00152AE4 C0 42 8E FC */ lfs f2, lbl_806414FC-_SDA2_BASE_(r2) /* 80156E88 00152AE8 39 00 00 00 */ li r8, 0 /* 80156E8C 00152AEC 48 09 DF 69 */ bl func_801F4DF4 /* 80156E90 00152AF0 9B 81 00 0B */ stb r28, 0xb(r1) /* 80156E94 00152AF4 38 A0 00 FF */ li r5, 0xff /* 80156E98 00152AF8 80 79 00 08 */ lwz r3, 8(r25) /* 80156E9C 00152AFC 88 99 00 6C */ lbz r4, 0x6c(r25) /* 80156EA0 00152B00 48 0A 1D 01 */ bl func_801F8BA0 /* 80156EA4 00152B04 80 79 00 08 */ lwz r3, 8(r25) /* 80156EA8 00152B08 88 99 00 6D */ lbz r4, 0x6d(r25) /* 80156EAC 00152B0C 88 A1 00 0B */ lbz r5, 0xb(r1) /* 80156EB0 00152B10 48 0A 1C F1 */ bl func_801F8BA0 /* 80156EB4 00152B14 80 79 00 08 */ lwz r3, 8(r25) /* 80156EB8 00152B18 88 99 00 6E */ lbz r4, 0x6e(r25) /* 80156EBC 00152B1C 88 A1 00 0B */ lbz r5, 0xb(r1) /* 80156EC0 00152B20 48 0A 1C E1 */ bl func_801F8BA0 /* 80156EC4 00152B24 80 79 00 08 */ lwz r3, 8(r25) /* 80156EC8 00152B28 88 99 00 6F */ lbz r4, 0x6f(r25) /* 80156ECC 00152B2C 88 A1 00 0B */ lbz r5, 0xb(r1) /* 80156ED0 00152B30 48 0A 1C D1 */ bl func_801F8BA0 /* 80156ED4 00152B34 80 79 00 08 */ lwz r3, 8(r25) /* 80156ED8 00152B38 88 99 00 70 */ lbz r4, 0x70(r25) /* 80156EDC 00152B3C 88 A1 00 0B */ lbz r5, 0xb(r1) /* 80156EE0 00152B40 48 0A 1C C1 */ bl func_801F8BA0 /* 80156EE4 00152B44 80 79 00 0C */ lwz r3, 0xc(r25) /* 80156EE8 00152B48 38 81 00 08 */ addi r4, r1, 8 /* 80156EEC 00152B4C 48 09 F2 A9 */ bl func_801F6194 /* 80156EF0 00152B50 80 79 00 10 */ lwz r3, 0x10(r25) /* 80156EF4 00152B54 38 80 00 00 */ li r4, 0 /* 80156EF8 00152B58 C0 22 8E FC */ lfs f1, lbl_806414FC-_SDA2_BASE_(r2) /* 80156EFC 00152B5C 80 03 01 04 */ lwz r0, 0x104(r3) /* 80156F00 00152B60 60 00 00 01 */ ori r0, r0, 1 /* 80156F04 00152B64 54 00 07 F8 */ rlwinm r0, r0, 0, 0x1f, 0x1c /* 80156F08 00152B68 90 03 01 04 */ stw r0, 0x104(r3) /* 80156F0C 00152B6C D3 C3 01 08 */ stfs f30, 0x108(r3) /* 80156F10 00152B70 80 AD 9D 10 */ lwz r5, lbl_8063EFD0-_SDA_BASE_(r13) /* 80156F14 00152B74 88 79 00 66 */ lbz r3, 0x66(r25) /* 80156F18 00152B78 88 19 00 71 */ lbz r0, 0x71(r25) /* 80156F1C 00152B7C 7C A5 1A 14 */ add r5, r5, r3 /* 80156F20 00152B80 88 65 01 E4 */ lbz r3, 0x1e4(r5) /* 80156F24 00152B84 7F A0 00 30 */ slw r0, r29, r0 /* 80156F28 00152B88 7C 60 03 78 */ or r0, r3, r0 /* 80156F2C 00152B8C 98 05 01 E4 */ stb r0, 0x1e4(r5) /* 80156F30 00152B90 88 19 00 66 */ lbz r0, 0x66(r25) /* 80156F34 00152B94 54 00 10 3A */ slwi r0, r0, 2 /* 80156F38 00152B98 7C 7E 00 2E */ lwzx r3, r30, r0 /* 80156F3C 00152B9C 4B EB 42 D5 */ bl func_8000B210 /* 80156F40 00152BA0 93 79 00 60 */ stw r27, 0x60(r25) /* 80156F44 00152BA4 88 79 00 64 */ lbz r3, 0x64(r25) /* 80156F48 00152BA8 38 03 00 01 */ addi r0, r3, 1 /* 80156F4C 00152BAC 98 19 00 64 */ stb r0, 0x64(r25) /* 80156F50 00152BB0 48 00 01 AC */ b lbl_801570FC lbl_80156F54: /* 80156F54 00152BB4 88 19 00 65 */ lbz r0, 0x65(r25) /* 80156F58 00152BB8 54 00 10 3A */ slwi r0, r0, 2 /* 80156F5C 00152BBC 7C 3F 04 2E */ lfsx f1, r31, r0 /* 80156F60 00152BC0 48 07 00 A1 */ bl __cvt_fp2unsigned /* 80156F64 00152BC4 80 19 00 60 */ lwz r0, 0x60(r25) /* 80156F68 00152BC8 3C 63 40 00 */ addis r3, r3, 0x4000 /* 80156F6C 00152BCC 7C 00 18 40 */ cmplw r0, r3 /* 80156F70 00152BD0 41 80 01 8C */ blt lbl_801570FC /* 80156F74 00152BD4 80 8D 9D 10 */ lwz r4, lbl_8063EFD0-_SDA_BASE_(r13) /* 80156F78 00152BD8 88 79 00 66 */ lbz r3, 0x66(r25) /* 80156F7C 00152BDC 88 19 00 71 */ lbz r0, 0x71(r25) /* 80156F80 00152BE0 7C 84 1A 14 */ add r4, r4, r3 /* 80156F84 00152BE4 88 64 01 E4 */ lbz r3, 0x1e4(r4) /* 80156F88 00152BE8 7F A0 00 30 */ slw r0, r29, r0 /* 80156F8C 00152BEC 7C 60 00 78 */ andc r0, r3, r0 /* 80156F90 00152BF0 98 04 01 E4 */ stb r0, 0x1e4(r4) /* 80156F94 00152BF4 88 99 00 66 */ lbz r4, 0x66(r25) /* 80156F98 00152BF8 80 0D 9D 10 */ lwz r0, lbl_8063EFD0-_SDA_BASE_(r13) /* 80156F9C 00152BFC 7C 60 22 14 */ add r3, r0, r4 /* 80156FA0 00152C00 88 03 01 E4 */ lbz r0, 0x1e4(r3) /* 80156FA4 00152C04 2C 00 00 00 */ cmpwi r0, 0 /* 80156FA8 00152C08 40 82 00 14 */ bne lbl_80156FBC /* 80156FAC 00152C0C 54 80 15 BA */ rlwinm r0, r4, 2, 0x16, 0x1d /* 80156FB0 00152C10 38 80 00 00 */ li r4, 0 /* 80156FB4 00152C14 7C 7E 00 2E */ lwzx r3, r30, r0 /* 80156FB8 00152C18 4B EB 44 B5 */ bl func_8000B46C lbl_80156FBC: /* 80156FBC 00152C1C 88 79 00 64 */ lbz r3, 0x64(r25) /* 80156FC0 00152C20 38 03 00 01 */ addi r0, r3, 1 /* 80156FC4 00152C24 98 19 00 64 */ stb r0, 0x64(r25) /* 80156FC8 00152C28 80 79 00 10 */ lwz r3, 0x10(r25) /* 80156FCC 00152C2C 80 03 01 04 */ lwz r0, 0x104(r3) /* 80156FD0 00152C30 60 00 00 04 */ ori r0, r0, 4 /* 80156FD4 00152C34 90 03 01 04 */ stw r0, 0x104(r3) /* 80156FD8 00152C38 D3 E3 01 10 */ stfs f31, 0x110(r3) /* 80156FDC 00152C3C 48 00 01 20 */ b lbl_801570FC lbl_80156FE0: /* 80156FE0 00152C40 80 6D 9D 10 */ lwz r3, lbl_8063EFD0-_SDA_BASE_(r13) /* 80156FE4 00152C44 7F 24 CB 78 */ mr r4, r25 /* 80156FE8 00152C48 38 A0 00 00 */ li r5, 0 /* 80156FEC 00152C4C 48 00 03 F9 */ bl func_801573E4 /* 80156FF0 00152C50 2C 03 00 00 */ cmpwi r3, 0 /* 80156FF4 00152C54 41 82 01 08 */ beq lbl_801570FC /* 80156FF8 00152C58 80 79 00 08 */ lwz r3, 8(r25) /* 80156FFC 00152C5C 38 80 00 02 */ li r4, 2 /* 80157000 00152C60 C0 22 8E E8 */ lfs f1, lbl_806414E8-_SDA2_BASE_(r2) /* 80157004 00152C64 38 A0 00 00 */ li r5, 0 /* 80157008 00152C68 C0 42 8E FC */ lfs f2, lbl_806414FC-_SDA2_BASE_(r2) /* 8015700C 00152C6C 38 C0 00 00 */ li r6, 0 /* 80157010 00152C70 38 E0 00 00 */ li r7, 0 /* 80157014 00152C74 39 00 00 00 */ li r8, 0 /* 80157018 00152C78 48 09 DD DD */ bl func_801F4DF4 /* 8015701C 00152C7C 88 79 00 64 */ lbz r3, 0x64(r25) /* 80157020 00152C80 38 03 00 01 */ addi r0, r3, 1 /* 80157024 00152C84 98 19 00 64 */ stb r0, 0x64(r25) /* 80157028 00152C88 48 00 00 D4 */ b lbl_801570FC lbl_8015702C: /* 8015702C 00152C8C 80 6D 9D 10 */ lwz r3, lbl_8063EFD0-_SDA_BASE_(r13) /* 80157030 00152C90 7F 24 CB 78 */ mr r4, r25 /* 80157034 00152C94 38 A0 00 00 */ li r5, 0 /* 80157038 00152C98 48 00 02 DD */ bl func_80157314 /* 8015703C 00152C9C 2C 03 00 00 */ cmpwi r3, 0 /* 80157040 00152CA0 41 82 00 14 */ beq lbl_80157054 /* 80157044 00152CA4 80 6D 9D 10 */ lwz r3, lbl_8063EFD0-_SDA_BASE_(r13) /* 80157048 00152CA8 7F 24 CB 78 */ mr r4, r25 /* 8015704C 00152CAC 48 00 04 D9 */ bl func_80157524 /* 80157050 00152CB0 48 00 00 AC */ b lbl_801570FC lbl_80157054: /* 80157054 00152CB4 80 79 00 08 */ lwz r3, 8(r25) /* 80157058 00152CB8 80 83 00 1C */ lwz r4, 0x1c(r3) /* 8015705C 00152CBC 2C 04 00 00 */ cmpwi r4, 0 /* 80157060 00152CC0 40 82 00 0C */ bne lbl_8015706C /* 80157064 00152CC4 38 60 00 00 */ li r3, 0 /* 80157068 00152CC8 48 00 00 20 */ b lbl_80157088 lbl_8015706C: /* 8015706C 00152CCC A0 03 00 E6 */ lhz r0, 0xe6(r3) /* 80157070 00152CD0 2C 00 00 00 */ cmpwi r0, 0 /* 80157074 00152CD4 40 82 00 0C */ bne lbl_80157080 /* 80157078 00152CD8 38 60 00 00 */ li r3, 0 /* 8015707C 00152CDC 48 00 00 0C */ b lbl_80157088 lbl_80157080: /* 80157080 00152CE0 80 64 00 00 */ lwz r3, 0(r4) /* 80157084 00152CE4 80 63 00 14 */ lwz r3, 0x14(r3) lbl_80157088: /* 80157088 00152CE8 80 63 00 0C */ lwz r3, 0xc(r3) /* 8015708C 00152CEC 88 63 00 63 */ lbz r3, 0x63(r3) /* 80157090 00152CF0 34 63 FF F0 */ addic. r3, r3, -16 /* 80157094 00152CF4 41 81 00 08 */ bgt lbl_8015709C /* 80157098 00152CF8 38 60 00 00 */ li r3, 0 lbl_8015709C: /* 8015709C 00152CFC 98 61 00 0B */ stb r3, 0xb(r1) /* 801570A0 00152D00 54 65 06 3E */ clrlwi r5, r3, 0x18 /* 801570A4 00152D04 80 79 00 08 */ lwz r3, 8(r25) /* 801570A8 00152D08 88 99 00 6C */ lbz r4, 0x6c(r25) /* 801570AC 00152D0C 48 0A 1A F5 */ bl func_801F8BA0 /* 801570B0 00152D10 80 79 00 08 */ lwz r3, 8(r25) /* 801570B4 00152D14 88 99 00 6D */ lbz r4, 0x6d(r25) /* 801570B8 00152D18 88 A1 00 0B */ lbz r5, 0xb(r1) /* 801570BC 00152D1C 48 0A 1A E5 */ bl func_801F8BA0 /* 801570C0 00152D20 80 79 00 08 */ lwz r3, 8(r25) /* 801570C4 00152D24 88 99 00 6E */ lbz r4, 0x6e(r25) /* 801570C8 00152D28 88 A1 00 0B */ lbz r5, 0xb(r1) /* 801570CC 00152D2C 48 0A 1A D5 */ bl func_801F8BA0 /* 801570D0 00152D30 80 79 00 08 */ lwz r3, 8(r25) /* 801570D4 00152D34 88 99 00 6F */ lbz r4, 0x6f(r25) /* 801570D8 00152D38 88 A1 00 0B */ lbz r5, 0xb(r1) /* 801570DC 00152D3C 48 0A 1A C5 */ bl func_801F8BA0 /* 801570E0 00152D40 80 79 00 08 */ lwz r3, 8(r25) /* 801570E4 00152D44 88 99 00 70 */ lbz r4, 0x70(r25) /* 801570E8 00152D48 88 A1 00 0B */ lbz r5, 0xb(r1) /* 801570EC 00152D4C 48 0A 1A B5 */ bl func_801F8BA0 /* 801570F0 00152D50 80 79 00 0C */ lwz r3, 0xc(r25) /* 801570F4 00152D54 38 81 00 08 */ addi r4, r1, 8 /* 801570F8 00152D58 48 09 F0 9D */ bl func_801F6194 lbl_801570FC: /* 801570FC 00152D5C 3B 18 00 01 */ addi r24, r24, 1 /* 80157100 00152D60 3B 39 00 74 */ addi r25, r25, 0x74 /* 80157104 00152D64 28 18 00 04 */ cmplwi r24, 4 /* 80157108 00152D68 41 80 FB C4 */ blt lbl_80156CCC /* 8015710C 00152D6C 2C 1A 00 00 */ cmpwi r26, 0 /* 80157110 00152D70 40 82 00 50 */ bne lbl_80157160 /* 80157114 00152D74 3F 20 80 42 */ lis r25, lbl_8041E878@ha /* 80157118 00152D78 3A E0 00 00 */ li r23, 0 /* 8015711C 00152D7C 3B 39 E8 78 */ addi r25, r25, lbl_8041E878@l /* 80157120 00152D80 3B 00 00 00 */ li r24, 0 lbl_80157124: /* 80157124 00152D84 80 0D 9D 10 */ lwz r0, lbl_8063EFD0-_SDA_BASE_(r13) /* 80157128 00152D88 7C 60 BA 14 */ add r3, r0, r23 /* 8015712C 00152D8C 88 03 01 E4 */ lbz r0, 0x1e4(r3) /* 80157130 00152D90 2C 00 00 00 */ cmpwi r0, 0 /* 80157134 00152D94 41 82 00 1C */ beq lbl_80157150 /* 80157138 00152D98 80 79 00 00 */ lwz r3, 0(r25) /* 8015713C 00152D9C 38 80 00 00 */ li r4, 0 /* 80157140 00152DA0 4B EB 43 2D */ bl func_8000B46C /* 80157144 00152DA4 80 0D 9D 10 */ lwz r0, lbl_8063EFD0-_SDA_BASE_(r13) /* 80157148 00152DA8 7C 60 BA 14 */ add r3, r0, r23 /* 8015714C 00152DAC 9B 03 01 E4 */ stb r24, 0x1e4(r3) lbl_80157150: /* 80157150 00152DB0 3A F7 00 01 */ addi r23, r23, 1 /* 80157154 00152DB4 3B 39 00 04 */ addi r25, r25, 4 /* 80157158 00152DB8 28 17 00 12 */ cmplwi r23, 0x12 /* 8015715C 00152DBC 41 80 FF C8 */ blt lbl_80157124 lbl_80157160: /* 80157160 00152DC0 E3 E1 00 58 */ psq_l f31, 88(r1), 0, qr0 /* 80157164 00152DC4 CB E1 00 50 */ lfd f31, 0x50(r1) /* 80157168 00152DC8 E3 C1 00 48 */ psq_l f30, 72(r1), 0, qr0 /* 8015716C 00152DCC 39 61 00 40 */ addi r11, r1, 0x40 /* 80157170 00152DD0 CB C1 00 40 */ lfd f30, 0x40(r1) /* 80157174 00152DD4 48 06 FF F1 */ bl _restgpr_23 /* 80157178 00152DD8 80 01 00 64 */ lwz r0, 0x64(r1) /* 8015717C 00152DDC 7C 08 03 A6 */ mtlr r0 /* 80157180 00152DE0 38 21 00 60 */ addi r1, r1, 0x60 /* 80157184 00152DE4 4E 80 00 20 */ blr lbl_80157188: /* 80157188 00152DE8 4E 80 00 20 */ blr .global func_8015718C func_8015718C: /* 8015718C 00152DEC 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80157190 00152DF0 7C 08 02 A6 */ mflr r0 /* 80157194 00152DF4 90 01 00 34 */ stw r0, 0x34(r1) /* 80157198 00152DF8 93 E1 00 2C */ stw r31, 0x2c(r1) /* 8015719C 00152DFC 93 C1 00 28 */ stw r30, 0x28(r1) /* 801571A0 00152E00 7C 7E 1B 78 */ mr r30, r3 /* 801571A4 00152E04 38 60 00 04 */ li r3, 4 /* 801571A8 00152E08 48 0E 3E B1 */ bl func_8023B058 /* 801571AC 00152E0C 2C 03 00 00 */ cmpwi r3, 0 /* 801571B0 00152E10 7C 7F 1B 78 */ mr r31, r3 /* 801571B4 00152E14 40 82 00 0C */ bne lbl_801571C0 /* 801571B8 00152E18 38 60 00 00 */ li r3, 0 /* 801571BC 00152E1C 48 00 00 D8 */ b lbl_80157294 lbl_801571C0: /* 801571C0 00152E20 80 1E 00 08 */ lwz r0, 8(r30) /* 801571C4 00152E24 2C 00 00 00 */ cmpwi r0, 0 /* 801571C8 00152E28 40 82 00 34 */ bne lbl_801571FC /* 801571CC 00152E2C 48 08 39 5D */ bl func_801DAB28 /* 801571D0 00152E30 2C 03 00 00 */ cmpwi r3, 0 /* 801571D4 00152E34 41 82 00 14 */ beq lbl_801571E8 /* 801571D8 00152E38 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13) /* 801571DC 00152E3C 38 80 02 64 */ li r4, 0x264 /* 801571E0 00152E40 48 08 3A B5 */ bl func_801DAC94 /* 801571E4 00152E44 48 00 00 08 */ b lbl_801571EC lbl_801571E8: /* 801571E8 00152E48 38 60 00 00 */ li r3, 0 lbl_801571EC: /* 801571EC 00152E4C 2C 03 00 00 */ cmpwi r3, 0 /* 801571F0 00152E50 41 82 00 08 */ beq lbl_801571F8 /* 801571F4 00152E54 48 08 6D 85 */ bl __ct__8GScameraFv lbl_801571F8: /* 801571F8 00152E58 90 7E 00 08 */ stw r3, 8(r30) lbl_801571FC: /* 801571FC 00152E5C 80 1F 00 0C */ lwz r0, 0xc(r31) /* 80157200 00152E60 3C 80 80 49 */ lis r4, lbl_80493614@ha /* 80157204 00152E64 C0 42 8E E8 */ lfs f2, lbl_806414E8-_SDA2_BASE_(r2) /* 80157208 00152E68 38 64 36 14 */ addi r3, r4, lbl_80493614@l /* 8015720C 00152E6C 90 1E 00 0C */ stw r0, 0xc(r30) /* 80157210 00152E70 80 BE 00 08 */ lwz r5, 8(r30) /* 80157214 00152E74 C0 22 8F 34 */ lfs f1, lbl_80641534-_SDA2_BASE_(r2) /* 80157218 00152E78 90 BF 00 0C */ stw r5, 0xc(r31) /* 8015721C 00152E7C D0 45 01 AC */ stfs f2, 0x1ac(r5) /* 80157220 00152E80 D0 45 01 B0 */ stfs f2, 0x1b0(r5) /* 80157224 00152E84 D0 25 01 B4 */ stfs f1, 0x1b4(r5) /* 80157228 00152E88 C0 04 36 14 */ lfs f0, 0x3614(r4) /* 8015722C 00152E8C D0 41 00 08 */ stfs f2, 8(r1) /* 80157230 00152E90 D0 05 01 B8 */ stfs f0, 0x1b8(r5) /* 80157234 00152E94 C0 03 00 04 */ lfs f0, 4(r3) /* 80157238 00152E98 D0 41 00 0C */ stfs f2, 0xc(r1) /* 8015723C 00152E9C D0 05 01 BC */ stfs f0, 0x1bc(r5) /* 80157240 00152EA0 C0 03 00 08 */ lfs f0, 8(r3) /* 80157244 00152EA4 D0 41 00 10 */ stfs f2, 0x10(r1) /* 80157248 00152EA8 D0 05 01 C0 */ stfs f0, 0x1c0(r5) /* 8015724C 00152EAC D0 45 01 C4 */ stfs f2, 0x1c4(r5) /* 80157250 00152EB0 D0 45 01 C8 */ stfs f2, 0x1c8(r5) /* 80157254 00152EB4 D0 45 01 CC */ stfs f2, 0x1cc(r5) /* 80157258 00152EB8 80 05 01 04 */ lwz r0, 0x104(r5) /* 8015725C 00152EBC D0 41 00 14 */ stfs f2, 0x14(r1) /* 80157260 00152EC0 60 03 00 30 */ ori r3, r0, 0x30 /* 80157264 00152EC4 54 60 07 BE */ clrlwi r0, r3, 0x1e /* 80157268 00152EC8 D0 41 00 18 */ stfs f2, 0x18(r1) /* 8015726C 00152ECC 28 00 00 01 */ cmplwi r0, 1 /* 80157270 00152ED0 D0 21 00 1C */ stfs f1, 0x1c(r1) /* 80157274 00152ED4 90 65 01 04 */ stw r3, 0x104(r5) /* 80157278 00152ED8 40 82 00 18 */ bne lbl_80157290 /* 8015727C 00152EDC C0 02 8F 38 */ lfs f0, lbl_80641538-_SDA2_BASE_(r2) /* 80157280 00152EE0 D0 05 01 68 */ stfs f0, 0x168(r5) /* 80157284 00152EE4 80 05 01 04 */ lwz r0, 0x104(r5) /* 80157288 00152EE8 60 00 00 08 */ ori r0, r0, 8 /* 8015728C 00152EEC 90 05 01 04 */ stw r0, 0x104(r5) lbl_80157290: /* 80157290 00152EF0 38 60 00 01 */ li r3, 1 lbl_80157294: /* 80157294 00152EF4 80 01 00 34 */ lwz r0, 0x34(r1) /* 80157298 00152EF8 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 8015729C 00152EFC 83 C1 00 28 */ lwz r30, 0x28(r1) /* 801572A0 00152F00 7C 08 03 A6 */ mtlr r0 /* 801572A4 00152F04 38 21 00 30 */ addi r1, r1, 0x30 /* 801572A8 00152F08 4E 80 00 20 */ blr .global func_801572AC func_801572AC: /* 801572AC 00152F0C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 801572B0 00152F10 7C 08 02 A6 */ mflr r0 /* 801572B4 00152F14 90 01 00 14 */ stw r0, 0x14(r1) /* 801572B8 00152F18 93 E1 00 0C */ stw r31, 0xc(r1) /* 801572BC 00152F1C 7C 7F 1B 78 */ mr r31, r3 /* 801572C0 00152F20 38 60 00 04 */ li r3, 4 /* 801572C4 00152F24 48 0E 3D 95 */ bl func_8023B058 /* 801572C8 00152F28 80 1F 00 0C */ lwz r0, 0xc(r31) /* 801572CC 00152F2C 90 03 00 0C */ stw r0, 0xc(r3) /* 801572D0 00152F30 80 7F 00 08 */ lwz r3, 8(r31) /* 801572D4 00152F34 2C 03 00 00 */ cmpwi r3, 0 /* 801572D8 00152F38 41 82 00 24 */ beq lbl_801572FC /* 801572DC 00152F3C 41 82 00 18 */ beq lbl_801572F4 /* 801572E0 00152F40 81 83 01 00 */ lwz r12, 0x100(r3) /* 801572E4 00152F44 38 80 00 01 */ li r4, 1 /* 801572E8 00152F48 81 8C 00 08 */ lwz r12, 8(r12) /* 801572EC 00152F4C 7D 89 03 A6 */ mtctr r12 /* 801572F0 00152F50 4E 80 04 21 */ bctrl lbl_801572F4: /* 801572F4 00152F54 38 00 00 00 */ li r0, 0 /* 801572F8 00152F58 90 1F 00 08 */ stw r0, 8(r31) lbl_801572FC: /* 801572FC 00152F5C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80157300 00152F60 38 60 00 01 */ li r3, 1 /* 80157304 00152F64 80 01 00 14 */ lwz r0, 0x14(r1) /* 80157308 00152F68 7C 08 03 A6 */ mtlr r0 /* 8015730C 00152F6C 38 21 00 10 */ addi r1, r1, 0x10 /* 80157310 00152F70 4E 80 00 20 */ blr .global func_80157314 func_80157314: /* 80157314 00152F74 54 A0 10 3A */ slwi r0, r5, 2 /* 80157318 00152F78 39 00 00 00 */ li r8, 0 /* 8015731C 00152F7C 7C A4 02 14 */ add r5, r4, r0 /* 80157320 00152F80 80 65 00 08 */ lwz r3, 8(r5) /* 80157324 00152F84 A0 83 00 DE */ lhz r4, 0xde(r3) /* 80157328 00152F88 48 00 00 A8 */ b lbl_801573D0 lbl_8015732C: /* 8015732C 00152F8C 80 65 00 08 */ lwz r3, 8(r5) /* 80157330 00152F90 80 C3 00 08 */ lwz r6, 8(r3) /* 80157334 00152F94 2C 06 00 00 */ cmpwi r6, 0 /* 80157338 00152F98 40 82 00 0C */ bne lbl_80157344 /* 8015733C 00152F9C 38 60 00 00 */ li r3, 0 /* 80157340 00152FA0 48 00 00 24 */ b lbl_80157364 lbl_80157344: /* 80157344 00152FA4 A0 03 00 DE */ lhz r0, 0xde(r3) /* 80157348 00152FA8 55 03 04 3E */ clrlwi r3, r8, 0x10 /* 8015734C 00152FAC 7C 03 00 40 */ cmplw r3, r0 /* 80157350 00152FB0 41 80 00 0C */ blt lbl_8015735C /* 80157354 00152FB4 38 60 00 00 */ li r3, 0 /* 80157358 00152FB8 48 00 00 0C */ b lbl_80157364 lbl_8015735C: /* 8015735C 00152FBC 55 00 13 BA */ rlwinm r0, r8, 2, 0xe, 0x1d /* 80157360 00152FC0 7C 66 00 2E */ lwzx r3, r6, r0 lbl_80157364: /* 80157364 00152FC4 2C 03 00 00 */ cmpwi r3, 0 /* 80157368 00152FC8 41 82 00 64 */ beq lbl_801573CC /* 8015736C 00152FCC 80 63 00 04 */ lwz r3, 4(r3) /* 80157370 00152FD0 2C 03 00 00 */ cmpwi r3, 0 /* 80157374 00152FD4 41 82 00 58 */ beq lbl_801573CC /* 80157378 00152FD8 41 82 00 40 */ beq lbl_801573B8 /* 8015737C 00152FDC A0 E3 00 06 */ lhz r7, 6(r3) /* 80157380 00152FE0 38 C0 00 01 */ li r6, 1 /* 80157384 00152FE4 54 E0 07 39 */ rlwinm. r0, r7, 0, 0x1c, 0x1c /* 80157388 00152FE8 40 82 00 34 */ bne lbl_801573BC /* 8015738C 00152FEC 80 03 00 00 */ lwz r0, 0(r3) /* 80157390 00152FF0 38 60 00 00 */ li r3, 0 /* 80157394 00152FF4 2C 00 00 00 */ cmpwi r0, 0 /* 80157398 00152FF8 41 82 00 10 */ beq lbl_801573A8 /* 8015739C 00152FFC 54 E0 07 FF */ clrlwi. r0, r7, 0x1f /* 801573A0 00153000 41 82 00 08 */ beq lbl_801573A8 /* 801573A4 00153004 38 60 00 01 */ li r3, 1 lbl_801573A8: /* 801573A8 00153008 2C 03 00 00 */ cmpwi r3, 0 /* 801573AC 0015300C 41 82 00 10 */ beq lbl_801573BC /* 801573B0 00153010 38 C0 00 00 */ li r6, 0 /* 801573B4 00153014 48 00 00 08 */ b lbl_801573BC lbl_801573B8: /* 801573B8 00153018 38 C0 00 01 */ li r6, 1 lbl_801573BC: /* 801573BC 0015301C 2C 06 00 00 */ cmpwi r6, 0 /* 801573C0 00153020 41 82 00 0C */ beq lbl_801573CC /* 801573C4 00153024 38 60 00 01 */ li r3, 1 /* 801573C8 00153028 4E 80 00 20 */ blr lbl_801573CC: /* 801573CC 0015302C 39 08 00 01 */ addi r8, r8, 1 lbl_801573D0: /* 801573D0 00153030 55 00 04 3E */ clrlwi r0, r8, 0x10 /* 801573D4 00153034 7C 00 20 40 */ cmplw r0, r4 /* 801573D8 00153038 41 80 FF 54 */ blt lbl_8015732C /* 801573DC 0015303C 38 60 00 00 */ li r3, 0 /* 801573E0 00153040 4E 80 00 20 */ blr .global func_801573E4 func_801573E4: /* 801573E4 00153044 54 A0 10 3A */ slwi r0, r5, 2 /* 801573E8 00153048 39 00 00 00 */ li r8, 0 /* 801573EC 0015304C 7C A4 02 14 */ add r5, r4, r0 /* 801573F0 00153050 80 65 00 08 */ lwz r3, 8(r5) /* 801573F4 00153054 A0 83 00 DE */ lhz r4, 0xde(r3) /* 801573F8 00153058 48 00 00 A8 */ b lbl_801574A0 lbl_801573FC: /* 801573FC 0015305C 80 65 00 08 */ lwz r3, 8(r5) /* 80157400 00153060 80 C3 00 08 */ lwz r6, 8(r3) /* 80157404 00153064 2C 06 00 00 */ cmpwi r6, 0 /* 80157408 00153068 40 82 00 0C */ bne lbl_80157414 /* 8015740C 0015306C 38 60 00 00 */ li r3, 0 /* 80157410 00153070 48 00 00 24 */ b lbl_80157434 lbl_80157414: /* 80157414 00153074 A0 03 00 DE */ lhz r0, 0xde(r3) /* 80157418 00153078 55 03 04 3E */ clrlwi r3, r8, 0x10 /* 8015741C 0015307C 7C 03 00 40 */ cmplw r3, r0 /* 80157420 00153080 41 80 00 0C */ blt lbl_8015742C /* 80157424 00153084 38 60 00 00 */ li r3, 0 /* 80157428 00153088 48 00 00 0C */ b lbl_80157434 lbl_8015742C: /* 8015742C 0015308C 55 00 13 BA */ rlwinm r0, r8, 2, 0xe, 0x1d /* 80157430 00153090 7C 66 00 2E */ lwzx r3, r6, r0 lbl_80157434: /* 80157434 00153094 2C 03 00 00 */ cmpwi r3, 0 /* 80157438 00153098 41 82 00 64 */ beq lbl_8015749C /* 8015743C 0015309C 80 63 00 04 */ lwz r3, 4(r3) /* 80157440 001530A0 2C 03 00 00 */ cmpwi r3, 0 /* 80157444 001530A4 41 82 00 58 */ beq lbl_8015749C /* 80157448 001530A8 41 82 00 40 */ beq lbl_80157488 /* 8015744C 001530AC A0 E3 00 06 */ lhz r7, 6(r3) /* 80157450 001530B0 38 C0 00 01 */ li r6, 1 /* 80157454 001530B4 54 E0 07 7B */ rlwinm. r0, r7, 0, 0x1d, 0x1d /* 80157458 001530B8 40 82 00 34 */ bne lbl_8015748C /* 8015745C 001530BC 80 03 00 00 */ lwz r0, 0(r3) /* 80157460 001530C0 38 60 00 00 */ li r3, 0 /* 80157464 001530C4 2C 00 00 00 */ cmpwi r0, 0 /* 80157468 001530C8 41 82 00 10 */ beq lbl_80157478 /* 8015746C 001530CC 54 E0 07 FF */ clrlwi. r0, r7, 0x1f /* 80157470 001530D0 41 82 00 08 */ beq lbl_80157478 /* 80157474 001530D4 38 60 00 01 */ li r3, 1 lbl_80157478: /* 80157478 001530D8 2C 03 00 00 */ cmpwi r3, 0 /* 8015747C 001530DC 41 82 00 10 */ beq lbl_8015748C /* 80157480 001530E0 38 C0 00 00 */ li r6, 0 /* 80157484 001530E4 48 00 00 08 */ b lbl_8015748C lbl_80157488: /* 80157488 001530E8 38 C0 00 01 */ li r6, 1 lbl_8015748C: /* 8015748C 001530EC 2C 06 00 00 */ cmpwi r6, 0 /* 80157490 001530F0 41 82 00 0C */ beq lbl_8015749C /* 80157494 001530F4 38 60 00 01 */ li r3, 1 /* 80157498 001530F8 4E 80 00 20 */ blr lbl_8015749C: /* 8015749C 001530FC 39 08 00 01 */ addi r8, r8, 1 lbl_801574A0: /* 801574A0 00153100 55 00 04 3E */ clrlwi r0, r8, 0x10 /* 801574A4 00153104 7C 00 20 40 */ cmplw r0, r4 /* 801574A8 00153108 41 80 FF 54 */ blt lbl_801573FC /* 801574AC 0015310C 38 60 00 00 */ li r3, 0 /* 801574B0 00153110 4E 80 00 20 */ blr .global func_801574B4 func_801574B4: /* 801574B4 00153114 94 21 FF E0 */ stwu r1, -0x20(r1) /* 801574B8 00153118 7C 08 02 A6 */ mflr r0 /* 801574BC 0015311C 90 01 00 24 */ stw r0, 0x24(r1) /* 801574C0 00153120 93 E1 00 1C */ stw r31, 0x1c(r1) /* 801574C4 00153124 93 C1 00 18 */ stw r30, 0x18(r1) /* 801574C8 00153128 93 A1 00 14 */ stw r29, 0x14(r1) /* 801574CC 0015312C 7C 7D 1B 78 */ mr r29, r3 /* 801574D0 00153130 48 00 02 61 */ bl func_80157730 /* 801574D4 00153134 3B C0 00 00 */ li r30, 0 /* 801574D8 00153138 3B E0 00 00 */ li r31, 0 lbl_801574DC: /* 801574DC 0015313C 80 7D 00 00 */ lwz r3, 0(r29) /* 801574E0 00153140 2C 03 00 00 */ cmpwi r3, 0 /* 801574E4 00153144 41 82 00 14 */ beq lbl_801574F8 /* 801574E8 00153148 48 08 C3 09 */ bl func_801E37F0 /* 801574EC 0015314C 80 7D 00 00 */ lwz r3, 0(r29) /* 801574F0 00153150 4B EF E9 41 */ bl func_80055E30 /* 801574F4 00153154 93 FD 00 00 */ stw r31, 0(r29) lbl_801574F8: /* 801574F8 00153158 3B DE 00 01 */ addi r30, r30, 1 /* 801574FC 0015315C 3B BD 00 04 */ addi r29, r29, 4 /* 80157500 00153160 28 1E 00 02 */ cmplwi r30, 2 /* 80157504 00153164 41 80 FF D8 */ blt lbl_801574DC /* 80157508 00153168 80 01 00 24 */ lwz r0, 0x24(r1) /* 8015750C 0015316C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80157510 00153170 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80157514 00153174 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80157518 00153178 7C 08 03 A6 */ mtlr r0 /* 8015751C 0015317C 38 21 00 20 */ addi r1, r1, 0x20 /* 80157520 00153180 4E 80 00 20 */ blr .global func_80157524 func_80157524: /* 80157524 00153184 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80157528 00153188 7C 08 02 A6 */ mflr r0 /* 8015752C 0015318C 90 01 00 14 */ stw r0, 0x14(r1) /* 80157530 00153190 93 E1 00 0C */ stw r31, 0xc(r1) /* 80157534 00153194 7C 9F 23 78 */ mr r31, r4 /* 80157538 00153198 93 C1 00 08 */ stw r30, 8(r1) /* 8015753C 0015319C 88 04 00 67 */ lbz r0, 0x67(r4) /* 80157540 001531A0 2C 00 00 00 */ cmpwi r0, 0 /* 80157544 001531A4 41 82 01 24 */ beq lbl_80157668 /* 80157548 001531A8 80 CD 9D 10 */ lwz r6, lbl_8063EFD0-_SDA_BASE_(r13) /* 8015754C 001531AC 38 A0 00 01 */ li r5, 1 /* 80157550 001531B0 88 64 00 66 */ lbz r3, 0x66(r4) /* 80157554 001531B4 88 04 00 71 */ lbz r0, 0x71(r4) /* 80157558 001531B8 7C C6 1A 14 */ add r6, r6, r3 /* 8015755C 001531BC 88 66 01 E4 */ lbz r3, 0x1e4(r6) /* 80157560 001531C0 7C A5 00 30 */ slw r5, r5, r0 /* 80157564 001531C4 7C A0 18 39 */ and. r0, r5, r3 /* 80157568 001531C8 41 82 00 3C */ beq lbl_801575A4 /* 8015756C 001531CC 7C 60 28 78 */ andc r0, r3, r5 /* 80157570 001531D0 98 06 01 E4 */ stb r0, 0x1e4(r6) /* 80157574 001531D4 88 84 00 66 */ lbz r4, 0x66(r4) /* 80157578 001531D8 80 0D 9D 10 */ lwz r0, lbl_8063EFD0-_SDA_BASE_(r13) /* 8015757C 001531DC 7C 60 22 14 */ add r3, r0, r4 /* 80157580 001531E0 88 03 01 E4 */ lbz r0, 0x1e4(r3) /* 80157584 001531E4 2C 00 00 00 */ cmpwi r0, 0 /* 80157588 001531E8 40 82 00 1C */ bne lbl_801575A4 /* 8015758C 001531EC 3C 60 80 42 */ lis r3, lbl_8041E878@ha /* 80157590 001531F0 54 80 15 BA */ rlwinm r0, r4, 2, 0x16, 0x1d /* 80157594 001531F4 38 63 E8 78 */ addi r3, r3, lbl_8041E878@l /* 80157598 001531F8 38 80 00 00 */ li r4, 0 /* 8015759C 001531FC 7C 63 00 2E */ lwzx r3, r3, r0 /* 801575A0 00153200 4B EB 3E CD */ bl func_8000B46C lbl_801575A4: /* 801575A4 00153204 80 7F 00 18 */ lwz r3, 0x18(r31) /* 801575A8 00153208 2C 03 00 00 */ cmpwi r3, 0 /* 801575AC 0015320C 41 82 00 10 */ beq lbl_801575BC /* 801575B0 00153210 48 0A C6 4D */ bl func_80203BFC /* 801575B4 00153214 38 00 00 00 */ li r0, 0 /* 801575B8 00153218 90 1F 00 18 */ stw r0, 0x18(r31) lbl_801575BC: /* 801575BC 0015321C 80 7F 00 14 */ lwz r3, 0x14(r31) /* 801575C0 00153220 2C 03 00 00 */ cmpwi r3, 0 /* 801575C4 00153224 41 82 00 10 */ beq lbl_801575D4 /* 801575C8 00153228 48 0A C6 35 */ bl func_80203BFC /* 801575CC 0015322C 38 00 00 00 */ li r0, 0 /* 801575D0 00153230 90 1F 00 14 */ stw r0, 0x14(r31) lbl_801575D4: /* 801575D4 00153234 80 7F 00 10 */ lwz r3, 0x10(r31) /* 801575D8 00153238 2C 03 00 00 */ cmpwi r3, 0 /* 801575DC 0015323C 41 82 00 24 */ beq lbl_80157600 /* 801575E0 00153240 41 82 00 18 */ beq lbl_801575F8 /* 801575E4 00153244 81 83 01 00 */ lwz r12, 0x100(r3) /* 801575E8 00153248 38 80 00 01 */ li r4, 1 /* 801575EC 0015324C 81 8C 00 08 */ lwz r12, 8(r12) /* 801575F0 00153250 7D 89 03 A6 */ mtctr r12 /* 801575F4 00153254 4E 80 04 21 */ bctrl lbl_801575F8: /* 801575F8 00153258 38 00 00 00 */ li r0, 0 /* 801575FC 0015325C 90 1F 00 10 */ stw r0, 0x10(r31) lbl_80157600: /* 80157600 00153260 80 7F 00 04 */ lwz r3, 4(r31) /* 80157604 00153264 38 80 00 FF */ li r4, 0xff /* 80157608 00153268 3B C0 00 00 */ li r30, 0 /* 8015760C 0015326C 38 00 FF FF */ li r0, -1 /* 80157610 00153270 2C 03 00 00 */ cmpwi r3, 0 /* 80157614 00153274 98 9F 00 6C */ stb r4, 0x6c(r31) /* 80157618 00153278 98 9F 00 6D */ stb r4, 0x6d(r31) /* 8015761C 0015327C 98 9F 00 6E */ stb r4, 0x6e(r31) /* 80157620 00153280 98 9F 00 6F */ stb r4, 0x6f(r31) /* 80157624 00153284 98 9F 00 70 */ stb r4, 0x70(r31) /* 80157628 00153288 93 DF 00 08 */ stw r30, 8(r31) /* 8015762C 0015328C 93 DF 00 0C */ stw r30, 0xc(r31) /* 80157630 00153290 90 1F 00 68 */ stw r0, 0x68(r31) /* 80157634 00153294 41 82 00 10 */ beq lbl_80157644 /* 80157638 00153298 38 80 00 01 */ li r4, 1 /* 8015763C 0015329C 48 0A 2C 59 */ bl func_801FA294 /* 80157640 001532A0 93 DF 00 04 */ stw r30, 4(r31) lbl_80157644: /* 80157644 001532A4 80 7F 00 00 */ lwz r3, 0(r31) /* 80157648 001532A8 2C 03 00 00 */ cmpwi r3, 0 /* 8015764C 001532AC 41 82 00 14 */ beq lbl_80157660 /* 80157650 001532B0 38 80 00 01 */ li r4, 1 /* 80157654 001532B4 48 0A 2C 41 */ bl func_801FA294 /* 80157658 001532B8 38 00 00 00 */ li r0, 0 /* 8015765C 001532BC 90 1F 00 00 */ stw r0, 0(r31) lbl_80157660: /* 80157660 001532C0 38 00 00 00 */ li r0, 0 /* 80157664 001532C4 98 1F 00 67 */ stb r0, 0x67(r31) lbl_80157668: /* 80157668 001532C8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8015766C 001532CC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80157670 001532D0 83 C1 00 08 */ lwz r30, 8(r1) /* 80157674 001532D4 7C 08 03 A6 */ mtlr r0 /* 80157678 001532D8 38 21 00 10 */ addi r1, r1, 0x10 /* 8015767C 001532DC 4E 80 00 20 */ blr .global func_80157680 func_80157680: /* 80157680 001532E0 54 A0 10 3A */ slwi r0, r5, 2 /* 80157684 001532E4 C0 22 8E E8 */ lfs f1, lbl_806414E8-_SDA2_BASE_(r2) /* 80157688 001532E8 7C 64 02 14 */ add r3, r4, r0 /* 8015768C 001532EC 38 E0 00 00 */ li r7, 0 /* 80157690 001532F0 80 A3 00 08 */ lwz r5, 8(r3) /* 80157694 001532F4 A0 85 00 DE */ lhz r4, 0xde(r5) /* 80157698 001532F8 2C 04 00 00 */ cmpwi r4, 0 /* 8015769C 001532FC 4D 82 00 20 */ beqlr /* 801576A0 00153300 48 00 00 80 */ b lbl_80157720 lbl_801576A4: /* 801576A4 00153304 80 C5 00 08 */ lwz r6, 8(r5) /* 801576A8 00153308 2C 06 00 00 */ cmpwi r6, 0 /* 801576AC 0015330C 40 82 00 0C */ bne lbl_801576B8 /* 801576B0 00153310 38 60 00 00 */ li r3, 0 /* 801576B4 00153314 48 00 00 24 */ b lbl_801576D8 lbl_801576B8: /* 801576B8 00153318 A0 05 00 DE */ lhz r0, 0xde(r5) /* 801576BC 0015331C 54 E3 04 3E */ clrlwi r3, r7, 0x10 /* 801576C0 00153320 7C 03 00 40 */ cmplw r3, r0 /* 801576C4 00153324 41 80 00 0C */ blt lbl_801576D0 /* 801576C8 00153328 38 60 00 00 */ li r3, 0 /* 801576CC 0015332C 48 00 00 0C */ b lbl_801576D8 lbl_801576D0: /* 801576D0 00153330 54 E0 13 BA */ rlwinm r0, r7, 2, 0xe, 0x1d /* 801576D4 00153334 7C 66 00 2E */ lwzx r3, r6, r0 lbl_801576D8: /* 801576D8 00153338 2C 03 00 00 */ cmpwi r3, 0 /* 801576DC 0015333C 41 82 00 40 */ beq lbl_8015771C /* 801576E0 00153340 80 63 00 04 */ lwz r3, 4(r3) /* 801576E4 00153344 2C 03 00 00 */ cmpwi r3, 0 /* 801576E8 00153348 41 82 00 34 */ beq lbl_8015771C /* 801576EC 0015334C 41 82 00 20 */ beq lbl_8015770C /* 801576F0 00153350 80 63 00 00 */ lwz r3, 0(r3) /* 801576F4 00153354 2C 03 00 00 */ cmpwi r3, 0 /* 801576F8 00153358 41 82 00 0C */ beq lbl_80157704 /* 801576FC 0015335C C0 03 00 08 */ lfs f0, 8(r3) /* 80157700 00153360 48 00 00 10 */ b lbl_80157710 lbl_80157704: /* 80157704 00153364 C0 02 8E E8 */ lfs f0, lbl_806414E8-_SDA2_BASE_(r2) /* 80157708 00153368 48 00 00 08 */ b lbl_80157710 lbl_8015770C: /* 8015770C 0015336C C0 02 8E E8 */ lfs f0, lbl_806414E8-_SDA2_BASE_(r2) lbl_80157710: /* 80157710 00153370 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 80157714 00153374 40 80 00 08 */ bge lbl_8015771C /* 80157718 00153378 FC 20 00 90 */ fmr f1, f0 lbl_8015771C: /* 8015771C 0015337C 38 E7 00 01 */ addi r7, r7, 1 lbl_80157720: /* 80157720 00153380 54 E0 04 3E */ clrlwi r0, r7, 0x10 /* 80157724 00153384 7C 00 20 40 */ cmplw r0, r4 /* 80157728 00153388 41 80 FF 7C */ blt lbl_801576A4 /* 8015772C 0015338C 4E 80 00 20 */ blr .global func_80157730 func_80157730: /* 80157730 00153390 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80157734 00153394 7C 08 02 A6 */ mflr r0 /* 80157738 00153398 90 01 00 24 */ stw r0, 0x24(r1) /* 8015773C 0015339C 39 61 00 20 */ addi r11, r1, 0x20 /* 80157740 001533A0 48 06 F9 E9 */ bl _savegpr_27 /* 80157744 001533A4 7C 7B 1B 78 */ mr r27, r3 /* 80157748 001533A8 3B C3 00 14 */ addi r30, r3, 0x14 /* 8015774C 001533AC 3B 80 00 00 */ li r28, 0 lbl_80157750: /* 80157750 001533B0 7F 63 DB 78 */ mr r3, r27 /* 80157754 001533B4 7F C4 F3 78 */ mr r4, r30 /* 80157758 001533B8 4B FF FD CD */ bl func_80157524 /* 8015775C 001533BC 3B 9C 00 01 */ addi r28, r28, 1 /* 80157760 001533C0 3B DE 00 74 */ addi r30, r30, 0x74 /* 80157764 001533C4 28 1C 00 04 */ cmplwi r28, 4 /* 80157768 001533C8 41 80 FF E8 */ blt lbl_80157750 /* 8015776C 001533CC 3F C0 80 42 */ lis r30, lbl_8041E878@ha /* 80157770 001533D0 3B 80 00 00 */ li r28, 0 /* 80157774 001533D4 3B DE E8 78 */ addi r30, r30, lbl_8041E878@l /* 80157778 001533D8 3B E0 00 00 */ li r31, 0 lbl_8015777C: /* 8015777C 001533DC 7F BB E2 14 */ add r29, r27, r28 /* 80157780 001533E0 88 1D 01 E4 */ lbz r0, 0x1e4(r29) /* 80157784 001533E4 2C 00 00 00 */ cmpwi r0, 0 /* 80157788 001533E8 41 82 00 14 */ beq lbl_8015779C /* 8015778C 001533EC 80 7E 00 00 */ lwz r3, 0(r30) /* 80157790 001533F0 38 80 00 00 */ li r4, 0 /* 80157794 001533F4 4B EB 3C D9 */ bl func_8000B46C /* 80157798 001533F8 9B FD 01 E4 */ stb r31, 0x1e4(r29) lbl_8015779C: /* 8015779C 001533FC 3B 9C 00 01 */ addi r28, r28, 1 /* 801577A0 00153400 3B DE 00 04 */ addi r30, r30, 4 /* 801577A4 00153404 28 1C 00 12 */ cmplwi r28, 0x12 /* 801577A8 00153408 41 80 FF D4 */ blt lbl_8015777C /* 801577AC 0015340C 39 61 00 20 */ addi r11, r1, 0x20 /* 801577B0 00153410 48 06 F9 C5 */ bl _restgpr_27 /* 801577B4 00153414 80 01 00 24 */ lwz r0, 0x24(r1) /* 801577B8 00153418 7C 08 03 A6 */ mtlr r0 /* 801577BC 0015341C 38 21 00 20 */ addi r1, r1, 0x20 /* 801577C0 00153420 4E 80 00 20 */ blr .global func_801577C4 func_801577C4: /* 801577C4 00153424 80 6D 9D 10 */ lwz r3, lbl_8063EFD0-_SDA_BASE_(r13) /* 801577C8 00153428 2C 03 00 00 */ cmpwi r3, 0 /* 801577CC 0015342C 40 82 00 0C */ bne lbl_801577D8 /* 801577D0 00153430 38 60 00 00 */ li r3, 0 /* 801577D4 00153434 4E 80 00 20 */ blr lbl_801577D8: /* 801577D8 00153438 88 03 00 7B */ lbz r0, 0x7b(r3) /* 801577DC 0015343C 2C 00 00 00 */ cmpwi r0, 0 /* 801577E0 00153440 41 82 00 0C */ beq lbl_801577EC /* 801577E4 00153444 38 60 00 01 */ li r3, 1 /* 801577E8 00153448 4E 80 00 20 */ blr lbl_801577EC: /* 801577EC 0015344C 38 63 00 88 */ addi r3, r3, 0x88 /* 801577F0 00153450 88 03 00 67 */ lbz r0, 0x67(r3) /* 801577F4 00153454 2C 00 00 00 */ cmpwi r0, 0 /* 801577F8 00153458 41 82 00 0C */ beq lbl_80157804 /* 801577FC 0015345C 38 60 00 01 */ li r3, 1 /* 80157800 00153460 4E 80 00 20 */ blr lbl_80157804: /* 80157804 00153464 88 03 00 DB */ lbz r0, 0xdb(r3) /* 80157808 00153468 2C 00 00 00 */ cmpwi r0, 0 /* 8015780C 0015346C 41 82 00 0C */ beq lbl_80157818 /* 80157810 00153470 38 60 00 01 */ li r3, 1 /* 80157814 00153474 4E 80 00 20 */ blr lbl_80157818: /* 80157818 00153478 88 03 01 4F */ lbz r0, 0x14f(r3) /* 8015781C 0015347C 2C 00 00 00 */ cmpwi r0, 0 /* 80157820 00153480 41 82 00 0C */ beq lbl_8015782C /* 80157824 00153484 38 60 00 01 */ li r3, 1 /* 80157828 00153488 4E 80 00 20 */ blr lbl_8015782C: /* 8015782C 0015348C 38 60 00 00 */ li r3, 0 /* 80157830 00153490 4E 80 00 20 */ blr .global func_80157834 func_80157834: /* 80157834 00153494 38 A0 00 01 */ li r5, 1 /* 80157838 00153498 38 6D 9D 08 */ addi r3, r13, lbl_8063EFC8-_SDA_BASE_ /* 8015783C 0015349C 38 80 00 04 */ li r4, 4 /* 80157840 001534A0 38 00 00 00 */ li r0, 0 /* 80157844 001534A4 98 AD 9D 08 */ stb r5, lbl_8063EFC8-_SDA_BASE_(r13) /* 80157848 001534A8 B0 83 00 02 */ sth r4, 2(r3) /* 8015784C 001534AC 98 03 00 04 */ stb r0, 4(r3) /* 80157850 001534B0 4E 80 00 20 */ blr