408c40:	e8 c9 2c 01 00       	call   0x41b90e
408c45:	83 c4 08             	add    $0x8,%esp
408c48:	8b 47 30             	mov    0x30(%edi),%eax
408c4b:	83 4f 3c 01          	orl    $0x1,0x3c(%edi)
408c4f:	ff 08                	decl   (%eax)
408c51:	8b 4f 20             	mov    0x20(%edi),%ecx
408c54:	5f                   	pop    %edi
408c55:	5e                   	pop    %esi
408c56:	5b                   	pop    %ebx
408c57:	8b 11                	mov    (%ecx),%edx
408c59:	8d 42 02             	lea    0x2(%edx),%eax
408c5c:	89 01                	mov    %eax,(%ecx)
408c5e:	66 8b 45 08          	mov    0x8(%ebp),%ax
408c62:	66 89 02             	mov    %ax,(%edx)
408c65:	8b e5                	mov    %ebp,%esp
408c67:	5d                   	pop    %ebp
408c68:	c2 04 00             	ret    $0x4
408c6b:	b8 ff ff 00 00       	mov    $0xffff,%eax
408c70:	5f                   	pop    %edi
408c71:	5e                   	pop    %esi
408c72:	5b                   	pop    %ebx
408c73:	8b e5                	mov    %ebp,%esp
408c75:	5d                   	pop    %ebp
408c76:	c2 04 00             	ret    $0x4
408c79:	e8 82 85 ff ff       	call   0x401200
408c7e:	e8 fc 7d 01 00       	call   0x420a7f
408c83:	cc                   	int3
408c84:	cc                   	int3
408c85:	cc                   	int3
408c86:	cc                   	int3
408c87:	cc                   	int3
408c88:	cc                   	int3
408c89:	cc                   	int3
408c8a:	cc                   	int3
408c8b:	cc                   	int3
408c8c:	cc                   	int3
408c8d:	cc                   	int3
408c8e:	cc                   	int3
408c8f:	cc                   	int3
408c90:	53                   	push   %ebx
408c91:	56                   	push   %esi
408c92:	8b f1                	mov    %ecx,%esi
408c94:	f6 46 3c 01          	testb  $0x1,0x3c(%esi)
408c98:	c7 06 10 dd 44 00    	movl   $0x44dd10,(%esi)
408c9e:	74 52                	je     0x408cf2
408ca0:	8b 46 20             	mov    0x20(%esi),%eax
408ca3:	8b 08                	mov    (%eax),%ecx
408ca5:	85 c9                	test   %ecx,%ecx
408ca7:	74 0a                	je     0x408cb3
408ca9:	8b 46 30             	mov    0x30(%esi),%eax
408cac:	8b 00                	mov    (%eax),%eax
408cae:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
408cb1:	eb 0d                	jmp    0x408cc0
408cb3:	8b 46 2c             	mov    0x2c(%esi),%eax
408cb6:	8b 08                	mov    (%eax),%ecx
408cb8:	8b 46 1c             	mov    0x1c(%esi),%eax
408cbb:	8b 00                	mov    (%eax),%eax
408cbd:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
408cc0:	8b 46 0c             	mov    0xc(%esi),%eax
408cc3:	8b 00                	mov    (%eax),%eax
408cc5:	2b c8                	sub    %eax,%ecx
408cc7:	83 e1 fe             	and    $0xfffffffe,%ecx
408cca:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
408cd0:	72 16                	jb     0x408ce8
408cd2:	8b 50 fc             	mov    -0x4(%eax),%edx
408cd5:	83 c1 23             	add    $0x23,%ecx
408cd8:	2b c2                	sub    %edx,%eax
408cda:	83 c0 fc             	add    $0xfffffffc,%eax
408cdd:	83 f8 1f             	cmp    $0x1f,%eax
408ce0:	0f 87 9a 00 00 00    	ja     0x408d80
408ce6:	8b c2                	mov    %edx,%eax
408ce8:	51                   	push   %ecx
408ce9:	50                   	push   %eax
408cea:	e8 1f 2c 01 00       	call   0x41b90e
408cef:	83 c4 08             	add    $0x8,%esp
408cf2:	8b 46 0c             	mov    0xc(%esi),%eax
408cf5:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
408cfb:	8b 46 1c             	mov    0x1c(%esi),%eax
408cfe:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
408d04:	8b 46 2c             	mov    0x2c(%esi),%eax
408d07:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
408d0d:	8b 46 10             	mov    0x10(%esi),%eax
408d10:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
408d16:	8b 46 20             	mov    0x20(%esi),%eax
408d19:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
408d1f:	8b 46 30             	mov    0x30(%esi),%eax
408d22:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
408d28:	83 66 3c fe          	andl   $0xfffffffe,0x3c(%esi)
408d2c:	8b 5e 34             	mov    0x34(%esi),%ebx
408d2f:	c7 46 38 00 00 00 00 	movl   $0x0,0x38(%esi)
408d36:	c7 06 50 dd 44 00    	movl   $0x44dd50,(%esi)
408d3c:	85 db                	test   %ebx,%ebx
408d3e:	74 3d                	je     0x408d7d
408d40:	57                   	push   %edi
408d41:	8b 7b 04             	mov    0x4(%ebx),%edi
408d44:	85 ff                	test   %edi,%edi
408d46:	74 29                	je     0x408d71
408d48:	8b 07                	mov    (%edi),%eax
408d4a:	8b 70 08             	mov    0x8(%eax),%esi
408d4d:	8b ce                	mov    %esi,%ecx
408d4f:	ff 15 3c f2 43 00    	call   *0x43f23c
408d55:	8b cf                	mov    %edi,%ecx
408d57:	ff d6                	call   *%esi
408d59:	8b f8                	mov    %eax,%edi
408d5b:	85 ff                	test   %edi,%edi
408d5d:	74 12                	je     0x408d71
408d5f:	8b 0f                	mov    (%edi),%ecx
408d61:	6a 01                	push   $0x1
408d63:	8b 31                	mov    (%ecx),%esi
408d65:	8b ce                	mov    %esi,%ecx
408d67:	ff 15 3c f2 43 00    	call   *0x43f23c
408d6d:	8b cf                	mov    %edi,%ecx
408d6f:	ff d6                	call   *%esi
408d71:	6a 08                	push   $0x8
408d73:	53                   	push   %ebx
408d74:	e8 95 2b 01 00       	call   0x41b90e
408d79:	83 c4 08             	add    $0x8,%esp
408d7c:	5f                   	pop    %edi
408d7d:	5e                   	pop    %esi
408d7e:	5b                   	pop    %ebx
408d7f:	c3                   	ret
408d80:	e8 fa 7c 01 00       	call   0x420a7f
408d85:	cc                   	int3
408d86:	cc                   	int3
408d87:	cc                   	int3
408d88:	cc                   	int3
408d89:	cc                   	int3
408d8a:	cc                   	int3
408d8b:	cc                   	int3
408d8c:	cc                   	int3
408d8d:	cc                   	int3
408d8e:	cc                   	int3
408d8f:	cc                   	int3
408d90:	c2 04 00             	ret    $0x4
408d93:	cc                   	int3
408d94:	cc                   	int3
408d95:	cc                   	int3
408d96:	cc                   	int3
408d97:	cc                   	int3
408d98:	cc                   	int3
408d99:	cc                   	int3
408d9a:	cc                   	int3
408d9b:	cc                   	int3
408d9c:	cc                   	int3
408d9d:	cc                   	int3
408d9e:	cc                   	int3
408d9f:	cc                   	int3
408da0:	33 c0                	xor    %eax,%eax
408da2:	c3                   	ret
408da3:	cc                   	int3
408da4:	cc                   	int3
408da5:	cc                   	int3
408da6:	cc                   	int3
408da7:	cc                   	int3
408da8:	cc                   	int3
408da9:	cc                   	int3
408daa:	cc                   	int3
408dab:	cc                   	int3
408dac:	cc                   	int3
408dad:	cc                   	int3
408dae:	cc                   	int3
408daf:	cc                   	int3
408db0:	8b c1                	mov    %ecx,%eax
408db2:	c2 0c 00             	ret    $0xc
408db5:	cc                   	int3
408db6:	cc                   	int3
408db7:	cc                   	int3
408db8:	cc                   	int3
408db9:	cc                   	int3
408dba:	cc                   	int3
408dbb:	cc                   	int3
408dbc:	cc                   	int3
408dbd:	cc                   	int3
408dbe:	cc                   	int3
408dbf:	cc                   	int3
408dc0:	55                   	push   %ebp
408dc1:	8b ec                	mov    %esp,%ebp
408dc3:	8b 45 08             	mov    0x8(%ebp),%eax
408dc6:	0f 57 c0             	xorps  %xmm0,%xmm0
408dc9:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)
408dcf:	c7 40 04 ff ff ff ff 	movl   $0xffffffff,0x4(%eax)
408dd6:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
408ddd:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
408de4:	66 0f d6 40 10       	movq   %xmm0,0x10(%eax)
408de9:	5d                   	pop    %ebp
408dea:	c2 20 00             	ret    $0x20
408ded:	cc                   	int3
408dee:	cc                   	int3
408def:	cc                   	int3
408df0:	55                   	push   %ebp
408df1:	8b ec                	mov    %esp,%ebp
408df3:	8b 45 08             	mov    0x8(%ebp),%eax
408df6:	0f 57 c0             	xorps  %xmm0,%xmm0
408df9:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)
408dff:	c7 40 04 ff ff ff ff 	movl   $0xffffffff,0x4(%eax)
408e06:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
408e0d:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
408e14:	66 0f d6 40 10       	movq   %xmm0,0x10(%eax)
408e19:	5d                   	pop    %ebp
408e1a:	c2 14 00             	ret    $0x14
408e1d:	cc                   	int3
408e1e:	cc                   	int3
408e1f:	cc                   	int3
408e20:	55                   	push   %ebp
408e21:	8b ec                	mov    %esp,%ebp
408e23:	83 e4 f8             	and    $0xfffffff8,%esp
408e26:	83 ec 14             	sub    $0x14,%esp
408e29:	53                   	push   %ebx
408e2a:	8b 5d 10             	mov    0x10(%ebp),%ebx
408e2d:	8b d1                	mov    %ecx,%edx
408e2f:	89 54 24 08          	mov    %edx,0x8(%esp)
408e33:	8b cb                	mov    %ebx,%ecx
408e35:	89 4c 24 14          	mov    %ecx,0x14(%esp)
408e39:	56                   	push   %esi
408e3a:	8b 75 0c             	mov    0xc(%ebp),%esi
408e3d:	8b c6                	mov    %esi,%eax
408e3f:	89 44 24 14          	mov    %eax,0x14(%esp)
408e43:	57                   	push   %edi
408e44:	85 db                	test   %ebx,%ebx
408e46:	0f 8c b9 00 00 00    	jl     0x408f05
408e4c:	7f 08                	jg     0x408e56
408e4e:	85 f6                	test   %esi,%esi
408e50:	0f 84 af 00 00 00    	je     0x408f05
408e56:	8b ca                	mov    %edx,%ecx
408e58:	e8 03 18 00 00       	call   0x40a660
408e5d:	8b f8                	mov    %eax,%edi
408e5f:	8b c2                	mov    %edx,%eax
408e61:	89 44 24 14          	mov    %eax,0x14(%esp)
408e65:	85 c0                	test   %eax,%eax
408e67:	7c 48                	jl     0x408eb1
408e69:	7f 04                	jg     0x408e6f
408e6b:	85 ff                	test   %edi,%edi
408e6d:	74 42                	je     0x408eb1
408e6f:	3b d8                	cmp    %eax,%ebx
408e71:	7f 0c                	jg     0x408e7f
408e73:	7c 04                	jl     0x408e79
408e75:	3b f7                	cmp    %edi,%esi
408e77:	73 06                	jae    0x408e7f
408e79:	8b fe                	mov    %esi,%edi
408e7b:	89 5c 24 14          	mov    %ebx,0x14(%esp)
408e7f:	8b 4c 24 10          	mov    0x10(%esp),%ecx
408e83:	8d 04 3f             	lea    (%edi,%edi,1),%eax
408e86:	50                   	push   %eax
408e87:	8b 45 08             	mov    0x8(%ebp),%eax
408e8a:	50                   	push   %eax
408e8b:	8b 41 20             	mov    0x20(%ecx),%eax
408e8e:	ff 30                	push   (%eax)
408e90:	e8 bb 45 01 00       	call   0x41d450
408e95:	8b 54 24 1c          	mov    0x1c(%esp),%edx
408e99:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
408e9c:	83 c4 0c             	add    $0xc,%esp
408e9f:	2b f7                	sub    %edi,%esi
408ea1:	1b 5c 24 14          	sbb    0x14(%esp),%ebx
408ea5:	8b 42 30             	mov    0x30(%edx),%eax
408ea8:	29 38                	sub    %edi,(%eax)
408eaa:	8b 42 20             	mov    0x20(%edx),%eax
408ead:	01 08                	add    %ecx,(%eax)
408eaf:	eb 37                	jmp    0x408ee8
408eb1:	8b 4c 24 10          	mov    0x10(%esp),%ecx
408eb5:	8b 45 08             	mov    0x8(%ebp),%eax
408eb8:	8b 09                	mov    (%ecx),%ecx
408eba:	0f b7 00             	movzwl (%eax),%eax
408ebd:	50                   	push   %eax
408ebe:	8b 79 0c             	mov    0xc(%ecx),%edi
408ec1:	8b cf                	mov    %edi,%ecx
408ec3:	ff 15 3c f2 43 00    	call   *0x43f23c
408ec9:	8b 4c 24 14          	mov    0x14(%esp),%ecx
408ecd:	ff d7                	call   *%edi
408ecf:	b9 ff ff 00 00       	mov    $0xffff,%ecx
408ed4:	66 3b c8             	cmp    %ax,%cx
408ed7:	74 24                	je     0x408efd
408ed9:	8b 54 24 10          	mov    0x10(%esp),%edx
408edd:	83 c6 ff             	add    $0xffffffff,%esi
408ee0:	b9 02 00 00 00       	mov    $0x2,%ecx
408ee5:	83 d3 ff             	adc    $0xffffffff,%ebx
408ee8:	01 4d 08             	add    %ecx,0x8(%ebp)
408eeb:	85 db                	test   %ebx,%ebx
408eed:	0f 8f 63 ff ff ff    	jg     0x408e56
408ef3:	7c 08                	jl     0x408efd
408ef5:	85 f6                	test   %esi,%esi
408ef7:	0f 85 59 ff ff ff    	jne    0x408e56
408efd:	8b 44 24 18          	mov    0x18(%esp),%eax
408f01:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
408f05:	2b c6                	sub    %esi,%eax
408f07:	5f                   	pop    %edi
408f08:	1b cb                	sbb    %ebx,%ecx
408f0a:	5e                   	pop    %esi
408f0b:	8b d1                	mov    %ecx,%edx
408f0d:	5b                   	pop    %ebx
408f0e:	8b e5                	mov    %ebp,%esp
408f10:	5d                   	pop    %ebp
408f11:	c2 0c 00             	ret    $0xc
408f14:	cc                   	int3
408f15:	cc                   	int3
408f16:	cc                   	int3
408f17:	cc                   	int3
408f18:	cc                   	int3
408f19:	cc                   	int3
408f1a:	cc                   	int3
408f1b:	cc                   	int3
408f1c:	cc                   	int3
408f1d:	cc                   	int3
408f1e:	cc                   	int3
408f1f:	cc                   	int3
408f20:	55                   	push   %ebp
408f21:	8b ec                	mov    %esp,%ebp
408f23:	83 e4 f8             	and    $0xfffffff8,%esp
408f26:	83 ec 14             	sub    $0x14,%esp
408f29:	53                   	push   %ebx
408f2a:	8b 5d 10             	mov    0x10(%ebp),%ebx
408f2d:	8b d1                	mov    %ecx,%edx
408f2f:	89 54 24 08          	mov    %edx,0x8(%esp)
408f33:	8b cb                	mov    %ebx,%ecx
408f35:	89 4c 24 14          	mov    %ecx,0x14(%esp)
408f39:	56                   	push   %esi
408f3a:	8b 75 0c             	mov    0xc(%ebp),%esi
408f3d:	8b c6                	mov    %esi,%eax
408f3f:	89 44 24 14          	mov    %eax,0x14(%esp)
408f43:	57                   	push   %edi
408f44:	85 db                	test   %ebx,%ebx
408f46:	0f 8c bf 00 00 00    	jl     0x40900b
408f4c:	7f 08                	jg     0x408f56
408f4e:	85 f6                	test   %esi,%esi
408f50:	0f 84 b5 00 00 00    	je     0x40900b
408f56:	8b ca                	mov    %edx,%ecx
408f58:	e8 23 17 00 00       	call   0x40a680
408f5d:	8b f8                	mov    %eax,%edi
408f5f:	8b c2                	mov    %edx,%eax
408f61:	89 44 24 14          	mov    %eax,0x14(%esp)
408f65:	85 c0                	test   %eax,%eax
408f67:	7c 4a                	jl     0x408fb3
408f69:	7f 04                	jg     0x408f6f
408f6b:	85 ff                	test   %edi,%edi
408f6d:	74 44                	je     0x408fb3
408f6f:	3b d8                	cmp    %eax,%ebx
408f71:	7f 0c                	jg     0x408f7f
408f73:	7c 04                	jl     0x408f79
408f75:	3b f7                	cmp    %edi,%esi
408f77:	73 06                	jae    0x408f7f
408f79:	8b fe                	mov    %esi,%edi
408f7b:	89 5c 24 14          	mov    %ebx,0x14(%esp)
408f7f:	8d 04 3f             	lea    (%edi,%edi,1),%eax
408f82:	50                   	push   %eax
408f83:	8b 44 24 14          	mov    0x14(%esp),%eax
408f87:	8b 40 1c             	mov    0x1c(%eax),%eax
408f8a:	ff 30                	push   (%eax)
408f8c:	ff 75 08             	push   0x8(%ebp)
408f8f:	e8 bc 44 01 00       	call   0x41d450
408f94:	8b 54 24 1c          	mov    0x1c(%esp),%edx
408f98:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx