40a883:	81 ec 0c 06 00 00    	sub    $0x60c,%esp
40a889:	53                   	push   %ebx
40a88a:	56                   	push   %esi
40a88b:	57                   	push   %edi
40a88c:	33 db                	xor    %ebx,%ebx
40a88e:	68 fe 01 00 00       	push   $0x1fe
40a893:	8d 8d f6 f9 ff ff    	lea    -0x60a(%ebp),%ecx
40a899:	33 c0                	xor    %eax,%eax
40a89b:	53                   	push   %ebx
40a89c:	51                   	push   %ecx
40a89d:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40a8a0:	66 89 85 f4 f9 ff ff 	mov    %ax,-0x60c(%ebp)
40a8a7:	e8 34 db 00 00       	call   0x4183e0
40a8ac:	68 fe 03 00 00       	push   $0x3fe
40a8b1:	8d 85 f6 fb ff ff    	lea    -0x40a(%ebp),%eax
40a8b7:	33 d2                	xor    %edx,%edx
40a8b9:	53                   	push   %ebx
40a8ba:	50                   	push   %eax
40a8bb:	66 89 95 f4 fb ff ff 	mov    %dx,-0x40c(%ebp)
40a8c2:	e8 19 db 00 00       	call   0x4183e0
40a8c7:	8b 4d 10             	mov    0x10(%ebp),%ecx
40a8ca:	8b 7d 0c             	mov    0xc(%ebp),%edi
40a8cd:	8b 75 08             	mov    0x8(%ebp),%esi
40a8d0:	68 19 02 02 00       	push   $0x20219
40a8d5:	51                   	push   %ecx
40a8d6:	33 c0                	xor    %eax,%eax
40a8d8:	89 45 fa             	mov    %eax,-0x6(%ebp)
40a8db:	8d 95 f4 f9 ff ff    	lea    -0x60c(%ebp),%edx
40a8e1:	57                   	push   %edi
40a8e2:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
40a8e6:	56                   	push   %esi
40a8e7:	89 55 fc             	mov    %edx,-0x4(%ebp)
40a8ea:	c7 45 f8 00 00 00 01 	movl   $0x1000000,-0x8(%ebp)
40a8f1:	e8 1a fe ff ff       	call   0x40a710
40a8f6:	83 c4 28             	add    $0x28,%esp
40a8f9:	85 c0                	test   %eax,%eax
40a8fb:	0f 84 9a 00 00 00    	je     0x40a99b
40a901:	8b 0f                	mov    (%edi),%ecx
40a903:	8d 55 f4             	lea    -0xc(%ebp),%edx
40a906:	52                   	push   %edx
40a907:	68 00 02 00 00       	push   $0x200
40a90c:	8d 85 f4 fb ff ff    	lea    -0x40c(%ebp),%eax
40a912:	50                   	push   %eax
40a913:	6a 01                	push   $0x1
40a915:	53                   	push   %ebx
40a916:	51                   	push   %ecx
40a917:	56                   	push   %esi
40a918:	e8 e3 c0 00 00       	call   0x416a00
40a91d:	83 c4 1c             	add    $0x1c,%esp
40a920:	85 c0                	test   %eax,%eax
40a922:	75 6b                	jne    0x40a98f
40a924:	eb 0a                	jmp    0x40a930
40a926:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40a92d:	8d 49 00             	lea    0x0(%ecx),%ecx
40a930:	83 bd f8 fb ff ff 01 	cmpl   $0x1,-0x408(%ebp)
40a937:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
40a93d:	8d 84 05 f4 fb ff ff 	lea    -0x40c(%ebp,%eax,1),%eax
40a944:	75 14                	jne    0x40a95a
40a946:	8d 96 28 0a 00 00    	lea    0xa28(%esi),%edx
40a94c:	52                   	push   %edx
40a94d:	50                   	push   %eax
40a94e:	e8 4d e9 00 00       	call   0x4192a0
40a953:	83 c4 08             	add    $0x8,%esp
40a956:	85 c0                	test   %eax,%eax
40a958:	75 4a                	jne    0x40a9a4
40a95a:	8d 85 f4 fb ff ff    	lea    -0x40c(%ebp),%eax
40a960:	68 fe 01 00 00       	push   $0x1fe
40a965:	50                   	push   %eax
40a966:	43                   	inc    %ebx
40a967:	e8 24 da 00 00       	call   0x418390
40a96c:	8b 07                	mov    (%edi),%eax
40a96e:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40a971:	51                   	push   %ecx
40a972:	68 00 02 00 00       	push   $0x200
40a977:	8d 95 f4 fb ff ff    	lea    -0x40c(%ebp),%edx
40a97d:	52                   	push   %edx
40a97e:	6a 01                	push   $0x1
40a980:	53                   	push   %ebx
40a981:	50                   	push   %eax
40a982:	56                   	push   %esi
40a983:	e8 78 c0 00 00       	call   0x416a00
40a988:	83 c4 24             	add    $0x24,%esp
40a98b:	85 c0                	test   %eax,%eax
40a98d:	74 a1                	je     0x40a930
40a98f:	8b 07                	mov    (%edi),%eax
40a991:	50                   	push   %eax
40a992:	56                   	push   %esi
40a993:	e8 58 c3 00 00       	call   0x416cf0
40a998:	83 c4 08             	add    $0x8,%esp
40a99b:	5f                   	pop    %edi
40a99c:	5e                   	pop    %esi
40a99d:	33 c0                	xor    %eax,%eax
40a99f:	5b                   	pop    %ebx
40a9a0:	8b e5                	mov    %ebp,%esp
40a9a2:	5d                   	pop    %ebp
40a9a3:	c3                   	ret
40a9a4:	8b 0f                	mov    (%edi),%ecx
40a9a6:	51                   	push   %ecx
40a9a7:	56                   	push   %esi
40a9a8:	e8 43 c3 00 00       	call   0x416cf0
40a9ad:	83 c4 08             	add    $0x8,%esp
40a9b0:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
40a9b4:	74 76                	je     0x40aa2c
40a9b6:	8b 55 10             	mov    0x10(%ebp),%edx
40a9b9:	68 1b 02 02 00       	push   $0x2021b
40a9be:	52                   	push   %edx
40a9bf:	57                   	push   %edi
40a9c0:	56                   	push   %esi
40a9c1:	e8 4a fd ff ff       	call   0x40a710
40a9c6:	83 c4 10             	add    $0x10,%esp
40a9c9:	85 c0                	test   %eax,%eax
40a9cb:	74 5f                	je     0x40aa2c
40a9cd:	66 8b 85 04 fc ff ff 	mov    -0x3fc(%ebp),%ax
40a9d4:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
40a9d8:	8b 85 04 fc ff ff    	mov    -0x3fc(%ebp),%eax
40a9de:	3d 00 01 00 00       	cmp    $0x100,%eax
40a9e3:	73 17                	jae    0x40a9fc
40a9e5:	50                   	push   %eax
40a9e6:	8d 8d 08 fc ff ff    	lea    -0x3f8(%ebp),%ecx
40a9ec:	51                   	push   %ecx
40a9ed:	8d 95 f4 f9 ff ff    	lea    -0x60c(%ebp),%edx
40a9f3:	52                   	push   %edx
40a9f4:	e8 67 d9 00 00       	call   0x418360
40a9f9:	83 c4 0c             	add    $0xc,%esp
40a9fc:	68 59 64 38 91       	push   $0x91386459
40aa01:	6a 00                	push   $0x0
40aa03:	6a 00                	push   $0x0
40aa05:	68 e2 1a 4e 0b       	push   $0xb4e1ae2
40aa0a:	e8 e1 d1 00 00       	call   0x417bf0
40aa0f:	83 c4 04             	add    $0x4,%esp
40aa12:	50                   	push   %eax
40aa13:	83 c6 1c             	add    $0x1c,%esi
40aa16:	56                   	push   %esi
40aa17:	e8 b4 78 00 00       	call   0x4122d0
40aa1c:	83 c4 14             	add    $0x14,%esp
40aa1f:	85 c0                	test   %eax,%eax
40aa21:	74 09                	je     0x40aa2c
40aa23:	8b 17                	mov    (%edi),%edx
40aa25:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40aa28:	51                   	push   %ecx
40aa29:	52                   	push   %edx
40aa2a:	ff d0                	call   *%eax
40aa2c:	5f                   	pop    %edi
40aa2d:	5e                   	pop    %esi
40aa2e:	b8 01 00 00 00       	mov    $0x1,%eax
40aa33:	5b                   	pop    %ebx
40aa34:	8b e5                	mov    %ebp,%esp
40aa36:	5d                   	pop    %ebp
40aa37:	c3                   	ret
40aa38:	ff 8d f9 df 58 5b    	decl   0x5b58dff9(%ebp)
40aa3e:	39 5a 55             	cmp    %ebx,0x55(%edx)
40aa41:	8b ec                	mov    %esp,%ebp
40aa43:	81 ec 5c 02 00 00    	sub    $0x25c,%esp
40aa49:	56                   	push   %esi
40aa4a:	6a 40                	push   $0x40
40aa4c:	8d 45 b0             	lea    -0x50(%ebp),%eax
40aa4f:	6a 00                	push   $0x0
40aa51:	50                   	push   %eax
40aa52:	e8 89 d9 00 00       	call   0x4183e0
40aa57:	33 c9                	xor    %ecx,%ecx
40aa59:	68 06 02 00 00       	push   $0x206
40aa5e:	33 c0                	xor    %eax,%eax
40aa60:	51                   	push   %ecx
40aa61:	8d 95 a6 fd ff ff    	lea    -0x25a(%ebp),%edx
40aa67:	52                   	push   %edx
40aa68:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
40aa6f:	89 45 f4             	mov    %eax,-0xc(%ebp)
40aa72:	89 45 f8             	mov    %eax,-0x8(%ebp)
40aa75:	89 45 fc             	mov    %eax,-0x4(%ebp)
40aa78:	c7 45 ac 44 00 00 00 	movl   $0x44,-0x54(%ebp)
40aa7f:	66 89 8d a4 fd ff ff 	mov    %cx,-0x25c(%ebp)
40aa86:	e8 55 d9 00 00       	call   0x4183e0
40aa8b:	8b 75 08             	mov    0x8(%ebp),%esi
40aa8e:	6a 00                	push   $0x0
40aa90:	6a 29                	push   $0x29
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