40aa92:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
40aa98:	50                   	push   %eax
40aa99:	56                   	push   %esi
40aa9a:	e8 91 23 00 00       	call   0x40ce30
40aa9f:	8b 45 0c             	mov    0xc(%ebp),%eax
40aaa2:	6a 00                	push   $0x0
40aaa4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aaa7:	51                   	push   %ecx
40aaa8:	8d 55 ac             	lea    -0x54(%ebp),%edx
40aaab:	52                   	push   %edx
40aaac:	6a 00                	push   $0x0
40aaae:	6a 00                	push   $0x0
40aab0:	68 00 00 00 08       	push   $0x8000000
40aab5:	6a 01                	push   $0x1
40aab7:	6a 00                	push   $0x0
40aab9:	6a 00                	push   $0x0
40aabb:	50                   	push   %eax
40aabc:	8d 8d a4 fd ff ff    	lea    -0x25c(%ebp),%ecx
40aac2:	51                   	push   %ecx
40aac3:	6a 00                	push   $0x0
40aac5:	56                   	push   %esi
40aac6:	e8 75 c4 00 00       	call   0x416f40
40aacb:	83 c4 5c             	add    $0x5c,%esp
40aace:	85 c0                	test   %eax,%eax
40aad0:	75 05                	jne    0x40aad7
40aad2:	5e                   	pop    %esi
40aad3:	8b e5                	mov    %ebp,%esp
40aad5:	5d                   	pop    %ebp
40aad6:	c3                   	ret
40aad7:	8b 55 f0             	mov    -0x10(%ebp),%edx
40aada:	6a 00                	push   $0x0
40aadc:	6a 00                	push   $0x0
40aade:	52                   	push   %edx
40aadf:	56                   	push   %esi
40aae0:	e8 1b c0 00 00       	call   0x416b00
40aae5:	83 c4 10             	add    $0x10,%esp
40aae8:	b8 01 00 00 00       	mov    $0x1,%eax
40aaed:	5e                   	pop    %esi
40aaee:	8b e5                	mov    %ebp,%esp
40aaf0:	5d                   	pop    %ebp
40aaf1:	c3                   	ret
40aaf2:	7a 84                	jp     0x40aa78
40aaf4:	58                   	pop    %eax
40aaf5:	6f                   	outsl  %ds:(%esi),(%dx)
40aaf6:	20 1e                	and    %bl,(%esi)
40aaf8:	22 90 88 c5 cf de    	and    -0x21303a78(%eax),%dl
40aafe:	df 40 55             	filds  0x55(%eax)
40ab01:	8b ec                	mov    %esp,%ebp
40ab03:	81 ec 00 04 00 00    	sub    $0x400,%esp
40ab09:	56                   	push   %esi
40ab0a:	33 c0                	xor    %eax,%eax
40ab0c:	68 fe 03 00 00       	push   $0x3fe
40ab11:	50                   	push   %eax
40ab12:	8d 8d 02 fc ff ff    	lea    -0x3fe(%ebp),%ecx
40ab18:	51                   	push   %ecx
40ab19:	66 89 85 00 fc ff ff 	mov    %ax,-0x400(%ebp)
40ab20:	e8 bb d8 00 00       	call   0x4183e0
40ab25:	8b 75 08             	mov    0x8(%ebp),%esi
40ab28:	83 c4 0c             	add    $0xc,%esp
40ab2b:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
40ab2f:	6a 01                	push   $0x1
40ab31:	74 14                	je     0x40ab47
40ab33:	6a 0e                	push   $0xe
40ab35:	8d 95 00 fc ff ff    	lea    -0x400(%ebp),%edx
40ab3b:	52                   	push   %edx
40ab3c:	56                   	push   %esi
40ab3d:	e8 2e dc ff ff       	call   0x408770
40ab42:	83 c4 10             	add    $0x10,%esp
40ab45:	eb 4d                	jmp    0x40ab94
40ab47:	6a 0d                	push   $0xd
40ab49:	8d 85 00 fc ff ff    	lea    -0x400(%ebp),%eax
40ab4f:	50                   	push   %eax
40ab50:	56                   	push   %esi
40ab51:	e8 1a dc ff ff       	call   0x408770
40ab56:	8d 8d 00 fc ff ff    	lea    -0x400(%ebp),%ecx
40ab5c:	51                   	push   %ecx
40ab5d:	e8 ee da 00 00       	call   0x418650
40ab62:	ba 5c 00 00 00       	mov    $0x5c,%edx
40ab67:	66 89 94 45 00 fc ff 	mov    %dx,-0x400(%ebp,%eax,2)
40ab6e:	ff
40ab6f:	8d 85 00 fc ff ff    	lea    -0x400(%ebp),%eax
40ab75:	50                   	push   %eax
40ab76:	e8 d5 da 00 00       	call   0x418650
40ab7b:	8d 8c 45 00 fc ff ff 	lea    -0x400(%ebp,%eax,2),%ecx
40ab82:	51                   	push   %ecx
40ab83:	56                   	push   %esi
40ab84:	e8 c7 fa ff ff       	call   0x40a650
40ab89:	83 c4 20             	add    $0x20,%esp
40ab8c:	85 c0                	test   %eax,%eax
40ab8e:	0f 84 b3 01 00 00    	je     0x40ad47
40ab94:	53                   	push   %ebx
40ab95:	6a 01                	push   $0x1
40ab97:	8d 95 00 fc ff ff    	lea    -0x400(%ebp),%edx
40ab9d:	6a 0f                	push   $0xf
40ab9f:	52                   	push   %edx
40aba0:	e8 ab da 00 00       	call   0x418650
40aba5:	83 c4 04             	add    $0x4,%esp
40aba8:	8d 84 45 00 fc ff ff 	lea    -0x400(%ebp,%eax,2),%eax
40abaf:	50                   	push   %eax
40abb0:	56                   	push   %esi
40abb1:	e8 ba db ff ff       	call   0x408770
40abb6:	6a 0b                	push   $0xb
40abb8:	6a 0a                	push   $0xa
40abba:	e8 51 d3 ff ff       	call   0x407f10
40abbf:	8a d8                	mov    %al,%bl
40abc1:	83 c4 18             	add    $0x18,%esp
40abc4:	0f b6 cb             	movzbl %bl,%ecx
40abc7:	6a 01                	push   $0x1
40abc9:	51                   	push   %ecx
40abca:	8d 95 00 fc ff ff    	lea    -0x400(%ebp),%edx
40abd0:	52                   	push   %edx
40abd1:	e8 7a da 00 00       	call   0x418650
40abd6:	83 c4 04             	add    $0x4,%esp
40abd9:	8d 84 45 00 fc ff ff 	lea    -0x400(%ebp,%eax,2),%eax
40abe0:	50                   	push   %eax
40abe1:	56                   	push   %esi
40abe2:	e8 89 db ff ff       	call   0x408770
40abe7:	83 c4 10             	add    $0x10,%esp
40abea:	80 fb 0b             	cmp    $0xb,%bl
40abed:	5b                   	pop    %ebx
40abee:	0f 85 ef 00 00 00    	jne    0x40ace3
40abf4:	68 1f 02 02 00       	push   $0x2021f
40abf9:	8d 8d 00 fc ff ff    	lea    -0x400(%ebp),%ecx
40abff:	51                   	push   %ecx
40ac00:	8d 55 08             	lea    0x8(%ebp),%edx
40ac03:	52                   	push   %edx
40ac04:	56                   	push   %esi
40ac05:	e8 06 fb ff ff       	call   0x40a710
40ac0a:	83 c4 10             	add    $0x10,%esp
40ac0d:	85 c0                	test   %eax,%eax
40ac0f:	0f 84 aa 00 00 00    	je     0x40acbf
40ac15:	8b 45 08             	mov    0x8(%ebp),%eax
40ac18:	50                   	push   %eax
40ac19:	56                   	push   %esi
40ac1a:	e8 d1 c0 00 00       	call   0x416cf0
40ac1f:	83 c4 08             	add    $0x8,%esp
40ac22:	6a 01                	push   $0x1
40ac24:	8d 8d 00 fc ff ff    	lea    -0x400(%ebp),%ecx
40ac2a:	6a 0c                	push   $0xc
40ac2c:	51                   	push   %ecx
40ac2d:	e8 1e da 00 00       	call   0x418650
40ac32:	83 c4 04             	add    $0x4,%esp
40ac35:	8d 94 45 00 fc ff ff 	lea    -0x400(%ebp,%eax,2),%edx
40ac3c:	52                   	push   %edx
40ac3d:	56                   	push   %esi
40ac3e:	e8 2d db ff ff       	call   0x408770
40ac43:	68 1f 02 02 00       	push   $0x2021f
40ac48:	8d 85 00 fc ff ff    	lea    -0x400(%ebp),%eax
40ac4e:	50                   	push   %eax
40ac4f:	8d 4d 08             	lea    0x8(%ebp),%ecx
40ac52:	51                   	push   %ecx
40ac53:	56                   	push   %esi
40ac54:	e8 b7 fa ff ff       	call   0x40a710
40ac59:	8b 55 08             	mov    0x8(%ebp),%edx
40ac5c:	52                   	push   %edx
40ac5d:	56                   	push   %esi
40ac5e:	e8 8d c0 00 00       	call   0x416cf0
40ac63:	83 c4 28             	add    $0x28,%esp
40ac66:	6a 01                	push   $0x1
40ac68:	8d 85 00 fc ff ff    	lea    -0x400(%ebp),%eax
40ac6e:	6a 0a                	push   $0xa
40ac70:	50                   	push   %eax
40ac71:	e8 da d9 00 00       	call   0x418650
40ac76:	83 c4 04             	add    $0x4,%esp
40ac79:	8d 8c 45 00 fc ff ff 	lea    -0x400(%ebp,%eax,2),%ecx
40ac80:	51                   	push   %ecx
40ac81:	56                   	push   %esi
40ac82:	e8 e9 da ff ff       	call   0x408770
40ac87:	68 1f 02 02 00       	push   $0x2021f
40ac8c:	8d 95 00 fc ff ff    	lea    -0x400(%ebp),%edx
40ac92:	52                   	push   %edx
40ac93:	8d 45 08             	lea    0x8(%ebp),%eax
40ac96:	50                   	push   %eax
40ac97:	56                   	push   %esi
40ac98:	e8 73 fa ff ff       	call   0x40a710
40ac9d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40aca0:	51                   	push   %ecx
40aca1:	6a 00                	push   $0x0
40aca3:	8d 55 08             	lea    0x8(%ebp),%edx
40aca6:	52                   	push   %edx
40aca7:	56                   	push   %esi
40aca8:	e8 13 fb ff ff       	call   0x40a7c0
40acad:	8b 45 08             	mov    0x8(%ebp),%eax
40acb0:	50                   	push   %eax
40acb1:	56                   	push   %esi
40acb2:	e8 39 c0 00 00       	call   0x416cf0
40acb7:	83 c4 38             	add    $0x38,%esp
40acba:	5e                   	pop    %esi
40acbb:	8b e5                	mov    %ebp,%esp
40acbd:	5d                   	pop    %ebp
40acbe:	c3                   	ret
40acbf:	6a 01                	push   $0x1
40acc1:	8d 8d 00 fc ff ff    	lea    -0x400(%ebp),%ecx
40acc7:	6a 0a                	push   $0xa
40acc9:	51                   	push   %ecx
40acca:	e8 81 d9 00 00       	call   0x418650
40accf:	83 c4 04             	add    $0x4,%esp
40acd2:	8d 94 45 ee fb ff ff 	lea    -0x412(%ebp,%eax,2),%edx
40acd9:	52                   	push   %edx
40acda:	56                   	push   %esi
40acdb:	e8 90 da ff ff       	call   0x408770
40ace0:	83 c4 10             	add    $0x10,%esp
40ace3:	68 1f 02 02 00       	push   $0x2021f
40ace8:	8d 85 00 fc ff ff    	lea    -0x400(%ebp),%eax
40acee:	50                   	push   %eax
40acef:	8d 4d 08             	lea    0x8(%ebp),%ecx
40acf2:	51                   	push   %ecx
40acf3:	56                   	push   %esi
40acf4:	e8 17 fa ff ff       	call   0x40a710
40acf9:	8b 55 0c             	mov    0xc(%ebp),%edx
40acfc:	52                   	push   %edx
40acfd:	6a 00                	push   $0x0
40acff:	8d 45 08             	lea    0x8(%ebp),%eax
40ad02:	50                   	push   %eax
40ad03:	56                   	push   %esi
40ad04:	e8 b7 fa ff ff       	call   0x40a7c0
40ad09:	83 c4 20             	add    $0x20,%esp
40ad0c:	83 be 54 0b 00 00 00 	cmpl   $0x0,0xb54(%esi)
40ad13:	74 25                	je     0x40ad3a
40ad15:	8d 8d 00 fc ff ff    	lea    -0x400(%ebp),%ecx
40ad1b:	51                   	push   %ecx
40ad1c:	e8 2f d9 00 00       	call   0x418650
40ad21:	03 c0                	add    %eax,%eax
40ad23:	50                   	push   %eax
40ad24:	8b 86 54 0b 00 00    	mov    0xb54(%esi),%eax
40ad2a:	8d 95 00 fc ff ff    	lea    -0x400(%ebp),%edx
40ad30:	52                   	push   %edx
40ad31:	50                   	push   %eax
40ad32:	e8 29 d6 00 00       	call   0x418360
40ad37:	83 c4 10             	add    $0x10,%esp
40ad3a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ad3d:	51                   	push   %ecx
40ad3e:	56                   	push   %esi
40ad3f:	e8 ac bf 00 00       	call   0x416cf0
40ad44:	83 c4 08             	add    $0x8,%esp
40ad47:	5e                   	pop    %esi
40ad48:	8b e5                	mov    %ebp,%esp
40ad4a:	5d                   	pop    %ebp
40ad4b:	c3                   	ret
40ad4c:	1f                   	pop    %ds
40ad4d:	ec                   	in     (%dx),%al
40ad4e:	fa                   	cli
40ad4f:	62 55 8b             	bound  %edx,-0x75(%ebp)
40ad52:	ec                   	in     (%dx),%al
40ad53:	81 ec 10 04 00 00    	sub    $0x410,%esp
40ad59:	56                   	push   %esi
40ad5a:	57                   	push   %edi
40ad5b:	33 c0                	xor    %eax,%eax
40ad5d:	68 0e 04 00 00       	push   $0x40e
40ad62:	50                   	push   %eax
40ad63:	8d 8d f2 fb ff ff    	lea    -0x40e(%ebp),%ecx
40ad69:	51                   	push   %ecx
40ad6a:	66 89 85 f0 fb ff ff 	mov    %ax,-0x410(%ebp)
40ad71:	e8 6a d6 00 00       	call   0x4183e0
40ad76:	8b 75 08             	mov    0x8(%ebp),%esi
40ad79:	6a 01                	push   $0x1
40ad7b:	6a 09                	push   $0x9
40ad7d:	8d 95 f0 fb ff ff    	lea    -0x410(%ebp),%edx
40ad83:	52                   	push   %edx
40ad84:	56                   	push   %esi
40ad85:	e8 e6 d9 ff ff       	call   0x408770
40ad8a:	8b 7d 0c             	mov    0xc(%ebp),%edi
40ad8d:	57                   	push   %edi
40ad8e:	e8 bd d8 00 00       	call   0x418650
40ad93:	83 c4 20             	add    $0x20,%esp
40ad96:	03 c0                	add    %eax,%eax
40ad98:	50                   	push   %eax
40ad99:	8d 85 f0 fb ff ff    	lea    -0x410(%ebp),%eax
40ad9f:	57                   	push   %edi
40ada0:	50                   	push   %eax
40ada1:	e8 aa d8 00 00       	call   0x418650
40ada6:	8d 8c 45 f0 fb ff ff 	lea    -0x410(%ebp,%eax,2),%ecx
40adad:	83 c4 04             	add    $0x4,%esp
40adb0:	51                   	push   %ecx
40adb1:	e8 aa d5 00 00       	call   0x418360
40adb6:	8d 95 f0 fb ff ff    	lea    -0x410(%ebp),%edx
40adbc:	52                   	push   %edx
40adbd:	e8 8e d8 00 00       	call   0x418650
40adc2:	8d 95 f0 fb ff ff    	lea    -0x410(%ebp),%edx
40adc8:	52                   	push   %edx
40adc9:	b9 22 00 00 00       	mov    $0x22,%ecx
40adce:	56                   	push   %esi
40adcf:	66 89 8c 45 f0 fb ff 	mov    %cx,-0x410(%ebp,%eax,2)
40add6:	ff
40add7:	e8 64 fc ff ff       	call   0x40aa40
40addc:	83 c4 18             	add    $0x18,%esp
40addf:	5f                   	pop    %edi
40ade0:	5e                   	pop    %esi
40ade1:	8b e5                	mov    %ebp,%esp
40ade3:	5d                   	pop    %ebp
40ade4:	c3                   	ret
40ade5:	a9 c6 46 2d 6f       	test   $0x6f2d46c6,%eax
40adea:	32 02                	xor    (%edx),%al
40adec:	3e b7 35             	ds mov $0x35,%bh
40adef:	ab                   	stos   %eax,%es:(%edi)
40adf0:	55                   	push   %ebp
40adf1:	8b ec                	mov    %esp,%ebp
40adf3:	81 ec 00 04 00 00    	sub    $0x400,%esp
40adf9:	56                   	push   %esi
40adfa:	33 c0                	xor    %eax,%eax
40adfc:	68 fe 03 00 00       	push   $0x3fe
40ae01:	50                   	push   %eax
40ae02:	8d 8d 02 fc ff ff    	lea    -0x3fe(%ebp),%ecx
40ae08:	51                   	push   %ecx
40ae09:	66 89 85 00 fc ff ff 	mov    %ax,-0x400(%ebp)
40ae10:	e8 cb d5 00 00       	call   0x4183e0
40ae15:	8b 75 08             	mov    0x8(%ebp),%esi
40ae18:	83 c4 0c             	add    $0xc,%esp
40ae1b:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
40ae1f:	6a 01                	push   $0x1
40ae21:	0f 84 a0 00 00 00    	je     0x40aec7
40ae27:	6a 0e                	push   $0xe
40ae29:	8d 95 00 fc ff ff    	lea    -0x400(%ebp),%edx
40ae2f:	52                   	push   %edx
40ae30:	56                   	push   %esi
40ae31:	e8 3a d9 ff ff       	call   0x408770
40ae36:	83 c4 10             	add    $0x10,%esp
40ae39:	57                   	push   %edi
40ae3a:	6a 01                	push   $0x1
40ae3c:	8d 95 00 fc ff ff    	lea    -0x400(%ebp),%edx
40ae42:	6a 0f                	push   $0xf
40ae44:	52                   	push   %edx
40ae45:	e8 06 d8 00 00       	call   0x418650
40ae4a:	83 c4 04             	add    $0x4,%esp
40ae4d:	8d 84 45 00 fc ff ff 	lea    -0x400(%ebp,%eax,2),%eax
40ae54:	50                   	push   %eax
40ae55:	56                   	push   %esi
40ae56:	e8 15 d9 ff ff       	call   0x408770
40ae5b:	8d 8d 00 fc ff ff    	lea    -0x400(%ebp),%ecx
40ae61:	51                   	push   %ecx
40ae62:	e8 e9 d7 00 00       	call   0x418650
40ae67:	6a 01                	push   $0x1
40ae69:	8d bc 45 00 fc ff ff 	lea    -0x400(%ebp,%eax,2),%edi
40ae70:	6a 0a                	push   $0xa
40ae72:	57                   	push   %edi
40ae73:	56                   	push   %esi
40ae74:	e8 f7 d8 ff ff       	call   0x408770
40ae79:	6a 00                	push   $0x0
40ae7b:	8d 95 00 fc ff ff    	lea    -0x400(%ebp),%edx
40ae81:	52                   	push   %edx
40ae82:	8d 45 08             	lea    0x8(%ebp),%eax
40ae85:	50                   	push   %eax
40ae86:	56                   	push   %esi
40ae87:	e8 f4 f9 ff ff       	call   0x40a880
40ae8c:	83 c4 34             	add    $0x34,%esp
40ae8f:	85 c0                	test   %eax,%eax
40ae91:	0f 84 82 00 00 00    	je     0x40af19
40ae97:	8d 8d 00 fc ff ff    	lea    -0x400(%ebp),%ecx
40ae9d:	51                   	push   %ecx
40ae9e:	e8 ad d7 00 00       	call   0x418650