415222:	8b f1                	mov    %ecx,%esi
415224:	89 75 f0             	mov    %esi,-0x10(%ebp)
415227:	c7 45 fc 0a 00 00 00 	movl   $0xa,-0x4(%ebp)
41522e:	e8 be fc ff ff       	call   0x414ef1
415233:	8b 86 34 4b 00 00    	mov    0x4b34(%esi),%eax
415239:	85 c0                	test   %eax,%eax
41523b:	74 07                	je     0x415244
41523d:	50                   	push   %eax
41523e:	e8 9f 4c 00 00       	call   0x419ee2
415243:	59                   	pop    %ecx
415244:	ff 76 14             	push   0x14(%esi)
415247:	e8 56 bc ff ff       	call   0x410ea2
41524c:	ff 76 20             	push   0x20(%esi)
41524f:	e8 a7 71 00 00       	call   0x41c3fb
415254:	59                   	pop    %ecx
415255:	8b 4e 18             	mov    0x18(%esi),%ecx
415258:	85 c9                	test   %ecx,%ecx
41525a:	74 07                	je     0x415263
41525c:	6a 03                	push   $0x3
41525e:	e8 ae e7 ff ff       	call   0x413a11
415263:	8d 8e e0 e6 00 00    	lea    0xe6e0(%esi),%ecx
415269:	e8 a1 d3 ff ff       	call   0x41260f
41526e:	8d 8e d0 e6 00 00    	lea    0xe6d0(%esi),%ecx
415274:	e8 96 d3 ff ff       	call   0x41260f
415279:	8d 8e c0 e6 00 00    	lea    0xe6c0(%esi),%ecx
41527f:	e8 8b d3 ff ff       	call   0x41260f
415284:	8d 8e b0 e6 00 00    	lea    0xe6b0(%esi),%ecx
41528a:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
41528e:	e8 41 44 ff ff       	call   0x4096d4
415293:	8d 8e 78 e6 00 00    	lea    0xe678(%esi),%ecx
415299:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
41529d:	e8 29 57 ff ff       	call   0x40a9cb
4152a2:	8d 8e 5c e3 00 00    	lea    0xe35c(%esi),%ecx
4152a8:	e8 72 c9 ff ff       	call   0x411c1f
4152ad:	8d 8e 38 4b 00 00    	lea    0x4b38(%esi),%ecx
4152b3:	e8 98 ce ff ff       	call   0x412150
4152b8:	8d 4e 44             	lea    0x44(%esi),%ecx
4152bb:	e8 4f d3 ff ff       	call   0x41260f
4152c0:	8d 4e 34             	lea    0x34(%esi),%ecx
4152c3:	e8 47 d3 ff ff       	call   0x41260f
4152c8:	8d 4e 24             	lea    0x24(%esi),%ecx
4152cb:	e8 3f d3 ff ff       	call   0x41260f
4152d0:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4152d4:	8d 4e 04             	lea    0x4(%esi),%ecx
4152d7:	e8 f8 43 ff ff       	call   0x4096d4
4152dc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4152df:	5e                   	pop    %esi
4152e0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4152e7:	c9                   	leave
4152e8:	c3                   	ret
4152e9:	8b c1                	mov    %ecx,%eax
4152eb:	33 c9                	xor    %ecx,%ecx
4152ed:	89 08                	mov    %ecx,(%eax)
4152ef:	89 48 04             	mov    %ecx,0x4(%eax)
4152f2:	89 48 08             	mov    %ecx,0x8(%eax)
4152f5:	89 48 0c             	mov    %ecx,0xc(%eax)
4152f8:	89 48 18             	mov    %ecx,0x18(%eax)
4152fb:	89 48 1c             	mov    %ecx,0x1c(%eax)
4152fe:	89 48 20             	mov    %ecx,0x20(%eax)
415301:	89 48 24             	mov    %ecx,0x24(%eax)
415304:	89 48 28             	mov    %ecx,0x28(%eax)
415307:	89 48 2c             	mov    %ecx,0x2c(%eax)
41530a:	89 48 30             	mov    %ecx,0x30(%eax)
41530d:	89 48 34             	mov    %ecx,0x34(%eax)
415310:	89 48 10             	mov    %ecx,0x10(%eax)
415313:	89 48 58             	mov    %ecx,0x58(%eax)
415316:	89 48 14             	mov    %ecx,0x14(%eax)
415319:	c3                   	ret
41531a:	53                   	push   %ebx
41531b:	56                   	push   %esi
41531c:	8b 74 24 0c          	mov    0xc(%esp),%esi
415320:	57                   	push   %edi
415321:	33 db                	xor    %ebx,%ebx
415323:	33 ff                	xor    %edi,%edi
415325:	39 5e 04             	cmp    %ebx,0x4(%esi)
415328:	76 19                	jbe    0x415343
41532a:	8b 06                	mov    (%esi),%eax
41532c:	8d 0c 03             	lea    (%ebx,%eax,1),%ecx
41532f:	51                   	push   %ecx
415330:	8b 08                	mov    (%eax),%ecx
415332:	e8 33 f2 ff ff       	call   0x41456a
415337:	47                   	inc    %edi
415338:	81 c3 e4 4a 00 00    	add    $0x4ae4,%ebx
41533e:	3b 7e 04             	cmp    0x4(%esi),%edi
415341:	72 e7                	jb     0x41532a
415343:	5f                   	pop    %edi
415344:	5e                   	pop    %esi
415345:	5b                   	pop    %ebx
415346:	c2 04 00             	ret    $0x4
415349:	53                   	push   %ebx
41534a:	33 db                	xor    %ebx,%ebx
41534c:	56                   	push   %esi
41534d:	8b f1                	mov    %ecx,%esi
41534f:	38 5c 24 0c          	cmp    %bl,0xc(%esp)
415353:	75 32                	jne    0x415387
415355:	68 ae 01 00 00       	push   $0x1ae
41535a:	8d 86 c0 e4 00 00    	lea    0xe4c0(%esi),%eax
415360:	53                   	push   %ebx
415361:	50                   	push   %eax
415362:	88 9e 74 e6 00 00    	mov    %bl,0xe674(%esi)
415368:	e8 93 4e 00 00       	call   0x41a200
41536d:	83 c4 0c             	add    $0xc,%esp
415370:	8b ce                	mov    %esi,%ecx
415372:	c7 86 bc e4 00 00 02 	movl   $0x2,0xe4bc(%esi)
415379:	00 00 00
41537c:	89 9e 70 e6 00 00    	mov    %ebx,0xe670(%esi)
415382:	e8 6a fb ff ff       	call   0x414ef1
415387:	88 9e 39 4c 00 00    	mov    %bl,0x4c39(%esi)
41538d:	5e                   	pop    %esi
41538e:	5b                   	pop    %ebx
41538f:	c2 04 00             	ret    $0x4
415392:	53                   	push   %ebx
415393:	8b d9                	mov    %ecx,%ebx
415395:	81 7b 48 ff 1f 00 00 	cmpl   $0x1fff,0x48(%ebx)
41539c:	56                   	push   %esi
41539d:	57                   	push   %edi
41539e:	72 05                	jb     0x4153a5
4153a0:	e8 c8 fb ff ff       	call   0x414f6d
4153a5:	8b 43 74             	mov    0x74(%ebx),%eax
4153a8:	8b 4b 70             	mov    0x70(%ebx),%ecx
4153ab:	8b 74 24 10          	mov    0x10(%esp),%esi
4153af:	3b c1                	cmp    %ecx,%eax
4153b1:	74 12                	je     0x4153c5
4153b3:	2b c1                	sub    %ecx,%eax
4153b5:	23 83 f8 e6 00 00    	and    0xe6f8(%ebx),%eax
4153bb:	3b 46 04             	cmp    0x4(%esi),%eax
4153be:	77 05                	ja     0x4153c5
4153c0:	33 c0                	xor    %eax,%eax
4153c2:	40                   	inc    %eax
4153c3:	eb 02                	jmp    0x4153c7
4153c5:	33 c0                	xor    %eax,%eax
4153c7:	88 46 0d             	mov    %al,0xd(%esi)
4153ca:	8b 43 70             	mov    0x70(%ebx),%eax
4153cd:	03 46 04             	add    0x4(%esi),%eax
4153d0:	83 ec 10             	sub    $0x10,%esp
4153d3:	23 83 f8 e6 00 00    	and    0xe6f8(%ebx),%eax
4153d9:	8b fc                	mov    %esp,%edi
4153db:	89 46 04             	mov    %eax,0x4(%esi)
4153de:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4153df:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4153e0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4153e1:	8d 4b 44             	lea    0x44(%ebx),%ecx
4153e4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4153e5:	e8 5c f1 ff ff       	call   0x414546
4153ea:	5f                   	pop    %edi
4153eb:	5e                   	pop    %esi
4153ec:	b0 01                	mov    $0x1,%al
4153ee:	5b                   	pop    %ebx
4153ef:	c2 04 00             	ret    $0x4
4153f2:	53                   	push   %ebx
4153f3:	56                   	push   %esi
4153f4:	33 db                	xor    %ebx,%ebx
4153f6:	57                   	push   %edi
4153f7:	8b f1                	mov    %ecx,%esi
4153f9:	38 5c 24 10          	cmp    %bl,0x10(%esp)
4153fd:	75 57                	jne    0x415456
4153ff:	6a 10                	push   $0x10
415401:	8d 46 54             	lea    0x54(%esi),%eax
415404:	53                   	push   %ebx
415405:	50                   	push   %eax
415406:	e8 f5 4d 00 00       	call   0x41a200
41540b:	68 9c 4a 00 00       	push   $0x4a9c
415410:	8d 86 94 00 00 00    	lea    0x94(%esi),%eax
415416:	53                   	push   %ebx
415417:	50                   	push   %eax
415418:	89 5e 64             	mov    %ebx,0x64(%esi)
41541b:	89 5e 68             	mov    %ebx,0x68(%esi)
41541e:	89 5e 6c             	mov    %ebx,0x6c(%esi)
415421:	e8 da 4d 00 00       	call   0x41a200
415426:	8b 86 f4 e6 00 00    	mov    0xe6f4(%esi),%eax
41542c:	b9 00 00 40 00       	mov    $0x400000,%ecx
415431:	83 c4 18             	add    $0x18,%esp
415434:	89 5e 74             	mov    %ebx,0x74(%esi)
415437:	89 5e 70             	mov    %ebx,0x70(%esi)
41543a:	3b c1                	cmp    %ecx,%eax
41543c:	72 02                	jb     0x415440
41543e:	8b c1                	mov    %ecx,%eax
415440:	8b 8e f8 e6 00 00    	mov    0xe6f8(%esi),%ecx
415446:	23 c8                	and    %eax,%ecx
415448:	89 8e 30 4b 00 00    	mov    %ecx,0x4b30(%esi)
41544e:	8d 4e 44             	lea    0x44(%esi),%ecx
415451:	e8 23 b6 ff ff       	call   0x410a79
415456:	6a 14                	push   $0x14
415458:	89 5e 08             	mov    %ebx,0x8(%esi)
41545b:	89 5e 04             	mov    %ebx,0x4(%esi)
41545e:	8d be 80 00 00 00    	lea    0x80(%esi),%edi
415464:	53                   	push   %ebx
415465:	57                   	push   %edi
415466:	89 9e 50 4c 00 00    	mov    %ebx,0x4c50(%esi)
41546c:	89 9e 54 4c 00 00    	mov    %ebx,0x4c54(%esi)
415472:	89 5e 78             	mov    %ebx,0x78(%esi)
415475:	89 5e 7c             	mov    %ebx,0x7c(%esi)
415478:	e8 83 4d 00 00       	call   0x41a200
41547d:	83 0f ff             	orl    $0xffffffff,(%edi)
415480:	83 c4 0c             	add    $0xc,%esp
415483:	ff 74 24 10          	push   0x10(%esp)
415487:	8b ce                	mov    %esi,%ecx
415489:	88 9e 39 4c 00 00    	mov    %bl,0x4c39(%esi)
41548f:	e8 b5 fe ff ff       	call   0x415349
415494:	5f                   	pop    %edi
415495:	5e                   	pop    %esi
415496:	5b                   	pop    %ebx
415497:	c2 04 00             	ret    $0x4
41549a:	55                   	push   %ebp
41549b:	8b ec                	mov    %esp,%ebp
41549d:	83 ec 1c             	sub    $0x1c,%esp
4154a0:	8b 45 08             	mov    0x8(%ebp),%eax
4154a3:	53                   	push   %ebx
4154a4:	56                   	push   %esi
4154a5:	57                   	push   %edi
4154a6:	8b b8 d4 4a 00 00    	mov    0x4ad4(%eax),%edi
4154ac:	8b 80 d8 4a 00 00    	mov    0x4ad8(%eax),%eax
4154b2:	6b c0 0c             	imul   $0xc,%eax,%eax
4154b5:	03 c7                	add    %edi,%eax
4154b7:	8b f1                	mov    %ecx,%esi
4154b9:	89 45 f4             	mov    %eax,-0xc(%ebp)
4154bc:	3b f8                	cmp    %eax,%edi
4154be:	e9 dd 04 00 00       	jmp    0x4159a0
4154c3:	8b 86 f8 e6 00 00    	mov    0xe6f8(%esi),%eax
4154c9:	21 46 70             	and    %eax,0x70(%esi)
4154cc:	8b 96 30 4b 00 00    	mov    0x4b30(%esi),%edx
4154d2:	8b 4e 70             	mov    0x70(%esi),%ecx
4154d5:	8b da                	mov    %edx,%ebx
4154d7:	2b d9                	sub    %ecx,%ebx
4154d9:	23 d8                	and    %eax,%ebx
4154db:	81 fb 04 10 00 00    	cmp    $0x1004,%ebx
4154e1:	73 31                	jae    0x415514
4154e3:	3b d1                	cmp    %ecx,%edx
4154e5:	74 2d                	je     0x415514
4154e7:	8b ce                	mov    %esi,%ecx
4154e9:	e8 7f fa ff ff       	call   0x414f6d
4154ee:	8b 86 54 4c 00 00    	mov    0x4c54(%esi),%eax
4154f4:	3b 86 44 4c 00 00    	cmp    0x4c44(%esi),%eax
4154fa:	0f 8f b2 04 00 00    	jg     0x4159b2
415500:	7c 12                	jl     0x415514
415502:	8b 86 50 4c 00 00    	mov    0x4c50(%esi),%eax
415508:	3b 86 40 4c 00 00    	cmp    0x4c40(%esi),%eax
41550e:	0f 87 9e 04 00 00    	ja     0x4159b2
415514:	8b 07                	mov    (%edi),%eax
415516:	85 c0                	test   %eax,%eax
415518:	75 55                	jne    0x41556f
41551a:	66 83 7f 04 03       	cmpw   $0x3,0x4(%edi)
41551f:	75 25                	jne    0x415546
415521:	8b 8e f4 e6 00 00    	mov    0xe6f4(%esi),%ecx
415527:	8b 46 70             	mov    0x70(%esi),%eax
41552a:	83 e9 04             	sub    $0x4,%ecx
41552d:	3b c1                	cmp    %ecx,%eax
41552f:	73 15                	jae    0x415546
415531:	8b 57 08             	mov    0x8(%edi),%edx
415534:	8b 8e 34 4b 00 00    	mov    0x4b34(%esi),%ecx
41553a:	89 14 08             	mov    %edx,(%eax,%ecx,1)
41553d:	83 46 70 04          	addl   $0x4,0x70(%esi)
415541:	e9 51 04 00 00       	jmp    0x415997
415546:	33 c0                	xor    %eax,%eax
415548:	8b 4e 70             	mov    0x70(%esi),%ecx
41554b:	23 8e f8 e6 00 00    	and    0xe6f8(%esi),%ecx
415551:	8a 5c 07 08          	mov    0x8(%edi,%eax,1),%bl
415555:	8b 96 34 4b 00 00    	mov    0x4b34(%esi),%edx
41555b:	88 1c 11             	mov    %bl,(%ecx,%edx,1)
41555e:	ff 46 70             	incl   0x70(%esi)
415561:	0f b7 4f 04          	movzwl 0x4(%edi),%ecx
415565:	40                   	inc    %eax
415566:	3b c1                	cmp    %ecx,%eax
415568:	76 de                	jbe    0x415548
41556a:	e9 28 04 00 00       	jmp    0x415997
41556f:	83 f8 01             	cmp    $0x1,%eax
415572:	0f 85 78 01 00 00    	jne    0x4156f0
415578:	8b 47 08             	mov    0x8(%edi),%eax
41557b:	8b 4e 5c             	mov    0x5c(%esi),%ecx
41557e:	89 4e 60             	mov    %ecx,0x60(%esi)
415581:	8b 4e 58             	mov    0x58(%esi),%ecx
415584:	89 4e 5c             	mov    %ecx,0x5c(%esi)
415587:	8b 4e 54             	mov    0x54(%esi),%ecx
41558a:	89 46 54             	mov    %eax,0x54(%esi)
41558d:	89 4e 58             	mov    %ecx,0x58(%esi)
415590:	0f b7 47 04          	movzwl 0x4(%edi),%eax
415594:	8b 4e 70             	mov    0x70(%esi),%ecx
415597:	89 46 68             	mov    %eax,0x68(%esi)
41559a:	8b 57 08             	mov    0x8(%edi),%edx
41559d:	0f b7 5f 04          	movzwl 0x4(%edi),%ebx
4155a1:	8b be f4 e6 00 00    	mov    0xe6f4(%esi),%edi
4155a7:	8b c1                	mov    %ecx,%eax
4155a9:	2b c2                	sub    %edx,%eax
4155ab:	81 c7 ff ef ff ff    	add    $0xffffefff,%edi
4155b1:	89 5d 08             	mov    %ebx,0x8(%ebp)
4155b4:	3b c7                	cmp    %edi,%eax
4155b6:	0f 83 fb 00 00 00    	jae    0x4156b7
4155bc:	3b cf                	cmp    %edi,%ecx
4155be:	0f 83 f3 00 00 00    	jae    0x4156b7
4155c4:	8b 9e 34 4b 00 00    	mov    0x4b34(%esi),%ebx
4155ca:	8d 3c 03             	lea    (%ebx,%eax,1),%edi
4155cd:	8b 45 08             	mov    0x8(%ebp),%eax
4155d0:	03 d9                	add    %ecx,%ebx
4155d2:	03 c8                	add    %eax,%ecx
4155d4:	89 4e 70             	mov    %ecx,0x70(%esi)
4155d7:	3b d0                	cmp    %eax,%edx
4155d9:	73 45                	jae    0x415620
4155db:	83 f8 08             	cmp    $0x8,%eax
4155de:	72 69                	jb     0x415649
4155e0:	c1 e8 03             	shr    $0x3,%eax
4155e3:	8a 0f                	mov    (%edi),%cl
4155e5:	83 6d 08 08          	subl   $0x8,0x8(%ebp)
4155e9:	88 0b                	mov    %cl,(%ebx)
4155eb:	8a 4f 01             	mov    0x1(%edi),%cl
4155ee:	88 4b 01             	mov    %cl,0x1(%ebx)
4155f1:	8a 4f 02             	mov    0x2(%edi),%cl
4155f4:	88 4b 02             	mov    %cl,0x2(%ebx)
4155f7:	8a 4f 03             	mov    0x3(%edi),%cl
4155fa:	88 4b 03             	mov    %cl,0x3(%ebx)
4155fd:	8a 4f 04             	mov    0x4(%edi),%cl
415600:	88 4b 04             	mov    %cl,0x4(%ebx)
415603:	8a 4f 05             	mov    0x5(%edi),%cl
415606:	88 4b 05             	mov    %cl,0x5(%ebx)
415609:	8a 4f 06             	mov    0x6(%edi),%cl
41560c:	88 4b 06             	mov    %cl,0x6(%ebx)
41560f:	8a 4f 07             	mov    0x7(%edi),%cl
415612:	88 4b 07             	mov    %cl,0x7(%ebx)
415615:	83 c7 08             	add    $0x8,%edi
415618:	83 c3 08             	add    $0x8,%ebx
41561b:	48                   	dec    %eax
41561c:	75 c5                	jne    0x4155e3
41561e:	eb 29                	jmp    0x415649
415620:	83 f8 08             	cmp    $0x8,%eax
415623:	72 24                	jb     0x415649
415625:	8b 45 08             	mov    0x8(%ebp),%eax
415628:	c1 e8 03             	shr    $0x3,%eax
41562b:	89 45 f8             	mov    %eax,-0x8(%ebp)
41562e:	6a 08                	push   $0x8
415630:	57                   	push   %edi
415631:	53                   	push   %ebx
415632:	e8 39 66 00 00       	call   0x41bc70
415637:	83 6d 08 08          	subl   $0x8,0x8(%ebp)
41563b:	83 c4 0c             	add    $0xc,%esp
41563e:	83 c7 08             	add    $0x8,%edi
415641:	83 c3 08             	add    $0x8,%ebx
415644:	ff 4d f8             	decl   -0x8(%ebp)
415647:	75 e5                	jne    0x41562e
415649:	8b 45 08             	mov    0x8(%ebp),%eax
41564c:	85 c0                	test   %eax,%eax
41564e:	0f 86 43 03 00 00    	jbe    0x415997
415654:	8a 0f                	mov    (%edi),%cl
415656:	88 0b                	mov    %cl,(%ebx)
415658:	83 f8 01             	cmp    $0x1,%eax
41565b:	0f 86 36 03 00 00    	jbe    0x415997
415661:	8a 4f 01             	mov    0x1(%edi),%cl
415664:	88 4b 01             	mov    %cl,0x1(%ebx)
415667:	83 f8 02             	cmp    $0x2,%eax
41566a:	0f 86 27 03 00 00    	jbe    0x415997
415670:	8a 4f 02             	mov    0x2(%edi),%cl
415673:	88 4b 02             	mov    %cl,0x2(%ebx)