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)
415676:	83 f8 03             	cmp    $0x3,%eax
415679:	0f 86 18 03 00 00    	jbe    0x415997
41567f:	8a 4f 03             	mov    0x3(%edi),%cl
415682:	88 4b 03             	mov    %cl,0x3(%ebx)
415685:	83 f8 04             	cmp    $0x4,%eax
415688:	0f 86 09 03 00 00    	jbe    0x415997
41568e:	8a 4f 04             	mov    0x4(%edi),%cl
415691:	88 4b 04             	mov    %cl,0x4(%ebx)
415694:	83 f8 05             	cmp    $0x5,%eax
415697:	0f 86 fa 02 00 00    	jbe    0x415997
41569d:	8a 4f 05             	mov    0x5(%edi),%cl
4156a0:	88 4b 05             	mov    %cl,0x5(%ebx)
4156a3:	83 f8 06             	cmp    $0x6,%eax
4156a6:	0f 86 eb 02 00 00    	jbe    0x415997
4156ac:	8a 47 06             	mov    0x6(%edi),%al
4156af:	88 43 06             	mov    %al,0x6(%ebx)
4156b2:	e9 e0 02 00 00       	jmp    0x415997
4156b7:	85 db                	test   %ebx,%ebx
4156b9:	0f 86 d8 02 00 00    	jbe    0x415997
4156bf:	8b 96 f8 e6 00 00    	mov    0xe6f8(%esi),%edx
4156c5:	8b 8e 34 4b 00 00    	mov    0x4b34(%esi),%ecx
4156cb:	8b 7e 70             	mov    0x70(%esi),%edi
4156ce:	23 d0                	and    %eax,%edx
4156d0:	8a 14 0a             	mov    (%edx,%ecx,1),%dl
4156d3:	88 14 39             	mov    %dl,(%ecx,%edi,1)
4156d6:	8b 4e 70             	mov    0x70(%esi),%ecx
4156d9:	8b 96 f8 e6 00 00    	mov    0xe6f8(%esi),%edx
4156df:	4b                   	dec    %ebx
4156e0:	40                   	inc    %eax
4156e1:	41                   	inc    %ecx
4156e2:	23 ca                	and    %edx,%ecx
4156e4:	89 4e 70             	mov    %ecx,0x70(%esi)
4156e7:	85 db                	test   %ebx,%ebx
4156e9:	77 da                	ja     0x4156c5
4156eb:	e9 a7 02 00 00       	jmp    0x415997
4156f0:	83 f8 03             	cmp    $0x3,%eax
4156f3:	0f 85 1e 01 00 00    	jne    0x415817
4156f9:	8b 47 08             	mov    0x8(%edi),%eax
4156fc:	8b 54 86 54          	mov    0x54(%esi,%eax,4),%edx
415700:	85 c0                	test   %eax,%eax
415702:	76 11                	jbe    0x415715
415704:	8d 4c 86 54          	lea    0x54(%esi,%eax,4),%ecx
415708:	8b 59 fc             	mov    -0x4(%ecx),%ebx
41570b:	89 19                	mov    %ebx,(%ecx)
41570d:	48                   	dec    %eax
41570e:	83 e9 04             	sub    $0x4,%ecx
415711:	85 c0                	test   %eax,%eax
415713:	77 f3                	ja     0x415708
415715:	8b 4e 70             	mov    0x70(%esi),%ecx
415718:	89 56 54             	mov    %edx,0x54(%esi)
41571b:	0f b7 47 04          	movzwl 0x4(%edi),%eax
41571f:	89 46 68             	mov    %eax,0x68(%esi)
415722:	0f b7 5f 04          	movzwl 0x4(%edi),%ebx
415726:	8b be f4 e6 00 00    	mov    0xe6f4(%esi),%edi
41572c:	8b c1                	mov    %ecx,%eax
41572e:	2b c2                	sub    %edx,%eax
415730:	81 c7 ff ef ff ff    	add    $0xffffefff,%edi
415736:	89 5d 08             	mov    %ebx,0x8(%ebp)
415739:	3b c7                	cmp    %edi,%eax
41573b:	0f 83 9d 00 00 00    	jae    0x4157de
415741:	3b cf                	cmp    %edi,%ecx
415743:	0f 83 95 00 00 00    	jae    0x4157de
415749:	8b 9e 34 4b 00 00    	mov    0x4b34(%esi),%ebx
41574f:	8d 3c 03             	lea    (%ebx,%eax,1),%edi
415752:	8b 45 08             	mov    0x8(%ebp),%eax
415755:	03 d9                	add    %ecx,%ebx
415757:	03 c8                	add    %eax,%ecx
415759:	89 4e 70             	mov    %ecx,0x70(%esi)
41575c:	3b d0                	cmp    %eax,%edx
41575e:	73 4c                	jae    0x4157ac
415760:	83 f8 08             	cmp    $0x8,%eax
415763:	0f 82 e0 fe ff ff    	jb     0x415649
415769:	c1 e8 03             	shr    $0x3,%eax
41576c:	8a 0f                	mov    (%edi),%cl
41576e:	83 6d 08 08          	subl   $0x8,0x8(%ebp)
415772:	88 0b                	mov    %cl,(%ebx)
415774:	8a 4f 01             	mov    0x1(%edi),%cl
415777:	88 4b 01             	mov    %cl,0x1(%ebx)
41577a:	8a 4f 02             	mov    0x2(%edi),%cl
41577d:	88 4b 02             	mov    %cl,0x2(%ebx)
415780:	8a 4f 03             	mov    0x3(%edi),%cl
415783:	88 4b 03             	mov    %cl,0x3(%ebx)
415786:	8a 4f 04             	mov    0x4(%edi),%cl
415789:	88 4b 04             	mov    %cl,0x4(%ebx)
41578c:	8a 4f 05             	mov    0x5(%edi),%cl
41578f:	88 4b 05             	mov    %cl,0x5(%ebx)
415792:	8a 4f 06             	mov    0x6(%edi),%cl
415795:	88 4b 06             	mov    %cl,0x6(%ebx)
415798:	8a 4f 07             	mov    0x7(%edi),%cl
41579b:	88 4b 07             	mov    %cl,0x7(%ebx)
41579e:	83 c7 08             	add    $0x8,%edi
4157a1:	83 c3 08             	add    $0x8,%ebx
4157a4:	48                   	dec    %eax
4157a5:	75 c5                	jne    0x41576c
4157a7:	e9 9d fe ff ff       	jmp    0x415649
4157ac:	83 f8 08             	cmp    $0x8,%eax
4157af:	0f 82 94 fe ff ff    	jb     0x415649
4157b5:	8b 45 08             	mov    0x8(%ebp),%eax
4157b8:	c1 e8 03             	shr    $0x3,%eax
4157bb:	89 45 f8             	mov    %eax,-0x8(%ebp)
4157be:	6a 08                	push   $0x8
4157c0:	57                   	push   %edi
4157c1:	53                   	push   %ebx
4157c2:	e8 a9 64 00 00       	call   0x41bc70
4157c7:	83 6d 08 08          	subl   $0x8,0x8(%ebp)
4157cb:	83 c4 0c             	add    $0xc,%esp
4157ce:	83 c7 08             	add    $0x8,%edi
4157d1:	83 c3 08             	add    $0x8,%ebx
4157d4:	ff 4d f8             	decl   -0x8(%ebp)
4157d7:	75 e5                	jne    0x4157be
4157d9:	e9 6b fe ff ff       	jmp    0x415649
4157de:	85 db                	test   %ebx,%ebx
4157e0:	0f 86 b1 01 00 00    	jbe    0x415997
4157e6:	8b 96 f8 e6 00 00    	mov    0xe6f8(%esi),%edx
4157ec:	8b 8e 34 4b 00 00    	mov    0x4b34(%esi),%ecx
4157f2:	8b 7e 70             	mov    0x70(%esi),%edi
4157f5:	23 d0                	and    %eax,%edx
4157f7:	8a 14 0a             	mov    (%edx,%ecx,1),%dl
4157fa:	88 14 39             	mov    %dl,(%ecx,%edi,1)
4157fd:	8b 4e 70             	mov    0x70(%esi),%ecx
415800:	8b 96 f8 e6 00 00    	mov    0xe6f8(%esi),%edx
415806:	4b                   	dec    %ebx
415807:	40                   	inc    %eax
415808:	41                   	inc    %ecx
415809:	23 ca                	and    %edx,%ecx
41580b:	89 4e 70             	mov    %ecx,0x70(%esi)
41580e:	85 db                	test   %ebx,%ebx
415810:	77 da                	ja     0x4157ec
415812:	e9 80 01 00 00       	jmp    0x415997
415817:	83 f8 02             	cmp    $0x2,%eax
41581a:	0f 85 49 01 00 00    	jne    0x415969
415820:	8b 46 68             	mov    0x68(%esi),%eax
415823:	85 c0                	test   %eax,%eax
415825:	0f 84 6c 01 00 00    	je     0x415997
41582b:	8b 4e 70             	mov    0x70(%esi),%ecx
41582e:	8b 56 54             	mov    0x54(%esi),%edx
415831:	8b be f4 e6 00 00    	mov    0xe6f4(%esi),%edi
415837:	8b d8                	mov    %eax,%ebx
415839:	8b c1                	mov    %ecx,%eax
41583b:	2b c2                	sub    %edx,%eax
41583d:	81 c7 ff ef ff ff    	add    $0xffffefff,%edi
415843:	89 5d 08             	mov    %ebx,0x8(%ebp)
415846:	3b c7                	cmp    %edi,%eax
415848:	0f 83 e9 00 00 00    	jae    0x415937
41584e:	3b cf                	cmp    %edi,%ecx
415850:	0f 83 e1 00 00 00    	jae    0x415937
415856:	8b 9e 34 4b 00 00    	mov    0x4b34(%esi),%ebx
41585c:	8d 3c 03             	lea    (%ebx,%eax,1),%edi
41585f:	8b 45 08             	mov    0x8(%ebp),%eax
415862:	03 d9                	add    %ecx,%ebx
415864:	03 c8                	add    %eax,%ecx
415866:	89 4e 70             	mov    %ecx,0x70(%esi)
415869:	3b d0                	cmp    %eax,%edx
41586b:	73 45                	jae    0x4158b2
41586d:	83 f8 08             	cmp    $0x8,%eax
415870:	72 66                	jb     0x4158d8
415872:	c1 e8 03             	shr    $0x3,%eax
415875:	8a 0f                	mov    (%edi),%cl
415877:	83 6d 08 08          	subl   $0x8,0x8(%ebp)
41587b:	88 0b                	mov    %cl,(%ebx)
41587d:	8a 4f 01             	mov    0x1(%edi),%cl
415880:	88 4b 01             	mov    %cl,0x1(%ebx)
415883:	8a 4f 02             	mov    0x2(%edi),%cl
415886:	88 4b 02             	mov    %cl,0x2(%ebx)
415889:	8a 4f 03             	mov    0x3(%edi),%cl
41588c:	88 4b 03             	mov    %cl,0x3(%ebx)
41588f:	8a 4f 04             	mov    0x4(%edi),%cl
415892:	88 4b 04             	mov    %cl,0x4(%ebx)
415895:	8a 4f 05             	mov    0x5(%edi),%cl
415898:	88 4b 05             	mov    %cl,0x5(%ebx)
41589b:	8a 4f 06             	mov    0x6(%edi),%cl
41589e:	88 4b 06             	mov    %cl,0x6(%ebx)
4158a1:	8a 4f 07             	mov    0x7(%edi),%cl
4158a4:	88 4b 07             	mov    %cl,0x7(%ebx)
4158a7:	83 c7 08             	add    $0x8,%edi