406aec:	89 06                	mov    %eax,(%esi)
406aee:	5e                   	pop    %esi
406aef:	8b c3                	mov    %ebx,%eax
406af1:	5b                   	pop    %ebx
406af2:	5d                   	pop    %ebp
406af3:	c3                   	ret
406af4:	8b ff                	mov    %edi,%edi
406af6:	55                   	push   %ebp
406af7:	8b ec                	mov    %esp,%ebp
406af9:	56                   	push   %esi
406afa:	8b 75 08             	mov    0x8(%ebp),%esi
406afd:	85 f6                	test   %esi,%esi
406aff:	75 09                	jne    0x406b0a
406b01:	56                   	push   %esi
406b02:	e8 35 00 00 00       	call   0x406b3c
406b07:	59                   	pop    %ecx
406b08:	eb 2f                	jmp    0x406b39
406b0a:	56                   	push   %esi
406b0b:	e8 7c ff ff ff       	call   0x406a8c
406b10:	59                   	pop    %ecx
406b11:	85 c0                	test   %eax,%eax
406b13:	74 05                	je     0x406b1a
406b15:	83 c8 ff             	or     $0xffffffff,%eax
406b18:	eb 1f                	jmp    0x406b39
406b1a:	f7 46 0c 00 40 00 00 	testl  $0x4000,0xc(%esi)
406b21:	74 14                	je     0x406b37
406b23:	56                   	push   %esi
406b24:	e8 87 bf ff ff       	call   0x402ab0
406b29:	50                   	push   %eax
406b2a:	e8 83 5f 00 00       	call   0x40cab2
406b2f:	59                   	pop    %ecx
406b30:	f7 d8                	neg    %eax
406b32:	59                   	pop    %ecx
406b33:	1b c0                	sbb    %eax,%eax
406b35:	eb 02                	jmp    0x406b39
406b37:	33 c0                	xor    %eax,%eax
406b39:	5e                   	pop    %esi
406b3a:	5d                   	pop    %ebp
406b3b:	c3                   	ret
406b3c:	6a 14                	push   $0x14
406b3e:	68 e8 12 41 00       	push   $0x4112e8
406b43:	e8 28 d6 ff ff       	call   0x404170
406b48:	33 ff                	xor    %edi,%edi
406b4a:	89 7d e4             	mov    %edi,-0x1c(%ebp)
406b4d:	89 7d dc             	mov    %edi,-0x24(%ebp)
406b50:	6a 01                	push   $0x1
406b52:	e8 42 02 00 00       	call   0x406d99
406b57:	59                   	pop    %ecx
406b58:	89 7d fc             	mov    %edi,-0x4(%ebp)
406b5b:	33 f6                	xor    %esi,%esi
406b5d:	89 75 e0             	mov    %esi,-0x20(%ebp)
406b60:	3b 35 60 57 41 00    	cmp    0x415760,%esi
406b66:	0f 8d 83 00 00 00    	jge    0x406bef
406b6c:	a1 44 47 41 00       	mov    0x414744,%eax
406b71:	8d 04 b0             	lea    (%eax,%esi,4),%eax
406b74:	39 38                	cmp    %edi,(%eax)
406b76:	74 5e                	je     0x406bd6
406b78:	8b 00                	mov    (%eax),%eax
406b7a:	f6 40 0c 83          	testb  $0x83,0xc(%eax)
406b7e:	74 56                	je     0x406bd6
406b80:	50                   	push   %eax
406b81:	56                   	push   %esi
406b82:	e8 14 b8 ff ff       	call   0x40239b
406b87:	59                   	pop    %ecx
406b88:	59                   	pop    %ecx
406b89:	33 d2                	xor    %edx,%edx
406b8b:	42                   	inc    %edx
406b8c:	89 55 fc             	mov    %edx,-0x4(%ebp)
406b8f:	a1 44 47 41 00       	mov    0x414744,%eax
406b94:	8b 04 b0             	mov    (%eax,%esi,4),%eax
406b97:	8b 48 0c             	mov    0xc(%eax),%ecx
406b9a:	f6 c1 83             	test   $0x83,%cl
406b9d:	74 2f                	je     0x406bce
406b9f:	39 55 08             	cmp    %edx,0x8(%ebp)
406ba2:	75 11                	jne    0x406bb5
406ba4:	50                   	push   %eax
406ba5:	e8 4a ff ff ff       	call   0x406af4
406baa:	59                   	pop    %ecx
406bab:	83 f8 ff             	cmp    $0xffffffff,%eax
406bae:	74 1e                	je     0x406bce
406bb0:	ff 45 e4             	incl   -0x1c(%ebp)
406bb3:	eb 19                	jmp    0x406bce
406bb5:	39 7d 08             	cmp    %edi,0x8(%ebp)
406bb8:	75 14                	jne    0x406bce
406bba:	f6 c1 02             	test   $0x2,%cl
406bbd:	74 0f                	je     0x406bce
406bbf:	50                   	push   %eax
406bc0:	e8 2f ff ff ff       	call   0x406af4
406bc5:	59                   	pop    %ecx
406bc6:	83 f8 ff             	cmp    $0xffffffff,%eax
406bc9:	75 03                	jne    0x406bce
406bcb:	09 45 dc             	or     %eax,-0x24(%ebp)
406bce:	89 7d fc             	mov    %edi,-0x4(%ebp)
406bd1:	e8 08 00 00 00       	call   0x406bde
406bd6:	46                   	inc    %esi
406bd7:	eb 84                	jmp    0x406b5d
406bd9:	33 ff                	xor    %edi,%edi
406bdb:	8b 75 e0             	mov    -0x20(%ebp),%esi
406bde:	a1 44 47 41 00       	mov    0x414744,%eax
406be3:	ff 34 b0             	push   (%eax,%esi,4)
406be6:	56                   	push   %esi
406be7:	e8 1d b8 ff ff       	call   0x402409
406bec:	59                   	pop    %ecx
406bed:	59                   	pop    %ecx
406bee:	c3                   	ret
406bef:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406bf6:	e8 12 00 00 00       	call   0x406c0d
406bfb:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
406bff:	8b 45 e4             	mov    -0x1c(%ebp),%eax
406c02:	74 03                	je     0x406c07
406c04:	8b 45 dc             	mov    -0x24(%ebp),%eax
406c07:	e8 a9 d5 ff ff       	call   0x4041b5
406c0c:	c3                   	ret
406c0d:	6a 01                	push   $0x1
406c0f:	e8 ac 00 00 00       	call   0x406cc0
406c14:	59                   	pop    %ecx
406c15:	c3                   	ret
406c16:	6a 01                	push   $0x1
406c18:	e8 1f ff ff ff       	call   0x406b3c
406c1d:	59                   	pop    %ecx
406c1e:	c3                   	ret
406c1f:	8b ff                	mov    %edi,%edi
406c21:	56                   	push   %esi
406c22:	57                   	push   %edi
406c23:	33 f6                	xor    %esi,%esi
406c25:	bf c8 38 41 00       	mov    $0x4138c8,%edi
406c2a:	83 3c f5 bc 2b 41 00 	cmpl   $0x1,0x412bbc(,%esi,8)
406c31:	01
406c32:	75 1d                	jne    0x406c51
406c34:	8d 04 f5 b8 2b 41 00 	lea    0x412bb8(,%esi,8),%eax
406c3b:	89 38                	mov    %edi,(%eax)
406c3d:	68 a0 0f 00 00       	push   $0xfa0
406c42:	ff 30                	push   (%eax)
406c44:	83 c7 18             	add    $0x18,%edi
406c47:	ff 15 9c f0 40 00    	call   *0x40f09c
406c4d:	85 c0                	test   %eax,%eax
406c4f:	74 0c                	je     0x406c5d
406c51:	46                   	inc    %esi
406c52:	83 fe 24             	cmp    $0x24,%esi
406c55:	7c d3                	jl     0x406c2a
406c57:	33 c0                	xor    %eax,%eax
406c59:	40                   	inc    %eax
406c5a:	5f                   	pop    %edi
406c5b:	5e                   	pop    %esi
406c5c:	c3                   	ret
406c5d:	83 24 f5 b8 2b 41 00 	andl   $0x0,0x412bb8(,%esi,8)
406c64:	00
406c65:	33 c0                	xor    %eax,%eax
406c67:	eb f1                	jmp    0x406c5a
406c69:	8b ff                	mov    %edi,%edi
406c6b:	53                   	push   %ebx
406c6c:	8b 1d f0 f0 40 00    	mov    0x40f0f0,%ebx
406c72:	56                   	push   %esi
406c73:	be b8 2b 41 00       	mov    $0x412bb8,%esi
406c78:	57                   	push   %edi
406c79:	8b 3e                	mov    (%esi),%edi
406c7b:	85 ff                	test   %edi,%edi
406c7d:	74 13                	je     0x406c92
406c7f:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
406c83:	74 0d                	je     0x406c92
406c85:	57                   	push   %edi
406c86:	ff d3                	call   *%ebx
406c88:	57                   	push   %edi
406c89:	e8 dd b2 ff ff       	call   0x401f6b
406c8e:	83 26 00             	andl   $0x0,(%esi)
406c91:	59                   	pop    %ecx
406c92:	83 c6 08             	add    $0x8,%esi
406c95:	81 fe d8 2c 41 00    	cmp    $0x412cd8,%esi
406c9b:	7c dc                	jl     0x406c79
406c9d:	be b8 2b 41 00       	mov    $0x412bb8,%esi
406ca2:	5f                   	pop    %edi
406ca3:	8b 06                	mov    (%esi),%eax
406ca5:	85 c0                	test   %eax,%eax
406ca7:	74 09                	je     0x406cb2
406ca9:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
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