.include "macros.inc"

.section .text, "ax"

.global inflate_fast
inflate_fast:
/* 80342DC4 0033FD24  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80342DC8 0033FD28  BF 01 00 10 */	stmw r24, 0x10(r1)
/* 80342DCC 0033FD2C  81 87 00 34 */	lwz r12, 0x34(r7)
/* 80342DD0 0033FD30  83 27 00 30 */	lwz r25, 0x30(r7)
/* 80342DD4 0033FD34  81 48 00 00 */	lwz r10, 0(r8)
/* 80342DD8 0033FD38  7C 0C C8 40 */	cmplw r12, r25
/* 80342DDC 0033FD3C  81 68 00 04 */	lwz r11, 4(r8)
/* 80342DE0 0033FD40  80 07 00 20 */	lwz r0, 0x20(r7)
/* 80342DE4 0033FD44  81 27 00 1C */	lwz r9, 0x1c(r7)
/* 80342DE8 0033FD48  40 80 00 10 */	bge lbl_80342DF8
/* 80342DEC 0033FD4C  7F 2C C8 50 */	subf r25, r12, r25
/* 80342DF0 0033FD50  3B 79 FF FF */	addi r27, r25, -1
/* 80342DF4 0033FD54  48 00 00 0C */	b lbl_80342E00
lbl_80342DF8:
/* 80342DF8 0033FD58  83 27 00 2C */	lwz r25, 0x2c(r7)
/* 80342DFC 0033FD5C  7F 6C C8 50 */	subf r27, r12, r25
lbl_80342E00:
/* 80342E00 0033FD60  3F 20 80 3F */	lis r25, inflate_mask@ha
/* 80342E04 0033FD64  54 7A 10 3A */	slwi r26, r3, 2
/* 80342E08 0033FD68  3B 39 F5 C8 */	addi r25, r25, inflate_mask@l
/* 80342E0C 0033FD6C  54 83 10 3A */	slwi r3, r4, 2
/* 80342E10 0033FD70  7F F9 D0 2E */	lwzx r31, r25, r26
/* 80342E14 0033FD74  7F 64 DB 78 */	mr r4, r27
/* 80342E18 0033FD78  7F D9 18 2E */	lwzx r30, r25, r3
/* 80342E1C 0033FD7C  48 00 00 1C */	b lbl_80342E38
lbl_80342E20:
/* 80342E20 0033FD80  88 6A 00 00 */	lbz r3, 0(r10)
/* 80342E24 0033FD84  39 6B FF FF */	addi r11, r11, -1
/* 80342E28 0033FD88  39 4A 00 01 */	addi r10, r10, 1
/* 80342E2C 0033FD8C  7C 63 48 30 */	slw r3, r3, r9
/* 80342E30 0033FD90  39 29 00 08 */	addi r9, r9, 8
/* 80342E34 0033FD94  7C 00 1B 78 */	or r0, r0, r3
lbl_80342E38:
/* 80342E38 0033FD98  28 09 00 14 */	cmplwi r9, 0x14
/* 80342E3C 0033FD9C  41 80 FF E4 */	blt lbl_80342E20
/* 80342E40 0033FDA0  7C 03 F8 38 */	and r3, r0, r31
/* 80342E44 0033FDA4  54 63 18 38 */	slwi r3, r3, 3
/* 80342E48 0033FDA8  7C 65 1A 14 */	add r3, r5, r3
/* 80342E4C 0033FDAC  8B 03 00 00 */	lbz r24, 0(r3)
/* 80342E50 0033FDB0  28 18 00 00 */	cmplwi r24, 0
/* 80342E54 0033FDB4  40 82 00 24 */	bne lbl_80342E78
/* 80342E58 0033FDB8  8B 23 00 01 */	lbz r25, 1(r3)
/* 80342E5C 0033FDBC  38 84 FF FF */	addi r4, r4, -1
/* 80342E60 0033FDC0  80 63 00 04 */	lwz r3, 4(r3)
/* 80342E64 0033FDC4  7C 00 CC 30 */	srw r0, r0, r25
/* 80342E68 0033FDC8  7D 39 48 50 */	subf r9, r25, r9
/* 80342E6C 0033FDCC  98 6C 00 00 */	stb r3, 0(r12)
/* 80342E70 0033FDD0  39 8C 00 01 */	addi r12, r12, 1
/* 80342E74 0033FDD4  48 00 04 78 */	b lbl_803432EC
lbl_80342E78:
/* 80342E78 0033FDD8  3F 60 80 3F */	lis r27, inflate_mask@ha
/* 80342E7C 0033FDDC  3B 9B F5 C8 */	addi r28, r27, inflate_mask@l
lbl_80342E80:
/* 80342E80 0033FDE0  8B 43 00 01 */	lbz r26, 1(r3)
/* 80342E84 0033FDE4  57 19 06 F7 */	rlwinm. r25, r24, 0, 0x1b, 0x1b
/* 80342E88 0033FDE8  7C 00 D4 30 */	srw r0, r0, r26
/* 80342E8C 0033FDEC  7D 3A 48 50 */	subf r9, r26, r9
/* 80342E90 0033FDF0  41 82 03 40 */	beq lbl_803431D0
/* 80342E94 0033FDF4  3F 20 80 3F */	lis r25, inflate_mask@ha
/* 80342E98 0033FDF8  57 1D 07 3E */	clrlwi r29, r24, 0x1c
/* 80342E9C 0033FDFC  57 1A 16 BA */	rlwinm r26, r24, 2, 0x1a, 0x1d
/* 80342EA0 0033FE00  83 63 00 04 */	lwz r27, 4(r3)
/* 80342EA4 0033FE04  7D 3D 48 50 */	subf r9, r29, r9
/* 80342EA8 0033FE08  38 79 F5 C8 */	addi r3, r25, inflate_mask@l
/* 80342EAC 0033FE0C  7C 63 D0 2E */	lwzx r3, r3, r26
/* 80342EB0 0033FE10  28 09 00 0F */	cmplwi r9, 0xf
/* 80342EB4 0033FE14  23 89 00 16 */	subfic r28, r9, 0x16
/* 80342EB8 0033FE18  7C 03 18 38 */	and r3, r0, r3
/* 80342EBC 0033FE1C  7C 00 EC 30 */	srw r0, r0, r29
/* 80342EC0 0033FE20  7F BB 1A 14 */	add r29, r27, r3
/* 80342EC4 0033FE24  57 9C E8 FE */	srwi r28, r28, 3
/* 80342EC8 0033FE28  40 80 00 C4 */	bge lbl_80342F8C
/* 80342ECC 0033FE2C  57 83 E8 FF */	rlwinm. r3, r28, 0x1d, 3, 0x1f
/* 80342ED0 0033FE30  7C 69 03 A6 */	mtctr r3
/* 80342ED4 0033FE34  41 82 00 98 */	beq lbl_80342F6C
lbl_80342ED8:
/* 80342ED8 0033FE38  8B 2A 00 00 */	lbz r25, 0(r10)
/* 80342EDC 0033FE3C  39 6B FF F8 */	addi r11, r11, -8
/* 80342EE0 0033FE40  7F 23 48 30 */	slw r3, r25, r9
/* 80342EE4 0033FE44  8B 2A 00 01 */	lbz r25, 1(r10)
/* 80342EE8 0033FE48  39 29 00 08 */	addi r9, r9, 8
/* 80342EEC 0033FE4C  7C 00 1B 78 */	or r0, r0, r3
/* 80342EF0 0033FE50  7F 23 48 30 */	slw r3, r25, r9
/* 80342EF4 0033FE54  8B 2A 00 02 */	lbz r25, 2(r10)
/* 80342EF8 0033FE58  39 29 00 08 */	addi r9, r9, 8
/* 80342EFC 0033FE5C  7C 00 1B 78 */	or r0, r0, r3
/* 80342F00 0033FE60  7F 23 48 30 */	slw r3, r25, r9
/* 80342F04 0033FE64  8B 2A 00 03 */	lbz r25, 3(r10)
/* 80342F08 0033FE68  39 29 00 08 */	addi r9, r9, 8
/* 80342F0C 0033FE6C  7C 00 1B 78 */	or r0, r0, r3
/* 80342F10 0033FE70  7F 23 48 30 */	slw r3, r25, r9
/* 80342F14 0033FE74  8B 2A 00 04 */	lbz r25, 4(r10)
/* 80342F18 0033FE78  39 29 00 08 */	addi r9, r9, 8
/* 80342F1C 0033FE7C  7C 00 1B 78 */	or r0, r0, r3
/* 80342F20 0033FE80  7F 23 48 30 */	slw r3, r25, r9
/* 80342F24 0033FE84  8B 2A 00 05 */	lbz r25, 5(r10)
/* 80342F28 0033FE88  39 29 00 08 */	addi r9, r9, 8
/* 80342F2C 0033FE8C  7C 00 1B 78 */	or r0, r0, r3
/* 80342F30 0033FE90  7F 23 48 30 */	slw r3, r25, r9
/* 80342F34 0033FE94  8B 2A 00 06 */	lbz r25, 6(r10)
/* 80342F38 0033FE98  39 29 00 08 */	addi r9, r9, 8
/* 80342F3C 0033FE9C  7C 00 1B 78 */	or r0, r0, r3
/* 80342F40 0033FEA0  7F 23 48 30 */	slw r3, r25, r9
/* 80342F44 0033FEA4  8B 2A 00 07 */	lbz r25, 7(r10)
/* 80342F48 0033FEA8  39 29 00 08 */	addi r9, r9, 8
/* 80342F4C 0033FEAC  39 4A 00 08 */	addi r10, r10, 8
/* 80342F50 0033FEB0  7C 00 1B 78 */	or r0, r0, r3
/* 80342F54 0033FEB4  7F 23 48 30 */	slw r3, r25, r9
/* 80342F58 0033FEB8  39 29 00 08 */	addi r9, r9, 8
/* 80342F5C 0033FEBC  7C 00 1B 78 */	or r0, r0, r3
/* 80342F60 0033FEC0  42 00 FF 78 */	bdnz lbl_80342ED8
/* 80342F64 0033FEC4  73 9C 00 07 */	andi. r28, r28, 7
/* 80342F68 0033FEC8  41 82 00 24 */	beq lbl_80342F8C
lbl_80342F6C:
/* 80342F6C 0033FECC  7F 89 03 A6 */	mtctr r28
lbl_80342F70:
/* 80342F70 0033FED0  8B 2A 00 00 */	lbz r25, 0(r10)
/* 80342F74 0033FED4  39 6B FF FF */	addi r11, r11, -1
/* 80342F78 0033FED8  39 4A 00 01 */	addi r10, r10, 1
/* 80342F7C 0033FEDC  7F 23 48 30 */	slw r3, r25, r9
/* 80342F80 0033FEE0  39 29 00 08 */	addi r9, r9, 8
/* 80342F84 0033FEE4  7C 00 1B 78 */	or r0, r0, r3
/* 80342F88 0033FEE8  42 00 FF E8 */	bdnz lbl_80342F70
lbl_80342F8C:
/* 80342F8C 0033FEEC  7C 03 F0 38 */	and r3, r0, r30
/* 80342F90 0033FEF0  3F 60 80 3F */	lis r27, inflate_mask@ha
/* 80342F94 0033FEF4  54 63 18 38 */	slwi r3, r3, 3
/* 80342F98 0033FEF8  7C 66 1A 14 */	add r3, r6, r3
/* 80342F9C 0033FEFC  3B 9B F5 C8 */	addi r28, r27, inflate_mask@l
/* 80342FA0 0033FF00  8B 03 00 00 */	lbz r24, 0(r3)
lbl_80342FA4:
/* 80342FA4 0033FF04  8B 43 00 01 */	lbz r26, 1(r3)
/* 80342FA8 0033FF08  57 19 06 F7 */	rlwinm. r25, r24, 0, 0x1b, 0x1b
/* 80342FAC 0033FF0C  7C 00 D4 30 */	srw r0, r0, r26
/* 80342FB0 0033FF10  7D 3A 48 50 */	subf r9, r26, r9
/* 80342FB4 0033FF14  41 82 01 88 */	beq lbl_8034313C
/* 80342FB8 0033FF18  57 18 07 3E */	clrlwi r24, r24, 0x1c
/* 80342FBC 0033FF1C  3B 78 00 07 */	addi r27, r24, 7
/* 80342FC0 0033FF20  7F 69 D8 50 */	subf r27, r9, r27
/* 80342FC4 0033FF24  7C 09 C0 40 */	cmplw r9, r24
/* 80342FC8 0033FF28  57 7B E8 FE */	srwi r27, r27, 3
/* 80342FCC 0033FF2C  40 80 00 C4 */	bge lbl_80343090
/* 80342FD0 0033FF30  57 7C E8 FF */	rlwinm. r28, r27, 0x1d, 3, 0x1f
/* 80342FD4 0033FF34  7F 89 03 A6 */	mtctr r28
/* 80342FD8 0033FF38  41 82 00 98 */	beq lbl_80343070
lbl_80342FDC:
/* 80342FDC 0033FF3C  8B 4A 00 00 */	lbz r26, 0(r10)
/* 80342FE0 0033FF40  39 6B FF F8 */	addi r11, r11, -8
/* 80342FE4 0033FF44  7F 59 48 30 */	slw r25, r26, r9
/* 80342FE8 0033FF48  8B 4A 00 01 */	lbz r26, 1(r10)
/* 80342FEC 0033FF4C  39 29 00 08 */	addi r9, r9, 8
/* 80342FF0 0033FF50  7C 00 CB 78 */	or r0, r0, r25
/* 80342FF4 0033FF54  7F 59 48 30 */	slw r25, r26, r9
/* 80342FF8 0033FF58  8B 4A 00 02 */	lbz r26, 2(r10)
/* 80342FFC 0033FF5C  39 29 00 08 */	addi r9, r9, 8
/* 80343000 0033FF60  7C 00 CB 78 */	or r0, r0, r25
/* 80343004 0033FF64  7F 59 48 30 */	slw r25, r26, r9
/* 80343008 0033FF68  8B 4A 00 03 */	lbz r26, 3(r10)
/* 8034300C 0033FF6C  39 29 00 08 */	addi r9, r9, 8
/* 80343010 0033FF70  7C 00 CB 78 */	or r0, r0, r25
/* 80343014 0033FF74  7F 59 48 30 */	slw r25, r26, r9
/* 80343018 0033FF78  8B 4A 00 04 */	lbz r26, 4(r10)
/* 8034301C 0033FF7C  39 29 00 08 */	addi r9, r9, 8
/* 80343020 0033FF80  7C 00 CB 78 */	or r0, r0, r25
/* 80343024 0033FF84  7F 59 48 30 */	slw r25, r26, r9
/* 80343028 0033FF88  8B 4A 00 05 */	lbz r26, 5(r10)
/* 8034302C 0033FF8C  39 29 00 08 */	addi r9, r9, 8
/* 80343030 0033FF90  7C 00 CB 78 */	or r0, r0, r25
/* 80343034 0033FF94  7F 59 48 30 */	slw r25, r26, r9
/* 80343038 0033FF98  8B 4A 00 06 */	lbz r26, 6(r10)
/* 8034303C 0033FF9C  39 29 00 08 */	addi r9, r9, 8
/* 80343040 0033FFA0  7C 00 CB 78 */	or r0, r0, r25
/* 80343044 0033FFA4  7F 59 48 30 */	slw r25, r26, r9
/* 80343048 0033FFA8  8B 4A 00 07 */	lbz r26, 7(r10)
/* 8034304C 0033FFAC  39 29 00 08 */	addi r9, r9, 8
/* 80343050 0033FFB0  39 4A 00 08 */	addi r10, r10, 8
/* 80343054 0033FFB4  7C 00 CB 78 */	or r0, r0, r25
/* 80343058 0033FFB8  7F 59 48 30 */	slw r25, r26, r9
/* 8034305C 0033FFBC  39 29 00 08 */	addi r9, r9, 8
/* 80343060 0033FFC0  7C 00 CB 78 */	or r0, r0, r25
/* 80343064 0033FFC4  42 00 FF 78 */	bdnz lbl_80342FDC
/* 80343068 0033FFC8  73 7B 00 07 */	andi. r27, r27, 7
/* 8034306C 0033FFCC  41 82 00 24 */	beq lbl_80343090
lbl_80343070:
/* 80343070 0033FFD0  7F 69 03 A6 */	mtctr r27
lbl_80343074:
/* 80343074 0033FFD4  8B 4A 00 00 */	lbz r26, 0(r10)
/* 80343078 0033FFD8  39 6B FF FF */	addi r11, r11, -1
/* 8034307C 0033FFDC  39 4A 00 01 */	addi r10, r10, 1
/* 80343080 0033FFE0  7F 59 48 30 */	slw r25, r26, r9
/* 80343084 0033FFE4  39 29 00 08 */	addi r9, r9, 8
/* 80343088 0033FFE8  7C 00 CB 78 */	or r0, r0, r25
/* 8034308C 0033FFEC  42 00 FF E8 */	bdnz lbl_80343074
lbl_80343090:
/* 80343090 0033FFF0  3F 60 80 3F */	lis r27, inflate_mask@ha
/* 80343094 0033FFF4  83 47 00 28 */	lwz r26, 0x28(r7)
/* 80343098 0033FFF8  57 1C 10 3A */	slwi r28, r24, 2
/* 8034309C 0033FFFC  83 23 00 04 */	lwz r25, 4(r3)
/* 803430A0 00340000  38 7B F5 C8 */	addi r3, r27, inflate_mask@l
/* 803430A4 00340004  7F 5A 60 50 */	subf r26, r26, r12
/* 803430A8 00340008  7C 63 E0 2E */	lwzx r3, r3, r28
/* 803430AC 0034000C  7D 38 48 50 */	subf r9, r24, r9
/* 803430B0 00340010  7C 9D 20 50 */	subf r4, r29, r4
/* 803430B4 00340014  7C 03 18 38 */	and r3, r0, r3
/* 803430B8 00340018  7C 00 C4 30 */	srw r0, r0, r24
/* 803430BC 0034001C  7C 79 1A 14 */	add r3, r25, r3
/* 803430C0 00340020  7C 1A 18 40 */	cmplw r26, r3
/* 803430C4 00340024  41 80 00 28 */	blt lbl_803430EC
/* 803430C8 00340028  7F 23 60 50 */	subf r25, r3, r12
/* 803430CC 0034002C  3B BD FF FE */	addi r29, r29, -2
/* 803430D0 00340030  88 79 00 00 */	lbz r3, 0(r25)
/* 803430D4 00340034  98 6C 00 00 */	stb r3, 0(r12)
/* 803430D8 00340038  88 79 00 01 */	lbz r3, 1(r25)
/* 803430DC 0034003C  3B 39 00 02 */	addi r25, r25, 2
/* 803430E0 00340040  98 6C 00 01 */	stb r3, 1(r12)
/* 803430E4 00340044  39 8C 00 02 */	addi r12, r12, 2
/* 803430E8 00340048  48 00 00 38 */	b lbl_80343120
lbl_803430EC:
/* 803430EC 0034004C  7F 1A 18 50 */	subf r24, r26, r3
/* 803430F0 00340050  80 67 00 2C */	lwz r3, 0x2c(r7)
/* 803430F4 00340054  7C 1D C0 40 */	cmplw r29, r24
/* 803430F8 00340058  7F 38 18 50 */	subf r25, r24, r3
/* 803430FC 0034005C  40 81 00 24 */	ble lbl_80343120
/* 80343100 00340060  7F B8 E8 50 */	subf r29, r24, r29
lbl_80343104:
/* 80343104 00340064  88 79 00 00 */	lbz r3, 0(r25)
/* 80343108 00340068  37 18 FF FF */	addic. r24, r24, -1
/* 8034310C 0034006C  3B 39 00 01 */	addi r25, r25, 1
/* 80343110 00340070  98 6C 00 00 */	stb r3, 0(r12)
/* 80343114 00340074  39 8C 00 01 */	addi r12, r12, 1
/* 80343118 00340078  40 82 FF EC */	bne lbl_80343104
/* 8034311C 0034007C  83 27 00 28 */	lwz r25, 0x28(r7)
lbl_80343120:
/* 80343120 00340080  88 79 00 00 */	lbz r3, 0(r25)
/* 80343124 00340084  37 BD FF FF */	addic. r29, r29, -1
/* 80343128 00340088  3B 39 00 01 */	addi r25, r25, 1
/* 8034312C 0034008C  98 6C 00 00 */	stb r3, 0(r12)
/* 80343130 00340090  39 8C 00 01 */	addi r12, r12, 1
/* 80343134 00340094  40 82 FF EC */	bne lbl_80343120
/* 80343138 00340098  48 00 01 B4 */	b lbl_803432EC
lbl_8034313C:
/* 8034313C 0034009C  57 1A 06 73 */	rlwinm. r26, r24, 0, 0x19, 0x19
/* 80343140 003400A0  40 82 00 2C */	bne lbl_8034316C
/* 80343144 003400A4  57 1B 10 3A */	slwi r27, r24, 2
/* 80343148 003400A8  83 43 00 04 */	lwz r26, 4(r3)
/* 8034314C 003400AC  7F 7C D8 2E */	lwzx r27, r28, r27
/* 80343150 003400B0  57 5A 18 38 */	slwi r26, r26, 3
/* 80343154 003400B4  7C 1B D8 38 */	and r27, r0, r27
/* 80343158 003400B8  7C 63 D2 14 */	add r3, r3, r26
/* 8034315C 003400BC  57 7B 18 38 */	slwi r27, r27, 3
/* 80343160 003400C0  7C 63 DA 14 */	add r3, r3, r27
/* 80343164 003400C4  8B 03 00 00 */	lbz r24, 0(r3)
/* 80343168 003400C8  4B FF FE 3C */	b lbl_80342FA4
lbl_8034316C:
/* 8034316C 003400CC  3C 60 80 3D */	lis r3, lbl_803D7BA0@ha
/* 80343170 003400D0  55 24 E8 FE */	srwi r4, r9, 3
/* 80343174 003400D4  38 63 7B A0 */	addi r3, r3, lbl_803D7BA0@l
/* 80343178 003400D8  90 68 00 18 */	stw r3, 0x18(r8)
/* 8034317C 003400DC  80 68 00 04 */	lwz r3, 4(r8)
/* 80343180 003400E0  7C AB 18 50 */	subf r5, r11, r3
/* 80343184 003400E4  7C 04 28 40 */	cmplw r4, r5
/* 80343188 003400E8  40 80 00 08 */	bge lbl_80343190
/* 8034318C 003400EC  7C 85 23 78 */	mr r5, r4
lbl_80343190:
/* 80343190 003400F0  54 A3 18 38 */	slwi r3, r5, 3
/* 80343194 003400F4  90 07 00 20 */	stw r0, 0x20(r7)
/* 80343198 003400F8  7D 23 48 50 */	subf r9, r3, r9
/* 8034319C 003400FC  7D 6B 2A 14 */	add r11, r11, r5
/* 803431A0 00340100  91 27 00 1C */	stw r9, 0x1c(r7)
/* 803431A4 00340104  7D 45 50 50 */	subf r10, r5, r10
/* 803431A8 00340108  38 60 FF FD */	li r3, -3
/* 803431AC 0034010C  91 68 00 04 */	stw r11, 4(r8)
/* 803431B0 00340110  80 08 00 00 */	lwz r0, 0(r8)
/* 803431B4 00340114  80 88 00 08 */	lwz r4, 8(r8)
/* 803431B8 00340118  7C 00 50 50 */	subf r0, r0, r10
/* 803431BC 0034011C  7C 04 02 14 */	add r0, r4, r0
/* 803431C0 00340120  90 08 00 08 */	stw r0, 8(r8)
/* 803431C4 00340124  91 48 00 00 */	stw r10, 0(r8)
/* 803431C8 00340128  91 87 00 34 */	stw r12, 0x34(r7)
/* 803431CC 0034012C  48 00 01 84 */	b lbl_80343350
lbl_803431D0:
/* 803431D0 00340130  57 1B 06 73 */	rlwinm. r27, r24, 0, 0x19, 0x19
/* 803431D4 00340134  40 82 00 50 */	bne lbl_80343224
/* 803431D8 00340138  57 1B 10 3A */	slwi r27, r24, 2
/* 803431DC 0034013C  83 A3 00 04 */	lwz r29, 4(r3)
/* 803431E0 00340140  7F 7C D8 2E */	lwzx r27, r28, r27
/* 803431E4 00340144  57 BD 18 38 */	slwi r29, r29, 3
/* 803431E8 00340148  7C 1B D8 38 */	and r27, r0, r27
/* 803431EC 0034014C  7C 63 EA 14 */	add r3, r3, r29
/* 803431F0 00340150  57 7B 18 38 */	slwi r27, r27, 3
/* 803431F4 00340154  7C 63 DA 14 */	add r3, r3, r27
/* 803431F8 00340158  8B 03 00 00 */	lbz r24, 0(r3)
/* 803431FC 0034015C  28 18 00 00 */	cmplwi r24, 0
/* 80343200 00340160  40 82 FC 80 */	bne lbl_80342E80
/* 80343204 00340164  8B 03 00 01 */	lbz r24, 1(r3)
/* 80343208 00340168  38 84 FF FF */	addi r4, r4, -1
/* 8034320C 0034016C  80 63 00 04 */	lwz r3, 4(r3)
/* 80343210 00340170  7C 00 C4 30 */	srw r0, r0, r24
/* 80343214 00340174  7D 38 48 50 */	subf r9, r24, r9
/* 80343218 00340178  98 6C 00 00 */	stb r3, 0(r12)
/* 8034321C 0034017C  39 8C 00 01 */	addi r12, r12, 1
/* 80343220 00340180  48 00 00 CC */	b lbl_803432EC
lbl_80343224:
/* 80343224 00340184  57 03 06 B5 */	rlwinm. r3, r24, 0, 0x1a, 0x1a
/* 80343228 00340188  41 82 00 5C */	beq lbl_80343284
/* 8034322C 0034018C  80 68 00 04 */	lwz r3, 4(r8)
/* 80343230 00340190  55 24 E8 FE */	srwi r4, r9, 3
/* 80343234 00340194  7C AB 18 50 */	subf r5, r11, r3
/* 80343238 00340198  7C 04 28 40 */	cmplw r4, r5
/* 8034323C 0034019C  40 80 00 08 */	bge lbl_80343244
/* 80343240 003401A0  7C 85 23 78 */	mr r5, r4
lbl_80343244:
/* 80343244 003401A4  54 A3 18 38 */	slwi r3, r5, 3
/* 80343248 003401A8  90 07 00 20 */	stw r0, 0x20(r7)
/* 8034324C 003401AC  7D 23 48 50 */	subf r9, r3, r9
/* 80343250 003401B0  7D 6B 2A 14 */	add r11, r11, r5
/* 80343254 003401B4  91 27 00 1C */	stw r9, 0x1c(r7)
/* 80343258 003401B8  7D 45 50 50 */	subf r10, r5, r10
/* 8034325C 003401BC  38 60 00 01 */	li r3, 1
/* 80343260 003401C0  91 68 00 04 */	stw r11, 4(r8)
/* 80343264 003401C4  80 08 00 00 */	lwz r0, 0(r8)
/* 80343268 003401C8  80 88 00 08 */	lwz r4, 8(r8)
/* 8034326C 003401CC  7C 00 50 50 */	subf r0, r0, r10
/* 80343270 003401D0  7C 04 02 14 */	add r0, r4, r0
/* 80343274 003401D4  90 08 00 08 */	stw r0, 8(r8)
/* 80343278 003401D8  91 48 00 00 */	stw r10, 0(r8)
/* 8034327C 003401DC  91 87 00 34 */	stw r12, 0x34(r7)
/* 80343280 003401E0  48 00 00 D0 */	b lbl_80343350
lbl_80343284:
/* 80343284 003401E4  3C 60 80 3D */	lis r3, lbl_803D7BA0@ha
/* 80343288 003401E8  55 24 E8 FE */	srwi r4, r9, 3
/* 8034328C 003401EC  38 63 7B A0 */	addi r3, r3, lbl_803D7BA0@l
/* 80343290 003401F0  38 63 00 16 */	addi r3, r3, 0x16
/* 80343294 003401F4  90 68 00 18 */	stw r3, 0x18(r8)
/* 80343298 003401F8  80 68 00 04 */	lwz r3, 4(r8)
/* 8034329C 003401FC  7C AB 18 50 */	subf r5, r11, r3
/* 803432A0 00340200  7C 04 28 40 */	cmplw r4, r5
/* 803432A4 00340204  40 80 00 08 */	bge lbl_803432AC
/* 803432A8 00340208  7C 85 23 78 */	mr r5, r4
lbl_803432AC:
/* 803432AC 0034020C  54 A3 18 38 */	slwi r3, r5, 3
/* 803432B0 00340210  90 07 00 20 */	stw r0, 0x20(r7)
/* 803432B4 00340214  7D 23 48 50 */	subf r9, r3, r9
/* 803432B8 00340218  7D 6B 2A 14 */	add r11, r11, r5
/* 803432BC 0034021C  91 27 00 1C */	stw r9, 0x1c(r7)
/* 803432C0 00340220  7D 45 50 50 */	subf r10, r5, r10
/* 803432C4 00340224  38 60 FF FD */	li r3, -3
/* 803432C8 00340228  91 68 00 04 */	stw r11, 4(r8)
/* 803432CC 0034022C  80 08 00 00 */	lwz r0, 0(r8)
/* 803432D0 00340230  80 88 00 08 */	lwz r4, 8(r8)
/* 803432D4 00340234  7C 00 50 50 */	subf r0, r0, r10
/* 803432D8 00340238  7C 04 02 14 */	add r0, r4, r0
/* 803432DC 0034023C  90 08 00 08 */	stw r0, 8(r8)
/* 803432E0 00340240  91 48 00 00 */	stw r10, 0(r8)
/* 803432E4 00340244  91 87 00 34 */	stw r12, 0x34(r7)
/* 803432E8 00340248  48 00 00 68 */	b lbl_80343350
lbl_803432EC:
/* 803432EC 0034024C  28 04 01 02 */	cmplwi r4, 0x102
/* 803432F0 00340250  41 80 00 0C */	blt lbl_803432FC
/* 803432F4 00340254  28 0B 00 0A */	cmplwi r11, 0xa
/* 803432F8 00340258  40 80 FB 40 */	bge lbl_80342E38
lbl_803432FC:
/* 803432FC 0034025C  80 68 00 04 */	lwz r3, 4(r8)
/* 80343300 00340260  55 24 E8 FE */	srwi r4, r9, 3
/* 80343304 00340264  7C AB 18 50 */	subf r5, r11, r3
/* 80343308 00340268  7C 04 28 40 */	cmplw r4, r5
/* 8034330C 0034026C  40 80 00 08 */	bge lbl_80343314
/* 80343310 00340270  7C 85 23 78 */	mr r5, r4
lbl_80343314:
/* 80343314 00340274  54 A3 18 38 */	slwi r3, r5, 3
/* 80343318 00340278  90 07 00 20 */	stw r0, 0x20(r7)
/* 8034331C 0034027C  7D 23 48 50 */	subf r9, r3, r9
/* 80343320 00340280  7D 6B 2A 14 */	add r11, r11, r5
/* 80343324 00340284  91 27 00 1C */	stw r9, 0x1c(r7)
/* 80343328 00340288  7D 45 50 50 */	subf r10, r5, r10
/* 8034332C 0034028C  38 60 00 00 */	li r3, 0
/* 80343330 00340290  91 68 00 04 */	stw r11, 4(r8)
/* 80343334 00340294  80 08 00 00 */	lwz r0, 0(r8)
/* 80343338 00340298  80 88 00 08 */	lwz r4, 8(r8)
/* 8034333C 0034029C  7C 00 50 50 */	subf r0, r0, r10
/* 80343340 003402A0  7C 04 02 14 */	add r0, r4, r0
/* 80343344 003402A4  90 08 00 08 */	stw r0, 8(r8)
/* 80343348 003402A8  91 48 00 00 */	stw r10, 0(r8)
/* 8034334C 003402AC  91 87 00 34 */	stw r12, 0x34(r7)
lbl_80343350:
/* 80343350 003402B0  BB 01 00 10 */	lmw r24, 0x10(r1)
/* 80343354 003402B4  38 21 00 30 */	addi r1, r1, 0x30
/* 80343358 003402B8  4E 80 00 20 */	blr

.section .rodata
.balign 8
.global lbl_803D7BA0
lbl_803D7BA0:
	# ROM: 0x3D4BA0
	.asciz "invalid distance code"
	.byte 0x69, 0x6E
	.asciz "valid literal/length code"
	.balign 4
	.4byte 0