40d620:	3b 1d b0 de 41 00    	cmp    0x41deb0,%ebx
40d626:	75 12                	jne    0x40d63a
40d628:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d62b:	3b 0d ec e5 41 00    	cmp    0x41e5ec,%ecx
40d631:	75 07                	jne    0x40d63a
40d633:	83 25 b0 de 41 00 00 	andl   $0x0,0x41deb0
40d63a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d63d:	89 08                	mov    %ecx,(%eax)
40d63f:	8d 42 04             	lea    0x4(%edx),%eax
40d642:	5f                   	pop    %edi
40d643:	5e                   	pop    %esi
40d644:	5b                   	pop    %ebx
40d645:	c9                   	leave
40d646:	c3                   	ret
40d647:	cc                   	int3
40d648:	68 b0 d6 40 00       	push   $0x40d6b0
40d64d:	64 ff 35 00 00 00 00 	push   %fs:0x0
40d654:	8b 44 24 10          	mov    0x10(%esp),%eax
40d658:	89 6c 24 10          	mov    %ebp,0x10(%esp)
40d65c:	8d 6c 24 10          	lea    0x10(%esp),%ebp
40d660:	2b e0                	sub    %eax,%esp
40d662:	53                   	push   %ebx
40d663:	56                   	push   %esi
40d664:	57                   	push   %edi
40d665:	a1 20 c5 41 00       	mov    0x41c520,%eax
40d66a:	31 45 fc             	xor    %eax,-0x4(%ebp)
40d66d:	33 c5                	xor    %ebp,%eax
40d66f:	50                   	push   %eax
40d670:	89 65 e8             	mov    %esp,-0x18(%ebp)
40d673:	ff 75 f8             	push   -0x8(%ebp)
40d676:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d679:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40d680:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d683:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d686:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40d68c:	c3                   	ret
40d68d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40d690:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d697:	59                   	pop    %ecx
40d698:	5f                   	pop    %edi
40d699:	5f                   	pop    %edi
40d69a:	5e                   	pop    %esi
40d69b:	5b                   	pop    %ebx
40d69c:	8b e5                	mov    %ebp,%esp
40d69e:	5d                   	pop    %ebp
40d69f:	51                   	push   %ecx
40d6a0:	c3                   	ret
40d6a1:	cc                   	int3
40d6a2:	cc                   	int3
40d6a3:	cc                   	int3
40d6a4:	cc                   	int3
40d6a5:	cc                   	int3
40d6a6:	cc                   	int3
40d6a7:	cc                   	int3
40d6a8:	cc                   	int3
40d6a9:	cc                   	int3
40d6aa:	cc                   	int3
40d6ab:	cc                   	int3
40d6ac:	cc                   	int3
40d6ad:	cc                   	int3
40d6ae:	cc                   	int3
40d6af:	cc                   	int3
40d6b0:	83 ec 14             	sub    $0x14,%esp
40d6b3:	53                   	push   %ebx
40d6b4:	8b 5c 24 20          	mov    0x20(%esp),%ebx
40d6b8:	55                   	push   %ebp
40d6b9:	56                   	push   %esi
40d6ba:	8b 73 08             	mov    0x8(%ebx),%esi
40d6bd:	33 35 20 c5 41 00    	xor    0x41c520,%esi
40d6c3:	57                   	push   %edi
40d6c4:	8b 06                	mov    (%esi),%eax
40d6c6:	83 f8 fe             	cmp    $0xfffffffe,%eax
40d6c9:	c6 44 24 13 00       	movb   $0x0,0x13(%esp)
40d6ce:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
40d6d5:	00
40d6d6:	8d 7b 10             	lea    0x10(%ebx),%edi
40d6d9:	74 0d                	je     0x40d6e8
40d6db:	8b 4e 04             	mov    0x4(%esi),%ecx
40d6de:	03 cf                	add    %edi,%ecx
40d6e0:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40d6e3:	e8 4d 88 ff ff       	call   0x405f35
40d6e8:	8b 4e 0c             	mov    0xc(%esi),%ecx
40d6eb:	8b 46 08             	mov    0x8(%esi),%eax
40d6ee:	03 cf                	add    %edi,%ecx
40d6f0:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40d6f3:	e8 3d 88 ff ff       	call   0x405f35
40d6f8:	8b 44 24 28          	mov    0x28(%esp),%eax
40d6fc:	f6 40 04 66          	testb  $0x66,0x4(%eax)
40d700:	0f 85 1f 01 00 00    	jne    0x40d825
40d706:	8b 6b 0c             	mov    0xc(%ebx),%ebp
40d709:	83 fd fe             	cmp    $0xfffffffe,%ebp
40d70c:	8b 4c 24 30          	mov    0x30(%esp),%ecx
40d710:	8d 54 24 1c          	lea    0x1c(%esp),%edx
40d714:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40d718:	89 4c 24 20          	mov    %ecx,0x20(%esp)
40d71c:	89 53 fc             	mov    %edx,-0x4(%ebx)
40d71f:	74 5e                	je     0x40d77f
40d721:	8d 44 6d 00          	lea    0x0(%ebp,%ebp,2),%eax
40d725:	8b 4c 86 14          	mov    0x14(%esi,%eax,4),%ecx
40d729:	85 c9                	test   %ecx,%ecx
40d72b:	8d 5c 86 10          	lea    0x10(%esi,%eax,4),%ebx
40d72f:	8b 03                	mov    (%ebx),%eax
40d731:	89 44 24 14          	mov    %eax,0x14(%esp)
40d735:	74 16                	je     0x40d74d
40d737:	8b d7                	mov    %edi,%edx
40d739:	e8 f0 6a 00 00       	call   0x41422e
40d73e:	85 c0                	test   %eax,%eax
40d740:	c6 44 24 13 01       	movb   $0x1,0x13(%esp)
40d745:	7c 44                	jl     0x40d78b
40d747:	7f 4c                	jg     0x40d795
40d749:	8b 44 24 14          	mov    0x14(%esp),%eax
40d74d:	83 f8 fe             	cmp    $0xfffffffe,%eax
40d750:	8b e8                	mov    %eax,%ebp
40d752:	75 cd                	jne    0x40d721
40d754:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
40d759:	74 24                	je     0x40d77f
40d75b:	8b 06                	mov    (%esi),%eax
40d75d:	83 f8 fe             	cmp    $0xfffffffe,%eax
40d760:	74 0d                	je     0x40d76f
40d762:	8b 4e 04             	mov    0x4(%esi),%ecx
40d765:	03 cf                	add    %edi,%ecx
40d767:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40d76a:	e8 c6 87 ff ff       	call   0x405f35
40d76f:	8b 4e 0c             	mov    0xc(%esi),%ecx
40d772:	8b 46 08             	mov    0x8(%esi),%eax
40d775:	03 cf                	add    %edi,%ecx
40d777:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40d77a:	e8 b6 87 ff ff       	call   0x405f35
40d77f:	8b 44 24 18          	mov    0x18(%esp),%eax
40d783:	5f                   	pop    %edi
40d784:	5e                   	pop    %esi
40d785:	5d                   	pop    %ebp
40d786:	5b                   	pop    %ebx
40d787:	83 c4 14             	add    $0x14,%esp
40d78a:	c3                   	ret
40d78b:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
40d792:	00
40d793:	eb c6                	jmp    0x40d75b
40d795:	8b 4c 24 28          	mov    0x28(%esp),%ecx
40d799:	81 39 63 73 6d e0    	cmpl   $0xe06d7363,(%ecx)
40d79f:	75 2a                	jne    0x40d7cb
40d7a1:	83 3d 68 76 41 00 00 	cmpl   $0x0,0x417668
40d7a8:	74 21                	je     0x40d7cb
40d7aa:	68 68 76 41 00       	push   $0x417668
40d7af:	e8 4e 6b 00 00       	call   0x414302
40d7b4:	83 c4 04             	add    $0x4,%esp
40d7b7:	85 c0                	test   %eax,%eax
40d7b9:	74 10                	je     0x40d7cb
40d7bb:	8b 54 24 28          	mov    0x28(%esp),%edx
40d7bf:	6a 01                	push   $0x1
40d7c1:	52                   	push   %edx
40d7c2:	ff 15 68 76 41 00    	call   *0x417668
40d7c8:	83 c4 08             	add    $0x8,%esp
40d7cb:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40d7cf:	e8 8a 6a 00 00       	call   0x41425e
40d7d4:	8b 44 24 2c          	mov    0x2c(%esp),%eax
40d7d8:	39 68 0c             	cmp    %ebp,0xc(%eax)
40d7db:	74 13                	je     0x40d7f0
40d7dd:	68 20 c5 41 00       	push   $0x41c520
40d7e2:	57                   	push   %edi
40d7e3:	8b d5                	mov    %ebp,%edx
40d7e5:	8b c8                	mov    %eax,%ecx
40d7e7:	e8 8c 6a 00 00       	call   0x414278
40d7ec:	8b 44 24 2c          	mov    0x2c(%esp),%eax
40d7f0:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40d7f4:	89 48 0c             	mov    %ecx,0xc(%eax)
40d7f7:	8b 06                	mov    (%esi),%eax
40d7f9:	83 f8 fe             	cmp    $0xfffffffe,%eax
40d7fc:	74 0d                	je     0x40d80b
40d7fe:	8b 4e 04             	mov    0x4(%esi),%ecx
40d801:	03 cf                	add    %edi,%ecx
40d803:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40d806:	e8 2a 87 ff ff       	call   0x405f35
40d80b:	8b 4e 0c             	mov    0xc(%esi),%ecx
40d80e:	8b 56 08             	mov    0x8(%esi),%edx
40d811:	03 cf                	add    %edi,%ecx
40d813:	33 0c 3a             	xor    (%edx,%edi,1),%ecx
40d816:	e8 1a 87 ff ff       	call   0x405f35
40d81b:	8b 4b 08             	mov    0x8(%ebx),%ecx
40d81e:	8b d7                	mov    %edi,%edx
40d820:	e9 20 6a 00 00       	jmp    0x414245
40d825:	83 7b 0c fe          	cmpl   $0xfffffffe,0xc(%ebx)
40d829:	0f 84 50 ff ff ff    	je     0x40d77f
40d82f:	68 20 c5 41 00       	push   $0x41c520
40d834:	57                   	push   %edi
40d835:	8b cb                	mov    %ebx,%ecx
40d837:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
40d83c:	e8 37 6a 00 00       	call   0x414278
40d841:	e9 15 ff ff ff       	jmp    0x40d75b
40d846:	e8 a3 04 00 00       	call   0x40dcee
40d84b:	ff 74 24 04          	push   0x4(%esp)
40d84f:	e8 fa 02 00 00       	call   0x40db4e
40d854:	ff 35 a8 ca 41 00    	push   0x41caa8
40d85a:	e8 e3 ea ff ff       	call   0x40c342
40d85f:	68 ff 00 00 00       	push   $0xff
40d864:	ff d0                	call   *%eax
40d866:	83 c4 0c             	add    $0xc,%esp
40d869:	c3                   	ret
40d86a:	68 a0 80 41 00       	push   $0x4180a0
40d86f:	ff 15 44 70 41 00    	call   *0x417044
40d875:	85 c0                	test   %eax,%eax
40d877:	74 16                	je     0x40d88f
40d879:	68 90 80 41 00       	push   $0x418090
40d87e:	50                   	push   %eax
40d87f:	ff 15 ec 70 41 00    	call   *0x4170ec
40d885:	85 c0                	test   %eax,%eax
40d887:	74 06                	je     0x40d88f
40d889:	ff 74 24 04          	push   0x4(%esp)
40d88d:	ff d0                	call   *%eax
40d88f:	c3                   	ret
40d890:	ff 74 24 04          	push   0x4(%esp)
40d894:	e8 d1 ff ff ff       	call   0x40d86a
40d899:	59                   	pop    %ecx
40d89a:	ff 74 24 04          	push   0x4(%esp)
40d89e:	ff 15 1c 71 41 00    	call   *0x41711c
40d8a4:	cc                   	int3
40d8a5:	6a 08                	push   $0x8
40d8a7:	e8 6b f2 ff ff       	call   0x40cb17
40d8ac:	59                   	pop    %ecx
40d8ad:	c3                   	ret
40d8ae:	6a 08                	push   $0x8
40d8b0:	e8 8a f1 ff ff       	call   0x40ca3f
40d8b5:	59                   	pop    %ecx
40d8b6:	c3                   	ret
40d8b7:	56                   	push   %esi
40d8b8:	8b f0                	mov    %eax,%esi
40d8ba:	eb 0b                	jmp    0x40d8c7
40d8bc:	8b 06                	mov    (%esi),%eax
40d8be:	85 c0                	test   %eax,%eax
40d8c0:	74 02                	je     0x40d8c4
40d8c2:	ff d0                	call   *%eax
40d8c4:	83 c6 04             	add    $0x4,%esi
40d8c7:	3b 74 24 08          	cmp    0x8(%esp),%esi
40d8cb:	72 ef                	jb     0x40d8bc
40d8cd:	5e                   	pop    %esi
40d8ce:	c3                   	ret
40d8cf:	56                   	push   %esi
40d8d0:	8b 74 24 08          	mov    0x8(%esp),%esi
40d8d4:	33 c0                	xor    %eax,%eax
40d8d6:	eb 0f                	jmp    0x40d8e7
40d8d8:	85 c0                	test   %eax,%eax
40d8da:	75 11                	jne    0x40d8ed
40d8dc:	8b 0e                	mov    (%esi),%ecx
40d8de:	85 c9                	test   %ecx,%ecx
40d8e0:	74 02                	je     0x40d8e4
40d8e2:	ff d1                	call   *%ecx
40d8e4:	83 c6 04             	add    $0x4,%esi
40d8e7:	3b 74 24 0c          	cmp    0xc(%esp),%esi
40d8eb:	72 eb                	jb     0x40d8d8
40d8ed:	5e                   	pop    %esi
40d8ee:	c3                   	ret
40d8ef:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40d8f3:	56                   	push   %esi
40d8f4:	33 f6                	xor    %esi,%esi
40d8f6:	3b ce                	cmp    %esi,%ecx
40d8f8:	75 1d                	jne    0x40d917
40d8fa:	e8 fb ba ff ff       	call   0x4093fa
40d8ff:	56                   	push   %esi
40d900:	56                   	push   %esi
40d901:	56                   	push   %esi
40d902:	56                   	push   %esi
40d903:	56                   	push   %esi
40d904:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40d90a:	e8 41 9d ff ff       	call   0x407650
40d90f:	83 c4 14             	add    $0x14,%esp
40d912:	6a 16                	push   $0x16
40d914:	58                   	pop    %eax
40d915:	5e                   	pop    %esi
40d916:	c3                   	ret
40d917:	a1 b8 de 41 00       	mov    0x41deb8,%eax
40d91c:	3b c6                	cmp    %esi,%eax
40d91e:	74 da                	je     0x40d8fa
40d920:	89 01                	mov    %eax,(%ecx)
40d922:	33 c0                	xor    %eax,%eax
40d924:	5e                   	pop    %esi
40d925:	c3                   	ret
40d926:	8b 44 24 04          	mov    0x4(%esp),%eax
40d92a:	56                   	push   %esi
40d92b:	33 f6                	xor    %esi,%esi
40d92d:	3b c6                	cmp    %esi,%eax
40d92f:	75 1d                	jne    0x40d94e
40d931:	e8 c4 ba ff ff       	call   0x4093fa
40d936:	56                   	push   %esi
40d937:	56                   	push   %esi
40d938:	56                   	push   %esi
40d939:	56                   	push   %esi
40d93a:	56                   	push   %esi
40d93b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40d941:	e8 0a 9d ff ff       	call   0x407650
40d946:	83 c4 14             	add    $0x14,%esp
40d949:	6a 16                	push   $0x16
40d94b:	58                   	pop    %eax
40d94c:	5e                   	pop    %esi
40d94d:	c3                   	ret
40d94e:	39 35 b8 de 41 00    	cmp    %esi,0x41deb8
40d954:	74 db                	je     0x40d931
40d956:	8b 0d c4 de 41 00    	mov    0x41dec4,%ecx
40d95c:	89 08                	mov    %ecx,(%eax)
40d95e:	33 c0                	xor    %eax,%eax
40d960:	5e                   	pop    %esi
40d961:	c3                   	ret
40d962:	83 3d d0 e5 41 00 00 	cmpl   $0x0,0x41e5d0
40d969:	74 1a                	je     0x40d985
40d96b:	68 d0 e5 41 00       	push   $0x41e5d0
40d970:	e8 8d 69 00 00       	call   0x414302
40d975:	85 c0                	test   %eax,%eax
40d977:	59                   	pop    %ecx
40d978:	74 0b                	je     0x40d985
40d97a:	ff 74 24 04          	push   0x4(%esp)
40d97e:	ff 15 d0 e5 41 00    	call   *0x41e5d0
40d984:	59                   	pop    %ecx
40d985:	e8 62 65 00 00       	call   0x413eec
40d98a:	68 fc 71 41 00       	push   $0x4171fc
40d98f:	68 dc 71 41 00       	push   $0x4171dc
40d994:	e8 36 ff ff ff       	call   0x40d8cf
40d999:	85 c0                	test   %eax,%eax
40d99b:	59                   	pop    %ecx
40d99c:	59                   	pop    %ecx
40d99d:	75 54                	jne    0x40d9f3
40d99f:	56                   	push   %esi
40d9a0:	57                   	push   %edi
40d9a1:	68 b9 e5 40 00       	push   $0x40e5b9
40d9a6:	e8 71 ae ff ff       	call   0x40881c
40d9ab:	be b4 71 41 00       	mov    $0x4171b4,%esi
40d9b0:	8b c6                	mov    %esi,%eax
40d9b2:	bf d8 71 41 00       	mov    $0x4171d8,%edi
40d9b7:	3b c7                	cmp    %edi,%eax
40d9b9:	59                   	pop    %ecx
40d9ba:	73 0f                	jae    0x40d9cb
40d9bc:	8b 06                	mov    (%esi),%eax
40d9be:	85 c0                	test   %eax,%eax
40d9c0:	74 02                	je     0x40d9c4
40d9c2:	ff d0                	call   *%eax
40d9c4:	83 c6 04             	add    $0x4,%esi
40d9c7:	3b f7                	cmp    %edi,%esi
40d9c9:	72 f1                	jb     0x40d9bc
40d9cb:	83 3d d4 e5 41 00 00 	cmpl   $0x0,0x41e5d4
40d9d2:	5f                   	pop    %edi
40d9d3:	5e                   	pop    %esi
40d9d4:	74 1b                	je     0x40d9f1
40d9d6:	68 d4 e5 41 00       	push   $0x41e5d4
40d9db:	e8 22 69 00 00       	call   0x414302
40d9e0:	85 c0                	test   %eax,%eax
40d9e2:	59                   	pop    %ecx
40d9e3:	74 0c                	je     0x40d9f1
40d9e5:	6a 00                	push   $0x0
40d9e7:	6a 02                	push   $0x2
40d9e9:	6a 00                	push   $0x0
40d9eb:	ff 15 d4 e5 41 00    	call   *0x41e5d4
40d9f1:	33 c0                	xor    %eax,%eax