40a650:	c3                   	ret
40a651:	8b ff                	mov    %edi,%edi
40a653:	55                   	push   %ebp
40a654:	8b ec                	mov    %esp,%ebp
40a656:	81 ec 18 02 00 00    	sub    $0x218,%esp
40a65c:	a1 10 42 42 00       	mov    0x424210,%eax
40a661:	33 c5                	xor    %ebp,%eax
40a663:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a666:	53                   	push   %ebx
40a667:	56                   	push   %esi
40a668:	57                   	push   %edi
40a669:	8b fa                	mov    %edx,%edi
40a66b:	33 db                	xor    %ebx,%ebx
40a66d:	51                   	push   %ecx
40a66e:	6a 40                	push   $0x40
40a670:	89 1f                	mov    %ebx,(%edi)
40a672:	ff 15 78 60 42 00    	call   *0x426078
40a678:	50                   	push   %eax
40a679:	68 b8 1c 40 00       	push   $0x401cb8
40a67e:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40a684:	68 04 01 00 00       	push   $0x104
40a689:	50                   	push   %eax
40a68a:	e8 68 be ff ff       	call   0x4064f7
40a68f:	83 c4 18             	add    $0x18,%esp
40a692:	89 9d f0 fd ff ff    	mov    %ebx,-0x210(%ebp)
40a698:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40a69e:	68 01 00 1f 00       	push   $0x1f0001
40a6a3:	53                   	push   %ebx
40a6a4:	50                   	push   %eax
40a6a5:	53                   	push   %ebx
40a6a6:	ff 15 6c 60 42 00    	call   *0x42606c
40a6ac:	50                   	push   %eax
40a6ad:	8d 8d f0 fd ff ff    	lea    -0x210(%ebp),%ecx
40a6b3:	e8 c3 fc ff ff       	call   0x40a37b
40a6b8:	39 9d f0 fd ff ff    	cmp    %ebx,-0x210(%ebp)
40a6be:	75 09                	jne    0x40a6c9
40a6c0:	e8 14 c4 ff ff       	call   0x406ad9
40a6c5:	8b f0                	mov    %eax,%esi
40a6c7:	eb 74                	jmp    0x40a73d
40a6c9:	83 ec 0c             	sub    $0xc,%esp
40a6cc:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40a6d2:	8d 8d f0 fd ff ff    	lea    -0x210(%ebp),%ecx
40a6d8:	50                   	push   %eax
40a6d9:	e8 b8 03 00 00       	call   0x40aa96
40a6de:	8d 95 ec fd ff ff    	lea    -0x214(%ebp),%edx
40a6e4:	89 9d ec fd ff ff    	mov    %ebx,-0x214(%ebp)
40a6ea:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
40a6f0:	e8 55 c9 ff ff       	call   0x40704a
40a6f5:	8b f0                	mov    %eax,%esi
40a6f7:	85 f6                	test   %esi,%esi
40a6f9:	79 07                	jns    0x40a702
40a6fb:	ba 26 01 00 00       	mov    $0x126,%edx
40a700:	eb 69                	jmp    0x40a76b
40a702:	8b 85 ec fd ff ff    	mov    -0x214(%ebp),%eax
40a708:	85 c0                	test   %eax,%eax
40a70a:	74 42                	je     0x40a74e
40a70c:	89 07                	mov    %eax,(%edi)
40a70e:	8b 08                	mov    (%eax),%ecx
40a710:	8b 07                	mov    (%edi),%eax
40a712:	41                   	inc    %ecx
40a713:	89 08                	mov    %ecx,(%eax)
40a715:	8b f3                	mov    %ebx,%esi
40a717:	39 9d e8 fd ff ff    	cmp    %ebx,-0x218(%ebp)
40a71d:	74 0b                	je     0x40a72a
40a71f:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
40a725:	e8 fb c8 ff ff       	call   0x407025
40a72a:	39 9d f0 fd ff ff    	cmp    %ebx,-0x210(%ebp)
40a730:	74 0b                	je     0x40a73d
40a732:	ff b5 f0 fd ff ff    	push   -0x210(%ebp)
40a738:	e8 c3 c8 ff ff       	call   0x407000
40a73d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a740:	8b c6                	mov    %esi,%eax
40a742:	5f                   	pop    %edi
40a743:	5e                   	pop    %esi
40a744:	33 cd                	xor    %ebp,%ecx
40a746:	5b                   	pop    %ebx
40a747:	e8 24 71 01 00       	call   0x421870
40a74c:	c9                   	leave
40a74d:	c3                   	ret
40a74e:	57                   	push   %edi
40a74f:	8d 95 f0 fd ff ff    	lea    -0x210(%ebp),%edx
40a755:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
40a75b:	e8 12 02 00 00       	call   0x40a972
40a760:	8b f0                	mov    %eax,%esi
40a762:	85 f6                	test   %esi,%esi
40a764:	79 af                	jns    0x40a715
40a766:	ba 2e 01 00 00       	mov    $0x12e,%edx
40a76b:	8b 4d 04             	mov    0x4(%ebp),%ecx
40a76e:	56                   	push   %esi
40a76f:	68 a0 1a 40 00       	push   $0x401aa0
40a774:	e8 17 c8 ff ff       	call   0x406f90
40a779:	eb 9c                	jmp    0x40a717
40a77b:	8b ff                	mov    %edi,%edi
40a77d:	55                   	push   %ebp
40a77e:	8b ec                	mov    %esp,%ebp
40a780:	51                   	push   %ecx
40a781:	53                   	push   %ebx
40a782:	8b d9                	mov    %ecx,%ebx
40a784:	e8 95 c3 ff ff       	call   0x406b1e
40a789:	84 c0                	test   %al,%al
40a78b:	74 07                	je     0x40a794
40a78d:	ff 0b                	decl   (%ebx)
40a78f:	e9 8b 00 00 00       	jmp    0x40a81f
40a794:	56                   	push   %esi
40a795:	83 ec 0c             	sub    $0xc,%esp
40a798:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40a79b:	51                   	push   %ecx
40a79c:	8d 4b 04             	lea    0x4(%ebx),%ecx
40a79f:	e8 f2 02 00 00       	call   0x40aa96
40a7a4:	8b 03                	mov    (%ebx),%eax
40a7a6:	83 e8 01             	sub    $0x1,%eax
40a7a9:	89 03                	mov    %eax,(%ebx)
40a7ab:	75 64                	jne    0x40a811
40a7ad:	57                   	push   %edi
40a7ae:	8d 7b 08             	lea    0x8(%ebx),%edi
40a7b1:	33 f6                	xor    %esi,%esi
40a7b3:	56                   	push   %esi
40a7b4:	8b cf                	mov    %edi,%ecx
40a7b6:	e8 c0 fb ff ff       	call   0x40a37b
40a7bb:	56                   	push   %esi
40a7bc:	8d 4f 04             	lea    0x4(%edi),%ecx
40a7bf:	e8 b7 fb ff ff       	call   0x40a37b
40a7c4:	39 75 fc             	cmp    %esi,-0x4(%ebp)
40a7c7:	74 1a                	je     0x40a7e3
40a7c9:	ff 15 70 61 42 00    	call   *0x426170
40a7cf:	ff 75 fc             	push   -0x4(%ebp)
40a7d2:	8b f8                	mov    %eax,%edi
40a7d4:	e8 4c c8 ff ff       	call   0x407025
40a7d9:	57                   	push   %edi
40a7da:	ff 15 9c 61 42 00    	call   *0x42619c
40a7e0:	8d 7b 08             	lea    0x8(%ebx),%edi
40a7e3:	8d 4b 18             	lea    0x18(%ebx),%ecx
40a7e6:	e8 56 02 00 00       	call   0x40aa41
40a7eb:	8b cf                	mov    %edi,%ecx
40a7ed:	e8 8e 00 00 00       	call   0x40a880
40a7f2:	5f                   	pop    %edi
40a7f3:	39 73 04             	cmp    %esi,0x4(%ebx)
40a7f6:	74 08                	je     0x40a800
40a7f8:	ff 73 04             	push   0x4(%ebx)
40a7fb:	e8 00 c8 ff ff       	call   0x407000
40a800:	53                   	push   %ebx
40a801:	56                   	push   %esi
40a802:	ff 15 7c 60 42 00    	call   *0x42607c
40a808:	50                   	push   %eax
40a809:	ff 15 a4 61 42 00    	call   *0x4261a4
40a80f:	eb 03                	jmp    0x40a814
40a811:	8b 75 fc             	mov    -0x4(%ebp),%esi
40a814:	85 f6                	test   %esi,%esi
40a816:	74 06                	je     0x40a81e
40a818:	56                   	push   %esi
40a819:	e8 07 c8 ff ff       	call   0x407025
40a81e:	5e                   	pop    %esi
40a81f:	5b                   	pop    %ebx
40a820:	c9                   	leave
40a821:	c3                   	ret
40a822:	8b ff                	mov    %edi,%edi
40a824:	56                   	push   %esi
40a825:	8b f1                	mov    %ecx,%esi
40a827:	57                   	push   %edi
40a828:	6a 00                	push   $0x0
40a82a:	8d 7e 08             	lea    0x8(%esi),%edi
40a82d:	c6 06 00             	movb   $0x0,(%esi)
40a830:	8b cf                	mov    %edi,%ecx
40a832:	e8 75 fb ff ff       	call   0x40a3ac
40a837:	8b ce                	mov    %esi,%ecx
40a839:	c6 06 00             	movb   $0x0,(%esi)
40a83c:	e8 f0 f7 ff ff       	call   0x40a031
40a841:	8d 4e 38             	lea    0x38(%esi),%ecx
40a844:	e8 fc fa ff ff       	call   0x40a345
40a849:	8d 4e 28             	lea    0x28(%esi),%ecx
40a84c:	e8 f4 fa ff ff       	call   0x40a345
40a851:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
40a855:	74 08                	je     0x40a85f
40a857:	ff 76 18             	push   0x18(%esi)
40a85a:	e8 21 f6 ff ff       	call   0x409e80
40a85f:	83 7e 14 00          	cmpl   $0x0,0x14(%esi)
40a863:	74 08                	je     0x40a86d
40a865:	ff 76 14             	push   0x14(%esi)
40a868:	e8 13 f6 ff ff       	call   0x409e80
40a86d:	83 3f 00             	cmpl   $0x0,(%edi)
40a870:	74 07                	je     0x40a879
40a872:	ff 37                	push   (%edi)
40a874:	e8 6e 02 00 00       	call   0x40aae7
40a879:	5f                   	pop    %edi
40a87a:	8b c6                	mov    %esi,%eax
40a87c:	5e                   	pop    %esi
40a87d:	c2 04 00             	ret    $0x4
40a880:	8b ff                	mov    %edi,%edi
40a882:	56                   	push   %esi
40a883:	8b f1                	mov    %ecx,%esi
40a885:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40a889:	74 08                	je     0x40a893
40a88b:	ff 76 04             	push   0x4(%esi)
40a88e:	e8 6d c7 ff ff       	call   0x407000
40a893:	83 3e 00             	cmpl   $0x0,(%esi)
40a896:	74 07                	je     0x40a89f
40a898:	ff 36                	push   (%esi)
40a89a:	e8 61 c7 ff ff       	call   0x407000
40a89f:	5e                   	pop    %esi
40a8a0:	c3                   	ret
40a8a1:	8b ff                	mov    %edi,%edi
40a8a3:	55                   	push   %ebp
40a8a4:	8b ec                	mov    %esp,%ebp
40a8a6:	83 e4 f8             	and    $0xfffffff8,%esp
40a8a9:	83 ec 14             	sub    $0x14,%esp
40a8ac:	8b 45 08             	mov    0x8(%ebp),%eax
40a8af:	53                   	push   %ebx
40a8b0:	56                   	push   %esi
40a8b1:	57                   	push   %edi
40a8b2:	6a 08                	push   $0x8
40a8b4:	89 54 24 18          	mov    %edx,0x18(%esp)
40a8b8:	8b f1                	mov    %ecx,%esi
40a8ba:	33 ff                	xor    %edi,%edi
40a8bc:	ba a8 00 00 00       	mov    $0xa8,%edx
40a8c1:	59                   	pop    %ecx
40a8c2:	89 38                	mov    %edi,(%eax)
40a8c4:	e8 70 bf ff ff       	call   0x406839
40a8c9:	8b d8                	mov    %eax,%ebx
40a8cb:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40a8cf:	85 db                	test   %ebx,%ebx
40a8d1:	75 1a                	jne    0x40a8ed
40a8d3:	8b 4d 04             	mov    0x4(%ebp),%ecx
40a8d6:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
40a8db:	57                   	push   %edi
40a8dc:	68 a0 1a 40 00       	push   $0x401aa0
40a8e1:	ba 42 01 00 00       	mov    $0x142,%edx
40a8e6:	e8 a5 c6 ff ff       	call   0x406f90
40a8eb:	eb 74                	jmp    0x40a961
40a8ed:	89 7c 24 18          	mov    %edi,0x18(%esp)
40a8f1:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
40a8f5:	f6 c3 03             	test   $0x3,%bl
40a8f8:	75 72                	jne    0x40a96c
40a8fa:	57                   	push   %edi
40a8fb:	c1 e8 02             	shr    $0x2,%eax
40a8fe:	50                   	push   %eax
40a8ff:	51                   	push   %ecx
40a900:	56                   	push   %esi
40a901:	8d 4c 24 28          	lea    0x28(%esp),%ecx
40a905:	e8 a7 c7 ff ff       	call   0x4070b1
40a90a:	8b f8                	mov    %eax,%edi
40a90c:	85 ff                	test   %edi,%edi
40a90e:	79 19                	jns    0x40a929
40a910:	8b 4d 04             	mov    0x4(%ebp),%ecx
40a913:	ba 45 01 00 00       	mov    $0x145,%edx
40a918:	57                   	push   %edi
40a919:	68 a0 1a 40 00       	push   $0x401aa0
40a91e:	e8 6d c6 ff ff       	call   0x406f90
40a923:	8b 74 24 10          	mov    0x10(%esp),%esi
40a927:	eb 1b                	jmp    0x40a944
40a929:	8d 44 24 18          	lea    0x18(%esp),%eax
40a92d:	8b cb                	mov    %ebx,%ecx
40a92f:	50                   	push   %eax
40a930:	ff 74 24 18          	push   0x18(%esp)
40a934:	e8 d3 01 00 00       	call   0x40ab0c
40a939:	8b 45 08             	mov    0x8(%ebp),%eax
40a93c:	33 f6                	xor    %esi,%esi
40a93e:	33 ff                	xor    %edi,%edi
40a940:	89 18                	mov    %ebx,(%eax)
40a942:	33 db                	xor    %ebx,%ebx
40a944:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40a948:	e8 33 ff ff ff       	call   0x40a880
40a94d:	85 db                	test   %ebx,%ebx
40a94f:	74 10                	je     0x40a961
40a951:	56                   	push   %esi
40a952:	6a 00                	push   $0x0
40a954:	ff 15 7c 60 42 00    	call   *0x42607c
40a95a:	50                   	push   %eax
40a95b:	ff 15 a4 61 42 00    	call   *0x4261a4
40a961:	8b c7                	mov    %edi,%eax
40a963:	5f                   	pop    %edi
40a964:	5e                   	pop    %esi
40a965:	5b                   	pop    %ebx
40a966:	8b e5                	mov    %ebp,%esp
40a968:	5d                   	pop    %ebp
40a969:	c2 04 00             	ret    $0x4
40a96c:	e8 89 c6 ff ff       	call   0x406ffa
40a971:	cc                   	int3
40a972:	8b ff                	mov    %edi,%edi
40a974:	55                   	push   %ebp
40a975:	8b ec                	mov    %esp,%ebp
40a977:	83 e4 f8             	and    $0xfffffff8,%esp
40a97a:	83 ec 14             	sub    $0x14,%esp
40a97d:	8b 45 08             	mov    0x8(%ebp),%eax
40a980:	53                   	push   %ebx
40a981:	56                   	push   %esi
40a982:	57                   	push   %edi
40a983:	6a 40                	push   $0x40
40a985:	89 54 24 18          	mov    %edx,0x18(%esp)
40a989:	8b f1                	mov    %ecx,%esi
40a98b:	5a                   	pop    %edx
40a98c:	6a 08                	push   $0x8
40a98e:	33 ff                	xor    %edi,%edi
40a990:	59                   	pop    %ecx
40a991:	89 38                	mov    %edi,(%eax)
40a993:	e8 a1 be ff ff       	call   0x406839
40a998:	8b d8                	mov    %eax,%ebx
40a99a:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40a99e:	85 db                	test   %ebx,%ebx
40a9a0:	75 1a                	jne    0x40a9bc
40a9a2:	8b 4d 04             	mov    0x4(%ebp),%ecx
40a9a5:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
40a9aa:	57                   	push   %edi
40a9ab:	68 a0 1a 40 00       	push   $0x401aa0
40a9b0:	ba 42 01 00 00       	mov    $0x142,%edx
40a9b5:	e8 d6 c5 ff ff       	call   0x406f90
40a9ba:	eb 74                	jmp    0x40aa30
40a9bc:	89 7c 24 18          	mov    %edi,0x18(%esp)
40a9c0:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
40a9c4:	f6 c3 03             	test   $0x3,%bl
40a9c7:	75 72                	jne    0x40aa3b
40a9c9:	57                   	push   %edi
40a9ca:	c1 e8 02             	shr    $0x2,%eax
40a9cd:	50                   	push   %eax
40a9ce:	51                   	push   %ecx
40a9cf:	56                   	push   %esi
40a9d0:	8d 4c 24 28          	lea    0x28(%esp),%ecx
40a9d4:	e8 d8 c6 ff ff       	call   0x4070b1
40a9d9:	8b f8                	mov    %eax,%edi
40a9db:	85 ff                	test   %edi,%edi
40a9dd:	79 19                	jns    0x40a9f8
40a9df:	8b 4d 04             	mov    0x4(%ebp),%ecx
40a9e2:	ba 45 01 00 00       	mov    $0x145,%edx
40a9e7:	57                   	push   %edi
40a9e8:	68 a0 1a 40 00       	push   $0x401aa0
40a9ed:	e8 9e c5 ff ff       	call   0x406f90
40a9f2:	8b 74 24 10          	mov    0x10(%esp),%esi
40a9f6:	eb 1b                	jmp    0x40aa13
40a9f8:	8d 44 24 18          	lea    0x18(%esp),%eax
40a9fc:	8b cb                	mov    %ebx,%ecx
40a9fe:	50                   	push   %eax
40a9ff:	ff 74 24 18          	push   0x18(%esp)
40aa03:	e8 62 01 00 00       	call   0x40ab6a
40aa08:	8b 45 08             	mov    0x8(%ebp),%eax
40aa0b:	33 f6                	xor    %esi,%esi
40aa0d:	33 ff                	xor    %edi,%edi
40aa0f:	89 18                	mov    %ebx,(%eax)
40aa11:	33 db                	xor    %ebx,%ebx
40aa13:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40aa17:	e8 64 fe ff ff       	call   0x40a880
40aa1c:	85 db                	test   %ebx,%ebx
40aa1e:	74 10                	je     0x40aa30
40aa20:	56                   	push   %esi
40aa21:	6a 00                	push   $0x0
40aa23:	ff 15 7c 60 42 00    	call   *0x42607c
40aa29:	50                   	push   %eax
40aa2a:	ff 15 a4 61 42 00    	call   *0x4261a4
40aa30:	8b c7                	mov    %edi,%eax
40aa32:	5f                   	pop    %edi
40aa33:	5e                   	pop    %esi
40aa34:	5b                   	pop    %ebx