40a6ba:	cc                   	int3
40a6bb:	cc                   	int3
40a6bc:	cc                   	int3
40a6bd:	cc                   	int3
40a6be:	cc                   	int3
40a6bf:	cc                   	int3
40a6c0:	8b ff                	mov    %edi,%edi
40a6c2:	55                   	push   %ebp
40a6c3:	8b ec                	mov    %esp,%ebp
40a6c5:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a6c8:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40a6cd:	66 39 01             	cmp    %ax,(%ecx)
40a6d0:	74 04                	je     0x40a6d6
40a6d2:	33 c0                	xor    %eax,%eax
40a6d4:	5d                   	pop    %ebp
40a6d5:	c3                   	ret
40a6d6:	8b 41 3c             	mov    0x3c(%ecx),%eax
40a6d9:	03 c1                	add    %ecx,%eax
40a6db:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
40a6e1:	75 ef                	jne    0x40a6d2
40a6e3:	33 d2                	xor    %edx,%edx
40a6e5:	b9 0b 01 00 00       	mov    $0x10b,%ecx
40a6ea:	66 39 48 18          	cmp    %cx,0x18(%eax)
40a6ee:	0f 94 c2             	sete   %dl
40a6f1:	8b c2                	mov    %edx,%eax
40a6f3:	5d                   	pop    %ebp
40a6f4:	c3                   	ret
40a6f5:	cc                   	int3
40a6f6:	cc                   	int3
40a6f7:	cc                   	int3
40a6f8:	cc                   	int3
40a6f9:	cc                   	int3
40a6fa:	cc                   	int3
40a6fb:	cc                   	int3
40a6fc:	cc                   	int3
40a6fd:	cc                   	int3
40a6fe:	cc                   	int3
40a6ff:	cc                   	int3
40a700:	8b ff                	mov    %edi,%edi
40a702:	55                   	push   %ebp
40a703:	8b ec                	mov    %esp,%ebp
40a705:	8b 45 08             	mov    0x8(%ebp),%eax
40a708:	8b 48 3c             	mov    0x3c(%eax),%ecx
40a70b:	03 c8                	add    %eax,%ecx
40a70d:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
40a711:	53                   	push   %ebx
40a712:	56                   	push   %esi
40a713:	0f b7 71 06          	movzwl 0x6(%ecx),%esi
40a717:	33 d2                	xor    %edx,%edx
40a719:	57                   	push   %edi
40a71a:	8d 44 08 18          	lea    0x18(%eax,%ecx,1),%eax
40a71e:	85 f6                	test   %esi,%esi
40a720:	74 1b                	je     0x40a73d
40a722:	8b 7d 0c             	mov    0xc(%ebp),%edi
40a725:	8b 48 0c             	mov    0xc(%eax),%ecx
40a728:	3b f9                	cmp    %ecx,%edi
40a72a:	72 09                	jb     0x40a735
40a72c:	8b 58 08             	mov    0x8(%eax),%ebx
40a72f:	03 d9                	add    %ecx,%ebx
40a731:	3b fb                	cmp    %ebx,%edi
40a733:	72 0a                	jb     0x40a73f
40a735:	42                   	inc    %edx
40a736:	83 c0 28             	add    $0x28,%eax
40a739:	3b d6                	cmp    %esi,%edx
40a73b:	72 e8                	jb     0x40a725
40a73d:	33 c0                	xor    %eax,%eax
40a73f:	5f                   	pop    %edi
40a740:	5e                   	pop    %esi
40a741:	5b                   	pop    %ebx
40a742:	5d                   	pop    %ebp
40a743:	c3                   	ret
40a744:	cc                   	int3
40a745:	cc                   	int3
40a746:	cc                   	int3
40a747:	cc                   	int3
40a748:	cc                   	int3
40a749:	cc                   	int3
40a74a:	cc                   	int3
40a74b:	cc                   	int3
40a74c:	cc                   	int3
40a74d:	cc                   	int3
40a74e:	cc                   	int3
40a74f:	cc                   	int3
40a750:	8b ff                	mov    %edi,%edi
40a752:	55                   	push   %ebp
40a753:	8b ec                	mov    %esp,%ebp
40a755:	6a fe                	push   $0xfffffffe
40a757:	68 90 13 41 00       	push   $0x411390
40a75c:	68 d0 41 40 00       	push   $0x4041d0
40a761:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a767:	50                   	push   %eax
40a768:	83 ec 08             	sub    $0x8,%esp
40a76b:	53                   	push   %ebx
40a76c:	56                   	push   %esi
40a76d:	57                   	push   %edi
40a76e:	a1 84 22 41 00       	mov    0x412284,%eax
40a773:	31 45 f8             	xor    %eax,-0x8(%ebp)
40a776:	33 c5                	xor    %ebp,%eax
40a778:	50                   	push   %eax
40a779:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a77c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a782:	89 65 e8             	mov    %esp,-0x18(%ebp)
40a785:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a78c:	68 00 00 40 00       	push   $0x400000
40a791:	e8 2a ff ff ff       	call   0x40a6c0
40a796:	83 c4 04             	add    $0x4,%esp
40a799:	85 c0                	test   %eax,%eax
40a79b:	74 54                	je     0x40a7f1
40a79d:	8b 45 08             	mov    0x8(%ebp),%eax
40a7a0:	2d 00 00 40 00       	sub    $0x400000,%eax
40a7a5:	50                   	push   %eax
40a7a6:	68 00 00 40 00       	push   $0x400000
40a7ab:	e8 50 ff ff ff       	call   0x40a700
40a7b0:	83 c4 08             	add    $0x8,%esp
40a7b3:	85 c0                	test   %eax,%eax
40a7b5:	74 3a                	je     0x40a7f1
40a7b7:	8b 40 24             	mov    0x24(%eax),%eax
40a7ba:	c1 e8 1f             	shr    $0x1f,%eax
40a7bd:	f7 d0                	not    %eax
40a7bf:	83 e0 01             	and    $0x1,%eax
40a7c2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a7c9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a7cc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a7d3:	59                   	pop    %ecx
40a7d4:	5f                   	pop    %edi
40a7d5:	5e                   	pop    %esi
40a7d6:	5b                   	pop    %ebx
40a7d7:	8b e5                	mov    %ebp,%esp
40a7d9:	5d                   	pop    %ebp
40a7da:	c3                   	ret
40a7db:	8b 45 ec             	mov    -0x14(%ebp),%eax
40a7de:	8b 08                	mov    (%eax),%ecx
40a7e0:	33 d2                	xor    %edx,%edx
40a7e2:	81 39 05 00 00 c0    	cmpl   $0xc0000005,(%ecx)
40a7e8:	0f 94 c2             	sete   %dl
40a7eb:	8b c2                	mov    %edx,%eax
40a7ed:	c3                   	ret
40a7ee:	8b 65 e8             	mov    -0x18(%ebp),%esp
40a7f1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a7f8:	33 c0                	xor    %eax,%eax
40a7fa:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a7fd:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a804:	59                   	pop    %ecx
40a805:	5f                   	pop    %edi
40a806:	5e                   	pop    %esi
40a807:	5b                   	pop    %ebx
40a808:	8b e5                	mov    %ebp,%esp
40a80a:	5d                   	pop    %ebp
40a80b:	c3                   	ret
40a80c:	cc                   	int3
40a80d:	cc                   	int3
40a80e:	cc                   	int3
40a80f:	cc                   	int3
40a810:	55                   	push   %ebp
40a811:	8b ec                	mov    %esp,%ebp
40a813:	53                   	push   %ebx
40a814:	56                   	push   %esi
40a815:	57                   	push   %edi
40a816:	55                   	push   %ebp
40a817:	6a 00                	push   $0x0
40a819:	6a 00                	push   $0x0
40a81b:	68 28 a8 40 00       	push   $0x40a828
40a820:	ff 75 08             	push   0x8(%ebp)
40a823:	e8 ec 3e 00 00       	call   0x40e714
40a828:	5d                   	pop    %ebp
40a829:	5f                   	pop    %edi
40a82a:	5e                   	pop    %esi
40a82b:	5b                   	pop    %ebx
40a82c:	8b e5                	mov    %ebp,%esp
40a82e:	5d                   	pop    %ebp
40a82f:	c3                   	ret
40a830:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40a834:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
40a83b:	b8 01 00 00 00       	mov    $0x1,%eax
40a840:	74 32                	je     0x40a874
40a842:	8b 44 24 14          	mov    0x14(%esp),%eax
40a846:	8b 48 fc             	mov    -0x4(%eax),%ecx
40a849:	33 c8                	xor    %eax,%ecx
40a84b:	e8 54 75 ff ff       	call   0x401da4
40a850:	55                   	push   %ebp
40a851:	8b 68 10             	mov    0x10(%eax),%ebp
40a854:	8b 50 28             	mov    0x28(%eax),%edx
40a857:	52                   	push   %edx
40a858:	8b 50 24             	mov    0x24(%eax),%edx
40a85b:	52                   	push   %edx
40a85c:	e8 14 00 00 00       	call   0x40a875
40a861:	83 c4 08             	add    $0x8,%esp
40a864:	5d                   	pop    %ebp
40a865:	8b 44 24 08          	mov    0x8(%esp),%eax
40a869:	8b 54 24 10          	mov    0x10(%esp),%edx
40a86d:	89 02                	mov    %eax,(%edx)
40a86f:	b8 03 00 00 00       	mov    $0x3,%eax
40a874:	c3                   	ret
40a875:	53                   	push   %ebx
40a876:	56                   	push   %esi
40a877:	57                   	push   %edi
40a878:	8b 44 24 10          	mov    0x10(%esp),%eax
40a87c:	55                   	push   %ebp
40a87d:	50                   	push   %eax
40a87e:	6a fe                	push   $0xfffffffe
40a880:	68 30 a8 40 00       	push   $0x40a830
40a885:	64 ff 35 00 00 00 00 	push   %fs:0x0
40a88c:	a1 84 22 41 00       	mov    0x412284,%eax
40a891:	33 c4                	xor    %esp,%eax
40a893:	50                   	push   %eax
40a894:	8d 44 24 04          	lea    0x4(%esp),%eax
40a898:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a89e:	8b 44 24 28          	mov    0x28(%esp),%eax
40a8a2:	8b 58 08             	mov    0x8(%eax),%ebx
40a8a5:	8b 70 0c             	mov    0xc(%eax),%esi
40a8a8:	83 fe ff             	cmp    $0xffffffff,%esi
40a8ab:	74 3a                	je     0x40a8e7
40a8ad:	83 7c 24 2c ff       	cmpl   $0xffffffff,0x2c(%esp)
40a8b2:	74 06                	je     0x40a8ba
40a8b4:	3b 74 24 2c          	cmp    0x2c(%esp),%esi
40a8b8:	76 2d                	jbe    0x40a8e7
40a8ba:	8d 34 76             	lea    (%esi,%esi,2),%esi
40a8bd:	8b 0c b3             	mov    (%ebx,%esi,4),%ecx
40a8c0:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
40a8c4:	89 48 0c             	mov    %ecx,0xc(%eax)
40a8c7:	83 7c b3 04 00       	cmpl   $0x0,0x4(%ebx,%esi,4)
40a8cc:	75 17                	jne    0x40a8e5
40a8ce:	68 01 01 00 00       	push   $0x101
40a8d3:	8b 44 b3 08          	mov    0x8(%ebx,%esi,4),%eax
40a8d7:	e8 49 00 00 00       	call   0x40a925
40a8dc:	8b 44 b3 08          	mov    0x8(%ebx,%esi,4),%eax
40a8e0:	e8 5f 00 00 00       	call   0x40a944
40a8e5:	eb b7                	jmp    0x40a89e
40a8e7:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40a8eb:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a8f2:	83 c4 18             	add    $0x18,%esp
40a8f5:	5f                   	pop    %edi
40a8f6:	5e                   	pop    %esi
40a8f7:	5b                   	pop    %ebx
40a8f8:	c3                   	ret
40a8f9:	33 c0                	xor    %eax,%eax
40a8fb:	64 8b 0d 00 00 00 00 	mov    %fs:0x0,%ecx
40a902:	81 79 04 30 a8 40 00 	cmpl   $0x40a830,0x4(%ecx)
40a909:	75 10                	jne    0x40a91b
40a90b:	8b 51 0c             	mov    0xc(%ecx),%edx
40a90e:	8b 52 0c             	mov    0xc(%edx),%edx
40a911:	39 51 08             	cmp    %edx,0x8(%ecx)
40a914:	75 05                	jne    0x40a91b
40a916:	b8 01 00 00 00       	mov    $0x1,%eax
40a91b:	c3                   	ret
40a91c:	53                   	push   %ebx
40a91d:	51                   	push   %ecx
40a91e:	bb f0 2d 41 00       	mov    $0x412df0,%ebx
40a923:	eb 0b                	jmp    0x40a930
40a925:	53                   	push   %ebx
40a926:	51                   	push   %ecx
40a927:	bb f0 2d 41 00       	mov    $0x412df0,%ebx
40a92c:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40a930:	89 4b 08             	mov    %ecx,0x8(%ebx)
40a933:	89 43 04             	mov    %eax,0x4(%ebx)
40a936:	89 6b 0c             	mov    %ebp,0xc(%ebx)
40a939:	55                   	push   %ebp
40a93a:	51                   	push   %ecx
40a93b:	50                   	push   %eax
40a93c:	58                   	pop    %eax
40a93d:	59                   	pop    %ecx
40a93e:	5d                   	pop    %ebp
40a93f:	59                   	pop    %ecx
40a940:	5b                   	pop    %ebx
40a941:	c2 04 00             	ret    $0x4
40a944:	ff d0                	call   *%eax
40a946:	c3                   	ret
40a947:	8b ff                	mov    %edi,%edi
40a949:	55                   	push   %ebp
40a94a:	8b ec                	mov    %esp,%ebp
40a94c:	8b 45 08             	mov    0x8(%ebp),%eax
40a94f:	83 f8 fe             	cmp    $0xfffffffe,%eax
40a952:	75 0f                	jne    0x40a963
40a954:	e8 ce 97 ff ff       	call   0x404127
40a959:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40a95f:	33 c0                	xor    %eax,%eax
40a961:	5d                   	pop    %ebp
40a962:	c3                   	ret
40a963:	85 c0                	test   %eax,%eax
40a965:	78 08                	js     0x40a96f
40a967:	3b 05 00 46 41 00    	cmp    0x414600,%eax
40a96d:	72 12                	jb     0x40a981
40a96f:	e8 b3 97 ff ff       	call   0x404127
40a974:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40a97a:	e8 08 83 ff ff       	call   0x402c87
40a97f:	eb de                	jmp    0x40a95f
40a981:	8b c8                	mov    %eax,%ecx
40a983:	83 e0 1f             	and    $0x1f,%eax
40a986:	c1 f9 05             	sar    $0x5,%ecx
40a989:	8b 0c 8d 20 46 41 00 	mov    0x414620(,%ecx,4),%ecx
40a990:	c1 e0 06             	shl    $0x6,%eax
40a993:	0f be 44 01 04       	movsbl 0x4(%ecx,%eax,1),%eax
40a998:	83 e0 40             	and    $0x40,%eax
40a99b:	5d                   	pop    %ebp
40a99c:	c3                   	ret
40a99d:	8b ff                	mov    %edi,%edi
40a99f:	55                   	push   %ebp
40a9a0:	8b ec                	mov    %esp,%ebp
40a9a2:	83 ec 10             	sub    $0x10,%esp
40a9a5:	a1 84 22 41 00       	mov    0x412284,%eax
40a9aa:	33 c5                	xor    %ebp,%eax
40a9ac:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a9af:	53                   	push   %ebx
40a9b0:	56                   	push   %esi
40a9b1:	8b 75 0c             	mov    0xc(%ebp),%esi
40a9b4:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
40a9b8:	57                   	push   %edi
40a9b9:	0f 85 36 01 00 00    	jne    0x40aaf5
40a9bf:	56                   	push   %esi
40a9c0:	e8 eb 80 ff ff       	call   0x402ab0
40a9c5:	59                   	pop    %ecx
40a9c6:	bb 78 2b 41 00       	mov    $0x412b78,%ebx
40a9cb:	83 f8 ff             	cmp    $0xffffffff,%eax
40a9ce:	74 2e                	je     0x40a9fe
40a9d0:	56                   	push   %esi
40a9d1:	e8 da 80 ff ff       	call   0x402ab0
40a9d6:	59                   	pop    %ecx
40a9d7:	83 f8 fe             	cmp    $0xfffffffe,%eax
40a9da:	74 22                	je     0x40a9fe
40a9dc:	56                   	push   %esi
40a9dd:	e8 ce 80 ff ff       	call   0x402ab0
40a9e2:	c1 f8 05             	sar    $0x5,%eax
40a9e5:	56                   	push   %esi
40a9e6:	8d 3c 85 20 46 41 00 	lea    0x414620(,%eax,4),%edi
40a9ed:	e8 be 80 ff ff       	call   0x402ab0
40a9f2:	83 e0 1f             	and    $0x1f,%eax
40a9f5:	59                   	pop    %ecx
40a9f6:	c1 e0 06             	shl    $0x6,%eax
40a9f9:	03 07                	add    (%edi),%eax
40a9fb:	59                   	pop    %ecx
40a9fc:	eb 02                	jmp    0x40aa00
40a9fe:	8b c3                	mov    %ebx,%eax
40aa00:	8a 40 24             	mov    0x24(%eax),%al
40aa03:	24 7f                	and    $0x7f,%al
40aa05:	3c 02                	cmp    $0x2,%al
40aa07:	0f 84 e8 00 00 00    	je     0x40aaf5
40aa0d:	56                   	push   %esi
40aa0e:	e8 9d 80 ff ff       	call   0x402ab0
40aa13:	59                   	pop    %ecx
40aa14:	83 f8 ff             	cmp    $0xffffffff,%eax
40aa17:	74 2e                	je     0x40aa47
40aa19:	56                   	push   %esi
40aa1a:	e8 91 80 ff ff       	call   0x402ab0
40aa1f:	59                   	pop    %ecx
40aa20:	83 f8 fe             	cmp    $0xfffffffe,%eax
40aa23:	74 22                	je     0x40aa47
40aa25:	56                   	push   %esi
40aa26:	e8 85 80 ff ff       	call   0x402ab0
40aa2b:	c1 f8 05             	sar    $0x5,%eax
40aa2e:	56                   	push   %esi