4284ae:	89 0f                	mov    %ecx,(%edi)
4284b0:	85 f6                	test   %esi,%esi
4284b2:	74 2f                	je     0x4284e3
4284b4:	3b ce                	cmp    %esi,%ecx
4284b6:	76 1c                	jbe    0x4284d4
4284b8:	6a 22                	push   $0x22
4284ba:	58                   	pop    %eax
4284bb:	eb 28                	jmp    0x4284e5
4284bd:	85 f6                	test   %esi,%esi
4284bf:	74 c4                	je     0x428485
4284c1:	e8 ab 41 ff ff       	call   0x41c671
4284c6:	6a 16                	push   $0x16
4284c8:	5e                   	pop    %esi
4284c9:	89 30                	mov    %esi,(%eax)
4284cb:	e8 1e 4f fe ff       	call   0x40d3ee
4284d0:	8b c6                	mov    %esi,%eax
4284d2:	eb 11                	jmp    0x4284e5
4284d4:	52                   	push   %edx
4284d5:	56                   	push   %esi
4284d6:	53                   	push   %ebx
4284d7:	e8 ac a5 fe ff       	call   0x412a88
4284dc:	83 c4 0c             	add    $0xc,%esp
4284df:	85 c0                	test   %eax,%eax
4284e1:	75 07                	jne    0x4284ea
4284e3:	33 c0                	xor    %eax,%eax
4284e5:	5b                   	pop    %ebx
4284e6:	5f                   	pop    %edi
4284e7:	5e                   	pop    %esi
4284e8:	c9                   	leave
4284e9:	c3                   	ret
4284ea:	33 c0                	xor    %eax,%eax
4284ec:	50                   	push   %eax
4284ed:	50                   	push   %eax
4284ee:	50                   	push   %eax
4284ef:	50                   	push   %eax
4284f0:	50                   	push   %eax
4284f1:	e8 25 4f fe ff       	call   0x40d41b
4284f6:	cc                   	int3
4284f7:	8b ff                	mov    %edi,%edi
4284f9:	55                   	push   %ebp
4284fa:	8b ec                	mov    %esp,%ebp
4284fc:	5d                   	pop    %ebp
4284fd:	e9 e8 fe ff ff       	jmp    0x4283ea
428502:	8b ff                	mov    %edi,%edi
428504:	55                   	push   %ebp
428505:	8b ec                	mov    %esp,%ebp
428507:	8b 4d 10             	mov    0x10(%ebp),%ecx
42850a:	85 c9                	test   %ecx,%ecx
42850c:	75 04                	jne    0x428512
42850e:	33 c0                	xor    %eax,%eax
428510:	5d                   	pop    %ebp
428511:	c3                   	ret
428512:	53                   	push   %ebx
428513:	8b 5d 0c             	mov    0xc(%ebp),%ebx
428516:	56                   	push   %esi
428517:	57                   	push   %edi
428518:	8b 7d 08             	mov    0x8(%ebp),%edi
42851b:	0f b7 17             	movzwl (%edi),%edx
42851e:	8d 7f 02             	lea    0x2(%edi),%edi
428521:	8d 42 bf             	lea    -0x41(%edx),%eax
428524:	83 f8 19             	cmp    $0x19,%eax
428527:	77 03                	ja     0x42852c
428529:	83 c2 20             	add    $0x20,%edx
42852c:	0f b7 33             	movzwl (%ebx),%esi
42852f:	83 c3 02             	add    $0x2,%ebx
428532:	8d 46 bf             	lea    -0x41(%esi),%eax
428535:	83 f8 19             	cmp    $0x19,%eax
428538:	77 03                	ja     0x42853d
42853a:	83 c6 20             	add    $0x20,%esi
42853d:	8b c2                	mov    %edx,%eax
42853f:	2b c6                	sub    %esi,%eax
428541:	75 09                	jne    0x42854c
428543:	85 d2                	test   %edx,%edx
428545:	74 05                	je     0x42854c
428547:	83 e9 01             	sub    $0x1,%ecx
42854a:	75 cf                	jne    0x42851b
42854c:	5f                   	pop    %edi
42854d:	5e                   	pop    %esi
42854e:	5b                   	pop    %ebx
42854f:	5d                   	pop    %ebp
428550:	c3                   	ret
428551:	8b ff                	mov    %edi,%edi
428553:	55                   	push   %ebp
428554:	8b ec                	mov    %esp,%ebp
428556:	83 3d b8 f7 43 00 00 	cmpl   $0x0,0x43f7b8
42855d:	75 29                	jne    0x428588
42855f:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
428563:	75 17                	jne    0x42857c
428565:	e8 07 41 ff ff       	call   0x41c671
42856a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
428570:	e8 79 4e fe ff       	call   0x40d3ee
428575:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
42857a:	5d                   	pop    %ebp
42857b:	c3                   	ret
42857c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
428580:	74 e3                	je     0x428565
428582:	5d                   	pop    %ebp
428583:	e9 7a ff ff ff       	jmp    0x428502
428588:	6a 00                	push   $0x0
42858a:	ff 75 10             	push   0x10(%ebp)
42858d:	ff 75 0c             	push   0xc(%ebp)
428590:	ff 75 08             	push   0x8(%ebp)
428593:	e8 05 00 00 00       	call   0x42859d
428598:	83 c4 10             	add    $0x10,%esp
42859b:	5d                   	pop    %ebp
42859c:	c3                   	ret
42859d:	8b ff                	mov    %edi,%edi
42859f:	55                   	push   %ebp
4285a0:	8b ec                	mov    %esp,%ebp
4285a2:	83 ec 14             	sub    $0x14,%esp
4285a5:	57                   	push   %edi
4285a6:	8b 7d 08             	mov    0x8(%ebp),%edi
4285a9:	85 ff                	test   %edi,%edi
4285ab:	75 1a                	jne    0x4285c7
4285ad:	e8 bf 40 ff ff       	call   0x41c671
4285b2:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4285b8:	e8 31 4e fe ff       	call   0x40d3ee
4285bd:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4285c2:	e9 a6 00 00 00       	jmp    0x42866d
4285c7:	53                   	push   %ebx
4285c8:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4285cb:	85 db                	test   %ebx,%ebx
4285cd:	75 1a                	jne    0x4285e9
4285cf:	e8 9d 40 ff ff       	call   0x41c671
4285d4:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4285da:	e8 0f 4e fe ff       	call   0x40d3ee
4285df:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4285e4:	e9 83 00 00 00       	jmp    0x42866c
4285e9:	56                   	push   %esi
4285ea:	8b 75 10             	mov    0x10(%ebp),%esi
4285ed:	85 f6                	test   %esi,%esi
4285ef:	75 04                	jne    0x4285f5
4285f1:	33 c0                	xor    %eax,%eax
4285f3:	eb 76                	jmp    0x42866b
4285f5:	ff 75 14             	push   0x14(%ebp)
4285f8:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4285fb:	e8 f4 ab fe ff       	call   0x4131f4
428600:	8b 45 f0             	mov    -0x10(%ebp),%eax
428603:	83 b8 a8 00 00 00 00 	cmpl   $0x0,0xa8(%eax)
42860a:	75 0f                	jne    0x42861b
42860c:	56                   	push   %esi
42860d:	53                   	push   %ebx
42860e:	57                   	push   %edi
42860f:	e8 ee fe ff ff       	call   0x428502
428614:	83 c4 0c             	add    $0xc,%esp
428617:	8b c8                	mov    %eax,%ecx
428619:	eb 3e                	jmp    0x428659
42861b:	0f b7 07             	movzwl (%edi),%eax
42861e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
428621:	51                   	push   %ecx
428622:	50                   	push   %eax
428623:	8d 7f 02             	lea    0x2(%edi),%edi
428626:	e8 cb 00 ff ff       	call   0x4186f6
42862b:	0f b7 c0             	movzwl %ax,%eax
42862e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
428631:	89 45 fc             	mov    %eax,-0x4(%ebp)
428634:	0f b7 03             	movzwl (%ebx),%eax
428637:	8d 5b 02             	lea    0x2(%ebx),%ebx
42863a:	51                   	push   %ecx
42863b:	50                   	push   %eax
42863c:	e8 b5 00 ff ff       	call   0x4186f6
428641:	8b 55 fc             	mov    -0x4(%ebp),%edx
428644:	83 c4 10             	add    $0x10,%esp
428647:	0f b7 c0             	movzwl %ax,%eax
42864a:	8b ca                	mov    %edx,%ecx
42864c:	2b c8                	sub    %eax,%ecx
42864e:	75 09                	jne    0x428659
428650:	85 d2                	test   %edx,%edx
428652:	74 05                	je     0x428659
428654:	83 ee 01             	sub    $0x1,%esi
428657:	75 c2                	jne    0x42861b
428659:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
42865d:	74 0a                	je     0x428669
42865f:	8b 45 ec             	mov    -0x14(%ebp),%eax
428662:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
428669:	8b c1                	mov    %ecx,%eax
42866b:	5e                   	pop    %esi
42866c:	5b                   	pop    %ebx
42866d:	5f                   	pop    %edi
42866e:	c9                   	leave
42866f:	c3                   	ret
428670:	6a 10                	push   $0x10
428672:	68 20 b1 43 00       	push   $0x43b120
428677:	e8 54 1e fe ff       	call   0x40a4d0
42867c:	8b 75 18             	mov    0x18(%ebp),%esi
42867f:	85 f6                	test   %esi,%esi
428681:	75 13                	jne    0x428696
428683:	e8 e9 3f ff ff       	call   0x41c671
428688:	6a 16                	push   $0x16
42868a:	5e                   	pop    %esi
42868b:	89 30                	mov    %esi,(%eax)
42868d:	e8 5c 4d fe ff       	call   0x40d3ee
428692:	8b c6                	mov    %esi,%eax
428694:	eb 59                	jmp    0x4286ef
428696:	83 0e ff             	orl    $0xffffffff,(%esi)
428699:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
42869d:	74 e4                	je     0x428683
42869f:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
4286a3:	74 09                	je     0x4286ae
4286a5:	f7 45 14 7f fe ff ff 	testl  $0xfffffe7f,0x14(%ebp)
4286ac:	75 d5                	jne    0x428683
4286ae:	33 c0                	xor    %eax,%eax
4286b0:	89 45 e0             	mov    %eax,-0x20(%ebp)
4286b3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4286b6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4286b9:	ff 75 1c             	push   0x1c(%ebp)
4286bc:	ff 75 14             	push   0x14(%ebp)
4286bf:	ff 75 10             	push   0x10(%ebp)
4286c2:	ff 75 0c             	push   0xc(%ebp)
4286c5:	ff 75 08             	push   0x8(%ebp)
4286c8:	56                   	push   %esi
4286c9:	8d 45 e0             	lea    -0x20(%ebp),%eax
4286cc:	50                   	push   %eax
4286cd:	e8 88 05 00 00       	call   0x428c5a
4286d2:	83 c4 1c             	add    $0x1c,%esp
4286d5:	8b f8                	mov    %eax,%edi
4286d7:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4286da:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4286e1:	e8 1f 00 00 00       	call   0x428705
4286e6:	85 ff                	test   %edi,%edi
4286e8:	74 03                	je     0x4286ed
4286ea:	83 0e ff             	orl    $0xffffffff,(%esi)
4286ed:	8b c7                	mov    %edi,%eax
4286ef:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4286f2:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4286f9:	59                   	pop    %ecx
4286fa:	5f                   	pop    %edi
4286fb:	5e                   	pop    %esi
4286fc:	5b                   	pop    %ebx
4286fd:	c9                   	leave
4286fe:	c3                   	ret
4286ff:	8b 75 18             	mov    0x18(%ebp),%esi
428702:	8b 7d e4             	mov    -0x1c(%ebp),%edi
428705:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
428709:	74 3f                	je     0x42874a
42870b:	85 ff                	test   %edi,%edi
42870d:	74 33                	je     0x428742
42870f:	8b 16                	mov    (%esi),%edx
428711:	c1 fa 06             	sar    $0x6,%edx
428714:	8b 06                	mov    (%esi),%eax
428716:	83 e0 3f             	and    $0x3f,%eax
428719:	6b c8 38             	imul   $0x38,%eax,%ecx
42871c:	8b 04 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%eax
428723:	8a 5c 08 28          	mov    0x28(%eax,%ecx,1),%bl
428727:	80 e3 fe             	and    $0xfe,%bl
42872a:	8b 16                	mov    (%esi),%edx
42872c:	c1 fa 06             	sar    $0x6,%edx
42872f:	8b 06                	mov    (%esi),%eax
428731:	83 e0 3f             	and    $0x3f,%eax
428734:	6b c8 38             	imul   $0x38,%eax,%ecx
428737:	8b 04 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%eax
42873e:	88 5c 08 28          	mov    %bl,0x28(%eax,%ecx,1)
428742:	ff 36                	push   (%esi)
428744:	e8 8c 82 ff ff       	call   0x4209d5
428749:	59                   	pop    %ecx
42874a:	c3                   	ret
42874b:	8b ff                	mov    %edi,%edi
42874d:	55                   	push   %ebp
42874e:	8b ec                	mov    %esp,%ebp
428750:	51                   	push   %ecx
428751:	51                   	push   %ecx
428752:	8b 45 08             	mov    0x8(%ebp),%eax
428755:	8b 55 08             	mov    0x8(%ebp),%edx
428758:	83 e0 3f             	and    $0x3f,%eax
42875b:	53                   	push   %ebx
42875c:	56                   	push   %esi
42875d:	57                   	push   %edi
42875e:	8b 7d 28             	mov    0x28(%ebp),%edi
428761:	33 db                	xor    %ebx,%ebx
428763:	c1 fa 06             	sar    $0x6,%edx
428766:	6b c8 38             	imul   $0x38,%eax,%ecx
428769:	88 1f                	mov    %bl,(%edi)
42876b:	8b 04 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%eax
428772:	38 5c 08 28          	cmp    %bl,0x28(%eax,%ecx,1)
428776:	0f 8d 13 02 00 00    	jge    0x42898f
42877c:	8b 75 24             	mov    0x24(%ebp),%esi
42877f:	f7 c6 00 40 07 00    	test   $0x74000,%esi
428785:	75 25                	jne    0x4287ac
428787:	8d 45 fc             	lea    -0x4(%ebp),%eax
42878a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
42878d:	50                   	push   %eax
42878e:	e8 4f 19 ff ff       	call   0x41a0e2
428793:	59                   	pop    %ecx
428794:	85 c0                	test   %eax,%eax
428796:	0f 85 fa 01 00 00    	jne    0x428996
42879c:	8b 45 fc             	mov    -0x4(%ebp),%eax
42879f:	25 00 40 07 00       	and    $0x74000,%eax
4287a4:	75 49                	jne    0x4287ef
4287a6:	81 ce 00 40 00 00    	or     $0x4000,%esi
4287ac:	8b c6                	mov    %esi,%eax
4287ae:	6a 02                	push   $0x2
4287b0:	25 00 40 07 00       	and    $0x74000,%eax
4287b5:	59                   	pop    %ecx
4287b6:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4287b9:	3d 00 40 00 00       	cmp    $0x4000,%eax
4287be:	74 44                	je     0x428804
4287c0:	3d 00 00 01 00       	cmp    $0x10000,%eax
4287c5:	74 2c                	je     0x4287f3
4287c7:	3d 00 40 01 00       	cmp    $0x14000,%eax
4287cc:	74 25                	je     0x4287f3
4287ce:	3d 00 00 02 00       	cmp    $0x20000,%eax
4287d3:	74 2b                	je     0x428800
4287d5:	3d 00 40 02 00       	cmp    $0x24000,%eax
4287da:	74 24                	je     0x428800
4287dc:	3d 00 00 04 00       	cmp    $0x40000,%eax
4287e1:	74 07                	je     0x4287ea
4287e3:	3d 00 40 04 00       	cmp    $0x44000,%eax
4287e8:	75 1c                	jne    0x428806
4287ea:	c6 07 01             	movb   $0x1,(%edi)
4287ed:	eb 17                	jmp    0x428806
4287ef:	0b f0                	or     %eax,%esi
4287f1:	eb b9                	jmp    0x4287ac
4287f3:	ba 01 03 00 00       	mov    $0x301,%edx
4287f8:	8b c6                	mov    %esi,%eax
4287fa:	23 c2                	and    %edx,%eax
4287fc:	3b c2                	cmp    %edx,%eax
4287fe:	75 06                	jne    0x428806
428800:	88 0f                	mov    %cl,(%edi)
428802:	eb 02                	jmp    0x428806
428804:	88 1f                	mov    %bl,(%edi)
428806:	f7 c6 00 00 07 00    	test   $0x70000,%esi
42880c:	0f 84 7d 01 00 00    	je     0x42898f
428812:	f6 45 0c 40          	testb  $0x40,0xc(%ebp)
428816:	0f 85 73 01 00 00    	jne    0x42898f
42881c:	8b 45 10             	mov    0x10(%ebp),%eax
42881f:	ba 00 00 00 c0       	mov    $0xc0000000,%edx
428824:	23 c2                	and    %edx,%eax
428826:	be 00 00 00 80       	mov    $0x80000000,%esi
42882b:	3d 00 00 00 40       	cmp    $0x40000000,%eax
428830:	74 0c                	je     0x42883e
428832:	3b c6                	cmp    %esi,%eax
428834:	74 75                	je     0x4288ab
428836:	3b c2                	cmp    %edx,%eax
428838:	0f 85 51 01 00 00    	jne    0x42898f
42883e:	8b 45 14             	mov    0x14(%ebp),%eax
428841:	83 e8 01             	sub    $0x1,%eax
428844:	0f 84 fa 00 00 00    	je     0x428944
42884a:	83 e8 01             	sub    $0x1,%eax
42884d:	0f 84 f1 00 00 00    	je     0x428944
428853:	83 e8 01             	sub    $0x1,%eax
428856:	74 13                	je     0x42886b
428858:	83 e8 01             	sub    $0x1,%eax
42885b:	74 0e                	je     0x42886b
42885d:	83 e8 01             	sub    $0x1,%eax
428860:	0f 84 de 00 00 00    	je     0x428944
428866:	e9 24 01 00 00       	jmp    0x42898f
42886b:	51                   	push   %ecx
42886c:	53                   	push   %ebx
42886d:	53                   	push   %ebx
42886e:	ff 75 08             	push   0x8(%ebp)