402bda:	83 4e 40 01          	orl    $0x1,0x40(%esi)
402bde:	ff 08                	decl   (%eax)
402be0:	8b 76 24             	mov    0x24(%esi),%esi
402be3:	8b 06                	mov    (%esi),%eax
402be5:	66 8b 4c 24 14       	mov    0x14(%esp),%cx
402bea:	8d 50 02             	lea    0x2(%eax),%edx
402bed:	5b                   	pop    %ebx
402bee:	89 16                	mov    %edx,(%esi)
402bf0:	5f                   	pop    %edi
402bf1:	66 89 08             	mov    %cx,(%eax)
402bf4:	66 8b c1             	mov    %cx,%ax
402bf7:	5e                   	pop    %esi
402bf8:	59                   	pop    %ecx
402bf9:	c2 04 00             	ret    $0x4
402bfc:	cc                   	int3
402bfd:	cc                   	int3
402bfe:	cc                   	int3
402bff:	cc                   	int3
402c00:	8b 41 20             	mov    0x20(%ecx),%eax
402c03:	8b 00                	mov    (%eax),%eax
402c05:	85 c0                	test   %eax,%eax
402c07:	74 4c                	je     0x402c55
402c09:	8b 51 10             	mov    0x10(%ecx),%edx
402c0c:	3b 02                	cmp    (%edx),%eax
402c0e:	76 45                	jbe    0x402c55
402c10:	66 8b 54 24 04       	mov    0x4(%esp),%dx
402c15:	56                   	push   %esi
402c16:	be ff ff 00 00       	mov    $0xffff,%esi
402c1b:	66 3b f2             	cmp    %dx,%si
402c1e:	5e                   	pop    %esi
402c1f:	74 0c                	je     0x402c2d
402c21:	66 3b 50 fe          	cmp    -0x2(%eax),%dx
402c25:	74 06                	je     0x402c2d
402c27:	f6 41 40 02          	testb  $0x2,0x40(%ecx)
402c2b:	75 28                	jne    0x402c55
402c2d:	8b 41 30             	mov    0x30(%ecx),%eax
402c30:	ff 00                	incl   (%eax)
402c32:	8b 41 20             	mov    0x20(%ecx),%eax
402c35:	83 00 fe             	addl   $0xfffffffe,(%eax)
402c38:	b8 ff ff 00 00       	mov    $0xffff,%eax
402c3d:	66 3b c2             	cmp    %dx,%ax
402c40:	74 0e                	je     0x402c50
402c42:	8b 49 20             	mov    0x20(%ecx),%ecx
402c45:	8b 01                	mov    (%ecx),%eax
402c47:	66 89 10             	mov    %dx,(%eax)
402c4a:	0f b7 c2             	movzwl %dx,%eax
402c4d:	c2 04 00             	ret    $0x4
402c50:	33 c0                	xor    %eax,%eax
402c52:	c2 04 00             	ret    $0x4
402c55:	b8 ff ff 00 00       	mov    $0xffff,%eax
402c5a:	c2 04 00             	ret    $0x4
402c5d:	cc                   	int3
402c5e:	cc                   	int3
402c5f:	cc                   	int3
402c60:	8b 51 20             	mov    0x20(%ecx),%edx
402c63:	56                   	push   %esi
402c64:	8b 32                	mov    (%edx),%esi
402c66:	85 f6                	test   %esi,%esi
402c68:	75 07                	jne    0x402c71
402c6a:	b8 ff ff 00 00       	mov    $0xffff,%eax
402c6f:	5e                   	pop    %esi
402c70:	c3                   	ret
402c71:	53                   	push   %ebx
402c72:	57                   	push   %edi
402c73:	8b 79 30             	mov    0x30(%ecx),%edi
402c76:	8b 1f                	mov    (%edi),%ebx
402c78:	8b c6                	mov    %esi,%eax
402c7a:	8d 1c 58             	lea    (%eax,%ebx,2),%ebx
402c7d:	3b c3                	cmp    %ebx,%eax
402c7f:	73 07                	jae    0x402c88
402c81:	66 8b 06             	mov    (%esi),%ax
402c84:	5f                   	pop    %edi
402c85:	5b                   	pop    %ebx
402c86:	5e                   	pop    %esi
402c87:	c3                   	ret
402c88:	f6 41 40 04          	testb  $0x4,0x40(%ecx)
402c8c:	75 31                	jne    0x402cbf
402c8e:	8b 41 24             	mov    0x24(%ecx),%eax
402c91:	8b 00                	mov    (%eax),%eax
402c93:	85 c0                	test   %eax,%eax
402c95:	74 28                	je     0x402cbf
402c97:	3b c6                	cmp    %esi,%eax
402c99:	77 05                	ja     0x402ca0
402c9b:	39 71 3c             	cmp    %esi,0x3c(%ecx)
402c9e:	76 1f                	jbe    0x402cbf
402ca0:	39 41 3c             	cmp    %eax,0x3c(%ecx)
402ca3:	73 03                	jae    0x402ca8
402ca5:	89 41 3c             	mov    %eax,0x3c(%ecx)
402ca8:	8b 12                	mov    (%edx),%edx
402caa:	8b 41 3c             	mov    0x3c(%ecx),%eax
402cad:	2b c2                	sub    %edx,%eax
402caf:	d1 f8                	sar    $1,%eax
402cb1:	89 07                	mov    %eax,(%edi)
402cb3:	8b 49 20             	mov    0x20(%ecx),%ecx
402cb6:	8b 11                	mov    (%ecx),%edx
402cb8:	66 8b 02             	mov    (%edx),%ax
402cbb:	5f                   	pop    %edi
402cbc:	5b                   	pop    %ebx
402cbd:	5e                   	pop    %esi
402cbe:	c3                   	ret
402cbf:	5f                   	pop    %edi
402cc0:	5b                   	pop    %ebx
402cc1:	b8 ff ff 00 00       	mov    $0xffff,%eax
402cc6:	5e                   	pop    %esi
402cc7:	c3                   	ret
402cc8:	cc                   	int3
402cc9:	cc                   	int3
402cca:	cc                   	int3
402ccb:	cc                   	int3
402ccc:	cc                   	int3
402ccd:	cc                   	int3
402cce:	cc                   	int3
402ccf:	cc                   	int3
402cd0:	8b 51 24             	mov    0x24(%ecx),%edx
402cd3:	8b 02                	mov    (%edx),%eax
402cd5:	85 c0                	test   %eax,%eax
402cd7:	74 08                	je     0x402ce1
402cd9:	39 41 3c             	cmp    %eax,0x3c(%ecx)
402cdc:	73 03                	jae    0x402ce1
402cde:	89 41 3c             	mov    %eax,0x3c(%ecx)
402ce1:	53                   	push   %ebx
402ce2:	8a 5c 24 14          	mov    0x14(%esp),%bl
402ce6:	56                   	push   %esi
402ce7:	57                   	push   %edi
402ce8:	f6 c3 01             	test   $0x1,%bl
402ceb:	0f 84 b5 00 00 00    	je     0x402da6
402cf1:	8b 41 20             	mov    0x20(%ecx),%eax
402cf4:	8b 30                	mov    (%eax),%esi
402cf6:	85 f6                	test   %esi,%esi
402cf8:	0f 84 a8 00 00 00    	je     0x402da6
402cfe:	8b 44 24 18          	mov    0x18(%esp),%eax
402d02:	8b 3d 00 a2 41 00    	mov    0x41a200,%edi
402d08:	83 f8 02             	cmp    $0x2,%eax
402d0b:	75 12                	jne    0x402d1f
402d0d:	8b 51 10             	mov    0x10(%ecx),%edx
402d10:	8b 41 3c             	mov    0x3c(%ecx),%eax
402d13:	2b 02                	sub    (%edx),%eax
402d15:	8b 54 24 14          	mov    0x14(%esp),%edx
402d19:	d1 f8                	sar    $1,%eax
402d1b:	03 d0                	add    %eax,%edx
402d1d:	eb 27                	jmp    0x402d46
402d1f:	83 f8 01             	cmp    $0x1,%eax
402d22:	75 16                	jne    0x402d3a
402d24:	f6 c3 02             	test   $0x2,%bl
402d27:	75 15                	jne    0x402d3e
402d29:	8b 51 10             	mov    0x10(%ecx),%edx
402d2c:	8b c6                	mov    %esi,%eax
402d2e:	2b 02                	sub    (%edx),%eax
402d30:	8b 54 24 14          	mov    0x14(%esp),%edx
402d34:	d1 f8                	sar    $1,%eax
402d36:	03 d0                	add    %eax,%edx
402d38:	eb 0c                	jmp    0x402d46
402d3a:	85 c0                	test   %eax,%eax
402d3c:	74 04                	je     0x402d42
402d3e:	8b d7                	mov    %edi,%edx
402d40:	eb 04                	jmp    0x402d46
402d42:	8b 54 24 14          	mov    0x14(%esp),%edx
402d46:	85 d2                	test   %edx,%edx
402d48:	0f 8c cc 00 00 00    	jl     0x402e1a
402d4e:	8b 41 10             	mov    0x10(%ecx),%eax
402d51:	8b 00                	mov    (%eax),%eax
402d53:	55                   	push   %ebp
402d54:	8b 69 3c             	mov    0x3c(%ecx),%ebp
402d57:	2b e8                	sub    %eax,%ebp
402d59:	d1 fd                	sar    $1,%ebp
402d5b:	3b d5                	cmp    %ebp,%edx
402d5d:	5d                   	pop    %ebp
402d5e:	0f 8f b6 00 00 00    	jg     0x402e1a
402d64:	2b c6                	sub    %esi,%eax
402d66:	8b 71 30             	mov    0x30(%ecx),%esi
402d69:	d1 f8                	sar    $1,%eax
402d6b:	03 c2                	add    %edx,%eax
402d6d:	29 06                	sub    %eax,(%esi)
402d6f:	8b 71 20             	mov    0x20(%ecx),%esi
402d72:	03 c0                	add    %eax,%eax
402d74:	01 06                	add    %eax,(%esi)
402d76:	f6 c3 02             	test   $0x2,%bl
402d79:	0f 84 a5 00 00 00    	je     0x402e24
402d7f:	8b 79 24             	mov    0x24(%ecx),%edi
402d82:	8b 07                	mov    (%edi),%eax
402d84:	85 c0                	test   %eax,%eax
402d86:	0f 84 98 00 00 00    	je     0x402e24
402d8c:	8b 59 34             	mov    0x34(%ecx),%ebx
402d8f:	8b 71 20             	mov    0x20(%ecx),%esi
402d92:	8b 1b                	mov    (%ebx),%ebx
402d94:	8b 36                	mov    (%esi),%esi
402d96:	8d 04 58             	lea    (%eax,%ebx,2),%eax
402d99:	89 37                	mov    %esi,(%edi)
402d9b:	8b 49 34             	mov    0x34(%ecx),%ecx
402d9e:	2b c6                	sub    %esi,%eax
402da0:	d1 f8                	sar    $1,%eax
402da2:	89 01                	mov    %eax,(%ecx)
402da4:	eb 7e                	jmp    0x402e24
402da6:	f6 c3 02             	test   $0x2,%bl
402da9:	74 73                	je     0x402e1e
402dab:	8b 32                	mov    (%edx),%esi
402dad:	85 f6                	test   %esi,%esi
402daf:	74 6d                	je     0x402e1e
402db1:	8b 44 24 18          	mov    0x18(%esp),%eax
402db5:	8b 3d 00 a2 41 00    	mov    0x41a200,%edi
402dbb:	83 f8 02             	cmp    $0x2,%eax
402dbe:	75 12                	jne    0x402dd2
402dc0:	8b 51 10             	mov    0x10(%ecx),%edx
402dc3:	8b 41 3c             	mov    0x3c(%ecx),%eax
402dc6:	2b 02                	sub    (%edx),%eax
402dc8:	8b 54 24 14          	mov    0x14(%esp),%edx
402dcc:	d1 f8                	sar    $1,%eax
402dce:	03 d0                	add    %eax,%edx
402dd0:	eb 20                	jmp    0x402df2
402dd2:	83 f8 01             	cmp    $0x1,%eax
402dd5:	75 11                	jne    0x402de8
402dd7:	8b 51 10             	mov    0x10(%ecx),%edx
402dda:	8b c6                	mov    %esi,%eax
402ddc:	2b 02                	sub    (%edx),%eax
402dde:	8b 54 24 14          	mov    0x14(%esp),%edx
402de2:	d1 f8                	sar    $1,%eax
402de4:	03 d0                	add    %eax,%edx
402de6:	eb 0a                	jmp    0x402df2
402de8:	8b d7                	mov    %edi,%edx
402dea:	85 c0                	test   %eax,%eax
402dec:	75 04                	jne    0x402df2
402dee:	8b 54 24 14          	mov    0x14(%esp),%edx
402df2:	85 d2                	test   %edx,%edx
402df4:	7c 24                	jl     0x402e1a
402df6:	8b 41 10             	mov    0x10(%ecx),%eax
402df9:	8b 00                	mov    (%eax),%eax
402dfb:	8b 59 3c             	mov    0x3c(%ecx),%ebx
402dfe:	2b d8                	sub    %eax,%ebx
402e00:	d1 fb                	sar    $1,%ebx
402e02:	3b d3                	cmp    %ebx,%edx
402e04:	7f 14                	jg     0x402e1a
402e06:	2b c6                	sub    %esi,%eax
402e08:	8b 71 34             	mov    0x34(%ecx),%esi
402e0b:	d1 f8                	sar    $1,%eax
402e0d:	03 c2                	add    %edx,%eax
402e0f:	29 06                	sub    %eax,(%esi)
402e11:	8b 49 24             	mov    0x24(%ecx),%ecx
402e14:	03 c0                	add    %eax,%eax
402e16:	01 01                	add    %eax,(%ecx)
402e18:	eb 0a                	jmp    0x402e24
402e1a:	8b d7                	mov    %edi,%edx
402e1c:	eb 06                	jmp    0x402e24
402e1e:	8b 15 00 a2 41 00    	mov    0x41a200,%edx
402e24:	8b 44 24 10          	mov    0x10(%esp),%eax
402e28:	5f                   	pop    %edi
402e29:	33 c9                	xor    %ecx,%ecx
402e2b:	5e                   	pop    %esi
402e2c:	89 10                	mov    %edx,(%eax)
402e2e:	89 48 08             	mov    %ecx,0x8(%eax)
402e31:	89 48 0c             	mov    %ecx,0xc(%eax)
402e34:	89 48 10             	mov    %ecx,0x10(%eax)
402e37:	5b                   	pop    %ebx
402e38:	c2 10 00             	ret    $0x10
402e3b:	cc                   	int3
402e3c:	cc                   	int3
402e3d:	cc                   	int3
402e3e:	cc                   	int3
402e3f:	cc                   	int3
402e40:	8b 44 24 08          	mov    0x8(%esp),%eax
402e44:	8b 54 24 10          	mov    0x10(%esp),%edx
402e48:	55                   	push   %ebp
402e49:	57                   	push   %edi
402e4a:	8b 79 24             	mov    0x24(%ecx),%edi
402e4d:	03 d0                	add    %eax,%edx
402e4f:	8b 07                	mov    (%edi),%eax
402e51:	85 c0                	test   %eax,%eax
402e53:	74 08                	je     0x402e5d
402e55:	39 41 3c             	cmp    %eax,0x3c(%ecx)
402e58:	73 03                	jae    0x402e5d
402e5a:	89 41 3c             	mov    %eax,0x3c(%ecx)
402e5d:	8b 2d 00 a2 41 00    	mov    0x41a200,%ebp
402e63:	3b d5                	cmp    %ebp,%edx
402e65:	0f 84 99 00 00 00    	je     0x402f04
402e6b:	53                   	push   %ebx
402e6c:	8a 5c 24 2c          	mov    0x2c(%esp),%bl
402e70:	56                   	push   %esi
402e71:	f6 c3 01             	test   $0x1,%bl
402e74:	74 57                	je     0x402ecd
402e76:	8b 41 20             	mov    0x20(%ecx),%eax
402e79:	8b 30                	mov    (%eax),%esi
402e7b:	85 f6                	test   %esi,%esi
402e7d:	74 4e                	je     0x402ecd
402e7f:	85 d2                	test   %edx,%edx
402e81:	7c 7d                	jl     0x402f00
402e83:	8b 41 10             	mov    0x10(%ecx),%eax
402e86:	8b 00                	mov    (%eax),%eax
402e88:	8b 79 3c             	mov    0x3c(%ecx),%edi
402e8b:	2b f8                	sub    %eax,%edi
402e8d:	d1 ff                	sar    $1,%edi
402e8f:	3b d7                	cmp    %edi,%edx
402e91:	7f 6d                	jg     0x402f00
402e93:	2b c6                	sub    %esi,%eax
402e95:	8b 71 30             	mov    0x30(%ecx),%esi
402e98:	d1 f8                	sar    $1,%eax
402e9a:	03 c2                	add    %edx,%eax
402e9c:	29 06                	sub    %eax,(%esi)
402e9e:	8b 71 20             	mov    0x20(%ecx),%esi
402ea1:	03 c0                	add    %eax,%eax
402ea3:	01 06                	add    %eax,(%esi)
402ea5:	f6 c3 02             	test   $0x2,%bl
402ea8:	74 58                	je     0x402f02
402eaa:	8b 79 24             	mov    0x24(%ecx),%edi
402ead:	8b 07                	mov    (%edi),%eax
402eaf:	85 c0                	test   %eax,%eax
402eb1:	74 4f                	je     0x402f02
402eb3:	8b 59 34             	mov    0x34(%ecx),%ebx
402eb6:	8b 71 20             	mov    0x20(%ecx),%esi
402eb9:	8b 1b                	mov    (%ebx),%ebx
402ebb:	8b 36                	mov    (%esi),%esi
402ebd:	8d 04 58             	lea    (%eax,%ebx,2),%eax
402ec0:	89 37                	mov    %esi,(%edi)
402ec2:	8b 49 34             	mov    0x34(%ecx),%ecx
402ec5:	2b c6                	sub    %esi,%eax
402ec7:	d1 f8                	sar    $1,%eax
402ec9:	89 01                	mov    %eax,(%ecx)
402ecb:	eb 35                	jmp    0x402f02
402ecd:	f6 c3 02             	test   $0x2,%bl
402ed0:	74 2e                	je     0x402f00
402ed2:	8b 3f                	mov    (%edi),%edi
402ed4:	85 ff                	test   %edi,%edi
402ed6:	74 28                	je     0x402f00
402ed8:	85 d2                	test   %edx,%edx
402eda:	7c 24                	jl     0x402f00
402edc:	8b 41 10             	mov    0x10(%ecx),%eax
402edf:	8b 00                	mov    (%eax),%eax
402ee1:	8b 71 3c             	mov    0x3c(%ecx),%esi
402ee4:	2b f0                	sub    %eax,%esi
402ee6:	d1 fe                	sar    $1,%esi
402ee8:	3b d6                	cmp    %esi,%edx
402eea:	7f 14                	jg     0x402f00
402eec:	8b 71 34             	mov    0x34(%ecx),%esi
402eef:	2b c7                	sub    %edi,%eax
402ef1:	d1 f8                	sar    $1,%eax
402ef3:	03 c2                	add    %edx,%eax
402ef5:	29 06                	sub    %eax,(%esi)
402ef7:	8b 49 24             	mov    0x24(%ecx),%ecx
402efa:	03 c0                	add    %eax,%eax
402efc:	01 01                	add    %eax,(%ecx)
402efe:	eb 02                	jmp    0x402f02
402f00:	8b d5                	mov    %ebp,%edx
402f02:	5e                   	pop    %esi
402f03:	5b                   	pop    %ebx
402f04:	8b 44 24 0c          	mov    0xc(%esp),%eax
402f08:	33 c9                	xor    %ecx,%ecx
402f0a:	5f                   	pop    %edi
402f0b:	89 10                	mov    %edx,(%eax)
402f0d:	89 48 08             	mov    %ecx,0x8(%eax)
402f10:	89 48 0c             	mov    %ecx,0xc(%eax)
402f13:	89 48 10             	mov    %ecx,0x10(%eax)
402f16:	5d                   	pop    %ebp