.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_801581B8 func_801581B8: /* 801581B8 00153E18 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801581BC 00153E1C 38 A0 00 00 */ li r5, 0 /* 801581C0 00153E20 38 80 FF FF */ li r4, -1 /* 801581C4 00153E24 38 00 00 FF */ li r0, 0xff /* 801581C8 00153E28 90 A3 00 08 */ stw r5, 8(r3) /* 801581CC 00153E2C C8 02 8F 58 */ lfd f0, lbl_80641558-_SDA2_BASE_(r2) /* 801581D0 00153E30 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801581D4 00153E34 B0 83 00 12 */ sth r4, 0x12(r3) /* 801581D8 00153E38 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801581DC 00153E3C 90 A3 00 18 */ stw r5, 0x18(r3) /* 801581E0 00153E40 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801581E4 00153E44 90 A3 00 14 */ stw r5, 0x14(r3) /* 801581E8 00153E48 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801581EC 00153E4C 90 83 00 0C */ stw r4, 0xc(r3) /* 801581F0 00153E50 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801581F4 00153E54 98 03 00 1C */ stb r0, 0x1c(r3) /* 801581F8 00153E58 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801581FC 00153E5C D8 03 00 00 */ stfd f0, 0(r3) /* 80158200 00153E60 98 A3 00 10 */ stb r5, 0x10(r3) /* 80158204 00153E64 4E 80 00 20 */ blr .global func_80158208 func_80158208: /* 80158208 00153E68 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8015820C 00153E6C 7C 08 02 A6 */ mflr r0 /* 80158210 00153E70 90 01 00 14 */ stw r0, 0x14(r1) /* 80158214 00153E74 93 E1 00 0C */ stw r31, 0xc(r1) /* 80158218 00153E78 80 CD 82 E0 */ lwz r6, lbl_8063D5A0-_SDA_BASE_(r13) /* 8015821C 00153E7C 90 66 00 18 */ stw r3, 0x18(r6) /* 80158220 00153E80 38 60 00 00 */ li r3, 0 /* 80158224 00153E84 80 CD 82 E0 */ lwz r6, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158228 00153E88 90 86 00 14 */ stw r4, 0x14(r6) /* 8015822C 00153E8C 38 80 00 00 */ li r4, 0 /* 80158230 00153E90 80 CD 82 E0 */ lwz r6, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158234 00153E94 98 A6 00 10 */ stb r5, 0x10(r6) /* 80158238 00153E98 38 A0 FF FF */ li r5, -1 /* 8015823C 00153E9C 48 0F BD 31 */ bl func_80253F6C /* 80158240 00153EA0 80 AD 82 E0 */ lwz r5, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158244 00153EA4 3F E0 0B CC */ lis r31, 0x0BCC1A00@ha /* 80158248 00153EA8 38 9F 1A 00 */ addi r4, r31, 0x0BCC1A00@l /* 8015824C 00153EAC 90 65 00 0C */ stw r3, 0xc(r5) /* 80158250 00153EB0 38 60 04 09 */ li r3, 0x409 /* 80158254 00153EB4 48 0F 15 C9 */ bl func_8024981C /* 80158258 00153EB8 38 9F 1A 00 */ addi r4, r31, 0x1a00 /* 8015825C 00153EBC 38 60 04 09 */ li r3, 0x409 /* 80158260 00153EC0 4B EF DB 39 */ bl func_80055D98 /* 80158264 00153EC4 80 ED 82 E0 */ lwz r7, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158268 00153EC8 3C A0 80 16 */ lis r5, lbl_80158674@ha /* 8015826C 00153ECC 3C C0 80 16 */ lis r6, lbl_80158C68@ha /* 80158270 00153ED0 38 80 00 00 */ li r4, 0 /* 80158274 00153ED4 90 67 00 08 */ stw r3, 8(r7) /* 80158278 00153ED8 38 A5 86 74 */ addi r5, r5, lbl_80158674@l /* 8015827C 00153EDC 38 C6 8C 68 */ addi r6, r6, lbl_80158C68@l /* 80158280 00153EE0 38 E0 FF FF */ li r7, -1 /* 80158284 00153EE4 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158288 00153EE8 39 00 00 00 */ li r8, 0 /* 8015828C 00153EEC 39 20 00 01 */ li r9, 1 /* 80158290 00153EF0 39 40 00 00 */ li r10, 0 /* 80158294 00153EF4 80 63 00 08 */ lwz r3, 8(r3) /* 80158298 00153EF8 48 0F B9 A1 */ bl func_80253C38 /* 8015829C 00153EFC 80 AD 82 E0 */ lwz r5, lbl_8063D5A0-_SDA_BASE_(r13) /* 801582A0 00153F00 38 9F 1A 00 */ addi r4, r31, 0x1a00 /* 801582A4 00153F04 B0 65 00 12 */ sth r3, 0x12(r5) /* 801582A8 00153F08 38 60 04 09 */ li r3, 0x409 /* 801582AC 00153F0C 48 08 33 99 */ bl func_801DB644 /* 801582B0 00153F10 38 60 02 61 */ li r3, 0x261 /* 801582B4 00153F14 48 00 A7 DD */ bl func_80162A90 /* 801582B8 00153F18 28 03 00 02 */ cmplwi r3, 2 /* 801582BC 00153F1C 40 82 00 0C */ bne lbl_801582C8 /* 801582C0 00153F20 38 60 00 00 */ li r3, 0 /* 801582C4 00153F24 4B F3 1E 61 */ bl func_8008A124 lbl_801582C8: /* 801582C8 00153F28 80 01 00 14 */ lwz r0, 0x14(r1) /* 801582CC 00153F2C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 801582D0 00153F30 7C 08 03 A6 */ mtlr r0 /* 801582D4 00153F34 38 21 00 10 */ addi r1, r1, 0x10 /* 801582D8 00153F38 4E 80 00 20 */ blr .global func_801582DC func_801582DC: /* 801582DC 00153F3C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 801582E0 00153F40 7C 08 02 A6 */ mflr r0 /* 801582E4 00153F44 38 80 00 08 */ li r4, 8 /* 801582E8 00153F48 38 A0 00 01 */ li r5, 1 /* 801582EC 00153F4C 90 01 00 14 */ stw r0, 0x14(r1) /* 801582F0 00153F50 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801582F4 00153F54 A8 63 00 12 */ lha r3, 0x12(r3) /* 801582F8 00153F58 48 0F BA F9 */ bl func_80253DF0 /* 801582FC 00153F5C 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158300 00153F60 38 80 00 01 */ li r4, 1 /* 80158304 00153F64 38 A0 00 00 */ li r5, 0 /* 80158308 00153F68 A8 63 00 12 */ lha r3, 0x12(r3) /* 8015830C 00153F6C 48 0F BA A5 */ bl func_80253DB0 /* 80158310 00153F70 80 AD 82 E0 */ lwz r5, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158314 00153F74 3C 60 80 16 */ lis r3, lbl_80158450@ha /* 80158318 00153F78 3C 80 80 16 */ lis r4, lbl_80158644@ha /* 8015831C 00153F7C 80 A5 00 0C */ lwz r5, 0xc(r5) /* 80158320 00153F80 38 63 84 50 */ addi r3, r3, lbl_80158450@l /* 80158324 00153F84 38 84 86 44 */ addi r4, r4, lbl_80158644@l /* 80158328 00153F88 48 0F BC 45 */ bl func_80253F6C /* 8015832C 00153F8C 38 60 00 00 */ li r3, 0 /* 80158330 00153F90 4B EF E1 29 */ bl func_80056458 /* 80158334 00153F94 4B EF DF 89 */ bl func_800562BC /* 80158338 00153F98 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 8015833C 00153F9C 38 00 00 00 */ li r0, 0 /* 80158340 00153FA0 98 03 00 1C */ stb r0, 0x1c(r3) /* 80158344 00153FA4 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158348 00153FA8 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8015834C 00153FAC 54 00 02 4E */ rlwinm r0, r0, 0, 9, 7 /* 80158350 00153FB0 90 03 00 1C */ stw r0, 0x1c(r3) /* 80158354 00153FB4 80 01 00 14 */ lwz r0, 0x14(r1) /* 80158358 00153FB8 7C 08 03 A6 */ mtlr r0 /* 8015835C 00153FBC 38 21 00 10 */ addi r1, r1, 0x10 /* 80158360 00153FC0 4E 80 00 20 */ blr .global func_80158364 func_80158364: /* 80158364 00153FC4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80158368 00153FC8 7C 08 02 A6 */ mflr r0 /* 8015836C 00153FCC 90 01 00 14 */ stw r0, 0x14(r1) /* 80158370 00153FD0 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158374 00153FD4 A8 03 00 12 */ lha r0, 0x12(r3) /* 80158378 00153FD8 2C 00 FF FF */ cmpwi r0, -1 /* 8015837C 00153FDC 41 82 00 0C */ beq lbl_80158388 /* 80158380 00153FE0 54 03 04 3E */ clrlwi r3, r0, 0x10 /* 80158384 00153FE4 48 0F B9 49 */ bl func_80253CCC lbl_80158388: /* 80158388 00153FE8 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 8015838C 00153FEC 80 63 00 08 */ lwz r3, 8(r3) /* 80158390 00153FF0 2C 03 00 00 */ cmpwi r3, 0 /* 80158394 00153FF4 41 82 00 08 */ beq lbl_8015839C /* 80158398 00153FF8 4B EF DA 99 */ bl func_80055E30 lbl_8015839C: /* 8015839C 00153FFC 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801583A0 00154000 38 80 FF FF */ li r4, -1 /* 801583A4 00154004 38 00 00 00 */ li r0, 0 /* 801583A8 00154008 B0 83 00 12 */ sth r4, 0x12(r3) /* 801583AC 0015400C 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801583B0 00154010 90 03 00 08 */ stw r0, 8(r3) /* 801583B4 00154014 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801583B8 00154018 80 63 00 0C */ lwz r3, 0xc(r3) /* 801583BC 0015401C 2C 03 FF FF */ cmpwi r3, -1 /* 801583C0 00154020 41 82 00 08 */ beq lbl_801583C8 /* 801583C4 00154024 48 0F BB C9 */ bl func_80253F8C lbl_801583C8: /* 801583C8 00154028 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801583CC 0015402C 38 80 FF FF */ li r4, -1 /* 801583D0 00154030 38 A0 00 FF */ li r5, 0xff /* 801583D4 00154034 38 00 00 00 */ li r0, 0 /* 801583D8 00154038 90 83 00 0C */ stw r4, 0xc(r3) /* 801583DC 0015403C 38 60 02 61 */ li r3, 0x261 /* 801583E0 00154040 80 8D 82 E0 */ lwz r4, lbl_8063D5A0-_SDA_BASE_(r13) /* 801583E4 00154044 98 A4 00 1C */ stb r5, 0x1c(r4) /* 801583E8 00154048 80 8D 82 E0 */ lwz r4, lbl_8063D5A0-_SDA_BASE_(r13) /* 801583EC 0015404C 90 04 00 14 */ stw r0, 0x14(r4) /* 801583F0 00154050 48 00 A6 A1 */ bl func_80162A90 /* 801583F4 00154054 28 03 00 02 */ cmplwi r3, 2 /* 801583F8 00154058 40 82 00 0C */ bne lbl_80158404 /* 801583FC 0015405C 38 60 00 02 */ li r3, 2 /* 80158400 00154060 4B F3 1D 25 */ bl func_8008A124 lbl_80158404: /* 80158404 00154064 80 8D 82 E0 */ lwz r4, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158408 00154068 80 64 00 1C */ lwz r3, 0x1c(r4) /* 8015840C 0015406C 54 60 4F FF */ rlwinm. r0, r3, 9, 0x1f, 0x1f /* 80158410 00154070 41 82 00 18 */ beq lbl_80158428 /* 80158414 00154074 54 60 02 4E */ rlwinm r0, r3, 0, 9, 7 /* 80158418 00154078 38 60 00 2A */ li r3, 0x2a /* 8015841C 0015407C 90 04 00 1C */ stw r0, 0x1c(r4) /* 80158420 00154080 38 80 00 00 */ li r4, 0 /* 80158424 00154084 4B EB 30 49 */ bl func_8000B46C lbl_80158428: /* 80158428 00154088 80 01 00 14 */ lwz r0, 0x14(r1) /* 8015842C 0015408C 7C 08 03 A6 */ mtlr r0 /* 80158430 00154090 38 21 00 10 */ addi r1, r1, 0x10 /* 80158434 00154094 4E 80 00 20 */ blr .global func_80158438 func_80158438: /* 80158438 00154098 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 8015843C 0015409C 88 63 00 1C */ lbz r3, 0x1c(r3) /* 80158440 001540A0 38 03 FF 01 */ addi r0, r3, -255 /* 80158444 001540A4 7C 00 00 34 */ cntlzw r0, r0 /* 80158448 001540A8 54 03 D9 7E */ srwi r3, r0, 5 /* 8015844C 001540AC 4E 80 00 20 */ blr lbl_80158450: /* 80158450 001540B0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80158454 001540B4 7C 08 02 A6 */ mflr r0 /* 80158458 001540B8 90 01 00 24 */ stw r0, 0x24(r1) /* 8015845C 001540BC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80158460 001540C0 80 8D 82 E0 */ lwz r4, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158464 001540C4 88 04 00 1C */ lbz r0, 0x1c(r4) /* 80158468 001540C8 2C 00 00 F0 */ cmpwi r0, 0xf0 /* 8015846C 001540CC 41 82 01 90 */ beq lbl_801585FC /* 80158470 001540D0 40 80 00 28 */ bge lbl_80158498 /* 80158474 001540D4 2C 00 00 01 */ cmpwi r0, 1 /* 80158478 001540D8 41 82 00 78 */ beq lbl_801584F0 /* 8015847C 001540DC 40 80 00 10 */ bge lbl_8015848C /* 80158480 001540E0 2C 00 00 00 */ cmpwi r0, 0 /* 80158484 001540E4 40 80 00 20 */ bge lbl_801584A4 /* 80158488 001540E8 48 00 01 A8 */ b lbl_80158630 lbl_8015848C: /* 8015848C 001540EC 2C 00 00 03 */ cmpwi r0, 3 /* 80158490 001540F0 40 80 01 A0 */ bge lbl_80158630 /* 80158494 001540F4 48 00 00 B4 */ b lbl_80158548 lbl_80158498: /* 80158498 001540F8 2C 00 00 FF */ cmpwi r0, 0xff /* 8015849C 001540FC 41 82 01 94 */ beq lbl_80158630 /* 801584A0 00154100 48 00 01 90 */ b lbl_80158630 lbl_801584A4: /* 801584A4 00154104 4B EF DE 55 */ bl func_800562F8 /* 801584A8 00154108 2C 03 00 00 */ cmpwi r3, 0 /* 801584AC 0015410C 41 82 01 84 */ beq lbl_80158630 /* 801584B0 00154110 38 60 02 61 */ li r3, 0x261 /* 801584B4 00154114 48 00 A5 DD */ bl func_80162A90 /* 801584B8 00154118 28 03 00 02 */ cmplwi r3, 2 /* 801584BC 0015411C 40 82 00 24 */ bne lbl_801584E0 /* 801584C0 00154120 38 60 00 01 */ li r3, 1 /* 801584C4 00154124 4B F3 1C 61 */ bl func_8008A124 /* 801584C8 00154128 2C 03 00 00 */ cmpwi r3, 0 /* 801584CC 0015412C 41 82 01 64 */ beq lbl_80158630 /* 801584D0 00154130 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801584D4 00154134 38 00 00 01 */ li r0, 1 /* 801584D8 00154138 98 03 00 1C */ stb r0, 0x1c(r3) /* 801584DC 0015413C 48 00 01 54 */ b lbl_80158630 lbl_801584E0: /* 801584E0 00154140 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801584E4 00154144 38 00 00 01 */ li r0, 1 /* 801584E8 00154148 98 03 00 1C */ stb r0, 0x1c(r3) /* 801584EC 0015414C 48 00 01 44 */ b lbl_80158630 lbl_801584F0: /* 801584F0 00154150 38 60 00 02 */ li r3, 2 /* 801584F4 00154154 3C 00 43 30 */ lis r0, 0x4330 /* 801584F8 00154158 98 64 00 1C */ stb r3, 0x1c(r4) /* 801584FC 0015415C 38 60 00 2A */ li r3, 0x2a /* 80158500 00154160 C8 62 8F 70 */ lfd f3, lbl_80641570-_SDA2_BASE_(r2) /* 80158504 00154164 38 80 00 00 */ li r4, 0 /* 80158508 00154168 80 AD A3 D8 */ lwz r5, lbl_8063F698-_SDA_BASE_(r13) /* 8015850C 0015416C 90 01 00 08 */ stw r0, 8(r1) /* 80158510 00154170 88 05 00 59 */ lbz r0, 0x59(r5) /* 80158514 00154174 C8 05 00 A0 */ lfd f0, 0xa0(r5) /* 80158518 00154178 90 01 00 0C */ stw r0, 0xc(r1) /* 8015851C 0015417C 80 AD 82 E0 */ lwz r5, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158520 00154180 C8 41 00 08 */ lfd f2, 8(r1) /* 80158524 00154184 C0 22 8F 60 */ lfs f1, lbl_80641560-_SDA2_BASE_(r2) /* 80158528 00154188 FC 42 18 28 */ fsub f2, f2, f3 /* 8015852C 0015418C FC 00 10 24 */ fdiv f0, f0, f2 /* 80158530 00154190 D8 05 00 00 */ stfd f0, 0(r5) /* 80158534 00154194 80 05 00 1C */ lwz r0, 0x1c(r5) /* 80158538 00154198 64 00 00 80 */ oris r0, r0, 0x80 /* 8015853C 0015419C 90 05 00 1C */ stw r0, 0x1c(r5) /* 80158540 001541A0 4B EB 2C 31 */ bl func_8000B170 /* 80158544 001541A4 48 00 00 EC */ b lbl_80158630 lbl_80158548: /* 80158548 001541A8 38 60 02 61 */ li r3, 0x261 /* 8015854C 001541AC 48 00 A5 45 */ bl func_80162A90 /* 80158550 001541B0 80 AD A3 D8 */ lwz r5, lbl_8063F698-_SDA_BASE_(r13) /* 80158554 001541B4 38 83 FF FE */ addi r4, r3, -2 /* 80158558 001541B8 3C 00 43 30 */ lis r0, 0x4330 /* 8015855C 001541BC 80 CD 82 E0 */ lwz r6, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158560 001541C0 88 65 00 59 */ lbz r3, 0x59(r5) /* 80158564 001541C4 7C 84 00 34 */ cntlzw r4, r4 /* 80158568 001541C8 90 01 00 08 */ stw r0, 8(r1) /* 8015856C 001541CC 54 9F D9 7E */ srwi r31, r4, 5 /* 80158570 001541D0 C8 62 8F 70 */ lfd f3, lbl_80641570-_SDA2_BASE_(r2) /* 80158574 001541D4 90 61 00 0C */ stw r3, 0xc(r1) /* 80158578 001541D8 C8 45 00 A0 */ lfd f2, 0xa0(r5) /* 8015857C 001541DC C8 01 00 08 */ lfd f0, 8(r1) /* 80158580 001541E0 C8 26 00 00 */ lfd f1, 0(r6) /* 80158584 001541E4 FC 60 18 28 */ fsub f3, f0, f3 /* 80158588 001541E8 C8 02 8F 68 */ lfd f0, lbl_80641568-_SDA2_BASE_(r2) /* 8015858C 001541EC FC 42 18 24 */ fdiv f2, f2, f3 /* 80158590 001541F0 FC 22 08 28 */ fsub f1, f2, f1 /* 80158594 001541F4 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 80158598 001541F8 4C 41 13 82 */ cror 2, 1, 2 /* 8015859C 001541FC 40 82 00 14 */ bne lbl_801585B0 /* 801585A0 00154200 38 00 00 F0 */ li r0, 0xf0 /* 801585A4 00154204 98 06 00 1C */ stb r0, 0x1c(r6) /* 801585A8 00154208 4B EF DC CD */ bl func_80056274 /* 801585AC 0015420C 48 00 00 84 */ b lbl_80158630 lbl_801585B0: /* 801585B0 00154210 7F E6 FB 78 */ mr r6, r31 /* 801585B4 00154214 3C 60 04 00 */ lis r3, 0x400 /* 801585B8 00154218 38 80 00 00 */ li r4, 0 /* 801585BC 0015421C 38 A0 00 00 */ li r5, 0 /* 801585C0 00154220 4B F0 14 AD */ bl func_80059A6C /* 801585C4 00154224 2C 03 00 00 */ cmpwi r3, 0 /* 801585C8 00154228 40 82 00 20 */ bne lbl_801585E8 /* 801585CC 0015422C 7F E6 FB 78 */ mr r6, r31 /* 801585D0 00154230 3C 60 04 00 */ lis r3, 0x400 /* 801585D4 00154234 38 80 00 01 */ li r4, 1 /* 801585D8 00154238 38 A0 00 00 */ li r5, 0 /* 801585DC 0015423C 4B F0 14 91 */ bl func_80059A6C /* 801585E0 00154240 2C 03 00 00 */ cmpwi r3, 0 /* 801585E4 00154244 41 82 00 4C */ beq lbl_80158630 lbl_801585E8: /* 801585E8 00154248 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801585EC 0015424C 38 00 00 F0 */ li r0, 0xf0 /* 801585F0 00154250 98 03 00 1C */ stb r0, 0x1c(r3) /* 801585F4 00154254 4B EF DC 81 */ bl func_80056274 /* 801585F8 00154258 48 00 00 38 */ b lbl_80158630 lbl_801585FC: /* 801585FC 0015425C 4B EF DC FD */ bl func_800562F8 /* 80158600 00154260 2C 03 00 00 */ cmpwi r3, 0 /* 80158604 00154264 41 82 00 2C */ beq lbl_80158630 /* 80158608 00154268 80 AD 82 E0 */ lwz r5, lbl_8063D5A0-_SDA_BASE_(r13) /* 8015860C 0015426C 38 00 00 FF */ li r0, 0xff /* 80158610 00154270 38 60 00 2A */ li r3, 0x2a /* 80158614 00154274 38 80 00 00 */ li r4, 0 /* 80158618 00154278 98 05 00 1C */ stb r0, 0x1c(r5) /* 8015861C 0015427C 80 AD 82 E0 */ lwz r5, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158620 00154280 80 05 00 1C */ lwz r0, 0x1c(r5) /* 80158624 00154284 54 00 02 4E */ rlwinm r0, r0, 0, 9, 7 /* 80158628 00154288 90 05 00 1C */ stw r0, 0x1c(r5) /* 8015862C 0015428C 4B EB 2E 41 */ bl func_8000B46C lbl_80158630: /* 80158630 00154290 80 01 00 24 */ lwz r0, 0x24(r1) /* 80158634 00154294 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80158638 00154298 7C 08 03 A6 */ mtlr r0 /* 8015863C 0015429C 38 21 00 20 */ addi r1, r1, 0x20 /* 80158640 001542A0 4E 80 00 20 */ blr lbl_80158644: /* 80158644 001542A4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80158648 001542A8 7C 08 02 A6 */ mflr r0 /* 8015864C 001542AC 38 60 02 61 */ li r3, 0x261 /* 80158650 001542B0 90 01 00 14 */ stw r0, 0x14(r1) /* 80158654 001542B4 48 00 A4 3D */ bl func_80162A90 /* 80158658 001542B8 28 03 00 02 */ cmplwi r3, 2 /* 8015865C 001542BC 40 82 00 08 */ bne lbl_80158664 /* 80158660 001542C0 4B F3 1C 1D */ bl func_8008A27C lbl_80158664: /* 80158664 001542C4 80 01 00 14 */ lwz r0, 0x14(r1) /* 80158668 001542C8 7C 08 03 A6 */ mtlr r0 /* 8015866C 001542CC 38 21 00 10 */ addi r1, r1, 0x10 /* 80158670 001542D0 4E 80 00 20 */ blr lbl_80158674: /* 80158674 001542D4 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80158678 001542D8 7C 08 02 A6 */ mflr r0 /* 8015867C 001542DC 90 01 00 34 */ stw r0, 0x34(r1) /* 80158680 001542E0 39 61 00 30 */ addi r11, r1, 0x30 /* 80158684 001542E4 48 06 EA A5 */ bl _savegpr_27 /* 80158688 001542E8 3F 80 80 48 */ lis r28, lbl_804875B0@ha /* 8015868C 001542EC 7C 7D 1B 78 */ mr r29, r3 /* 80158690 001542F0 7C 9E 23 78 */ mr r30, r4 /* 80158694 001542F4 3B 9C 75 B0 */ addi r28, r28, lbl_804875B0@l /* 80158698 001542F8 4B FC 42 DD */ bl func_8011C974 /* 8015869C 001542FC 7C 7F 1B 78 */ mr r31, r3 /* 801586A0 00154300 7F A3 EB 78 */ mr r3, r29 /* 801586A4 00154304 7F C4 F3 78 */ mr r4, r30 /* 801586A8 00154308 38 C1 00 0C */ addi r6, r1, 0xc /* 801586AC 0015430C 38 A0 00 03 */ li r5, 3 /* 801586B0 00154310 48 0F B7 DD */ bl func_80253E8C /* 801586B4 00154314 80 01 00 0C */ lwz r0, 0xc(r1) /* 801586B8 00154318 28 00 00 10 */ cmplwi r0, 0x10 /* 801586BC 0015431C 41 81 05 94 */ bgt lbl_80158C50 /* 801586C0 00154320 3C 60 80 42 */ lis r3, lbl_8041E938@ha /* 801586C4 00154324 54 00 10 3A */ slwi r0, r0, 2 /* 801586C8 00154328 38 63 E9 38 */ addi r3, r3, lbl_8041E938@l /* 801586CC 0015432C 7C 63 00 2E */ lwzx r3, r3, r0 /* 801586D0 00154330 7C 69 03 A6 */ mtctr r3 /* 801586D4 00154334 4E 80 04 20 */ bctr /* 801586D8 00154338 7F A3 EB 78 */ mr r3, r29 /* 801586DC 0015433C 7F C4 F3 78 */ mr r4, r30 /* 801586E0 00154340 38 C1 00 08 */ addi r6, r1, 8 /* 801586E4 00154344 38 A0 00 05 */ li r5, 5 /* 801586E8 00154348 48 0F B7 A5 */ bl func_80253E8C /* 801586EC 0015434C 83 61 00 08 */ lwz r27, 8(r1) /* 801586F0 00154350 38 1C 01 40 */ addi r0, r28, 0x140 /* 801586F4 00154354 38 60 02 61 */ li r3, 0x261 /* 801586F8 00154358 90 1B 00 00 */ stw r0, 0(r27) /* 801586FC 0015435C 48 00 A3 95 */ bl func_80162A90 /* 80158700 00154360 28 03 00 03 */ cmplwi r3, 3 /* 80158704 00154364 40 82 00 14 */ bne lbl_80158718 /* 80158708 00154368 80 9B 00 00 */ lwz r4, 0(r27) /* 8015870C 0015436C 38 60 29 F5 */ li r3, 0x29f5 /* 80158710 00154370 48 0F 7C C9 */ bl func_802503D8 /* 80158714 00154374 48 00 00 30 */ b lbl_80158744 lbl_80158718: /* 80158718 00154378 38 60 02 61 */ li r3, 0x261 /* 8015871C 0015437C 48 00 A3 75 */ bl func_80162A90 /* 80158720 00154380 28 03 00 02 */ cmplwi r3, 2 /* 80158724 00154384 40 82 00 14 */ bne lbl_80158738 /* 80158728 00154388 80 9B 00 00 */ lwz r4, 0(r27) /* 8015872C 0015438C 38 60 29 F4 */ li r3, 0x29f4 /* 80158730 00154390 48 0F 7C A9 */ bl func_802503D8 /* 80158734 00154394 48 00 00 10 */ b lbl_80158744 lbl_80158738: /* 80158738 00154398 80 9B 00 00 */ lwz r4, 0(r27) /* 8015873C 0015439C 38 60 29 F6 */ li r3, 0x29f6 /* 80158740 001543A0 48 0F 7C 99 */ bl func_802503D8 lbl_80158744: /* 80158744 001543A4 38 00 00 FF */ li r0, 0xff /* 80158748 001543A8 38 E0 00 60 */ li r7, 0x60 /* 8015874C 001543AC 98 1B 00 04 */ stb r0, 4(r27) /* 80158750 001543B0 38 00 00 84 */ li r0, 0x84 /* 80158754 001543B4 7F A3 EB 78 */ mr r3, r29 /* 80158758 001543B8 7F C4 F3 78 */ mr r4, r30 /* 8015875C 001543BC 89 1E 00 03 */ lbz r8, 3(r30) /* 80158760 001543C0 38 A0 00 02 */ li r5, 2 /* 80158764 001543C4 38 C0 FF FE */ li r6, -2 /* 80158768 001543C8 99 1B 00 05 */ stb r8, 5(r27) /* 8015876C 001543CC 98 FB 00 06 */ stb r7, 6(r27) /* 80158770 001543D0 88 FE 00 05 */ lbz r7, 5(r30) /* 80158774 001543D4 98 FB 00 07 */ stb r7, 7(r27) /* 80158778 001543D8 98 1B 00 09 */ stb r0, 9(r27) /* 8015877C 001543DC 48 0F B7 39 */ bl func_80253EB4 /* 80158780 001543E0 48 00 04 D0 */ b lbl_80158C50 /* 80158784 001543E4 C0 02 8F 78 */ lfs f0, lbl_80641578-_SDA2_BASE_(r2) /* 80158788 001543E8 38 60 00 0E */ li r3, 0xe /* 8015878C 001543EC 80 9E 00 24 */ lwz r4, 0x24(r30) /* 80158790 001543F0 D0 04 00 00 */ stfs f0, 0(r4) /* 80158794 001543F4 80 8D 82 E0 */ lwz r4, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158798 001543F8 80 84 00 14 */ lwz r4, 0x14(r4) /* 8015879C 001543FC 48 00 3B 6D */ bl func_8015C308 /* 801587A0 00154400 7F A3 EB 78 */ mr r3, r29 /* 801587A4 00154404 7F C4 F3 78 */ mr r4, r30 /* 801587A8 00154408 38 A0 00 02 */ li r5, 2 /* 801587AC 0015440C 38 C0 52 13 */ li r6, 0x5213 /* 801587B0 00154410 48 0F B7 05 */ bl func_80253EB4 /* 801587B4 00154414 48 00 04 9C */ b lbl_80158C50 /* 801587B8 00154418 80 6D 82 E0 */ lwz r3, lbl_8063D5A0-_SDA_BASE_(r13) /* 801587BC 0015441C 88 03 00 10 */ lbz r0, 0x10(r3) /* 801587C0 00154420 2C 00 00 00 */ cmpwi r0, 0 /* 801587C4 00154424 41 82 00 1C */ beq lbl_801587E0 /* 801587C8 00154428 7F A3 EB 78 */ mr r3, r29 /* 801587CC 0015442C 7F C4 F3 78 */ mr r4, r30 /* 801587D0 00154430 38 A0 00 02 */ li r5, 2 /* 801587D4 00154434 38 C0 52 14 */ li r6, 0x5214 /* 801587D8 00154438 48 0F B6 DD */ bl func_80253EB4 /* 801587DC 0015443C 48 00 04 74 */ b lbl_80158C50 lbl_801587E0: /* 801587E0 00154440 80 1F 00 08 */ lwz r0, 8(r31) /* 801587E4 00154444 2C 00 00 02 */ cmpwi r0, 2 /* 801587E8 00154448 40 82 00 1C */ bne lbl_80158804 /* 801587EC 0015444C 7F A3 EB 78 */ mr r3, r29 /* 801587F0 00154450 7F C4 F3 78 */ mr r4, r30 /* 801587F4 00154454 38 A0 00 02 */ li r5, 2 /* 801587F8 00154458 38 C0 2A 5E */ li r6, 0x2a5e /* 801587FC 0015445C 48 0F B6 B9 */ bl func_80253EB4 /* 80158800 00154460 48 00 04 50 */ b lbl_80158C50 lbl_80158804: /* 80158804 00154464 2C 00 00 01 */ cmpwi r0, 1 /* 80158808 00154468 40 82 00 1C */ bne lbl_80158824 /* 8015880C 0015446C 7F A3 EB 78 */ mr r3, r29 /* 80158810 00154470 7F C4 F3 78 */ mr r4, r30 /* 80158814 00154474 38 A0 00 02 */ li r5, 2 /* 80158818 00154478 38 C0 2A 5F */ li r6, 0x2a5f /* 8015881C 0015447C 48 0F B6 99 */ bl func_80253EB4 /* 80158820 00154480 48 00 04 30 */ b lbl_80158C50 lbl_80158824: /* 80158824 00154484 2C 00 00 04 */ cmpwi r0, 4 /* 80158828 00154488 40 82 04 28 */ bne lbl_80158C50 /* 8015882C 0015448C 7F A3 EB 78 */ mr r3, r29 /* 80158830 00154490 7F C4 F3 78 */ mr r4, r30 /* 80158834 00154494 38 A0 00 02 */ li r5, 2 /* 80158838 00154498 38 C0 52 14 */ li r6, 0x5214 /* 8015883C 0015449C 48 0F B6 79 */ bl func_80253EB4 /* 80158840 001544A0 48 00 04 10 */ b lbl_80158C50 /* 80158844 001544A4 C0 02 8F 7C */ lfs f0, lbl_8064157C-_SDA2_BASE_(r2) /* 80158848 001544A8 7F A3 EB 78 */ mr r3, r29 /* 8015884C 001544AC 80 BE 00 24 */ lwz r5, 0x24(r30) /* 80158850 001544B0 7F C4 F3 78 */ mr r4, r30 /* 80158854 001544B4 C0 22 8F 80 */ lfs f1, lbl_80641580-_SDA2_BASE_(r2) /* 80158858 001544B8 38 C1 00 08 */ addi r6, r1, 8 /* 8015885C 001544BC D0 05 00 00 */ stfs f0, 0(r5) /* 80158860 001544C0 38 A0 00 05 */ li r5, 5 /* 80158864 001544C4 C0 02 8F 84 */ lfs f0, lbl_80641584-_SDA2_BASE_(r2) /* 80158868 001544C8 80 FE 00 24 */ lwz r7, 0x24(r30) /* 8015886C 001544CC D0 27 00 04 */ stfs f1, 4(r7) /* 80158870 001544D0 80 FE 00 24 */ lwz r7, 0x24(r30) /* 80158874 001544D4 D0 07 00 0C */ stfs f0, 0xc(r7) /* 80158878 001544D8 48 0F B6 15 */ bl func_80253E8C /* 8015887C 001544DC 83 61 00 08 */ lwz r27, 8(r1) /* 80158880 001544E0 38 9C 01 28 */ addi r4, r28, 0x128 /* 80158884 001544E4 38 60 2A 5A */ li r3, 0x2a5a /* 80158888 001544E8 90 9B 00 00 */ stw r4, 0(r27) /* 8015888C 001544EC 48 0F 7B 4D */ bl func_802503D8 /* 80158890 001544F0 38 00 00 FF */ li r0, 0xff /* 80158894 001544F4 38 80 00 46 */ li r4, 0x46 /* 80158898 001544F8 98 1B 00 04 */ stb r0, 4(r27) /* 8015889C 001544FC 38 E0 00 1E */ li r7, 0x1e /* 801588A0 00154500 38 00 00 84 */ li r0, 0x84 /* 801588A4 00154504 7F A3 EB 78 */ mr r3, r29 /* 801588A8 00154508 98 9B 00 05 */ stb r4, 5(r27) /* 801588AC 0015450C 7F C4 F3 78 */ mr r4, r30 /* 801588B0 00154510 38 A0 00 02 */ li r5, 2 /* 801588B4 00154514 38 C0 FF FE */ li r6, -2 /* 801588B8 00154518 98 FB 00 06 */ stb r7, 6(r27) /* 801588BC 0015451C 88 FE 00 05 */ lbz r7, 5(r30) /* 801588C0 00154520 98 FB 00 07 */ stb r7, 7(r27) /* 801588C4 00154524 98 1B 00 09 */ stb r0, 9(r27) /* 801588C8 00154528 48 0F B5 ED */ bl func_80253EB4 /* 801588CC 0015452C 48 00 03 84 */ b lbl_80158C50 /* 801588D0 00154530 38 60 02 61 */ li r3, 0x261 /* 801588D4 00154534 48 00 A1 BD */ bl func_80162A90 /* 801588D8 00154538 28 03 00 02 */ cmplwi r3, 2 /* 801588DC 0015453C 41 82 00 28 */ beq lbl_80158904 /* 801588E0 00154540 C0 02 8F 88 */ lfs f0, lbl_80641588-_SDA2_BASE_(r2) /* 801588E4 00154544 80 7E 00 24 */ lwz r3, 0x24(r30) /* 801588E8 00154548 C0 22 8F 8C */ lfs f1, lbl_8064158C-_SDA2_BASE_(r2) /* 801588EC 0015454C D0 03 00 00 */ stfs f0, 0(r3) /* 801588F0 00154550 C0 02 8F 90 */ lfs f0, lbl_80641590-_SDA2_BASE_(r2) /* 801588F4 00154554 80 7E 00 24 */ lwz r3, 0x24(r30) /* 801588F8 00154558 D0 23 00 04 */ stfs f1, 4(r3) /* 801588FC 0015455C 80 7E 00 24 */ lwz r3, 0x24(r30) /* 80158900 00154560 D0 03 00 0C */ stfs f0, 0xc(r3) lbl_80158904: /* 80158904 00154564 7F A3 EB 78 */ mr r3, r29 /* 80158908 00154568 7F C4 F3 78 */ mr r4, r30 /* 8015890C 0015456C 38 C1 00 08 */ addi r6, r1, 8 /* 80158910 00154570 38 A0 00 05 */ li r5, 5 /* 80158914 00154574 48 0F B5 79 */ bl func_80253E8C /* 80158918 00154578 83 61 00 08 */ lwz r27, 8(r1) /* 8015891C 0015457C 38 1C 00 28 */ addi r0, r28, 0x28 /* 80158920 00154580 38 9F 49 88 */ addi r4, r31, 0x4988 /* 80158924 00154584 38 60 00 51 */ li r3, 0x51 /* 80158928 00154588 90 1B 00 00 */ stw r0, 0(r27) /* 8015892C 0015458C 48 00 39 DD */ bl func_8015C308 /* 80158930 00154590 80 9B 00 00 */ lwz r4, 0(r27) /* 80158934 00154594 38 60 2A 59 */ li r3, 0x2a59 /* 80158938 00154598 48 0F 7A A1 */ bl func_802503D8 /* 8015893C 0015459C 38 E0 00 FF */ li r7, 0xff /* 80158940 001545A0 38 00 00 84 */ li r0, 0x84 /* 80158944 001545A4 98 FB 00 04 */ stb r7, 4(r27) /* 80158948 001545A8 7F A3 EB 78 */ mr r3, r29 /* 8015894C 001545AC 7F C4 F3 78 */ mr r4, r30 /* 80158950 001545B0 38 A0 00 02 */ li r5, 2 /* 80158954 001545B4 98 FB 00 05 */ stb r7, 5(r27) /* 80158958 001545B8 38 C0 FF FE */ li r6, -2 /* 8015895C 001545BC 98 FB 00 06 */ stb r7, 6(r27) /* 80158960 001545C0 88 FE 00 05 */ lbz r7, 5(r30) /* 80158964 001545C4 98 FB 00 07 */ stb r7, 7(r27) /* 80158968 001545C8 98 1B 00 09 */ stb r0, 9(r27) /* 8015896C 001545CC 48 0F B5 49 */ bl func_80253EB4 /* 80158970 001545D0 48 00 02 E0 */ b lbl_80158C50 /* 80158974 001545D4 38 60 02 61 */ li r3, 0x261 /* 80158978 001545D8 48 00 A1 19 */ bl func_80162A90 /* 8015897C 001545DC 28 03 00 02 */ cmplwi r3, 2 /* 80158980 001545E0 41 82 00 28 */ beq lbl_801589A8 /* 80158984 001545E4 C0 02 8F 94 */ lfs f0, lbl_80641594-_SDA2_BASE_(r2) /* 80158988 001545E8 80 7E 00 24 */ lwz r3, 0x24(r30) /* 8015898C 001545EC C0 22 8F 98 */ lfs f1, lbl_80641598-_SDA2_BASE_(r2) /* 80158990 001545F0 D0 03 00 00 */ stfs f0, 0(r3) /* 80158994 001545F4 C0 02 8F 90 */ lfs f0, lbl_80641590-_SDA2_BASE_(r2) /* 80158998 001545F8 80 7E 00 24 */ lwz r3, 0x24(r30) /* 8015899C 001545FC D0 23 00 04 */ stfs f1, 4(r3) /* 801589A0 00154600 80 7E 00 24 */ lwz r3, 0x24(r30) /* 801589A4 00154604 D0 03 00 0C */ stfs f0, 0xc(r3) lbl_801589A8: /* 801589A8 00154608 7F A3 EB 78 */ mr r3, r29 /* 801589AC 0015460C 7F C4 F3 78 */ mr r4, r30 /* 801589B0 00154610 38 C1 00 08 */ addi r6, r1, 8 /* 801589B4 00154614 38 A0 00 05 */ li r5, 5 /* 801589B8 00154618 48 0F B4 D5 */ bl func_80253E8C /* 801589BC 0015461C 38 7C 00 28 */ addi r3, r28, 0x28 /* 801589C0 00154620 83 81 00 08 */ lwz r28, 8(r1) /* 801589C4 00154624 38 03 00 40 */ addi r0, r3, 0x40 /* 801589C8 00154628 38 9F 3B B0 */ addi r4, r31, 0x3bb0 /* 801589CC 0015462C 90 1C 00 00 */ stw r0, 0(r28) /* 801589D0 00154630 38 60 00 51 */ li r3, 0x51 /* 801589D4 00154634 48 00 39 35 */ bl func_8015C308 /* 801589D8 00154638 80 9C 00 00 */ lwz r4, 0(r28) /* 801589DC 0015463C 38 60 2A 59 */ li r3, 0x2a59 /* 801589E0 00154640 48 0F 79 F9 */ bl func_802503D8 /* 801589E4 00154644 38 E0 00 FF */ li r7, 0xff /* 801589E8 00154648 38 00 00 84 */ li r0, 0x84 /* 801589EC 0015464C 98 FC 00 04 */ stb r7, 4(r28) /* 801589F0 00154650 7F A3 EB 78 */ mr r3, r29 /* 801589F4 00154654 7F C4 F3 78 */ mr r4, r30 /* 801589F8 00154658 38 A0 00 02 */ li r5, 2 /* 801589FC 0015465C 98 FC 00 05 */ stb r7, 5(r28) /* 80158A00 00154660 38 C0 FF FE */ li r6, -2 /* 80158A04 00154664 98 FC 00 06 */ stb r7, 6(r28) /* 80158A08 00154668 88 FE 00 05 */ lbz r7, 5(r30) /* 80158A0C 0015466C 98 FC 00 07 */ stb r7, 7(r28) /* 80158A10 00154670 98 1C 00 09 */ stb r0, 9(r28) /* 80158A14 00154674 48 0F B4 A1 */ bl func_80253EB4 /* 80158A18 00154678 48 00 02 38 */ b lbl_80158C50 /* 80158A1C 0015467C 38 60 02 61 */ li r3, 0x261 /* 80158A20 00154680 48 00 A0 71 */ bl func_80162A90 /* 80158A24 00154684 28 03 00 02 */ cmplwi r3, 2 /* 80158A28 00154688 40 82 00 EC */ bne lbl_80158B14 /* 80158A2C 0015468C 7F A3 EB 78 */ mr r3, r29 /* 80158A30 00154690 7F C4 F3 78 */ mr r4, r30 /* 80158A34 00154694 38 C1 00 08 */ addi r6, r1, 8 /* 80158A38 00154698 38 A0 00 05 */ li r5, 5 /* 80158A3C 0015469C 48 0F B4 51 */ bl func_80253E8C /* 80158A40 001546A0 38 7C 00 28 */ addi r3, r28, 0x28 /* 80158A44 001546A4 83 81 00 08 */ lwz r28, 8(r1) /* 80158A48 001546A8 38 03 00 80 */ addi r0, r3, 0x80 /* 80158A4C 001546AC 90 1C 00 00 */ stw r0, 0(r28) /* 80158A50 001546B0 A0 9F 4B 70 */ lhz r4, 0x4b70(r31) /* 80158A54 001546B4 28 04 FF FF */ cmplwi r4, 0xffff /* 80158A58 001546B8 40 82 00 40 */ bne lbl_80158A98 /* 80158A5C 001546BC 38 7F 4B 80 */ addi r3, r31, 0x4b80 /* 80158A60 001546C0 38 80 00 05 */ li r4, 5 /* 80158A64 001546C4 38 A0 00 00 */ li r5, 0 /* 80158A68 001546C8 48 28 24 95 */ bl func_803DAEFC /* 80158A6C 001546CC 3C A0 80 64 */ lis r5, lbl_8063CE34@ha /* 80158A70 001546D0 7C 64 1B 78 */ mr r4, r3 /* 80158A74 001546D4 38 A5 CE 34 */ addi r5, r5, lbl_8063CE34@l /* 80158A78 001546D8 38 65 00 10 */ addi r3, r5, 0x10 /* 80158A7C 001546DC 48 23 95 19 */ bl func_80391F94 /* 80158A80 001546E0 54 63 04 3E */ clrlwi r3, r3, 0x10 /* 80158A84 001546E4 48 0F 78 71 */ bl func_802502F4 /* 80158A88 001546E8 7C 64 1B 78 */ mr r4, r3 /* 80158A8C 001546EC 38 60 00 15 */ li r3, 0x15 /* 80158A90 001546F0 48 00 38 79 */ bl func_8015C308 /* 80158A94 001546F4 48 00 00 28 */ b lbl_80158ABC lbl_80158A98: /* 80158A98 001546F8 3C 60 80 64 */ lis r3, lbl_8063CE34@ha /* 80158A9C 001546FC 38 63 CE 34 */ addi r3, r3, lbl_8063CE34@l /* 80158AA0 00154700 38 63 00 10 */ addi r3, r3, 0x10 /* 80158AA4 00154704 48 23 94 F1 */ bl func_80391F94 /* 80158AA8 00154708 54 63 04 3E */ clrlwi r3, r3, 0x10 /* 80158AAC 0015470C 48 0F 78 49 */ bl func_802502F4 /* 80158AB0 00154710 7C 64 1B 78 */ mr r4, r3 /* 80158AB4 00154714 38 60 00 15 */ li r3, 0x15 /* 80158AB8 00154718 48 00 38 51 */ bl func_8015C308 lbl_80158ABC: /* 80158ABC 0015471C A0 7F 49 A0 */ lhz r3, 0x49a0(r31) /* 80158AC0 00154720 48 0F 78 35 */ bl func_802502F4 /* 80158AC4 00154724 7C 64 1B 78 */ mr r4, r3 /* 80158AC8 00154728 38 60 00 51 */ li r3, 0x51 /* 80158ACC 0015472C 48 00 38 3D */ bl func_8015C308 /* 80158AD0 00154730 80 9C 00 00 */ lwz r4, 0(r28) /* 80158AD4 00154734 38 60 2A 59 */ li r3, 0x2a59 /* 80158AD8 00154738 48 0F 79 01 */ bl func_802503D8 /* 80158ADC 0015473C 38 E0 00 FF */ li r7, 0xff /* 80158AE0 00154740 38 00 00 84 */ li r0, 0x84 /* 80158AE4 00154744 98 FC 00 04 */ stb r7, 4(r28) /* 80158AE8 00154748 7F A3 EB 78 */ mr r3, r29 /* 80158AEC 0015474C 7F C4 F3 78 */ mr r4, r30 /* 80158AF0 00154750 38 A0 00 02 */ li r5, 2 /* 80158AF4 00154754 98 FC 00 05 */ stb r7, 5(r28) /* 80158AF8 00154758 38 C0 FF FE */ li r6, -2 /* 80158AFC 0015475C 98 FC 00 06 */ stb r7, 6(r28) /* 80158B00 00154760 88 FE 00 05 */ lbz r7, 5(r30) /* 80158B04 00154764 98 FC 00 07 */ stb r7, 7(r28) /* 80158B08 00154768 98 1C 00 09 */ stb r0, 9(r28) /* 80158B0C 0015476C 48 0F B3 A9 */ bl func_80253EB4 /* 80158B10 00154770 48 00 01 40 */ b lbl_80158C50 lbl_80158B14: /* 80158B14 00154774 7F A3 EB 78 */ mr r3, r29 /* 80158B18 00154778 7F C4 F3 78 */ mr r4, r30 /* 80158B1C 0015477C 38 A0 00 02 */ li r5, 2 /* 80158B20 00154780 38 C0 00 00 */ li r6, 0 /* 80158B24 00154784 48 0F B3 91 */ bl func_80253EB4 /* 80158B28 00154788 48 00 01 28 */ b lbl_80158C50 /* 80158B2C 0015478C 38 60 02 61 */ li r3, 0x261 /* 80158B30 00154790 48 00 9F 61 */ bl func_80162A90 /* 80158B34 00154794 28 03 00 02 */ cmplwi r3, 2 /* 80158B38 00154798 40 82 00 EC */ bne lbl_80158C24 /* 80158B3C 0015479C 7F A3 EB 78 */ mr r3, r29 /* 80158B40 001547A0 7F C4 F3 78 */ mr r4, r30 /* 80158B44 001547A4 38 C1 00 08 */ addi r6, r1, 8 /* 80158B48 001547A8 38 A0 00 05 */ li r5, 5 /* 80158B4C 001547AC 48 0F B3 41 */ bl func_80253E8C /* 80158B50 001547B0 38 7C 00 28 */ addi r3, r28, 0x28 /* 80158B54 001547B4 83 81 00 08 */ lwz r28, 8(r1) /* 80158B58 001547B8 38 03 00 C0 */ addi r0, r3, 0xc0 /* 80158B5C 001547BC 90 1C 00 00 */ stw r0, 0(r28) /* 80158B60 001547C0 A0 9F 3D 98 */ lhz r4, 0x3d98(r31) /* 80158B64 001547C4 28 04 FF FF */ cmplwi r4, 0xffff /* 80158B68 001547C8 40 82 00 40 */ bne lbl_80158BA8 /* 80158B6C 001547CC 38 7F 3D A8 */ addi r3, r31, 0x3da8 /* 80158B70 001547D0 38 80 00 05 */ li r4, 5 /* 80158B74 001547D4 38 A0 00 00 */ li r5, 0 /* 80158B78 001547D8 48 28 23 85 */ bl func_803DAEFC /* 80158B7C 001547DC 3C A0 80 64 */ lis r5, lbl_8063CE34@ha /* 80158B80 001547E0 7C 64 1B 78 */ mr r4, r3 /* 80158B84 001547E4 38 A5 CE 34 */ addi r5, r5, lbl_8063CE34@l /* 80158B88 001547E8 38 65 00 10 */ addi r3, r5, 0x10 /* 80158B8C 001547EC 48 23 94 09 */ bl func_80391F94 /* 80158B90 001547F0 54 63 04 3E */ clrlwi r3, r3, 0x10 /* 80158B94 001547F4 48 0F 77 61 */ bl func_802502F4 /* 80158B98 001547F8 7C 64 1B 78 */ mr r4, r3 /* 80158B9C 001547FC 38 60 00 15 */ li r3, 0x15 /* 80158BA0 00154800 48 00 37 69 */ bl func_8015C308 /* 80158BA4 00154804 48 00 00 28 */ b lbl_80158BCC lbl_80158BA8: /* 80158BA8 00154808 3C 60 80 64 */ lis r3, lbl_8063CE34@ha /* 80158BAC 0015480C 38 63 CE 34 */ addi r3, r3, lbl_8063CE34@l /* 80158BB0 00154810 38 63 00 10 */ addi r3, r3, 0x10 /* 80158BB4 00154814 48 23 93 E1 */ bl func_80391F94 /* 80158BB8 00154818 54 63 04 3E */ clrlwi r3, r3, 0x10 /* 80158BBC 0015481C 48 0F 77 39 */ bl func_802502F4 /* 80158BC0 00154820 7C 64 1B 78 */ mr r4, r3 /* 80158BC4 00154824 38 60 00 15 */ li r3, 0x15 /* 80158BC8 00154828 48 00 37 41 */ bl func_8015C308 lbl_80158BCC: /* 80158BCC 0015482C A0 7F 3B C8 */ lhz r3, 0x3bc8(r31) /* 80158BD0 00154830 48 0F 77 25 */ bl func_802502F4 /* 80158BD4 00154834 7C 64 1B 78 */ mr r4, r3 /* 80158BD8 00154838 38 60 00 51 */ li r3, 0x51 /* 80158BDC 0015483C 48 00 37 2D */ bl func_8015C308 /* 80158BE0 00154840 80 9C 00 00 */ lwz r4, 0(r28) /* 80158BE4 00154844 38 60 2A 59 */ li r3, 0x2a59 /* 80158BE8 00154848 48 0F 77 F1 */ bl func_802503D8 /* 80158BEC 0015484C 38 E0 00 FF */ li r7, 0xff /* 80158BF0 00154850 38 00 00 84 */ li r0, 0x84 /* 80158BF4 00154854 98 FC 00 04 */ stb r7, 4(r28) /* 80158BF8 00154858 7F A3 EB 78 */ mr r3, r29 /* 80158BFC 0015485C 7F C4 F3 78 */ mr r4, r30 /* 80158C00 00154860 38 A0 00 02 */ li r5, 2 /* 80158C04 00154864 98 FC 00 05 */ stb r7, 5(r28) /* 80158C08 00154868 38 C0 FF FE */ li r6, -2 /* 80158C0C 0015486C 98 FC 00 06 */ stb r7, 6(r28) /* 80158C10 00154870 88 FE 00 05 */ lbz r7, 5(r30) /* 80158C14 00154874 98 FC 00 07 */ stb r7, 7(r28) /* 80158C18 00154878 98 1C 00 09 */ stb r0, 9(r28) /* 80158C1C 0015487C 48 0F B2 99 */ bl func_80253EB4 /* 80158C20 00154880 48 00 00 30 */ b lbl_80158C50 lbl_80158C24: /* 80158C24 00154884 7F A3 EB 78 */ mr r3, r29 /* 80158C28 00154888 7F C4 F3 78 */ mr r4, r30 /* 80158C2C 0015488C 38 A0 00 02 */ li r5, 2 /* 80158C30 00154890 38 C0 00 00 */ li r6, 0 /* 80158C34 00154894 48 0F B2 81 */ bl func_80253EB4 /* 80158C38 00154898 48 00 00 18 */ b lbl_80158C50 /* 80158C3C 0015489C 7F A3 EB 78 */ mr r3, r29 /* 80158C40 001548A0 7F C4 F3 78 */ mr r4, r30 /* 80158C44 001548A4 38 A0 00 02 */ li r5, 2 /* 80158C48 001548A8 38 C0 00 00 */ li r6, 0 /* 80158C4C 001548AC 48 0F B2 69 */ bl func_80253EB4 lbl_80158C50: /* 80158C50 001548B0 39 61 00 30 */ addi r11, r1, 0x30 /* 80158C54 001548B4 48 06 E5 21 */ bl _restgpr_27 /* 80158C58 001548B8 80 01 00 34 */ lwz r0, 0x34(r1) /* 80158C5C 001548BC 7C 08 03 A6 */ mtlr r0 /* 80158C60 001548C0 38 21 00 30 */ addi r1, r1, 0x30 /* 80158C64 001548C4 4E 80 00 20 */ blr lbl_80158C68: /* 80158C68 001548C8 94 21 FF 90 */ stwu r1, -0x70(r1) /* 80158C6C 001548CC 7C 08 02 A6 */ mflr r0 /* 80158C70 001548D0 90 01 00 74 */ stw r0, 0x74(r1) /* 80158C74 001548D4 93 E1 00 6C */ stw r31, 0x6c(r1) /* 80158C78 001548D8 93 C1 00 68 */ stw r30, 0x68(r1) /* 80158C7C 001548DC 7C 9E 23 78 */ mr r30, r4 /* 80158C80 001548E0 93 A1 00 64 */ stw r29, 0x64(r1) /* 80158C84 001548E4 7C 7D 1B 78 */ mr r29, r3 /* 80158C88 001548E8 4B FC 3C ED */ bl func_8011C974 /* 80158C8C 001548EC 7C 7F 1B 78 */ mr r31, r3 /* 80158C90 001548F0 7F A3 EB 78 */ mr r3, r29 /* 80158C94 001548F4 7F C4 F3 78 */ mr r4, r30 /* 80158C98 001548F8 38 C1 00 18 */ addi r6, r1, 0x18 /* 80158C9C 001548FC 38 A0 00 03 */ li r5, 3 /* 80158CA0 00154900 48 0F B2 3D */ bl func_80253EDC /* 80158CA4 00154904 7F A3 EB 78 */ mr r3, r29 /* 80158CA8 00154908 7F C4 F3 78 */ mr r4, r30 /* 80158CAC 0015490C 38 C1 00 20 */ addi r6, r1, 0x20 /* 80158CB0 00154910 38 A0 00 06 */ li r5, 6 /* 80158CB4 00154914 48 0F B2 29 */ bl func_80253EDC /* 80158CB8 00154918 80 01 00 18 */ lwz r0, 0x18(r1) /* 80158CBC 0015491C 2C 00 00 04 */ cmpwi r0, 4 /* 80158CC0 00154920 41 82 00 F0 */ beq lbl_80158DB0 /* 80158CC4 00154924 40 80 01 50 */ bge lbl_80158E14 /* 80158CC8 00154928 2C 00 00 01 */ cmpwi r0, 1 /* 80158CCC 0015492C 41 82 00 08 */ beq lbl_80158CD4 /* 80158CD0 00154930 48 00 01 44 */ b lbl_80158E14 lbl_80158CD4: /* 80158CD4 00154934 38 60 02 61 */ li r3, 0x261 /* 80158CD8 00154938 48 00 9D B9 */ bl func_80162A90 /* 80158CDC 0015493C 28 03 00 02 */ cmplwi r3, 2 /* 80158CE0 00154940 40 82 00 18 */ bne lbl_80158CF8 /* 80158CE4 00154944 88 1F 00 1B */ lbz r0, 0x1b(r31) /* 80158CE8 00154948 28 00 00 01 */ cmplwi r0, 1 /* 80158CEC 0015494C 40 82 00 0C */ bne lbl_80158CF8 /* 80158CF0 00154950 38 60 52 1A */ li r3, 0x521a /* 80158CF4 00154954 48 00 00 50 */ b lbl_80158D44 lbl_80158CF8: /* 80158CF8 00154958 80 8D 82 E0 */ lwz r4, lbl_8063D5A0-_SDA_BASE_(r13) /* 80158CFC 0015495C 80 04 00 18 */ lwz r0, 0x18(r4) /* 80158D00 00154960 2C 00 00 02 */ cmpwi r0, 2 /* 80158D04 00154964 41 82 00 34 */ beq lbl_80158D38 /* 80158D08 00154968 40 80 00 14 */ bge lbl_80158D1C /* 80158D0C 0015496C 2C 00 00 00 */ cmpwi r0, 0 /* 80158D10 00154970 41 82 00 18 */ beq lbl_80158D28 /* 80158D14 00154974 40 80 00 1C */ bge lbl_80158D30 /* 80158D18 00154978 48 00 00 2C */ b lbl_80158D44 lbl_80158D1C: /* 80158D1C 0015497C 2C 00 00 04 */ cmpwi r0, 4 /* 80158D20 00154980 40 80 00 24 */ bge lbl_80158D44 /* 80158D24 00154984 48 00 00 1C */ b lbl_80158D40 lbl_80158D28: /* 80158D28 00154988 38 60 50 C2 */ li r3, 0x50c2 /* 80158D2C 0015498C 48 00 00 18 */ b lbl_80158D44 lbl_80158D30: /* 80158D30 00154990 38 60 50 CD */ li r3, 0x50cd /* 80158D34 00154994 48 00 00 10 */ b lbl_80158D44 lbl_80158D38: /* 80158D38 00154998 38 60 46 CE */ li r3, 0x46ce /* 80158D3C 0015499C 48 00 00 08 */ b lbl_80158D44 lbl_80158D40: /* 80158D40 001549A0 38 60 46 D0 */ li r3, 0x46d0 lbl_80158D44: /* 80158D44 001549A4 48 0F 75 B1 */ bl func_802502F4 /* 80158D48 001549A8 C0 A1 00 20 */ lfs f5, 0x20(r1) /* 80158D4C 001549AC 38 00 FF 00 */ li r0, -256 /* 80158D50 001549B0 C0 61 00 30 */ lfs f3, 0x30(r1) /* 80158D54 001549B4 38 80 00 00 */ li r4, 0 /* 80158D58 001549B8 C0 21 00 24 */ lfs f1, 0x24(r1) /* 80158D5C 001549BC FC 80 28 1E */ fctiwz f4, f5 /* 80158D60 001549C0 C0 01 00 38 */ lfs f0, 0x38(r1) /* 80158D64 001549C4 FC 40 18 1E */ fctiwz f2, f3 /* 80158D68 001549C8 EC 21 28 28 */ fsubs f1, f1, f5 /* 80158D6C 001549CC 88 BE 00 11 */ lbz r5, 0x11(r30) /* 80158D70 001549D0 EC 00 18 28 */ fsubs f0, f0, f3 /* 80158D74 001549D4 D8 41 00 48 */ stfd f2, 0x48(r1) /* 80158D78 001549D8 7C A9 03 78 */ or r9, r5, r0 /* 80158D7C 001549DC FC 20 08 1E */ fctiwz f1, f1 /* 80158D80 001549E0 FC 00 00 1E */ fctiwz f0, f0 /* 80158D84 001549E4 D8 81 00 40 */ stfd f4, 0x40(r1) /* 80158D88 001549E8 80 C1 00 4C */ lwz r6, 0x4c(r1) /* 80158D8C 001549EC D8 21 00 50 */ stfd f1, 0x50(r1) /* 80158D90 001549F0 80 A1 00 44 */ lwz r5, 0x44(r1) /* 80158D94 001549F4 D8 01 00 58 */ stfd f0, 0x58(r1) /* 80158D98 001549F8 80 E1 00 54 */ lwz r7, 0x54(r1) /* 80158D9C 001549FC 81 01 00 5C */ lwz r8, 0x5c(r1) /* 80158DA0 00154A00 7C E7 07 34 */ extsh r7, r7 /* 80158DA4 00154A04 7D 08 07 34 */ extsh r8, r8 /* 80158DA8 00154A08 48 0F 74 05 */ bl func_802501AC /* 80158DAC 00154A0C 48 00 00 68 */ b lbl_80158E14 lbl_80158DB0: /* 80158DB0 00154A10 3B E0 00 FF */ li r31, 0xff /* 80158DB4 00154A14 38 81 00 0C */ addi r4, r1, 0xc /* 80158DB8 00154A18 9B E1 00 14 */ stb r31, 0x14(r1) /* 80158DBC 00154A1C 38 60 00 01 */ li r3, 1 /* 80158DC0 00154A20 9B E1 00 15 */ stb r31, 0x15(r1) /* 80158DC4 00154A24 9B E1 00 16 */ stb r31, 0x16(r1) /* 80158DC8 00154A28 9B E1 00 17 */ stb r31, 0x17(r1) /* 80158DCC 00154A2C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80158DD0 00154A30 90 01 00 0C */ stw r0, 0xc(r1) /* 80158DD4 00154A34 48 0F 78 1D */ bl func_802505F0 /* 80158DD8 00154A38 80 7E 00 88 */ lwz r3, 0x88(r30) /* 80158DDC 00154A3C 57 A0 04 21 */ rlwinm. r0, r29, 0, 0x10, 0x10 /* 80158DE0 00154A40 60 60 00 01 */ ori r0, r3, 1 /* 80158DE4 00154A44 90 1E 00 88 */ stw r0, 0x88(r30) /* 80158DE8 00154A48 41 82 00 2C */ beq lbl_80158E14 /* 80158DEC 00154A4C 38 00 00 01 */ li r0, 1 /* 80158DF0 00154A50 9B E1 00 13 */ stb r31, 0x13(r1) /* 80158DF4 00154A54 38 81 00 08 */ addi r4, r1, 8 /* 80158DF8 00154A58 38 60 00 01 */ li r3, 1 /* 80158DFC 00154A5C 98 01 00 10 */ stb r0, 0x10(r1) /* 80158E00 00154A60 98 01 00 11 */ stb r0, 0x11(r1) /* 80158E04 00154A64 98 01 00 12 */ stb r0, 0x12(r1) /* 80158E08 00154A68 80 01 00 10 */ lwz r0, 0x10(r1) /* 80158E0C 00154A6C 90 01 00 08 */ stw r0, 8(r1) /* 80158E10 00154A70 48 0F 77 E1 */ bl func_802505F0 lbl_80158E14: /* 80158E14 00154A74 80 01 00 74 */ lwz r0, 0x74(r1) /* 80158E18 00154A78 83 E1 00 6C */ lwz r31, 0x6c(r1) /* 80158E1C 00154A7C 83 C1 00 68 */ lwz r30, 0x68(r1) /* 80158E20 00154A80 83 A1 00 64 */ lwz r29, 0x64(r1) /* 80158E24 00154A84 7C 08 03 A6 */ mtlr r0 /* 80158E28 00154A88 38 21 00 70 */ addi r1, r1, 0x70 /* 80158E2C 00154A8C 4E 80 00 20 */ blr .global func_80158E30 func_80158E30: /* 80158E30 00154A90 38 A0 00 01 */ li r5, 1 /* 80158E34 00154A94 38 6D 9D 20 */ addi r3, r13, lbl_8063EFE0-_SDA_BASE_ /* 80158E38 00154A98 38 80 00 04 */ li r4, 4 /* 80158E3C 00154A9C 38 00 00 00 */ li r0, 0 /* 80158E40 00154AA0 98 AD 9D 20 */ stb r5, lbl_8063EFE0-_SDA_BASE_(r13) /* 80158E44 00154AA4 B0 83 00 02 */ sth r4, 2(r3) /* 80158E48 00154AA8 98 03 00 04 */ stb r0, 4(r3) /* 80158E4C 00154AAC 4E 80 00 20 */ blr