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
40d9f3:	c3                   	ret
40d9f4:	6a 0c                	push   $0xc
40d9f6:	68 b8 ac 41 00       	push   $0x41acb8
40d9fb:	e8 48 fc ff ff       	call   0x40d648
40da00:	6a 08                	push   $0x8
40da02:	e8 10 f1 ff ff       	call   0x40cb17
40da07:	59                   	pop    %ecx
40da08:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40da0c:	33 f6                	xor    %esi,%esi
40da0e:	46                   	inc    %esi
40da0f:	39 35 f8 de 41 00    	cmp    %esi,0x41def8
40da15:	74 6b                	je     0x40da82
40da17:	89 35 f4 de 41 00    	mov    %esi,0x41def4
40da1d:	8a 45 10             	mov    0x10(%ebp),%al
40da20:	a2 f0 de 41 00       	mov    %al,0x41def0
40da25:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40da29:	75 47                	jne    0x40da72
40da2b:	ff 35 c8 e5 41 00    	push   0x41e5c8
40da31:	e8 0c e9 ff ff       	call   0x40c342
40da36:	8b f8                	mov    %eax,%edi
40da38:	ff 35 c4 e5 41 00    	push   0x41e5c4
40da3e:	e8 ff e8 ff ff       	call   0x40c342
40da43:	59                   	pop    %ecx
40da44:	59                   	pop    %ecx
40da45:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40da48:	85 ff                	test   %edi,%edi
40da4a:	74 16                	je     0x40da62
40da4c:	83 6d e4 04          	subl   $0x4,-0x1c(%ebp)
40da50:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
40da53:	72 0d                	jb     0x40da62
40da55:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40da58:	8b 00                	mov    (%eax),%eax
40da5a:	85 c0                	test   %eax,%eax
40da5c:	74 ee                	je     0x40da4c
40da5e:	ff d0                	call   *%eax
40da60:	eb ea                	jmp    0x40da4c
40da62:	68 0c 72 41 00       	push   $0x41720c
40da67:	b8 00 72 41 00       	mov    $0x417200,%eax
40da6c:	e8 46 fe ff ff       	call   0x40d8b7
40da71:	59                   	pop    %ecx
40da72:	68 18 72 41 00       	push   $0x417218
40da77:	b8 10 72 41 00       	mov    $0x417210,%eax
40da7c:	e8 36 fe ff ff       	call   0x40d8b7
40da81:	59                   	pop    %ecx
40da82:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40da89:	e8 1f 00 00 00       	call   0x40daad
40da8e:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40da92:	75 28                	jne    0x40dabc
40da94:	89 35 f8 de 41 00    	mov    %esi,0x41def8
40da9a:	6a 08                	push   $0x8
40da9c:	e8 9e ef ff ff       	call   0x40ca3f
40daa1:	59                   	pop    %ecx
40daa2:	ff 75 08             	push   0x8(%ebp)
40daa5:	e8 e6 fd ff ff       	call   0x40d890
40daaa:	33 f6                	xor    %esi,%esi
40daac:	46                   	inc    %esi
40daad:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40dab1:	74 08                	je     0x40dabb
40dab3:	6a 08                	push   $0x8
40dab5:	e8 85 ef ff ff       	call   0x40ca3f
40daba:	59                   	pop    %ecx
40dabb:	c3                   	ret
40dabc:	e8 cc fb ff ff       	call   0x40d68d
40dac1:	c3                   	ret
40dac2:	6a 00                	push   $0x0
40dac4:	6a 00                	push   $0x0
40dac6:	ff 74 24 0c          	push   0xc(%esp)
40daca:	e8 25 ff ff ff       	call   0x40d9f4
40dacf:	83 c4 0c             	add    $0xc,%esp
40dad2:	c3                   	ret
40dad3:	6a 00                	push   $0x0
40dad5:	6a 01                	push   $0x1
40dad7:	ff 74 24 0c          	push   0xc(%esp)
40dadb:	e8 14 ff ff ff       	call   0x40d9f4
40dae0:	83 c4 0c             	add    $0xc,%esp
40dae3:	c3                   	ret
40dae4:	6a 01                	push   $0x1
40dae6:	6a 00                	push   $0x0
40dae8:	6a 00                	push   $0x0
40daea:	e8 05 ff ff ff       	call   0x40d9f4
40daef:	83 c4 0c             	add    $0xc,%esp
40daf2:	c3                   	ret
40daf3:	6a 01                	push   $0x1
40daf5:	6a 01                	push   $0x1
40daf7:	6a 00                	push   $0x0
40daf9:	e8 f6 fe ff ff       	call   0x40d9f4
40dafe:	83 c4 0c             	add    $0xc,%esp
40db01:	c3                   	ret
40db02:	56                   	push   %esi
40db03:	e8 31 e8 ff ff       	call   0x40c339
40db08:	8b f0                	mov    %eax,%esi
40db0a:	56                   	push   %esi
40db0b:	e8 e9 e6 ff ff       	call   0x40c1f9
40db10:	56                   	push   %esi
40db11:	e8 45 65 00 00       	call   0x41405b
40db16:	56                   	push   %esi
40db17:	e8 2e 9a ff ff       	call   0x40754a
40db1c:	56                   	push   %esi
40db1d:	e8 62 2f 00 00       	call   0x410a84
40db22:	56                   	push   %esi
40db23:	e8 46 68 00 00       	call   0x41436e
40db28:	56                   	push   %esi
40db29:	e8 62 5e 00 00       	call   0x413990
40db2e:	56                   	push   %esi
40db2f:	e8 f3 01 00 00       	call   0x40dd27
40db34:	56                   	push   %esi
40db35:	e8 52 ed ff ff       	call   0x40c88c
40db3a:	68 d3 da 40 00       	push   $0x40dad3
40db3f:	e8 92 e7 ff ff       	call   0x40c2d6
40db44:	83 c4 24             	add    $0x24,%esp
40db47:	a3 a8 ca 41 00       	mov    %eax,0x41caa8
40db4c:	5e                   	pop    %esi
40db4d:	c3                   	ret
40db4e:	51                   	push   %ecx
40db4f:	53                   	push   %ebx
40db50:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
40db54:	56                   	push   %esi
40db55:	57                   	push   %edi
40db56:	33 f6                	xor    %esi,%esi
40db58:	33 ff                	xor    %edi,%edi
40db5a:	3b 1c fd b0 ca 41 00 	cmp    0x41cab0(,%edi,8),%ebx
40db61:	74 06                	je     0x40db69
40db63:	47                   	inc    %edi
40db64:	83 ff 17             	cmp    $0x17,%edi
40db67:	7c f1                	jl     0x40db5a
40db69:	83 ff 17             	cmp    $0x17,%edi
40db6c:	0f 83 77 01 00 00    	jae    0x40dce9
40db72:	55                   	push   %ebp
40db73:	6a 03                	push   $0x3
40db75:	e8 9c 69 00 00       	call   0x414516
40db7a:	83 f8 01             	cmp    $0x1,%eax
40db7d:	59                   	pop    %ecx
40db7e:	0f 84 31 01 00 00    	je     0x40dcb5
40db84:	6a 03                	push   $0x3
40db86:	e8 8b 69 00 00       	call   0x414516
40db8b:	85 c0                	test   %eax,%eax
40db8d:	59                   	pop    %ecx
40db8e:	75 0d                	jne    0x40db9d
40db90:	83 3d 30 c5 41 00 01 	cmpl   $0x1,0x41c530
40db97:	0f 84 18 01 00 00    	je     0x40dcb5
40db9d:	81 fb fc 00 00 00    	cmp    $0xfc,%ebx
40dba3:	0f 84 3f 01 00 00    	je     0x40dce8
40dba9:	68 48 86 41 00       	push   $0x418648
40dbae:	bb 14 03 00 00       	mov    $0x314,%ebx
40dbb3:	53                   	push   %ebx
40dbb4:	bd 00 df 41 00       	mov    $0x41df00,%ebp
40dbb9:	55                   	push   %ebp
40dbba:	e8 dc d0 ff ff       	call   0x40ac9b
40dbbf:	83 c4 0c             	add    $0xc,%esp
40dbc2:	85 c0                	test   %eax,%eax
40dbc4:	74 0d                	je     0x40dbd3
40dbc6:	56                   	push   %esi
40dbc7:	56                   	push   %esi
40dbc8:	56                   	push   %esi
40dbc9:	56                   	push   %esi
40dbca:	56                   	push   %esi
40dbcb:	e8 84 99 ff ff       	call   0x407554
40dbd0:	83 c4 14             	add    $0x14,%esp
40dbd3:	68 04 01 00 00       	push   $0x104
40dbd8:	be 19 df 41 00       	mov    $0x41df19,%esi
40dbdd:	56                   	push   %esi
40dbde:	6a 00                	push   $0x0
40dbe0:	c6 05 1d e0 41 00 00 	movb   $0x0,0x41e01d
40dbe7:	ff 15 24 71 41 00    	call   *0x417124
40dbed:	85 c0                	test   %eax,%eax
40dbef:	75 26                	jne    0x40dc17
40dbf1:	68 30 86 41 00       	push   $0x418630
40dbf6:	68 fb 02 00 00       	push   $0x2fb
40dbfb:	56                   	push   %esi
40dbfc:	e8 9a d0 ff ff       	call   0x40ac9b
40dc01:	83 c4 0c             	add    $0xc,%esp
40dc04:	85 c0                	test   %eax,%eax
40dc06:	74 0f                	je     0x40dc17
40dc08:	33 c0                	xor    %eax,%eax
40dc0a:	50                   	push   %eax