40d7cb:	0f 84 da 00 00 00    	je     0x40d8ab
40d7d1:	8b ce                	mov    %esi,%ecx
40d7d3:	e8 e0 b5 ff ff       	call   0x408db8
40d7d8:	89 85 08 fb ff ff    	mov    %eax,-0x4f8(%ebp)
40d7de:	85 c0                	test   %eax,%eax
40d7e0:	0f 84 b8 00 00 00    	je     0x40d89e
40d7e6:	51                   	push   %ecx
40d7e7:	8b d3                	mov    %ebx,%edx
40d7e9:	8b ce                	mov    %esi,%ecx
40d7eb:	e8 ab b8 ff ff       	call   0x40909b
40d7f0:	6a 02                	push   $0x2
40d7f2:	8b d3                	mov    %ebx,%edx
40d7f4:	8b ce                	mov    %esi,%ecx
40d7f6:	8b f8                	mov    %eax,%edi
40d7f8:	e8 72 b8 ff ff       	call   0x40906f
40d7fd:	85 c0                	test   %eax,%eax
40d7ff:	0f 84 8c 00 00 00    	je     0x40d891
40d805:	50                   	push   %eax
40d806:	8d 95 18 fb ff ff    	lea    -0x4e8(%ebp),%edx
40d80c:	e8 b4 f0 ff ff       	call   0x40c8c5
40d811:	89 85 04 fb ff ff    	mov    %eax,-0x4fc(%ebp)
40d817:	85 c0                	test   %eax,%eax
40d819:	75 1e                	jne    0x40d839
40d81b:	8b 85 14 fb ff ff    	mov    -0x4ec(%ebp),%eax
40d821:	69 cf dc 04 00 00    	imul   $0x4dc,%edi,%ecx
40d827:	8b 8c 01 d0 02 00 00 	mov    0x2d0(%ecx,%eax,1),%ecx
40d82e:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
40d834:	83 f9 09             	cmp    $0x9,%ecx
40d837:	75 7f                	jne    0x40d8b8
40d839:	8b d3                	mov    %ebx,%edx
40d83b:	8b ce                	mov    %esi,%ecx
40d83d:	e8 a9 b5 ff ff       	call   0x408deb
40d842:	85 c0                	test   %eax,%eax
40d844:	74 72                	je     0x40d8b8
40d846:	69 f7 dc 04 00 00    	imul   $0x4dc,%edi,%esi
40d84c:	81 ec dc 04 00 00    	sub    $0x4dc,%esp
40d852:	b9 37 01 00 00       	mov    $0x137,%ecx
40d857:	8b fc                	mov    %esp,%edi
40d859:	8b d0                	mov    %eax,%edx
40d85b:	03 b5 14 fb ff ff    	add    -0x4ec(%ebp),%esi
40d861:	f7 86 d0 02 00 00 00 	testl  $0x4000,0x2d0(%esi)
40d868:	40 00 00
40d86b:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40d86d:	8b 8d 10 fb ff ff    	mov    -0x4f0(%ebp),%ecx
40d873:	74 07                	je     0x40d87c
40d875:	e8 09 f4 ff ff       	call   0x40cc83
40d87a:	eb 05                	jmp    0x40d881
40d87c:	e8 ea f0 ff ff       	call   0x40c96b
40d881:	8b c8                	mov    %eax,%ecx
40d883:	85 8d 04 fb ff ff    	test   %ecx,-0x4fc(%ebp)
40d889:	74 13                	je     0x40d89e
40d88b:	8b b5 0c fb ff ff    	mov    -0x4f4(%ebp),%esi
40d891:	43                   	inc    %ebx
40d892:	3b 9d 08 fb ff ff    	cmp    -0x4f8(%ebp),%ebx
40d898:	0f 82 48 ff ff ff    	jb     0x40d7e6
40d89e:	33 c0                	xor    %eax,%eax
40d8a0:	3b 9d 08 fb ff ff    	cmp    -0x4f8(%ebp),%ebx
40d8a6:	0f 95 c0             	setne  %al
40d8a9:	eb 0f                	jmp    0x40d8ba
40d8ab:	6a 57                	push   $0x57
40d8ad:	ff 15 74 20 41 00    	call   *0x412074
40d8b3:	e8 3c bf ff ff       	call   0x4097f4
40d8b8:	33 c0                	xor    %eax,%eax
40d8ba:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d8bd:	5f                   	pop    %edi
40d8be:	5e                   	pop    %esi
40d8bf:	33 cd                	xor    %ebp,%ecx
40d8c1:	5b                   	pop    %ebx
40d8c2:	e8 09 14 00 00       	call   0x40ecd0
40d8c7:	c9                   	leave
40d8c8:	c2 08 00             	ret    $0x8
40d8cb:	8b ff                	mov    %edi,%edi
40d8cd:	55                   	push   %ebp
40d8ce:	8b ec                	mov    %esp,%ebp
40d8d0:	83 e4 f8             	and    $0xfffffff8,%esp
40d8d3:	83 ec 0c             	sub    $0xc,%esp
40d8d6:	53                   	push   %ebx
40d8d7:	56                   	push   %esi
40d8d8:	8b c2                	mov    %edx,%eax
40d8da:	57                   	push   %edi
40d8db:	33 ff                	xor    %edi,%edi
40d8dd:	89 44 24 14          	mov    %eax,0x14(%esp)
40d8e1:	85 c0                	test   %eax,%eax
40d8e3:	74 5e                	je     0x40d943
40d8e5:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d8e8:	85 db                	test   %ebx,%ebx
40d8ea:	74 57                	je     0x40d943
40d8ec:	39 7d 0c             	cmp    %edi,0xc(%ebp)
40d8ef:	74 52                	je     0x40d943
40d8f1:	8b cb                	mov    %ebx,%ecx
40d8f3:	e8 c0 b4 ff ff       	call   0x408db8
40d8f8:	89 44 24 10          	mov    %eax,0x10(%esp)
40d8fc:	8b f7                	mov    %edi,%esi
40d8fe:	85 c0                	test   %eax,%eax
40d900:	74 3d                	je     0x40d93f
40d902:	8b d6                	mov    %esi,%edx
40d904:	8b cb                	mov    %ebx,%ecx
40d906:	e8 e0 b4 ff ff       	call   0x408deb
40d90b:	85 c0                	test   %eax,%eax
40d90d:	74 34                	je     0x40d943
40d90f:	ff 75 0c             	push   0xc(%ebp)
40d912:	8b 54 24 18          	mov    0x18(%esp),%edx
40d916:	50                   	push   %eax
40d917:	e8 46 fd ff ff       	call   0x40d662
40d91c:	85 c0                	test   %eax,%eax
40d91e:	74 16                	je     0x40d936
40d920:	8b d6                	mov    %esi,%edx
40d922:	8b cb                	mov    %ebx,%ecx
40d924:	e8 3f b4 ff ff       	call   0x408d68
40d929:	8b 44 24 10          	mov    0x10(%esp),%eax
40d92d:	4e                   	dec    %esi
40d92e:	48                   	dec    %eax
40d92f:	47                   	inc    %edi
40d930:	89 44 24 10          	mov    %eax,0x10(%esp)
40d934:	eb 04                	jmp    0x40d93a
40d936:	8b 44 24 10          	mov    0x10(%esp),%eax
40d93a:	46                   	inc    %esi
40d93b:	3b f0                	cmp    %eax,%esi
40d93d:	72 c3                	jb     0x40d902
40d93f:	8b c7                	mov    %edi,%eax
40d941:	eb 0f                	jmp    0x40d952
40d943:	6a 57                	push   $0x57
40d945:	ff 15 74 20 41 00    	call   *0x412074
40d94b:	e8 a4 be ff ff       	call   0x4097f4
40d950:	33 c0                	xor    %eax,%eax
40d952:	5f                   	pop    %edi
40d953:	5e                   	pop    %esi
40d954:	5b                   	pop    %ebx
40d955:	8b e5                	mov    %ebp,%esp
40d957:	5d                   	pop    %ebp
40d958:	c2 08 00             	ret    $0x8
40d95b:	8b ff                	mov    %edi,%edi
40d95d:	55                   	push   %ebp
40d95e:	8b ec                	mov    %esp,%ebp
40d960:	81 ec e4 04 00 00    	sub    $0x4e4,%esp
40d966:	a1 44 10 41 00       	mov    0x411044,%eax
40d96b:	33 c5                	xor    %ebp,%eax
40d96d:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d970:	53                   	push   %ebx
40d971:	56                   	push   %esi
40d972:	57                   	push   %edi
40d973:	c7 85 1c fb ff ff 02 	movl   $0x2,-0x4e4(%ebp)
40d97a:	00 00 00
40d97d:	8d bd 20 fb ff ff    	lea    -0x4e0(%ebp),%edi
40d983:	be a8 19 40 00       	mov    $0x4019a8,%esi
40d988:	8d 85 2e fb ff ff    	lea    -0x4d2(%ebp),%eax
40d98e:	68 bc 00 00 00       	push   $0xbc
40d993:	6a 00                	push   $0x0
40d995:	50                   	push   %eax
40d996:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d997:	8b d9                	mov    %ecx,%ebx
40d999:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d99a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d99b:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40d99d:	e8 22 1a 00 00       	call   0x40f3c4
40d9a2:	c7 85 ec fb ff ff fc 	movl   $0xfc,-0x414(%ebp)
40d9a9:	00 00 00
40d9ac:	8d bd f0 fb ff ff    	lea    -0x410(%ebp),%edi
40d9b2:	be b8 19 40 00       	mov    $0x4019b8,%esi
40d9b7:	8d 85 00 fc ff ff    	lea    -0x400(%ebp),%eax
40d9bd:	68 ba 00 00 00       	push   $0xba
40d9c2:	6a 00                	push   $0x0
40d9c4:	50                   	push   %eax
40d9c5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d9c6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d9c7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d9c8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d9c9:	e8 f6 19 00 00       	call   0x40f3c4
40d9ce:	c7 85 bc fc ff ff 08 	movl   $0x8,-0x344(%ebp)
40d9d5:	00 00 00
40d9d8:	8d bd c0 fc ff ff    	lea    -0x340(%ebp),%edi
40d9de:	be c8 19 40 00       	mov    $0x4019c8,%esi
40d9e3:	8d 85 ce fc ff ff    	lea    -0x332(%ebp),%eax
40d9e9:	68 bc 00 00 00       	push   $0xbc
40d9ee:	6a 00                	push   $0x0
40d9f0:	50                   	push   %eax
40d9f1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d9f2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d9f3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d9f4:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40d9f6:	e8 c9 19 00 00       	call   0x40f3c4
40d9fb:	c7 85 8c fd ff ff 04 	movl   $0x4,-0x274(%ebp)
40da02:	00 00 00
40da05:	8d bd 90 fd ff ff    	lea    -0x270(%ebp),%edi
40da0b:	be d8 19 40 00       	mov    $0x4019d8,%esi
40da10:	8d 85 9e fd ff ff    	lea    -0x262(%ebp),%eax
40da16:	68 bc 00 00 00       	push   $0xbc
40da1b:	6a 00                	push   $0x0
40da1d:	50                   	push   %eax
40da1e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40da1f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40da20:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40da21:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40da23:	e8 9c 19 00 00       	call   0x40f3c4
40da28:	c7 85 5c fe ff ff 0a 	movl   $0xa,-0x1a4(%ebp)
40da2f:	00 00 00
40da32:	8d bd 60 fe ff ff    	lea    -0x1a0(%ebp),%edi
40da38:	be e8 19 40 00       	mov    $0x4019e8,%esi
40da3d:	8d 85 70 fe ff ff    	lea    -0x190(%ebp),%eax
40da43:	68 ba 00 00 00       	push   $0xba
40da48:	6a 00                	push   $0x0
40da4a:	50                   	push   %eax
40da4b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40da4c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40da4d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40da4e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40da4f:	e8 70 19 00 00       	call   0x40f3c4
40da54:	c7 85 2c ff ff ff 06 	movl   $0x6,-0xd4(%ebp)
40da5b:	00 00 00
40da5e:	8d bd 30 ff ff ff    	lea    -0xd0(%ebp),%edi
40da64:	be f8 19 40 00       	mov    $0x4019f8,%esi
40da69:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
40da6f:	68 ba 00 00 00       	push   $0xba
40da74:	6a 00                	push   $0x0
40da76:	50                   	push   %eax
40da77:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40da78:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40da79:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40da7a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40da7b:	e8 44 19 00 00       	call   0x40f3c4
40da80:	83 c4 48             	add    $0x48,%esp
40da83:	85 db                	test   %ebx,%ebx
40da85:	75 21                	jne    0x40daa8
40da87:	6a 57                	push   $0x57
40da89:	ff 15 74 20 41 00    	call   *0x412074
40da8f:	e8 60 bd ff ff       	call   0x4097f4
40da94:	b8 08 1a 40 00       	mov    $0x401a08,%eax
40da99:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40da9c:	5f                   	pop    %edi
40da9d:	5e                   	pop    %esi
40da9e:	33 cd                	xor    %ebp,%ecx
40daa0:	5b                   	pop    %ebx
40daa1:	e8 2a 12 00 00       	call   0x40ecd0
40daa6:	c9                   	leave
40daa7:	c3                   	ret
40daa8:	53                   	push   %ebx
40daa9:	8d 95 1c fb ff ff    	lea    -0x4e4(%ebp),%edx
40daaf:	e8 11 ee ff ff       	call   0x40c8c5
40dab4:	6a 02                	push   $0x2
40dab6:	59                   	pop    %ecx
40dab7:	2b c1                	sub    %ecx,%eax
40dab9:	74 d9                	je     0x40da94
40dabb:	2b c1                	sub    %ecx,%eax
40dabd:	74 2f                	je     0x40daee
40dabf:	2b c1                	sub    %ecx,%eax
40dac1:	74 24                	je     0x40dae7
40dac3:	2b c1                	sub    %ecx,%eax
40dac5:	74 19                	je     0x40dae0
40dac7:	2b c1                	sub    %ecx,%eax
40dac9:	74 0e                	je     0x40dad9
40dacb:	2d f2 00 00 00       	sub    $0xf2,%eax
40dad0:	75 c2                	jne    0x40da94
40dad2:	b8 0c 1a 40 00       	mov    $0x401a0c,%eax
40dad7:	eb c0                	jmp    0x40da99
40dad9:	b8 24 1a 40 00       	mov    $0x401a24,%eax
40dade:	eb b9                	jmp    0x40da99
40dae0:	b8 18 1a 40 00       	mov    $0x401a18,%eax
40dae5:	eb b2                	jmp    0x40da99
40dae7:	b8 1c 1a 40 00       	mov    $0x401a1c,%eax
40daec:	eb ab                	jmp    0x40da99
40daee:	b8 14 1a 40 00       	mov    $0x401a14,%eax
40daf3:	eb a4                	jmp    0x40da99
40daf5:	8b ff                	mov    %edi,%edi
40daf7:	55                   	push   %ebp
40daf8:	8b ec                	mov    %esp,%ebp
40dafa:	83 ec 14             	sub    $0x14,%esp
40dafd:	53                   	push   %ebx
40dafe:	56                   	push   %esi
40daff:	57                   	push   %edi
40db00:	8b f1                	mov    %ecx,%esi
40db02:	8b da                	mov    %edx,%ebx
40db04:	6a 16                	push   $0x16
40db06:	59                   	pop    %ecx
40db07:	89 75 ec             	mov    %esi,-0x14(%ebp)
40db0a:	e8 48 ba ff ff       	call   0x409557
40db0f:	8b f8                	mov    %eax,%edi
40db11:	85 ff                	test   %edi,%edi
40db13:	0f 84 e9 00 00 00    	je     0x40dc02
40db19:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40db1d:	0f 84 df 00 00 00    	je     0x40dc02
40db23:	8b cf                	mov    %edi,%ecx
40db25:	e8 d0 d2 ff ff       	call   0x40adfa
40db2a:	d1 e8                	shr    $1,%eax
40db2c:	ba 30 12 40 00       	mov    $0x401230,%edx
40db31:	50                   	push   %eax
40db32:	8b cf                	mov    %edi,%ecx
40db34:	e8 bd c8 ff ff       	call   0x40a3f6
40db39:	8b ce                	mov    %esi,%ecx
40db3b:	e8 78 b2 ff ff       	call   0x408db8
40db40:	6a 01                	push   $0x1
40db42:	8d 73 05             	lea    0x5(%ebx),%esi
40db45:	89 45 f4             	mov    %eax,-0xc(%ebp)
40db48:	56                   	push   %esi
40db49:	6a 13                	push   $0x13
40db4b:	33 d2                	xor    %edx,%edx
40db4d:	59                   	pop    %ecx
40db4e:	e8 50 ba ff ff       	call   0x4095a3
40db53:	6a 01                	push   $0x1
40db55:	56                   	push   %esi
40db56:	6a 14                	push   $0x14
40db58:	33 d2                	xor    %edx,%edx
40db5a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40db5d:	59                   	pop    %ecx
40db5e:	e8 40 ba ff ff       	call   0x4095a3
40db63:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40db67:	89 45 f0             	mov    %eax,-0x10(%ebp)
40db6a:	0f 84 92 00 00 00    	je     0x40dc02
40db70:	85 c0                	test   %eax,%eax
40db72:	0f 84 8a 00 00 00    	je     0x40dc02
40db78:	33 f6                	xor    %esi,%esi
40db7a:	39 75 0c             	cmp    %esi,0xc(%ebp)
40db7d:	74 10                	je     0x40db8f
40db7f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40db82:	e8 36 c4 ff ff       	call   0x409fbd
40db87:	89 45 f8             	mov    %eax,-0x8(%ebp)
40db8a:	8b 45 f0             	mov    -0x10(%ebp),%eax
40db8d:	eb 03                	jmp    0x40db92
40db8f:	89 75 f8             	mov    %esi,-0x8(%ebp)
40db92:	39 75 f4             	cmp    %esi,-0xc(%ebp)
40db95:	76 6b                	jbe    0x40dc02
40db97:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40db9a:	8b d6                	mov    %esi,%edx
40db9c:	53                   	push   %ebx
40db9d:	50                   	push   %eax
40db9e:	e8 7d b3 ff ff       	call   0x408f20
40dba3:	ff 75 f0             	push   -0x10(%ebp)
40dba6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40dba9:	ff 75 08             	push   0x8(%ebp)
40dbac:	e8 49 d2 ff ff       	call   0x40adfa
40dbb1:	d1 e8                	shr    $1,%eax
40dbb3:	48                   	dec    %eax
40dbb4:	50                   	push   %eax
40dbb5:	ff 75 fc             	push   -0x4(%ebp)
40dbb8:	e8 67 b8 ff ff       	call   0x409424
40dbbd:	83 c4 10             	add    $0x10,%esp
40dbc0:	8b cf                	mov    %edi,%ecx
40dbc2:	e8 33 d2 ff ff       	call   0x40adfa
40dbc7:	8b 55 fc             	mov    -0x4(%ebp),%edx
40dbca:	8b cf                	mov    %edi,%ecx
40dbcc:	d1 e8                	shr    $1,%eax
40dbce:	50                   	push   %eax
40dbcf:	e8 82 c8 ff ff       	call   0x40a456
40dbd4:	8b 45 f4             	mov    -0xc(%ebp),%eax
40dbd7:	46                   	inc    %esi
40dbd8:	3b f0                	cmp    %eax,%esi
40dbda:	73 21                	jae    0x40dbfd
40dbdc:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
40dbdf:	72 21                	jb     0x40dc02
40dbe1:	8b cf                	mov    %edi,%ecx
40dbe3:	e8 12 d2 ff ff       	call   0x40adfa