407193:	8d 45 ec             	lea    -0x14(%ebp),%eax
407196:	50                   	push   %eax
407197:	8d 4f 18             	lea    0x18(%edi),%ecx
40719a:	e8 e5 cd ff ff       	call   0x403f84
40719f:	8d 45 08             	lea    0x8(%ebp),%eax
4071a2:	c7 45 08 01 00 00 00 	movl   $0x1,0x8(%ebp)
4071a9:	50                   	push   %eax
4071aa:	8d 4f 28             	lea    0x28(%edi),%ecx
4071ad:	e8 10 c3 ff ff       	call   0x4034c2
4071b2:	8b 77 20             	mov    0x20(%edi),%esi
4071b5:	4e                   	dec    %esi
4071b6:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4071b9:	e8 a6 e8 ff ff       	call   0x405a64
4071be:	5f                   	pop    %edi
4071bf:	8b c6                	mov    %esi,%eax
4071c1:	5e                   	pop    %esi
4071c2:	8b e5                	mov    %ebp,%esp
4071c4:	5d                   	pop    %ebp
4071c5:	c2 04 00             	ret    $0x4
4071c8:	55                   	push   %ebp
4071c9:	8b ec                	mov    %esp,%ebp
4071cb:	8b 45 08             	mov    0x8(%ebp),%eax
4071ce:	3b 05 a0 72 4c 00    	cmp    0x4c72a0,%eax
4071d4:	7f 11                	jg     0x4071e7
4071d6:	85 c0                	test   %eax,%eax
4071d8:	7e 0d                	jle    0x4071e7
4071da:	c1 e0 04             	shl    $0x4,%eax
4071dd:	03 05 dc 72 4c 00    	add    0x4c72dc,%eax
4071e3:	5d                   	pop    %ebp
4071e4:	c2 04 00             	ret    $0x4
4071e7:	33 c0                	xor    %eax,%eax
4071e9:	eb f8                	jmp    0x4071e3
4071eb:	55                   	push   %ebp
4071ec:	8b ec                	mov    %esp,%ebp
4071ee:	83 e4 f8             	and    $0xfffffff8,%esp
4071f1:	b8 3c 00 01 00       	mov    $0x1003c,%eax
4071f6:	e8 95 a9 02 00       	call   0x431b90
4071fb:	8b 45 08             	mov    0x8(%ebp),%eax
4071fe:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
407202:	53                   	push   %ebx
407203:	33 db                	xor    %ebx,%ebx
407205:	a3 94 72 4c 00       	mov    %eax,0x4c7294
40720a:	56                   	push   %esi
40720b:	b8 68 f9 48 00       	mov    $0x48f968,%eax
407210:	66 89 1d 90 72 4c 00 	mov    %bx,0x4c7290
407217:	57                   	push   %edi
407218:	88 1d 92 72 4c 00    	mov    %bl,0x4c7292
40721e:	89 1d 98 72 4c 00    	mov    %ebx,0x4c7298
407224:	89 1d 9c 72 4c 00    	mov    %ebx,0x4c729c
40722a:	89 1d a0 72 4c 00    	mov    %ebx,0x4c72a0
407230:	89 1d a4 72 4c 00    	mov    %ebx,0x4c72a4
407236:	a3 a8 72 4c 00       	mov    %eax,0x4c72a8
40723b:	89 1d ac 72 4c 00    	mov    %ebx,0x4c72ac
407241:	89 1d b0 72 4c 00    	mov    %ebx,0x4c72b0
407247:	89 1d b4 72 4c 00    	mov    %ebx,0x4c72b4
40724d:	c7 05 b8 72 4c 00 88 	movl   $0x48fb88,0x4c72b8
407254:	fb 48 00
407257:	89 1d bc 72 4c 00    	mov    %ebx,0x4c72bc
40725d:	89 1d c0 72 4c 00    	mov    %ebx,0x4c72c0
407263:	89 1d c4 72 4c 00    	mov    %ebx,0x4c72c4
407269:	a3 c8 72 4c 00       	mov    %eax,0x4c72c8
40726e:	89 1d cc 72 4c 00    	mov    %ebx,0x4c72cc
407274:	89 1d d0 72 4c 00    	mov    %ebx,0x4c72d0
40727a:	89 1d d4 72 4c 00    	mov    %ebx,0x4c72d4
407280:	89 1d dc 72 4c 00    	mov    %ebx,0x4c72dc
407286:	c7 05 e0 72 4c 00 18 	movl   $0x48f918,0x4c72e0
40728d:	f9 48 00
407290:	89 1d e4 72 4c 00    	mov    %ebx,0x4c72e4
407296:	89 1d e8 72 4c 00    	mov    %ebx,0x4c72e8
40729c:	89 1d ec 72 4c 00    	mov    %ebx,0x4c72ec
4072a2:	c7 05 f0 72 4c 00 66 	movl   $0x66,0x4c72f0
4072a9:	00 00 00
4072ac:	e8 16 05 00 00       	call   0x4077c7
4072b1:	8d 4c 24 28          	lea    0x28(%esp),%ecx
4072b5:	e8 aa d5 ff ff       	call   0x404864
4072ba:	8d 54 24 28          	lea    0x28(%esp),%edx
4072be:	8b ca                	mov    %edx,%ecx
4072c0:	e8 8a 94 01 00       	call   0x42074f
4072c5:	68 50 23 49 00       	push   $0x492350
4072ca:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
4072ce:	e8 38 0b 00 00       	call   0x407e0b
4072d3:	8d 44 24 28          	lea    0x28(%esp),%eax
4072d7:	b9 c8 72 4c 00       	mov    $0x4c72c8,%ecx
4072dc:	50                   	push   %eax
4072dd:	e8 a2 cc ff ff       	call   0x403f84
4072e2:	8d 4c 24 18          	lea    0x18(%esp),%ecx
4072e6:	e8 dc 04 00 00       	call   0x4077c7
4072eb:	8d 4c 24 18          	lea    0x18(%esp),%ecx
4072ef:	e8 f8 0b 00 00       	call   0x407eec
4072f4:	8d 44 24 10          	lea    0x10(%esp),%eax
4072f8:	33 f6                	xor    %esi,%esi
4072fa:	50                   	push   %eax
4072fb:	6a 01                	push   $0x1
4072fd:	56                   	push   %esi
4072fe:	68 f0 1c 49 00       	push   $0x491cf0
407303:	68 01 00 00 80       	push   $0x80000001
407308:	ff 15 18 f0 48 00    	call   *0x48f018
40730e:	85 c0                	test   %eax,%eax
407310:	0f 84 c4 79 03 00    	je     0x43ecda
407316:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40731a:	e8 45 e7 ff ff       	call   0x405a64
40731f:	8d 4c 24 28          	lea    0x28(%esp),%ecx
407323:	e8 3c e7 ff ff       	call   0x405a64
407328:	5f                   	pop    %edi
407329:	5e                   	pop    %esi
40732a:	b8 90 72 4c 00       	mov    $0x4c7290,%eax
40732f:	5b                   	pop    %ebx
407330:	8b e5                	mov    %ebp,%esp
407332:	5d                   	pop    %ebp
407333:	c2 08 00             	ret    $0x8
407336:	56                   	push   %esi
407337:	b9 90 72 4c 00       	mov    $0x4c7290,%ecx
40733c:	e8 fa 00 00 00       	call   0x40743b
407341:	be c8 72 4c 00       	mov    $0x4c72c8,%esi
407346:	8b ce                	mov    %esi,%ecx
407348:	e8 d3 cb ff ff       	call   0x403f20
40734d:	b9 e0 72 4c 00       	mov    $0x4c72e0,%ecx
407352:	e8 12 c2 ff ff       	call   0x403569
407357:	8b ce                	mov    %esi,%ecx
407359:	e8 c6 cc ff ff       	call   0x404024
40735e:	b9 b8 72 4c 00       	mov    $0x4c72b8,%ecx
407363:	e8 19 ee 00 00       	call   0x416181
407368:	b9 a8 72 4c 00       	mov    $0x4c72a8,%ecx
40736d:	5e                   	pop    %esi
40736e:	e9 b1 cc ff ff       	jmp    0x404024
407373:	55                   	push   %ebp
407374:	8b ec                	mov    %esp,%ebp
407376:	56                   	push   %esi
407377:	8b f1                	mov    %ecx,%esi
407379:	57                   	push   %edi
40737a:	33 ff                	xor    %edi,%edi
40737c:	39 7e 08             	cmp    %edi,0x8(%esi)
40737f:	74 55                	je     0x4073d6
407381:	8b 46 0c             	mov    0xc(%esi),%eax
407384:	8b 00                	mov    (%eax),%eax
407386:	66 39 38             	cmp    %di,(%eax)
407389:	74 3f                	je     0x4073ca
40738b:	6a 10                	push   $0x10
40738d:	e8 64 9c 01 00       	call   0x420ff6
407392:	59                   	pop    %ecx
407393:	8b 4e 0c             	mov    0xc(%esi),%ecx
407396:	89 41 0c             	mov    %eax,0xc(%ecx)
407399:	89 46 0c             	mov    %eax,0xc(%esi)
40739c:	8b 46 0c             	mov    0xc(%esi),%eax
40739f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4073a2:	89 78 0c             	mov    %edi,0xc(%eax)
4073a5:	e8 1c 8b 01 00       	call   0x41fec6
4073aa:	8b 4e 0c             	mov    0xc(%esi),%ecx
4073ad:	5f                   	pop    %edi
4073ae:	89 01                	mov    %eax,(%ecx)
4073b0:	8b 4e 0c             	mov    0xc(%esi),%ecx
4073b3:	8b 45 08             	mov    0x8(%ebp),%eax
4073b6:	89 41 04             	mov    %eax,0x4(%ecx)
4073b9:	8b 4e 0c             	mov    0xc(%esi),%ecx
4073bc:	8b 45 10             	mov    0x10(%ebp),%eax
4073bf:	89 41 08             	mov    %eax,0x8(%ecx)
4073c2:	ff 46 10             	incl   0x10(%esi)
4073c5:	5e                   	pop    %esi
4073c6:	5d                   	pop    %ebp
4073c7:	c2 0c 00             	ret    $0xc
4073ca:	50                   	push   %eax
4073cb:	e8 9c 9c 01 00       	call   0x42106c
4073d0:	ff 4e 10             	decl   0x10(%esi)
4073d3:	59                   	pop    %ecx
4073d4:	eb c6                	jmp    0x40739c
4073d6:	6a 10                	push   $0x10
4073d8:	e8 19 9c 01 00       	call   0x420ff6
4073dd:	89 46 08             	mov    %eax,0x8(%esi)
4073e0:	89 46 0c             	mov    %eax,0xc(%esi)
4073e3:	eb ee                	jmp    0x4073d3
4073e5:	55                   	push   %ebp
4073e6:	8b ec                	mov    %esp,%ebp
4073e8:	b8 58 00 01 00       	mov    $0x10058,%eax
4073ed:	e8 9e a7 02 00       	call   0x431b90
4073f2:	a0 84 62 4c 00       	mov    0x4c6284,%al
4073f7:	56                   	push   %esi
4073f8:	8b 75 08             	mov    0x8(%ebp),%esi
4073fb:	57                   	push   %edi
4073fc:	8b f9                	mov    %ecx,%edi
4073fe:	88 47 02             	mov    %al,0x2(%edi)
407401:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
407405:	0f 84 40 7a 03 00    	je     0x43ee4b
40740b:	8b d6                	mov    %esi,%edx
40740d:	8b ce                	mov    %esi,%ecx
40740f:	e8 9a d4 ff ff       	call   0x4048ae
407414:	8b d6                	mov    %esi,%edx
407416:	8b ce                	mov    %esi,%ecx
407418:	e8 b8 95 01 00       	call   0x4209d5
40741d:	ff 75 0c             	push   0xc(%ebp)
407420:	51                   	push   %ecx
407421:	56                   	push   %esi
407422:	8b cf                	mov    %edi,%ecx
407424:	e8 42 fd ff ff       	call   0x40716b
407429:	59                   	pop    %ecx
40742a:	50                   	push   %eax
40742b:	56                   	push   %esi
40742c:	8b cf                	mov    %edi,%ecx
40742e:	e8 97 f5 ff ff       	call   0x4069ca
407433:	5f                   	pop    %edi
407434:	5e                   	pop    %esi
407435:	8b e5                	mov    %ebp,%esp
407437:	5d                   	pop    %ebp
407438:	c2 10 00             	ret    $0x10
40743b:	53                   	push   %ebx
40743c:	57                   	push   %edi
40743d:	8b f9                	mov    %ecx,%edi
40743f:	8b 5f 08             	mov    0x8(%edi),%ebx
407442:	85 db                	test   %ebx,%ebx
407444:	74 1a                	je     0x407460
407446:	56                   	push   %esi
407447:	ff 33                	push   (%ebx)
407449:	8b 73 0c             	mov    0xc(%ebx),%esi
40744c:	e8 1b 9c 01 00       	call   0x42106c
407451:	53                   	push   %ebx
407452:	e8 15 9c 01 00       	call   0x42106c
407457:	8b de                	mov    %esi,%ebx
407459:	59                   	pop    %ecx
40745a:	59                   	pop    %ecx
40745b:	85 f6                	test   %esi,%esi
40745d:	75 e8                	jne    0x407447
40745f:	5e                   	pop    %esi
407460:	8b 4f 4c             	mov    0x4c(%edi),%ecx
407463:	33 db                	xor    %ebx,%ebx
407465:	85 c9                	test   %ecx,%ecx
407467:	74 0d                	je     0x407476
407469:	8d 41 fc             	lea    -0x4(%ecx),%eax
40746c:	39 18                	cmp    %ebx,(%eax)
40746e:	74 44                	je     0x4074b4
407470:	8b 01                	mov    (%ecx),%eax
407472:	6a 03                	push   $0x3
407474:	ff 10                	call   *(%eax)
407476:	ff 77 14             	push   0x14(%edi)
407479:	e8 ee 9b 01 00       	call   0x42106c
40747e:	59                   	pop    %ecx
40747f:	8d 4f 18             	lea    0x18(%edi),%ecx
407482:	89 5f 08             	mov    %ebx,0x8(%edi)
407485:	89 5f 0c             	mov    %ebx,0xc(%edi)
407488:	89 5f 10             	mov    %ebx,0x10(%edi)
40748b:	89 5f 14             	mov    %ebx,0x14(%edi)
40748e:	89 5f 4c             	mov    %ebx,0x4c(%edi)
407491:	66 89 1f             	mov    %bx,(%edi)
407494:	e8 87 ca ff ff       	call   0x403f20
407499:	8d 4f 28             	lea    0x28(%edi),%ecx
40749c:	e8 b3 ec 00 00       	call   0x416154
4074a1:	39 5f 58             	cmp    %ebx,0x58(%edi)
4074a4:	0f 87 26 7a 03 00    	ja     0x43eed0
4074aa:	8d 4f 50             	lea    0x50(%edi),%ecx
4074ad:	5f                   	pop    %edi
4074ae:	5b                   	pop    %ebx
4074af:	e9 9f c0 ff ff       	jmp    0x403553
4074b4:	50                   	push   %eax
4074b5:	e8 b2 9b 01 00       	call   0x42106c
4074ba:	59                   	pop    %ecx
4074bb:	eb b9                	jmp    0x407476
4074bd:	55                   	push   %ebp
4074be:	8b ec                	mov    %esp,%ebp
4074c0:	51                   	push   %ecx
4074c1:	53                   	push   %ebx
4074c2:	8b 5d 08             	mov    0x8(%ebp),%ebx
4074c5:	56                   	push   %esi
4074c6:	8b f1                	mov    %ecx,%esi
4074c8:	3b f3                	cmp    %ebx,%esi
4074ca:	0f 84 af 00 00 00    	je     0x40757f
4074d0:	57                   	push   %edi
4074d1:	e8 0a 01 00 00       	call   0x4075e0
4074d6:	8b 43 08             	mov    0x8(%ebx),%eax
4074d9:	39 46 0c             	cmp    %eax,0xc(%esi)
4074dc:	73 34                	jae    0x407512
4074de:	6a 08                	push   $0x8
4074e0:	5a                   	pop    %edx
4074e1:	3b c2                	cmp    %edx,%eax
4074e3:	0f 83 d4 00 00 00    	jae    0x4075bd
4074e9:	89 56 0c             	mov    %edx,0xc(%esi)
4074ec:	33 c9                	xor    %ecx,%ecx
4074ee:	8b c2                	mov    %edx,%eax
4074f0:	6a 04                	push   $0x4
4074f2:	5a                   	pop    %edx
4074f3:	f7 e2                	mul    %edx
4074f5:	0f 90 c1             	seto   %cl
4074f8:	f7 d9                	neg    %ecx
4074fa:	0b c8                	or     %eax,%ecx
4074fc:	51                   	push   %ecx
4074fd:	e8 f4 9a 01 00       	call   0x420ff6
407502:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
407506:	8b f8                	mov    %eax,%edi
407508:	59                   	pop    %ecx
407509:	0f 85 de 79 03 00    	jne    0x43eeed
40750f:	89 7e 04             	mov    %edi,0x4(%esi)
407512:	8b 43 08             	mov    0x8(%ebx),%eax
407515:	33 db                	xor    %ebx,%ebx
407517:	89 46 08             	mov    %eax,0x8(%esi)
40751a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40751d:	85 c0                	test   %eax,%eax
40751f:	74 5d                	je     0x40757e
407521:	6a 0c                	push   $0xc
407523:	e8 ce 9a 01 00       	call   0x420ff6
407528:	8b f8                	mov    %eax,%edi
40752a:	59                   	pop    %ecx
40752b:	85 ff                	test   %edi,%edi
40752d:	0f 84 9b 00 00 00    	je     0x4075ce
407533:	8b 45 08             	mov    0x8(%ebp),%eax
407536:	8b 48 04             	mov    0x4(%eax),%ecx
407539:	8b 1c 99             	mov    (%ecx,%ebx,4),%ebx
40753c:	66 8b 4b 08          	mov    0x8(%ebx),%cx
407540:	66 89 4f 08          	mov    %cx,0x8(%edi)
407544:	0f b7 47 08          	movzwl 0x8(%edi),%eax
407548:	66 8b 4b 0a          	mov    0xa(%ebx),%cx
40754c:	66 89 4f 0a          	mov    %cx,0xa(%edi)
407550:	66 83 f8 3f          	cmp    $0x3f,%ax
407554:	7e 33                	jle    0x407589
407556:	6a 10                	push   $0x10
407558:	59                   	pop    %ecx
407559:	66 3b c1             	cmp    %cx,%ax
40755c:	0f 84 99 79 03 00    	je     0x43eefb
407562:	66 83 f8 20          	cmp    $0x20,%ax
407566:	74 5c                	je     0x4075c4
407568:	8b 03                	mov    (%ebx),%eax
40756a:	89 07                	mov    %eax,(%edi)
40756c:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40756f:	8b 46 04             	mov    0x4(%esi),%eax
407572:	89 3c 98             	mov    %edi,(%eax,%ebx,4)
407575:	43                   	inc    %ebx
407576:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407579:	3b 5e 08             	cmp    0x8(%esi),%ebx
40757c:	72 a3                	jb     0x407521
40757e:	5f                   	pop    %edi
40757f:	8b c6                	mov    %esi,%eax
407581:	5e                   	pop    %esi
407582:	5b                   	pop    %ebx
407583:	8b e5                	mov    %ebp,%esp
407585:	5d                   	pop    %ebp
407586:	c2 04 00             	ret    $0x4
407589:	66 83 f8 30          	cmp    $0x30,%ax
40758d:	7c c7                	jl     0x407556
40758f:	6a 10                	push   $0x10
407591:	58                   	pop    %eax
407592:	50                   	push   %eax
407593:	e8 5e 9a 01 00       	call   0x420ff6
407598:	8b d0                	mov    %eax,%edx
40759a:	59                   	pop    %ecx
40759b:	85 d2                	test   %edx,%edx
40759d:	74 2b                	je     0x4075ca
40759f:	8b 03                	mov    (%ebx),%eax
4075a1:	8b 08                	mov    (%eax),%ecx
4075a3:	89 0a                	mov    %ecx,(%edx)
4075a5:	8b 48 04             	mov    0x4(%eax),%ecx
4075a8:	89 4a 04             	mov    %ecx,0x4(%edx)
4075ab:	8b 48 08             	mov    0x8(%eax),%ecx
4075ae:	89 4a 08             	mov    %ecx,0x8(%edx)
4075b1:	8b 40 0c             	mov    0xc(%eax),%eax