412877:	3b f3                	cmp    %ebx,%esi
412879:	73 04                	jae    0x41287f
41287b:	8b 02                	mov    (%edx),%eax
41287d:	eb 02                	jmp    0x412881
41287f:	33 c0                	xor    %eax,%eax
412881:	89 85 c4 f6 ff ff    	mov    %eax,-0x93c(%ebp)
412887:	8d 46 ff             	lea    -0x1(%esi),%eax
41288a:	3b c3                	cmp    %ebx,%eax
41288c:	73 05                	jae    0x412893
41288e:	8b 42 fc             	mov    -0x4(%edx),%eax
412891:	eb 02                	jmp    0x412895
412893:	33 c0                	xor    %eax,%eax
412895:	23 85 cc f6 ff ff    	and    -0x934(%ebp),%eax
41289b:	83 ea 04             	sub    $0x4,%edx
41289e:	8b 8d b8 f6 ff ff    	mov    -0x948(%ebp),%ecx
4128a4:	8b 9d c4 f6 ff ff    	mov    -0x93c(%ebp),%ebx
4128aa:	23 9d b4 f6 ff ff    	and    -0x94c(%ebp),%ebx
4128b0:	d3 e8                	shr    %cl,%eax
4128b2:	8b 8d c8 f6 ff ff    	mov    -0x938(%ebp),%ecx
4128b8:	d3 e3                	shl    %cl,%ebx
4128ba:	8b 8d d8 f6 ff ff    	mov    -0x928(%ebp),%ecx
4128c0:	0b c3                	or     %ebx,%eax
4128c2:	89 84 8d 90 fa ff ff 	mov    %eax,-0x570(%ebp,%ecx,4)
4128c9:	49                   	dec    %ecx
4128ca:	4e                   	dec    %esi
4128cb:	89 8d d8 f6 ff ff    	mov    %ecx,-0x928(%ebp)
4128d1:	3b cf                	cmp    %edi,%ecx
4128d3:	74 0e                	je     0x4128e3
4128d5:	8b 9d 8c fa ff ff    	mov    -0x574(%ebp),%ebx
4128db:	8b 85 dc f6 ff ff    	mov    -0x924(%ebp),%eax
4128e1:	eb 90                	jmp    0x412873
4128e3:	8b 95 d0 f6 ff ff    	mov    -0x930(%ebp),%edx
4128e9:	8b b5 dc f6 ff ff    	mov    -0x924(%ebp),%esi
4128ef:	85 f6                	test   %esi,%esi
4128f1:	74 0f                	je     0x412902
4128f3:	33 c0                	xor    %eax,%eax
4128f5:	8d bd 90 fa ff ff    	lea    -0x570(%ebp),%edi
4128fb:	8b ce                	mov    %esi,%ecx
4128fd:	f3 ab                	rep stos %eax,%es:(%edi)
4128ff:	83 cf ff             	or     $0xffffffff,%edi
412902:	80 bd c3 f6 ff ff 00 	cmpb   $0x0,-0x93d(%ebp)
412909:	8d 5a 01             	lea    0x1(%edx),%ebx
41290c:	8b 8d e0 f6 ff ff    	mov    -0x920(%ebp),%ecx
412912:	8b b5 d4 f6 ff ff    	mov    -0x92c(%ebp),%esi
412918:	75 02                	jne    0x41291c
41291a:	8b da                	mov    %edx,%ebx
41291c:	89 9d 8c fa ff ff    	mov    %ebx,-0x574(%ebp)
412922:	eb 3c                	jmp    0x412960
412924:	33 c0                	xor    %eax,%eax
412926:	50                   	push   %eax
412927:	89 85 d4 f4 ff ff    	mov    %eax,-0xb2c(%ebp)
41292d:	89 85 8c fa ff ff    	mov    %eax,-0x574(%ebp)
412933:	8d 85 d8 f4 ff ff    	lea    -0xb28(%ebp),%eax
412939:	50                   	push   %eax
41293a:	8d 85 90 fa ff ff    	lea    -0x570(%ebp),%eax
412940:	68 cc 01 00 00       	push   $0x1cc
412945:	50                   	push   %eax
412946:	e8 c7 14 00 00       	call   0x413e12
41294b:	8b 9d 8c fa ff ff    	mov    -0x574(%ebp),%ebx
412951:	83 c4 10             	add    $0x10,%esp
412954:	8b 8d e0 f6 ff ff    	mov    -0x920(%ebp),%ecx
41295a:	8b b5 d4 f6 ff ff    	mov    -0x92c(%ebp),%esi
412960:	8b 95 ac f6 ff ff    	mov    -0x954(%ebp),%edx
412966:	8b 85 bc f6 ff ff    	mov    -0x944(%ebp),%eax
41296c:	2b d0                	sub    %eax,%edx
41296e:	89 95 ac f6 ff ff    	mov    %edx,-0x954(%ebp)
412974:	85 c0                	test   %eax,%eax
412976:	74 2b                	je     0x4129a3
412978:	8b c2                	mov    %edx,%eax
41297a:	3b f0                	cmp    %eax,%esi
41297c:	76 21                	jbe    0x41299f
41297e:	ff b5 a8 f6 ff ff    	push   -0x958(%ebp)
412984:	8b 85 b0 f6 ff ff    	mov    -0x950(%ebp),%eax
41298a:	6a 01                	push   $0x1
41298c:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
412993:	50                   	push   %eax
412994:	ff b5 bc f6 ff ff    	push   -0x944(%ebp)
41299a:	e9 1a 03 00 00       	jmp    0x412cb9
41299f:	8b d0                	mov    %eax,%edx
4129a1:	2b d6                	sub    %esi,%edx
4129a3:	3b d9                	cmp    %ecx,%ebx
4129a5:	77 39                	ja     0x4129e0
4129a7:	72 30                	jb     0x4129d9
4129a9:	8d 4b ff             	lea    -0x1(%ebx),%ecx
4129ac:	3b cf                	cmp    %edi,%ecx
4129ae:	74 30                	je     0x4129e0
4129b0:	8b 84 8d 90 fa ff ff 	mov    -0x570(%ebp,%ecx,4),%eax
4129b7:	3b 84 8d 60 fc ff ff 	cmp    -0x3a0(%ebp,%ecx,4),%eax
4129be:	75 05                	jne    0x4129c5
4129c0:	49                   	dec    %ecx
4129c1:	3b cf                	cmp    %edi,%ecx
4129c3:	75 eb                	jne    0x4129b0
4129c5:	3b cf                	cmp    %edi,%ecx
4129c7:	74 17                	je     0x4129e0
4129c9:	8b 84 8d 90 fa ff ff 	mov    -0x570(%ebp,%ecx,4),%eax
4129d0:	3b 84 8d 60 fc ff ff 	cmp    -0x3a0(%ebp,%ecx,4),%eax
4129d7:	77 07                	ja     0x4129e0
4129d9:	46                   	inc    %esi
4129da:	89 b5 d4 f6 ff ff    	mov    %esi,-0x92c(%ebp)
4129e0:	8b f2                	mov    %edx,%esi
4129e2:	33 c0                	xor    %eax,%eax
4129e4:	83 e2 1f             	and    $0x1f,%edx
4129e7:	c1 ee 05             	shr    $0x5,%esi
4129ea:	6a 20                	push   $0x20
4129ec:	59                   	pop    %ecx
4129ed:	2b ca                	sub    %edx,%ecx
4129ef:	89 95 c8 f6 ff ff    	mov    %edx,-0x938(%ebp)
4129f5:	40                   	inc    %eax
4129f6:	89 b5 dc f6 ff ff    	mov    %esi,-0x924(%ebp)
4129fc:	33 d2                	xor    %edx,%edx
4129fe:	89 8d b8 f6 ff ff    	mov    %ecx,-0x948(%ebp)
412a04:	e8 c7 39 01 00       	call   0x4263d0
412a09:	8b 8c 9d 8c fa ff ff 	mov    -0x574(%ebp,%ebx,4),%ecx
412a10:	48                   	dec    %eax
412a11:	0f bd c9             	bsr    %ecx,%ecx
412a14:	89 85 b4 f6 ff ff    	mov    %eax,-0x94c(%ebp)
412a1a:	f7 d0                	not    %eax
412a1c:	89 85 cc f6 ff ff    	mov    %eax,-0x934(%ebp)
412a22:	74 05                	je     0x412a29
412a24:	8d 41 01             	lea    0x1(%ecx),%eax
412a27:	eb 02                	jmp    0x412a2b
412a29:	33 c0                	xor    %eax,%eax
412a2b:	6a 20                	push   $0x20
412a2d:	59                   	pop    %ecx
412a2e:	2b c8                	sub    %eax,%ecx
412a30:	8d 14 1e             	lea    (%esi,%ebx,1),%edx
412a33:	39 8d c8 f6 ff ff    	cmp    %ecx,-0x938(%ebp)
412a39:	89 95 d0 f6 ff ff    	mov    %edx,-0x930(%ebp)
412a3f:	0f 97 c0             	seta   %al
412a42:	83 fa 73             	cmp    $0x73,%edx
412a45:	88 85 c3 f6 ff ff    	mov    %al,-0x93d(%ebp)
412a4b:	0f 97 c1             	seta   %cl
412a4e:	83 fa 73             	cmp    $0x73,%edx
412a51:	75 08                	jne    0x412a5b
412a53:	84 c0                	test   %al,%al
412a55:	74 04                	je     0x412a5b
412a57:	b0 01                	mov    $0x1,%al
412a59:	eb 02                	jmp    0x412a5d
412a5b:	32 c0                	xor    %al,%al
412a5d:	84 c9                	test   %cl,%cl
412a5f:	0f 85 e4 00 00 00    	jne    0x412b49
412a65:	84 c0                	test   %al,%al
412a67:	0f 85 dc 00 00 00    	jne    0x412b49
412a6d:	83 fa 72             	cmp    $0x72,%edx
412a70:	72 09                	jb     0x412a7b
412a72:	6a 72                	push   $0x72
412a74:	5a                   	pop    %edx
412a75:	89 95 d0 f6 ff ff    	mov    %edx,-0x930(%ebp)
412a7b:	8b ca                	mov    %edx,%ecx
412a7d:	89 8d d8 f6 ff ff    	mov    %ecx,-0x928(%ebp)
412a83:	3b d7                	cmp    %edi,%edx
412a85:	0f 84 8f 00 00 00    	je     0x412b1a
412a8b:	8b 85 dc f6 ff ff    	mov    -0x924(%ebp),%eax
412a91:	8b f2                	mov    %edx,%esi
412a93:	2b f0                	sub    %eax,%esi
412a95:	8d 95 90 fa ff ff    	lea    -0x570(%ebp),%edx
412a9b:	8d 14 b2             	lea    (%edx,%esi,4),%edx
412a9e:	3b c8                	cmp    %eax,%ecx
412aa0:	72 6c                	jb     0x412b0e
412aa2:	3b f3                	cmp    %ebx,%esi
412aa4:	73 04                	jae    0x412aaa
412aa6:	8b 02                	mov    (%edx),%eax
412aa8:	eb 02                	jmp    0x412aac
412aaa:	33 c0                	xor    %eax,%eax
412aac:	89 85 c4 f6 ff ff    	mov    %eax,-0x93c(%ebp)
412ab2:	8d 46 ff             	lea    -0x1(%esi),%eax
412ab5:	3b c3                	cmp    %ebx,%eax
412ab7:	73 05                	jae    0x412abe
412ab9:	8b 42 fc             	mov    -0x4(%edx),%eax
412abc:	eb 02                	jmp    0x412ac0
412abe:	33 c0                	xor    %eax,%eax
412ac0:	23 85 cc f6 ff ff    	and    -0x934(%ebp),%eax
412ac6:	83 ea 04             	sub    $0x4,%edx
412ac9:	8b 8d b8 f6 ff ff    	mov    -0x948(%ebp),%ecx
412acf:	8b 9d c4 f6 ff ff    	mov    -0x93c(%ebp),%ebx
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