408cfd:	53                   	push   %ebx
408cfe:	56                   	push   %esi
408cff:	57                   	push   %edi
408d00:	8b 7d 0c             	mov    0xc(%ebp),%edi
408d03:	85 ff                	test   %edi,%edi
408d05:	74 0b                	je     0x408d12
408d07:	8b 07                	mov    (%edi),%eax
408d09:	0b 47 04             	or     0x4(%edi),%eax
408d0c:	c6 45 0f 01          	movb   $0x1,0xf(%ebp)
408d10:	75 04                	jne    0x408d16
408d12:	c6 45 0f 00          	movb   $0x0,0xf(%ebp)
408d16:	8b 75 10             	mov    0x10(%ebp),%esi
408d19:	85 f6                	test   %esi,%esi
408d1b:	74 0b                	je     0x408d28
408d1d:	8b 06                	mov    (%esi),%eax
408d1f:	0b 46 04             	or     0x4(%esi),%eax
408d22:	74 04                	je     0x408d28
408d24:	b3 01                	mov    $0x1,%bl
408d26:	eb 02                	jmp    0x408d2a
408d28:	32 db                	xor    %bl,%bl
408d2a:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
408d2e:	74 09                	je     0x408d39
408d30:	8d 45 f4             	lea    -0xc(%ebp),%eax
408d33:	50                   	push   %eax
408d34:	e8 41 83 00 00       	call   0x41107a
408d39:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
408d3d:	74 0b                	je     0x408d4a
408d3f:	8d 45 e4             	lea    -0x1c(%ebp),%eax
408d42:	50                   	push   %eax
408d43:	8b cf                	mov    %edi,%ecx
408d45:	e8 30 83 00 00       	call   0x41107a
408d4a:	84 db                	test   %bl,%bl
408d4c:	74 0b                	je     0x408d59
408d4e:	8d 45 ec             	lea    -0x14(%ebp),%eax
408d51:	50                   	push   %eax
408d52:	8b ce                	mov    %esi,%ecx
408d54:	e8 21 83 00 00       	call   0x41107a
408d59:	0f b6 45 0b          	movzbl 0xb(%ebp),%eax
408d5d:	f7 d8                	neg    %eax
408d5f:	1b c0                	sbb    %eax,%eax
408d61:	8d 4d f4             	lea    -0xc(%ebp),%ecx
408d64:	23 c1                	and    %ecx,%eax
408d66:	50                   	push   %eax
408d67:	0f b6 c3             	movzbl %bl,%eax
408d6a:	f7 d8                	neg    %eax
408d6c:	1b c0                	sbb    %eax,%eax
408d6e:	8d 4d ec             	lea    -0x14(%ebp),%ecx
408d71:	23 c1                	and    %ecx,%eax
408d73:	50                   	push   %eax
408d74:	0f b6 45 0f          	movzbl 0xf(%ebp),%eax
408d78:	f7 d8                	neg    %eax
408d7a:	1b c0                	sbb    %eax,%eax
408d7c:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
408d7f:	23 c1                	and    %ecx,%eax
408d81:	50                   	push   %eax
408d82:	8b 45 fc             	mov    -0x4(%ebp),%eax
408d85:	ff 70 04             	push   0x4(%eax)
408d88:	ff 15 24 a1 42 00    	call   *0x42a124
408d8e:	5f                   	pop    %edi
408d8f:	5e                   	pop    %esi
408d90:	5b                   	pop    %ebx
408d91:	c9                   	leave
408d92:	c2 0c 00             	ret    $0xc
408d95:	b8 45 91 42 00       	mov    $0x429145,%eax
408d9a:	e8 19 11 01 00       	call   0x419eb8
408d9f:	83 ec 10             	sub    $0x10,%esp
408da2:	53                   	push   %ebx
408da3:	56                   	push   %esi
408da4:	8b f1                	mov    %ecx,%esi
408da6:	56                   	push   %esi
408da7:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
408daa:	e8 cc 83 ff ff       	call   0x40117b
408daf:	8b 06                	mov    (%esi),%eax
408db1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408db5:	6a 02                	push   $0x2
408db7:	6a 00                	push   $0x0
408db9:	6a 00                	push   $0x0
408dbb:	8b ce                	mov    %esi,%ecx
408dbd:	ff 50 0c             	call   *0xc(%eax)
408dc0:	8b 06                	mov    (%esi),%eax
408dc2:	8b ce                	mov    %esi,%ecx
408dc4:	ff 50 10             	call   *0x10(%eax)
408dc7:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
408dca:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
408dce:	6a 00                	push   $0x0
408dd0:	ff 75 f0             	push   -0x10(%ebp)
408dd3:	8b f0                	mov    %eax,%esi
408dd5:	ff 75 ec             	push   -0x14(%ebp)
408dd8:	8b 01                	mov    (%ecx),%eax
408dda:	8b da                	mov    %edx,%ebx
408ddc:	ff 50 0c             	call   *0xc(%eax)
408ddf:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408de2:	8b c6                	mov    %esi,%eax
408de4:	5e                   	pop    %esi
408de5:	8b d3                	mov    %ebx,%edx
408de7:	5b                   	pop    %ebx
408de8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
408def:	c9                   	leave
408df0:	c3                   	ret
408df1:	56                   	push   %esi
408df2:	8b f1                	mov    %ecx,%esi
408df4:	e8 11 fe ff ff       	call   0x408c0a
408df9:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
408dfe:	74 07                	je     0x408e07
408e00:	56                   	push   %esi
408e01:	e8 d1 10 01 00       	call   0x419ed7
408e06:	59                   	pop    %ecx
408e07:	8b c6                	mov    %esi,%eax
408e09:	5e                   	pop    %esi
408e0a:	c2 04 00             	ret    $0x4
408e0d:	55                   	push   %ebp
408e0e:	8b ec                	mov    %esp,%ebp
408e10:	83 ec 10             	sub    $0x10,%esp
408e13:	53                   	push   %ebx
408e14:	56                   	push   %esi
408e15:	33 db                	xor    %ebx,%ebx
408e17:	8b f1                	mov    %ecx,%esi
408e19:	57                   	push   %edi
408e1a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
408e1d:	89 5d f4             	mov    %ebx,-0xc(%ebp)
408e20:	38 5e 11             	cmp    %bl,0x11(%esi)
408e23:	74 0b                	je     0x408e30
408e25:	8b 06                	mov    (%esi),%eax
408e27:	ff 50 10             	call   *0x10(%eax)
408e2a:	89 45 f0             	mov    %eax,-0x10(%ebp)
408e2d:	89 55 f4             	mov    %edx,-0xc(%ebp)
408e30:	bf 74 2a 43 00       	mov    $0x432a74,%edi
408e35:	ff 75 0c             	push   0xc(%ebp)
408e38:	8b ce                	mov    %esi,%ecx
408e3a:	ff 75 08             	push   0x8(%ebp)
408e3d:	e8 eb fd ff ff       	call   0x408c2d
408e42:	89 45 f8             	mov    %eax,-0x8(%ebp)
408e45:	83 f8 ff             	cmp    $0xffffffff,%eax
408e48:	75 33                	jne    0x408e7d
408e4a:	c7 86 20 10 00 00 02 	movl   $0x2,0x1020(%esi)
408e51:	00 00 00
408e54:	38 5e 14             	cmp    %bl,0x14(%esi)
408e57:	74 24                	je     0x408e7d
408e59:	38 5e 11             	cmp    %bl,0x11(%esi)
408e5c:	75 29                	jne    0x408e87
408e5e:	39 5e 0c             	cmp    %ebx,0xc(%esi)
408e61:	75 0f                	jne    0x408e72
408e63:	8d 46 1e             	lea    0x1e(%esi),%eax
408e66:	50                   	push   %eax
408e67:	8b cf                	mov    %edi,%ecx
408e69:	e8 97 d5 ff ff       	call   0x406405
408e6e:	84 c0                	test   %al,%al
408e70:	75 c3                	jne    0x408e35
408e72:	83 c6 1e             	add    $0x1e,%esi
408e75:	56                   	push   %esi
408e76:	8b cf                	mov    %edi,%ecx
408e78:	e8 f7 d7 ff ff       	call   0x406674
408e7d:	8b 45 f8             	mov    -0x8(%ebp),%eax
408e80:	5f                   	pop    %edi
408e81:	5e                   	pop    %esi
408e82:	5b                   	pop    %ebx
408e83:	c9                   	leave
408e84:	c2 08 00             	ret    $0x8
408e87:	89 5d f8             	mov    %ebx,-0x8(%ebp)
408e8a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408e8d:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
408e90:	76 eb                	jbe    0x408e7d
408e92:	bf 00 02 00 00       	mov    $0x200,%edi
408e97:	eb 02                	jmp    0x408e9b
408e99:	33 db                	xor    %ebx,%ebx
408e9b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408e9e:	8b 06                	mov    (%esi),%eax
408ea0:	33 d2                	xor    %edx,%edx
408ea2:	03 4d f0             	add    -0x10(%ebp),%ecx
408ea5:	53                   	push   %ebx
408ea6:	13 55 f4             	adc    -0xc(%ebp),%edx
408ea9:	52                   	push   %edx
408eaa:	51                   	push   %ecx
408eab:	8b ce                	mov    %esi,%ecx
408ead:	ff 50 0c             	call   *0xc(%eax)
408eb0:	8b 5d 0c             	mov    0xc(%ebp),%ebx
408eb3:	8b c3                	mov    %ebx,%eax
408eb5:	2b 45 fc             	sub    -0x4(%ebp),%eax
408eb8:	3b c7                	cmp    %edi,%eax
408eba:	72 02                	jb     0x408ebe
408ebc:	8b c7                	mov    %edi,%eax
408ebe:	50                   	push   %eax
408ebf:	ff 75 08             	push   0x8(%ebp)
408ec2:	8b ce                	mov    %esi,%ecx
408ec4:	e8 64 fd ff ff       	call   0x408c2d
408ec9:	83 f8 ff             	cmp    $0xffffffff,%eax
408ecc:	75 02                	jne    0x408ed0
408ece:	8b c7                	mov    %edi,%eax
408ed0:	01 7d fc             	add    %edi,-0x4(%ebp)
408ed3:	01 45 f8             	add    %eax,-0x8(%ebp)
408ed6:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
408ed9:	72 be                	jb     0x408e99
408edb:	eb a0                	jmp    0x408e7d
408edd:	55                   	push   %ebp
408ede:	8b ec                	mov    %esp,%ebp
408ee0:	51                   	push   %ecx
408ee1:	56                   	push   %esi
408ee2:	8b f1                	mov    %ecx,%esi
408ee4:	83 7e 04 ff          	cmpl   $0xffffffff,0x4(%esi)
408ee8:	74 60                	je     0x408f4a
408eea:	57                   	push   %edi
408eeb:	8b 7d 0c             	mov    0xc(%ebp),%edi
408eee:	85 ff                	test   %edi,%edi
408ef0:	7f 29                	jg     0x408f1b
408ef2:	7c 06                	jl     0x408efa
408ef4:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
408ef8:	73 21                	jae    0x408f1b
408efa:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
408efe:	74 1b                	je     0x408f1b
408f00:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
408f04:	75 07                	jne    0x408f0d
408f06:	8b 06                	mov    (%esi),%eax
408f08:	ff 50 10             	call   *0x10(%eax)
408f0b:	eb 05                	jmp    0x408f12
408f0d:	e8 83 fe ff ff       	call   0x408d95
408f12:	01 45 08             	add    %eax,0x8(%ebp)
408f15:	13 fa                	adc    %edx,%edi
408f17:	83 65 10 00          	andl   $0x0,0x10(%ebp)
408f1b:	ff 75 10             	push   0x10(%ebp)
408f1e:	8b c7                	mov    %edi,%eax
408f20:	c1 f8 1f             	sar    $0x1f,%eax
408f23:	8d 45 fc             	lea    -0x4(%ebp),%eax
408f26:	50                   	push   %eax
408f27:	ff 75 08             	push   0x8(%ebp)
408f2a:	89 7d fc             	mov    %edi,-0x4(%ebp)
408f2d:	ff 76 04             	push   0x4(%esi)
408f30:	ff 15 e4 a1 42 00    	call   *0x42a1e4
408f36:	5f                   	pop    %edi
408f37:	83 f8 ff             	cmp    $0xffffffff,%eax
408f3a:	75 0e                	jne    0x408f4a
408f3c:	ff 15 24 a2 42 00    	call   *0x42a224
408f42:	85 c0                	test   %eax,%eax
408f44:	74 04                	je     0x408f4a
408f46:	32 c0                	xor    %al,%al
408f48:	eb 02                	jmp    0x408f4c
408f4a:	b0 01                	mov    $0x1,%al
408f4c:	5e                   	pop    %esi
408f4d:	c9                   	leave
408f4e:	c2 0c 00             	ret    $0xc
408f51:	56                   	push   %esi
408f52:	6a 00                	push   $0x0
408f54:	ff 74 24 10          	push   0x10(%esp)
408f58:	8b f1                	mov    %ecx,%esi
408f5a:	ff 74 24 10          	push   0x10(%esp)
408f5e:	e8 7a ff ff ff       	call   0x408edd
408f63:	84 c0                	test   %al,%al
408f65:	74 14                	je     0x408f7b
408f67:	8b ce                	mov    %esi,%ecx
408f69:	e8 66 fc ff ff       	call   0x408bd4
408f6e:	8b 06                	mov    (%esi),%eax
408f70:	6a 00                	push   $0x0
408f72:	6a 00                	push   $0x0
408f74:	6a 00                	push   $0x0
408f76:	8b ce                	mov    %esi,%ecx
408f78:	ff 50 0c             	call   *0xc(%eax)
408f7b:	5e                   	pop    %esi
408f7c:	c2 08 00             	ret    $0x8
408f7f:	56                   	push   %esi
408f80:	ff 74 24 10          	push   0x10(%esp)
408f84:	8b f1                	mov    %ecx,%esi
408f86:	ff 74 24 10          	push   0x10(%esp)
408f8a:	ff 74 24 10          	push   0x10(%esp)
408f8e:	e8 4a ff ff ff       	call   0x408edd
408f93:	84 c0                	test   %al,%al
408f95:	75 13                	jne    0x408faa
408f97:	38 46 14             	cmp    %al,0x14(%esi)
408f9a:	74 0e                	je     0x408faa
408f9c:	83 c6 1e             	add    $0x1e,%esi
408f9f:	56                   	push   %esi
408fa0:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
408fa5:	e8 92 d5 ff ff       	call   0x40653c
408faa:	5e                   	pop    %esi
408fab:	c2 0c 00             	ret    $0xc
408fae:	83 7c 24 04 ff       	cmpl   $0xffffffff,0x4(%esp)
408fb3:	74 0c                	je     0x408fc1
408fb5:	f6 44 24 04 10       	testb  $0x10,0x4(%esp)
408fba:	74 05                	je     0x408fc1
408fbc:	33 c0                	xor    %eax,%eax
408fbe:	40                   	inc    %eax
408fbf:	eb 02                	jmp    0x408fc3
408fc1:	33 c0                	xor    %eax,%eax
408fc3:	c2 04 00             	ret    $0x4
408fc6:	8b 44 24 04          	mov    0x4(%esp),%eax
408fca:	c1 e8 0a             	shr    $0xa,%eax
408fcd:	83 e0 01             	and    $0x1,%eax
408fd0:	c2 04 00             	ret    $0x4
408fd3:	55                   	push   %ebp
408fd4:	8b ec                	mov    %esp,%ebp
408fd6:	b8 00 10 00 00       	mov    $0x1000,%eax
408fdb:	e8 f0 14 01 00       	call   0x41a4d0
408fe0:	56                   	push   %esi
408fe1:	8b 35 5c a0 42 00    	mov    0x42a05c,%esi
408fe7:	57                   	push   %edi
408fe8:	ff 75 08             	push   0x8(%ebp)
408feb:	ff d6                	call   *%esi
408fed:	8b f8                	mov    %eax,%edi
408fef:	83 ff ff             	cmp    $0xffffffff,%edi
408ff2:	75 23                	jne    0x409017
408ff4:	68 00 08 00 00       	push   $0x800
408ff9:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
408fff:	50                   	push   %eax
409000:	ff 75 08             	push   0x8(%ebp)
409003:	e8 52 17 00 00       	call   0x40a75a
409008:	84 c0                	test   %al,%al
40900a:	74 0b                	je     0x409017
40900c:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
409012:	50                   	push   %eax
409013:	ff d6                	call   *%esi
409015:	8b f8                	mov    %eax,%edi
409017:	8b c7                	mov    %edi,%eax
409019:	5f                   	pop    %edi
40901a:	5e                   	pop    %esi
40901b:	c9                   	leave
40901c:	c2 04 00             	ret    $0x4
40901f:	55                   	push   %ebp
409020:	8b ec                	mov    %esp,%ebp
409022:	b8 00 10 00 00       	mov    $0x1000,%eax
409027:	e8 a4 14 01 00       	call   0x41a4d0
40902c:	53                   	push   %ebx
40902d:	56                   	push   %esi
40902e:	ff 75 0c             	push   0xc(%ebp)
409031:	8b 35 60 a0 42 00    	mov    0x42a060,%esi
409037:	ff 75 08             	push   0x8(%ebp)
40903a:	ff d6                	call   *%esi
40903c:	85 c0                	test   %eax,%eax
40903e:	0f 95 c3             	setne  %bl
409041:	84 db                	test   %bl,%bl
409043:	75 29                	jne    0x40906e
409045:	68 00 08 00 00       	push   $0x800
40904a:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
409050:	50                   	push   %eax
409051:	ff 75 08             	push   0x8(%ebp)
409054:	e8 01 17 00 00       	call   0x40a75a
409059:	84 c0                	test   %al,%al
40905b:	74 11                	je     0x40906e
40905d:	ff 75 0c             	push   0xc(%ebp)
409060:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
409066:	50                   	push   %eax
409067:	ff d6                	call   *%esi
409069:	85 c0                	test   %eax,%eax
40906b:	0f 95 c3             	setne  %bl
40906e:	5e                   	pop    %esi
40906f:	8a c3                	mov    %bl,%al
409071:	5b                   	pop    %ebx
409072:	c9                   	leave
409073:	c2 08 00             	ret    $0x8
409076:	55                   	push   %ebp
409077:	8b ec                	mov    %esp,%ebp
409079:	b8 00 10 00 00       	mov    $0x1000,%eax
40907e:	e8 4d 14 01 00       	call   0x41a4d0