.include "macros.inc" .section .text .global func_80370400 .type func_80370400, @function func_80370400: /* 80370400 80ADCA70 */ lwz r5, lbl_805c6890@sda21(0) /* 80370404 48000008 */ b lbl_8037040c lbl_80370408: /* 80370408 80A50008 */ lwz r5, 8(r5) lbl_8037040c: /* 8037040C 28050000 */ cmplwi r5, 0 /* 80370410 41820014 */ beq- lbl_80370424 /* 80370414 80850004 */ lwz r4, 4(r5) /* 80370418 80030004 */ lwz r0, 4(r3) /* 8037041C 7C040040 */ cmplw r4, r0 /* 80370420 4081FFE8 */ ble+ lbl_80370408 lbl_80370424: /* 80370424 28050000 */ cmplwi r5, 0 /* 80370428 40820034 */ bne- lbl_8037045c /* 8037042C 38ADCA70 */ addi r5, 0, lbl_805c6890@sda21 /* 80370430 84850004 */ lwzu r4, 4(r5) /* 80370434 28040000 */ cmplwi r4, 0 /* 80370438 4082000C */ bne- lbl_80370444 /* 8037043C 906DCA70 */ stw r3, lbl_805c6890@sda21(0) /* 80370440 48000008 */ b lbl_80370448 lbl_80370444: /* 80370444 90640008 */ stw r3, 8(r4) lbl_80370448: /* 80370448 9083000C */ stw r4, 0xc(r3) /* 8037044C 38000000 */ li r0, 0x0 /* 80370450 90030008 */ stw r0, 8(r3) /* 80370454 90650000 */ stw r3, 0(r5) /* 80370458 4E800020 */ blr lbl_8037045c: /* 8037045C 90A30008 */ stw r5, 8(r3) /* 80370460 8085000C */ lwz r4, 0xc(r5) /* 80370464 9065000C */ stw r3, 0xc(r5) /* 80370468 28040000 */ cmplwi r4, 0 /* 8037046C 9083000C */ stw r4, 0xc(r3) /* 80370470 4082000C */ bne- lbl_8037047c /* 80370474 906DCA70 */ stw r3, lbl_805c6890@sda21(0) /* 80370478 4E800020 */ blr lbl_8037047c: /* 8037047C 90640008 */ stw r3, 8(r4) /* 80370480 4E800020 */ blr .size func_80370400, . - func_80370400 .global func_80370484 .type func_80370484, @function func_80370484: /* 80370484 48000020 */ b lbl_803704a4 lbl_80370488: /* 80370488 7D10FAA6 */ mfspr r8, 0x3f0 /* 8037048C 61080008 */ ori r8, r8, 8 /* 80370490 7D10FBA6 */ mtspr 0x3f0, r8 /* 80370494 4C00012C */ isync /* 80370498 7C0004AC */ sync 0 /* 8037049C 60000000 */ nop /* 803704A0 48000008 */ b lbl_803704a8 lbl_803704a4: /* 803704A4 48000020 */ b lbl_803704c4 lbl_803704a8: /* 803704A8 7CAC42E6 */ mftb r5, 0x10c lbl_803704ac: /* 803704AC 7CCC42E6 */ mftb r6, 0x10c /* 803704B0 7CE53050 */ subf r7, r5, r6 /* 803704B4 28071124 */ cmplwi r7, 0x1124 /* 803704B8 4180FFF4 */ blt+ lbl_803704ac /* 803704BC 60000000 */ nop /* 803704C0 48000008 */ b lbl_803704c8 lbl_803704c4: /* 803704C4 48000020 */ b lbl_803704e4 lbl_803704c8: /* 803704C8 3D00CC00 */ lis r8, 0xcc00 /* 803704CC 61083000 */ ori r8, r8, 0x3000 /* 803704D0 38800003 */ li r4, 0x3 /* 803704D4 90880024 */ stw r4, 0x24(r8) /* 803704D8 90680024 */ stw r3, 0x24(r8) /* 803704DC 60000000 */ nop /* 803704E0 48000008 */ b lbl_803704e8 lbl_803704e4: /* 803704E4 4800000C */ b lbl_803704f0 lbl_803704e8: /* 803704E8 60000000 */ nop /* 803704EC 4BFFFFFC */ b lbl_803704e8 lbl_803704f0: /* 803704F0 4BFFFF98 */ b lbl_80370488 .size func_80370484, . - func_80370484 .global func_803704f4 .type func_803704f4, @function func_803704f4: /* 803704F4 7C0802A6 */ mflr r0 /* 803704F8 90010004 */ stw r0, 4(r1) /* 803704FC 9421FFE8 */ stwu r1, -0x18(r1) /* 80370500 93E10014 */ stw r31, 0x14(r1) /* 80370504 7C7F1B78 */ mr r31, r3 /* 80370508 4BFFE5CD */ bl func_8036ead4 /* 8037050C 3C60CC00 */ lis r3, 0xcc00 /* 80370510 38632000 */ addi r3, r3, 0x2000 /* 80370514 38000000 */ li r0, 0x0 /* 80370518 B0030002 */ sth r0, 2(r3) /* 8037051C 4BFFD4F5 */ bl func_8036da10 /* 80370520 57E31838 */ slwi r3, r31, 3 /* 80370524 4BFFFF61 */ bl func_80370484 /* 80370528 8001001C */ lwz r0, 0x1c(r1) /* 8037052C 83E10014 */ lwz r31, 0x14(r1) /* 80370530 38210018 */ addi r1, r1, 0x18 /* 80370534 7C0803A6 */ mtlr r0 /* 80370538 4E800020 */ blr .size func_803704f4, . - func_803704f4 .global func_8037053c .type func_8037053c, @function func_8037053c: /* 8037053C 7C0802A6 */ mflr r0 /* 80370540 90010004 */ stw r0, 4(r1) /* 80370544 9421FFC0 */ stwu r1, -0x40(r1) /* 80370548 BF410028 */ stmw r26, 0x28(r1) /* 8037054C 7C7A1B78 */ mr r26, r3 /* 80370550 7C9D2378 */ mr r29, r4 /* 80370554 7CBE2B78 */ mr r30, r5 /* 80370558 4800125D */ bl func_803717b4 /* 8037055C 4BFFD299 */ bl func_8036d7f4 /* 80370560 2C1A0002 */ cmpwi r26, 0x2 /* 80370564 40820010 */ bne- lbl_80370574 /* 80370568 38600001 */ li r3, 0x1 /* 8037056C 4800AAC1 */ bl func_8037b02c /* 80370570 7C7F1B78 */ mr r31, r3 lbl_80370574: /* 80370574 48000004 */ b lbl_80370578 lbl_80370578: /* 80370578 48000004 */ b lbl_8037057c lbl_8037057c: /* 8037057C 836DCA70 */ lwz r27, lbl_805c6890@sda21(0) /* 80370580 3B800000 */ li r28, 0x0 /* 80370584 48000004 */ b lbl_80370588 lbl_80370588: /* 80370588 48000004 */ b lbl_8037058c lbl_8037058c: /* 8037058C 48000024 */ b lbl_803705b0 lbl_80370590: /* 80370590 38600000 */ li r3, 0x0 /* 80370594 819B0000 */ lwz r12, 0(r27) /* 80370598 7D8803A6 */ mtlr r12 /* 8037059C 4E800021 */ blrl /* 803705A0 7C600034 */ cntlzw r0, r3 /* 803705A4 837B0008 */ lwz r27, 8(r27) /* 803705A8 5400D97E */ srwi r0, r0, 5 /* 803705AC 7F9C0378 */ or r28, r28, r0 lbl_803705b0: /* 803705B0 281B0000 */ cmplwi r27, 0 /* 803705B4 4082FFDC */ bne+ lbl_80370590 /* 803705B8 48000C6D */ bl func_80371224 /* 803705BC 7C600034 */ cntlzw r0, r3 /* 803705C0 5400D97E */ srwi r0, r0, 5 /* 803705C4 7F9C0378 */ or r28, r28, r0 /* 803705C8 2C1C0000 */ cmpwi r28, 0x0 /* 803705CC 4182000C */ beq- lbl_803705d8 /* 803705D0 38000000 */ li r0, 0x0 /* 803705D4 48000008 */ b lbl_803705dc lbl_803705d8: /* 803705D8 38000001 */ li r0, 0x1 lbl_803705dc: /* 803705DC 2C000000 */ cmpwi r0, 0x0 /* 803705E0 4182FF9C */ beq+ lbl_8037057c /* 803705E4 2C1A0001 */ cmpwi r26, 0x1 /* 803705E8 40820038 */ bne- lbl_80370620 /* 803705EC 2C1E0000 */ cmpwi r30, 0x0 /* 803705F0 41820030 */ beq- lbl_80370620 /* 803705F4 48000829 */ bl func_80370e1c /* 803705F8 88030013 */ lbz r0, 0x13(r3) /* 803705FC 60000040 */ ori r0, r0, 0x40 /* 80370600 98030013 */ stb r0, 0x13(r3) /* 80370604 38600001 */ li r3, 0x1 /* 80370608 48000BD5 */ bl func_803711dc /* 8037060C 48000004 */ b lbl_80370610 lbl_80370610: /* 80370610 48000004 */ b lbl_80370614 lbl_80370614: /* 80370614 48000C11 */ bl func_80371224 /* 80370618 2C030000 */ cmpwi r3, 0x0 /* 8037061C 4182FFF8 */ beq+ lbl_80370614 lbl_80370620: /* 80370620 4BFFE4B5 */ bl func_8036ead4 /* 80370624 838DCA70 */ lwz r28, lbl_805c6890@sda21(0) /* 80370628 3B600000 */ li r27, 0x0 /* 8037062C 48000004 */ b lbl_80370630 lbl_80370630: /* 80370630 48000004 */ b lbl_80370634 lbl_80370634: /* 80370634 48000024 */ b lbl_80370658 lbl_80370638: /* 80370638 38600001 */ li r3, 0x1 /* 8037063C 819C0000 */ lwz r12, 0(r28) /* 80370640 7D8803A6 */ mtlr r12 /* 80370644 4E800021 */ blrl /* 80370648 7C600034 */ cntlzw r0, r3 /* 8037064C 839C0008 */ lwz r28, 8(r28) /* 80370650 5400D97E */ srwi r0, r0, 5 /* 80370654 7F7B0378 */ or r27, r27, r0 lbl_80370658: /* 80370658 281C0000 */ cmplwi r28, 0 /* 8037065C 4082FFDC */ bne+ lbl_80370638 /* 80370660 48000BC5 */ bl func_80371224 /* 80370664 4BFFD4D5 */ bl func_8036db38 /* 80370668 2C1A0001 */ cmpwi r26, 0x1 /* 8037066C 40820028 */ bne- lbl_80370694 /* 80370670 4BFFE465 */ bl func_8036ead4 /* 80370674 3C60CC00 */ lis r3, 0xcc00 /* 80370678 38632000 */ addi r3, r3, 0x2000 /* 8037067C 38000000 */ li r0, 0x0 /* 80370680 B0030002 */ sth r0, 2(r3) /* 80370684 4BFFD38D */ bl func_8036da10 /* 80370688 57A31838 */ slwi r3, r29, 3 /* 8037068C 4BFFFDF9 */ bl func_80370484 /* 80370690 48000060 */ b lbl_803706f0 lbl_80370694: /* 80370694 2C1A0000 */ cmpwi r26, 0x0 /* 80370698 40820058 */ bne- lbl_803706f0 /* 8037069C 3C608000 */ lis r3, 0x8000 /* 803706A0 806300DC */ lwz r3, 0xdc(r3) /* 803706A4 48000004 */ b lbl_803706a8 lbl_803706a8: /* 803706A8 48000004 */ b lbl_803706ac lbl_803706ac: /* 803706AC 4800002C */ b lbl_803706d8 lbl_803706b0: /* 803706B0 A00302C8 */ lhz r0, 0x2c8(r3) /* 803706B4 836302FC */ lwz r27, 0x2fc(r3) /* 803706B8 2C000004 */ cmpwi r0, 0x4 /* 803706BC 41820014 */ beq- lbl_803706d0 /* 803706C0 40800014 */ bge- lbl_803706d4 /* 803706C4 2C000001 */ cmpwi r0, 0x1 /* 803706C8 41820008 */ beq- lbl_803706d0 /* 803706CC 48000008 */ b lbl_803706d4 lbl_803706d0: /* 803706D0 48001889 */ bl func_80371f58 lbl_803706d4: /* 803706D4 7F63DB78 */ mr r3, r27 lbl_803706d8: /* 803706D8 28030000 */ cmplwi r3, 0 /* 803706DC 4082FFD4 */ bne+ lbl_803706b0 /* 803706E0 48001115 */ bl func_803717f4 /* 803706E4 7FA3EB78 */ mr r3, r29 /* 803706E8 7FC4F378 */ mr r4, r30 /* 803706EC 4BFFFB55 */ bl func_80370240 lbl_803706f0: /* 803706F0 3C608000 */ lis r3, 0x8000 /* 803706F4 806300DC */ lwz r3, 0xdc(r3) /* 803706F8 48000004 */ b lbl_803706fc lbl_803706fc: /* 803706FC 48000004 */ b lbl_80370700 lbl_80370700: /* 80370700 4800002C */ b lbl_8037072c lbl_80370704: /* 80370704 A00302C8 */ lhz r0, 0x2c8(r3) /* 80370708 836302FC */ lwz r27, 0x2fc(r3) /* 8037070C 2C000004 */ cmpwi r0, 0x4 /* 80370710 41820014 */ beq- lbl_80370724 /* 80370714 40800014 */ bge- lbl_80370728 /* 80370718 2C000001 */ cmpwi r0, 0x1 /* 8037071C 41820008 */ beq- lbl_80370724 /* 80370720 48000008 */ b lbl_80370728 lbl_80370724: /* 80370724 48001835 */ bl func_80371f58 lbl_80370728: /* 80370728 7F63DB78 */ mr r3, r27 lbl_8037072c: /* 8037072C 28030000 */ cmplwi r3, 0 /* 80370730 4082FFD4 */ bne+ lbl_80370704 /* 80370734 3FA08000 */ lis r29, 0x8000 /* 80370738 387D0040 */ addi r3, r29, 0x40 /* 8037073C 38800000 */ li r4, 0x0 /* 80370740 38A0008C */ li r5, 0x8c /* 80370744 4BC9DBF1 */ bl func_8000e334 /* 80370748 387D00D4 */ addi r3, r29, 0xd4 /* 8037074C 38800000 */ li r4, 0x0 /* 80370750 38A00014 */ li r5, 0x14 /* 80370754 4BC9DBE1 */ bl func_8000e334 /* 80370758 387D00F4 */ addi r3, r29, 0xf4 /* 8037075C 38800000 */ li r4, 0x0 /* 80370760 38A00004 */ li r5, 0x4 /* 80370764 4BC9DBD1 */ bl func_8000e334 /* 80370768 387D3000 */ addi r3, r29, 0x3000 /* 8037076C 38800000 */ li r4, 0x0 /* 80370770 38A000C0 */ li r5, 0xc0 /* 80370774 4BC9DBC1 */ bl func_8000e334 /* 80370778 387D30C8 */ addi r3, r29, 0x30c8 /* 8037077C 38800000 */ li r4, 0x0 /* 80370780 38A0000C */ li r5, 0xc /* 80370784 4BC9DBB1 */ bl func_8000e334 /* 80370788 387D30E2 */ addi r3, r29, 0x30e2 /* 8037078C 38800000 */ li r4, 0x0 /* 80370790 38A00001 */ li r5, 0x1 /* 80370794 4BC9DBA1 */ bl func_8000e334 /* 80370798 7FE3FB78 */ mr r3, r31 /* 8037079C 4800A891 */ bl func_8037b02c /* 803707A0 BB410028 */ lmw r26, 0x28(r1) /* 803707A4 80010044 */ lwz r0, 0x44(r1) /* 803707A8 38210040 */ addi r1, r1, 0x40 /* 803707AC 7C0803A6 */ mtlr r0 /* 803707B0 4E800020 */ blr .size func_8037053c, . - func_8037053c .global func_803707b4 .type func_803707b4, @function func_803707b4: /* 803707B4 3C608000 */ lis r3, 0x8000 /* 803707B8 880330E2 */ lbz r0, 0x30e2(r3) /* 803707BC 28000000 */ cmplwi r0, 0 /* 803707C0 4182000C */ beq- lbl_803707cc /* 803707C4 3C608000 */ lis r3, 0x8000 /* 803707C8 48000018 */ b lbl_803707e0 lbl_803707cc: /* 803707CC 3C60CC00 */ lis r3, 0xcc00 /* 803707D0 38633000 */ addi r3, r3, 0x3000 /* 803707D4 80030024 */ lwz r0, 0x24(r3) /* 803707D8 54000038 */ rlwinm r0, r0, 0, 0, 0x1c /* 803707DC 5403E8FE */ srwi r3, r0, 3 lbl_803707e0: /* 803707E0 4E800020 */ blr .size func_803707b4, . - func_803707b4