451bc6:	4e                   	dec    %esi
451bc7:	89 8d d4 f6 ff ff    	mov    %ecx,-0x92c(%ebp)
451bcd:	3b cf                	cmp    %edi,%ecx
451bcf:	74 0e                	je     0x451bdf
451bd1:	8b 9d 8c fa ff ff    	mov    -0x574(%ebp),%ebx
451bd7:	8b 85 dc f6 ff ff    	mov    -0x924(%ebp),%eax
451bdd:	eb 90                	jmp    0x451b6f
451bdf:	8b 95 d0 f6 ff ff    	mov    -0x930(%ebp),%edx
451be5:	8b b5 dc f6 ff ff    	mov    -0x924(%ebp),%esi
451beb:	85 f6                	test   %esi,%esi
451bed:	74 0f                	je     0x451bfe
451bef:	33 c0                	xor    %eax,%eax
451bf1:	8d bd 90 fa ff ff    	lea    -0x570(%ebp),%edi
451bf7:	8b ce                	mov    %esi,%ecx
451bf9:	f3 ab                	rep stos %eax,%es:(%edi)
451bfb:	83 cf ff             	or     $0xffffffff,%edi
451bfe:	80 bd c3 f6 ff ff 00 	cmpb   $0x0,-0x93d(%ebp)
451c05:	74 0b                	je     0x451c12
451c07:	8d 42 01             	lea    0x1(%edx),%eax
451c0a:	89 85 8c fa ff ff    	mov    %eax,-0x574(%ebp)
451c10:	eb 32                	jmp    0x451c44
451c12:	89 95 8c fa ff ff    	mov    %edx,-0x574(%ebp)
451c18:	eb 2a                	jmp    0x451c44
451c1a:	33 c0                	xor    %eax,%eax
451c1c:	50                   	push   %eax
451c1d:	89 85 d4 f4 ff ff    	mov    %eax,-0xb2c(%ebp)
451c23:	89 85 8c fa ff ff    	mov    %eax,-0x574(%ebp)
451c29:	8d 85 d8 f4 ff ff    	lea    -0xb28(%ebp),%eax
451c2f:	50                   	push   %eax
451c30:	8d 85 90 fa ff ff    	lea    -0x570(%ebp),%eax
451c36:	68 cc 01 00 00       	push   $0x1cc
451c3b:	50                   	push   %eax
451c3c:	e8 61 1a 00 00       	call   0x4536a2
451c41:	83 c4 10             	add    $0x10,%esp
451c44:	8d 85 5c fc ff ff    	lea    -0x3a4(%ebp),%eax
451c4a:	50                   	push   %eax
451c4b:	8d 85 8c fa ff ff    	lea    -0x574(%ebp),%eax
451c51:	50                   	push   %eax
451c52:	e8 49 02 00 00       	call   0x451ea0
451c57:	83 bd 8c fa ff ff 00 	cmpl   $0x0,-0x574(%ebp)
451c5e:	8b d8                	mov    %eax,%ebx
451c60:	59                   	pop    %ecx
451c61:	59                   	pop    %ecx
451c62:	8b ca                	mov    %edx,%ecx
451c64:	89 9d c4 f6 ff ff    	mov    %ebx,-0x93c(%ebp)
451c6a:	0f 94 c2             	sete   %dl
451c6d:	89 8d dc f6 ff ff    	mov    %ecx,-0x924(%ebp)
451c73:	88 95 d4 f6 ff ff    	mov    %dl,-0x92c(%ebp)
451c79:	85 c9                	test   %ecx,%ecx
451c7b:	75 12                	jne    0x451c8f
451c7d:	3b df                	cmp    %edi,%ebx
451c7f:	77 0e                	ja     0x451c8f
451c81:	0f bd c3             	bsr    %ebx,%eax
451c84:	74 05                	je     0x451c8b
451c86:	8d 70 01             	lea    0x1(%eax),%esi
451c89:	eb 13                	jmp    0x451c9e
451c8b:	33 f6                	xor    %esi,%esi
451c8d:	eb 0f                	jmp    0x451c9e
451c8f:	0f bd c1             	bsr    %ecx,%eax
451c92:	74 05                	je     0x451c99
451c94:	8d 70 01             	lea    0x1(%eax),%esi
451c97:	eb 02                	jmp    0x451c9b
451c99:	33 f6                	xor    %esi,%esi
451c9b:	83 c6 20             	add    $0x20,%esi
451c9e:	8b 85 b0 f6 ff ff    	mov    -0x950(%ebp),%eax
451ca4:	3b f0                	cmp    %eax,%esi
451ca6:	76 49                	jbe    0x451cf1
451ca8:	2b f0                	sub    %eax,%esi
451caa:	84 d2                	test   %dl,%dl
451cac:	74 25                	je     0x451cd3
451cae:	33 c0                	xor    %eax,%eax
451cb0:	33 d2                	xor    %edx,%edx
451cb2:	40                   	inc    %eax
451cb3:	8b ce                	mov    %esi,%ecx
451cb5:	e8 46 e0 fe ff       	call   0x43fd00
451cba:	8b 8d dc f6 ff ff    	mov    -0x924(%ebp),%ecx
451cc0:	03 c7                	add    %edi,%eax
451cc2:	c6 85 d4 f6 ff ff 01 	movb   $0x1,-0x92c(%ebp)
451cc9:	13 d7                	adc    %edi,%edx
451ccb:	23 c3                	and    %ebx,%eax
451ccd:	23 d1                	and    %ecx,%edx
451ccf:	0b c2                	or     %edx,%eax
451cd1:	74 07                	je     0x451cda
451cd3:	c6 85 d4 f6 ff ff 00 	movb   $0x0,-0x92c(%ebp)
451cda:	8b d1                	mov    %ecx,%edx
451cdc:	8b c3                	mov    %ebx,%eax
451cde:	8b ce                	mov    %esi,%ecx
451ce0:	e8 db e0 fe ff       	call   0x43fdc0
451ce5:	89 85 c4 f6 ff ff    	mov    %eax,-0x93c(%ebp)
451ceb:	89 95 dc f6 ff ff    	mov    %edx,-0x924(%ebp)
451cf1:	8b 8d b0 f6 ff ff    	mov    -0x950(%ebp),%ecx
451cf7:	33 c0                	xor    %eax,%eax
451cf9:	3b 85 e8 f6 ff ff    	cmp    -0x918(%ebp),%eax
451cff:	1b f6                	sbb    %esi,%esi
451d01:	40                   	inc    %eax
451d02:	23 b5 30 fe ff ff    	and    -0x1d0(%ebp),%esi
451d08:	3b 85 e8 f6 ff ff    	cmp    -0x918(%ebp),%eax
451d0e:	1b d2                	sbb    %edx,%edx
451d10:	33 c0                	xor    %eax,%eax
451d12:	23 95 34 fe ff ff    	and    -0x1cc(%ebp),%edx
451d18:	03 c6                	add    %esi,%eax
451d1a:	83 d2 00             	adc    $0x0,%edx
451d1d:	e8 de df fe ff       	call   0x43fd00
451d22:	8b c8                	mov    %eax,%ecx
451d24:	8b 85 bc f6 ff ff    	mov    -0x944(%ebp),%eax
451d2a:	03 8d c4 f6 ff ff    	add    -0x93c(%ebp),%ecx
451d30:	13 95 dc f6 ff ff    	adc    -0x924(%ebp),%edx
451d36:	85 c0                	test   %eax,%eax
451d38:	74 05                	je     0x451d3f
451d3a:	8d 78 fe             	lea    -0x2(%eax),%edi
451d3d:	eb 06                	jmp    0x451d45
451d3f:	2b bd d8 f6 ff ff    	sub    -0x928(%ebp),%edi
451d45:	ff b5 a8 f6 ff ff    	push   -0x958(%ebp)
451d4b:	8b 85 ac f6 ff ff    	mov    -0x954(%ebp),%eax
451d51:	ff b5 d4 f6 ff ff    	push   -0x92c(%ebp)
451d57:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
451d5e:	50                   	push   %eax
451d5f:	57                   	push   %edi
451d60:	52                   	push   %edx
451d61:	51                   	push   %ecx
451d62:	e8 bc dc ff ff       	call   0x44fa23
451d67:	83 c4 18             	add    $0x18,%esp
451d6a:	eb 2d                	jmp    0x451d99
451d6c:	ff b5 a8 f6 ff ff    	push   -0x958(%ebp)
451d72:	85 c0                	test   %eax,%eax
451d74:	0f 95 c0             	setne  %al
451d77:	0f b6 c0             	movzbl %al,%eax
451d7a:	50                   	push   %eax
451d7b:	8b 85 ac f6 ff ff    	mov    -0x954(%ebp),%eax
451d81:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
451d88:	50                   	push   %eax
451d89:	51                   	push   %ecx
451d8a:	8d 85 2c fe ff ff    	lea    -0x1d4(%ebp),%eax
451d90:	50                   	push   %eax
451d91:	e8 d5 df ff ff       	call   0x44fd6b
451d96:	83 c4 14             	add    $0x14,%esp
451d99:	8b 4d fc             	mov    -0x4(%ebp),%ecx
451d9c:	5f                   	pop    %edi
451d9d:	5e                   	pop    %esi
451d9e:	33 cd                	xor    %ebp,%ecx
451da0:	5b                   	pop    %ebx
451da1:	e8 5c dc fe ff       	call   0x43fa02
451da6:	8b e5                	mov    %ebp,%esp
451da8:	5d                   	pop    %ebp
451da9:	c3                   	ret
451daa:	8b ff                	mov    %edi,%edi
451dac:	55                   	push   %ebp
451dad:	8b ec                	mov    %esp,%ebp
451daf:	51                   	push   %ecx
451db0:	51                   	push   %ecx
451db1:	8b 45 0c             	mov    0xc(%ebp),%eax
451db4:	33 c9                	xor    %ecx,%ecx
451db6:	8b 55 08             	mov    0x8(%ebp),%edx
451db9:	53                   	push   %ebx
451dba:	56                   	push   %esi
451dbb:	33 db                	xor    %ebx,%ebx
451dbd:	57                   	push   %edi
451dbe:	33 ff                	xor    %edi,%edi
451dc0:	8d 72 08             	lea    0x8(%edx),%esi
451dc3:	38 48 04             	cmp    %cl,0x4(%eax)
451dc6:	8b 02                	mov    (%edx),%eax
451dc8:	0f 94 c1             	sete   %cl
451dcb:	48                   	dec    %eax
451dcc:	49                   	dec    %ecx
451dcd:	83 e1 1d             	and    $0x1d,%ecx
451dd0:	83 c1 18             	add    $0x18,%ecx
451dd3:	03 c1                	add    %ecx,%eax
451dd5:	8d 4a 08             	lea    0x8(%edx),%ecx
451dd8:	89 45 f8             	mov    %eax,-0x8(%ebp)
451ddb:	8b 42 04             	mov    0x4(%edx),%eax
451dde:	03 c8                	add    %eax,%ecx
451de0:	89 4d fc             	mov    %ecx,-0x4(%ebp)
451de3:	3b f1                	cmp    %ecx,%esi
451de5:	74 35                	je     0x451e1c
451de7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
451dea:	e8 df 10 00 00       	call   0x452ece
451def:	3b da                	cmp    %edx,%ebx
451df1:	77 23                	ja     0x451e16
451df3:	72 04                	jb     0x451df9
451df5:	3b f8                	cmp    %eax,%edi
451df7:	77 1d                	ja     0x451e16
451df9:	0f b6 06             	movzbl (%esi),%eax
451dfc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
451dff:	0f a4 fb 04          	shld   $0x4,%edi,%ebx
451e03:	99                   	cltd
451e04:	c1 e7 04             	shl    $0x4,%edi
451e07:	03 f8                	add    %eax,%edi
451e09:	13 da                	adc    %edx,%ebx
451e0b:	83 6d f8 04          	subl   $0x4,-0x8(%ebp)
451e0f:	46                   	inc    %esi
451e10:	3b f1                	cmp    %ecx,%esi
451e12:	75 d3                	jne    0x451de7
451e14:	eb 03                	jmp    0x451e19
451e16:	8b 4d fc             	mov    -0x4(%ebp),%ecx
451e19:	8b 55 08             	mov    0x8(%ebp),%edx
451e1c:	b0 01                	mov    $0x1,%al
451e1e:	eb 0d                	jmp    0x451e2d
451e20:	84 c0                	test   %al,%al
451e22:	74 10                	je     0x451e34
451e24:	8a 06                	mov    (%esi),%al
451e26:	46                   	inc    %esi
451e27:	84 c0                	test   %al,%al
451e29:	74 f1                	je     0x451e1c
451e2b:	32 c0                	xor    %al,%al
451e2d:	88 45 fc             	mov    %al,-0x4(%ebp)
451e30:	3b f1                	cmp    %ecx,%esi
451e32:	75 ec                	jne    0x451e20
451e34:	ff 75 0c             	push   0xc(%ebp)
451e37:	0f b6 82 08 03 00 00 	movzbl 0x308(%edx),%eax
451e3e:	ff 75 fc             	push   -0x4(%ebp)
451e41:	50                   	push   %eax
451e42:	ff 75 f8             	push   -0x8(%ebp)
451e45:	53                   	push   %ebx
451e46:	57                   	push   %edi
451e47:	e8 d7 db ff ff       	call   0x44fa23
451e4c:	83 c4 18             	add    $0x18,%esp
451e4f:	5f                   	pop    %edi
451e50:	5e                   	pop    %esi
451e51:	5b                   	pop    %ebx
451e52:	8b e5                	mov    %ebp,%esp
451e54:	5d                   	pop    %ebp
451e55:	c3                   	ret
451e56:	cc                   	int3
451e57:	cc                   	int3
451e58:	cc                   	int3
451e59:	cc                   	int3
451e5a:	cc                   	int3
451e5b:	cc                   	int3
451e5c:	cc                   	int3
451e5d:	cc                   	int3
451e5e:	cc                   	int3
451e5f:	cc                   	int3
451e60:	8b ff                	mov    %edi,%edi
451e62:	55                   	push   %ebp
451e63:	8b ec                	mov    %esp,%ebp
451e65:	0f bd 4d 08          	bsr    0x8(%ebp),%ecx
451e69:	74 09                	je     0x451e74
451e6b:	b8 1f 00 00 00       	mov    $0x1f,%eax
451e70:	2b c1                	sub    %ecx,%eax
451e72:	5d                   	pop    %ebp
451e73:	c3                   	ret
451e74:	b8 20 00 00 00       	mov    $0x20,%eax
451e79:	5d                   	pop    %ebp
451e7a:	c3                   	ret
451e7b:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
451e7f:	74 09                	je     0x451e8a
451e81:	83 c8 ff             	or     $0xffffffff,%eax
451e84:	ba ff ff 0f 00       	mov    $0xfffff,%edx
451e89:	c3                   	ret
451e8a:	b8 ff ff 7f 00       	mov    $0x7fffff,%eax
451e8f:	33 d2                	xor    %edx,%edx
451e91:	c3                   	ret
451e92:	cc                   	int3
451e93:	cc                   	int3
451e94:	cc                   	int3
451e95:	cc                   	int3
451e96:	cc                   	int3
451e97:	cc                   	int3
451e98:	cc                   	int3
451e99:	cc                   	int3
451e9a:	cc                   	int3
451e9b:	cc                   	int3
451e9c:	cc                   	int3
451e9d:	cc                   	int3
451e9e:	cc                   	int3
451e9f:	cc                   	int3
451ea0:	8b ff                	mov    %edi,%edi
451ea2:	55                   	push   %ebp
451ea3:	8b ec                	mov    %esp,%ebp
451ea5:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
451eab:	53                   	push   %ebx
451eac:	8b 5d 08             	mov    0x8(%ebp),%ebx
451eaf:	8b 03                	mov    (%ebx),%eax
451eb1:	85 c0                	test   %eax,%eax
451eb3:	75 07                	jne    0x451ebc
451eb5:	33 d2                	xor    %edx,%edx
451eb7:	5b                   	pop    %ebx
451eb8:	8b e5                	mov    %ebp,%esp
451eba:	5d                   	pop    %ebp
451ebb:	c3                   	ret
451ebc:	57                   	push   %edi
451ebd:	8b 7d 0c             	mov    0xc(%ebp),%edi
451ec0:	8b 0f                	mov    (%edi),%ecx
451ec2:	85 c9                	test   %ecx,%ecx
451ec4:	75 0a                	jne    0x451ed0
451ec6:	5f                   	pop    %edi
451ec7:	33 c0                	xor    %eax,%eax
451ec9:	33 d2                	xor    %edx,%edx
451ecb:	5b                   	pop    %ebx
451ecc:	8b e5                	mov    %ebp,%esp
451ece:	5d                   	pop    %ebp
451ecf:	c3                   	ret
451ed0:	56                   	push   %esi
451ed1:	8d 70 ff             	lea    -0x1(%eax),%esi
451ed4:	8d 41 ff             	lea    -0x1(%ecx),%eax
451ed7:	89 75 f8             	mov    %esi,-0x8(%ebp)
451eda:	85 c0                	test   %eax,%eax
451edc:	0f 85 2f 01 00 00    	jne    0x452011
451ee2:	8b 4f 04             	mov    0x4(%edi),%ecx
451ee5:	89 4d d8             	mov    %ecx,-0x28(%ebp)
451ee8:	83 f9 01             	cmp    $0x1,%ecx
451eeb:	75 2f                	jne    0x451f1c
451eed:	8b 73 04             	mov    0x4(%ebx),%esi
451ef0:	8d 4b 04             	lea    0x4(%ebx),%ecx
451ef3:	50                   	push   %eax
451ef4:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
451efa:	89 03                	mov    %eax,(%ebx)
451efc:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
451f02:	50                   	push   %eax
451f03:	68 cc 01 00 00       	push   $0x1cc
451f08:	51                   	push   %ecx
451f09:	e8 94 17 00 00       	call   0x4536a2
451f0e:	83 c4 10             	add    $0x10,%esp
451f11:	8b c6                	mov    %esi,%eax
451f13:	33 d2                	xor    %edx,%edx
451f15:	5e                   	pop    %esi
451f16:	5f                   	pop    %edi
451f17:	5b                   	pop    %ebx
451f18:	8b e5                	mov    %ebp,%esp
451f1a:	5d                   	pop    %ebp
451f1b:	c3                   	ret
451f1c:	85 f6                	test   %esi,%esi
451f1e:	75 49                	jne    0x451f69
451f20:	8b 73 04             	mov    0x4(%ebx),%esi
451f23:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
451f29:	6a 00                	push   $0x0
451f2b:	50                   	push   %eax
451f2c:	8d 7b 04             	lea    0x4(%ebx),%edi
451f2f:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
451f36:	00 00 00
451f39:	68 cc 01 00 00       	push   $0x1cc
451f3e:	57                   	push   %edi
451f3f:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
451f45:	e8 58 17 00 00       	call   0x4536a2
451f4a:	33 d2                	xor    %edx,%edx
451f4c:	8b c6                	mov    %esi,%eax
451f4e:	f7 75 d8             	divl   -0x28(%ebp)
451f51:	83 c4 10             	add    $0x10,%esp
451f54:	33 c9                	xor    %ecx,%ecx
451f56:	3b ca                	cmp    %edx,%ecx
451f58:	89 17                	mov    %edx,(%edi)
451f5a:	1b c9                	sbb    %ecx,%ecx
451f5c:	5e                   	pop    %esi
451f5d:	f7 d9                	neg    %ecx
451f5f:	33 d2                	xor    %edx,%edx
451f61:	5f                   	pop    %edi
451f62:	89 0b                	mov    %ecx,(%ebx)
451f64:	5b                   	pop    %ebx
451f65:	8b e5                	mov    %ebp,%esp
451f67:	5d                   	pop    %ebp