.include "macros.inc"

.section .text, "ax"

.global __flush_buffer
__flush_buffer:
/* 8038CE2C 00389D8C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8038CE30 00389D90  7C 08 02 A6 */	mflr r0
/* 8038CE34 00389D94  90 01 00 14 */	stw r0, 0x14(r1)
/* 8038CE38 00389D98  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8038CE3C 00389D9C  7C 7F 1B 78 */	mr r31, r3
/* 8038CE40 00389DA0  93 C1 00 08 */	stw r30, 8(r1)
/* 8038CE44 00389DA4  7C 9E 23 78 */	mr r30, r4
/* 8038CE48 00389DA8  80 63 00 1C */	lwz r3, 0x1c(r3)
/* 8038CE4C 00389DAC  80 1F 00 24 */	lwz r0, 0x24(r31)
/* 8038CE50 00389DB0  7C 03 00 51 */	subf. r0, r3, r0
/* 8038CE54 00389DB4  41 82 00 50 */	beq lbl_8038CEA4
/* 8038CE58 00389DB8  90 1F 00 28 */	stw r0, 0x28(r31)
/* 8038CE5C 00389DBC  38 BF 00 28 */	addi r5, r31, 0x28
/* 8038CE60 00389DC0  81 9F 00 40 */	lwz r12, 0x40(r31)
/* 8038CE64 00389DC4  80 7F 00 00 */	lwz r3, 0(r31)
/* 8038CE68 00389DC8  80 9F 00 1C */	lwz r4, 0x1c(r31)
/* 8038CE6C 00389DCC  80 DF 00 48 */	lwz r6, 0x48(r31)
/* 8038CE70 00389DD0  7D 89 03 A6 */	mtctr r12
/* 8038CE74 00389DD4  4E 80 04 21 */	bctrl
/* 8038CE78 00389DD8  28 1E 00 00 */	cmplwi r30, 0
/* 8038CE7C 00389DDC  41 82 00 0C */	beq lbl_8038CE88
/* 8038CE80 00389DE0  80 1F 00 28 */	lwz r0, 0x28(r31)
/* 8038CE84 00389DE4  90 1E 00 00 */	stw r0, 0(r30)
lbl_8038CE88:
/* 8038CE88 00389DE8  2C 03 00 00 */	cmpwi r3, 0
/* 8038CE8C 00389DEC  41 82 00 08 */	beq lbl_8038CE94
/* 8038CE90 00389DF0  48 00 00 48 */	b lbl_8038CED8
lbl_8038CE94:
/* 8038CE94 00389DF4  80 7F 00 18 */	lwz r3, 0x18(r31)
/* 8038CE98 00389DF8  80 1F 00 28 */	lwz r0, 0x28(r31)
/* 8038CE9C 00389DFC  7C 03 02 14 */	add r0, r3, r0
/* 8038CEA0 00389E00  90 1F 00 18 */	stw r0, 0x18(r31)
lbl_8038CEA4:
/* 8038CEA4 00389E04  80 1F 00 1C */	lwz r0, 0x1c(r31)
/* 8038CEA8 00389E08  38 60 00 00 */	li r3, 0
/* 8038CEAC 00389E0C  90 1F 00 24 */	stw r0, 0x24(r31)
/* 8038CEB0 00389E10  80 1F 00 20 */	lwz r0, 0x20(r31)
/* 8038CEB4 00389E14  90 1F 00 28 */	stw r0, 0x28(r31)
/* 8038CEB8 00389E18  80 BF 00 18 */	lwz r5, 0x18(r31)
/* 8038CEBC 00389E1C  80 9F 00 2C */	lwz r4, 0x2c(r31)
/* 8038CEC0 00389E20  80 1F 00 28 */	lwz r0, 0x28(r31)
/* 8038CEC4 00389E24  7C A4 20 38 */	and r4, r5, r4
/* 8038CEC8 00389E28  7C 04 00 50 */	subf r0, r4, r0
/* 8038CECC 00389E2C  90 1F 00 28 */	stw r0, 0x28(r31)
/* 8038CED0 00389E30  80 1F 00 18 */	lwz r0, 0x18(r31)
/* 8038CED4 00389E34  90 1F 00 34 */	stw r0, 0x34(r31)
lbl_8038CED8:
/* 8038CED8 00389E38  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8038CEDC 00389E3C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8038CEE0 00389E40  83 C1 00 08 */	lwz r30, 8(r1)
/* 8038CEE4 00389E44  7C 08 03 A6 */	mtlr r0
/* 8038CEE8 00389E48  38 21 00 10 */	addi r1, r1, 0x10
/* 8038CEEC 00389E4C  4E 80 00 20 */	blr

.global __prep_buffer
__prep_buffer:
/* 8038CEF0 00389E50  80 03 00 1C */	lwz r0, 0x1c(r3)
/* 8038CEF4 00389E54  90 03 00 24 */	stw r0, 0x24(r3)
/* 8038CEF8 00389E58  80 03 00 20 */	lwz r0, 0x20(r3)
/* 8038CEFC 00389E5C  90 03 00 28 */	stw r0, 0x28(r3)
/* 8038CF00 00389E60  80 A3 00 18 */	lwz r5, 0x18(r3)
/* 8038CF04 00389E64  80 83 00 2C */	lwz r4, 0x2c(r3)
/* 8038CF08 00389E68  80 03 00 28 */	lwz r0, 0x28(r3)
/* 8038CF0C 00389E6C  7C A4 20 38 */	and r4, r5, r4
/* 8038CF10 00389E70  7C 04 00 50 */	subf r0, r4, r0
/* 8038CF14 00389E74  90 03 00 28 */	stw r0, 0x28(r3)
/* 8038CF18 00389E78  80 03 00 18 */	lwz r0, 0x18(r3)
/* 8038CF1C 00389E7C  90 03 00 34 */	stw r0, 0x34(r3)
/* 8038CF20 00389E80  4E 80 00 20 */	blr