.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global __prep_buffer __prep_buffer: /* 801C93A8 001C5008 80 83 00 18 */ lwz r4, 0x18(r3) /* 801C93AC 001C500C 80 03 00 2C */ lwz r0, 0x2c(r3) /* 801C93B0 001C5010 80 C3 00 1C */ lwz r6, 0x1c(r3) /* 801C93B4 001C5014 80 A3 00 20 */ lwz r5, 0x20(r3) /* 801C93B8 001C5018 7C 80 00 38 */ and r0, r4, r0 /* 801C93BC 001C501C 90 C3 00 24 */ stw r6, 0x24(r3) /* 801C93C0 001C5020 7C 00 28 50 */ subf r0, r0, r5 /* 801C93C4 001C5024 90 03 00 28 */ stw r0, 0x28(r3) /* 801C93C8 001C5028 90 83 00 34 */ stw r4, 0x34(r3) /* 801C93CC 001C502C 4E 80 00 20 */ blr .global __load_buffer __load_buffer: /* 801C93D0 001C5030 94 21 FF F0 */ stwu r1, -0x10(r1) /* 801C93D4 001C5034 7C 08 02 A6 */ mflr r0 /* 801C93D8 001C5038 2C 05 00 01 */ cmpwi r5, 1 /* 801C93DC 001C503C 90 01 00 14 */ stw r0, 0x14(r1) /* 801C93E0 001C5040 93 E1 00 0C */ stw r31, 0xc(r1) /* 801C93E4 001C5044 7C 7F 1B 78 */ mr r31, r3 /* 801C93E8 001C5048 93 C1 00 08 */ stw r30, 8(r1) /* 801C93EC 001C504C 7C 9E 23 78 */ mr r30, r4 /* 801C93F0 001C5050 80 C3 00 18 */ lwz r6, 0x18(r3) /* 801C93F4 001C5054 80 03 00 2C */ lwz r0, 0x2c(r3) /* 801C93F8 001C5058 80 A3 00 1C */ lwz r5, 0x1c(r3) /* 801C93FC 001C505C 80 83 00 20 */ lwz r4, 0x20(r3) /* 801C9400 001C5060 7C C0 00 38 */ and r0, r6, r0 /* 801C9404 001C5064 90 A3 00 24 */ stw r5, 0x24(r3) /* 801C9408 001C5068 7C 00 20 50 */ subf r0, r0, r4 /* 801C940C 001C506C 90 03 00 28 */ stw r0, 0x28(r3) /* 801C9410 001C5070 90 C3 00 34 */ stw r6, 0x34(r3) /* 801C9414 001C5074 40 82 00 08 */ bne lbl_801C941C /* 801C9418 001C5078 90 83 00 28 */ stw r4, 0x28(r3) lbl_801C941C: /* 801C941C 001C507C 81 9F 00 3C */ lwz r12, 0x3c(r31) /* 801C9420 001C5080 38 BF 00 28 */ addi r5, r31, 0x28 /* 801C9424 001C5084 80 63 00 00 */ lwz r3, 0(r3) /* 801C9428 001C5088 80 9F 00 1C */ lwz r4, 0x1c(r31) /* 801C942C 001C508C 80 DF 00 48 */ lwz r6, 0x48(r31) /* 801C9430 001C5090 7D 89 03 A6 */ mtctr r12 /* 801C9434 001C5094 4E 80 04 21 */ bctrl /* 801C9438 001C5098 2C 03 00 02 */ cmpwi r3, 2 /* 801C943C 001C509C 40 82 00 0C */ bne lbl_801C9448 /* 801C9440 001C50A0 38 00 00 00 */ li r0, 0 /* 801C9444 001C50A4 90 1F 00 28 */ stw r0, 0x28(r31) lbl_801C9448: /* 801C9448 001C50A8 2C 1E 00 00 */ cmpwi r30, 0 /* 801C944C 001C50AC 41 82 00 0C */ beq lbl_801C9458 /* 801C9450 001C50B0 80 1F 00 28 */ lwz r0, 0x28(r31) /* 801C9454 001C50B4 90 1E 00 00 */ stw r0, 0(r30) lbl_801C9458: /* 801C9458 001C50B8 2C 03 00 00 */ cmpwi r3, 0 /* 801C945C 001C50BC 41 82 00 08 */ beq lbl_801C9464 /* 801C9460 001C50C0 48 00 00 54 */ b lbl_801C94B4 lbl_801C9464: /* 801C9464 001C50C4 80 1F 00 04 */ lwz r0, 4(r31) /* 801C9468 001C50C8 80 9F 00 18 */ lwz r4, 0x18(r31) /* 801C946C 001C50CC 80 7F 00 28 */ lwz r3, 0x28(r31) /* 801C9470 001C50D0 54 00 6F FF */ rlwinm. r0, r0, 0xd, 0x1f, 0x1f /* 801C9474 001C50D4 7C 04 1A 14 */ add r0, r4, r3 /* 801C9478 001C50D8 90 1F 00 18 */ stw r0, 0x18(r31) /* 801C947C 001C50DC 40 82 00 34 */ bne lbl_801C94B0 /* 801C9480 001C50E0 80 9F 00 1C */ lwz r4, 0x1c(r31) /* 801C9484 001C50E4 7C 69 03 A6 */ mtctr r3 /* 801C9488 001C50E8 2C 03 00 00 */ cmpwi r3, 0 /* 801C948C 001C50EC 41 82 00 24 */ beq lbl_801C94B0 lbl_801C9490: /* 801C9490 001C50F0 88 04 00 00 */ lbz r0, 0(r4) /* 801C9494 001C50F4 38 84 00 01 */ addi r4, r4, 1 /* 801C9498 001C50F8 28 00 00 0A */ cmplwi r0, 0xa /* 801C949C 001C50FC 40 82 00 10 */ bne lbl_801C94AC /* 801C94A0 001C5100 80 7F 00 18 */ lwz r3, 0x18(r31) /* 801C94A4 001C5104 38 03 00 01 */ addi r0, r3, 1 /* 801C94A8 001C5108 90 1F 00 18 */ stw r0, 0x18(r31) lbl_801C94AC: /* 801C94AC 001C510C 42 00 FF E4 */ bdnz lbl_801C9490 lbl_801C94B0: /* 801C94B0 001C5110 38 60 00 00 */ li r3, 0 lbl_801C94B4: /* 801C94B4 001C5114 80 01 00 14 */ lwz r0, 0x14(r1) /* 801C94B8 001C5118 83 E1 00 0C */ lwz r31, 0xc(r1) /* 801C94BC 001C511C 83 C1 00 08 */ lwz r30, 8(r1) /* 801C94C0 001C5120 7C 08 03 A6 */ mtlr r0 /* 801C94C4 001C5124 38 21 00 10 */ addi r1, r1, 0x10 /* 801C94C8 001C5128 4E 80 00 20 */ blr .global __flush_buffer __flush_buffer: /* 801C94CC 001C512C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 801C94D0 001C5130 7C 08 02 A6 */ mflr r0 /* 801C94D4 001C5134 90 01 00 14 */ stw r0, 0x14(r1) /* 801C94D8 001C5138 93 E1 00 0C */ stw r31, 0xc(r1) /* 801C94DC 001C513C 7C 9F 23 78 */ mr r31, r4 /* 801C94E0 001C5140 93 C1 00 08 */ stw r30, 8(r1) /* 801C94E4 001C5144 7C 7E 1B 78 */ mr r30, r3 /* 801C94E8 001C5148 80 A3 00 1C */ lwz r5, 0x1c(r3) /* 801C94EC 001C514C 80 03 00 24 */ lwz r0, 0x24(r3) /* 801C94F0 001C5150 7C 05 00 51 */ subf. r0, r5, r0 /* 801C94F4 001C5154 41 82 00 50 */ beq lbl_801C9544 /* 801C94F8 001C5158 81 9E 00 40 */ lwz r12, 0x40(r30) /* 801C94FC 001C515C 7C A4 2B 78 */ mr r4, r5 /* 801C9500 001C5160 90 03 00 28 */ stw r0, 0x28(r3) /* 801C9504 001C5164 38 BE 00 28 */ addi r5, r30, 0x28 /* 801C9508 001C5168 80 63 00 00 */ lwz r3, 0(r3) /* 801C950C 001C516C 80 DE 00 48 */ lwz r6, 0x48(r30) /* 801C9510 001C5170 7D 89 03 A6 */ mtctr r12 /* 801C9514 001C5174 4E 80 04 21 */ bctrl /* 801C9518 001C5178 2C 1F 00 00 */ cmpwi r31, 0 /* 801C951C 001C517C 41 82 00 0C */ beq lbl_801C9528 /* 801C9520 001C5180 80 1E 00 28 */ lwz r0, 0x28(r30) /* 801C9524 001C5184 90 1F 00 00 */ stw r0, 0(r31) lbl_801C9528: /* 801C9528 001C5188 2C 03 00 00 */ cmpwi r3, 0 /* 801C952C 001C518C 41 82 00 08 */ beq lbl_801C9534 /* 801C9530 001C5190 48 00 00 3C */ b lbl_801C956C lbl_801C9534: /* 801C9534 001C5194 80 7E 00 18 */ lwz r3, 0x18(r30) /* 801C9538 001C5198 80 1E 00 28 */ lwz r0, 0x28(r30) /* 801C953C 001C519C 7C 03 02 14 */ add r0, r3, r0 /* 801C9540 001C51A0 90 1E 00 18 */ stw r0, 0x18(r30) lbl_801C9544: /* 801C9544 001C51A4 80 9E 00 18 */ lwz r4, 0x18(r30) /* 801C9548 001C51A8 38 60 00 00 */ li r3, 0 /* 801C954C 001C51AC 80 1E 00 2C */ lwz r0, 0x2c(r30) /* 801C9550 001C51B0 80 DE 00 1C */ lwz r6, 0x1c(r30) /* 801C9554 001C51B4 80 BE 00 20 */ lwz r5, 0x20(r30) /* 801C9558 001C51B8 7C 80 00 38 */ and r0, r4, r0 /* 801C955C 001C51BC 90 DE 00 24 */ stw r6, 0x24(r30) /* 801C9560 001C51C0 7C 00 28 50 */ subf r0, r0, r5 /* 801C9564 001C51C4 90 1E 00 28 */ stw r0, 0x28(r30) /* 801C9568 001C51C8 90 9E 00 34 */ stw r4, 0x34(r30) lbl_801C956C: /* 801C956C 001C51CC 80 01 00 14 */ lwz r0, 0x14(r1) /* 801C9570 001C51D0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 801C9574 001C51D4 83 C1 00 08 */ lwz r30, 8(r1) /* 801C9578 001C51D8 7C 08 03 A6 */ mtlr r0 /* 801C957C 001C51DC 38 21 00 10 */ addi r1, r1, 0x10 /* 801C9580 001C51E0 4E 80 00 20 */ blr