40f5ef:	59                   	pop    %ecx
40f5f0:	59                   	pop    %ecx
40f5f1:	8b e5                	mov    %ebp,%esp
40f5f3:	5d                   	pop    %ebp
40f5f4:	c3                   	ret
40f5f5:	8b ff                	mov    %edi,%edi
40f5f7:	55                   	push   %ebp
40f5f8:	8b ec                	mov    %esp,%ebp
40f5fa:	51                   	push   %ecx
40f5fb:	51                   	push   %ecx
40f5fc:	8b 45 0c             	mov    0xc(%ebp),%eax
40f5ff:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f602:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f605:	50                   	push   %eax
40f606:	ff 75 08             	push   0x8(%ebp)
40f609:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40f60d:	e8 c7 36 00 00       	call   0x412cd9
40f612:	59                   	pop    %ecx
40f613:	59                   	pop    %ecx
40f614:	8b e5                	mov    %ebp,%esp
40f616:	5d                   	pop    %ebp
40f617:	c3                   	ret
40f618:	8b ff                	mov    %edi,%edi
40f61a:	55                   	push   %ebp
40f61b:	8b ec                	mov    %esp,%ebp
40f61d:	8b 45 08             	mov    0x8(%ebp),%eax
40f620:	a8 04                	test   $0x4,%al
40f622:	74 04                	je     0x40f628
40f624:	b0 01                	mov    $0x1,%al
40f626:	5d                   	pop    %ebp
40f627:	c3                   	ret
40f628:	a8 01                	test   $0x1,%al
40f62a:	74 2b                	je     0x40f657
40f62c:	83 e0 02             	and    $0x2,%eax
40f62f:	74 11                	je     0x40f642
40f631:	81 7d 10 00 00 00 80 	cmpl   $0x80000000,0x10(%ebp)
40f638:	72 08                	jb     0x40f642
40f63a:	77 e8                	ja     0x40f624
40f63c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40f640:	77 e2                	ja     0x40f624
40f642:	85 c0                	test   %eax,%eax
40f644:	75 11                	jne    0x40f657
40f646:	81 7d 10 ff ff ff 7f 	cmpl   $0x7fffffff,0x10(%ebp)
40f64d:	72 08                	jb     0x40f657
40f64f:	77 d3                	ja     0x40f624
40f651:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
40f655:	77 cd                	ja     0x40f624
40f657:	32 c0                	xor    %al,%al
40f659:	5d                   	pop    %ebp
40f65a:	c3                   	ret
40f65b:	8b ff                	mov    %edi,%edi
40f65d:	55                   	push   %ebp
40f65e:	8b ec                	mov    %esp,%ebp
40f660:	ff 75 18             	push   0x18(%ebp)
40f663:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f666:	ff 75 14             	push   0x14(%ebp)
40f669:	ff 75 10             	push   0x10(%ebp)
40f66c:	ff 75 0c             	push   0xc(%ebp)
40f66f:	e8 f9 10 00 00       	call   0x41076d
40f674:	8b 45 08             	mov    0x8(%ebp),%eax
40f677:	5d                   	pop    %ebp
40f678:	c3                   	ret
40f679:	8b ff                	mov    %edi,%edi
40f67b:	55                   	push   %ebp
40f67c:	8b ec                	mov    %esp,%ebp
40f67e:	81 ec 10 03 00 00    	sub    $0x310,%esp
40f684:	a1 28 ba 43 00       	mov    0x43ba28,%eax
40f689:	33 c5                	xor    %ebp,%eax
40f68b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f68e:	8b 45 08             	mov    0x8(%ebp),%eax
40f691:	56                   	push   %esi
40f692:	8b 75 2c             	mov    0x2c(%ebp),%esi
40f695:	85 f6                	test   %esi,%esi
40f697:	74 04                	je     0x40f69d
40f699:	85 c0                	test   %eax,%eax
40f69b:	75 15                	jne    0x40f6b2
40f69d:	e8 c9 53 00 00       	call   0x414a6b
40f6a2:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f6a8:	e8 35 c6 ff ff       	call   0x40bce2
40f6ad:	33 c0                	xor    %eax,%eax
40f6af:	40                   	inc    %eax
40f6b0:	eb 22                	jmp    0x40f6d4
40f6b2:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
40f6b8:	51                   	push   %ecx
40f6b9:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40f6bc:	51                   	push   %ecx
40f6bd:	50                   	push   %eax
40f6be:	e8 ac 00 00 00       	call   0x40f76f
40f6c3:	56                   	push   %esi
40f6c4:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
40f6ca:	51                   	push   %ecx
40f6cb:	50                   	push   %eax
40f6cc:	e8 4c 07 00 00       	call   0x40fe1d
40f6d1:	83 c4 18             	add    $0x18,%esp
40f6d4:	8b 55 24             	mov    0x24(%ebp),%edx
40f6d7:	5e                   	pop    %esi
40f6d8:	85 d2                	test   %edx,%edx
40f6da:	74 0a                	je     0x40f6e6
40f6dc:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40f6df:	0b 4d 20             	or     0x20(%ebp),%ecx
40f6e2:	75 02                	jne    0x40f6e6
40f6e4:	88 0a                	mov    %cl,(%edx)
40f6e6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f6e9:	33 cd                	xor    %ebp,%ecx
40f6eb:	e8 70 79 ff ff       	call   0x407060
40f6f0:	8b e5                	mov    %ebp,%esp
40f6f2:	5d                   	pop    %ebp
40f6f3:	c3                   	ret
40f6f4:	8b ff                	mov    %edi,%edi
40f6f6:	55                   	push   %ebp
40f6f7:	8b ec                	mov    %esp,%ebp
40f6f9:	81 ec 10 03 00 00    	sub    $0x310,%esp
40f6ff:	a1 28 ba 43 00       	mov    0x43ba28,%eax
40f704:	33 c5                	xor    %ebp,%eax
40f706:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f709:	8b 45 08             	mov    0x8(%ebp),%eax
40f70c:	56                   	push   %esi
40f70d:	8b 75 2c             	mov    0x2c(%ebp),%esi
40f710:	85 f6                	test   %esi,%esi
40f712:	74 04                	je     0x40f718
40f714:	85 c0                	test   %eax,%eax
40f716:	75 15                	jne    0x40f72d
40f718:	e8 4e 53 00 00       	call   0x414a6b
40f71d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f723:	e8 ba c5 ff ff       	call   0x40bce2
40f728:	33 c0                	xor    %eax,%eax
40f72a:	40                   	inc    %eax
40f72b:	eb 22                	jmp    0x40f74f
40f72d:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
40f733:	51                   	push   %ecx
40f734:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40f737:	51                   	push   %ecx
40f738:	50                   	push   %eax
40f739:	e8 31 00 00 00       	call   0x40f76f
40f73e:	56                   	push   %esi
40f73f:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
40f745:	51                   	push   %ecx
40f746:	50                   	push   %eax
40f747:	e8 e1 07 00 00       	call   0x40ff2d
40f74c:	83 c4 18             	add    $0x18,%esp
40f74f:	8b 55 24             	mov    0x24(%ebp),%edx
40f752:	5e                   	pop    %esi
40f753:	85 d2                	test   %edx,%edx
40f755:	74 0a                	je     0x40f761
40f757:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40f75a:	0b 4d 20             	or     0x20(%ebp),%ecx
40f75d:	75 02                	jne    0x40f761
40f75f:	88 0a                	mov    %cl,(%edx)
40f761:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f764:	33 cd                	xor    %ebp,%ecx
40f766:	e8 f5 78 ff ff       	call   0x407060
40f76b:	8b e5                	mov    %ebp,%esp
40f76d:	5d                   	pop    %ebp
40f76e:	c3                   	ret
40f76f:	8b ff                	mov    %edi,%edi
40f771:	55                   	push   %ebp
40f772:	8b ec                	mov    %esp,%ebp
40f774:	83 ec 24             	sub    $0x24,%esp
40f777:	56                   	push   %esi
40f778:	8b 75 0c             	mov    0xc(%ebp),%esi
40f77b:	8b ce                	mov    %esi,%ecx
40f77d:	57                   	push   %edi
40f77e:	e8 e3 44 00 00       	call   0x413c66
40f783:	84 c0                	test   %al,%al
40f785:	75 08                	jne    0x40f78f
40f787:	6a 07                	push   $0x7
40f789:	58                   	pop    %eax
40f78a:	e9 41 04 00 00       	jmp    0x40fbd0
40f78f:	8b 46 10             	mov    0x10(%esi),%eax
40f792:	8b ce                	mov    %esi,%ecx
40f794:	89 45 e8             	mov    %eax,-0x18(%ebp)
40f797:	8b 46 14             	mov    0x14(%esi),%eax
40f79a:	53                   	push   %ebx
40f79b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f79e:	e8 ab 3a 00 00       	call   0x41324e
40f7a3:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f7a6:	8d 4d f9             	lea    -0x7(%ebp),%ecx
40f7a9:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40f7ac:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40f7af:	89 75 dc             	mov    %esi,-0x24(%ebp)
40f7b2:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40f7b5:	eb 07                	jmp    0x40f7be
40f7b7:	8b ce                	mov    %esi,%ecx
40f7b9:	e8 90 3a 00 00       	call   0x41324e
40f7be:	53                   	push   %ebx
40f7bf:	88 45 f9             	mov    %al,-0x7(%ebp)
40f7c2:	0f b6 c0             	movzbl %al,%eax
40f7c5:	6a 08                	push   $0x8
40f7c7:	50                   	push   %eax
40f7c8:	e8 12 46 00 00       	call   0x413ddf
40f7cd:	83 c4 0c             	add    $0xc,%esp
40f7d0:	85 c0                	test   %eax,%eax
40f7d2:	75 e3                	jne    0x40f7b7
40f7d4:	8a 4d f9             	mov    -0x7(%ebp),%cl
40f7d7:	8b 55 10             	mov    0x10(%ebp),%edx
40f7da:	80 f9 2d             	cmp    $0x2d,%cl
40f7dd:	0f 94 c0             	sete   %al
40f7e0:	88 82 08 03 00 00    	mov    %al,0x308(%edx)
40f7e6:	80 f9 2d             	cmp    $0x2d,%cl
40f7e9:	74 05                	je     0x40f7f0
40f7eb:	80 f9 2b             	cmp    $0x2b,%cl
40f7ee:	75 0c                	jne    0x40f7fc
40f7f0:	8b ce                	mov    %esi,%ecx
40f7f2:	e8 57 3a 00 00       	call   0x41324e
40f7f7:	8a c8                	mov    %al,%cl
40f7f9:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f7fc:	80 f9 49             	cmp    $0x49,%cl
40f7ff:	0f 84 b7 03 00 00    	je     0x40fbbc
40f805:	80 f9 69             	cmp    $0x69,%cl
40f808:	0f 84 ae 03 00 00    	je     0x40fbbc
40f80e:	80 f9 4e             	cmp    $0x4e,%cl
40f811:	0f 84 93 03 00 00    	je     0x40fbaa
40f817:	80 f9 6e             	cmp    $0x6e,%cl
40f81a:	0f 84 8a 03 00 00    	je     0x40fbaa
40f820:	33 db                	xor    %ebx,%ebx
40f822:	88 5d ff             	mov    %bl,-0x1(%ebp)
40f825:	80 f9 30             	cmp    $0x30,%cl
40f828:	75 43                	jne    0x40f86d
40f82a:	8b 46 14             	mov    0x14(%esi),%eax
40f82d:	8b ce                	mov    %esi,%ecx
40f82f:	8b 7e 10             	mov    0x10(%esi),%edi
40f832:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f835:	e8 14 3a 00 00       	call   0x41324e
40f83a:	88 45 f4             	mov    %al,-0xc(%ebp)
40f83d:	3c 78                	cmp    $0x78,%al
40f83f:	74 13                	je     0x40f854
40f841:	3c 58                	cmp    $0x58,%al
40f843:	74 0f                	je     0x40f854
40f845:	ff 75 f4             	push   -0xc(%ebp)
40f848:	8b ce                	mov    %esi,%ecx
40f84a:	e8 9b 43 00 00       	call   0x413bea
40f84f:	8a 4d f9             	mov    -0x7(%ebp),%cl
40f852:	eb 19                	jmp    0x40f86d
40f854:	8b ce                	mov    %esi,%ecx
40f856:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40f85a:	e8 ef 39 00 00       	call   0x41324e
40f85f:	8a c8                	mov    %al,%cl
40f861:	89 7d e8             	mov    %edi,-0x18(%ebp)
40f864:	8b 45 f0             	mov    -0x10(%ebp),%eax
40f867:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f86a:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f86d:	8b 55 10             	mov    0x10(%ebp),%edx
40f870:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40f873:	88 5d fe             	mov    %bl,-0x2(%ebp)
40f876:	8d 7a 08             	lea    0x8(%edx),%edi
40f879:	80 f9 30             	cmp    $0x30,%cl
40f87c:	75 18                	jne    0x40f896
40f87e:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
40f882:	8b ce                	mov    %esi,%ecx
40f884:	e8 c5 39 00 00       	call   0x41324e
40f889:	8a c8                	mov    %al,%cl
40f88b:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f88e:	80 f9 30             	cmp    $0x30,%cl
40f891:	74 ef                	je     0x40f882
40f893:	8b 55 10             	mov    0x10(%ebp),%edx
40f896:	33 db                	xor    %ebx,%ebx
40f898:	38 5d ff             	cmp    %bl,-0x1(%ebp)
40f89b:	0f 94 c3             	sete   %bl
40f89e:	4b                   	dec    %ebx
40f89f:	83 e3 06             	and    $0x6,%ebx
40f8a2:	83 c3 09             	add    $0x9,%ebx
40f8a5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40f8a8:	8a c1                	mov    %cl,%al
40f8aa:	2c 30                	sub    $0x30,%al
40f8ac:	3c 09                	cmp    $0x9,%al
40f8ae:	77 08                	ja     0x40f8b8
40f8b0:	0f be c1             	movsbl %cl,%eax
40f8b3:	83 e8 30             	sub    $0x30,%eax
40f8b6:	eb 23                	jmp    0x40f8db
40f8b8:	8a c1                	mov    %cl,%al
40f8ba:	2c 61                	sub    $0x61,%al
40f8bc:	3c 19                	cmp    $0x19,%al
40f8be:	77 08                	ja     0x40f8c8
40f8c0:	0f be c1             	movsbl %cl,%eax
40f8c3:	83 e8 57             	sub    $0x57,%eax
40f8c6:	eb 13                	jmp    0x40f8db
40f8c8:	8a c1                	mov    %cl,%al
40f8ca:	2c 41                	sub    $0x41,%al
40f8cc:	3c 19                	cmp    $0x19,%al
40f8ce:	77 08                	ja     0x40f8d8
40f8d0:	0f be c1             	movsbl %cl,%eax
40f8d3:	83 e8 37             	sub    $0x37,%eax
40f8d6:	eb 03                	jmp    0x40f8db
40f8d8:	83 c8 ff             	or     $0xffffffff,%eax
40f8db:	3b c3                	cmp    %ebx,%eax
40f8dd:	77 25                	ja     0x40f904
40f8df:	8d 8a 08 03 00 00    	lea    0x308(%edx),%ecx
40f8e5:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
40f8e9:	3b f9                	cmp    %ecx,%edi
40f8eb:	74 03                	je     0x40f8f0
40f8ed:	88 07                	mov    %al,(%edi)
40f8ef:	47                   	inc    %edi
40f8f0:	ff 45 f4             	incl   -0xc(%ebp)
40f8f3:	8b ce                	mov    %esi,%ecx
40f8f5:	e8 54 39 00 00       	call   0x41324e
40f8fa:	8b 55 10             	mov    0x10(%ebp),%edx
40f8fd:	8a c8                	mov    %al,%cl
40f8ff:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f902:	eb a4                	jmp    0x40f8a8
40f904:	8b 45 08             	mov    0x8(%ebp),%eax
40f907:	6a 00                	push   $0x0
40f909:	5b                   	pop    %ebx
40f90a:	8b 00                	mov    (%eax),%eax
40f90c:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
40f912:	8b 00                	mov    (%eax),%eax
40f914:	3a 08                	cmp    (%eax),%cl
40f916:	0f 85 98 00 00 00    	jne    0x40f9b4
40f91c:	8b ce                	mov    %esi,%ecx
40f91e:	e8 2b 39 00 00       	call   0x41324e
40f923:	8b 55 10             	mov    0x10(%ebp),%edx
40f926:	8a c8                	mov    %al,%cl
40f928:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f92b:	8d 42 08             	lea    0x8(%edx),%eax
40f92e:	3b f8                	cmp    %eax,%edi
40f930:	75 24                	jne    0x40f956
40f932:	80 f9 30             	cmp    $0x30,%cl
40f935:	75 1f                	jne    0x40f956
40f937:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40f93a:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
40f93e:	8b ce                	mov    %esi,%ecx
40f940:	4b                   	dec    %ebx
40f941:	e8 08 39 00 00       	call   0x41324e
40f946:	8a c8                	mov    %al,%cl
40f948:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f94b:	80 f9 30             	cmp    $0x30,%cl
40f94e:	74 ee                	je     0x40f93e
40f950:	8b 55 10             	mov    0x10(%ebp),%edx
40f953:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40f956:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40f959:	8a c1                	mov    %cl,%al
40f95b:	2c 30                	sub    $0x30,%al
40f95d:	3c 09                	cmp    $0x9,%al
40f95f:	77 08                	ja     0x40f969
40f961:	0f be c1             	movsbl %cl,%eax
40f964:	83 e8 30             	sub    $0x30,%eax
40f967:	eb 23                	jmp    0x40f98c
40f969:	8a c1                	mov    %cl,%al
40f96b:	2c 61                	sub    $0x61,%al
40f96d:	3c 19                	cmp    $0x19,%al
40f96f:	77 08                	ja     0x40f979
40f971:	0f be c1             	movsbl %cl,%eax
40f974:	83 e8 57             	sub    $0x57,%eax
40f977:	eb 13                	jmp    0x40f98c
40f979:	8a c1                	mov    %cl,%al
40f97b:	2c 41                	sub    $0x41,%al
40f97d:	3c 19                	cmp    $0x19,%al
40f97f:	77 08                	ja     0x40f989
40f981:	0f be c1             	movsbl %cl,%eax
40f984:	83 e8 37             	sub    $0x37,%eax
40f987:	eb 03                	jmp    0x40f98c