411a87:	8b 01                	mov    (%ecx),%eax
411a89:	8b 40 0c             	mov    0xc(%eax),%eax
411a8c:	90                   	nop
411a8d:	c1 e8 0c             	shr    $0xc,%eax
411a90:	a8 01                	test   $0x1,%al
411a92:	74 14                	je     0x411aa8
411a94:	8b 01                	mov    (%ecx),%eax
411a96:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
411a9a:	75 0c                	jne    0x411aa8
411a9c:	8b 4d 10             	mov    0x10(%ebp),%ecx
411a9f:	8b 45 0c             	mov    0xc(%ebp),%eax
411aa2:	01 01                	add    %eax,(%ecx)
411aa4:	5d                   	pop    %ebp
411aa5:	c2 10 00             	ret    $0x10
411aa8:	5d                   	pop    %ebp
411aa9:	e9 d8 00 00 00       	jmp    0x411b86
411aae:	8b ff                	mov    %edi,%edi
411ab0:	55                   	push   %ebp
411ab1:	8b ec                	mov    %esp,%ebp
411ab3:	53                   	push   %ebx
411ab4:	57                   	push   %edi
411ab5:	8b 7d 0c             	mov    0xc(%ebp),%edi
411ab8:	8b d9                	mov    %ecx,%ebx
411aba:	85 ff                	test   %edi,%edi
411abc:	74 51                	je     0x411b0f
411abe:	8b 03                	mov    (%ebx),%eax
411ac0:	56                   	push   %esi
411ac1:	8b 70 04             	mov    0x4(%eax),%esi
411ac4:	39 70 08             	cmp    %esi,0x8(%eax)
411ac7:	75 0b                	jne    0x411ad4
411ac9:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
411acd:	8b 45 10             	mov    0x10(%ebp),%eax
411ad0:	74 35                	je     0x411b07
411ad2:	eb 2b                	jmp    0x411aff
411ad4:	2b 70 08             	sub    0x8(%eax),%esi
411ad7:	3b f7                	cmp    %edi,%esi
411ad9:	72 02                	jb     0x411add
411adb:	8b f7                	mov    %edi,%esi
411add:	56                   	push   %esi
411ade:	ff 75 08             	push   0x8(%ebp)
411ae1:	ff 30                	push   (%eax)
411ae3:	e8 58 93 ff ff       	call   0x40ae40
411ae8:	8b 03                	mov    (%ebx),%eax
411aea:	83 c4 0c             	add    $0xc,%esp
411aed:	01 30                	add    %esi,(%eax)
411aef:	8b 03                	mov    (%ebx),%eax
411af1:	01 70 08             	add    %esi,0x8(%eax)
411af4:	8b 03                	mov    (%ebx),%eax
411af6:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
411afa:	8b 45 10             	mov    0x10(%ebp),%eax
411afd:	74 04                	je     0x411b03
411aff:	01 38                	add    %edi,(%eax)
411b01:	eb 0b                	jmp    0x411b0e
411b03:	3b f7                	cmp    %edi,%esi
411b05:	74 05                	je     0x411b0c
411b07:	83 08 ff             	orl    $0xffffffff,(%eax)
411b0a:	eb 02                	jmp    0x411b0e
411b0c:	01 30                	add    %esi,(%eax)
411b0e:	5e                   	pop    %esi
411b0f:	5f                   	pop    %edi
411b10:	5b                   	pop    %ebx
411b11:	5d                   	pop    %ebp
411b12:	c2 10 00             	ret    $0x10
411b15:	8b ff                	mov    %edi,%edi
411b17:	55                   	push   %ebp
411b18:	8b ec                	mov    %esp,%ebp
411b1a:	51                   	push   %ecx
411b1b:	53                   	push   %ebx
411b1c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
411b1f:	8b c1                	mov    %ecx,%eax
411b21:	89 45 fc             	mov    %eax,-0x4(%ebp)
411b24:	85 db                	test   %ebx,%ebx
411b26:	74 59                	je     0x411b81
411b28:	8b 00                	mov    (%eax),%eax
411b2a:	57                   	push   %edi
411b2b:	8b 78 04             	mov    0x4(%eax),%edi
411b2e:	39 78 08             	cmp    %edi,0x8(%eax)
411b31:	75 0b                	jne    0x411b3e
411b33:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
411b37:	8b 45 10             	mov    0x10(%ebp),%eax
411b3a:	74 3d                	je     0x411b79
411b3c:	eb 33                	jmp    0x411b71
411b3e:	2b 78 08             	sub    0x8(%eax),%edi
411b41:	3b fb                	cmp    %ebx,%edi
411b43:	72 02                	jb     0x411b47
411b45:	8b fb                	mov    %ebx,%edi
411b47:	56                   	push   %esi
411b48:	8d 34 3f             	lea    (%edi,%edi,1),%esi
411b4b:	56                   	push   %esi
411b4c:	ff 75 08             	push   0x8(%ebp)
411b4f:	ff 30                	push   (%eax)
411b51:	e8 ea 92 ff ff       	call   0x40ae40
411b56:	8b 4d fc             	mov    -0x4(%ebp),%ecx
411b59:	83 c4 0c             	add    $0xc,%esp
411b5c:	8b 01                	mov    (%ecx),%eax
411b5e:	01 30                	add    %esi,(%eax)
411b60:	8b 01                	mov    (%ecx),%eax
411b62:	5e                   	pop    %esi
411b63:	01 78 08             	add    %edi,0x8(%eax)
411b66:	8b 01                	mov    (%ecx),%eax
411b68:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
411b6c:	8b 45 10             	mov    0x10(%ebp),%eax
411b6f:	74 04                	je     0x411b75
411b71:	01 18                	add    %ebx,(%eax)
411b73:	eb 0b                	jmp    0x411b80
411b75:	3b fb                	cmp    %ebx,%edi
411b77:	74 05                	je     0x411b7e
411b79:	83 08 ff             	orl    $0xffffffff,(%eax)
411b7c:	eb 02                	jmp    0x411b80
411b7e:	01 38                	add    %edi,(%eax)
411b80:	5f                   	pop    %edi
411b81:	5b                   	pop    %ebx
411b82:	c9                   	leave
411b83:	c2 10 00             	ret    $0x10
411b86:	8b ff                	mov    %edi,%edi
411b88:	55                   	push   %ebp
411b89:	8b ec                	mov    %esp,%ebp
411b8b:	83 ec 10             	sub    $0x10,%esp
411b8e:	53                   	push   %ebx
411b8f:	8b 5d 08             	mov    0x8(%ebp),%ebx
411b92:	56                   	push   %esi
411b93:	8b 75 14             	mov    0x14(%ebp),%esi
411b96:	89 4d fc             	mov    %ecx,-0x4(%ebp)
411b99:	8b 46 18             	mov    0x18(%esi),%eax
411b9c:	89 45 f4             	mov    %eax,-0xc(%ebp)
411b9f:	8b 46 1c             	mov    0x1c(%esi),%eax
411ba2:	89 45 f0             	mov    %eax,-0x10(%ebp)
411ba5:	8b 45 0c             	mov    0xc(%ebp),%eax
411ba8:	03 c3                	add    %ebx,%eax
411baa:	89 45 f8             	mov    %eax,-0x8(%ebp)
411bad:	3b d8                	cmp    %eax,%ebx
411baf:	74 42                	je     0x411bf3
411bb1:	57                   	push   %edi
411bb2:	8b 7d 10             	mov    0x10(%ebp),%edi
411bb5:	0f b6 03             	movzbl (%ebx),%eax
411bb8:	56                   	push   %esi
411bb9:	50                   	push   %eax
411bba:	e8 89 fe ff ff       	call   0x411a48
411bbf:	84 c0                	test   %al,%al
411bc1:	75 1a                	jne    0x411bdd
411bc3:	38 46 1c             	cmp    %al,0x1c(%esi)
411bc6:	74 27                	je     0x411bef
411bc8:	83 7e 18 2a          	cmpl   $0x2a,0x18(%esi)
411bcc:	75 21                	jne    0x411bef
411bce:	8b 4d fc             	mov    -0x4(%ebp),%ecx
411bd1:	56                   	push   %esi
411bd2:	6a 3f                	push   $0x3f
411bd4:	e8 6f fe ff ff       	call   0x411a48
411bd9:	84 c0                	test   %al,%al
411bdb:	74 04                	je     0x411be1
411bdd:	ff 07                	incl   (%edi)
411bdf:	eb 03                	jmp    0x411be4
411be1:	83 0f ff             	orl    $0xffffffff,(%edi)
411be4:	43                   	inc    %ebx
411be5:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
411be8:	74 08                	je     0x411bf2
411bea:	8b 4d fc             	mov    -0x4(%ebp),%ecx
411bed:	eb c6                	jmp    0x411bb5
411bef:	83 0f ff             	orl    $0xffffffff,(%edi)
411bf2:	5f                   	pop    %edi
411bf3:	8b 45 f4             	mov    -0xc(%ebp),%eax
411bf6:	89 46 18             	mov    %eax,0x18(%esi)
411bf9:	8b 45 f0             	mov    -0x10(%ebp),%eax
411bfc:	89 46 1c             	mov    %eax,0x1c(%esi)
411bff:	5e                   	pop    %esi
411c00:	5b                   	pop    %ebx
411c01:	c9                   	leave
411c02:	c2 10 00             	ret    $0x10
411c05:	8b ff                	mov    %edi,%edi
411c07:	55                   	push   %ebp
411c08:	8b ec                	mov    %esp,%ebp
411c0a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
411c0d:	8d 41 01             	lea    0x1(%ecx),%eax
411c10:	3d 00 01 00 00       	cmp    $0x100,%eax
411c15:	77 0c                	ja     0x411c23
411c17:	8b 45 08             	mov    0x8(%ebp),%eax
411c1a:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
411c1e:	23 45 10             	and    0x10(%ebp),%eax
411c21:	5d                   	pop    %ebp
411c22:	c3                   	ret
411c23:	33 c0                	xor    %eax,%eax
411c25:	5d                   	pop    %ebp
411c26:	c3                   	ret
411c27:	8b ff                	mov    %edi,%edi
411c29:	55                   	push   %ebp
411c2a:	8b ec                	mov    %esp,%ebp
411c2c:	83 ec 5c             	sub    $0x5c,%esp
411c2f:	56                   	push   %esi
411c30:	ff 75 18             	push   0x18(%ebp)
411c33:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
411c36:	e8 a7 b4 ff ff       	call   0x40d0e2
411c3b:	8b 45 1c             	mov    0x1c(%ebp),%eax
411c3e:	8b 55 10             	mov    0x10(%ebp),%edx
411c41:	8b 75 14             	mov    0x14(%ebp),%esi
411c44:	8b 4d 0c             	mov    0xc(%ebp),%ecx
411c47:	89 45 f0             	mov    %eax,-0x10(%ebp)
411c4a:	8b 45 08             	mov    0x8(%ebp),%eax
411c4d:	89 75 f4             	mov    %esi,-0xc(%ebp)
411c50:	89 55 f8             	mov    %edx,-0x8(%ebp)
411c53:	89 45 e0             	mov    %eax,-0x20(%ebp)
411c56:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
411c59:	85 d2                	test   %edx,%edx
411c5b:	75 23                	jne    0x411c80
411c5d:	8d 45 a4             	lea    -0x5c(%ebp),%eax
411c60:	c6 45 c0 01          	movb   $0x1,-0x40(%ebp)
411c64:	50                   	push   %eax
411c65:	33 c0                	xor    %eax,%eax
411c67:	c7 45 bc 16 00 00 00 	movl   $0x16,-0x44(%ebp)
411c6e:	50                   	push   %eax
411c6f:	50                   	push   %eax
411c70:	50                   	push   %eax
411c71:	50                   	push   %eax
411c72:	50                   	push   %eax
411c73:	e8 f9 b6 ff ff       	call   0x40d371
411c78:	83 c4 18             	add    $0x18,%esp
411c7b:	83 ce ff             	or     $0xffffffff,%esi
411c7e:	eb 3e                	jmp    0x411cbe
411c80:	85 f6                	test   %esi,%esi
411c82:	74 d9                	je     0x411c5d
411c84:	8d 45 f8             	lea    -0x8(%ebp),%eax
411c87:	89 55 ec             	mov    %edx,-0x14(%ebp)
411c8a:	89 45 cc             	mov    %eax,-0x34(%ebp)
411c8d:	8d 4d ff             	lea    -0x1(%ebp),%ecx
411c90:	8d 45 a4             	lea    -0x5c(%ebp),%eax
411c93:	89 55 e8             	mov    %edx,-0x18(%ebp)
411c96:	89 45 d0             	mov    %eax,-0x30(%ebp)
411c99:	8d 45 e0             	lea    -0x20(%ebp),%eax
411c9c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
411c9f:	8d 45 f4             	lea    -0xc(%ebp),%eax
411ca2:	89 45 d8             	mov    %eax,-0x28(%ebp)
411ca5:	8d 45 f0             	lea    -0x10(%ebp),%eax
411ca8:	89 45 dc             	mov    %eax,-0x24(%ebp)
411cab:	8d 45 ec             	lea    -0x14(%ebp),%eax
411cae:	50                   	push   %eax
411caf:	8d 45 cc             	lea    -0x34(%ebp),%eax
411cb2:	50                   	push   %eax
411cb3:	8d 45 e8             	lea    -0x18(%ebp),%eax
411cb6:	50                   	push   %eax
411cb7:	e8 c3 b7 ff ff       	call   0x40d47f
411cbc:	8b f0                	mov    %eax,%esi
411cbe:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
411cc1:	e8 64 b4 ff ff       	call   0x40d12a
411cc6:	8b c6                	mov    %esi,%eax
411cc8:	5e                   	pop    %esi
411cc9:	c9                   	leave
411cca:	c3                   	ret
411ccb:	8b ff                	mov    %edi,%edi
411ccd:	55                   	push   %ebp
411cce:	8b ec                	mov    %esp,%ebp
411cd0:	83 ec 28             	sub    $0x28,%esp
411cd3:	8d 4d d8             	lea    -0x28(%ebp),%ecx
411cd6:	56                   	push   %esi
411cd7:	ff 75 1c             	push   0x1c(%ebp)
411cda:	e8 03 b4 ff ff       	call   0x40d0e2
411cdf:	ff 75 20             	push   0x20(%ebp)
411ce2:	8d 45 d8             	lea    -0x28(%ebp),%eax
411ce5:	50                   	push   %eax
411ce6:	ff 75 18             	push   0x18(%ebp)
411ce9:	ff 75 14             	push   0x14(%ebp)
411cec:	ff 75 10             	push   0x10(%ebp)
411cef:	ff 75 0c             	push   0xc(%ebp)
411cf2:	ff 75 08             	push   0x8(%ebp)
411cf5:	e8 63 b9 ff ff       	call   0x40d65d
411cfa:	83 c4 1c             	add    $0x1c,%esp
411cfd:	8d 4d d8             	lea    -0x28(%ebp),%ecx
411d00:	8b f0                	mov    %eax,%esi
411d02:	e8 23 b4 ff ff       	call   0x40d12a
411d07:	8b c6                	mov    %esi,%eax
411d09:	5e                   	pop    %esi
411d0a:	c9                   	leave
411d0b:	c3                   	ret
411d0c:	8b ff                	mov    %edi,%edi
411d0e:	55                   	push   %ebp
411d0f:	8b ec                	mov    %esp,%ebp
411d11:	83 ec 28             	sub    $0x28,%esp
411d14:	8d 4d d8             	lea    -0x28(%ebp),%ecx
411d17:	56                   	push   %esi
411d18:	ff 75 1c             	push   0x1c(%ebp)
411d1b:	e8 c2 b3 ff ff       	call   0x40d0e2
411d20:	ff 75 20             	push   0x20(%ebp)
411d23:	8d 45 d8             	lea    -0x28(%ebp),%eax
411d26:	50                   	push   %eax
411d27:	ff 75 18             	push   0x18(%ebp)
411d2a:	ff 75 14             	push   0x14(%ebp)
411d2d:	ff 75 10             	push   0x10(%ebp)
411d30:	ff 75 0c             	push   0xc(%ebp)
411d33:	ff 75 08             	push   0x8(%ebp)
411d36:	e8 96 ba ff ff       	call   0x40d7d1
411d3b:	83 c4 1c             	add    $0x1c,%esp
411d3e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
411d41:	8b f0                	mov    %eax,%esi
411d43:	e8 e2 b3 ff ff       	call   0x40d12a
411d48:	8b c6                	mov    %esi,%eax
411d4a:	5e                   	pop    %esi
411d4b:	c9                   	leave
411d4c:	c3                   	ret
411d4d:	8b ff                	mov    %edi,%edi
411d4f:	55                   	push   %ebp
411d50:	8b ec                	mov    %esp,%ebp
411d52:	83 ec 28             	sub    $0x28,%esp
411d55:	8d 4d d8             	lea    -0x28(%ebp),%ecx
411d58:	56                   	push   %esi
411d59:	ff 75 1c             	push   0x1c(%ebp)
411d5c:	e8 81 b3 ff ff       	call   0x40d0e2
411d61:	ff 75 20             	push   0x20(%ebp)
411d64:	8d 45 d8             	lea    -0x28(%ebp),%eax
411d67:	50                   	push   %eax
411d68:	ff 75 18             	push   0x18(%ebp)
411d6b:	ff 75 14             	push   0x14(%ebp)
411d6e:	ff 75 10             	push   0x10(%ebp)
411d71:	ff 75 0c             	push   0xc(%ebp)
411d74:	ff 75 08             	push   0x8(%ebp)
411d77:	e8 d8 bb ff ff       	call   0x40d954
411d7c:	83 c4 1c             	add    $0x1c,%esp
411d7f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
411d82:	8b f0                	mov    %eax,%esi
411d84:	e8 a1 b3 ff ff       	call   0x40d12a
411d89:	8b c6                	mov    %esi,%eax
411d8b:	5e                   	pop    %esi
411d8c:	c9                   	leave
411d8d:	c3                   	ret
411d8e:	8b ff                	mov    %edi,%edi
411d90:	55                   	push   %ebp
411d91:	8b ec                	mov    %esp,%ebp
411d93:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
411d97:	75 32                	jne    0x411dcb
411d99:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
411d9d:	74 28                	je     0x411dc7
411d9f:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
411da3:	74 11                	je     0x411db6
411da5:	81 7d 10 00 00 00 80 	cmpl   $0x80000000,0x10(%ebp)
411dac:	77 1d                	ja     0x411dcb
411dae:	72 17                	jb     0x411dc7
411db0:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
411db4:	eb 0f                	jmp    0x411dc5
411db6:	81 7d 10 ff ff ff 7f 	cmpl   $0x7fffffff,0x10(%ebp)
411dbd:	77 0c                	ja     0x411dcb
411dbf:	72 06                	jb     0x411dc7
411dc1:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
411dc5:	77 04                	ja     0x411dcb
411dc7:	32 c0                	xor    %al,%al
411dc9:	5d                   	pop    %ebp
411dca:	c3                   	ret
411dcb:	b0 01                	mov    $0x1,%al
411dcd:	5d                   	pop    %ebp
411dce:	c3                   	ret
411dcf:	8b ff                	mov    %edi,%edi
411dd1:	55                   	push   %ebp
411dd2:	8b ec                	mov    %esp,%ebp
411dd4:	83 ec 14             	sub    $0x14,%esp