40880c:	51                   	push   %ecx
40880d:	e8 96 af ff ff       	call   0x4037a8
408812:	e9 da 01 00 00       	jmp    0x4089f1
408817:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
40881d:	50                   	push   %eax
40881e:	68 3f 00 0f 00       	push   $0xf003f
408823:	ff 15 34 f0 40 00    	call   *0x40f034
408829:	8b f0                	mov    %eax,%esi
40882b:	85 f6                	test   %esi,%esi
40882d:	74 31                	je     0x408860
40882f:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
408836:	0f 86 b5 01 00 00    	jbe    0x4089f1
40883c:	8d 85 68 fd ff ff    	lea    -0x298(%ebp),%eax
408842:	89 b5 68 fd ff ff    	mov    %esi,-0x298(%ebp)
408848:	50                   	push   %eax
408849:	c7 85 60 fd ff ff 84 	movl   $0x402e84,-0x2a0(%ebp)
408850:	2e 40 00
408853:	8d 85 60 fd ff ff    	lea    -0x2a0(%ebp),%eax
408859:	ba 4d 31 40 00       	mov    $0x40314d,%edx
40885e:	eb aa                	jmp    0x40880a
408860:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408866:	be 44 01 00 00       	mov    $0x144,%esi
40886b:	8d 85 70 fd ff ff    	lea    -0x290(%ebp),%eax
408871:	68 00 29 40 00       	push   $0x402900
408876:	56                   	push   %esi
408877:	50                   	push   %eax
408878:	e8 ce f5 ff ff       	call   0x407e4b
40887d:	83 c4 10             	add    $0x10,%esp
408880:	8d 85 70 fd ff ff    	lea    -0x290(%ebp),%eax
408886:	50                   	push   %eax
408887:	ff b5 6c fd ff ff    	push   -0x294(%ebp)
40888d:	ff 15 30 f0 40 00    	call   *0x40f030
408893:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408899:	8d 85 70 fd ff ff    	lea    -0x290(%ebp),%eax
40889f:	68 48 2a 40 00       	push   $0x402a48
4088a4:	56                   	push   %esi
4088a5:	50                   	push   %eax
4088a6:	e8 a0 f5 ff ff       	call   0x407e4b
4088ab:	83 c4 10             	add    $0x10,%esp
4088ae:	8d 85 70 fd ff ff    	lea    -0x290(%ebp),%eax
4088b4:	50                   	push   %eax
4088b5:	ff b5 6c fd ff ff    	push   -0x294(%ebp)
4088bb:	ff 15 30 f0 40 00    	call   *0x40f030
4088c1:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
4088c7:	8d 85 70 fd ff ff    	lea    -0x290(%ebp),%eax
4088cd:	68 80 29 40 00       	push   $0x402980
4088d2:	56                   	push   %esi
4088d3:	50                   	push   %eax
4088d4:	e8 72 f5 ff ff       	call   0x407e4b
4088d9:	83 c4 10             	add    $0x10,%esp
4088dc:	8d 85 70 fd ff ff    	lea    -0x290(%ebp),%eax
4088e2:	50                   	push   %eax
4088e3:	ff b5 6c fd ff ff    	push   -0x294(%ebp)
4088e9:	ff 15 30 f0 40 00    	call   *0x40f030
4088ef:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
4088f5:	8d 85 70 fd ff ff    	lea    -0x290(%ebp),%eax
4088fb:	68 08 2a 40 00       	push   $0x402a08
408900:	56                   	push   %esi
408901:	50                   	push   %eax
408902:	e8 44 f5 ff ff       	call   0x407e4b
408907:	83 c4 10             	add    $0x10,%esp
40890a:	8d 85 70 fd ff ff    	lea    -0x290(%ebp),%eax
408910:	50                   	push   %eax
408911:	ff b5 6c fd ff ff    	push   -0x294(%ebp)
408917:	ff 15 30 f0 40 00    	call   *0x40f030
40891d:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408923:	8d 85 70 fd ff ff    	lea    -0x290(%ebp),%eax
408929:	68 a4 2a 40 00       	push   $0x402aa4
40892e:	56                   	push   %esi
40892f:	50                   	push   %eax
408930:	e8 16 f5 ff ff       	call   0x407e4b
408935:	83 c4 10             	add    $0x10,%esp
408938:	8d 85 70 fd ff ff    	lea    -0x290(%ebp),%eax
40893e:	50                   	push   %eax
40893f:	ff b5 6c fd ff ff    	push   -0x294(%ebp)
408945:	ff 15 30 f0 40 00    	call   *0x40f030
40894b:	8b 95 68 fd ff ff    	mov    -0x298(%ebp),%edx
408951:	8d 85 58 fd ff ff    	lea    -0x2a8(%ebp),%eax
408957:	8b 8d 6c fd ff ff    	mov    -0x294(%ebp),%ecx
40895d:	50                   	push   %eax
40895e:	8d 85 54 fd ff ff    	lea    -0x2ac(%ebp),%eax
408964:	50                   	push   %eax
408965:	8d 85 5c fd ff ff    	lea    -0x2a4(%ebp),%eax
40896b:	50                   	push   %eax
40896c:	e8 93 f6 ff ff       	call   0x408004
408971:	8b f0                	mov    %eax,%esi
408973:	85 f6                	test   %esi,%esi
408975:	75 7a                	jne    0x4089f1
408977:	8b 9d 5c fd ff ff    	mov    -0x2a4(%ebp),%ebx
40897d:	8b f7                	mov    %edi,%esi
40897f:	8b 8d 54 fd ff ff    	mov    -0x2ac(%ebp),%ecx
408985:	83 c3 0c             	add    $0xc,%ebx
408988:	8b 95 64 fd ff ff    	mov    -0x29c(%ebp),%edx
40898e:	8b 85 6c fd ff ff    	mov    -0x294(%ebp),%eax
408994:	89 8d 50 fd ff ff    	mov    %ecx,-0x2b0(%ebp)
40899a:	89 95 4c fd ff ff    	mov    %edx,-0x2b4(%ebp)
4089a0:	89 85 68 fd ff ff    	mov    %eax,-0x298(%ebp)
4089a6:	3b f9                	cmp    %ecx,%edi
4089a8:	73 33                	jae    0x4089dd
4089aa:	ff 73 f4             	push   -0xc(%ebx)
4089ad:	ff 73 04             	push   0x4(%ebx)
4089b0:	ff 33                	push   (%ebx)
4089b2:	ff 73 08             	push   0x8(%ebx)
4089b5:	ff 73 fc             	push   -0x4(%ebx)
4089b8:	ff 73 f8             	push   -0x8(%ebx)
4089bb:	52                   	push   %edx
4089bc:	8b 95 68 fd ff ff    	mov    -0x298(%ebp),%edx
4089c2:	e8 eb f4 ff ff       	call   0x407eb2
4089c7:	8b 8d 50 fd ff ff    	mov    -0x2b0(%ebp),%ecx
4089cd:	8b f0                	mov    %eax,%esi
4089cf:	8b 95 4c fd ff ff    	mov    -0x2b4(%ebp),%edx
4089d5:	47                   	inc    %edi
4089d6:	83 c3 18             	add    $0x18,%ebx
4089d9:	85 f6                	test   %esi,%esi
4089db:	74 c9                	je     0x4089a6
4089dd:	85 f6                	test   %esi,%esi
4089df:	75 0a                	jne    0x4089eb
4089e1:	8b 55 0c             	mov    0xc(%ebp),%edx
4089e4:	e8 9e fc ff ff       	call   0x408687
4089e9:	8b f0                	mov    %eax,%esi
4089eb:	8b 9d 60 fd ff ff    	mov    -0x2a0(%ebp),%ebx
4089f1:	83 bd 5c fd ff ff 00 	cmpl   $0x0,-0x2a4(%ebp)
4089f8:	74 0c                	je     0x408a06
4089fa:	ff b5 5c fd ff ff    	push   -0x2a4(%ebp)
408a00:	ff 15 5c f0 40 00    	call   *0x40f05c
408a06:	83 bd 6c fd ff ff 00 	cmpl   $0x0,-0x294(%ebp)
408a0d:	74 0c                	je     0x408a1b
408a0f:	ff b5 6c fd ff ff    	push   -0x294(%ebp)
408a15:	ff 15 00 f0 40 00    	call   *0x40f000
408a1b:	83 bd 58 fd ff ff 00 	cmpl   $0x0,-0x2a8(%ebp)
408a22:	74 0c                	je     0x408a30
408a24:	ff b5 58 fd ff ff    	push   -0x2a8(%ebp)
408a2a:	ff 15 5c f0 40 00    	call   *0x40f05c
408a30:	85 f6                	test   %esi,%esi
408a32:	74 10                	je     0x408a44
408a34:	81 fe 02 01 00 00    	cmp    $0x102,%esi
408a3a:	74 08                	je     0x408a44
408a3c:	ff 75 0c             	push   0xc(%ebp)
408a3f:	e8 22 00 00 00       	call   0x408a66
408a44:	85 db                	test   %ebx,%ebx
408a46:	74 05                	je     0x408a4d
408a48:	83 fb 01             	cmp    $0x1,%ebx
408a4b:	75 06                	jne    0x408a53
408a4d:	ff 15 10 f1 40 00    	call   *0x40f110
408a53:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408a56:	8b c6                	mov    %esi,%eax
408a58:	5f                   	pop    %edi
408a59:	5e                   	pop    %esi
408a5a:	33 cd                	xor    %ebp,%ecx
408a5c:	5b                   	pop    %ebx
408a5d:	e8 fe 0d 00 00       	call   0x409860
408a62:	c9                   	leave
408a63:	c2 08 00             	ret    $0x8
408a66:	8b ff                	mov    %edi,%edi
408a68:	55                   	push   %ebp
408a69:	8b ec                	mov    %esp,%ebp
408a6b:	81 ec a4 02 00 00    	sub    $0x2a4,%esp
408a71:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
408a76:	33 c5                	xor    %ebp,%eax
408a78:	89 45 f8             	mov    %eax,-0x8(%ebp)
408a7b:	83 a5 68 fd ff ff 00 	andl   $0x0,-0x298(%ebp)
408a82:	56                   	push   %esi
408a83:	57                   	push   %edi
408a84:	6a 00                	push   $0x0
408a86:	ff 15 00 00 41 00    	call   *0x410000
408a8c:	8b f0                	mov    %eax,%esi
408a8e:	8d 85 64 fd ff ff    	lea    -0x29c(%ebp),%eax
408a94:	50                   	push   %eax
408a95:	ff 15 48 f1 40 00    	call   *0x40f148
408a9b:	50                   	push   %eax
408a9c:	ff 15 9c f0 40 00    	call   *0x40f09c
408aa2:	85 c0                	test   %eax,%eax
408aa4:	75 42                	jne    0x408ae8
408aa6:	ff 15 7c f0 40 00    	call   *0x40f07c
408aac:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
408ab3:	0f 86 69 01 00 00    	jbe    0x408c22
408ab9:	89 85 60 fd ff ff    	mov    %eax,-0x2a0(%ebp)
408abf:	ba 4d 31 40 00       	mov    $0x40314d,%edx
408ac4:	8d 85 60 fd ff ff    	lea    -0x2a0(%ebp),%eax
408aca:	c7 85 5c fd ff ff bc 	movl   $0x402ebc,-0x2a4(%ebp)
408ad1:	2e 40 00
408ad4:	50                   	push   %eax
408ad5:	8d 85 5c fd ff ff    	lea    -0x2a4(%ebp),%eax
408adb:	50                   	push   %eax
408adc:	51                   	push   %ecx
408add:	51                   	push   %ecx
408ade:	e8 c5 ac ff ff       	call   0x4037a8
408ae3:	e9 3a 01 00 00       	jmp    0x408c22
408ae8:	8d 85 68 fd ff ff    	lea    -0x298(%ebp),%eax
408aee:	50                   	push   %eax
408aef:	68 3f 00 0f 00       	push   $0xf003f
408af4:	ff 15 34 f0 40 00    	call   *0x40f034
408afa:	85 c0                	test   %eax,%eax
408afc:	74 31                	je     0x408b2f
408afe:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
408b05:	0f 86 17 01 00 00    	jbe    0x408c22
408b0b:	89 85 5c fd ff ff    	mov    %eax,-0x2a4(%ebp)
408b11:	ba 4d 31 40 00       	mov    $0x40314d,%edx
408b16:	8d 85 5c fd ff ff    	lea    -0x2a4(%ebp),%eax
408b1c:	c7 85 60 fd ff ff f4 	movl   $0x402ef4,-0x2a0(%ebp)
408b23:	2e 40 00
408b26:	50                   	push   %eax
408b27:	8d 85 60 fd ff ff    	lea    -0x2a0(%ebp),%eax
408b2d:	eb ac                	jmp    0x408adb
408b2f:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408b35:	bf 44 01 00 00       	mov    $0x144,%edi
408b3a:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408b40:	68 00 29 40 00       	push   $0x402900
408b45:	57                   	push   %edi
408b46:	50                   	push   %eax
408b47:	e8 ff f2 ff ff       	call   0x407e4b
408b4c:	83 c4 10             	add    $0x10,%esp
408b4f:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408b55:	50                   	push   %eax
408b56:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
408b5c:	ff 15 30 f0 40 00    	call   *0x40f030
408b62:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408b68:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408b6e:	68 48 2a 40 00       	push   $0x402a48
408b73:	57                   	push   %edi
408b74:	50                   	push   %eax
408b75:	e8 d1 f2 ff ff       	call   0x407e4b
408b7a:	83 c4 10             	add    $0x10,%esp
408b7d:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408b83:	50                   	push   %eax
408b84:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
408b8a:	ff 15 30 f0 40 00    	call   *0x40f030
408b90:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408b96:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408b9c:	68 80 29 40 00       	push   $0x402980
408ba1:	57                   	push   %edi
408ba2:	50                   	push   %eax
408ba3:	e8 a3 f2 ff ff       	call   0x407e4b
408ba8:	83 c4 10             	add    $0x10,%esp
408bab:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408bb1:	50                   	push   %eax
408bb2:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
408bb8:	ff 15 30 f0 40 00    	call   *0x40f030
408bbe:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408bc4:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408bca:	68 08 2a 40 00       	push   $0x402a08
408bcf:	57                   	push   %edi
408bd0:	50                   	push   %eax
408bd1:	e8 75 f2 ff ff       	call   0x407e4b
408bd6:	83 c4 10             	add    $0x10,%esp
408bd9:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408bdf:	50                   	push   %eax
408be0:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
408be6:	ff 15 30 f0 40 00    	call   *0x40f030
408bec:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408bf2:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408bf8:	68 a4 2a 40 00       	push   $0x402aa4
408bfd:	57                   	push   %edi
408bfe:	50                   	push   %eax
408bff:	e8 47 f2 ff ff       	call   0x407e4b
408c04:	83 c4 10             	add    $0x10,%esp
408c07:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408c0d:	50                   	push   %eax
408c0e:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
408c14:	ff 15 30 f0 40 00    	call   *0x40f030
408c1a:	8b 55 08             	mov    0x8(%ebp),%edx
408c1d:	e8 65 fa ff ff       	call   0x408687
408c22:	83 bd 68 fd ff ff 00 	cmpl   $0x0,-0x298(%ebp)
408c29:	74 0c                	je     0x408c37
408c2b:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
408c31:	ff 15 00 f0 40 00    	call   *0x40f000
408c37:	85 f6                	test   %esi,%esi
408c39:	74 05                	je     0x408c40
408c3b:	83 fe 01             	cmp    $0x1,%esi
408c3e:	75 06                	jne    0x408c46
408c40:	ff 15 10 f1 40 00    	call   *0x40f110
408c46:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408c49:	5f                   	pop    %edi
408c4a:	33 cd                	xor    %ebp,%ecx
408c4c:	5e                   	pop    %esi
408c4d:	e8 0e 0c 00 00       	call   0x409860
408c52:	c9                   	leave
408c53:	c2 04 00             	ret    $0x4
408c56:	8b ff                	mov    %edi,%edi
408c58:	55                   	push   %ebp
408c59:	8b ec                	mov    %esp,%ebp
408c5b:	83 ec 0c             	sub    $0xc,%esp
408c5e:	53                   	push   %ebx
408c5f:	56                   	push   %esi
408c60:	57                   	push   %edi
408c61:	68 2c 2f 40 00       	push   $0x402f2c
408c66:	33 f6                	xor    %esi,%esi
408c68:	ff 15 98 f0 40 00    	call   *0x40f098
408c6e:	8b f8                	mov    %eax,%edi
408c70:	85 ff                	test   %edi,%edi
408c72:	75 35                	jne    0x408ca9
408c74:	ff 15 7c f0 40 00    	call   *0x40f07c
408c7a:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
408c81:	8b f0                	mov    %eax,%esi
408c83:	0f 86 8d 00 00 00    	jbe    0x408d16
408c89:	8d 45 fc             	lea    -0x4(%ebp),%eax
408c8c:	89 75 fc             	mov    %esi,-0x4(%ebp)
408c8f:	50                   	push   %eax
408c90:	8d 45 f8             	lea    -0x8(%ebp),%eax
408c93:	c7 45 f8 44 2f 40 00 	movl   $0x402f44,-0x8(%ebp)
408c9a:	50                   	push   %eax
408c9b:	51                   	push   %ecx
408c9c:	51                   	push   %ecx
408c9d:	ba 1e 31 40 00       	mov    $0x40311e,%edx
408ca2:	e8 01 ab ff ff       	call   0x4037a8
408ca7:	eb 6d                	jmp    0x408d16
408ca9:	6a 24                	push   $0x24
408cab:	57                   	push   %edi
408cac:	ff 15 80 f0 40 00    	call   *0x40f080
408cb2:	8b d8                	mov    %eax,%ebx
408cb4:	85 db                	test   %ebx,%ebx
408cb6:	74 28                	je     0x408ce0
408cb8:	8b cb                	mov    %ebx,%ecx
408cba:	ff 15 20 f2 40 00    	call   *0x40f220
408cc0:	ff d3                	call   *%ebx
408cc2:	85 c0                	test   %eax,%eax
408cc4:	74 49                	je     0x408d0f
408cc6:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
408ccd:	0f b7 f0             	movzwl %ax,%esi
408cd0:	76 3d                	jbe    0x408d0f
408cd2:	c7 45 fc 74 2f 40 00 	movl   $0x402f74,-0x4(%ebp)
408cd9:	ba 4d 31 40 00       	mov    $0x40314d,%edx
408cde:	eb 1d                	jmp    0x408cfd
408ce0:	ff 15 7c f0 40 00    	call   *0x40f07c
408ce6:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
408ced:	8b f0                	mov    %eax,%esi
408cef:	76 1e                	jbe    0x408d0f
408cf1:	c7 45 fc 9c 2f 40 00 	movl   $0x402f9c,-0x4(%ebp)
408cf8:	ba 4d 31 40 00       	mov    $0x40314d,%edx
408cfd:	8d 45 f8             	lea    -0x8(%ebp),%eax
408d00:	50                   	push   %eax
408d01:	8d 45 fc             	lea    -0x4(%ebp),%eax
408d04:	50                   	push   %eax
408d05:	51                   	push   %ecx
408d06:	51                   	push   %ecx
408d07:	89 75 f8             	mov    %esi,-0x8(%ebp)
408d0a:	e8 99 aa ff ff       	call   0x4037a8
408d0f:	57                   	push   %edi
408d10:	ff 15 78 f0 40 00    	call   *0x40f078
408d16:	5f                   	pop    %edi
408d17:	8b c6                	mov    %esi,%eax
408d19:	5e                   	pop    %esi
408d1a:	5b                   	pop    %ebx
408d1b:	c9                   	leave
408d1c:	c3                   	ret
408d1d:	8b ff                	mov    %edi,%edi
408d1f:	55                   	push   %ebp
408d20:	8b ec                	mov    %esp,%ebp
408d22:	ff 35 d4 2f 40 00    	push   0x402fd4
408d28:	ff 75 0c             	push   0xc(%ebp)