412ad5:	23 9d b4 f6 ff ff    	and    -0x94c(%ebp),%ebx
412adb:	d3 e8                	shr    %cl,%eax
412add:	8b 8d c8 f6 ff ff    	mov    -0x938(%ebp),%ecx
412ae3:	d3 e3                	shl    %cl,%ebx
412ae5:	8b 8d d8 f6 ff ff    	mov    -0x928(%ebp),%ecx
412aeb:	0b c3                	or     %ebx,%eax
412aed:	89 84 8d 90 fa ff ff 	mov    %eax,-0x570(%ebp,%ecx,4)
412af4:	49                   	dec    %ecx
412af5:	4e                   	dec    %esi
412af6:	89 8d d8 f6 ff ff    	mov    %ecx,-0x928(%ebp)
412afc:	3b cf                	cmp    %edi,%ecx
412afe:	74 0e                	je     0x412b0e
412b00:	8b 9d 8c fa ff ff    	mov    -0x574(%ebp),%ebx
412b06:	8b 85 dc f6 ff ff    	mov    -0x924(%ebp),%eax
412b0c:	eb 90                	jmp    0x412a9e
412b0e:	8b 95 d0 f6 ff ff    	mov    -0x930(%ebp),%edx
412b14:	8b b5 dc f6 ff ff    	mov    -0x924(%ebp),%esi
412b1a:	85 f6                	test   %esi,%esi
412b1c:	74 0f                	je     0x412b2d
412b1e:	33 c0                	xor    %eax,%eax
412b20:	8d bd 90 fa ff ff    	lea    -0x570(%ebp),%edi
412b26:	8b ce                	mov    %esi,%ecx
412b28:	f3 ab                	rep stos %eax,%es:(%edi)
412b2a:	83 cf ff             	or     $0xffffffff,%edi
412b2d:	80 bd c3 f6 ff ff 00 	cmpb   $0x0,-0x93d(%ebp)
412b34:	74 0b                	je     0x412b41
412b36:	8d 42 01             	lea    0x1(%edx),%eax
412b39:	89 85 8c fa ff ff    	mov    %eax,-0x574(%ebp)
412b3f:	eb 32                	jmp    0x412b73
412b41:	89 95 8c fa ff ff    	mov    %edx,-0x574(%ebp)
412b47:	eb 2a                	jmp    0x412b73
412b49:	33 c0                	xor    %eax,%eax
412b4b:	50                   	push   %eax
412b4c:	89 85 d4 f4 ff ff    	mov    %eax,-0xb2c(%ebp)
412b52:	89 85 8c fa ff ff    	mov    %eax,-0x574(%ebp)
412b58:	8d 85 d8 f4 ff ff    	lea    -0xb28(%ebp),%eax
412b5e:	50                   	push   %eax
412b5f:	8d 85 90 fa ff ff    	lea    -0x570(%ebp),%eax
412b65:	68 cc 01 00 00       	push   $0x1cc
412b6a:	50                   	push   %eax
412b6b:	e8 a2 12 00 00       	call   0x413e12
412b70:	83 c4 10             	add    $0x10,%esp
412b73:	8d 85 5c fc ff ff    	lea    -0x3a4(%ebp),%eax
412b79:	50                   	push   %eax
412b7a:	8d 85 8c fa ff ff    	lea    -0x574(%ebp),%eax
412b80:	50                   	push   %eax
412b81:	e8 1a 02 00 00       	call   0x412da0
412b86:	83 bd 8c fa ff ff 00 	cmpl   $0x0,-0x574(%ebp)
412b8d:	8b d8                	mov    %eax,%ebx
412b8f:	59                   	pop    %ecx
412b90:	59                   	pop    %ecx
412b91:	8b ca                	mov    %edx,%ecx
412b93:	89 9d c4 f6 ff ff    	mov    %ebx,-0x93c(%ebp)
412b99:	0f 94 c2             	sete   %dl
412b9c:	89 8d dc f6 ff ff    	mov    %ecx,-0x924(%ebp)
412ba2:	88 95 d8 f6 ff ff    	mov    %dl,-0x928(%ebp)
412ba8:	85 c9                	test   %ecx,%ecx
412baa:	75 12                	jne    0x412bbe
412bac:	3b df                	cmp    %edi,%ebx
412bae:	77 0e                	ja     0x412bbe
412bb0:	0f bd c3             	bsr    %ebx,%eax
412bb3:	74 05                	je     0x412bba
412bb5:	8d 70 01             	lea    0x1(%eax),%esi
412bb8:	eb 13                	jmp    0x412bcd
412bba:	33 f6                	xor    %esi,%esi
412bbc:	eb 0f                	jmp    0x412bcd
412bbe:	0f bd c1             	bsr    %ecx,%eax
412bc1:	74 05                	je     0x412bc8
412bc3:	8d 70 01             	lea    0x1(%eax),%esi
412bc6:	eb 02                	jmp    0x412bca
412bc8:	33 f6                	xor    %esi,%esi
412bca:	83 c6 20             	add    $0x20,%esi
412bcd:	8b 85 ac f6 ff ff    	mov    -0x954(%ebp),%eax
412bd3:	3b f0                	cmp    %eax,%esi
412bd5:	76 49                	jbe    0x412c20
412bd7:	2b f0                	sub    %eax,%esi
412bd9:	84 d2                	test   %dl,%dl
412bdb:	74 25                	je     0x412c02
412bdd:	33 c0                	xor    %eax,%eax
412bdf:	33 d2                	xor    %edx,%edx
412be1:	40                   	inc    %eax
412be2:	8b ce                	mov    %esi,%ecx
412be4:	e8 e7 37 01 00       	call   0x4263d0
412be9:	8b 8d dc f6 ff ff    	mov    -0x924(%ebp),%ecx
412bef:	03 c7                	add    %edi,%eax
412bf1:	c6 85 d8 f6 ff ff 01 	movb   $0x1,-0x928(%ebp)
412bf8:	13 d7                	adc    %edi,%edx
412bfa:	23 c3                	and    %ebx,%eax
412bfc:	23 d1                	and    %ecx,%edx
412bfe:	0b c2                	or     %edx,%eax
412c00:	74 07                	je     0x412c09
412c02:	c6 85 d8 f6 ff ff 00 	movb   $0x0,-0x928(%ebp)
412c09:	8b d1                	mov    %ecx,%edx
412c0b:	8b c3                	mov    %ebx,%eax
412c0d:	8b ce                	mov    %esi,%ecx
412c0f:	e8 dc 37 01 00       	call   0x4263f0
412c14:	89 85 c4 f6 ff ff    	mov    %eax,-0x93c(%ebp)
412c1a:	89 95 dc f6 ff ff    	mov    %edx,-0x924(%ebp)
412c20:	8b 8d ac f6 ff ff    	mov    -0x954(%ebp),%ecx
412c26:	33 c0                	xor    %eax,%eax
412c28:	3b 85 e8 f6 ff ff    	cmp    -0x918(%ebp),%eax
412c2e:	1b f6                	sbb    %esi,%esi
412c30:	40                   	inc    %eax
412c31:	23 b5 30 fe ff ff    	and    -0x1d0(%ebp),%esi
412c37:	3b 85 e8 f6 ff ff    	cmp    -0x918(%ebp),%eax
412c3d:	1b d2                	sbb    %edx,%edx
412c3f:	33 c0                	xor    %eax,%eax
412c41:	23 95 34 fe ff ff    	and    -0x1cc(%ebp),%edx
412c47:	03 c6                	add    %esi,%eax
412c49:	83 d2 00             	adc    $0x0,%edx
412c4c:	e8 7f 37 01 00       	call   0x4263d0
412c51:	8b c8                	mov    %eax,%ecx
412c53:	8b 85 bc f6 ff ff    	mov    -0x944(%ebp),%eax
412c59:	03 8d c4 f6 ff ff    	add    -0x93c(%ebp),%ecx
412c5f:	13 95 dc f6 ff ff    	adc    -0x924(%ebp),%edx
412c65:	85 c0                	test   %eax,%eax
412c67:	74 05                	je     0x412c6e
412c69:	8d 78 fe             	lea    -0x2(%eax),%edi
412c6c:	eb 06                	jmp    0x412c74
412c6e:	2b bd d4 f6 ff ff    	sub    -0x92c(%ebp),%edi
412c74:	ff b5 a8 f6 ff ff    	push   -0x958(%ebp)
412c7a:	8b 85 b0 f6 ff ff    	mov    -0x950(%ebp),%eax
412c80:	ff b5 d8 f6 ff ff    	push   -0x928(%ebp)
412c86:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
412c8d:	50                   	push   %eax
412c8e:	57                   	push   %edi
412c8f:	52                   	push   %edx
412c90:	51                   	push   %ecx
412c91:	e8 72 dd ff ff       	call   0x410a08
412c96:	83 c4 18             	add    $0x18,%esp
412c99:	eb 2d                	jmp    0x412cc8
412c9b:	ff b5 a8 f6 ff ff    	push   -0x958(%ebp)
412ca1:	85 c0                	test   %eax,%eax
412ca3:	0f 95 c0             	setne  %al
412ca6:	0f b6 c0             	movzbl %al,%eax
412ca9:	50                   	push   %eax
412caa:	8b 85 b0 f6 ff ff    	mov    -0x950(%ebp),%eax
412cb0:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
412cb7:	50                   	push   %eax
412cb8:	51                   	push   %ecx
412cb9:	8d 85 2c fe ff ff    	lea    -0x1d4(%ebp),%eax
412cbf:	50                   	push   %eax
412cc0:	e8 8f e0 ff ff       	call   0x410d54
412cc5:	83 c4 14             	add    $0x14,%esp
412cc8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
412ccb:	5f                   	pop    %edi
412ccc:	5e                   	pop    %esi
412ccd:	33 cd                	xor    %ebp,%ecx
412ccf:	5b                   	pop    %ebx
412cd0:	e8 8b 43 ff ff       	call   0x407060
412cd5:	8b e5                	mov    %ebp,%esp
412cd7:	5d                   	pop    %ebp
412cd8:	c3                   	ret
412cd9:	8b ff                	mov    %edi,%edi
412cdb:	55                   	push   %ebp
412cdc:	8b ec                	mov    %esp,%ebp
412cde:	51                   	push   %ecx
412cdf:	51                   	push   %ecx
412ce0:	8b 45 0c             	mov    0xc(%ebp),%eax
412ce3:	33 c9                	xor    %ecx,%ecx
412ce5:	8b 55 08             	mov    0x8(%ebp),%edx
412ce8:	53                   	push   %ebx
412ce9:	56                   	push   %esi
412cea:	33 db                	xor    %ebx,%ebx
412cec:	57                   	push   %edi
412ced:	33 ff                	xor    %edi,%edi
412cef:	8d 72 08             	lea    0x8(%edx),%esi
412cf2:	38 48 04             	cmp    %cl,0x4(%eax)
412cf5:	8b 02                	mov    (%edx),%eax
412cf7:	0f 94 c1             	sete   %cl
412cfa:	48                   	dec    %eax
412cfb:	49                   	dec    %ecx
412cfc:	83 e1 1d             	and    $0x1d,%ecx
412cff:	83 c1 18             	add    $0x18,%ecx
412d02:	03 c1                	add    %ecx,%eax
412d04:	8d 4a 08             	lea    0x8(%edx),%ecx
412d07:	89 45 f8             	mov    %eax,-0x8(%ebp)
412d0a:	8b 42 04             	mov    0x4(%edx),%eax
412d0d:	03 c8                	add    %eax,%ecx
412d0f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
412d12:	3b f1                	cmp    %ecx,%esi
412d14:	74 35                	je     0x412d4b
412d16:	8b 4d 0c             	mov    0xc(%ebp),%ecx
412d19:	e8 25 06 00 00       	call   0x413343
412d1e:	3b da                	cmp    %edx,%ebx
412d20:	77 23                	ja     0x412d45
412d22:	72 04                	jb     0x412d28
412d24:	3b f8                	cmp    %eax,%edi
412d26:	77 1d                	ja     0x412d45
412d28:	0f b6 06             	movzbl (%esi),%eax
412d2b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
412d2e:	0f a4 fb 04          	shld   $0x4,%edi,%ebx
412d32:	99                   	cltd
412d33:	c1 e7 04             	shl    $0x4,%edi
412d36:	03 f8                	add    %eax,%edi
412d38:	13 da                	adc    %edx,%ebx
412d3a:	83 6d f8 04          	subl   $0x4,-0x8(%ebp)
412d3e:	46                   	inc    %esi
412d3f:	3b f1                	cmp    %ecx,%esi
412d41:	75 d3                	jne    0x412d16
412d43:	eb 03                	jmp    0x412d48
412d45:	8b 4d fc             	mov    -0x4(%ebp),%ecx
412d48:	8b 55 08             	mov    0x8(%ebp),%edx
412d4b:	b0 01                	mov    $0x1,%al
412d4d:	eb 0d                	jmp    0x412d5c
412d4f:	84 c0                	test   %al,%al
412d51:	74 10                	je     0x412d63
412d53:	8a 06                	mov    (%esi),%al
412d55:	46                   	inc    %esi
412d56:	84 c0                	test   %al,%al
412d58:	74 f1                	je     0x412d4b
412d5a:	32 c0                	xor    %al,%al
412d5c:	88 45 fc             	mov    %al,-0x4(%ebp)
412d5f:	3b f1                	cmp    %ecx,%esi
412d61:	75 ec                	jne    0x412d4f
412d63:	ff 75 0c             	push   0xc(%ebp)
412d66:	0f b6 82 08 03 00 00 	movzbl 0x308(%edx),%eax
412d6d:	ff 75 fc             	push   -0x4(%ebp)
412d70:	50                   	push   %eax
412d71:	ff 75 f8             	push   -0x8(%ebp)
412d74:	53                   	push   %ebx
412d75:	57                   	push   %edi
412d76:	e8 8d dc ff ff       	call   0x410a08
412d7b:	83 c4 18             	add    $0x18,%esp
412d7e:	5f                   	pop    %edi
412d7f:	5e                   	pop    %esi
412d80:	5b                   	pop    %ebx
412d81:	8b e5                	mov    %ebp,%esp
412d83:	5d                   	pop    %ebp
412d84:	c3                   	ret
412d85:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
412d89:	74 09                	je     0x412d94
412d8b:	83 c8 ff             	or     $0xffffffff,%eax
412d8e:	ba ff ff 0f 00       	mov    $0xfffff,%edx
412d93:	c3                   	ret
412d94:	b8 ff ff 7f 00       	mov    $0x7fffff,%eax
412d99:	33 d2                	xor    %edx,%edx
412d9b:	c3                   	ret
412d9c:	cc                   	int3
412d9d:	cc                   	int3
412d9e:	cc                   	int3
412d9f:	cc                   	int3
412da0:	8b ff                	mov    %edi,%edi
412da2:	55                   	push   %ebp
412da3:	8b ec                	mov    %esp,%ebp
412da5:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
412dab:	53                   	push   %ebx
412dac:	8b 5d 08             	mov    0x8(%ebp),%ebx
412daf:	8b 03                	mov    (%ebx),%eax
412db1:	85 c0                	test   %eax,%eax
412db3:	75 07                	jne    0x412dbc
412db5:	33 d2                	xor    %edx,%edx
412db7:	5b                   	pop    %ebx
412db8:	8b e5                	mov    %ebp,%esp
412dba:	5d                   	pop    %ebp
412dbb:	c3                   	ret
412dbc:	57                   	push   %edi
412dbd:	8b 7d 0c             	mov    0xc(%ebp),%edi
412dc0:	8b 0f                	mov    (%edi),%ecx
412dc2:	85 c9                	test   %ecx,%ecx
412dc4:	75 0a                	jne    0x412dd0
412dc6:	5f                   	pop    %edi
412dc7:	33 c0                	xor    %eax,%eax
412dc9:	33 d2                	xor    %edx,%edx
412dcb:	5b                   	pop    %ebx
412dcc:	8b e5                	mov    %ebp,%esp
412dce:	5d                   	pop    %ebp
412dcf:	c3                   	ret
412dd0:	56                   	push   %esi
412dd1:	8d 70 ff             	lea    -0x1(%eax),%esi
412dd4:	8d 41 ff             	lea    -0x1(%ecx),%eax
412dd7:	89 75 f4             	mov    %esi,-0xc(%ebp)
412dda:	85 c0                	test   %eax,%eax
412ddc:	0f 85 2d 01 00 00    	jne    0x412f0f
412de2:	8b 4f 04             	mov    0x4(%edi),%ecx
412de5:	89 4d d8             	mov    %ecx,-0x28(%ebp)
412de8:	83 f9 01             	cmp    $0x1,%ecx
412deb:	75 2f                	jne    0x412e1c
412ded:	8b 73 04             	mov    0x4(%ebx),%esi
412df0:	8d 4b 04             	lea    0x4(%ebx),%ecx
412df3:	50                   	push   %eax
412df4:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
412dfa:	89 03                	mov    %eax,(%ebx)
412dfc:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
412e02:	50                   	push   %eax
412e03:	68 cc 01 00 00       	push   $0x1cc
412e08:	51                   	push   %ecx
412e09:	e8 04 10 00 00       	call   0x413e12
412e0e:	83 c4 10             	add    $0x10,%esp
412e11:	8b c6                	mov    %esi,%eax
412e13:	33 d2                	xor    %edx,%edx
412e15:	5e                   	pop    %esi
412e16:	5f                   	pop    %edi
412e17:	5b                   	pop    %ebx
412e18:	8b e5                	mov    %ebp,%esp
412e1a:	5d                   	pop    %ebp
412e1b:	c3                   	ret
412e1c:	85 f6                	test   %esi,%esi
412e1e:	75 49                	jne    0x412e69
412e20:	8b 73 04             	mov    0x4(%ebx),%esi
412e23:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
412e29:	6a 00                	push   $0x0
412e2b:	50                   	push   %eax
412e2c:	8d 7b 04             	lea    0x4(%ebx),%edi
412e2f:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
412e36:	00 00 00
412e39:	68 cc 01 00 00       	push   $0x1cc
412e3e:	57                   	push   %edi
412e3f:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
412e45:	e8 c8 0f 00 00       	call   0x413e12
412e4a:	33 d2                	xor    %edx,%edx
412e4c:	8b c6                	mov    %esi,%eax
412e4e:	f7 75 d8             	divl   -0x28(%ebp)
412e51:	83 c4 10             	add    $0x10,%esp
412e54:	33 c9                	xor    %ecx,%ecx
412e56:	3b ca                	cmp    %edx,%ecx
412e58:	89 17                	mov    %edx,(%edi)
412e5a:	1b c9                	sbb    %ecx,%ecx
412e5c:	5e                   	pop    %esi
412e5d:	f7 d9                	neg    %ecx
412e5f:	33 d2                	xor    %edx,%edx
412e61:	5f                   	pop    %edi
412e62:	89 0b                	mov    %ecx,(%ebx)
412e64:	5b                   	pop    %ebx
412e65:	8b e5                	mov    %ebp,%esp
412e67:	5d                   	pop    %ebp
412e68:	c3                   	ret
412e69:	33 ff                	xor    %edi,%edi
412e6b:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
412e72:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
412e79:	89 7d f0             	mov    %edi,-0x10(%ebp)
412e7c:	83 fe ff             	cmp    $0xffffffff,%esi
412e7f:	74 44                	je     0x412ec5
412e81:	8b 45 f4             	mov    -0xc(%ebp),%eax
412e84:	46                   	inc    %esi
412e85:	40                   	inc    %eax
412e86:	89 45 e4             	mov    %eax,-0x1c(%ebp)
412e89:	8d 34 b3             	lea    (%ebx,%esi,4),%esi
412e8c:	8d 64 24 00          	lea    0x0(%esp),%esp
412e90:	6a 00                	push   $0x0
412e92:	51                   	push   %ecx
412e93:	33 c0                	xor    %eax,%eax
412e95:	0b 06                	or     (%esi),%eax
412e97:	57                   	push   %edi
412e98:	50                   	push   %eax
412e99:	e8 92 34 01 00       	call   0x426330
412e9e:	89 55 c0             	mov    %edx,-0x40(%ebp)
412ea1:	8d 76 fc             	lea    -0x4(%esi),%esi
412ea4:	33 d2                	xor    %edx,%edx
412ea6:	89 5d f0             	mov    %ebx,-0x10(%ebp)