404a9f:	f6 47 3c 04          	testb  $0x4,0x3c(%edi)
404aa3:	8b cf                	mov    %edi,%ecx
404aa5:	75 b2                	jne    0x404a59
404aa7:	e8 73 01 00 00       	call   0x404c1f
404aac:	83 c0 02             	add    $0x2,%eax
404aaf:	8b cf                	mov    %edi,%ecx
404ab1:	50                   	push   %eax
404ab2:	e8 9d fc ff ff       	call   0x404754
404ab7:	2b c5                	sub    %ebp,%eax
404ab9:	8b cf                	mov    %edi,%ecx
404abb:	d1 f8                	sar    $1,%eax
404abd:	8d 04 46             	lea    (%esi,%eax,2),%eax
404ac0:	50                   	push   %eax
404ac1:	56                   	push   %esi
404ac2:	e8 60 05 00 00       	call   0x405027
404ac7:	f6 47 3c 01          	testb  $0x1,0x3c(%edi)
404acb:	74 0a                	je     0x404ad7
404acd:	53                   	push   %ebx
404ace:	55                   	push   %ebp
404acf:	8d 4f 40             	lea    0x40(%edi),%ecx
404ad2:	e8 89 f8 ff ff       	call   0x404360
404ad7:	83 4f 3c 01          	orl    $0x1,0x3c(%edi)
404adb:	8b cf                	mov    %edi,%ecx
404add:	e8 1e f3 ff ff       	call   0x403e00
404ae2:	8b f0                	mov    %eax,%esi
404ae4:	8d 44 24 18          	lea    0x18(%esp),%eax
404ae8:	50                   	push   %eax
404ae9:	e8 2d 06 00 00       	call   0x40511b
404aee:	59                   	pop    %ecx
404aef:	66 89 06             	mov    %ax,(%esi)
404af2:	66 8b 44 24 18       	mov    0x18(%esp),%ax
404af7:	5d                   	pop    %ebp
404af8:	5b                   	pop    %ebx
404af9:	5e                   	pop    %esi
404afa:	5f                   	pop    %edi
404afb:	59                   	pop    %ecx
404afc:	c2 04 00             	ret    $0x4
404aff:	e8 7e fa ff ff       	call   0x404582
404b04:	c2 04 00             	ret    $0x4
404b07:	55                   	push   %ebp
404b08:	8b ec                	mov    %esp,%ebp
404b0a:	51                   	push   %ecx
404b0b:	56                   	push   %esi
404b0c:	57                   	push   %edi
404b0d:	8b f9                	mov    %ecx,%edi
404b0f:	e8 40 fc ff ff       	call   0x404754
404b14:	85 c0                	test   %eax,%eax
404b16:	0f 84 af 00 00 00    	je     0x404bcb
404b1c:	8b cf                	mov    %edi,%ecx
404b1e:	e8 31 fc ff ff       	call   0x404754
404b23:	8b cf                	mov    %edi,%ecx
404b25:	8b f0                	mov    %eax,%esi
404b27:	e8 36 fa ff ff       	call   0x404562
404b2c:	3b f0                	cmp    %eax,%esi
404b2e:	0f 86 97 00 00 00    	jbe    0x404bcb
404b34:	e8 49 fa ff ff       	call   0x404582
404b39:	0f b7 c0             	movzwl %ax,%eax
404b3c:	89 45 fc             	mov    %eax,-0x4(%ebp)
404b3f:	8d 45 08             	lea    0x8(%ebp),%eax
404b42:	50                   	push   %eax
404b43:	8d 45 fc             	lea    -0x4(%ebp),%eax
404b46:	50                   	push   %eax
404b47:	e8 5c fa ff ff       	call   0x4045a8
404b4c:	59                   	pop    %ecx
404b4d:	59                   	pop    %ecx
404b4e:	84 c0                	test   %al,%al
404b50:	75 30                	jne    0x404b82
404b52:	8d 45 08             	lea    0x8(%ebp),%eax
404b55:	50                   	push   %eax
404b56:	e8 c0 05 00 00       	call   0x40511b
404b5b:	59                   	pop    %ecx
404b5c:	0f b7 c0             	movzwl %ax,%eax
404b5f:	8b cf                	mov    %edi,%ecx
404b61:	89 45 fc             	mov    %eax,-0x4(%ebp)
404b64:	e8 eb fb ff ff       	call   0x404754
404b69:	83 e8 02             	sub    $0x2,%eax
404b6c:	50                   	push   %eax
404b6d:	8d 45 fc             	lea    -0x4(%ebp),%eax
404b70:	50                   	push   %eax
404b71:	e8 20 fa ff ff       	call   0x404596
404b76:	59                   	pop    %ecx
404b77:	59                   	pop    %ecx
404b78:	84 c0                	test   %al,%al
404b7a:	75 06                	jne    0x404b82
404b7c:	f6 47 3c 02          	testb  $0x2,0x3c(%edi)
404b80:	75 49                	jne    0x404bcb
404b82:	6a ff                	push   $0xffffffff
404b84:	8b cf                	mov    %edi,%ecx
404b86:	e8 8d fb ff ff       	call   0x404718
404b8b:	e8 f2 f9 ff ff       	call   0x404582
404b90:	0f b7 c0             	movzwl %ax,%eax
404b93:	89 45 fc             	mov    %eax,-0x4(%ebp)
404b96:	8d 45 08             	lea    0x8(%ebp),%eax
404b99:	50                   	push   %eax
404b9a:	8d 45 fc             	lea    -0x4(%ebp),%eax
404b9d:	50                   	push   %eax
404b9e:	e8 05 fa ff ff       	call   0x4045a8
404ba3:	59                   	pop    %ecx
404ba4:	59                   	pop    %ecx
404ba5:	84 c0                	test   %al,%al
404ba7:	75 16                	jne    0x404bbf
404ba9:	8b cf                	mov    %edi,%ecx
404bab:	e8 a4 fb ff ff       	call   0x404754
404bb0:	8b f0                	mov    %eax,%esi
404bb2:	8d 45 08             	lea    0x8(%ebp),%eax
404bb5:	50                   	push   %eax
404bb6:	e8 60 05 00 00       	call   0x40511b
404bbb:	59                   	pop    %ecx
404bbc:	66 89 06             	mov    %ax,(%esi)
404bbf:	8d 45 08             	lea    0x8(%ebp),%eax
404bc2:	50                   	push   %eax
404bc3:	e8 0e fd ff ff       	call   0x4048d6
404bc8:	59                   	pop    %ecx
404bc9:	eb 05                	jmp    0x404bd0
404bcb:	e8 b2 f9 ff ff       	call   0x404582
404bd0:	5f                   	pop    %edi
404bd1:	5e                   	pop    %esi
404bd2:	8b e5                	mov    %ebp,%esp
404bd4:	5d                   	pop    %ebp
404bd5:	c2 04 00             	ret    $0x4
404bd8:	8b 41 10             	mov    0x10(%ecx),%eax
404bdb:	8b 00                	mov    (%eax),%eax
404bdd:	c3                   	ret
404bde:	8b 41 30             	mov    0x30(%ecx),%eax
404be1:	8b 54 24 04          	mov    0x4(%esp),%edx
404be5:	29 10                	sub    %edx,(%eax)
404be7:	8b 49 20             	mov    0x20(%ecx),%ecx
404bea:	8d 04 12             	lea    (%edx,%edx,1),%eax
404bed:	01 01                	add    %eax,(%ecx)
404bef:	c2 04 00             	ret    $0x4
404bf2:	56                   	push   %esi
404bf3:	8b f1                	mov    %ecx,%esi
404bf5:	e8 21 f1 ff ff       	call   0x403d1b
404bfa:	8b 08                	mov    (%eax),%ecx
404bfc:	83 e9 18             	sub    $0x18,%ecx
404bff:	e8 41 d8 ff ff       	call   0x402445
404c04:	50                   	push   %eax
404c05:	8b ce                	mov    %esi,%ecx
404c07:	e8 22 ed ff ff       	call   0x40392e
404c0c:	8b c8                	mov    %eax,%ecx
404c0e:	e8 96 d8 ff ff       	call   0x4024a9
404c13:	8b ce                	mov    %esi,%ecx
404c15:	e8 01 f1 ff ff       	call   0x403d1b
404c1a:	5e                   	pop    %esi
404c1b:	83 00 e8             	addl   $0xffffffe8,(%eax)
404c1e:	c3                   	ret
404c1f:	8b 41 20             	mov    0x20(%ecx),%eax
404c22:	8b 00                	mov    (%eax),%eax
404c24:	c3                   	ret
404c25:	8b 01                	mov    (%ecx),%eax
404c27:	ff 60 34             	jmp    *0x34(%eax)
404c2a:	8b 41 38             	mov    0x38(%ecx),%eax
404c2d:	c3                   	ret
404c2e:	8b 41 0c             	mov    0xc(%ecx),%eax
404c31:	c3                   	ret
404c32:	ff 35 34 81 42 00    	push   0x428134
404c38:	8b 4c 24 08          	mov    0x8(%esp),%ecx
404c3c:	ff 35 30 81 42 00    	push   0x428130
404c42:	e8 84 dd ff ff       	call   0x4029cb
404c47:	8b 44 24 04          	mov    0x4(%esp),%eax
404c4b:	c2 14 00             	ret    $0x14
404c4e:	53                   	push   %ebx
404c4f:	55                   	push   %ebp
404c50:	56                   	push   %esi
404c51:	57                   	push   %edi
404c52:	8b f9                	mov    %ecx,%edi
404c54:	e8 c6 ff ff ff       	call   0x404c1f
404c59:	85 c0                	test   %eax,%eax
404c5b:	74 16                	je     0x404c73
404c5d:	8b cf                	mov    %edi,%ecx
404c5f:	e8 bb ff ff ff       	call   0x404c1f
404c64:	39 47 38             	cmp    %eax,0x38(%edi)
404c67:	73 0a                	jae    0x404c73
404c69:	8b cf                	mov    %edi,%ecx
404c6b:	e8 af ff ff ff       	call   0x404c1f
404c70:	89 47 38             	mov    %eax,0x38(%edi)
404c73:	f6 44 24 24 01       	testb  $0x1,0x24(%esp)
404c78:	0f 84 06 01 00 00    	je     0x404d84
404c7e:	8b cf                	mov    %edi,%ecx
404c80:	e8 cf fa ff ff       	call   0x404754
404c85:	85 c0                	test   %eax,%eax
404c87:	0f 84 f7 00 00 00    	je     0x404d84
404c8d:	8b 44 24 20          	mov    0x20(%esp),%eax
404c91:	83 f8 02             	cmp    $0x2,%eax
404c94:	75 12                	jne    0x404ca8
404c96:	8b cf                	mov    %edi,%ecx
404c98:	e8 c5 f8 ff ff       	call   0x404562
404c9d:	8b 4f 38             	mov    0x38(%edi),%ecx
404ca0:	2b c8                	sub    %eax,%ecx
404ca2:	d1 f9                	sar    $1,%ecx
404ca4:	8b c1                	mov    %ecx,%eax
404ca6:	eb 22                	jmp    0x404cca
404ca8:	83 f8 01             	cmp    $0x1,%eax
404cab:	75 2c                	jne    0x404cd9
404cad:	f6 44 24 24 02       	testb  $0x2,0x24(%esp)
404cb2:	75 29                	jne    0x404cdd
404cb4:	8b cf                	mov    %edi,%ecx
404cb6:	e8 99 fa ff ff       	call   0x404754
404cbb:	8b cf                	mov    %edi,%ecx
404cbd:	8b f0                	mov    %eax,%esi
404cbf:	e8 9e f8 ff ff       	call   0x404562
404cc4:	2b f0                	sub    %eax,%esi
404cc6:	d1 fe                	sar    $1,%esi
404cc8:	8b c6                	mov    %esi,%eax
404cca:	8b 5c 24 18          	mov    0x18(%esp),%ebx
404cce:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
404cd2:	99                   	cltd
404cd3:	03 d8                	add    %eax,%ebx
404cd5:	13 ea                	adc    %edx,%ebp
404cd7:	eb 1a                	jmp    0x404cf3
404cd9:	85 c0                	test   %eax,%eax
404cdb:	74 0e                	je     0x404ceb
404cdd:	8b 1d 30 81 42 00    	mov    0x428130,%ebx
404ce3:	8b 2d 34 81 42 00    	mov    0x428134,%ebp
404ce9:	eb 08                	jmp    0x404cf3
404ceb:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
404cef:	8b 5c 24 18          	mov    0x18(%esp),%ebx
404cf3:	85 ed                	test   %ebp,%ebp
404cf5:	0f 8c 55 01 00 00    	jl     0x404e50
404cfb:	7f 08                	jg     0x404d05
404cfd:	85 db                	test   %ebx,%ebx
404cff:	0f 82 4b 01 00 00    	jb     0x404e50
404d05:	8b cf                	mov    %edi,%ecx
404d07:	e8 56 f8 ff ff       	call   0x404562
404d0c:	8b 4f 38             	mov    0x38(%edi),%ecx
404d0f:	2b c8                	sub    %eax,%ecx
404d11:	d1 f9                	sar    $1,%ecx
404d13:	8b c1                	mov    %ecx,%eax
404d15:	99                   	cltd
404d16:	3b ea                	cmp    %edx,%ebp
404d18:	0f 8f 32 01 00 00    	jg     0x404e50
404d1e:	7c 08                	jl     0x404d28
404d20:	3b d8                	cmp    %eax,%ebx
404d22:	0f 87 28 01 00 00    	ja     0x404e50
404d28:	8b cf                	mov    %edi,%ecx
404d2a:	e8 33 f8 ff ff       	call   0x404562
404d2f:	8b cf                	mov    %edi,%ecx
404d31:	8b f0                	mov    %eax,%esi
404d33:	e8 1c fa ff ff       	call   0x404754
404d38:	2b f0                	sub    %eax,%esi
404d3a:	8b cf                	mov    %edi,%ecx
404d3c:	d1 fe                	sar    $1,%esi
404d3e:	03 f3                	add    %ebx,%esi
404d40:	56                   	push   %esi
404d41:	e8 d2 f9 ff ff       	call   0x404718
404d46:	f6 44 24 24 02       	testb  $0x2,0x24(%esp)
404d4b:	0f 84 0b 01 00 00    	je     0x404e5c
404d51:	8b cf                	mov    %edi,%ecx
404d53:	e8 c7 fe ff ff       	call   0x404c1f
404d58:	85 c0                	test   %eax,%eax
404d5a:	0f 84 fc 00 00 00    	je     0x404e5c
404d60:	8b cf                	mov    %edi,%ecx
404d62:	e8 21 f8 ff ff       	call   0x404588
404d67:	50                   	push   %eax
404d68:	8b cf                	mov    %edi,%ecx
404d6a:	e8 e5 f9 ff ff       	call   0x404754
404d6f:	50                   	push   %eax
404d70:	8b cf                	mov    %edi,%ecx
404d72:	e8 61 fe ff ff       	call   0x404bd8
404d77:	50                   	push   %eax
404d78:	8b cf                	mov    %edi,%ecx
404d7a:	e8 cc 02 00 00       	call   0x40504b
404d7f:	e9 d8 00 00 00       	jmp    0x404e5c
404d84:	f6 44 24 24 02       	testb  $0x2,0x24(%esp)
404d89:	0f 84 b3 00 00 00    	je     0x404e42
404d8f:	8b cf                	mov    %edi,%ecx
404d91:	e8 89 fe ff ff       	call   0x404c1f
404d96:	85 c0                	test   %eax,%eax
404d98:	0f 84 a4 00 00 00    	je     0x404e42
404d9e:	8b 44 24 20          	mov    0x20(%esp),%eax
404da2:	83 f8 02             	cmp    $0x2,%eax
404da5:	75 12                	jne    0x404db9
404da7:	8b cf                	mov    %edi,%ecx
404da9:	e8 b4 f7 ff ff       	call   0x404562
404dae:	8b 4f 38             	mov    0x38(%edi),%ecx
404db1:	2b c8                	sub    %eax,%ecx
404db3:	d1 f9                	sar    $1,%ecx
404db5:	8b c1                	mov    %ecx,%eax
404db7:	eb 1b                	jmp    0x404dd4
404db9:	83 f8 01             	cmp    $0x1,%eax
404dbc:	75 25                	jne    0x404de3
404dbe:	8b cf                	mov    %edi,%ecx
404dc0:	e8 5a fe ff ff       	call   0x404c1f
404dc5:	8b cf                	mov    %edi,%ecx
404dc7:	8b f0                	mov    %eax,%esi
404dc9:	e8 94 f7 ff ff       	call   0x404562
404dce:	2b f0                	sub    %eax,%esi
404dd0:	d1 fe                	sar    $1,%esi
404dd2:	8b c6                	mov    %esi,%eax
404dd4:	8b 5c 24 18          	mov    0x18(%esp),%ebx
404dd8:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
404ddc:	99                   	cltd
404ddd:	03 d8                	add    %eax,%ebx
404ddf:	13 ea                	adc    %edx,%ebp
404de1:	eb 1a                	jmp    0x404dfd
404de3:	85 c0                	test   %eax,%eax
404de5:	74 0e                	je     0x404df5
404de7:	8b 1d 30 81 42 00    	mov    0x428130,%ebx
404ded:	8b 2d 34 81 42 00    	mov    0x428134,%ebp
404df3:	eb 08                	jmp    0x404dfd
404df5:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
404df9:	8b 5c 24 18          	mov    0x18(%esp),%ebx
404dfd:	85 ed                	test   %ebp,%ebp
404dff:	7c 4f                	jl     0x404e50
404e01:	7f 04                	jg     0x404e07
404e03:	85 db                	test   %ebx,%ebx
404e05:	72 49                	jb     0x404e50
404e07:	8b cf                	mov    %edi,%ecx
404e09:	e8 54 f7 ff ff       	call   0x404562
404e0e:	8b 4f 38             	mov    0x38(%edi),%ecx
404e11:	2b c8                	sub    %eax,%ecx
404e13:	d1 f9                	sar    $1,%ecx
404e15:	8b c1                	mov    %ecx,%eax
404e17:	99                   	cltd
404e18:	3b ea                	cmp    %edx,%ebp
404e1a:	7f 34                	jg     0x404e50
404e1c:	7c 04                	jl     0x404e22
404e1e:	3b d8                	cmp    %eax,%ebx
404e20:	77 2e                	ja     0x404e50
404e22:	8b cf                	mov    %edi,%ecx
404e24:	e8 39 f7 ff ff       	call   0x404562
404e29:	8b cf                	mov    %edi,%ecx
404e2b:	8b f0                	mov    %eax,%esi
404e2d:	e8 ed fd ff ff       	call   0x404c1f
404e32:	2b f0                	sub    %eax,%esi
404e34:	8b cf                	mov    %edi,%ecx
404e36:	d1 fe                	sar    $1,%esi
404e38:	03 f3                	add    %ebx,%esi
404e3a:	56                   	push   %esi
404e3b:	e8 9e fd ff ff       	call   0x404bde
404e40:	eb 1a                	jmp    0x404e5c
404e42:	8b 5c 24 18          	mov    0x18(%esp),%ebx
404e46:	8b c3                	mov    %ebx,%eax
404e48:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
404e4c:	0b c5                	or     %ebp,%eax
404e4e:	74 0c                	je     0x404e5c
404e50:	8b 1d 30 81 42 00    	mov    0x428130,%ebx
404e56:	8b 2d 34 81 42 00    	mov    0x428134,%ebp
404e5c:	8b 4c 24 14          	mov    0x14(%esp),%ecx
404e60:	55                   	push   %ebp
404e61:	53                   	push   %ebx
404e62:	e8 64 db ff ff       	call   0x4029cb
404e67:	8b 44 24 14          	mov    0x14(%esp),%eax
404e6b:	5f                   	pop    %edi
404e6c:	5e                   	pop    %esi
404e6d:	5d                   	pop    %ebp
404e6e:	5b                   	pop    %ebx
404e6f:	c2 14 00             	ret    $0x14
404e72:	ff 35 34 81 42 00    	push   0x428134
404e78:	8b 4c 24 08          	mov    0x8(%esp),%ecx