.include "macros.inc"

.section .data
.balign 8
.global lbl_803F2290
lbl_803F2290:
	.asciz "OSLink: unknown relocation type %3d\n"
	.balign 4

.global lbl_803F22B8
lbl_803F22B8:
	.asciz "OSUnlink: unknown relocation type %3d\n"
	.balign 4

.section .text, "ax"

.global OSNotifyLink
OSNotifyLink:
/* 80381ECC 0037EE2C  4E 80 00 20 */	blr

.global OSNotifyUnlink
OSNotifyUnlink:
/* 80381ED0 0037EE30  4E 80 00 20 */	blr

.global Relocate
Relocate:
/* 80381ED4 0037EE34  7C 08 02 A6 */	mflr r0
/* 80381ED8 0037EE38  90 01 00 04 */	stw r0, 4(r1)
/* 80381EDC 0037EE3C  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80381EE0 0037EE40  BE E1 00 1C */	stmw r23, 0x1c(r1)
/* 80381EE4 0037EE44  7C 7A 1B 79 */	or. r26, r3, r3
/* 80381EE8 0037EE48  3B 64 00 00 */	addi r27, r4, 0
/* 80381EEC 0037EE4C  41 82 00 0C */	beq lbl_80381EF8
/* 80381EF0 0037EE50  83 FA 00 00 */	lwz r31, 0(r26)
/* 80381EF4 0037EE54  48 00 00 08 */	b lbl_80381EFC
lbl_80381EF8:
/* 80381EF8 0037EE58  3B E0 00 00 */	li r31, 0
lbl_80381EFC:
/* 80381EFC 0037EE5C  80 7B 00 28 */	lwz r3, 0x28(r27)
/* 80381F00 0037EE60  80 1B 00 2C */	lwz r0, 0x2c(r27)
/* 80381F04 0037EE64  38 83 00 00 */	addi r4, r3, 0
/* 80381F08 0037EE68  7C 63 02 14 */	add r3, r3, r0
/* 80381F0C 0037EE6C  38 03 00 07 */	addi r0, r3, 7
/* 80381F10 0037EE70  7C 04 00 50 */	subf r0, r4, r0
/* 80381F14 0037EE74  54 00 E8 FE */	srwi r0, r0, 3
/* 80381F18 0037EE78  7C 04 18 40 */	cmplw r4, r3
/* 80381F1C 0037EE7C  7C 09 03 A6 */	mtctr r0
/* 80381F20 0037EE80  40 80 00 18 */	bge lbl_80381F38
lbl_80381F24:
/* 80381F24 0037EE84  80 04 00 00 */	lwz r0, 0(r4)
/* 80381F28 0037EE88  7C 00 F8 40 */	cmplw r0, r31
/* 80381F2C 0037EE8C  41 82 00 14 */	beq lbl_80381F40
/* 80381F30 0037EE90  38 84 00 08 */	addi r4, r4, 8
/* 80381F34 0037EE94  42 00 FF F0 */	bdnz lbl_80381F24
lbl_80381F38:
/* 80381F38 0037EE98  38 60 00 00 */	li r3, 0
/* 80381F3C 0037EE9C  48 00 02 40 */	b lbl_8038217C
lbl_80381F40:
/* 80381F40 0037EEA0  3C 60 80 3F */	lis r3, lbl_803F2290@ha
/* 80381F44 0037EEA4  83 C4 00 04 */	lwz r30, 4(r4)
/* 80381F48 0037EEA8  3B 23 22 90 */	addi r25, r3, lbl_803F2290@l
/* 80381F4C 0037EEAC  3B A0 00 00 */	li r29, 0
/* 80381F50 0037EEB0  48 00 01 F4 */	b lbl_80382144
lbl_80381F54:
/* 80381F54 0037EEB4  A0 1E 00 00 */	lhz r0, 0(r30)
/* 80381F58 0037EEB8  28 1F 00 00 */	cmplwi r31, 0
/* 80381F5C 0037EEBC  7F 9C 02 14 */	add r28, r28, r0
/* 80381F60 0037EEC0  41 82 00 1C */	beq lbl_80381F7C
/* 80381F64 0037EEC4  88 1E 00 03 */	lbz r0, 3(r30)
/* 80381F68 0037EEC8  80 7A 00 10 */	lwz r3, 0x10(r26)
/* 80381F6C 0037EECC  54 00 18 38 */	slwi r0, r0, 3
/* 80381F70 0037EED0  7C 03 00 2E */	lwzx r0, r3, r0
/* 80381F74 0037EED4  54 05 00 3C */	rlwinm r5, r0, 0, 0, 0x1e
/* 80381F78 0037EED8  48 00 00 08 */	b lbl_80381F80
lbl_80381F7C:
/* 80381F7C 0037EEDC  38 A0 00 00 */	li r5, 0
lbl_80381F80:
/* 80381F80 0037EEE0  2C 04 00 06 */	cmpwi r4, 6
/* 80381F84 0037EEE4  41 82 00 C4 */	beq lbl_80382048
/* 80381F88 0037EEE8  40 80 00 30 */	bge lbl_80381FB8
/* 80381F8C 0037EEEC  2C 04 00 02 */	cmpwi r4, 2
/* 80381F90 0037EEF0  41 82 00 68 */	beq lbl_80381FF8
/* 80381F94 0037EEF4  40 80 00 14 */	bge lbl_80381FA8
/* 80381F98 0037EEF8  2C 04 00 00 */	cmpwi r4, 0
/* 80381F9C 0037EEFC  41 82 01 A4 */	beq lbl_80382140
/* 80381FA0 0037EF00  40 80 00 48 */	bge lbl_80381FE8
/* 80381FA4 0037EF04  48 00 01 90 */	b lbl_80382134
lbl_80381FA8:
/* 80381FA8 0037EF08  2C 04 00 04 */	cmpwi r4, 4
/* 80381FAC 0037EF0C  41 82 00 78 */	beq lbl_80382024
/* 80381FB0 0037EF10  40 80 00 84 */	bge lbl_80382034
/* 80381FB4 0037EF14  48 00 00 60 */	b lbl_80382014
lbl_80381FB8:
/* 80381FB8 0037EF18  2C 04 00 C9 */	cmpwi r4, 0xc9
/* 80381FBC 0037EF1C  41 82 01 84 */	beq lbl_80382140
/* 80381FC0 0037EF20  40 80 00 1C */	bge lbl_80381FDC
/* 80381FC4 0037EF24  2C 04 00 0A */	cmpwi r4, 0xa
/* 80381FC8 0037EF28  41 82 00 C8 */	beq lbl_80382090
/* 80381FCC 0037EF2C  41 80 00 A8 */	blt lbl_80382074
/* 80381FD0 0037EF30  2C 04 00 0E */	cmpwi r4, 0xe
/* 80381FD4 0037EF34  40 80 01 60 */	bge lbl_80382134
/* 80381FD8 0037EF38  48 00 00 D8 */	b lbl_803820B0
lbl_80381FDC:
/* 80381FDC 0037EF3C  2C 04 00 CB */	cmpwi r4, 0xcb
/* 80381FE0 0037EF40  40 80 01 54 */	bge lbl_80382134
/* 80381FE4 0037EF44  48 00 00 EC */	b lbl_803820D0
lbl_80381FE8:
/* 80381FE8 0037EF48  80 1E 00 04 */	lwz r0, 4(r30)
/* 80381FEC 0037EF4C  7C 05 02 14 */	add r0, r5, r0
/* 80381FF0 0037EF50  90 1C 00 00 */	stw r0, 0(r28)
/* 80381FF4 0037EF54  48 00 01 4C */	b lbl_80382140
lbl_80381FF8:
/* 80381FF8 0037EF58  80 1E 00 04 */	lwz r0, 4(r30)
/* 80381FFC 0037EF5C  80 7C 00 00 */	lwz r3, 0(r28)
/* 80382000 0037EF60  7C 05 02 14 */	add r0, r5, r0
/* 80382004 0037EF64  54 63 07 8A */	rlwinm r3, r3, 0, 0x1e, 5
/* 80382008 0037EF68  50 03 01 BA */	rlwimi r3, r0, 0, 6, 0x1d
/* 8038200C 0037EF6C  90 7C 00 00 */	stw r3, 0(r28)
/* 80382010 0037EF70  48 00 01 30 */	b lbl_80382140
lbl_80382014:
/* 80382014 0037EF74  80 1E 00 04 */	lwz r0, 4(r30)
/* 80382018 0037EF78  7C 05 02 14 */	add r0, r5, r0
/* 8038201C 0037EF7C  B0 1C 00 00 */	sth r0, 0(r28)
/* 80382020 0037EF80  48 00 01 20 */	b lbl_80382140
lbl_80382024:
/* 80382024 0037EF84  80 1E 00 04 */	lwz r0, 4(r30)
/* 80382028 0037EF88  7C 05 02 14 */	add r0, r5, r0
/* 8038202C 0037EF8C  B0 1C 00 00 */	sth r0, 0(r28)
/* 80382030 0037EF90  48 00 01 10 */	b lbl_80382140
lbl_80382034:
/* 80382034 0037EF94  80 1E 00 04 */	lwz r0, 4(r30)
/* 80382038 0037EF98  7C 05 02 14 */	add r0, r5, r0
/* 8038203C 0037EF9C  54 00 84 3E */	srwi r0, r0, 0x10
/* 80382040 0037EFA0  B0 1C 00 00 */	sth r0, 0(r28)
/* 80382044 0037EFA4  48 00 00 FC */	b lbl_80382140
lbl_80382048:
/* 80382048 0037EFA8  80 1E 00 04 */	lwz r0, 4(r30)
/* 8038204C 0037EFAC  7C 85 02 14 */	add r4, r5, r0
/* 80382050 0037EFB0  54 80 04 21 */	rlwinm. r0, r4, 0, 0x10, 0x10
/* 80382054 0037EFB4  41 82 00 0C */	beq lbl_80382060
/* 80382058 0037EFB8  38 60 00 01 */	li r3, 1
/* 8038205C 0037EFBC  48 00 00 08 */	b lbl_80382064
lbl_80382060:
/* 80382060 0037EFC0  38 60 00 00 */	li r3, 0
lbl_80382064:
/* 80382064 0037EFC4  54 80 84 3E */	srwi r0, r4, 0x10
/* 80382068 0037EFC8  7C 00 1A 14 */	add r0, r0, r3
/* 8038206C 0037EFCC  B0 1C 00 00 */	sth r0, 0(r28)
/* 80382070 0037EFD0  48 00 00 D0 */	b lbl_80382140
lbl_80382074:
/* 80382074 0037EFD4  80 1E 00 04 */	lwz r0, 4(r30)
/* 80382078 0037EFD8  80 7C 00 00 */	lwz r3, 0(r28)
/* 8038207C 0037EFDC  7C 05 02 14 */	add r0, r5, r0
/* 80382080 0037EFE0  54 63 07 9E */	rlwinm r3, r3, 0, 0x1e, 0xf
/* 80382084 0037EFE4  50 03 04 3A */	rlwimi r3, r0, 0, 0x10, 0x1d
/* 80382088 0037EFE8  90 7C 00 00 */	stw r3, 0(r28)
/* 8038208C 0037EFEC  48 00 00 B4 */	b lbl_80382140
lbl_80382090:
/* 80382090 0037EFF0  80 1E 00 04 */	lwz r0, 4(r30)
/* 80382094 0037EFF4  80 7C 00 00 */	lwz r3, 0(r28)
/* 80382098 0037EFF8  7C 05 02 14 */	add r0, r5, r0
/* 8038209C 0037EFFC  7C 1C 00 50 */	subf r0, r28, r0
/* 803820A0 0037F000  54 63 07 8A */	rlwinm r3, r3, 0, 0x1e, 5
/* 803820A4 0037F004  50 03 01 BA */	rlwimi r3, r0, 0, 6, 0x1d
/* 803820A8 0037F008  90 7C 00 00 */	stw r3, 0(r28)
/* 803820AC 0037F00C  48 00 00 94 */	b lbl_80382140
lbl_803820B0:
/* 803820B0 0037F010  80 1E 00 04 */	lwz r0, 4(r30)
/* 803820B4 0037F014  80 7C 00 00 */	lwz r3, 0(r28)
/* 803820B8 0037F018  7C 05 02 14 */	add r0, r5, r0
/* 803820BC 0037F01C  7C 1C 00 50 */	subf r0, r28, r0
/* 803820C0 0037F020  54 63 07 9E */	rlwinm r3, r3, 0, 0x1e, 0xf
/* 803820C4 0037F024  50 03 04 3A */	rlwimi r3, r0, 0, 0x10, 0x1d
/* 803820C8 0037F028  90 7C 00 00 */	stw r3, 0(r28)
/* 803820CC 0037F02C  48 00 00 74 */	b lbl_80382140
lbl_803820D0:
/* 803820D0 0037F030  88 1E 00 03 */	lbz r0, 3(r30)
/* 803820D4 0037F034  28 1D 00 00 */	cmplwi r29, 0
/* 803820D8 0037F038  80 7B 00 10 */	lwz r3, 0x10(r27)
/* 803820DC 0037F03C  54 00 18 38 */	slwi r0, r0, 3
/* 803820E0 0037F040  7C 63 02 14 */	add r3, r3, r0
/* 803820E4 0037F044  80 03 00 00 */	lwz r0, 0(r3)
/* 803820E8 0037F048  3A E3 00 00 */	addi r23, r3, 0
/* 803820EC 0037F04C  54 1C 00 3C */	rlwinm r28, r0, 0, 0, 0x1e
/* 803820F0 0037F050  41 82 00 24 */	beq lbl_80382114
/* 803820F4 0037F054  80 1D 00 00 */	lwz r0, 0(r29)
/* 803820F8 0037F058  80 9D 00 04 */	lwz r4, 4(r29)
/* 803820FC 0037F05C  54 18 00 3C */	rlwinm r24, r0, 0, 0, 0x1e
/* 80382100 0037F060  38 78 00 00 */	addi r3, r24, 0
/* 80382104 0037F064  4B FF C9 AD */	bl DCFlushRange
/* 80382108 0037F068  7F 03 C3 78 */	mr r3, r24
/* 8038210C 0037F06C  80 9D 00 04 */	lwz r4, 4(r29)
/* 80382110 0037F070  4B FF CA 85 */	bl ICInvalidateRange
lbl_80382114:
/* 80382114 0037F074  80 17 00 00 */	lwz r0, 0(r23)
/* 80382118 0037F078  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8038211C 0037F07C  41 82 00 0C */	beq lbl_80382128
/* 80382120 0037F080  7E E0 BB 78 */	mr r0, r23
/* 80382124 0037F084  48 00 00 08 */	b lbl_8038212C
lbl_80382128:
/* 80382128 0037F088  38 00 00 00 */	li r0, 0
lbl_8038212C:
/* 8038212C 0037F08C  7C 1D 03 78 */	mr r29, r0
/* 80382130 0037F090  48 00 00 10 */	b lbl_80382140
lbl_80382134:
/* 80382134 0037F094  38 79 00 00 */	addi r3, r25, 0
/* 80382138 0037F098  4C C6 31 82 */	crclr 6
/* 8038213C 0037F09C  4B FF D8 71 */	bl OSReport
lbl_80382140:
/* 80382140 0037F0A0  3B DE 00 08 */	addi r30, r30, 8
lbl_80382144:
/* 80382144 0037F0A4  88 9E 00 02 */	lbz r4, 2(r30)
/* 80382148 0037F0A8  28 04 00 CB */	cmplwi r4, 0xcb
/* 8038214C 0037F0AC  40 82 FE 08 */	bne lbl_80381F54
/* 80382150 0037F0B0  28 1D 00 00 */	cmplwi r29, 0
/* 80382154 0037F0B4  41 82 00 24 */	beq lbl_80382178
/* 80382158 0037F0B8  80 1D 00 00 */	lwz r0, 0(r29)
/* 8038215C 0037F0BC  80 9D 00 04 */	lwz r4, 4(r29)
/* 80382160 0037F0C0  54 19 00 3C */	rlwinm r25, r0, 0, 0, 0x1e
/* 80382164 0037F0C4  38 79 00 00 */	addi r3, r25, 0
/* 80382168 0037F0C8  4B FF C9 49 */	bl DCFlushRange
/* 8038216C 0037F0CC  7F 23 CB 78 */	mr r3, r25
/* 80382170 0037F0D0  80 9D 00 04 */	lwz r4, 4(r29)
/* 80382174 0037F0D4  4B FF CA 21 */	bl ICInvalidateRange
lbl_80382178:
/* 80382178 0037F0D8  38 60 00 01 */	li r3, 1
lbl_8038217C:
/* 8038217C 0037F0DC  BA E1 00 1C */	lmw r23, 0x1c(r1)
/* 80382180 0037F0E0  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80382184 0037F0E4  38 21 00 40 */	addi r1, r1, 0x40
/* 80382188 0037F0E8  7C 08 03 A6 */	mtlr r0
/* 8038218C 0037F0EC  4E 80 00 20 */	blr

.global OSLink
OSLink:
/* 80382190 0037F0F0  7C 08 02 A6 */	mflr r0
/* 80382194 0037F0F4  90 01 00 04 */	stw r0, 4(r1)
/* 80382198 0037F0F8  38 00 00 00 */	li r0, 0
/* 8038219C 0037F0FC  94 21 FF E8 */	stwu r1, -0x18(r1)
/* 803821A0 0037F100  93 E1 00 14 */	stw r31, 0x14(r1)
/* 803821A4 0037F104  3B E3 00 00 */	addi r31, r3, 0
/* 803821A8 0037F108  93 C1 00 10 */	stw r30, 0x10(r1)
/* 803821AC 0037F10C  7C 9E 23 78 */	mr r30, r4
/* 803821B0 0037F110  98 03 00 33 */	stb r0, 0x33(r3)
/* 803821B4 0037F114  80 03 00 1C */	lwz r0, 0x1c(r3)
/* 803821B8 0037F118  28 00 00 02 */	cmplwi r0, 2
/* 803821BC 0037F11C  41 81 00 40 */	bgt lbl_803821FC
/* 803821C0 0037F120  41 80 00 44 */	blt lbl_80382204
/* 803821C4 0037F124  80 7F 00 40 */	lwz r3, 0x40(r31)
/* 803821C8 0037F128  28 03 00 00 */	cmplwi r3, 0
/* 803821CC 0037F12C  41 82 00 14 */	beq lbl_803821E0
/* 803821D0 0037F130  7C 1F 1B 96 */	divwu r0, r31, r3
/* 803821D4 0037F134  7C 00 19 D6 */	mullw r0, r0, r3
/* 803821D8 0037F138  7C 00 F8 51 */	subf. r0, r0, r31
/* 803821DC 0037F13C  40 82 00 20 */	bne lbl_803821FC
lbl_803821E0:
/* 803821E0 0037F140  80 7F 00 44 */	lwz r3, 0x44(r31)
/* 803821E4 0037F144  28 03 00 00 */	cmplwi r3, 0
/* 803821E8 0037F148  41 82 00 1C */	beq lbl_80382204
/* 803821EC 0037F14C  7C 1E 1B 96 */	divwu r0, r30, r3
/* 803821F0 0037F150  7C 00 19 D6 */	mullw r0, r0, r3
/* 803821F4 0037F154  7C 00 F0 51 */	subf. r0, r0, r30
/* 803821F8 0037F158  41 82 00 0C */	beq lbl_80382204
lbl_803821FC:
/* 803821FC 0037F15C  38 60 00 00 */	li r3, 0
/* 80382200 0037F160  48 00 01 D4 */	b lbl_803823D4
lbl_80382204:
/* 80382204 0037F164  3C 60 80 00 */	lis r3, 0x800030C8@ha
/* 80382208 0037F168  38 A3 30 C8 */	addi r5, r3, 0x800030C8@l
/* 8038220C 0037F16C  84 85 00 04 */	lwzu r4, 4(r5)
/* 80382210 0037F170  28 04 00 00 */	cmplwi r4, 0
/* 80382214 0037F174  40 82 00 0C */	bne lbl_80382220
/* 80382218 0037F178  93 E3 30 C8 */	stw r31, 0x30c8(r3)
/* 8038221C 0037F17C  48 00 00 08 */	b lbl_80382224
lbl_80382220:
/* 80382220 0037F180  93 E4 00 04 */	stw r31, 4(r4)
lbl_80382224:
/* 80382224 0037F184  90 9F 00 08 */	stw r4, 8(r31)
/* 80382228 0037F188  38 00 00 00 */	li r0, 0
/* 8038222C 0037F18C  38 7E 00 00 */	addi r3, r30, 0
/* 80382230 0037F190  90 1F 00 04 */	stw r0, 4(r31)
/* 80382234 0037F194  38 80 00 00 */	li r4, 0
/* 80382238 0037F198  93 E5 00 00 */	stw r31, 0(r5)
/* 8038223C 0037F19C  80 BF 00 20 */	lwz r5, 0x20(r31)
/* 80382240 0037F1A0  4B C8 11 69 */	bl memset
/* 80382244 0037F1A4  80 1F 00 10 */	lwz r0, 0x10(r31)
/* 80382248 0037F1A8  38 A0 00 01 */	li r5, 1
/* 8038224C 0037F1AC  38 60 00 08 */	li r3, 8
/* 80382250 0037F1B0  7C 00 FA 14 */	add r0, r0, r31
/* 80382254 0037F1B4  90 1F 00 10 */	stw r0, 0x10(r31)
/* 80382258 0037F1B8  80 1F 00 24 */	lwz r0, 0x24(r31)
/* 8038225C 0037F1BC  7C 00 FA 14 */	add r0, r0, r31
/* 80382260 0037F1C0  90 1F 00 24 */	stw r0, 0x24(r31)
/* 80382264 0037F1C4  80 1F 00 28 */	lwz r0, 0x28(r31)
/* 80382268 0037F1C8  7C 00 FA 14 */	add r0, r0, r31
/* 8038226C 0037F1CC  90 1F 00 28 */	stw r0, 0x28(r31)
/* 80382270 0037F1D0  48 00 00 48 */	b lbl_803822B8
lbl_80382274:
/* 80382274 0037F1D4  80 1F 00 10 */	lwz r0, 0x10(r31)
/* 80382278 0037F1D8  7C 80 1A 14 */	add r4, r0, r3
/* 8038227C 0037F1DC  80 04 00 00 */	lwz r0, 0(r4)
/* 80382280 0037F1E0  28 00 00 00 */	cmplwi r0, 0
/* 80382284 0037F1E4  41 82 00 10 */	beq lbl_80382294
/* 80382288 0037F1E8  7C 00 FA 14 */	add r0, r0, r31
/* 8038228C 0037F1EC  90 04 00 00 */	stw r0, 0(r4)
/* 80382290 0037F1F0  48 00 00 20 */	b lbl_803822B0
lbl_80382294:
/* 80382294 0037F1F4  80 04 00 04 */	lwz r0, 4(r4)
/* 80382298 0037F1F8  28 00 00 00 */	cmplwi r0, 0
/* 8038229C 0037F1FC  41 82 00 14 */	beq lbl_803822B0
/* 803822A0 0037F200  98 BF 00 33 */	stb r5, 0x33(r31)
/* 803822A4 0037F204  93 C4 00 00 */	stw r30, 0(r4)
/* 803822A8 0037F208  80 04 00 04 */	lwz r0, 4(r4)
/* 803822AC 0037F20C  7F DE 02 14 */	add r30, r30, r0
lbl_803822B0:
/* 803822B0 0037F210  38 63 00 08 */	addi r3, r3, 8
/* 803822B4 0037F214  38 A5 00 01 */	addi r5, r5, 1
lbl_803822B8:
/* 803822B8 0037F218  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 803822BC 0037F21C  7C 05 00 40 */	cmplw r5, r0
/* 803822C0 0037F220  41 80 FF B4 */	blt lbl_80382274
/* 803822C4 0037F224  80 9F 00 28 */	lwz r4, 0x28(r31)
/* 803822C8 0037F228  48 00 00 14 */	b lbl_803822DC
lbl_803822CC:
/* 803822CC 0037F22C  80 04 00 04 */	lwz r0, 4(r4)
/* 803822D0 0037F230  7C 00 FA 14 */	add r0, r0, r31
/* 803822D4 0037F234  90 04 00 04 */	stw r0, 4(r4)
/* 803822D8 0037F238  38 84 00 08 */	addi r4, r4, 8
lbl_803822DC:
/* 803822DC 0037F23C  80 7F 00 28 */	lwz r3, 0x28(r31)
/* 803822E0 0037F240  80 1F 00 2C */	lwz r0, 0x2c(r31)
/* 803822E4 0037F244  7C 03 02 14 */	add r0, r3, r0
/* 803822E8 0037F248  7C 04 00 40 */	cmplw r4, r0
/* 803822EC 0037F24C  41 80 FF E0 */	blt lbl_803822CC
/* 803822F0 0037F250  88 1F 00 30 */	lbz r0, 0x30(r31)
/* 803822F4 0037F254  28 00 00 00 */	cmplwi r0, 0
/* 803822F8 0037F258  41 82 00 20 */	beq lbl_80382318
/* 803822FC 0037F25C  80 7F 00 10 */	lwz r3, 0x10(r31)
/* 80382300 0037F260  54 00 18 38 */	slwi r0, r0, 3
/* 80382304 0037F264  80 9F 00 34 */	lwz r4, 0x34(r31)
/* 80382308 0037F268  7C 03 00 2E */	lwzx r0, r3, r0
/* 8038230C 0037F26C  54 00 00 3C */	rlwinm r0, r0, 0, 0, 0x1e
/* 80382310 0037F270  7C 04 02 14 */	add r0, r4, r0
/* 80382314 0037F274  90 1F 00 34 */	stw r0, 0x34(r31)
lbl_80382318:
/* 80382318 0037F278  88 1F 00 31 */	lbz r0, 0x31(r31)
/* 8038231C 0037F27C  28 00 00 00 */	cmplwi r0, 0
/* 80382320 0037F280  41 82 00 20 */	beq lbl_80382340
/* 80382324 0037F284  80 7F 00 10 */	lwz r3, 0x10(r31)
/* 80382328 0037F288  54 00 18 38 */	slwi r0, r0, 3
/* 8038232C 0037F28C  80 9F 00 38 */	lwz r4, 0x38(r31)
/* 80382330 0037F290  7C 03 00 2E */	lwzx r0, r3, r0
/* 80382334 0037F294  54 00 00 3C */	rlwinm r0, r0, 0, 0, 0x1e
/* 80382338 0037F298  7C 04 02 14 */	add r0, r4, r0
/* 8038233C 0037F29C  90 1F 00 38 */	stw r0, 0x38(r31)
lbl_80382340:
/* 80382340 0037F2A0  88 1F 00 32 */	lbz r0, 0x32(r31)
/* 80382344 0037F2A4  28 00 00 00 */	cmplwi r0, 0
/* 80382348 0037F2A8  41 82 00 20 */	beq lbl_80382368
/* 8038234C 0037F2AC  80 7F 00 10 */	lwz r3, 0x10(r31)
/* 80382350 0037F2B0  54 00 18 38 */	slwi r0, r0, 3
/* 80382354 0037F2B4  80 9F 00 3C */	lwz r4, 0x3c(r31)
/* 80382358 0037F2B8  7C 03 00 2E */	lwzx r0, r3, r0
/* 8038235C 0037F2BC  54 00 00 3C */	rlwinm r0, r0, 0, 0, 0x1e
/* 80382360 0037F2C0  7C 04 02 14 */	add r0, r4, r0
/* 80382364 0037F2C4  90 1F 00 3C */	stw r0, 0x3c(r31)
lbl_80382368:
/* 80382368 0037F2C8  3C 60 80 00 */	lis r3, 0x800030D0@ha
/* 8038236C 0037F2CC  80 63 30 D0 */	lwz r3, 0x800030D0@l(r3)
/* 80382370 0037F2D0  28 03 00 00 */	cmplwi r3, 0
/* 80382374 0037F2D4  41 82 00 10 */	beq lbl_80382384
/* 80382378 0037F2D8  80 1F 00 14 */	lwz r0, 0x14(r31)
/* 8038237C 0037F2DC  7C 00 1A 14 */	add r0, r0, r3
/* 80382380 0037F2E0  90 1F 00 14 */	stw r0, 0x14(r31)
lbl_80382384:
/* 80382384 0037F2E4  38 60 00 00 */	li r3, 0
/* 80382388 0037F2E8  38 9F 00 00 */	addi r4, r31, 0
/* 8038238C 0037F2EC  4B FF FB 49 */	bl Relocate
/* 80382390 0037F2F0  3C 60 80 00 */	lis r3, 0x800030C8@ha
/* 80382394 0037F2F4  83 C3 30 C8 */	lwz r30, 0x800030C8@l(r3)
/* 80382398 0037F2F8  48 00 00 28 */	b lbl_803823C0
lbl_8038239C:
/* 8038239C 0037F2FC  38 7F 00 00 */	addi r3, r31, 0
/* 803823A0 0037F300  38 9E 00 00 */	addi r4, r30, 0
/* 803823A4 0037F304  4B FF FB 31 */	bl Relocate
/* 803823A8 0037F308  7C 1E F8 40 */	cmplw r30, r31
/* 803823AC 0037F30C  41 82 00 10 */	beq lbl_803823BC
/* 803823B0 0037F310  38 7E 00 00 */	addi r3, r30, 0
/* 803823B4 0037F314  38 9F 00 00 */	addi r4, r31, 0
/* 803823B8 0037F318  4B FF FB 1D */	bl Relocate
lbl_803823BC:
/* 803823BC 0037F31C  83 DE 00 04 */	lwz r30, 4(r30)
lbl_803823C0:
/* 803823C0 0037F320  28 1E 00 00 */	cmplwi r30, 0
/* 803823C4 0037F324  40 82 FF D8 */	bne lbl_8038239C
/* 803823C8 0037F328  7F E3 FB 78 */	mr r3, r31
/* 803823CC 0037F32C  4B FF FB 01 */	bl OSNotifyLink
/* 803823D0 0037F330  38 60 00 01 */	li r3, 1
lbl_803823D4:
/* 803823D4 0037F334  80 01 00 1C */	lwz r0, 0x1c(r1)
/* 803823D8 0037F338  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 803823DC 0037F33C  83 C1 00 10 */	lwz r30, 0x10(r1)
/* 803823E0 0037F340  38 21 00 18 */	addi r1, r1, 0x18
/* 803823E4 0037F344  7C 08 03 A6 */	mtlr r0
/* 803823E8 0037F348  4E 80 00 20 */	blr

.global Undo
Undo:
/* 803823EC 0037F34C  7C 08 02 A6 */	mflr r0
/* 803823F0 0037F350  90 01 00 04 */	stw r0, 4(r1)
/* 803823F4 0037F354  94 21 FF C8 */	stwu r1, -0x38(r1)
/* 803823F8 0037F358  BF 21 00 1C */	stmw r25, 0x1c(r1)
/* 803823FC 0037F35C  7C 9C 23 78 */	mr r28, r4
/* 80382400 0037F360  80 83 00 00 */	lwz r4, 0(r3)
/* 80382404 0037F364  80 7C 00 28 */	lwz r3, 0x28(r28)
/* 80382408 0037F368  80 1C 00 2C */	lwz r0, 0x2c(r28)
/* 8038240C 0037F36C  38 A3 00 00 */	addi r5, r3, 0
/* 80382410 0037F370  7C 63 02 14 */	add r3, r3, r0
/* 80382414 0037F374  38 03 00 07 */	addi r0, r3, 7
/* 80382418 0037F378  7C 05 00 50 */	subf r0, r5, r0
/* 8038241C 0037F37C  54 00 E8 FE */	srwi r0, r0, 3
/* 80382420 0037F380  7C 05 18 40 */	cmplw r5, r3
/* 80382424 0037F384  7C 09 03 A6 */	mtctr r0
/* 80382428 0037F388  40 80 00 18 */	bge lbl_80382440
lbl_8038242C:
/* 8038242C 0037F38C  80 05 00 00 */	lwz r0, 0(r5)
/* 80382430 0037F390  7C 00 20 40 */	cmplw r0, r4
/* 80382434 0037F394  41 82 00 14 */	beq lbl_80382448
/* 80382438 0037F398  38 A5 00 08 */	addi r5, r5, 8
/* 8038243C 0037F39C  42 00 FF F0 */	bdnz lbl_8038242C
lbl_80382440:
/* 80382440 0037F3A0  38 60 00 00 */	li r3, 0
/* 80382444 0037F3A4  48 00 01 CC */	b lbl_80382610
lbl_80382448:
/* 80382448 0037F3A8  3C 60 80 3F */	lis r3, lbl_803F22B8@ha
/* 8038244C 0037F3AC  83 E5 00 04 */	lwz r31, 4(r5)
/* 80382450 0037F3B0  3B 63 22 B8 */	addi r27, r3, lbl_803F22B8@l
/* 80382454 0037F3B4  3B C0 00 00 */	li r30, 0
/* 80382458 0037F3B8  48 00 01 80 */	b lbl_803825D8
lbl_8038245C:
/* 8038245C 0037F3BC  A0 1F 00 00 */	lhz r0, 0(r31)
/* 80382460 0037F3C0  2C 04 00 06 */	cmpwi r4, 6
/* 80382464 0037F3C4  38 60 00 00 */	li r3, 0
/* 80382468 0037F3C8  7F BD 02 14 */	add r29, r29, r0
/* 8038246C 0037F3CC  41 82 00 A4 */	beq lbl_80382510
/* 80382470 0037F3D0  40 80 00 30 */	bge lbl_803824A0
/* 80382474 0037F3D4  2C 04 00 02 */	cmpwi r4, 2
/* 80382478 0037F3D8  41 82 00 64 */	beq lbl_803824DC
/* 8038247C 0037F3DC  40 80 00 14 */	bge lbl_80382490
/* 80382480 0037F3E0  2C 04 00 00 */	cmpwi r4, 0
/* 80382484 0037F3E4  41 82 01 50 */	beq lbl_803825D4
/* 80382488 0037F3E8  40 80 00 48 */	bge lbl_803824D0
/* 8038248C 0037F3EC  48 00 01 3C */	b lbl_803825C8
lbl_80382490:
/* 80382490 0037F3F0  2C 04 00 04 */	cmpwi r4, 4
/* 80382494 0037F3F4  41 82 00 64 */	beq lbl_803824F8
/* 80382498 0037F3F8  40 80 00 6C */	bge lbl_80382504
/* 8038249C 0037F3FC  48 00 00 50 */	b lbl_803824EC
lbl_803824A0:
/* 803824A0 0037F400  2C 04 00 C9 */	cmpwi r4, 0xc9
/* 803824A4 0037F404  41 82 01 30 */	beq lbl_803825D4
/* 803824A8 0037F408  40 80 00 1C */	bge lbl_803824C4
/* 803824AC 0037F40C  2C 04 00 0A */	cmpwi r4, 0xa
/* 803824B0 0037F410  41 82 00 7C */	beq lbl_8038252C
/* 803824B4 0037F414  41 80 00 68 */	blt lbl_8038251C
/* 803824B8 0037F418  2C 04 00 0E */	cmpwi r4, 0xe
/* 803824BC 0037F41C  40 80 01 0C */	bge lbl_803825C8
/* 803824C0 0037F420  48 00 00 94 */	b lbl_80382554
lbl_803824C4:
/* 803824C4 0037F424  2C 04 00 CB */	cmpwi r4, 0xcb
/* 803824C8 0037F428  40 80 01 00 */	bge lbl_803825C8
/* 803824CC 0037F42C  48 00 00 98 */	b lbl_80382564
lbl_803824D0:
/* 803824D0 0037F430  38 00 00 00 */	li r0, 0
/* 803824D4 0037F434  90 1D 00 00 */	stw r0, 0(r29)
/* 803824D8 0037F438  48 00 00 FC */	b lbl_803825D4
lbl_803824DC:
/* 803824DC 0037F43C  80 1D 00 00 */	lwz r0, 0(r29)
/* 803824E0 0037F440  54 00 07 8A */	rlwinm r0, r0, 0, 0x1e, 5
/* 803824E4 0037F444  90 1D 00 00 */	stw r0, 0(r29)
/* 803824E8 0037F448  48 00 00 EC */	b lbl_803825D4
lbl_803824EC:
/* 803824EC 0037F44C  38 00 00 00 */	li r0, 0
/* 803824F0 0037F450  B0 1D 00 00 */	sth r0, 0(r29)
/* 803824F4 0037F454  48 00 00 E0 */	b lbl_803825D4
lbl_803824F8:
/* 803824F8 0037F458  38 00 00 00 */	li r0, 0
/* 803824FC 0037F45C  B0 1D 00 00 */	sth r0, 0(r29)
/* 80382500 0037F460  48 00 00 D4 */	b lbl_803825D4
lbl_80382504:
/* 80382504 0037F464  38 00 00 00 */	li r0, 0
/* 80382508 0037F468  B0 1D 00 00 */	sth r0, 0(r29)
/* 8038250C 0037F46C  48 00 00 C8 */	b lbl_803825D4
lbl_80382510:
/* 80382510 0037F470  38 00 00 00 */	li r0, 0
/* 80382514 0037F474  B0 1D 00 00 */	sth r0, 0(r29)
/* 80382518 0037F478  48 00 00 BC */	b lbl_803825D4
lbl_8038251C:
/* 8038251C 0037F47C  80 1D 00 00 */	lwz r0, 0(r29)
/* 80382520 0037F480  54 00 07 9E */	rlwinm r0, r0, 0, 0x1e, 0xf
/* 80382524 0037F484  90 1D 00 00 */	stw r0, 0(r29)
/* 80382528 0037F488  48 00 00 AC */	b lbl_803825D4
lbl_8038252C:
/* 8038252C 0037F48C  88 1C 00 32 */	lbz r0, 0x32(r28)
/* 80382530 0037F490  28 00 00 00 */	cmplwi r0, 0
/* 80382534 0037F494  41 82 00 0C */	beq lbl_80382540
/* 80382538 0037F498  80 1C 00 3C */	lwz r0, 0x3c(r28)
/* 8038253C 0037F49C  7C 7D 00 50 */	subf r3, r29, r0
lbl_80382540:
/* 80382540 0037F4A0  80 1D 00 00 */	lwz r0, 0(r29)
/* 80382544 0037F4A4  54 00 07 8A */	rlwinm r0, r0, 0, 0x1e, 5
/* 80382548 0037F4A8  50 60 01 BA */	rlwimi r0, r3, 0, 6, 0x1d
/* 8038254C 0037F4AC  90 1D 00 00 */	stw r0, 0(r29)
/* 80382550 0037F4B0  48 00 00 84 */	b lbl_803825D4
lbl_80382554:
/* 80382554 0037F4B4  80 1D 00 00 */	lwz r0, 0(r29)
/* 80382558 0037F4B8  54 00 07 9E */	rlwinm r0, r0, 0, 0x1e, 0xf
/* 8038255C 0037F4BC  90 1D 00 00 */	stw r0, 0(r29)
/* 80382560 0037F4C0  48 00 00 74 */	b lbl_803825D4
lbl_80382564:
/* 80382564 0037F4C4  88 1F 00 03 */	lbz r0, 3(r31)
/* 80382568 0037F4C8  28 1E 00 00 */	cmplwi r30, 0
/* 8038256C 0037F4CC  80 7C 00 10 */	lwz r3, 0x10(r28)
/* 80382570 0037F4D0  54 00 18 38 */	slwi r0, r0, 3
/* 80382574 0037F4D4  7C 63 02 14 */	add r3, r3, r0
/* 80382578 0037F4D8  80 03 00 00 */	lwz r0, 0(r3)
/* 8038257C 0037F4DC  3B 43 00 00 */	addi r26, r3, 0
/* 80382580 0037F4E0  54 1D 00 3C */	rlwinm r29, r0, 0, 0, 0x1e
/* 80382584 0037F4E4  41 82 00 24 */	beq lbl_803825A8
/* 80382588 0037F4E8  80 1E 00 00 */	lwz r0, 0(r30)
/* 8038258C 0037F4EC  80 9E 00 04 */	lwz r4, 4(r30)
/* 80382590 0037F4F0  54 19 00 3C */	rlwinm r25, r0, 0, 0, 0x1e
/* 80382594 0037F4F4  38 79 00 00 */	addi r3, r25, 0
/* 80382598 0037F4F8  4B FF C5 19 */	bl DCFlushRange
/* 8038259C 0037F4FC  7F 23 CB 78 */	mr r3, r25
/* 803825A0 0037F500  80 9E 00 04 */	lwz r4, 4(r30)
/* 803825A4 0037F504  4B FF C5 F1 */	bl ICInvalidateRange
lbl_803825A8:
/* 803825A8 0037F508  80 1A 00 00 */	lwz r0, 0(r26)
/* 803825AC 0037F50C  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 803825B0 0037F510  41 82 00 0C */	beq lbl_803825BC
/* 803825B4 0037F514  7F 40 D3 78 */	mr r0, r26
/* 803825B8 0037F518  48 00 00 08 */	b lbl_803825C0
lbl_803825BC:
/* 803825BC 0037F51C  38 00 00 00 */	li r0, 0
lbl_803825C0:
/* 803825C0 0037F520  7C 1E 03 78 */	mr r30, r0
/* 803825C4 0037F524  48 00 00 10 */	b lbl_803825D4
lbl_803825C8:
/* 803825C8 0037F528  38 7B 00 00 */	addi r3, r27, 0
/* 803825CC 0037F52C  4C C6 31 82 */	crclr 6
/* 803825D0 0037F530  4B FF D3 DD */	bl OSReport
lbl_803825D4:
/* 803825D4 0037F534  3B FF 00 08 */	addi r31, r31, 8
lbl_803825D8:
/* 803825D8 0037F538  88 9F 00 02 */	lbz r4, 2(r31)
/* 803825DC 0037F53C  28 04 00 CB */	cmplwi r4, 0xcb
/* 803825E0 0037F540  40 82 FE 7C */	bne lbl_8038245C
/* 803825E4 0037F544  28 1E 00 00 */	cmplwi r30, 0
/* 803825E8 0037F548  41 82 00 24 */	beq lbl_8038260C
/* 803825EC 0037F54C  80 1E 00 00 */	lwz r0, 0(r30)
/* 803825F0 0037F550  80 9E 00 04 */	lwz r4, 4(r30)
/* 803825F4 0037F554  54 1B 00 3C */	rlwinm r27, r0, 0, 0, 0x1e
/* 803825F8 0037F558  38 7B 00 00 */	addi r3, r27, 0
/* 803825FC 0037F55C  4B FF C4 B5 */	bl DCFlushRange
/* 80382600 0037F560  7F 63 DB 78 */	mr r3, r27
/* 80382604 0037F564  80 9E 00 04 */	lwz r4, 4(r30)
/* 80382608 0037F568  4B FF C5 8D */	bl ICInvalidateRange
lbl_8038260C:
/* 8038260C 0037F56C  38 60 00 01 */	li r3, 1
lbl_80382610:
/* 80382610 0037F570  BB 21 00 1C */	lmw r25, 0x1c(r1)
/* 80382614 0037F574  80 01 00 3C */	lwz r0, 0x3c(r1)
/* 80382618 0037F578  38 21 00 38 */	addi r1, r1, 0x38
/* 8038261C 0037F57C  7C 08 03 A6 */	mtlr r0
/* 80382620 0037F580  4E 80 00 20 */	blr

.global OSUnlink
OSUnlink:
/* 80382624 0037F584  7C 08 02 A6 */	mflr r0
/* 80382628 0037F588  90 01 00 04 */	stw r0, 4(r1)
/* 8038262C 0037F58C  94 21 FF E8 */	stwu r1, -0x18(r1)
/* 80382630 0037F590  93 E1 00 14 */	stw r31, 0x14(r1)
/* 80382634 0037F594  7C 7F 1B 78 */	mr r31, r3
/* 80382638 0037F598  93 C1 00 10 */	stw r30, 0x10(r1)
/* 8038263C 0037F59C  80 83 00 04 */	lwz r4, 4(r3)
/* 80382640 0037F5A0  80 A3 00 08 */	lwz r5, 8(r3)
/* 80382644 0037F5A4  28 04 00 00 */	cmplwi r4, 0
/* 80382648 0037F5A8  40 82 00 10 */	bne lbl_80382658
/* 8038264C 0037F5AC  3C 60 80 00 */	lis r3, 0x800030CC@ha
/* 80382650 0037F5B0  90 A3 30 CC */	stw r5, 0x800030CC@l(r3)
/* 80382654 0037F5B4  48 00 00 08 */	b lbl_8038265C
lbl_80382658:
/* 80382658 0037F5B8  90 A4 00 08 */	stw r5, 8(r4)
lbl_8038265C:
/* 8038265C 0037F5BC  28 05 00 00 */	cmplwi r5, 0
/* 80382660 0037F5C0  40 82 00 10 */	bne lbl_80382670
/* 80382664 0037F5C4  3C 60 80 00 */	lis r3, 0x800030C8@ha
/* 80382668 0037F5C8  90 83 30 C8 */	stw r4, 0x800030C8@l(r3)
/* 8038266C 0037F5CC  48 00 00 08 */	b lbl_80382674
lbl_80382670:
/* 80382670 0037F5D0  90 85 00 04 */	stw r4, 4(r5)
lbl_80382674:
/* 80382674 0037F5D4  3C 60 80 00 */	lis r3, 0x800030C8@ha
/* 80382678 0037F5D8  83 C3 30 C8 */	lwz r30, 0x800030C8@l(r3)
/* 8038267C 0037F5DC  48 00 00 14 */	b lbl_80382690
lbl_80382680:
/* 80382680 0037F5E0  38 7F 00 00 */	addi r3, r31, 0
/* 80382684 0037F5E4  38 9E 00 00 */	addi r4, r30, 0
/* 80382688 0037F5E8  4B FF FD 65 */	bl Undo
/* 8038268C 0037F5EC  83 DE 00 04 */	lwz r30, 4(r30)
lbl_80382690:
/* 80382690 0037F5F0  28 1E 00 00 */	cmplwi r30, 0
/* 80382694 0037F5F4  40 82 FF EC */	bne lbl_80382680
/* 80382698 0037F5F8  7F E3 FB 78 */	mr r3, r31
/* 8038269C 0037F5FC  4B FF F8 35 */	bl OSNotifyUnlink
/* 803826A0 0037F600  3C 60 80 00 */	lis r3, 0x800030D0@ha
/* 803826A4 0037F604  80 63 30 D0 */	lwz r3, 0x800030D0@l(r3)
/* 803826A8 0037F608  28 03 00 00 */	cmplwi r3, 0
/* 803826AC 0037F60C  41 82 00 10 */	beq lbl_803826BC
/* 803826B0 0037F610  80 1F 00 14 */	lwz r0, 0x14(r31)
/* 803826B4 0037F614  7C 03 00 50 */	subf r0, r3, r0
/* 803826B8 0037F618  90 1F 00 14 */	stw r0, 0x14(r31)
lbl_803826BC:
/* 803826BC 0037F61C  88 1F 00 30 */	lbz r0, 0x30(r31)
/* 803826C0 0037F620  28 00 00 00 */	cmplwi r0, 0
/* 803826C4 0037F624  41 82 00 20 */	beq lbl_803826E4
/* 803826C8 0037F628  80 9F 00 10 */	lwz r4, 0x10(r31)
/* 803826CC 0037F62C  54 03 18 38 */	slwi r3, r0, 3
/* 803826D0 0037F630  80 1F 00 34 */	lwz r0, 0x34(r31)
/* 803826D4 0037F634  7C 64 18 2E */	lwzx r3, r4, r3
/* 803826D8 0037F638  54 63 00 3C */	rlwinm r3, r3, 0, 0, 0x1e
/* 803826DC 0037F63C  7C 03 00 50 */	subf r0, r3, r0
/* 803826E0 0037F640  90 1F 00 34 */	stw r0, 0x34(r31)
lbl_803826E4:
/* 803826E4 0037F644  88 1F 00 31 */	lbz r0, 0x31(r31)
/* 803826E8 0037F648  28 00 00 00 */	cmplwi r0, 0
/* 803826EC 0037F64C  41 82 00 20 */	beq lbl_8038270C
/* 803826F0 0037F650  80 9F 00 10 */	lwz r4, 0x10(r31)
/* 803826F4 0037F654  54 03 18 38 */	slwi r3, r0, 3
/* 803826F8 0037F658  80 1F 00 38 */	lwz r0, 0x38(r31)
/* 803826FC 0037F65C  7C 64 18 2E */	lwzx r3, r4, r3
/* 80382700 0037F660  54 63 00 3C */	rlwinm r3, r3, 0, 0, 0x1e
/* 80382704 0037F664  7C 03 00 50 */	subf r0, r3, r0
/* 80382708 0037F668  90 1F 00 38 */	stw r0, 0x38(r31)
lbl_8038270C:
/* 8038270C 0037F66C  88 1F 00 32 */	lbz r0, 0x32(r31)
/* 80382710 0037F670  28 00 00 00 */	cmplwi r0, 0
/* 80382714 0037F674  41 82 00 20 */	beq lbl_80382734
/* 80382718 0037F678  80 9F 00 10 */	lwz r4, 0x10(r31)
/* 8038271C 0037F67C  54 03 18 38 */	slwi r3, r0, 3
/* 80382720 0037F680  80 1F 00 3C */	lwz r0, 0x3c(r31)
/* 80382724 0037F684  7C 64 18 2E */	lwzx r3, r4, r3
/* 80382728 0037F688  54 63 00 3C */	rlwinm r3, r3, 0, 0, 0x1e
/* 8038272C 0037F68C  7C 03 00 50 */	subf r0, r3, r0
/* 80382730 0037F690  90 1F 00 3C */	stw r0, 0x3c(r31)
lbl_80382734:
/* 80382734 0037F694  80 9F 00 28 */	lwz r4, 0x28(r31)
/* 80382738 0037F698  48 00 00 14 */	b lbl_8038274C
lbl_8038273C:
/* 8038273C 0037F69C  80 04 00 04 */	lwz r0, 4(r4)
/* 80382740 0037F6A0  7C 1F 00 50 */	subf r0, r31, r0
/* 80382744 0037F6A4  90 04 00 04 */	stw r0, 4(r4)
/* 80382748 0037F6A8  38 84 00 08 */	addi r4, r4, 8
lbl_8038274C:
/* 8038274C 0037F6AC  80 7F 00 28 */	lwz r3, 0x28(r31)
/* 80382750 0037F6B0  80 1F 00 2C */	lwz r0, 0x2c(r31)
/* 80382754 0037F6B4  7C 03 02 14 */	add r0, r3, r0
/* 80382758 0037F6B8  7C 04 00 40 */	cmplw r4, r0
/* 8038275C 0037F6BC  41 80 FF E0 */	blt lbl_8038273C
/* 80382760 0037F6C0  38 C0 00 01 */	li r6, 1
/* 80382764 0037F6C4  38 A0 00 08 */	li r5, 8
/* 80382768 0037F6C8  38 60 00 00 */	li r3, 0
/* 8038276C 0037F6CC  48 00 00 40 */	b lbl_803827AC
lbl_80382770:
/* 80382770 0037F6D0  88 1F 00 33 */	lbz r0, 0x33(r31)
/* 80382774 0037F6D4  80 9F 00 10 */	lwz r4, 0x10(r31)
/* 80382778 0037F6D8  7C 06 00 40 */	cmplw r6, r0
/* 8038277C 0037F6DC  7C 84 2A 14 */	add r4, r4, r5
/* 80382780 0037F6E0  40 82 00 10 */	bne lbl_80382790
/* 80382784 0037F6E4  98 7F 00 33 */	stb r3, 0x33(r31)
/* 80382788 0037F6E8  90 64 00 00 */	stw r3, 0(r4)
/* 8038278C 0037F6EC  48 00 00 18 */	b lbl_803827A4
lbl_80382790:
/* 80382790 0037F6F0  80 04 00 00 */	lwz r0, 0(r4)
/* 80382794 0037F6F4  28 00 00 00 */	cmplwi r0, 0
/* 80382798 0037F6F8  41 82 00 0C */	beq lbl_803827A4
/* 8038279C 0037F6FC  7C 1F 00 50 */	subf r0, r31, r0
/* 803827A0 0037F700  90 04 00 00 */	stw r0, 0(r4)
lbl_803827A4:
/* 803827A4 0037F704  38 A5 00 08 */	addi r5, r5, 8
/* 803827A8 0037F708  38 C6 00 01 */	addi r6, r6, 1
lbl_803827AC:
/* 803827AC 0037F70C  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 803827B0 0037F710  7C 06 00 40 */	cmplw r6, r0
/* 803827B4 0037F714  41 80 FF BC */	blt lbl_80382770
/* 803827B8 0037F718  80 1F 00 24 */	lwz r0, 0x24(r31)
/* 803827BC 0037F71C  38 60 00 01 */	li r3, 1
/* 803827C0 0037F720  7C 1F 00 50 */	subf r0, r31, r0
/* 803827C4 0037F724  90 1F 00 24 */	stw r0, 0x24(r31)
/* 803827C8 0037F728  80 1F 00 28 */	lwz r0, 0x28(r31)
/* 803827CC 0037F72C  7C 1F 00 50 */	subf r0, r31, r0
/* 803827D0 0037F730  90 1F 00 28 */	stw r0, 0x28(r31)
/* 803827D4 0037F734  80 1F 00 10 */	lwz r0, 0x10(r31)
/* 803827D8 0037F738  7C 1F 00 50 */	subf r0, r31, r0
/* 803827DC 0037F73C  90 1F 00 10 */	stw r0, 0x10(r31)
/* 803827E0 0037F740  80 01 00 1C */	lwz r0, 0x1c(r1)
/* 803827E4 0037F744  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 803827E8 0037F748  83 C1 00 10 */	lwz r30, 0x10(r1)
/* 803827EC 0037F74C  38 21 00 18 */	addi r1, r1, 0x18
/* 803827F0 0037F750  7C 08 03 A6 */	mtlr r0
/* 803827F4 0037F754  4E 80 00 20 */	blr

.global __OSModuleInit
__OSModuleInit:
/* 803827F8 0037F758  3C 80 80 00 */	lis r4, 0x800030CC@ha
/* 803827FC 0037F75C  38 00 00 00 */	li r0, 0
/* 80382800 0037F760  90 04 30 CC */	stw r0, 0x800030CC@l(r4)
/* 80382804 0037F764  90 04 30 C8 */	stw r0, 0x30c8(r4)
/* 80382808 0037F768  90 04 30 D0 */	stw r0, 0x30d0(r4)
/* 8038280C 0037F76C  4E 80 00 20 */	blr