.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global __ct__Q44nw4r3snd6detail18SoundArchiveLoaderFRCQ34nw4r3snd12SoundArchive __ct__Q44nw4r3snd6detail18SoundArchiveLoaderFRCQ34nw4r3snd12SoundArchive: /* 80378350 00373FB0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80378354 00373FB4 7C 08 02 A6 */ mflr r0 /* 80378358 00373FB8 90 01 00 14 */ stw r0, 0x14(r1) /* 8037835C 00373FBC 38 00 00 00 */ li r0, 0 /* 80378360 00373FC0 93 E1 00 0C */ stw r31, 0xc(r1) /* 80378364 00373FC4 7C 7F 1B 78 */ mr r31, r3 /* 80378368 00373FC8 90 83 00 18 */ stw r4, 0x18(r3) /* 8037836C 00373FCC 90 03 02 1C */ stw r0, 0x21c(r3) /* 80378370 00373FD0 4B EF 75 A1 */ bl OSInitMutex /* 80378374 00373FD4 7F E3 FB 78 */ mr r3, r31 /* 80378378 00373FD8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8037837C 00373FDC 80 01 00 14 */ lwz r0, 0x14(r1) /* 80378380 00373FE0 7C 08 03 A6 */ mtlr r0 /* 80378384 00373FE4 38 21 00 10 */ addi r1, r1, 0x10 /* 80378388 00373FE8 4E 80 00 20 */ blr .global __dt__Q44nw4r3snd6detail18SoundArchiveLoaderFv __dt__Q44nw4r3snd6detail18SoundArchiveLoaderFv: /* 8037838C 00373FEC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80378390 00373FF0 7C 08 02 A6 */ mflr r0 /* 80378394 00373FF4 2C 03 00 00 */ cmpwi r3, 0 /* 80378398 00373FF8 90 01 00 14 */ stw r0, 0x14(r1) /* 8037839C 00373FFC 93 E1 00 0C */ stw r31, 0xc(r1) /* 803783A0 00374000 7C 7F 1B 78 */ mr r31, r3 /* 803783A4 00374004 41 82 00 10 */ beq lbl_803783B4 /* 803783A8 00374008 2C 04 00 00 */ cmpwi r4, 0 /* 803783AC 0037400C 40 81 00 08 */ ble lbl_803783B4 /* 803783B0 00374010 4B E6 27 09 */ bl __dl__FPv lbl_803783B4: /* 803783B4 00374014 7F E3 FB 78 */ mr r3, r31 /* 803783B8 00374018 83 E1 00 0C */ lwz r31, 0xc(r1) /* 803783BC 0037401C 80 01 00 14 */ lwz r0, 0x14(r1) /* 803783C0 00374020 7C 08 03 A6 */ mtlr r0 /* 803783C4 00374024 38 21 00 10 */ addi r1, r1, 0x10 /* 803783C8 00374028 4E 80 00 20 */ blr .global LoadGroup__Q44nw4r3snd6detail18SoundArchiveLoaderFUlPQ34nw4r3snd22SoundMemoryAllocatablePPvUl LoadGroup__Q44nw4r3snd6detail18SoundArchiveLoaderFUlPQ34nw4r3snd22SoundMemoryAllocatablePPvUl: /* 803783CC 0037402C 94 21 FF B0 */ stwu r1, -0x50(r1) /* 803783D0 00374030 7C 08 02 A6 */ mflr r0 /* 803783D4 00374034 90 01 00 54 */ stw r0, 0x54(r1) /* 803783D8 00374038 39 61 00 50 */ addi r11, r1, 0x50 /* 803783DC 0037403C 4B E4 ED 3D */ bl _savegpr_23 /* 803783E0 00374040 7C 7F 1B 78 */ mr r31, r3 /* 803783E4 00374044 7C 9A 23 78 */ mr r26, r4 /* 803783E8 00374048 7C B9 2B 78 */ mr r25, r5 /* 803783EC 0037404C 7C D7 33 78 */ mr r23, r6 /* 803783F0 00374050 7C F8 3B 78 */ mr r24, r7 /* 803783F4 00374054 4B EF 75 55 */ bl OSLockMutex /* 803783F8 00374058 80 7F 00 18 */ lwz r3, 0x18(r31) /* 803783FC 0037405C 7F 44 D3 78 */ mr r4, r26 /* 80378400 00374060 38 BF 00 1C */ addi r5, r31, 0x1c /* 80378404 00374064 38 C0 02 00 */ li r6, 0x200 /* 80378408 00374068 4B FF EE C9 */ bl detail_OpenGroupStream__Q34nw4r3snd12SoundArchiveCFUlPvi /* 8037840C 0037406C 2C 03 00 00 */ cmpwi r3, 0 /* 80378410 00374070 7C 7D 1B 78 */ mr r29, r3 /* 80378414 00374074 40 82 00 28 */ bne lbl_8037843C /* 80378418 00374078 41 82 00 14 */ beq lbl_8037842C /* 8037841C 0037407C 81 83 00 00 */ lwz r12, 0(r3) /* 80378420 00374080 81 8C 00 10 */ lwz r12, 0x10(r12) /* 80378424 00374084 7D 89 03 A6 */ mtctr r12 /* 80378428 00374088 4E 80 04 21 */ bctrl lbl_8037842C: /* 8037842C 0037408C 7F E3 FB 78 */ mr r3, r31 /* 80378430 00374090 4B EF 75 F5 */ bl OSUnlockMutex /* 80378434 00374094 38 60 00 00 */ li r3, 0 /* 80378438 00374098 48 00 05 50 */ b lbl_80378988 lbl_8037843C: /* 8037843C 0037409C 81 83 00 00 */ lwz r12, 0(r3) /* 80378440 003740A0 81 8C 00 50 */ lwz r12, 0x50(r12) /* 80378444 003740A4 7D 89 03 A6 */ mtctr r12 /* 80378448 003740A8 4E 80 04 21 */ bctrl /* 8037844C 003740AC 2C 03 00 00 */ cmpwi r3, 0 /* 80378450 003740B0 41 82 00 20 */ beq lbl_80378470 /* 80378454 003740B4 81 9D 00 00 */ lwz r12, 0(r29) /* 80378458 003740B8 7F A3 EB 78 */ mr r3, r29 /* 8037845C 003740BC 81 8C 00 2C */ lwz r12, 0x2c(r12) /* 80378460 003740C0 7D 89 03 A6 */ mtctr r12 /* 80378464 003740C4 4E 80 04 21 */ bctrl /* 80378468 003740C8 2C 03 00 00 */ cmpwi r3, 0 /* 8037846C 003740CC 40 82 00 30 */ bne lbl_8037849C lbl_80378470: /* 80378470 003740D0 2C 1D 00 00 */ cmpwi r29, 0 /* 80378474 003740D4 41 82 00 18 */ beq lbl_8037848C /* 80378478 003740D8 81 9D 00 00 */ lwz r12, 0(r29) /* 8037847C 003740DC 7F A3 EB 78 */ mr r3, r29 /* 80378480 003740E0 81 8C 00 10 */ lwz r12, 0x10(r12) /* 80378484 003740E4 7D 89 03 A6 */ mtctr r12 /* 80378488 003740E8 4E 80 04 21 */ bctrl lbl_8037848C: /* 8037848C 003740EC 7F E3 FB 78 */ mr r3, r31 /* 80378490 003740F0 4B EF 75 95 */ bl OSUnlockMutex /* 80378494 003740F4 38 60 00 00 */ li r3, 0 /* 80378498 003740F8 48 00 04 F0 */ b lbl_80378988 lbl_8037849C: /* 8037849C 003740FC 81 9D 00 00 */ lwz r12, 0(r29) /* 803784A0 00374100 7F A3 EB 78 */ mr r3, r29 /* 803784A4 00374104 81 8C 00 40 */ lwz r12, 0x40(r12) /* 803784A8 00374108 7D 89 03 A6 */ mtctr r12 /* 803784AC 0037410C 4E 80 04 21 */ bctrl /* 803784B0 00374110 81 99 00 00 */ lwz r12, 0(r25) /* 803784B4 00374114 7C 64 1B 78 */ mr r4, r3 /* 803784B8 00374118 7F 23 CB 78 */ mr r3, r25 /* 803784BC 0037411C 81 8C 00 0C */ lwz r12, 0xc(r12) /* 803784C0 00374120 7D 89 03 A6 */ mtctr r12 /* 803784C4 00374124 4E 80 04 21 */ bctrl /* 803784C8 00374128 2C 03 00 00 */ cmpwi r3, 0 /* 803784CC 0037412C 7C 7B 1B 78 */ mr r27, r3 /* 803784D0 00374130 40 82 00 30 */ bne lbl_80378500 /* 803784D4 00374134 2C 1D 00 00 */ cmpwi r29, 0 /* 803784D8 00374138 41 82 00 18 */ beq lbl_803784F0 /* 803784DC 0037413C 81 9D 00 00 */ lwz r12, 0(r29) /* 803784E0 00374140 7F A3 EB 78 */ mr r3, r29 /* 803784E4 00374144 81 8C 00 10 */ lwz r12, 0x10(r12) /* 803784E8 00374148 7D 89 03 A6 */ mtctr r12 /* 803784EC 0037414C 4E 80 04 21 */ bctrl lbl_803784F0: /* 803784F0 00374150 7F E3 FB 78 */ mr r3, r31 /* 803784F4 00374154 4B EF 75 31 */ bl OSUnlockMutex /* 803784F8 00374158 38 60 00 00 */ li r3, 0 /* 803784FC 0037415C 48 00 04 8C */ b lbl_80378988 lbl_80378500: /* 80378500 00374160 2C 18 00 00 */ cmpwi r24, 0 /* 80378504 00374164 93 BF 02 1C */ stw r29, 0x21c(r31) /* 80378508 00374168 40 82 00 70 */ bne lbl_80378578 /* 8037850C 0037416C 81 9D 00 00 */ lwz r12, 0(r29) /* 80378510 00374170 7F A3 EB 78 */ mr r3, r29 /* 80378514 00374174 81 8C 00 40 */ lwz r12, 0x40(r12) /* 80378518 00374178 7D 89 03 A6 */ mtctr r12 /* 8037851C 0037417C 4E 80 04 21 */ bctrl /* 80378520 00374180 81 9D 00 00 */ lwz r12, 0(r29) /* 80378524 00374184 7C 65 1B 78 */ mr r5, r3 /* 80378528 00374188 7F A3 EB 78 */ mr r3, r29 /* 8037852C 0037418C 7F 64 DB 78 */ mr r4, r27 /* 80378530 00374190 81 8C 00 14 */ lwz r12, 0x14(r12) /* 80378534 00374194 7D 89 03 A6 */ mtctr r12 /* 80378538 00374198 4E 80 04 21 */ bctrl /* 8037853C 0037419C 2C 03 00 00 */ cmpwi r3, 0 /* 80378540 003741A0 40 80 00 DC */ bge lbl_8037861C /* 80378544 003741A4 38 00 00 00 */ li r0, 0 /* 80378548 003741A8 2C 1D 00 00 */ cmpwi r29, 0 /* 8037854C 003741AC 90 1F 02 1C */ stw r0, 0x21c(r31) /* 80378550 003741B0 41 82 00 18 */ beq lbl_80378568 /* 80378554 003741B4 81 9D 00 00 */ lwz r12, 0(r29) /* 80378558 003741B8 7F A3 EB 78 */ mr r3, r29 /* 8037855C 003741BC 81 8C 00 10 */ lwz r12, 0x10(r12) /* 80378560 003741C0 7D 89 03 A6 */ mtctr r12 /* 80378564 003741C4 4E 80 04 21 */ bctrl lbl_80378568: /* 80378568 003741C8 7F E3 FB 78 */ mr r3, r31 /* 8037856C 003741CC 4B EF 74 B9 */ bl OSUnlockMutex /* 80378570 003741D0 38 60 00 00 */ li r3, 0 /* 80378574 003741D4 48 00 04 14 */ b lbl_80378988 lbl_80378578: /* 80378578 003741D8 81 9D 00 00 */ lwz r12, 0(r29) /* 8037857C 003741DC 7F A3 EB 78 */ mr r3, r29 /* 80378580 003741E0 7F 7C DB 78 */ mr r28, r27 /* 80378584 003741E4 81 8C 00 40 */ lwz r12, 0x40(r12) /* 80378588 003741E8 7D 89 03 A6 */ mtctr r12 /* 8037858C 003741EC 4E 80 04 21 */ bctrl /* 80378590 003741F0 7C 7E 1B 78 */ mr r30, r3 /* 80378594 003741F4 48 00 00 80 */ b lbl_80378614 lbl_80378598: /* 80378598 003741F8 7C 18 F0 40 */ cmplw r24, r30 /* 8037859C 003741FC 7F A3 EB 78 */ mr r3, r29 /* 803785A0 00374200 7F 84 E3 78 */ mr r4, r28 /* 803785A4 00374204 7F 05 C3 78 */ mr r5, r24 /* 803785A8 00374208 40 81 00 08 */ ble lbl_803785B0 /* 803785AC 0037420C 7F C5 F3 78 */ mr r5, r30 lbl_803785B0: /* 803785B0 00374210 81 83 00 00 */ lwz r12, 0(r3) /* 803785B4 00374214 81 8C 00 14 */ lwz r12, 0x14(r12) /* 803785B8 00374218 7D 89 03 A6 */ mtctr r12 /* 803785BC 0037421C 4E 80 04 21 */ bctrl /* 803785C0 00374220 2C 03 00 00 */ cmpwi r3, 0 /* 803785C4 00374224 40 80 00 38 */ bge lbl_803785FC /* 803785C8 00374228 38 00 00 00 */ li r0, 0 /* 803785CC 0037422C 2C 1D 00 00 */ cmpwi r29, 0 /* 803785D0 00374230 90 1F 02 1C */ stw r0, 0x21c(r31) /* 803785D4 00374234 41 82 00 18 */ beq lbl_803785EC /* 803785D8 00374238 81 9D 00 00 */ lwz r12, 0(r29) /* 803785DC 0037423C 7F A3 EB 78 */ mr r3, r29 /* 803785E0 00374240 81 8C 00 10 */ lwz r12, 0x10(r12) /* 803785E4 00374244 7D 89 03 A6 */ mtctr r12 /* 803785E8 00374248 4E 80 04 21 */ bctrl lbl_803785EC: /* 803785EC 0037424C 7F E3 FB 78 */ mr r3, r31 /* 803785F0 00374250 4B EF 74 35 */ bl OSUnlockMutex /* 803785F4 00374254 38 60 00 00 */ li r3, 0 /* 803785F8 00374258 48 00 03 90 */ b lbl_80378988 lbl_803785FC: /* 803785FC 0037425C 7C 1E 18 40 */ cmplw r30, r3 /* 80378600 00374260 40 81 00 10 */ ble lbl_80378610 /* 80378604 00374264 7F C3 F0 50 */ subf r30, r3, r30 /* 80378608 00374268 7F 9C 1A 14 */ add r28, r28, r3 /* 8037860C 0037426C 48 00 00 08 */ b lbl_80378614 lbl_80378610: /* 80378610 00374270 3B C0 00 00 */ li r30, 0 lbl_80378614: /* 80378614 00374274 2C 1E 00 00 */ cmpwi r30, 0 /* 80378618 00374278 40 82 FF 80 */ bne lbl_80378598 lbl_8037861C: /* 8037861C 0037427C 3B C0 00 00 */ li r30, 0 /* 80378620 00374280 80 7F 00 18 */ lwz r3, 0x18(r31) /* 80378624 00374284 93 DF 02 1C */ stw r30, 0x21c(r31) /* 80378628 00374288 7F 44 D3 78 */ mr r4, r26 /* 8037862C 0037428C 38 A1 00 08 */ addi r5, r1, 8 /* 80378630 00374290 4B FF EA 5D */ bl func_8037708C /* 80378634 00374294 2C 03 00 00 */ cmpwi r3, 0 /* 80378638 00374298 40 82 00 30 */ bne lbl_80378668 /* 8037863C 0037429C 2C 1D 00 00 */ cmpwi r29, 0 /* 80378640 003742A0 41 82 00 18 */ beq lbl_80378658 /* 80378644 003742A4 81 9D 00 00 */ lwz r12, 0(r29) /* 80378648 003742A8 7F A3 EB 78 */ mr r3, r29 /* 8037864C 003742AC 81 8C 00 10 */ lwz r12, 0x10(r12) /* 80378650 003742B0 7D 89 03 A6 */ mtctr r12 /* 80378654 003742B4 4E 80 04 21 */ bctrl lbl_80378658: /* 80378658 003742B8 7F E3 FB 78 */ mr r3, r31 /* 8037865C 003742BC 4B EF 73 C9 */ bl OSUnlockMutex /* 80378660 003742C0 38 60 00 00 */ li r3, 0 /* 80378664 003742C4 48 00 03 24 */ b lbl_80378988 lbl_80378668: /* 80378668 003742C8 80 01 00 1C */ lwz r0, 0x1c(r1) /* 8037866C 003742CC 2C 00 00 00 */ cmpwi r0, 0 /* 80378670 003742D0 41 82 02 E4 */ beq lbl_80378954 /* 80378674 003742D4 80 7F 00 18 */ lwz r3, 0x18(r31) /* 80378678 003742D8 7F 44 D3 78 */ mr r4, r26 /* 8037867C 003742DC 38 BF 00 1C */ addi r5, r31, 0x1c /* 80378680 003742E0 38 C0 02 00 */ li r6, 0x200 /* 80378684 003742E4 4B FF ED 65 */ bl detail_OpenGroupWaveDataStream__Q34nw4r3snd12SoundArchiveCFUlPvi /* 80378688 003742E8 2C 03 00 00 */ cmpwi r3, 0 /* 8037868C 003742EC 7C 7C 1B 78 */ mr r28, r3 /* 80378690 003742F0 40 82 00 44 */ bne lbl_803786D4 /* 80378694 003742F4 41 82 00 14 */ beq lbl_803786A8 /* 80378698 003742F8 81 83 00 00 */ lwz r12, 0(r3) /* 8037869C 003742FC 81 8C 00 10 */ lwz r12, 0x10(r12) /* 803786A0 00374300 7D 89 03 A6 */ mtctr r12 /* 803786A4 00374304 4E 80 04 21 */ bctrl lbl_803786A8: /* 803786A8 00374308 2C 1D 00 00 */ cmpwi r29, 0 /* 803786AC 0037430C 41 82 00 18 */ beq lbl_803786C4 /* 803786B0 00374310 81 9D 00 00 */ lwz r12, 0(r29) /* 803786B4 00374314 7F A3 EB 78 */ mr r3, r29 /* 803786B8 00374318 81 8C 00 10 */ lwz r12, 0x10(r12) /* 803786BC 0037431C 7D 89 03 A6 */ mtctr r12 /* 803786C0 00374320 4E 80 04 21 */ bctrl lbl_803786C4: /* 803786C4 00374324 7F E3 FB 78 */ mr r3, r31 /* 803786C8 00374328 4B EF 73 5D */ bl OSUnlockMutex /* 803786CC 0037432C 38 60 00 00 */ li r3, 0 /* 803786D0 00374330 48 00 02 B8 */ b lbl_80378988 lbl_803786D4: /* 803786D4 00374334 81 83 00 00 */ lwz r12, 0(r3) /* 803786D8 00374338 81 8C 00 50 */ lwz r12, 0x50(r12) /* 803786DC 0037433C 7D 89 03 A6 */ mtctr r12 /* 803786E0 00374340 4E 80 04 21 */ bctrl /* 803786E4 00374344 2C 03 00 00 */ cmpwi r3, 0 /* 803786E8 00374348 41 82 00 20 */ beq lbl_80378708 /* 803786EC 0037434C 81 9C 00 00 */ lwz r12, 0(r28) /* 803786F0 00374350 7F 83 E3 78 */ mr r3, r28 /* 803786F4 00374354 81 8C 00 2C */ lwz r12, 0x2c(r12) /* 803786F8 00374358 7D 89 03 A6 */ mtctr r12 /* 803786FC 0037435C 4E 80 04 21 */ bctrl /* 80378700 00374360 2C 03 00 00 */ cmpwi r3, 0 /* 80378704 00374364 40 82 00 4C */ bne lbl_80378750 lbl_80378708: /* 80378708 00374368 2C 1C 00 00 */ cmpwi r28, 0 /* 8037870C 0037436C 41 82 00 18 */ beq lbl_80378724 /* 80378710 00374370 81 9C 00 00 */ lwz r12, 0(r28) /* 80378714 00374374 7F 83 E3 78 */ mr r3, r28 /* 80378718 00374378 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8037871C 0037437C 7D 89 03 A6 */ mtctr r12 /* 80378720 00374380 4E 80 04 21 */ bctrl lbl_80378724: /* 80378724 00374384 2C 1D 00 00 */ cmpwi r29, 0 /* 80378728 00374388 41 82 00 18 */ beq lbl_80378740 /* 8037872C 0037438C 81 9D 00 00 */ lwz r12, 0(r29) /* 80378730 00374390 7F A3 EB 78 */ mr r3, r29 /* 80378734 00374394 81 8C 00 10 */ lwz r12, 0x10(r12) /* 80378738 00374398 7D 89 03 A6 */ mtctr r12 /* 8037873C 0037439C 4E 80 04 21 */ bctrl lbl_80378740: /* 80378740 003743A0 7F E3 FB 78 */ mr r3, r31 /* 80378744 003743A4 4B EF 72 E1 */ bl OSUnlockMutex /* 80378748 003743A8 38 60 00 00 */ li r3, 0 /* 8037874C 003743AC 48 00 02 3C */ b lbl_80378988 lbl_80378750: /* 80378750 003743B0 81 9C 00 00 */ lwz r12, 0(r28) /* 80378754 003743B4 7F 83 E3 78 */ mr r3, r28 /* 80378758 003743B8 81 8C 00 40 */ lwz r12, 0x40(r12) /* 8037875C 003743BC 7D 89 03 A6 */ mtctr r12 /* 80378760 003743C0 4E 80 04 21 */ bctrl /* 80378764 003743C4 81 99 00 00 */ lwz r12, 0(r25) /* 80378768 003743C8 7C 64 1B 78 */ mr r4, r3 /* 8037876C 003743CC 7F 23 CB 78 */ mr r3, r25 /* 80378770 003743D0 81 8C 00 0C */ lwz r12, 0xc(r12) /* 80378774 003743D4 7D 89 03 A6 */ mtctr r12 /* 80378778 003743D8 4E 80 04 21 */ bctrl /* 8037877C 003743DC 2C 03 00 00 */ cmpwi r3, 0 /* 80378780 003743E0 7C 7A 1B 78 */ mr r26, r3 /* 80378784 003743E4 40 82 00 4C */ bne lbl_803787D0 /* 80378788 003743E8 2C 1C 00 00 */ cmpwi r28, 0 /* 8037878C 003743EC 41 82 00 18 */ beq lbl_803787A4 /* 80378790 003743F0 81 9C 00 00 */ lwz r12, 0(r28) /* 80378794 003743F4 7F 83 E3 78 */ mr r3, r28 /* 80378798 003743F8 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8037879C 003743FC 7D 89 03 A6 */ mtctr r12 /* 803787A0 00374400 4E 80 04 21 */ bctrl lbl_803787A4: /* 803787A4 00374404 2C 1D 00 00 */ cmpwi r29, 0 /* 803787A8 00374408 41 82 00 18 */ beq lbl_803787C0 /* 803787AC 0037440C 81 9D 00 00 */ lwz r12, 0(r29) /* 803787B0 00374410 7F A3 EB 78 */ mr r3, r29 /* 803787B4 00374414 81 8C 00 10 */ lwz r12, 0x10(r12) /* 803787B8 00374418 7D 89 03 A6 */ mtctr r12 /* 803787BC 0037441C 4E 80 04 21 */ bctrl lbl_803787C0: /* 803787C0 00374420 7F E3 FB 78 */ mr r3, r31 /* 803787C4 00374424 4B EF 72 61 */ bl OSUnlockMutex /* 803787C8 00374428 38 60 00 00 */ li r3, 0 /* 803787CC 0037442C 48 00 01 BC */ b lbl_80378988 lbl_803787D0: /* 803787D0 00374430 2C 18 00 00 */ cmpwi r24, 0 /* 803787D4 00374434 93 9F 02 1C */ stw r28, 0x21c(r31) /* 803787D8 00374438 40 82 00 88 */ bne lbl_80378860 /* 803787DC 0037443C 81 9C 00 00 */ lwz r12, 0(r28) /* 803787E0 00374440 7F 83 E3 78 */ mr r3, r28 /* 803787E4 00374444 81 8C 00 40 */ lwz r12, 0x40(r12) /* 803787E8 00374448 7D 89 03 A6 */ mtctr r12 /* 803787EC 0037444C 4E 80 04 21 */ bctrl /* 803787F0 00374450 81 9C 00 00 */ lwz r12, 0(r28) /* 803787F4 00374454 7C 65 1B 78 */ mr r5, r3 /* 803787F8 00374458 7F 83 E3 78 */ mr r3, r28 /* 803787FC 0037445C 7F 44 D3 78 */ mr r4, r26 /* 80378800 00374460 81 8C 00 14 */ lwz r12, 0x14(r12) /* 80378804 00374464 7D 89 03 A6 */ mtctr r12 /* 80378808 00374468 4E 80 04 21 */ bctrl /* 8037880C 0037446C 2C 03 00 00 */ cmpwi r3, 0 /* 80378810 00374470 40 80 01 10 */ bge lbl_80378920 /* 80378814 00374474 2C 1C 00 00 */ cmpwi r28, 0 /* 80378818 00374478 93 DF 02 1C */ stw r30, 0x21c(r31) /* 8037881C 0037447C 41 82 00 18 */ beq lbl_80378834 /* 80378820 00374480 81 9C 00 00 */ lwz r12, 0(r28) /* 80378824 00374484 7F 83 E3 78 */ mr r3, r28 /* 80378828 00374488 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8037882C 0037448C 7D 89 03 A6 */ mtctr r12 /* 80378830 00374490 4E 80 04 21 */ bctrl lbl_80378834: /* 80378834 00374494 2C 1D 00 00 */ cmpwi r29, 0 /* 80378838 00374498 41 82 00 18 */ beq lbl_80378850 /* 8037883C 0037449C 81 9D 00 00 */ lwz r12, 0(r29) /* 80378840 003744A0 7F A3 EB 78 */ mr r3, r29 /* 80378844 003744A4 81 8C 00 10 */ lwz r12, 0x10(r12) /* 80378848 003744A8 7D 89 03 A6 */ mtctr r12 /* 8037884C 003744AC 4E 80 04 21 */ bctrl lbl_80378850: /* 80378850 003744B0 7F E3 FB 78 */ mr r3, r31 /* 80378854 003744B4 4B EF 71 D1 */ bl OSUnlockMutex /* 80378858 003744B8 38 60 00 00 */ li r3, 0 /* 8037885C 003744BC 48 00 01 2C */ b lbl_80378988 lbl_80378860: /* 80378860 003744C0 81 9C 00 00 */ lwz r12, 0(r28) /* 80378864 003744C4 7F 83 E3 78 */ mr r3, r28 /* 80378868 003744C8 7F 5E D3 78 */ mr r30, r26 /* 8037886C 003744CC 81 8C 00 40 */ lwz r12, 0x40(r12) /* 80378870 003744D0 7D 89 03 A6 */ mtctr r12 /* 80378874 003744D4 4E 80 04 21 */ bctrl /* 80378878 003744D8 7C 79 1B 78 */ mr r25, r3 /* 8037887C 003744DC 48 00 00 9C */ b lbl_80378918 lbl_80378880: /* 80378880 003744E0 7C 18 C8 40 */ cmplw r24, r25 /* 80378884 003744E4 7F 83 E3 78 */ mr r3, r28 /* 80378888 003744E8 7F C4 F3 78 */ mr r4, r30 /* 8037888C 003744EC 7F 05 C3 78 */ mr r5, r24 /* 80378890 003744F0 40 81 00 08 */ ble lbl_80378898 /* 80378894 003744F4 7F 25 CB 78 */ mr r5, r25 lbl_80378898: /* 80378898 003744F8 81 83 00 00 */ lwz r12, 0(r3) /* 8037889C 003744FC 81 8C 00 14 */ lwz r12, 0x14(r12) /* 803788A0 00374500 7D 89 03 A6 */ mtctr r12 /* 803788A4 00374504 4E 80 04 21 */ bctrl /* 803788A8 00374508 2C 03 00 00 */ cmpwi r3, 0 /* 803788AC 0037450C 40 80 00 54 */ bge lbl_80378900 /* 803788B0 00374510 38 00 00 00 */ li r0, 0 /* 803788B4 00374514 2C 1C 00 00 */ cmpwi r28, 0 /* 803788B8 00374518 90 1F 02 1C */ stw r0, 0x21c(r31) /* 803788BC 0037451C 41 82 00 18 */ beq lbl_803788D4 /* 803788C0 00374520 81 9C 00 00 */ lwz r12, 0(r28) /* 803788C4 00374524 7F 83 E3 78 */ mr r3, r28 /* 803788C8 00374528 81 8C 00 10 */ lwz r12, 0x10(r12) /* 803788CC 0037452C 7D 89 03 A6 */ mtctr r12 /* 803788D0 00374530 4E 80 04 21 */ bctrl lbl_803788D4: /* 803788D4 00374534 2C 1D 00 00 */ cmpwi r29, 0 /* 803788D8 00374538 41 82 00 18 */ beq lbl_803788F0 /* 803788DC 0037453C 81 9D 00 00 */ lwz r12, 0(r29) /* 803788E0 00374540 7F A3 EB 78 */ mr r3, r29 /* 803788E4 00374544 81 8C 00 10 */ lwz r12, 0x10(r12) /* 803788E8 00374548 7D 89 03 A6 */ mtctr r12 /* 803788EC 0037454C 4E 80 04 21 */ bctrl lbl_803788F0: /* 803788F0 00374550 7F E3 FB 78 */ mr r3, r31 /* 803788F4 00374554 4B EF 71 31 */ bl OSUnlockMutex /* 803788F8 00374558 38 60 00 00 */ li r3, 0 /* 803788FC 0037455C 48 00 00 8C */ b lbl_80378988 lbl_80378900: /* 80378900 00374560 7C 19 18 40 */ cmplw r25, r3 /* 80378904 00374564 40 81 00 10 */ ble lbl_80378914 /* 80378908 00374568 7F 23 C8 50 */ subf r25, r3, r25 /* 8037890C 0037456C 7F DE 1A 14 */ add r30, r30, r3 /* 80378910 00374570 48 00 00 08 */ b lbl_80378918 lbl_80378914: /* 80378914 00374574 3B 20 00 00 */ li r25, 0 lbl_80378918: /* 80378918 00374578 2C 19 00 00 */ cmpwi r25, 0 /* 8037891C 0037457C 40 82 FF 64 */ bne lbl_80378880 lbl_80378920: /* 80378920 00374580 38 00 00 00 */ li r0, 0 /* 80378924 00374584 2C 17 00 00 */ cmpwi r23, 0 /* 80378928 00374588 90 1F 02 1C */ stw r0, 0x21c(r31) /* 8037892C 0037458C 41 82 00 08 */ beq lbl_80378934 /* 80378930 00374590 93 57 00 00 */ stw r26, 0(r23) lbl_80378934: /* 80378934 00374594 2C 1C 00 00 */ cmpwi r28, 0 /* 80378938 00374598 41 82 00 28 */ beq lbl_80378960 /* 8037893C 0037459C 81 9C 00 00 */ lwz r12, 0(r28) /* 80378940 003745A0 7F 83 E3 78 */ mr r3, r28 /* 80378944 003745A4 81 8C 00 10 */ lwz r12, 0x10(r12) /* 80378948 003745A8 7D 89 03 A6 */ mtctr r12 /* 8037894C 003745AC 4E 80 04 21 */ bctrl /* 80378950 003745B0 48 00 00 10 */ b lbl_80378960 lbl_80378954: /* 80378954 003745B4 2C 17 00 00 */ cmpwi r23, 0 /* 80378958 003745B8 41 82 00 08 */ beq lbl_80378960 /* 8037895C 003745BC 93 D7 00 00 */ stw r30, 0(r23) lbl_80378960: /* 80378960 003745C0 2C 1D 00 00 */ cmpwi r29, 0 /* 80378964 003745C4 41 82 00 18 */ beq lbl_8037897C /* 80378968 003745C8 81 9D 00 00 */ lwz r12, 0(r29) /* 8037896C 003745CC 7F A3 EB 78 */ mr r3, r29 /* 80378970 003745D0 81 8C 00 10 */ lwz r12, 0x10(r12) /* 80378974 003745D4 7D 89 03 A6 */ mtctr r12 /* 80378978 003745D8 4E 80 04 21 */ bctrl lbl_8037897C: /* 8037897C 003745DC 7F E3 FB 78 */ mr r3, r31 /* 80378980 003745E0 4B EF 70 A5 */ bl OSUnlockMutex /* 80378984 003745E4 7F 63 DB 78 */ mr r3, r27 lbl_80378988: /* 80378988 003745E8 39 61 00 50 */ addi r11, r1, 0x50 /* 8037898C 003745EC 4B E4 E7 D9 */ bl _restgpr_23 /* 80378990 003745F0 80 01 00 54 */ lwz r0, 0x54(r1) /* 80378994 003745F4 7C 08 03 A6 */ mtlr r0 /* 80378998 003745F8 38 21 00 50 */ addi r1, r1, 0x50 /* 8037899C 003745FC 4E 80 00 20 */ blr