577077:	8d 46 08             	lea    0x8(%esi),%eax
57707a:	50                   	push   %eax
57707b:	57                   	push   %edi
57707c:	e8 af 44 01 00       	call   0x58b530
577081:	83 c4 08             	add    $0x8,%esp
577084:	89 06                	mov    %eax,(%esi)
577086:	85 c0                	test   %eax,%eax
577088:	7f 23                	jg     0x5770ad
57708a:	56                   	push   %esi
57708b:	e8 f0 a8 f3 ff       	call   0x4b1980
577090:	6a 63                	push   $0x63
577092:	68 08 d2 6b 00       	push   $0x6bd208
577097:	6a 10                	push   $0x10
577099:	68 df 00 00 00       	push   $0xdf
57709e:	6a 10                	push   $0x10
5770a0:	e8 fb a3 f2 ff       	call   0x4a14a0
5770a5:	83 c4 18             	add    $0x18,%esp
5770a8:	33 c0                	xor    %eax,%eax
5770aa:	5f                   	pop    %edi
5770ab:	5e                   	pop    %esi
5770ac:	c3                   	ret
5770ad:	8b 44 24 10          	mov    0x10(%esp),%eax
5770b1:	5f                   	pop    %edi
5770b2:	89 30                	mov    %esi,(%eax)
5770b4:	8b 44 24 08          	mov    0x8(%esp),%eax
5770b8:	5e                   	pop    %esi
5770b9:	c7 00 10 00 00 00    	movl   $0x10,(%eax)
5770bf:	b8 01 00 00 00       	mov    $0x1,%eax
5770c4:	c3                   	ret
5770c5:	6a 51                	push   $0x51
5770c7:	68 08 d2 6b 00       	push   $0x6bd208
5770cc:	6a 7c                	push   $0x7c
5770ce:	68 df 00 00 00       	push   $0xdf
5770d3:	6a 10                	push   $0x10
5770d5:	e8 c6 a3 f2 ff       	call   0x4a14a0
5770da:	83 c4 14             	add    $0x14,%esp
5770dd:	5f                   	pop    %edi
5770de:	33 c0                	xor    %eax,%eax
5770e0:	5e                   	pop    %esi
5770e1:	c3                   	ret
5770e2:	cc                   	int3
5770e3:	cc                   	int3
5770e4:	cc                   	int3
5770e5:	cc                   	int3
5770e6:	cc                   	int3
5770e7:	cc                   	int3
5770e8:	cc                   	int3
5770e9:	cc                   	int3
5770ea:	cc                   	int3
5770eb:	cc                   	int3
5770ec:	cc                   	int3
5770ed:	cc                   	int3
5770ee:	cc                   	int3
5770ef:	cc                   	int3
5770f0:	8b 44 24 04          	mov    0x4(%esp),%eax
5770f4:	56                   	push   %esi
5770f5:	57                   	push   %edi
5770f6:	83 f8 10             	cmp    $0x10,%eax
5770f9:	75 29                	jne    0x577124
5770fb:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5770ff:	8b 41 08             	mov    0x8(%ecx),%eax
577102:	ff 31                	push   (%ecx)
577104:	89 44 24 10          	mov    %eax,0x10(%esp)
577108:	8d 44 24 10          	lea    0x10(%esp),%eax
57710c:	50                   	push   %eax
57710d:	6a 00                	push   $0x0
57710f:	e8 ac 31 01 00       	call   0x58a2c0
577114:	8b f0                	mov    %eax,%esi
577116:	83 c4 0c             	add    $0xc,%esp
577119:	85 f6                	test   %esi,%esi
57711b:	75 6e                	jne    0x57718b
57711d:	68 99 00 00 00       	push   $0x99
577122:	eb 7f                	jmp    0x5771a3
577124:	83 f8 06             	cmp    $0x6,%eax
577127:	75 75                	jne    0x57719e
577129:	e8 52 55 ff ff       	call   0x56c680
57712e:	8b f0                	mov    %eax,%esi
577130:	85 f6                	test   %esi,%esi
577132:	75 20                	jne    0x577154
577134:	68 a4 00 00 00       	push   $0xa4
577139:	68 08 d2 6b 00       	push   $0x6bd208
57713e:	6a 41                	push   $0x41
577140:	68 dc 00 00 00       	push   $0xdc
577145:	6a 10                	push   $0x10
577147:	e8 54 a3 f2 ff       	call   0x4a14a0
57714c:	83 c4 14             	add    $0x14,%esp
57714f:	33 c0                	xor    %eax,%eax
577151:	5f                   	pop    %edi
577152:	5e                   	pop    %esi
577153:	c3                   	ret
577154:	ff 74 24 10          	push   0x10(%esp)
577158:	e8 83 08 f3 ff       	call   0x4a79e0
57715d:	50                   	push   %eax
57715e:	e8 fd 54 00 00       	call   0x57c660
577163:	8b f8                	mov    %eax,%edi
577165:	83 c4 08             	add    $0x8,%esp
577168:	85 ff                	test   %edi,%edi
57716a:	74 24                	je     0x577190
57716c:	6a 01                	push   $0x1
57716e:	57                   	push   %edi
57716f:	e8 2c 4a 00 00       	call   0x57bba0
577174:	57                   	push   %edi
577175:	56                   	push   %esi
577176:	e8 95 55 ff ff       	call   0x56c710
57717b:	83 c4 10             	add    $0x10,%esp
57717e:	85 c0                	test   %eax,%eax
577180:	74 0e                	je     0x577190
577182:	57                   	push   %edi
577183:	e8 d8 46 00 00       	call   0x57b860
577188:	83 c4 04             	add    $0x4,%esp
57718b:	5f                   	pop    %edi
57718c:	8b c6                	mov    %esi,%eax
57718e:	5e                   	pop    %esi
57718f:	c3                   	ret
577190:	56                   	push   %esi
577191:	e8 7a 52 ff ff       	call   0x56c410
577196:	83 c4 04             	add    $0x4,%esp
577199:	33 c0                	xor    %eax,%eax
57719b:	5f                   	pop    %edi
57719c:	5e                   	pop    %esi
57719d:	c3                   	ret
57719e:	68 af 00 00 00       	push   $0xaf
5771a3:	68 08 d2 6b 00       	push   $0x6bd208
5771a8:	68 8e 00 00 00       	push   $0x8e
5771ad:	68 dc 00 00 00       	push   $0xdc
5771b2:	6a 10                	push   $0x10
5771b4:	e8 e7 a2 f2 ff       	call   0x4a14a0
5771b9:	83 c4 14             	add    $0x14,%esp
5771bc:	33 c0                	xor    %eax,%eax
5771be:	5f                   	pop    %edi
5771bf:	5e                   	pop    %esi
5771c0:	c3                   	ret
5771c1:	cc                   	int3
5771c2:	cc                   	int3
5771c3:	cc                   	int3
5771c4:	cc                   	int3
5771c5:	cc                   	int3
5771c6:	cc                   	int3
5771c7:	cc                   	int3
5771c8:	cc                   	int3
5771c9:	cc                   	int3
5771ca:	cc                   	int3
5771cb:	cc                   	int3
5771cc:	cc                   	int3
5771cd:	cc                   	int3
5771ce:	cc                   	int3
5771cf:	cc                   	int3
5771d0:	8b 44 24 04          	mov    0x4(%esp),%eax
5771d4:	56                   	push   %esi
5771d5:	8b 70 14             	mov    0x14(%eax),%esi
5771d8:	85 f6                	test   %esi,%esi
5771da:	74 1b                	je     0x5771f7
5771dc:	8b 46 08             	mov    0x8(%esi),%eax
5771df:	85 c0                	test   %eax,%eax
5771e1:	74 0b                	je     0x5771ee
5771e3:	ff 36                	push   (%esi)
5771e5:	50                   	push   %eax
5771e6:	e8 65 91 f2 ff       	call   0x4a0350
5771eb:	83 c4 08             	add    $0x8,%esp
5771ee:	56                   	push   %esi
5771ef:	e8 6c ca f3 ff       	call   0x4b3c60
5771f4:	83 c4 04             	add    $0x4,%esp
5771f7:	5e                   	pop    %esi
5771f8:	c3                   	ret
5771f9:	cc                   	int3
5771fa:	cc                   	int3
5771fb:	cc                   	int3
5771fc:	cc                   	int3
5771fd:	cc                   	int3
5771fe:	cc                   	int3
5771ff:	cc                   	int3
577200:	83 7c 24 08 03       	cmpl   $0x3,0x8(%esp)
577205:	74 06                	je     0x57720d
577207:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
57720c:	c3                   	ret
57720d:	8b 44 24 10          	mov    0x10(%esp),%eax
577211:	c7 00 a0 02 00 00    	movl   $0x2a0,(%eax)
577217:	b8 01 00 00 00       	mov    $0x1,%eax
57721c:	c3                   	ret
57721d:	cc                   	int3
57721e:	cc                   	int3
57721f:	cc                   	int3
577220:	56                   	push   %esi
577221:	e8 6a ca f3 ff       	call   0x4b3c90
577226:	8b f0                	mov    %eax,%esi
577228:	85 f6                	test   %esi,%esi
57722a:	74 34                	je     0x577260
57722c:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
577230:	ff 74 24 10          	push   0x10(%esp)
577234:	ff 31                	push   (%ecx)
577236:	56                   	push   %esi
577237:	e8 64 5d f6 ff       	call   0x4dcfa0
57723c:	83 c4 0c             	add    $0xc,%esp
57723f:	85 c0                	test   %eax,%eax
577241:	74 1d                	je     0x577260
577243:	56                   	push   %esi
577244:	68 57 03 00 00       	push   $0x357
577249:	ff 74 24 10          	push   0x10(%esp)
57724d:	e8 fe e2 f5 ff       	call   0x4d5550
577252:	83 c4 0c             	add    $0xc,%esp
577255:	85 c0                	test   %eax,%eax
577257:	74 07                	je     0x577260
577259:	b8 01 00 00 00       	mov    $0x1,%eax
57725e:	5e                   	pop    %esi
57725f:	c3                   	ret
577260:	56                   	push   %esi
577261:	e8 fa c9 f3 ff       	call   0x4b3c60
577266:	83 c4 04             	add    $0x4,%esp
577269:	33 c0                	xor    %eax,%eax
57726b:	5e                   	pop    %esi
57726c:	c3                   	ret
57726d:	cc                   	int3
57726e:	cc                   	int3
57726f:	cc                   	int3
577270:	8b 44 24 04          	mov    0x4(%esp),%eax
577274:	56                   	push   %esi
577275:	57                   	push   %edi
577276:	8b 7c 24 10          	mov    0x10(%esp),%edi
57727a:	8b 70 14             	mov    0x14(%eax),%esi
57727d:	85 ff                	test   %edi,%edi
57727f:	74 3a                	je     0x5772bb
577281:	83 3f 00             	cmpl   $0x0,(%edi)
577284:	53                   	push   %ebx
577285:	75 17                	jne    0x57729e
577287:	6a 7f                	push   $0x7f
577289:	68 b8 d2 6b 00       	push   $0x6bd2b8
57728e:	ff 36                	push   (%esi)
577290:	e8 1b 8f f2 ff       	call   0x4a01b0
577295:	83 c4 0c             	add    $0xc,%esp
577298:	89 07                	mov    %eax,(%edi)
57729a:	33 db                	xor    %ebx,%ebx
57729c:	eb 05                	jmp    0x5772a3
57729e:	bb 01 00 00 00       	mov    $0x1,%ebx
5772a3:	ff 36                	push   (%esi)
5772a5:	ff 76 08             	push   0x8(%esi)
5772a8:	ff 37                	push   (%edi)
5772aa:	e8 51 bc 06 00       	call   0x5e2f00
5772af:	83 c4 0c             	add    $0xc,%esp
5772b2:	85 db                	test   %ebx,%ebx
5772b4:	5b                   	pop    %ebx
5772b5:	74 04                	je     0x5772bb
5772b7:	8b 0e                	mov    (%esi),%ecx
5772b9:	01 0f                	add    %ecx,(%edi)
5772bb:	8b 06                	mov    (%esi),%eax
5772bd:	5f                   	pop    %edi
5772be:	5e                   	pop    %esi
5772bf:	c3                   	ret
5772c0:	b8 20 00 00 00       	mov    $0x20,%eax
5772c5:	c3                   	ret
5772c6:	cc                   	int3
5772c7:	cc                   	int3
5772c8:	cc                   	int3
5772c9:	cc                   	int3
5772ca:	cc                   	int3
5772cb:	cc                   	int3
5772cc:	cc                   	int3
5772cd:	cc                   	int3
5772ce:	cc                   	int3
5772cf:	cc                   	int3
5772d0:	8b 44 24 04          	mov    0x4(%esp),%eax
5772d4:	8b 40 14             	mov    0x14(%eax),%eax
5772d7:	85 c0                	test   %eax,%eax
5772d9:	74 09                	je     0x5772e4
5772db:	89 44 24 04          	mov    %eax,0x4(%esp)
5772df:	e9 1c 63 00 00       	jmp    0x57d600
5772e4:	c3                   	ret
5772e5:	cc                   	int3
5772e6:	cc                   	int3
5772e7:	cc                   	int3
5772e8:	cc                   	int3
5772e9:	cc                   	int3
5772ea:	cc                   	int3
5772eb:	cc                   	int3
5772ec:	cc                   	int3
5772ed:	cc                   	int3
5772ee:	cc                   	int3
5772ef:	cc                   	int3
5772f0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5772f4:	8b 41 08             	mov    0x8(%ecx),%eax
5772f7:	8b 40 34             	mov    0x34(%eax),%eax
5772fa:	85 c0                	test   %eax,%eax
5772fc:	74 06                	je     0x577304
5772fe:	89 4c 24 04          	mov    %ecx,0x4(%esp)
577302:	ff e0                	jmp    *%eax
577304:	89 4c 24 04          	mov    %ecx,0x4(%esp)
577308:	e9 03 00 00 00       	jmp    0x577310
57730d:	cc                   	int3
57730e:	cc                   	int3
57730f:	cc                   	int3
577310:	b8 48 00 00 00       	mov    $0x48,%eax
577315:	e8 d6 a1 06 00       	call   0x5e14f0
57731a:	53                   	push   %ebx
57731b:	55                   	push   %ebp
57731c:	56                   	push   %esi
57731d:	57                   	push   %edi
57731e:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
577325:	00
577326:	e8 f5 0a f6 ff       	call   0x4d7e20
57732b:	8b e8                	mov    %eax,%ebp
57732d:	85 ed                	test   %ebp,%ebp
57732f:	0f 84 a1 01 00 00    	je     0x5774d6
577335:	55                   	push   %ebp
577336:	e8 65 0b f6 ff       	call   0x4d7ea0
57733b:	55                   	push   %ebp
57733c:	e8 7f 0a f6 ff       	call   0x4d7dc0
577341:	55                   	push   %ebp
577342:	89 44 24 24          	mov    %eax,0x24(%esp)
577346:	e8 75 0a f6 ff       	call   0x4d7dc0
57734b:	55                   	push   %ebp
57734c:	8b d8                	mov    %eax,%ebx
57734e:	e8 6d 0a f6 ff       	call   0x4d7dc0
577353:	55                   	push   %ebp
577354:	89 44 24 28          	mov    %eax,0x28(%esp)
577358:	e8 63 0a f6 ff       	call   0x4d7dc0
57735d:	83 c4 14             	add    $0x14,%esp
577360:	85 c0                	test   %eax,%eax
577362:	0f 84 6e 01 00 00    	je     0x5774d6
577368:	8b 4c 24 60          	mov    0x60(%esp),%ecx
57736c:	8b 74 24 5c          	mov    0x5c(%esp),%esi
577370:	8d 41 01             	lea    0x1(%ecx),%eax
577373:	99                   	cltd
577374:	2b c2                	sub    %edx,%eax
577376:	8b f8                	mov    %eax,%edi
577378:	d1 ff                	sar    $1,%edi
57737a:	2b cf                	sub    %edi,%ecx
57737c:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
577380:	89 4c 24 60          	mov    %ecx,0x60(%esp)
577384:	75 10                	jne    0x577396
577386:	e8 85 bf f3 ff       	call   0x4b3310
57738b:	89 46 10             	mov    %eax,0x10(%esi)
57738e:	85 c0                	test   %eax,%eax
577390:	0f 84 40 01 00 00    	je     0x5774d6
577396:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
57739a:	75 10                	jne    0x5773ac
57739c:	e8 6f bf f3 ff       	call   0x4b3310
5773a1:	89 46 18             	mov    %eax,0x18(%esi)
5773a4:	85 c0                	test   %eax,%eax
5773a6:	0f 84 2a 01 00 00    	je     0x5774d6
5773ac:	83 7e 14 00          	cmpl   $0x0,0x14(%esi)
5773b0:	75 10                	jne    0x5773c2
5773b2:	e8 59 bf f3 ff       	call   0x4b3310
5773b7:	89 46 14             	mov    %eax,0x14(%esi)
5773ba:	85 c0                	test   %eax,%eax
5773bc:	0f 84 14 01 00 00    	je     0x5774d6
5773c2:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
5773c6:	75 10                	jne    0x5773d8
5773c8:	e8 43 bf f3 ff       	call   0x4b3310
5773cd:	89 46 1c             	mov    %eax,0x1c(%esi)
5773d0:	85 c0                	test   %eax,%eax
5773d2:	0f 84 fe 00 00 00    	je     0x5774d6