64 (34) 02ac 684
	0b 00 ff ff 55 40 00 20 00 00 79 1c 00 11 00 00
96 (95) 020c 524
	fc 00 20 13 7e 00 65 a5 0c 05 36 7c 02 11 00 00
96 (92) 02cc 716
	cc 42 00 dd dd 73 55 ff ff 00 35 00 00 11 00 00
96 (90) 008c 140
	ed ed 4e 00 ec f9 20 0e 01 00 00 c0 00 11 00 00
13760   554c 21836
	1d 3f 44 3d 43 45 19 0c 22 16 22 0c 0c 11 00 00



- zlib -

64 (34) 2c78 11384
64 (43) 8c78 35960
64 (44) 080c 2060


cnt = 5; back = 48 + 5 + 1 = 54
copy_backptr(c, 54, 7)

79 1c

cnt = 3; back = 224 

0f24 

p1

803db7af4 start of zlib text
inflate() 8034335c - 8034395c  0x600
    text in .data4 which starts at 803cb3a0
 803d7bd8 00 "unknown compression method" 	80343448
 803d7bf3 1b "invalid window size"		80343488
 803d7c07 2f "incorrect header check"		8034352c
 803d7c1e 46 "need dictionary"			803436e4
 803d7c2e 56 "incorrect data check"		8034390c	:)))))))

???() 80343960 - 80343b3c 0x1dc
 803d7c43 6b "1.1.3"				80343984

guess for new "inflate()" 8034_370c

(comes in as 0 or a difference)
r4 -> r31 
r3 = file struct or something, offset 0x18 is the file itself

entry
803394a8:       94 21 ff 90     stwu    r1,-112(r1)
803394ac:       7c 08 02 a6     mflr    r0
803394b0:       90 01 00 74     stw     r0,116(r1)
803394b4:       be c1 00 48     stmw    r22,72(r1)
803394b8:       7c 7e 1b 78     mr      r30,r3
803394bc:       7c 9f 23 78     mr      r31,r4
803394c0:       48 04 be e9     bl      0x803853a8
803394c4:       82 fe 00 28     lwz     r23,40(r30)
803394c8:       7c 9b 23 78     mr      r27,r4
803394cc:       83 1e 00 18     lwz     r24,24(r30)
803394d0:       7c 7c 1b 78     mr      r28,r3
803394d4:       28 17 00 00     cmplwi  r23,0
803394d8:       83 58 00 00     lwz     r26,0(r24)	filesize from file
803394dc:       40 82 01 68     bne-    0x80339644
803394e0:       3c 80 80 3d     lis     r4,-32707
803394e4:       38 60 00 38     li      r3,56		sizeof(z_stream)
803394e8:       38 84 7a 28     addi    r4,r4,31272
803394ec:       38 a0 00 00     li      r5,0
803394f0:       4b fd c3 7d     bl      0x8031586c	"malloc"(56,"??stng",0)
803394f4:       3c 80 80 34     lis     r4,-32716
803394f8:       3c a0 80 34     lis     r5,-32716
803394fc:       38 04 fa 18     addi    r0,r4,-151
80339500:       7c 77 1b 78     mr      r23,r3
80339504:       90 03 00 20     stw     r0,32(r3)	zalloc = 8033fa18
80339508:       38 a5 f9 ec     addi    r5,r5,-1556
8033950c:       3c 80 80 3d     lis     r4,-32707
80339510:       38 00 00 00     li      r0,0
80339514:       90 a3 00 24     stw     r5,36(r3)	zfree = 8033f9ec
80339518:       38 84 7a 28     addi    r4,r4,31272
8033951c:       38 84 00 07     addi    r4,r4,7
80339520:       38 a0 00 38     li      r5,56
80339524:       90 03 00 28     stw     r0,40(r3)	opaque = NULL
80339528:       48 00 a4 39     bl      0x80343960	(inflateInit?)
8033952c:       38 a0 00 00     li      r5,0
80339530:       7c 17 00 d0     neg     r0,r23
80339534:       90 b7 00 08     stw     r5,8(r23)	total_in = 0
80339538:       7c 04 bb 78     or      r4,r0,r23
8033953c:       38 61 00 34     addi    r3,r1,52
80339540:       38 1e 00 24     addi    r0,r30,36
80339544:       90 b7 00 14     stw     r5,20(r23)	total_out = 0
80339548:       7c 03 00 40     cmplw   r3,r0
8033954c:       54 80 0f fe     rlwinm  r0,r4,1,31,31
80339550:       90 b7 00 04     stw     r5,4(r23)	avail_in = 0
80339554:       90 b7 00 10     stw     r5,16(r23)	avail_out = 0
80339558:       90 b7 00 00     stw     r5,0(r23)	*next_in = NULL
8033955c:       90 b7 00 0c     stw     r5,12(r23)	*next_out = NULL
80339560:       98 01 00 34     stb     r0,52(r1)
80339564:       92 e1 00 38     stw     r23,56(r1)	store z_stream
80339568:       41 82 00 30     beq-    0x80339598
8033956c:       88 1e 00 24     lbz     r0,36(r30)
80339570:       28 00 00 00     cmplwi  r0,0
80339574:       41 82 00 0c     beq-    0x80339580	goto fwdC
80339578:       80 7e 00 28     lwz     r3,40(r30)
8033957c:       4b fd c3 b5     bl      0x80315930	(common func)
fwdC
80339580:       88 61 00 34     lbz     r3,52(r1)
80339584:       38 00 00 00     li      r0,0
80339588:       98 7e 00 24     stb     r3,36(r30)
8033958c:       80 61 00 38     lwz     r3,56(r1)	retr z_stream
80339590:       90 7e 00 28     stw     r3,40(r30)	store z_stream
80339594:       98 01 00 34     stb     r0,52(r1)
80339598:       88 01 00 34     lbz     r0,52(r1)
8033959c:       28 00 00 00     cmplwi  r0,0
803395a0:       41 82 00 0c     beq-    0x803395ac	goto fwdD
803395a4:       80 61 00 38     lwz     r3,56(r1)	retr z_stream
803395a8:       4b fd c3 89     bl      0x80315930	(common func)
fwdD
803395ac:       3c 60 80 3d     lis     r3,-32707
803395b0:       3c 80 80 3d     lis     r4,-32707
803395b4:       38 a3 7a 28     addi    r5,r3,31272
803395b8:       38 c4 6a a8     addi    r6,r4,27304
803395bc:       38 61 00 2c     addi    r3,r1,44
803395c0:       38 80 ff ff     li      r4,-1
803395c4:       4b f9 ce 11     bl      0x802d63d4	somefunc("Unknown type")
803395c8:       7c 67 1b 78     mr      r7,r3
803395cc:       7f 43 d3 78     mr      r3,r26
803395d0:       38 80 00 02     li      r4,2
803395d4:       38 a0 00 01     li      r5,1
803395d8:       38 c0 00 00     li      r6,0
803395dc:       4b fd c3 b9     bl      0x80315994	somefunc2(fszie,2,1,0,?)
803395e0:       7c 03 00 d0     neg     r0,r3
803395e4:       38 81 00 24     addi    r4,r1,36
803395e8:       7c 05 1b 78     or      r5,r0,r3
803395ec:       38 1e 00 1c     addi    r0,r30,28
803395f0:       54 a5 0f fe     rlwinm  r5,r5,1,31,31
803395f4:       90 61 00 28     stw     r3,40(r1)
803395f8:       7c 04 00 40     cmplw   r4,r0
803395fc:       98 a1 00 24     stb     r5,36(r1)
80339600:       41 82 00 30     beq-    0x80339630	goto fwdE
80339604:       88 1e 00 1c     lbz     r0,28(r30)
80339608:       28 00 00 00     cmplwi  r0,0
8033960c:       41 82 00 0c     beq-    0x80339618	goto fwd0
80339610:       80 7e 00 20     lwz     r3,32(r30)
80339614:       4b fd c3 1d     bl      0x80315930	(common func)
fwd0
80339618:       88 61 00 24     lbz     r3,36(r1)
8033961c:       38 00 00 00     li      r0,0
80339620:       98 7e 00 1c     stb     r3,28(r30)
80339624:       80 61 00 28     lwz     r3,40(r1)
80339628:       90 7e 00 20     stw     r3,32(r30)
8033962c:       98 01 00 24     stb     r0,36(r1)
fwdE
80339630:       88 01 00 24     lbz     r0,36(r1)
80339634:       28 00 00 00     cmplwi  r0,0
80339638:       41 82 00 0c     beq-    0x80339644	goto fwd1
8033963c:       80 61 00 28     lwz     r3,40(r1)
80339640:       4b fd c2 f1     bl      0x80315930	(common func)
fwd1
80339644:       80 9e 00 2c     lwz     r4,44(r30)
80339648:       3c 60 80 5a     lis     r3,-32678
8033964c:       3a d8 00 04     addi    r22,r24,4	fptr+4
80339650:       3b 00 00 00     li      r24,0
80339654:       3b 24 ff fc     addi    r25,r4,-4
80339658:       3b a3 fd 30     addi    r29,r3,-720	(r29 = mem ptr)
8033965c:       48 00 00 74     b       0x803396d0	goto mid_loop

inflate_loop:
80339660:       80 17 00 04     lwz     r0,4(r23)	avail_in
80339664:       28 00 00 00     cmplwi  r0,0		if avail_in
80339668:       40 82 00 5c     bne-    0x803396c4	goto fwd2
8033966c:       80 97 00 08     lwz     r4,8(r23)	total_in
80339670:       38 62 cb a0     addi    r3,r2,-13408
80339674:       80 02 cb a0     lwz     r0,-13408(r2)
80339678:       7c 84 c8 50     subf    r4,r4,r25
8033967c:       7c 04 00 00     cmpw    r4,r0
80339680:       90 81 00 08     stw     r4,8(r1)
80339684:       40 80 00 08     bge-    0x8033968c	goto fwd3
80339688:       38 61 00 08     addi    r3,r1,8
fwd3
8033968c:       80 63 00 00     lwz     r3,0(r3)
80339690:       2c 03 00 00     cmpwi   r3,0
80339694:       41 82 00 84     beq-    0x80339718	goto out_of_loop
80339698:       80 17 00 08     lwz     r0,8(r23)	total_in
8033969c:       7c 16 02 14     add     r0,r22,r0	fptr+4 + total_in = *n_i
803396a0:       90 17 00 00     stw     r0,0(r23)	*next_in
803396a4:       90 77 00 04     stw     r3,4(r23)	avail_in
803396a8:       80 7e 00 20     lwz     r3,32(r30)
803396ac:       80 17 00 14     lwz     r0,20(r23)	total_out
803396b0:       7c 03 02 14     add     r0,r3,r0
803396b4:       90 17 00 0c     stw     r0,12(r23)	*next_out
803396b8:       80 17 00 14     lwz     r0,20(r23)	total_out
803396bc:       7c 00 d0 50     subf    r0,r0,r26	fsize-total_out = a_out
803396c0:       90 17 00 10     stw     r0,16(r23)	avail_out
fwd2
803396c4:       7e e3 bb 78     mr      r3,r23		z_stream*
803396c8:       38 80 00 00     li      r4,0		Z_NO_FLUSH
803396cc:       48 00 9c 91     bl      0x8034335c	inflate()

mid_loop:
803396d0:       28 1f 00 00     cmplwi  r31,0
803396d4:       41 82 00 38     beq-    0x8033970c	goto fwd4
803396d8:       48 04 bc d1     bl      0x803853a8	(func 1)
803396dc:       7c 9b 20 10     subfc   r4,r27,r4
803396e0:       80 bd 00 08     lwz     r5,8(r29)
803396e4:       80 dd 00 0c     lwz     r6,12(r29)
803396e8:       7c 7c 19 10     subfe   r3,r28,r3
803396ec:       48 05 04 e1     bl      0x80389bcc	(func 2)
803396f0:       6c 65 80 00     xoris   r5,r3,32768
803396f4:       6f 03 80 00     xoris   r3,r24,32768
803396f8:       7c 1f 20 10     subfc   r0,r31,r4
803396fc:       7c 63 29 10     subfe   r3,r3,r5
80339700:       7c 65 29 10     subfe   r3,r5,r5
80339704:       7c 63 00 d1     neg.    r3,r3
80339708:       41 82 00 10     beq-    0x80339718	out_of_loop
fwd4
8033970c:       80 17 00 14     lwz     r0,20(r23)	total_out
80339710:       7c 1a 00 40     cmplw   r26,r0		fsize != t_out ?
80339714:       40 82 ff 4c     bne+    0x80339660	goto inflate_loop

out_of_loop
80339718:       80 17 00 14     lwz     r0,20(r23)	total_out
8033971c:       7c 1a 00 40     cmplw   r26,r0		t_out != fsize ?
80339720:       40 82 01 48     bne-    0x80339868	goto near_end
80339724:       7e e3 bb 78     mr      r3,r23
80339728:       48 00 a4 19     bl      0x80343b40	inflateEnd?
8033972c:       38 61 00 1c     addi    r3,r1,28
80339730:       38 1e 00 24     addi    r0,r30,36
80339734:       38 80 00 00     li      r4,0
80339738:       7c 03 00 40     cmplw   r3,r0
8033973c:       98 81 00 1c     stb     r4,28(r1)
80339740:       90 81 00 20     stw     r4,32(r1)
80339744:       41 82 00 30     beq-    0x80339774
80339748:       88 1e 00 24     lbz     r0,36(r30)
8033974c:       28 00 00 00     cmplwi  r0,0
80339750:       41 82 00 0c     beq-    0x8033975c	goto fwdF
80339754:       80 7e 00 28     lwz     r3,40(r30)	load z_stream?
80339758:       4b fd c1 d9     bl      0x80315930	(common func)
fwdF
8033975c:       88 61 00 1c     lbz     r3,28(r1)
80339760:       38 00 00 00     li      r0,0
80339764:       98 7e 00 24     stb     r3,36(r30)
80339768:       80 61 00 20     lwz     r3,32(r1)
8033976c:       90 7e 00 28     stw     r3,40(r30)
80339770:       98 01 00 1c     stb     r0,28(r1)
80339774:       88 01 00 1c     lbz     r0,28(r1)
80339778:       28 00 00 00     cmplwi  r0,0
8033977c:       41 82 00 0c     beq-    0x80339788
80339780:       80 61 00 20     lwz     r3,32(r1)


near_end
80339868:       38 60 00 00     li      r3,0
8033986c:       ba c1 00 48     lmw     r22,72(r1)
80339870:       80 01 00 74     lwz     r0,116(r1)
80339874:       7c 08 03 a6     mtlr    r0
80339878:       38 21 00 70     addi    r1,r1,112
8033987c:       4e 80 00 20     blr


(r3)[0x18] = fileptr
(r3)[0x28] = decomp_out (total_out)

Eentry
802f9e08:       94 21 ff b0     stwu    r1,-80(r1)
802f9e0c:       7c 08 02 a6     mflr    r0
802f9e10:       90 01 00 54     stw     r0,84(r1)
802f9e14:       be e1 00 2c     stmw    r23,44(r1)
802f9e18:       7c 77 1b 78     mr      r23,r3
802f9e1c:       7c 98 23 78     mr      r24,r4
802f9e20:       48 07 c3 29     bl      0x80376148
802f9e24:       80 17 00 24     lwz     r0,36(r23)	*output
802f9e28:       7c 9d 23 78     mr      r29,r4
802f9e2c:       83 57 00 18     lwz     r26,24(r23)	fptr
802f9e30:       7c 7e 1b 78     mr      r30,r3
802f9e34:       28 00 00 00     cmplwi  r0,0		output != NULL
802f9e38:       83 9a 00 00     lwz     r28,0(r26)	filesize from file
802f9e3c:       40 82 00 9c     bne-    0x802f9ed8	goto fwdE
802f9e40:       3c 60 80 3b     lis     r3,-32709
802f9e44:       3c 80 80 3b     lis     r4,-32709
802f9e48:       38 a3 fa 98     addi    r5,r3,-1384
802f9e4c:       38 c4 ea b8     addi    r6,r4,-5448
802f9e50:       38 61 00 1c     addi    r3,r1,28
802f9e54:       38 80 ff ff     li      r4,-1
802f9e58:       4b f9 21 91     bl      0x8028bfe8	somefunc("Unknown type")
802f9e5c:       7c 67 1b 78     mr      r7,r3
802f9e60:       7f 83 e3 78     mr      r3,r28
802f9e64:       38 80 00 02     li      r4,2
802f9e68:       38 a0 00 01     li      r5,1
802f9e6c:       38 c0 00 00     li      r6,0
802f9e70:       4b fd 45 7d     bl      0x802ce3ec	somefunc2(fsize,2,1,0,?)
802f9e74:       7c 03 00 d0     neg     r0,r3
802f9e78:       38 81 00 14     addi    r4,r1,20
802f9e7c:       7c 05 1b 78     or      r5,r0,r3
802f9e80:       38 17 00 20     addi    r0,r23,32
802f9e84:       54 a5 0f fe     rlwinm  r5,r5,1,31,31
802f9e88:       90 61 00 18     stw     r3,24(r1)
802f9e8c:       7c 04 00 40     cmplw   r4,r0
802f9e90:       98 a1 00 14     stb     r5,20(r1)
802f9e94:       41 82 00 30     beq-    0x802f9ec4
802f9e98:       88 17 00 20     lbz     r0,32(r23)
802f9e9c:       28 00 00 00     cmplwi  r0,0
802f9ea0:       41 82 00 0c     beq-    0x802f9eac	goto fwdD
802f9ea4:       80 77 00 24     lwz     r3,36(r23)	*output
802f9ea8:       4b fd 44 e1     bl      0x802ce388	(common func)
fwdD
802f9eac:       88 61 00 14     lbz     r3,20(r1)
802f9eb0:       38 00 00 00     li      r0,0
802f9eb4:       98 77 00 20     stb     r3,32(r23)
802f9eb8:       80 61 00 18     lwz     r3,24(r1)
802f9ebc:       90 77 00 24     stw     r3,36(r23)
802f9ec0:       98 01 00 14     stb     r0,20(r1)
802f9ec4:       88 01 00 14     lbz     r0,20(r1)
802f9ec8:       28 00 00 00     cmplwi  r0,0
802f9ecc:       41 82 00 0c     beq-    0x802f9ed8	goto fwdE
802f9ed0:       80 61 00 18     lwz     r3,24(r1)
802f9ed4:       4b fd 44 b5     bl      0x802ce388	(common func)
fwdE
802f9ed8:       3c 60 80 41     lis     r3,-32703
802f9edc:       3b 3a 00 04     addi    r25,r26,4	fptr+4
802f9ee0:       3b e3 10 50     addi    r31,r3,4176	(mem ptr)
802f9ee4:       3b 40 00 00     li      r26,0
802f9ee8:       48 00 00 70     b       0x802f9f58	goto mid_loop

decomp_loop
802f9eec:       80 77 00 1c     lwz     r3,28(r23)	curr_index
802f9ef0:       38 c1 00 08     addi    r6,r1,8		stack, [0] = a_out
802f9ef4:       7f 79 1a 2e     lhzx    r27,r25,r3	read next seg size
802f9ef8:       38 03 00 02     addi    r0,r3,2
802f9efc:       90 17 00 1c     stw     r0,28(r23)	curr_index
802f9f00:       7f 64 db 78     mr      r4,r27
802f9f04:       80 17 00 28     lwz     r0,40(r23)	total_out
802f9f08:       7c 00 e0 50     subf    r0,r0,r28	fsize-total_out =
802f9f0c:       90 01 00 08     stw     r0,8(r1)	avail_out
802f9f10:       80 77 00 1c     lwz     r3,28(r23)	curr_index
802f9f14:       80 b7 00 24     lwz     r5,36(r23)	*output
802f9f18:       80 17 00 28     lwz     r0,40(r23)	total_out
802f9f1c:       7c 79 1a 14     add     r3,r25,r3
802f9f20:       7c a5 02 14     add     r5,r5,r0
802f9f24:       48 04 97 e9     bl      0x8034370c	(A)(segptr,segsz,optr,&a
802f9f28:       80 77 00 24     lwz     r3,36(r23)	*output
802f9f2c:       80 17 00 28     lwz     r0,40(r23)	total_out
802f9f30:       80 81 00 08     lwz     r4,8(r1)	avail_out
802f9f34:       7c 63 02 14     add     r3,r3,r0	
802f9f38:       48 07 4f d5     bl      0x8036ef0c	(B)(out+t_out,avail_out)
802f9f3c:       80 17 00 1c     lwz     r0,28(r23)	curr_index
802f9f40:       7c 00 da 14     add     r0,r0,r27	idx + seg size =
802f9f44:       90 17 00 1c     stw     r0,28(r23)	curr_index
802f9f48:       80 77 00 28     lwz     r3,40(r23)	total_out
802f9f4c:       80 01 00 08     lwz     r0,8(r1)	avail_out
802f9f50:       7c 03 02 14     add     r0,r3,r0	tot+avail =
802f9f54:       90 17 00 28     stw     r0,40(r23)	total_out

mid_loop
802f9f58:       28 18 00 00     cmplwi  r24,0		comes from r4 on fnentry
802f9f5c:       41 82 00 38     beq-    0x802f9f94	goto fwd3
802f9f60:       48 07 c1 e9     bl      0x80376148	(func 1)
802f9f64:       7c 9d 20 10     subfc   r4,r29,r4
802f9f68:       80 bf 00 08     lwz     r5,8(r31)	off mem ptr
802f9f6c:       80 df 00 0c     lwz     r6,12(r31)	off mem ptr
802f9f70:       7c 7e 19 10     subfe   r3,r30,r3
802f9f74:       48 04 b7 a9     bl      0x8034571c	(func 2)
802f9f78:       6c 65 80 00     xoris   r5,r3,32768
802f9f7c:       6f 43 80 00     xoris   r3,r26,32768
802f9f80:       7c 18 20 10     subfc   r0,r24,r4
802f9f84:       7c 63 29 10     subfe   r3,r3,r5
802f9f88:       7c 65 29 10     subfe   r3,r5,r5
802f9f8c:       7c 63 00 d1     neg.    r3,r3
802f9f90:       41 82 00 10     beq-    0x802f9fa0	goto out_of_loop
fwd3
802f9f94:       80 17 00 28     lwz     r0,40(r23)	total_out
802f9f98:       7c 1c 00 40     cmplw   r28,r0		d_size != t_out ?
802f9f9c:       40 82 ff 50     bne+    0x802f9eec	goto decomp_loop

out_of_loop
802f9fa0:       80 17 00 28     lwz     r0,40(r23)	total_out
802f9fa4:       7c 1c 00 40     cmplw   r28,r0		full_size != t_out ?
802f9fa8:       40 82 00 b0     bne-    0x802fa058	goto near_end
802f9fac:       38 77 00 20     addi    r3,r23,32
802f9fb0:       38 17 00 14     addi    r0,r23,20
802f9fb4:       7c 03 00 40     cmplw   r3,r0
802f9fb8:       41 82 00 30     beq-    0x802f9fe8
802f9fbc:       88 17 00 14     lbz     r0,20(r23)
802f9fc0:       28 00 00 00     cmplwi  r0,0
802f9fc4:       41 82 00 0c     beq-    0x802f9fd0
802f9fc8:       80 77 00 18     lwz     r3,24(r23)
802f9fcc:       4b fd 43 bd     bl      0x802ce388
802f9fd0:       88 77 00 20     lbz     r3,32(r23)
802f9fd4:       38 00 00 00     li      r0,0
802f9fd8:       98 77 00 14     stb     r3,20(r23)
802f9fdc:       80 77 00 24     lwz     r3,36(r23)
802f9fe0:       90 77 00 18     stw     r3,24(r23)



802fa030:       88 01 00 0c     lbz     r0,12(r1)
802fa034:       28 00 00 00     cmplwi  r0,0
802fa038:       41 82 00 0c     beq-    0x802fa044
802fa03c:       80 61 00 10     lwz     r3,16(r1)
802fa040:       4b fd 43 49     bl      0x802ce388
802fa044:       38 00 00 00     li      r0,0
802fa048:       38 60 00 01     li      r3,1
802fa04c:       90 17 00 30     stw     r0,48(r23)
802fa050:       93 97 00 2c     stw     r28,44(r23)
802fa054:       48 00 00 08     b       0x802fa05c
near_end
802fa058:       38 60 00 00     li      r3,0
802fa05c:       ba e1 00 2c     lmw     r23,44(r1)
802fa060:       80 01 00 54     lwz     r0,84(r1)
802fa064:       7c 08 03 a6     mtlr    r0
802fa068:       38 21 00 50     addi    r1,r1,80


	cache sillyness.  Can ignore!
(func B)(r3 = out+t_out, r4 = avail_out)
8036ef0c:       28 04 00 00     cmplwi  r4,0
8036ef10:       4c 81 00 20     blelr   		ret if a_out <= 0
8036ef14:       54 65 06 fe     clrlwi  r5,r3,27	(4 if <, 2 if >, 1 if =)
8036ef18:       7c 84 2a 14     add     r4,r4,r5
8036ef1c:       38 84 00 1f     addi    r4,r4,31
8036ef20:       54 84 d9 7e     rlwinm  r4,r4,27,5,31	r4 = r4 >> 5;   really!
8036ef24:       7c 89 03 a6     mtctr   r4		ctr, mv to count reg
back1
8036ef28:       7c 00 18 6c     dcbst   r0,r3		store in data cache
8036ef2c:       38 63 00 20     addi    r3,r3,32
8036ef30:       42 00 ff f8     bdnz+   0x8036ef28	goto back1
8036ef34:       44 00 00 02     sc			system call
8036ef38:       4e 80 00 20     blr


(func A)(r3 = segptr, r4 = segsz, r5 = *output, r6 = &avail_out)
8034370c:       94 21 ff e0     stwu    r1,-32(r1)
80343710:       7c 08 02 a6     mflr    r0
80343714:       90 01 00 24     stw     r0,36(r1)
80343718:       93 e1 00 1c     stw     r31,28(r1)
8034371c:       7c df 33 78     mr      r31,r6
80343720:       93 c1 00 18     stw     r30,24(r1)
80343724:       7c be 2b 78     mr      r30,r5
80343728:       93 a1 00 14     stw     r29,20(r1)
8034372c:       7c 9d 23 78     mr      r29,r4
80343730:       93 81 00 10     stw     r28,16(r1)
80343734:       7c 7c 1b 78     mr      r28,r3
80343738:       80 0d 9f 38     lwz     r0,-24776(r13)
8034373c:       2c 00 00 00     cmpwi   r0,0
80343740:       40 82 00 34     bne-    0x80343774	goto fwd7
fwd7 (silly)
80343744:       38 00 00 04     li      r0,4
80343748:       38 60 10 80     li      r3,4224
8034374c:       90 01 00 08     stw     r0,8(r1)
80343750:       38 80 00 02     li      r4,2
80343754:       38 a0 00 04     li      r5,4
80343758:       38 c0 00 04     li      r6,4
8034375c:       90 01 00 0c     stw     r0,12(r1)
80343760:       38 e0 00 04     li      r7,4
80343764:       39 00 00 04     li      r8,4
80343768:       39 20 00 04     li      r9,4
8034376c:       39 40 00 04     li      r10,4
80343770:       48 00 00 3d     bl      0x803437ac	funcC(x1080,2,4,4,4,4,4,4)
80343774:       7f 83 e3 78     mr      r3,r28
80343778:       7f a4 eb 78     mr      r4,r29
8034377c:       7f c5 f3 78     mr      r5,r30
80343780:       7f e6 fb 78     mr      r6,r31
80343784:       38 e0 00 00     li      r7,0
80343788:       48 00 06 8d     bl      0x80343e14	funcD(r3,r4,r5,r6,0)
8034378c:       80 01 00 24     lwz     r0,36(r1)
80343790:       83 e1 00 1c     lwz     r31,28(r1)
80343794:       83 c1 00 18     lwz     r30,24(r1)
80343798:       83 a1 00 14     lwz     r29,20(r1)
8034379c:       83 81 00 10     lwz     r28,16(r1)
803437a0:       7c 08 03 a6     mtlr    r0
803437a4:       38 21 00 20     addi    r1,r1,32
803437a8:       4e 80 00 20     blr

funcC
803437ac:       94 21 ff f0     stwu    r1,-16(r1)
803437b0:       7c 08 02 a6     mflr    r0
803437b4:       28 03 00 00     cmplwi  r3,0
803437b8:       90 01 00 14     stw     r0,20(r1)
803437bc:       38 00 00 01     li      r0,1
803437c0:       81 61 00 18     lwz     r11,24(r1)
803437c4:       93 e1 00 0c     stw     r31,12(r1)
803437c8:       80 61 00 1c     lwz     r3,28(r1)
803437cc:       90 0d 9f 38     stw     r0,-24776(r13)
803437d0:       40 82 00 0c     bne-    0x803437dc
803437d4:       38 60 ff ff     li      r3,-1
803437d8:       48 00 01 e8     b       0x803439c0
803437dc:       2c 04 ff ff     cmpwi   r4,-1
803437e0:       38 00 00 00     li      r0,0
803437e4:       41 82 00 0c     beq-    0x803437f0
803437e8:       2c 04 00 02     cmpwi   r4,2
803437ec:       40 82 00 88     bne-    0x80343874
803437f0:       2c 05 ff ff     cmpwi   r5,-1
803437f4:       41 82 00 0c     beq-    0x80343800
803437f8:       2c 05 00 04     cmpwi   r5,4
803437fc:       40 82 00 78     bne-    0x80343874
80343800:       2c 06 ff ff     cmpwi   r6,-1
80343804:       41 82 00 0c     beq-    0x80343810
80343808:       2c 06 00 04     cmpwi   r6,4
8034380c:       40 82 00 68     bne-    0x80343874
80343810:       2c 07 ff ff     cmpwi   r7,-1
80343814:       41 82 00 0c     beq-    0x80343820
80343818:       2c 07 00 04     cmpwi   r7,4
8034381c:       40 82 00 58     bne-    0x80343874
80343820:       2c 08 ff ff     cmpwi   r8,-1
80343824:       41 82 00 0c     beq-    0x80343830
80343828:       2c 08 00 04     cmpwi   r8,4
8034382c:       40 82 00 48     bne-    0x80343874
80343830:       2c 09 ff ff     cmpwi   r9,-1
80343834:       41 82 00 0c     beq-    0x80343840
80343838:       2c 09 00 04     cmpwi   r9,4
8034383c:       40 82 00 38     bne-    0x80343874
80343840:       2c 0a ff ff     cmpwi   r10,-1
80343844:       41 82 00 0c     beq-    0x80343850
80343848:       2c 0a 00 04     cmpwi   r10,4
8034384c:       40 82 00 28     bne-    0x80343874
80343850:       2c 0b ff ff     cmpwi   r11,-1
80343854:       41 82 00 0c     beq-    0x80343860
80343858:       2c 0b 00 04     cmpwi   r11,4
8034385c:       40 82 00 18     bne-    0x80343874
80343860:       2c 03 ff ff     cmpwi   r3,-1
80343864:       41 82 00 0c     beq-    0x80343870
80343868:       2c 03 00 04     cmpwi   r3,4
8034386c:       40 82 00 08     bne-    0x80343874
80343870:       38 00 00 01     li      r0,1
80343874:       2c 00 00 00     cmpwi   r0,0
80343878:       40 82 00 0c     bne-    0x80343884
8034387c:       38 60 ff ff     li      r3,-1
80343880:       48 00 01 40     b       0x803439c0
80343884:       3c 60 80 3b     lis     r3,-32709
80343888:       3b e0 00 01     li      r31,1
8034388c:       80 03 03 48     lwz     r0,840(r3)		1
80343890:       7c 00 00 34     cntlzw  r0,r0
80343894:       54 00 d9 7e     rlwinm  r0,r0,27,5,31
80343898:       7c 00 00 34     cntlzw  r0,r0
8034389c:       54 00 d9 7e     rlwinm  r0,r0,27,5,31
803438a0:       7f ff 00 38     and     r31,r31,r0
803438a4:       2c 1f 00 01     cmpwi   r31,1
803438a8:       40 82 00 f8     bne-    0x803439a0
803438ac:       80 6d 8f 10     lwz     r3,-28912(r13)
803438b0:       38 e0 00 00     li      r7,0
803438b4:       28 03 00 00     cmplwi  r3,0
803438b8:       40 81 00 ac     ble-    0x80343964
803438bc:       28 03 00 08     cmplwi  r3,8
803438c0:       38 83 ff f8     addi    r4,r3,-8
803438c4:       40 81 00 68     ble-    0x8034392c
803438c8:       38 04 00 07     addi    r0,r4,7
803438cc:       3c 60 80 3e     lis     r3,-32706
803438d0:       54 00 e8 fe     rlwinm  r0,r0,29,3,31
803438d4:       39 03 06 08     addi    r8,r3,1544		(mem)
803438d8:       7c 09 03 a6     mtctr   r0
803438dc:       28 04 00 00     cmplwi  r4,0
803438e0:       40 81 00 4c     ble-    0x8034392c
803438e4:       38 67 ff fd     addi    r3,r7,-3
803438e8:       38 07 ff fe     addi    r0,r7,-2
803438ec:       90 68 00 00     stw     r3,0(r8)
803438f0:       38 c7 ff ff     addi    r6,r7,-1
803438f4:       38 a7 00 01     addi    r5,r7,1
803438f8:       38 87 00 02     addi    r4,r7,2
803438fc:       90 08 00 04     stw     r0,4(r8)
80343900:       38 67 00 03     addi    r3,r7,3
80343904:       38 07 00 04     addi    r0,r7,4
80343908:       90 c8 00 08     stw     r6,8(r8)
8034390c:       90 e8 00 0c     stw     r7,12(r8)
80343910:       38 e7 00 08     addi    r7,r7,8
80343914:       90 a8 00 10     stw     r5,16(r8)
80343918:       90 88 00 14     stw     r4,20(r8)
8034391c:       90 68 00 18     stw     r3,24(r8)
80343920:       90 08 00 1c     stw     r0,28(r8)
80343924:       39 08 00 20     addi    r8,r8,32
80343928:       42 00 ff bc     bdnz+   0x803438e4
8034392c:       80 ad 8f 10     lwz     r5,-28912(r13)
80343930:       3c 60 80 3e     lis     r3,-32706
80343934:       54 e4 10 3a     rlwinm  r4,r7,2,0,29
80343938:       38 63 06 08     addi    r3,r3,1544		(mem)
8034393c:       7c 07 28 50     subf    r0,r7,r5
80343940:       7c 63 22 14     add     r3,r3,r4
80343944:       7c 09 03 a6     mtctr   r0
80343948:       7c 07 28 40     cmplw   r7,r5
8034394c:       40 80 00 18     bge-    0x80343964
80343950:       38 07 ff fd     addi    r0,r7,-3
80343954:       38 e7 00 01     addi    r7,r7,1
80343958:       90 03 00 00     stw     r0,0(r3)
8034395c:       38 63 00 04     addi    r3,r3,4
80343960:       42 00 ff f0     bdnz+   0x80343950
80343964:       3c 60 80 3e     lis     r3,-32706
80343968:       84 03 06 08     lwzu    r0,1544(r3)		(mem)
8034396c:       38 80 00 00     li      r4,0
80343970:       2c 00 ff fd     cmpwi   r0,-3
80343974:       40 82 00 1c     bne-    0x80343990
80343978:       80 03 00 04     lwz     r0,4(r3)
8034397c:       2c 00 ff fe     cmpwi   r0,-2
80343980:       40 82 00 10     bne-    0x80343990
80343984:       80 03 00 08     lwz     r0,8(r3)
80343988:       2c 00 ff ff     cmpwi   r0,-1
8034398c:       41 82 00 08     beq-    0x80343994
80343990:       38 80 00 01     li      r4,1
80343994:       7c 80 00 34     cntlzw  r0,r4
80343998:       54 00 d9 7e     rlwinm  r0,r0,27,5,31
8034399c:       7f ff 00 38     and     r31,r31,r0
803439a0:       2c 1f 00 01     cmpwi   r31,1
803439a4:       40 82 00 0c     bne-    0x803439b0
803439a8:       48 00 00 2d     bl      0x803439d4	funcE
803439ac:       7f ff 18 38     and     r31,r31,r3
803439b0:       38 7f ff ff     addi    r3,r31,-1
803439b4:       20 1f 00 01     subfic  r0,r31,1
803439b8:       7c 60 03 78     or      r0,r3,r0
803439bc:       7c 03 fe 71     srawi.  r3,r0,31
803439c0:       80 01 00 14     lwz     r0,20(r1)
803439c4:       83 e1 00 0c     lwz     r31,12(r1)
803439c8:       7c 08 03 a6     mtlr    r0
803439cc:       38 21 00 10     addi    r1,r1,16
803439d0:       4e 80 00 20     blr


funcE
803439d4:       94 21 ff b0     stwu    r1,-80(r1)
803439d8:       7c 08 02 a6     mflr    r0
803439dc:       39 60 00 00     li      r11,0
803439e0:       39 40 00 01     li      r10,1
803439e4:       90 01 00 54     stw     r0,84(r1)
803439e8:       39 20 00 02     li      r9,2
803439ec:       39 00 00 03     li      r8,3
803439f0:       38 e0 00 04     li      r7,4
803439f4:       93 e1 00 4c     stw     r31,76(r1)
803439f8:       38 c0 00 05     li      r6,5
803439fc:       38 a0 00 06     li      r5,6
80343a00:       38 00 00 07     li      r0,7
80343a04:       93 c1 00 48     stw     r30,72(r1)
80343a08:       38 61 00 1c     addi    r3,r1,28
80343a0c:       3b e0 00 01     li      r31,1
80343a10:       38 80 00 04     li      r4,4
80343a14:       99 61 00 0c     stb     r11,12(r1)
80343a18:       39 60 00 08     li      r11,8
80343a1c:       99 41 00 0d     stb     r10,13(r1)
80343a20:       39 40 00 09     li      r10,9
80343a24:       99 21 00 0e     stb     r9,14(r1)
80343a28:       39 20 00 0a     li      r9,10
80343a2c:       99 01 00 0f     stb     r8,15(r1)
80343a30:       39 00 00 0b     li      r8,11
80343a34:       98 e1 00 10     stb     r7,16(r1)
80343a38:       38 e0 00 0c     li      r7,12
80343a3c:       98 c1 00 11     stb     r6,17(r1)
80343a40:       38 c0 00 0d     li      r6,13
80343a44:       98 a1 00 12     stb     r5,18(r1)
80343a48:       38 a0 00 0e     li      r5,14
80343a4c:       98 01 00 13     stb     r0,19(r1)
80343a50:       38 00 00 0f     li      r0,15
80343a54:       99 61 00 14     stb     r11,20(r1)
80343a58:       99 41 00 15     stb     r10,21(r1)
80343a5c:       99 21 00 16     stb     r9,22(r1)
80343a60:       99 01 00 17     stb     r8,23(r1)
80343a64:       98 e1 00 18     stb     r7,24(r1)
80343a68:       98 c1 00 19     stb     r6,25(r1)
80343a6c:       98 a1 00 1a     stb     r5,26(r1)
80343a70:       98 01 00 1b     stb     r0,27(r1)
80343a74:       48 00 03 89     bl      0x80343dfc	funcF
80343a78:       3b c1 00 1c     addi    r30,r1,28
80343a7c:       38 e0 00 04     li      r7,4
80343a80:       7f c0 f3 78     mr      r0,r30
80343a84:       38 80 00 00     li      r4,0
80343a88:       7f de 1a 14     add     r30,r30,r3
80343a8c:       38 61 00 08     addi    r3,r1,8
80343a90:       7c a0 f0 50     subf    r5,r0,r30
80343a94:       54 a6 0f fe     rlwinm  r6,r5,1,31,31
80343a98:       7c e0 2a 78     xor     r0,r7,r5
80343a9c:       38 a0 00 04     li      r5,4
80343aa0:       68 c8 00 01     xori    r8,r6,1
80343aa4:       7c 06 0e 70     srawi   r6,r0,1
80343aa8:       7c 00 38 38     and     r0,r0,r7
80343aac:       7c 00 30 50     subf    r0,r0,r6
80343ab0:       7f ff 40 38     and     r31,r31,r8
80343ab4:       54 00 0f fe     rlwinm  r0,r0,1,31,31
80343ab8:       7f ff 00 38     and     r31,r31,r0
80343abc:       4b cb f6 45     bl      0x80003100
80343ac0:       80 01 00 08     lwz     r0,8(r1)
80343ac4:       38 61 00 08     addi    r3,r1,8
80343ac8:       38 80 00 ff     li      r4,255
80343acc:       38 a0 00 04     li      r5,4
80343ad0:       7c 00 00 34     cntlzw  r0,r0
80343ad4:       54 00 d9 7e     rlwinm  r0,r0,27,5,31
80343ad8:       7f ff 00 38     and     r31,r31,r0
80343adc:       4b cb f6 25     bl      0x80003100
80343ae0:       3c 60 00 01     lis     r3,1
80343ae4:       80 e1 00 08     lwz     r7,8(r1)
80343ae8:       38 03 ff ff     addi    r0,r3,-1		0xffff
80343aec:       a0 61 00 08     lhz     r3,8(r1)
80343af0:       54 00 04 3e     clrlwi  r0,r0,16
80343af4:       20 87 ff ff     subfic  r4,r7,-1
80343af8:       7c 03 00 50     subf    r0,r3,r0
80343afc:       20 67 ff ff     subfic  r3,r7,-1
80343b00:       7c 05 00 34     cntlzw  r5,r0
80343b04:       20 07 ff ff     subfic  r0,r7,-1
80343b08:       54 a6 d9 7e     rlwinm  r6,r5,27,5,31
80343b0c:       7c 85 00 34     cntlzw  r5,r4
80343b10:       7c 64 00 34     cntlzw  r4,r3
80343b14:       7c 03 00 34     cntlzw  r3,r0
80343b18:       20 07 ff ff     subfic  r0,r7,-1
80343b1c:       7f ff 30 38     and     r31,r31,r6
80343b20:       54 a5 d9 7e     rlwinm  r5,r5,27,5,31
80343b24:       54 84 d9 7e     rlwinm  r4,r4,27,5,31
80343b28:       7f ff 28 38     and     r31,r31,r5
80343b2c:       7c 00 00 34     cntlzw  r0,r0
80343b30:       7f ff 20 38     and     r31,r31,r4
80343b34:       54 63 d9 7e     rlwinm  r3,r3,27,5,31
80343b38:       7f ff 18 38     and     r31,r31,r3
80343b3c:       54 00 d9 7e     rlwinm  r0,r0,27,5,31
80343b40:       7f ff 00 38     and     r31,r31,r0
80343b44:       2c 1f 00 01     cmpwi   r31,1
80343b48:       40 82 00 bc     bne-    0x80343c04
80343b4c:       7c 7e f0 50     subf    r3,r30,r30
80343b50:       38 de 00 04     addi    r6,r30,4
80343b54:       7c 60 00 34     cntlzw  r0,r3
80343b58:       38 9e 00 04     addi    r4,r30,4
80343b5c:       7c 66 20 50     subf    r3,r6,r4
80343b60:       38 c6 00 04     addi    r6,r6,4
80343b64:       54 05 d9 7e     rlwinm  r5,r0,27,5,31
80343b68:       38 9e 00 08     addi    r4,r30,8
80343b6c:       7c 60 00 34     cntlzw  r0,r3
80343b70:       7c 66 20 50     subf    r3,r6,r4
80343b74:       7f ff 28 38     and     r31,r31,r5
80343b78:       54 05 d9 7e     rlwinm  r5,r0,27,5,31
80343b7c:       38 9e 00 0c     addi    r4,r30,12
80343b80:       38 c6 00 04     addi    r6,r6,4
80343b84:       7c 60 00 34     cntlzw  r0,r3
80343b88:       7c 66 20 50     subf    r3,r6,r4
80343b8c:       7f ff 28 38     and     r31,r31,r5
80343b90:       54 05 d9 7e     rlwinm  r5,r0,27,5,31
80343b94:       38 9e 00 10     addi    r4,r30,16
80343b98:       38 c6 00 04     addi    r6,r6,4
80343b9c:       7c 60 00 34     cntlzw  r0,r3
80343ba0:       7c 66 20 50     subf    r3,r6,r4
80343ba4:       7f ff 28 38     and     r31,r31,r5
80343ba8:       54 05 d9 7e     rlwinm  r5,r0,27,5,31
80343bac:       38 9e 00 14     addi    r4,r30,20
80343bb0:       38 c6 00 04     addi    r6,r6,4
80343bb4:       7c 60 00 34     cntlzw  r0,r3
80343bb8:       7c 66 20 50     subf    r3,r6,r4
80343bbc:       7f ff 28 38     and     r31,r31,r5
80343bc0:       54 05 d9 7e     rlwinm  r5,r0,27,5,31
80343bc4:       38 9e 00 18     addi    r4,r30,24
80343bc8:       38 c6 00 04     addi    r6,r6,4
80343bcc:       7c 60 00 34     cntlzw  r0,r3
80343bd0:       7c 66 20 50     subf    r3,r6,r4
80343bd4:       7f ff 28 38     and     r31,r31,r5
80343bd8:       54 05 d9 7e     rlwinm  r5,r0,27,5,31
80343bdc:       38 9e 00 1c     addi    r4,r30,28
80343be0:       38 c6 00 04     addi    r6,r6,4
80343be4:       7c 60 00 34     cntlzw  r0,r3
80343be8:       7f ff 28 38     and     r31,r31,r5
80343bec:       54 05 d9 7e     rlwinm  r5,r0,27,5,31
80343bf0:       7c 66 20 50     subf    r3,r6,r4
80343bf4:       7c 60 00 34     cntlzw  r0,r3
80343bf8:       7f ff 28 38     and     r31,r31,r5
80343bfc:       54 05 d9 7e     rlwinm  r5,r0,27,5,31
80343c00:       7f ff 28 38     and     r31,r31,r5
80343c04:       38 61 00 08     addi    r3,r1,8
80343c08:       38 80 00 00     li      r4,0
80343c0c:       38 a0 00 04     li      r5,4
80343c10:       4b cb f4 f1     bl      0x80003100
80343c14:       80 01 00 08     lwz     r0,8(r1)
80343c18:       7c 00 00 34     cntlzw  r0,r0
80343c1c:       54 00 d9 7e     rlwinm  r0,r0,27,5,31
80343c20:       7f ff 00 38     and     r31,r31,r0
80343c24:       7f ff 00 38     and     r31,r31,r0
80343c28:       57 ff 07 fe     clrlwi  r31,r31,31
80343c2c:       2c 1f 00 01     cmpwi   r31,1
80343c30:       40 82 00 e4     bne-    0x80343d14
80343c34:       93 de 00 00     stw     r30,0(r30)
80343c38:       38 7e 00 04     addi    r3,r30,4
80343c3c:       38 80 00 00     li      r4,0
80343c40:       38 a0 00 20     li      r5,32
80343c44:       93 de 00 04     stw     r30,4(r30)
80343c48:       93 de 00 08     stw     r30,8(r30)
80343c4c:       93 de 00 0c     stw     r30,12(r30)
80343c50:       93 de 00 10     stw     r30,16(r30)
80343c54:       93 de 00 14     stw     r30,20(r30)
80343c58:       93 de 00 18     stw     r30,24(r30)
80343c5c:       93 de 00 1c     stw     r30,28(r30)
80343c60:       93 de 00 20     stw     r30,32(r30)
80343c64:       93 de 00 24     stw     r30,36(r30)
80343c68:       4b cb f4 99     bl      0x80003100
80343c6c:       80 1e 00 00     lwz     r0,0(r30)
80343c70:       80 9e 00 04     lwz     r4,4(r30)
80343c74:       7c a0 f0 50     subf    r5,r0,r30
80343c78:       80 1e 00 24     lwz     r0,36(r30)
80343c7c:       7c 83 00 34     cntlzw  r3,r4
80343c80:       80 9e 00 08     lwz     r4,8(r30)
80343c84:       7c a5 00 34     cntlzw  r5,r5
80343c88:       7c 00 f0 50     subf    r0,r0,r30
80343c8c:       54 a5 d9 7e     rlwinm  r5,r5,27,5,31
80343c90:       54 66 d9 7e     rlwinm  r6,r3,27,5,31
80343c94:       7c 83 00 34     cntlzw  r3,r4
80343c98:       80 9e 00 0c     lwz     r4,12(r30)
80343c9c:       7f ff 28 38     and     r31,r31,r5
80343ca0:       7c 00 00 34     cntlzw  r0,r0
80343ca4:       7f ff 30 38     and     r31,r31,r6
80343ca8:       54 66 d9 7e     rlwinm  r6,r3,27,5,31
80343cac:       7c 83 00 34     cntlzw  r3,r4
80343cb0:       80 9e 00 10     lwz     r4,16(r30)
80343cb4:       7f ff 30 38     and     r31,r31,r6
80343cb8:       54 00 d9 7e     rlwinm  r0,r0,27,5,31
80343cbc:       54 66 d9 7e     rlwinm  r6,r3,27,5,31
80343cc0:       7c 83 00 34     cntlzw  r3,r4
80343cc4:       7f ff 30 38     and     r31,r31,r6
80343cc8:       80 9e 00 14     lwz     r4,20(r30)
80343ccc:       54 66 d9 7e     rlwinm  r6,r3,27,5,31
80343cd0:       7c 83 00 34     cntlzw  r3,r4
80343cd4:       80 9e 00 18     lwz     r4,24(r30)
80343cd8:       7f ff 30 38     and     r31,r31,r6
80343cdc:       54 66 d9 7e     rlwinm  r6,r3,27,5,31
80343ce0:       7c 83 00 34     cntlzw  r3,r4
80343ce4:       7f ff 30 38     and     r31,r31,r6
80343ce8:       80 9e 00 1c     lwz     r4,28(r30)
80343cec:       54 66 d9 7e     rlwinm  r6,r3,27,5,31
80343cf0:       7c 83 00 34     cntlzw  r3,r4
80343cf4:       80 9e 00 20     lwz     r4,32(r30)
80343cf8:       7f ff 30 38     and     r31,r31,r6
80343cfc:       54 66 d9 7e     rlwinm  r6,r3,27,5,31
80343d00:       7c 83 00 34     cntlzw  r3,r4
80343d04:       7f ff 30 38     and     r31,r31,r6
80343d08:       54 66 d9 7e     rlwinm  r6,r3,27,5,31
80343d0c:       7f ff 30 38     and     r31,r31,r6
80343d10:       7f ff 00 38     and     r31,r31,r0
80343d14:       2c 1f 00 01     cmpwi   r31,1
80343d18:       40 82 00 c8     bne-    0x80343de0
80343d1c:       38 61 00 0d     addi    r3,r1,13
80343d20:       38 80 00 04     li      r4,4
80343d24:       48 00 00 d9     bl      0x80343dfc	funcF
80343d28:       38 83 00 01     addi    r4,r3,1
80343d2c:       38 61 00 0c     addi    r3,r1,12
80343d30:       7c 63 22 14     add     r3,r3,r4
80343d34:       39 21 00 0d     addi    r9,r1,13
80343d38:       54 65 07 be     clrlwi  r5,r3,30
80343d3c:       38 04 ff ff     addi    r0,r4,-1
80343d40:       39 40 00 01     li      r10,1
80343d44:       7d 09 18 50     subf    r8,r9,r3
80343d48:       7c a5 00 34     cntlzw  r5,r5
80343d4c:       38 e0 00 05     li      r7,5
80343d50:       54 ac d9 7e     rlwinm  r12,r5,27,5,31
80343d54:       38 a1 00 11     addi    r5,r1,17
80343d58:       7c e6 22 78     xor     r6,r7,r4
80343d5c:       7c 8b 53 38     orc     r11,r4,r10
80343d60:       54 0a f8 7e     rlwinm  r10,r0,31,1,31
80343d64:       7c a0 1a 78     xor     r0,r5,r3
80343d68:       7d 4a 58 50     subf    r10,r10,r11
80343d6c:       7c c6 00 34     cntlzw  r6,r6
80343d70:       7c e6 30 30     slw     r6,r7,r6
80343d74:       7c 00 00 34     cntlzw  r0,r0
80343d78:       7c a0 00 30     slw     r0,r5,r0
80343d7c:       7c 67 4b 38     orc     r7,r3,r9
80343d80:       55 05 f8 7e     rlwinm  r5,r8,31,1,31
80343d84:       7f ff 60 38     and     r31,r31,r12
80343d88:       55 48 0f fe     rlwinm  r8,r10,1,31,31
80343d8c:       54 c6 0f fe     rlwinm  r6,r6,1,31,31
80343d90:       7c a5 38 50     subf    r5,r5,r7
80343d94:       54 07 0f fe     rlwinm  r7,r0,1,31,31
80343d98:       7f ff 40 38     and     r31,r31,r8
80343d9c:       54 a0 0f fe     rlwinm  r0,r5,1,31,31
80343da0:       7f ff 00 38     and     r31,r31,r0
80343da4:       7f ff 30 38     and     r31,r31,r6
80343da8:       7f ff 38 38     and     r31,r31,r7
80343dac:       2c 1f 00 01     cmpwi   r31,1
80343db0:       40 82 00 30     bne-    0x80343de0
80343db4:       38 a1 00 10     addi    r5,r1,16
80343db8:       80 63 00 00     lwz     r3,0(r3)
80343dbc:       7c 85 20 2e     lwzx    r4,r5,r4
80343dc0:       7c 03 00 d0     neg     r0,r3
80343dc4:       7c 03 1b 78     or      r3,r0,r3
80343dc8:       7c 04 00 d0     neg     r0,r4
80343dcc:       54 63 0f fe     rlwinm  r3,r3,1,31,31
80343dd0:       7c 00 23 78     or      r0,r0,r4
80343dd4:       7f ff 18 38     and     r31,r31,r3
80343dd8:       54 00 0f fe     rlwinm  r0,r0,1,31,31
80343ddc:       7f ff 00 38     and     r31,r31,r0
80343de0:       80 01 00 54     lwz     r0,84(r1)
80343de4:       7f e3 fb 78     mr      r3,r31
80343de8:       83 e1 00 4c     lwz     r31,76(r1)
80343dec:       83 c1 00 48     lwz     r30,72(r1)
80343df0:       7c 08 03 a6     mtlr    r0
80343df4:       38 21 00 50     addi    r1,r1,80
80343df8:       4e 80 00 20     blr


funcF
returns (-r3) mod r4, 32 bit
80343dfc:       7c a4 1a 14     add     r5,r4,r3
80343e00:       38 05 ff ff     addi    r0,r5,-1
80343e04:       7c 00 23 96     divwu   r0,r0,r4
80343e08:       7c 04 01 d6     mullw   r0,r4,r0
80343e0c:       7c 63 00 50     subf    r3,r3,r0
80343e10:       4e 80 00 20     blr


funcD(r3 = segptr, r4 = segsz, r5 = *output, r6 = &avail_out, r7 = 0)
80343e14:       38 00 00 00     li      r0,0
80343e18:       7c a7 2b 78     mr      r7,r5
80343e1c:       90 06 00 00     stw     r0,0(r6)
80343e20:       7c 03 22 14     add     r0,r3,r4
80343e24:       89 03 00 00     lbz     r8,0(r3)
80343e28:       28 08 00 11     cmplwi  r8,17
80343e2c:       40 81 00 30     ble-    0x80343e5c	goto big_loop
80343e30:       39 08 ff ef     addi    r8,r8,-17
80343e34:       38 63 00 01     addi    r3,r3,1
80343e38:       28 08 00 04     cmplwi  r8,4
80343e3c:       41 80 02 44     blt-    0x80344080	goto fwd2
back1
80343e40:       88 83 00 00     lbz     r4,0(r3)
80343e44:       35 08 ff ff     addic.  r8,r8,-1
80343e48:       38 63 00 01     addi    r3,r3,1
80343e4c:       98 87 00 00     stb     r4,0(r7)
80343e50:       38 e7 00 01     addi    r7,r7,1
80343e54:       40 82 ff ec     bne+    0x80343e40	goto back1
80343e58:       48 00 00 78     b       0x80343ed0	goto abs1

big_loop:
80343e5c:       88 83 00 00     lbz     r4,0(r3)
80343e60:       38 63 00 01     addi    r3,r3,1
80343e64:       28 04 00 10     cmplwi  r4,16
80343e68:       40 80 00 b4     bge-    0x80343f1c	goto inner_loop
80343e6c:       28 04 00 00     cmplwi  r4,0
80343e70:       40 82 00 28     bne-    0x80343e98	goto fwd4
80343e74:       48 00 00 0c     b       0x80343e80	goto abs2

back2:
80343e78:       38 84 00 ff     addi    r4,r4,255
80343e7c:       38 63 00 01     addi    r3,r3,1
abs2:
80343e80:       89 03 00 00     lbz     r8,0(r3)
80343e84:       28 08 00 00     cmplwi  r8,0
80343e88:       41 82 ff f0     beq+    0x80343e78	goto back2
80343e8c:       7c 88 22 14     add     r4,r8,r4
80343e90:       38 63 00 01     addi    r3,r3,1
80343e94:       38 84 00 0f     addi    r4,r4,15
fwd4:
80343e98:       89 03 00 00     lbz     r8,0(r3)
80343e9c:       99 07 00 00     stb     r8,0(r7)
80343ea0:       89 03 00 01     lbz     r8,1(r3)
80343ea4:       99 07 00 01     stb     r8,1(r7)
80343ea8:       89 03 00 02     lbz     r8,2(r3)
80343eac:       38 63 00 03     addi    r3,r3,3
80343eb0:       99 07 00 02     stb     r8,2(r7)
80343eb4:       38 e7 00 03     addi    r7,r7,3
back3:
80343eb8:       89 03 00 00     lbz     r8,0(r3)
80343ebc:       34 84 ff ff     addic.  r4,r4,-1
80343ec0:       38 63 00 01     addi    r3,r3,1
80343ec4:       99 07 00 00     stb     r8,0(r7)
80343ec8:       38 e7 00 01     addi    r7,r7,1
80343ecc:       40 82 ff ec     bne+    0x80343eb8	goto back3
abs1:
80343ed0:       88 83 00 00     lbz     r4,0(r3)
80343ed4:       38 63 00 01     addi    r3,r3,1
80343ed8:       28 04 00 10     cmplwi  r4,16
80343edc:       40 80 00 40     bge-    0x80343f1c	goto inner_loop
80343ee0:       89 03 00 00     lbz     r8,0(r3)
80343ee4:       39 27 f7 ff     addi    r9,r7,-2049
80343ee8:       54 84 f0 be     rlwinm  r4,r4,30,2,31
80343eec:       38 63 00 01     addi    r3,r3,1
80343ef0:       7d 24 48 50     subf    r9,r4,r9
80343ef4:       55 04 15 ba     rlwinm  r4,r8,2,22,29
80343ef8:       7d 24 48 50     subf    r9,r4,r9
80343efc:       88 89 00 00     lbz     r4,0(r9)
80343f00:       98 87 00 00     stb     r4,0(r7)
80343f04:       88 89 00 01     lbz     r4,1(r9)
80343f08:       98 87 00 01     stb     r4,1(r7)
80343f0c:       88 89 00 02     lbz     r4,2(r9)
80343f10:       98 87 00 02     stb     r4,2(r7)
80343f14:       38 e7 00 03     addi    r7,r7,3
80343f18:       48 00 01 58     b       0x80344070	goto abs3

inner_loop:
80343f1c:       28 04 00 40     cmplwi  r4,64
80343f20:       41 80 00 2c     blt-    0x80343f4c	goto fwd4
80343f24:       89 03 00 00     lbz     r8,0(r3)
80343f28:       39 47 ff ff     addi    r10,r7,-1
80343f2c:       54 89 f7 7e     rlwinm  r9,r4,30,29,31
80343f30:       54 84 d9 7e     rlwinm  r4,r4,27,5,31
80343f34:       7d 49 50 50     subf    r10,r9,r10
80343f38:       55 08 1d 78     rlwinm  r8,r8,3,21,28
80343f3c:       7d 48 50 50     subf    r10,r8,r10
80343f40:       38 84 ff ff     addi    r4,r4,-1
80343f44:       38 63 00 01     addi    r3,r3,1
80343f48:       48 00 00 f8     b       0x80344040	goto abs4

fwd4
80343f4c:       28 04 00 20     cmplwi  r4,32
80343f50:       41 80 00 54     blt-    0x80343fa4	goto fwd5
80343f54:       54 84 06 ff     clrlwi. r4,r4,27
80343f58:       40 82 00 28     bne-    0x80343f80	goto fwd6
80343f5c:       48 00 00 0c     b       0x80343f68	goto abs5

back4
80343f60:       38 84 00 ff     addi    r4,r4,255
80343f64:       38 63 00 01     addi    r3,r3,1
abs5:
80343f68:       89 03 00 00     lbz     r8,0(r3)
80343f6c:       28 08 00 00     cmplwi  r8,0
80343f70:       41 82 ff f0     beq+    0x80343f60	goto back4
80343f74:       7c 88 22 14     add     r4,r8,r4
80343f78:       38 63 00 01     addi    r3,r3,1
80343f7c:       38 84 00 1f     addi    r4,r4,31
fwd6:
80343f80:       89 23 00 00     lbz     r9,0(r3)
80343f84:       39 47 ff ff     addi    r10,r7,-1
80343f88:       89 03 00 01     lbz     r8,1(r3)
80343f8c:       38 63 00 02     addi    r3,r3,2
80343f90:       7d 29 16 70     srawi   r9,r9,2
80343f94:       55 08 30 32     rlwinm  r8,r8,6,0,25
80343f98:       7d 09 42 14     add     r8,r9,r8
80343f9c:       7d 48 50 50     subf    r10,r8,r10
80343fa0:       48 00 00 a0     b       0x80344040	goto abs4

fwd5:
80343fa4:       28 04 00 10     cmplwi  r4,16
80343fa8:       41 80 00 64     blt-    0x8034400c	goto fwd7
80343fac:       54 88 5c 62     rlwinm  r8,r4,11,17,17
80343fb0:       54 84 07 7f     clrlwi. r4,r4,29
80343fb4:       7d 48 38 50     subf    r10,r8,r7
80343fb8:       40 82 00 28     bne-    0x80343fe0	goto fwd8
80343fbc:       48 00 00 0c     b       0x80343fc8	goto abs5

back5:
80343fc0:       38 84 00 ff     addi    r4,r4,255
80343fc4:       38 63 00 01     addi    r3,r3,1
abs5:
80343fc8:       89 03 00 00     lbz     r8,0(r3)
80343fcc:       28 08 00 00     cmplwi  r8,0
80343fd0:       41 82 ff f0     beq+    0x80343fc0	goto back5
80343fd4:       7c 88 22 14     add     r4,r8,r4
80343fd8:       38 63 00 01     addi    r3,r3,1
80343fdc:       38 84 00 07     addi    r4,r4,7
fwd8:
80343fe0:       89 23 00 00     lbz     r9,0(r3)
80343fe4:       89 03 00 01     lbz     r8,1(r3)
80343fe8:       38 63 00 02     addi    r3,r3,2
80343fec:       7d 29 16 70     srawi   r9,r9,2
80343ff0:       55 08 30 32     rlwinm  r8,r8,6,0,25
80343ff4:       7d 09 42 14     add     r8,r9,r8
80343ff8:       7d 48 50 50     subf    r10,r8,r10
80343ffc:       7c 0a 38 40     cmplw   r10,r7
80344000:       41 82 00 a4     beq-    0x803440a4	goto fwd9
80344004:       39 4a c0 00     addi    r10,r10,-16384
80344008:       48 00 00 38     b       0x80344040	goto abs4

fwd7
8034400c:       89 03 00 00     lbz     r8,0(r3)
80344010:       39 27 ff ff     addi    r9,r7,-1
80344014:       54 84 f0 be     rlwinm  r4,r4,30,2,31
80344018:       38 63 00 01     addi    r3,r3,1
8034401c:       7d 24 48 50     subf    r9,r4,r9
80344020:       55 04 15 ba     rlwinm  r4,r8,2,22,29
80344024:       7d 24 48 50     subf    r9,r4,r9
80344028:       88 89 00 00     lbz     r4,0(r9)
8034402c:       98 87 00 00     stb     r4,0(r7)
80344030:       88 89 00 01     lbz     r4,1(r9)
80344034:       98 87 00 01     stb     r4,1(r7)
80344038:       38 e7 00 02     addi    r7,r7,2
8034403c:       48 00 00 34     b       0x80344070	goto abs3

abs4:
80344040:       89 0a 00 00     lbz     r8,0(r10)
80344044:       99 07 00 00     stb     r8,0(r7)
80344048:       89 0a 00 01     lbz     r8,1(r10)
8034404c:       39 4a 00 02     addi    r10,r10,2
80344050:       99 07 00 01     stb     r8,1(r7)
80344054:       38 e7 00 02     addi    r7,r7,2
back6:
80344058:       89 0a 00 00     lbz     r8,0(r10)
8034405c:       34 84 ff ff     addic.  r4,r4,-1
80344060:       39 4a 00 01     addi    r10,r10,1
80344064:       99 07 00 00     stb     r8,0(r7)
80344068:       38 e7 00 01     addi    r7,r7,1
8034406c:       40 82 ff ec     bne+    0x80344058	goto back6
abs3:
80344070:       88 83 ff fe     lbz     r4,-2(r3)
80344074:       54 84 07 bf     clrlwi. r4,r4,30
80344078:       7c 88 23 78     mr      r8,r4
8034407c:       41 82 fd e0     beq+    0x80343e5c	goto big_loop
fwd2:
80344080:       88 83 00 00     lbz     r4,0(r3)
80344084:       35 08 ff ff     addic.  r8,r8,-1
80344088:       38 63 00 01     addi    r3,r3,1
8034408c:       98 87 00 00     stb     r4,0(r7)
80344090:       38 e7 00 01     addi    r7,r7,1
80344094:       40 82 ff ec     bne+    0x80344080	goto fwd2(back)
80344098:       88 83 00 00     lbz     r4,0(r3)
8034409c:       38 63 00 01     addi    r3,r3,1
803440a0:       4b ff fe 7c     b       0x80343f1c	goto inner_loop

fwd9:
803440a4:       7c 85 38 50     subf    r4,r5,r7
803440a8:       7c 03 00 40     cmplw   r3,r0
803440ac:       90 86 00 00     stw     r4,0(r6)
803440b0:       40 82 00 0c     bne-    0x803440bc	goto fwdA
803440b4:       38 60 00 00     li      r3,0
803440b8:       4e 80 00 20     blr
fwdA:
803440bc:       38 60 ff fc     li      r3,-4
803440c0:       4c 80 00 20     bgelr   
803440c4:       38 60 ff f8     li      r3,-8
803440c8:       4e 80 00 20     blr