406cad:	75 03                	jne    0x406cb2
406caf:	50                   	push   %eax
406cb0:	ff d3                	call   *%ebx
406cb2:	83 c6 08             	add    $0x8,%esi
406cb5:	81 fe d8 2c 41 00    	cmp    $0x412cd8,%esi
406cbb:	7c e6                	jl     0x406ca3
406cbd:	5e                   	pop    %esi
406cbe:	5b                   	pop    %ebx
406cbf:	c3                   	ret
406cc0:	8b ff                	mov    %edi,%edi
406cc2:	55                   	push   %ebp
406cc3:	8b ec                	mov    %esp,%ebp
406cc5:	8b 45 08             	mov    0x8(%ebp),%eax
406cc8:	ff 34 c5 b8 2b 41 00 	push   0x412bb8(,%eax,8)
406ccf:	ff 15 78 f0 40 00    	call   *0x40f078
406cd5:	5d                   	pop    %ebp
406cd6:	c3                   	ret
406cd7:	6a 0c                	push   $0xc
406cd9:	68 10 13 41 00       	push   $0x411310
406cde:	e8 8d d4 ff ff       	call   0x404170
406ce3:	33 ff                	xor    %edi,%edi
406ce5:	47                   	inc    %edi
406ce6:	89 7d e4             	mov    %edi,-0x1c(%ebp)
406ce9:	33 db                	xor    %ebx,%ebx
406ceb:	39 1d 24 32 41 00    	cmp    %ebx,0x413224
406cf1:	75 18                	jne    0x406d0b
406cf3:	e8 12 f9 ff ff       	call   0x40660a
406cf8:	6a 1e                	push   $0x1e
406cfa:	e8 5c f7 ff ff       	call   0x40645b
406cff:	68 ff 00 00 00       	push   $0xff
406d04:	e8 6c f4 ff ff       	call   0x406175
406d09:	59                   	pop    %ecx
406d0a:	59                   	pop    %ecx
406d0b:	8b 75 08             	mov    0x8(%ebp),%esi
406d0e:	8d 34 f5 b8 2b 41 00 	lea    0x412bb8(,%esi,8),%esi
406d15:	39 1e                	cmp    %ebx,(%esi)
406d17:	74 04                	je     0x406d1d
406d19:	8b c7                	mov    %edi,%eax
406d1b:	eb 6d                	jmp    0x406d8a
406d1d:	6a 18                	push   $0x18
406d1f:	e8 9b fb ff ff       	call   0x4068bf
406d24:	59                   	pop    %ecx
406d25:	8b f8                	mov    %eax,%edi
406d27:	3b fb                	cmp    %ebx,%edi
406d29:	75 0f                	jne    0x406d3a
406d2b:	e8 f7 d3 ff ff       	call   0x404127
406d30:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
406d36:	33 c0                	xor    %eax,%eax
406d38:	eb 50                	jmp    0x406d8a
406d3a:	6a 0a                	push   $0xa
406d3c:	e8 58 00 00 00       	call   0x406d99
406d41:	59                   	pop    %ecx
406d42:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406d45:	39 1e                	cmp    %ebx,(%esi)
406d47:	75 2b                	jne    0x406d74
406d49:	68 a0 0f 00 00       	push   $0xfa0
406d4e:	57                   	push   %edi
406d4f:	ff 15 9c f0 40 00    	call   *0x40f09c
406d55:	85 c0                	test   %eax,%eax
406d57:	75 17                	jne    0x406d70
406d59:	57                   	push   %edi
406d5a:	e8 0c b2 ff ff       	call   0x401f6b
406d5f:	59                   	pop    %ecx
406d60:	e8 c2 d3 ff ff       	call   0x404127
406d65:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
406d6b:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
406d6e:	eb 0b                	jmp    0x406d7b
406d70:	89 3e                	mov    %edi,(%esi)
406d72:	eb 07                	jmp    0x406d7b
406d74:	57                   	push   %edi
406d75:	e8 f1 b1 ff ff       	call   0x401f6b
406d7a:	59                   	pop    %ecx
406d7b:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406d82:	e8 09 00 00 00       	call   0x406d90
406d87:	8b 45 e4             	mov    -0x1c(%ebp),%eax
406d8a:	e8 26 d4 ff ff       	call   0x4041b5
406d8f:	c3                   	ret
406d90:	6a 0a                	push   $0xa
406d92:	e8 29 ff ff ff       	call   0x406cc0
406d97:	59                   	pop    %ecx
406d98:	c3                   	ret
406d99:	8b ff                	mov    %edi,%edi
406d9b:	55                   	push   %ebp
406d9c:	8b ec                	mov    %esp,%ebp
406d9e:	8b 45 08             	mov    0x8(%ebp),%eax
406da1:	56                   	push   %esi
406da2:	8d 34 c5 b8 2b 41 00 	lea    0x412bb8(,%eax,8),%esi
406da9:	83 3e 00             	cmpl   $0x0,(%esi)
406dac:	75 13                	jne    0x406dc1
406dae:	50                   	push   %eax
406daf:	e8 23 ff ff ff       	call   0x406cd7
406db4:	59                   	pop    %ecx
406db5:	85 c0                	test   %eax,%eax
406db7:	75 08                	jne    0x406dc1
406db9:	6a 11                	push   $0x11
406dbb:	e8 57 f6 ff ff       	call   0x406417
406dc0:	59                   	pop    %ecx
406dc1:	ff 36                	push   (%esi)
406dc3:	ff 15 74 f0 40 00    	call   *0x40f074
406dc9:	5e                   	pop    %esi
406dca:	5d                   	pop    %ebp
406dcb:	c3                   	ret
406dcc:	8b ff                	mov    %edi,%edi
406dce:	55                   	push   %ebp
406dcf:	8b ec                	mov    %esp,%ebp
406dd1:	83 ec 20             	sub    $0x20,%esp
406dd4:	53                   	push   %ebx
406dd5:	57                   	push   %edi
406dd6:	33 db                	xor    %ebx,%ebx
406dd8:	6a 07                	push   $0x7
406dda:	33 c0                	xor    %eax,%eax
406ddc:	59                   	pop    %ecx
406ddd:	8d 7d e4             	lea    -0x1c(%ebp),%edi
406de0:	89 5d e0             	mov    %ebx,-0x20(%ebp)
406de3:	f3 ab                	rep stos %eax,%es:(%edi)
406de5:	39 5d 14             	cmp    %ebx,0x14(%ebp)
406de8:	75 18                	jne    0x406e02
406dea:	e8 38 d3 ff ff       	call   0x404127
406def:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
406df5:	e8 8d be ff ff       	call   0x402c87
406dfa:	83 c8 ff             	or     $0xffffffff,%eax
406dfd:	e9 90 00 00 00       	jmp    0x406e92
406e02:	8b 7d 10             	mov    0x10(%ebp),%edi
406e05:	56                   	push   %esi
406e06:	8b 75 0c             	mov    0xc(%ebp),%esi
406e09:	3b fb                	cmp    %ebx,%edi
406e0b:	74 19                	je     0x406e26
406e0d:	3b f3                	cmp    %ebx,%esi
406e0f:	75 15                	jne    0x406e26
406e11:	e8 11 d3 ff ff       	call   0x404127
406e16:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
406e1c:	e8 66 be ff ff       	call   0x402c87
406e21:	83 c8 ff             	or     $0xffffffff,%eax
406e24:	eb 6b                	jmp    0x406e91
406e26:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
406e2b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
406e2e:	3b f8                	cmp    %eax,%edi
406e30:	77 03                	ja     0x406e35
406e32:	89 7d e4             	mov    %edi,-0x1c(%ebp)
406e35:	ff 75 1c             	push   0x1c(%ebp)
406e38:	8d 45 e0             	lea    -0x20(%ebp),%eax
406e3b:	ff 75 18             	push   0x18(%ebp)
406e3e:	c7 45 ec 42 00 00 00 	movl   $0x42,-0x14(%ebp)
406e45:	ff 75 14             	push   0x14(%ebp)
406e48:	89 75 e8             	mov    %esi,-0x18(%ebp)
406e4b:	50                   	push   %eax
406e4c:	89 75 e0             	mov    %esi,-0x20(%ebp)
406e4f:	ff 55 08             	call   *0x8(%ebp)
406e52:	83 c4 10             	add    $0x10,%esp
406e55:	89 45 14             	mov    %eax,0x14(%ebp)
406e58:	3b f3                	cmp    %ebx,%esi
406e5a:	74 35                	je     0x406e91
406e5c:	3b c3                	cmp    %ebx,%eax
406e5e:	7c 22                	jl     0x406e82
406e60:	ff 4d e4             	decl   -0x1c(%ebp)
406e63:	78 07                	js     0x406e6c
406e65:	8b 45 e0             	mov    -0x20(%ebp),%eax
406e68:	88 18                	mov    %bl,(%eax)
406e6a:	eb 11                	jmp    0x406e7d
406e6c:	8d 45 e0             	lea    -0x20(%ebp),%eax
406e6f:	50                   	push   %eax
406e70:	53                   	push   %ebx
406e71:	e8 b6 01 00 00       	call   0x40702c
406e76:	59                   	pop    %ecx
406e77:	59                   	pop    %ecx
406e78:	83 f8 ff             	cmp    $0xffffffff,%eax
406e7b:	74 05                	je     0x406e82
406e7d:	8b 45 14             	mov    0x14(%ebp),%eax
406e80:	eb 0f                	jmp    0x406e91
406e82:	33 c0                	xor    %eax,%eax
406e84:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
406e87:	88 5c 3e ff          	mov    %bl,-0x1(%esi,%edi,1)
406e8b:	0f 9d c0             	setge  %al
406e8e:	83 e8 02             	sub    $0x2,%eax
406e91:	5e                   	pop    %esi
406e92:	5f                   	pop    %edi
406e93:	5b                   	pop    %ebx
406e94:	c9                   	leave
406e95:	c3                   	ret
406e96:	8b ff                	mov    %edi,%edi
406e98:	55                   	push   %ebp
406e99:	8b ec                	mov    %esp,%ebp
406e9b:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
406e9f:	75 15                	jne    0x406eb6
406ea1:	e8 81 d2 ff ff       	call   0x404127
406ea6:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
406eac:	e8 d6 bd ff ff       	call   0x402c87
406eb1:	83 c8 ff             	or     $0xffffffff,%eax
406eb4:	5d                   	pop    %ebp
406eb5:	c3                   	ret
406eb6:	53                   	push   %ebx
406eb7:	8b 5d 10             	mov    0x10(%ebp),%ebx
406eba:	56                   	push   %esi
406ebb:	8b 75 08             	mov    0x8(%ebp),%esi
406ebe:	57                   	push   %edi
406ebf:	85 db                	test   %ebx,%ebx
406ec1:	75 10                	jne    0x406ed3
406ec3:	85 f6                	test   %esi,%esi
406ec5:	75 10                	jne    0x406ed7
406ec7:	39 75 0c             	cmp    %esi,0xc(%ebp)
406eca:	75 12                	jne    0x406ede
406ecc:	33 c0                	xor    %eax,%eax
406ece:	e9 aa 00 00 00       	jmp    0x406f7d
406ed3:	85 f6                	test   %esi,%esi
406ed5:	74 07                	je     0x406ede
406ed7:	8b 7d 0c             	mov    0xc(%ebp),%edi
406eda:	85 ff                	test   %edi,%edi
406edc:	75 10                	jne    0x406eee
406ede:	e8 44 d2 ff ff       	call   0x404127
406ee3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
406ee9:	e9 87 00 00 00       	jmp    0x406f75
406eee:	e8 34 d2 ff ff       	call   0x404127
406ef3:	ff 75 1c             	push   0x1c(%ebp)
406ef6:	ff 75 18             	push   0x18(%ebp)
406ef9:	ff 75 14             	push   0x14(%ebp)
406efc:	3b fb                	cmp    %ebx,%edi
406efe:	76 2a                	jbe    0x406f2a
406f00:	8b 38                	mov    (%eax),%edi
406f02:	43                   	inc    %ebx
406f03:	53                   	push   %ebx
406f04:	56                   	push   %esi
406f05:	68 be cb 40 00       	push   $0x40cbbe
406f0a:	e8 bd fe ff ff       	call   0x406dcc
406f0f:	83 c4 18             	add    $0x18,%esp
406f12:	83 f8 fe             	cmp    $0xfffffffe,%eax
406f15:	75 47                	jne    0x406f5e
406f17:	e8 0b d2 ff ff       	call   0x404127
406f1c:	83 38 22             	cmpl   $0x22,(%eax)
406f1f:	75 59                	jne    0x406f7a
406f21:	e8 01 d2 ff ff       	call   0x404127
406f26:	89 38                	mov    %edi,(%eax)
406f28:	eb 50                	jmp    0x406f7a
406f2a:	8b 18                	mov    (%eax),%ebx
406f2c:	57                   	push   %edi
406f2d:	56                   	push   %esi
406f2e:	68 be cb 40 00       	push   $0x40cbbe
406f33:	e8 94 fe ff ff       	call   0x406dcc
406f38:	83 c4 18             	add    $0x18,%esp
406f3b:	c6 44 3e ff 00       	movb   $0x0,-0x1(%esi,%edi,1)
406f40:	83 f8 fe             	cmp    $0xfffffffe,%eax
406f43:	75 19                	jne    0x406f5e
406f45:	83 7d 10 ff          	cmpl   $0xffffffff,0x10(%ebp)
406f49:	75 17                	jne    0x406f62
406f4b:	e8 d7 d1 ff ff       	call   0x404127
406f50:	83 38 22             	cmpl   $0x22,(%eax)
406f53:	75 25                	jne    0x406f7a
406f55:	e8 cd d1 ff ff       	call   0x404127
406f5a:	89 18                	mov    %ebx,(%eax)
406f5c:	eb 1c                	jmp    0x406f7a
406f5e:	85 c0                	test   %eax,%eax
406f60:	79 1b                	jns    0x406f7d
406f62:	c6 06 00             	movb   $0x0,(%esi)
406f65:	83 f8 fe             	cmp    $0xfffffffe,%eax
406f68:	75 10                	jne    0x406f7a
406f6a:	e8 b8 d1 ff ff       	call   0x404127
406f6f:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
406f75:	e8 0d bd ff ff       	call   0x402c87
406f7a:	83 c8 ff             	or     $0xffffffff,%eax
406f7d:	5f                   	pop    %edi
406f7e:	5e                   	pop    %esi
406f7f:	5b                   	pop    %ebx
406f80:	5d                   	pop    %ebp
406f81:	c3                   	ret
406f82:	8b ff                	mov    %edi,%edi
406f84:	55                   	push   %ebp
406f85:	8b ec                	mov    %esp,%ebp
406f87:	ff 75 18             	push   0x18(%ebp)
406f8a:	6a 00                	push   $0x0
406f8c:	ff 75 14             	push   0x14(%ebp)
406f8f:	ff 75 10             	push   0x10(%ebp)
406f92:	ff 75 0c             	push   0xc(%ebp)
406f95:	ff 75 08             	push   0x8(%ebp)
406f98:	e8 f9 fe ff ff       	call   0x406e96
406f9d:	83 c4 18             	add    $0x18,%esp
406fa0:	5d                   	pop    %ebp
406fa1:	c3                   	ret
406fa2:	8b ff                	mov    %edi,%edi
406fa4:	55                   	push   %ebp
406fa5:	8b ec                	mov    %esp,%ebp
406fa7:	8b 45 14             	mov    0x14(%ebp),%eax
406faa:	85 c0                	test   %eax,%eax
406fac:	7e 0b                	jle    0x406fb9
406fae:	50                   	push   %eax
406faf:	ff 75 10             	push   0x10(%ebp)
406fb2:	e8 1a 00 00 00       	call   0x406fd1
406fb7:	59                   	pop    %ecx
406fb8:	59                   	pop    %ecx
406fb9:	ff 75 1c             	push   0x1c(%ebp)
406fbc:	ff 75 18             	push   0x18(%ebp)
406fbf:	50                   	push   %eax
406fc0:	ff 75 10             	push   0x10(%ebp)
406fc3:	ff 75 0c             	push   0xc(%ebp)
406fc6:	ff 75 08             	push   0x8(%ebp)
406fc9:	ff 15 f8 f0 40 00    	call   *0x40f0f8
406fcf:	5d                   	pop    %ebp
406fd0:	c3                   	ret
406fd1:	8b ff                	mov    %edi,%edi
406fd3:	55                   	push   %ebp
406fd4:	8b ec                	mov    %esp,%ebp
406fd6:	33 c0                	xor    %eax,%eax
406fd8:	39 45 0c             	cmp    %eax,0xc(%ebp)
406fdb:	76 12                	jbe    0x406fef
406fdd:	8b 4d 08             	mov    0x8(%ebp),%ecx
406fe0:	66 83 39 00          	cmpw   $0x0,(%ecx)
406fe4:	74 09                	je     0x406fef
406fe6:	40                   	inc    %eax
406fe7:	83 c1 02             	add    $0x2,%ecx
406fea:	3b 45 0c             	cmp    0xc(%ebp),%eax
406fed:	72 f1                	jb     0x406fe0
406fef:	5d                   	pop    %ebp
406ff0:	c3                   	ret
406ff1:	cc                   	int3
406ff2:	cc                   	int3
406ff3:	cc                   	int3
406ff4:	cc                   	int3
406ff5:	cc                   	int3
406ff6:	cc                   	int3
406ff7:	cc                   	int3
406ff8:	cc                   	int3
406ff9:	cc                   	int3
406ffa:	cc                   	int3
406ffb:	cc                   	int3
406ffc:	cc                   	int3
406ffd:	cc                   	int3
406ffe:	cc                   	int3
406fff:	cc                   	int3
407000:	51                   	push   %ecx
407001:	8d 4c 24 08          	lea    0x8(%esp),%ecx
407005:	2b c8                	sub    %eax,%ecx
407007:	83 e1 0f             	and    $0xf,%ecx
40700a:	03 c1                	add    %ecx,%eax
40700c:	1b c9                	sbb    %ecx,%ecx
40700e:	0b c1                	or     %ecx,%eax
407010:	59                   	pop    %ecx
407011:	e9 ea 67 00 00       	jmp    0x40d800
407016:	51                   	push   %ecx
407017:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40701b:	2b c8                	sub    %eax,%ecx
40701d:	83 e1 07             	and    $0x7,%ecx
407020:	03 c1                	add    %ecx,%eax
407022:	1b c9                	sbb    %ecx,%ecx
407024:	0b c1                	or     %ecx,%eax
407026:	59                   	pop    %ecx
407027:	e9 d4 67 00 00       	jmp    0x40d800
40702c:	8b ff                	mov    %edi,%edi
40702e:	55                   	push   %ebp
40702f:	8b ec                	mov    %esp,%ebp
407031:	51                   	push   %ecx
407032:	56                   	push   %esi
407033:	8b 75 0c             	mov    0xc(%ebp),%esi