406ccb:	5d                   	pop    %ebp
406ccc:	c3                   	ret
406ccd:	cc                   	int3
406cce:	cc                   	int3
406ccf:	cc                   	int3
406cd0:	55                   	push   %ebp
406cd1:	8b ec                	mov    %esp,%ebp
406cd3:	8b 45 0c             	mov    0xc(%ebp),%eax
406cd6:	8b 00                	mov    (%eax),%eax
406cd8:	3d ff ff ff 07       	cmp    $0x7ffffff,%eax
406cdd:	77 41                	ja     0x406d20
406cdf:	c1 e0 05             	shl    $0x5,%eax
406ce2:	85 c0                	test   %eax,%eax
406ce4:	75 02                	jne    0x406ce8
406ce6:	5d                   	pop    %ebp
406ce7:	c3                   	ret
406ce8:	3d 00 10 00 00       	cmp    $0x1000,%eax
406ced:	72 26                	jb     0x406d15
406cef:	8d 48 23             	lea    0x23(%eax),%ecx
406cf2:	3b c8                	cmp    %eax,%ecx
406cf4:	76 2a                	jbe    0x406d20
406cf6:	51                   	push   %ecx
406cf7:	e8 c4 fc ff ff       	call   0x4069c0
406cfc:	8b c8                	mov    %eax,%ecx
406cfe:	83 c4 04             	add    $0x4,%esp
406d01:	85 c9                	test   %ecx,%ecx
406d03:	74 0b                	je     0x406d10
406d05:	8d 41 23             	lea    0x23(%ecx),%eax
406d08:	83 e0 e0             	and    $0xffffffe0,%eax
406d0b:	89 48 fc             	mov    %ecx,-0x4(%eax)
406d0e:	5d                   	pop    %ebp
406d0f:	c3                   	ret
406d10:	e9 e9 66 00 00       	jmp    0x40d3fe
406d15:	50                   	push   %eax
406d16:	e8 a5 fc ff ff       	call   0x4069c0
406d1b:	83 c4 04             	add    $0x4,%esp
406d1e:	5d                   	pop    %ebp
406d1f:	c3                   	ret
406d20:	e9 fb 1a 00 00       	jmp    0x408820
406d25:	cc                   	int3
406d26:	cc                   	int3
406d27:	cc                   	int3
406d28:	cc                   	int3
406d29:	cc                   	int3
406d2a:	cc                   	int3
406d2b:	cc                   	int3
406d2c:	cc                   	int3
406d2d:	cc                   	int3
406d2e:	cc                   	int3
406d2f:	cc                   	int3
406d30:	55                   	push   %ebp
406d31:	8b ec                	mov    %esp,%ebp
406d33:	56                   	push   %esi
406d34:	8b 75 0c             	mov    0xc(%ebp),%esi
406d37:	ff 06                	incl   (%esi)
406d39:	8b 06                	mov    (%esi),%eax
406d3b:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
406d40:	77 42                	ja     0x406d84
406d42:	03 c0                	add    %eax,%eax
406d44:	75 05                	jne    0x406d4b
406d46:	ff 0e                	decl   (%esi)
406d48:	5e                   	pop    %esi
406d49:	5d                   	pop    %ebp
406d4a:	c3                   	ret
406d4b:	3d 00 10 00 00       	cmp    $0x1000,%eax
406d50:	72 24                	jb     0x406d76
406d52:	8d 48 23             	lea    0x23(%eax),%ecx
406d55:	3b c8                	cmp    %eax,%ecx
406d57:	76 2b                	jbe    0x406d84
406d59:	51                   	push   %ecx
406d5a:	e8 61 fc ff ff       	call   0x4069c0
406d5f:	8b c8                	mov    %eax,%ecx
406d61:	83 c4 04             	add    $0x4,%esp
406d64:	85 c9                	test   %ecx,%ecx
406d66:	74 21                	je     0x406d89
406d68:	8d 41 23             	lea    0x23(%ecx),%eax
406d6b:	83 e0 e0             	and    $0xffffffe0,%eax
406d6e:	89 48 fc             	mov    %ecx,-0x4(%eax)
406d71:	ff 0e                	decl   (%esi)
406d73:	5e                   	pop    %esi
406d74:	5d                   	pop    %ebp
406d75:	c3                   	ret
406d76:	50                   	push   %eax
406d77:	e8 44 fc ff ff       	call   0x4069c0
406d7c:	83 c4 04             	add    $0x4,%esp
406d7f:	ff 0e                	decl   (%esi)
406d81:	5e                   	pop    %esi
406d82:	5d                   	pop    %ebp
406d83:	c3                   	ret
406d84:	e8 97 1a 00 00       	call   0x408820
406d89:	e8 70 66 00 00       	call   0x40d3fe
406d8e:	cc                   	int3
406d8f:	cc                   	int3
406d90:	55                   	push   %ebp
406d91:	8b ec                	mov    %esp,%ebp
406d93:	53                   	push   %ebx
406d94:	56                   	push   %esi
406d95:	8b 75 0c             	mov    0xc(%ebp),%esi
406d98:	8b d9                	mov    %ecx,%ebx
406d9a:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
406da0:	77 7e                	ja     0x406e20
406da2:	83 fe 07             	cmp    $0x7,%esi
406da5:	77 25                	ja     0x406dcc
406da7:	89 73 10             	mov    %esi,0x10(%ebx)
406daa:	03 f6                	add    %esi,%esi
406dac:	56                   	push   %esi
406dad:	ff 75 08             	push   0x8(%ebp)
406db0:	c7 43 14 07 00 00 00 	movl   $0x7,0x14(%ebx)
406db7:	53                   	push   %ebx
406db8:	e8 83 40 00 00       	call   0x40ae40
406dbd:	83 c4 0c             	add    $0xc,%esp
406dc0:	33 c0                	xor    %eax,%eax
406dc2:	66 89 04 1e          	mov    %ax,(%esi,%ebx,1)
406dc6:	5e                   	pop    %esi
406dc7:	5b                   	pop    %ebx
406dc8:	5d                   	pop    %ebp
406dc9:	c2 08 00             	ret    $0x8
406dcc:	8b c6                	mov    %esi,%eax
406dce:	83 c8 07             	or     $0x7,%eax
406dd1:	3d fe ff ff 7f       	cmp    $0x7ffffffe,%eax
406dd6:	76 07                	jbe    0x406ddf
406dd8:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
406ddd:	eb 0a                	jmp    0x406de9
406ddf:	b9 0a 00 00 00       	mov    $0xa,%ecx
406de4:	3b c1                	cmp    %ecx,%eax
406de6:	0f 42 c1             	cmovb  %ecx,%eax
406de9:	89 45 0c             	mov    %eax,0xc(%ebp)
406dec:	8d 45 0c             	lea    0xc(%ebp),%eax
406def:	57                   	push   %edi
406df0:	50                   	push   %eax
406df1:	53                   	push   %ebx
406df2:	e8 39 ff ff ff       	call   0x406d30
406df7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406dfa:	8b f8                	mov    %eax,%edi
406dfc:	89 73 10             	mov    %esi,0x10(%ebx)
406dff:	03 f6                	add    %esi,%esi
406e01:	56                   	push   %esi
406e02:	ff 75 08             	push   0x8(%ebp)
406e05:	89 3b                	mov    %edi,(%ebx)
406e07:	57                   	push   %edi
406e08:	89 4b 14             	mov    %ecx,0x14(%ebx)
406e0b:	e8 30 40 00 00       	call   0x40ae40
406e10:	83 c4 14             	add    $0x14,%esp
406e13:	33 c0                	xor    %eax,%eax
406e15:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
406e19:	5f                   	pop    %edi
406e1a:	5e                   	pop    %esi
406e1b:	5b                   	pop    %ebx
406e1c:	5d                   	pop    %ebp
406e1d:	c2 08 00             	ret    $0x8
406e20:	e8 2b 1a 00 00       	call   0x408850
406e25:	cc                   	int3
406e26:	cc                   	int3
406e27:	cc                   	int3
406e28:	cc                   	int3
406e29:	cc                   	int3
406e2a:	cc                   	int3
406e2b:	cc                   	int3
406e2c:	cc                   	int3
406e2d:	cc                   	int3
406e2e:	cc                   	int3
406e2f:	cc                   	int3
406e30:	55                   	push   %ebp
406e31:	8b ec                	mov    %esp,%ebp
406e33:	6a ff                	push   $0xffffffff
406e35:	68 5d 00 43 00       	push   $0x43005d
406e3a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
406e40:	50                   	push   %eax
406e41:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
406e48:	83 ec 18             	sub    $0x18,%esp
406e4b:	57                   	push   %edi
406e4c:	8b 7d 08             	mov    0x8(%ebp),%edi
406e4f:	8b c1                	mov    %ecx,%eax
406e51:	89 45 ec             	mov    %eax,-0x14(%ebp)
406e54:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
406e58:	8b 08                	mov    (%eax),%ecx
406e5a:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406e5d:	0f 85 a2 00 00 00    	jne    0x406f05
406e63:	53                   	push   %ebx
406e64:	56                   	push   %esi
406e65:	83 c7 10             	add    $0x10,%edi
406e68:	89 45 e0             	mov    %eax,-0x20(%ebp)
406e6b:	6a 40                	push   $0x40
406e6d:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
406e74:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
406e7b:	e8 40 fb ff ff       	call   0x4069c0
406e80:	8b d8                	mov    %eax,%ebx
406e82:	83 c4 04             	add    $0x4,%esp
406e85:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
406e88:	8d 73 10             	lea    0x10(%ebx),%esi
406e8b:	57                   	push   %edi
406e8c:	8b ce                	mov    %esi,%ecx
406e8e:	89 75 e8             	mov    %esi,-0x18(%ebp)
406e91:	e8 d4 b1 ff ff       	call   0x40206a
406e96:	8d 47 18             	lea    0x18(%edi),%eax
406e99:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
406e9d:	8d 4e 18             	lea    0x18(%esi),%ecx
406ea0:	50                   	push   %eax
406ea1:	e8 c4 b1 ff ff       	call   0x40206a
406ea6:	8b 45 f0             	mov    -0x10(%ebp),%eax
406ea9:	8b 7d 08             	mov    0x8(%ebp),%edi
406eac:	8b 75 ec             	mov    -0x14(%ebp),%esi
406eaf:	89 03                	mov    %eax,(%ebx)
406eb1:	89 43 08             	mov    %eax,0x8(%ebx)
406eb4:	8b 45 0c             	mov    0xc(%ebp),%eax
406eb7:	66 c7 43 0c 00 00    	movw   $0x0,0xc(%ebx)
406ebd:	89 43 04             	mov    %eax,0x4(%ebx)
406ec0:	8a 47 0c             	mov    0xc(%edi),%al
406ec3:	88 43 0c             	mov    %al,0xc(%ebx)
406ec6:	89 75 dc             	mov    %esi,-0x24(%ebp)
406ec9:	89 75 e0             	mov    %esi,-0x20(%ebp)
406ecc:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
406ecf:	53                   	push   %ebx
406ed0:	ff 37                	push   (%edi)
406ed2:	8b ce                	mov    %esi,%ecx
406ed4:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
406edb:	e8 50 ff ff ff       	call   0x406e30
406ee0:	53                   	push   %ebx
406ee1:	89 03                	mov    %eax,(%ebx)
406ee3:	8b ce                	mov    %esi,%ecx
406ee5:	ff 77 08             	push   0x8(%edi)
406ee8:	e8 43 ff ff ff       	call   0x406e30
406eed:	89 43 08             	mov    %eax,0x8(%ebx)
406ef0:	8b c3                	mov    %ebx,%eax
406ef2:	5e                   	pop    %esi
406ef3:	5b                   	pop    %ebx
406ef4:	5f                   	pop    %edi
406ef5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406ef8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406eff:	8b e5                	mov    %ebp,%esp
406f01:	5d                   	pop    %ebp
406f02:	c2 08 00             	ret    $0x8
406f05:	8b c1                	mov    %ecx,%eax
406f07:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406f0a:	5f                   	pop    %edi
406f0b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406f12:	8b e5                	mov    %ebp,%esp
406f14:	5d                   	pop    %ebp
406f15:	c2 08 00             	ret    $0x8
406f18:	cc                   	int3
406f19:	cc                   	int3
406f1a:	cc                   	int3
406f1b:	cc                   	int3
406f1c:	cc                   	int3
406f1d:	cc                   	int3
406f1e:	cc                   	int3
406f1f:	cc                   	int3
406f20:	55                   	push   %ebp
406f21:	8b ec                	mov    %esp,%ebp
406f23:	56                   	push   %esi
406f24:	8b 75 08             	mov    0x8(%ebp),%esi
406f27:	57                   	push   %edi
406f28:	8b 7d 0c             	mov    0xc(%ebp),%edi
406f2b:	3b f7                	cmp    %edi,%esi
406f2d:	74 0f                	je     0x406f3e
406f2f:	90                   	nop
406f30:	8b ce                	mov    %esi,%ecx
406f32:	e8 99 0d 00 00       	call   0x407cd0
406f37:	83 c6 20             	add    $0x20,%esi
406f3a:	3b f7                	cmp    %edi,%esi
406f3c:	75 f2                	jne    0x406f30
406f3e:	5f                   	pop    %edi
406f3f:	5e                   	pop    %esi
406f40:	5d                   	pop    %ebp
406f41:	c3                   	ret
406f42:	cc                   	int3
406f43:	cc                   	int3
406f44:	cc                   	int3
406f45:	cc                   	int3
406f46:	cc                   	int3
406f47:	cc                   	int3
406f48:	cc                   	int3
406f49:	cc                   	int3
406f4a:	cc                   	int3
406f4b:	cc                   	int3
406f4c:	cc                   	int3
406f4d:	cc                   	int3
406f4e:	cc                   	int3
406f4f:	cc                   	int3
406f50:	55                   	push   %ebp
406f51:	8b ec                	mov    %esp,%ebp
406f53:	6a ff                	push   $0xffffffff
406f55:	68 7d 00 43 00       	push   $0x43007d
406f5a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
406f60:	50                   	push   %eax
406f61:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
406f68:	83 ec 28             	sub    $0x28,%esp
406f6b:	8b 01                	mov    (%ecx),%eax
406f6d:	53                   	push   %ebx
406f6e:	56                   	push   %esi
406f6f:	8b 75 0c             	mov    0xc(%ebp),%esi
406f72:	8b 58 04             	mov    0x4(%eax),%ebx
406f75:	57                   	push   %edi
406f76:	33 ff                	xor    %edi,%edi
406f78:	89 4d e8             	mov    %ecx,-0x18(%ebp)
406f7b:	8d 56 10             	lea    0x10(%esi),%edx
406f7e:	89 45 cc             	mov    %eax,-0x34(%ebp)
406f81:	80 7b 0d 00          	cmpb   $0x0,0xd(%ebx)
406f85:	89 45 ec             	mov    %eax,-0x14(%ebp)
406f88:	89 55 e4             	mov    %edx,-0x1c(%ebp)
406f8b:	0f 85 8d 00 00 00    	jne    0x40701e
406f91:	8b 12                	mov    (%edx),%edx
406f93:	89 55 f0             	mov    %edx,-0x10(%ebp)
406f96:	83 7e 14 07          	cmpl   $0x7,0x14(%esi)
406f9a:	8d 7b 10             	lea    0x10(%ebx),%edi
406f9d:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
406fa0:	8b c6                	mov    %esi,%eax
406fa2:	76 02                	jbe    0x406fa6
406fa4:	8b 06                	mov    (%esi),%eax
406fa6:	83 7f 14 07          	cmpl   $0x7,0x14(%edi)
406faa:	8b 4f 10             	mov    0x10(%edi),%ecx
406fad:	89 4d e0             	mov    %ecx,-0x20(%ebp)
406fb0:	76 02                	jbe    0x406fb4
406fb2:	8b 3f                	mov    (%edi),%edi
406fb4:	3b d1                	cmp    %ecx,%edx
406fb6:	8b f1                	mov    %ecx,%esi
406fb8:	0f 42 f2             	cmovb  %edx,%esi
406fbb:	85 f6                	test   %esi,%esi
406fbd:	74 28                	je     0x406fe7
406fbf:	2b f8                	sub    %eax,%edi
406fc1:	0f b7 0c 07          	movzwl (%edi,%eax,1),%ecx
406fc5:	89 4d d8             	mov    %ecx,-0x28(%ebp)
406fc8:	0f b7 08             	movzwl (%eax),%ecx
406fcb:	8b d1                	mov    %ecx,%edx
406fcd:	89 55 dc             	mov    %edx,-0x24(%ebp)
406fd0:	0f b7 14 07          	movzwl (%edi,%eax,1),%edx
406fd4:	66 3b d1             	cmp    %cx,%dx
406fd7:	75 1c                	jne    0x406ff5
406fd9:	83 c0 02             	add    $0x2,%eax
406fdc:	83 ee 01             	sub    $0x1,%esi
406fdf:	75 e0                	jne    0x406fc1
406fe1:	8b 4d e0             	mov    -0x20(%ebp),%ecx
406fe4:	8b 55 f0             	mov    -0x10(%ebp),%edx
406fe7:	3b ca                	cmp    %edx,%ecx
406fe9:	73 16                	jae    0x407001
406feb:	8b 5b 08             	mov    0x8(%ebx),%ebx
406fee:	33 ff                	xor    %edi,%edi
406ff0:	8b 45 ec             	mov    -0x14(%ebp),%eax
406ff3:	eb 18                	jmp    0x40700d
406ff5:	8b 45 dc             	mov    -0x24(%ebp),%eax
406ff8:	8b 55 f0             	mov    -0x10(%ebp),%edx
406ffb:	66 39 45 d8          	cmp    %ax,-0x28(%ebp)
406fff:	eb e8                	jmp    0x406fe9
407001:	8b c3                	mov    %ebx,%eax
407003:	bf 01 00 00 00       	mov    $0x1,%edi
407008:	8b 1b                	mov    (%ebx),%ebx
40700a:	89 45 ec             	mov    %eax,-0x14(%ebp)
40700d:	80 7b 0d 00          	cmpb   $0x0,0xd(%ebx)
407011:	8b 75 0c             	mov    0xc(%ebp),%esi
407014:	74 80                	je     0x406f96