45195d:	73 05                	jae    0x451964
45195f:	8b 42 fc             	mov    -0x4(%edx),%eax
451962:	eb 02                	jmp    0x451966
451964:	33 c0                	xor    %eax,%eax
451966:	23 85 cc f6 ff ff    	and    -0x934(%ebp),%eax
45196c:	83 ea 04             	sub    $0x4,%edx
45196f:	8b 8d b8 f6 ff ff    	mov    -0x948(%ebp),%ecx
451975:	8b 9d c4 f6 ff ff    	mov    -0x93c(%ebp),%ebx
45197b:	23 9d b4 f6 ff ff    	and    -0x94c(%ebp),%ebx
451981:	d3 e8                	shr    %cl,%eax
451983:	8b 8d c8 f6 ff ff    	mov    -0x938(%ebp),%ecx
451989:	d3 e3                	shl    %cl,%ebx
45198b:	8b 8d d4 f6 ff ff    	mov    -0x92c(%ebp),%ecx
451991:	0b c3                	or     %ebx,%eax
451993:	89 84 8d 90 fa ff ff 	mov    %eax,-0x570(%ebp,%ecx,4)
45199a:	49                   	dec    %ecx
45199b:	4e                   	dec    %esi
45199c:	89 8d d4 f6 ff ff    	mov    %ecx,-0x92c(%ebp)
4519a2:	3b cf                	cmp    %edi,%ecx
4519a4:	74 0e                	je     0x4519b4
4519a6:	8b 9d 8c fa ff ff    	mov    -0x574(%ebp),%ebx
4519ac:	8b 85 dc f6 ff ff    	mov    -0x924(%ebp),%eax
4519b2:	eb 90                	jmp    0x451944
4519b4:	8b 95 d0 f6 ff ff    	mov    -0x930(%ebp),%edx
4519ba:	8b b5 dc f6 ff ff    	mov    -0x924(%ebp),%esi
4519c0:	85 f6                	test   %esi,%esi
4519c2:	74 0f                	je     0x4519d3
4519c4:	33 c0                	xor    %eax,%eax
4519c6:	8d bd 90 fa ff ff    	lea    -0x570(%ebp),%edi
4519cc:	8b ce                	mov    %esi,%ecx
4519ce:	f3 ab                	rep stos %eax,%es:(%edi)
4519d0:	83 cf ff             	or     $0xffffffff,%edi
4519d3:	80 bd c3 f6 ff ff 00 	cmpb   $0x0,-0x93d(%ebp)
4519da:	8d 5a 01             	lea    0x1(%edx),%ebx
4519dd:	8b 8d e0 f6 ff ff    	mov    -0x920(%ebp),%ecx
4519e3:	8b b5 d8 f6 ff ff    	mov    -0x928(%ebp),%esi
4519e9:	75 02                	jne    0x4519ed
4519eb:	8b da                	mov    %edx,%ebx
4519ed:	89 9d 8c fa ff ff    	mov    %ebx,-0x574(%ebp)
4519f3:	eb 3c                	jmp    0x451a31
4519f5:	33 c0                	xor    %eax,%eax
4519f7:	50                   	push   %eax
4519f8:	89 85 d4 f4 ff ff    	mov    %eax,-0xb2c(%ebp)
4519fe:	89 85 8c fa ff ff    	mov    %eax,-0x574(%ebp)
451a04:	8d 85 d8 f4 ff ff    	lea    -0xb28(%ebp),%eax
451a0a:	50                   	push   %eax
451a0b:	8d 85 90 fa ff ff    	lea    -0x570(%ebp),%eax
451a11:	68 cc 01 00 00       	push   $0x1cc
451a16:	50                   	push   %eax
451a17:	e8 86 1c 00 00       	call   0x4536a2
451a1c:	8b 9d 8c fa ff ff    	mov    -0x574(%ebp),%ebx
451a22:	83 c4 10             	add    $0x10,%esp
451a25:	8b 8d e0 f6 ff ff    	mov    -0x920(%ebp),%ecx
451a2b:	8b b5 d8 f6 ff ff    	mov    -0x928(%ebp),%esi
451a31:	8b 95 b0 f6 ff ff    	mov    -0x950(%ebp),%edx
451a37:	8b 85 bc f6 ff ff    	mov    -0x944(%ebp),%eax
451a3d:	2b d0                	sub    %eax,%edx
451a3f:	89 95 b0 f6 ff ff    	mov    %edx,-0x950(%ebp)
451a45:	85 c0                	test   %eax,%eax
451a47:	74 2b                	je     0x451a74
451a49:	8b c2                	mov    %edx,%eax
451a4b:	3b f0                	cmp    %eax,%esi
451a4d:	76 21                	jbe    0x451a70
451a4f:	ff b5 a8 f6 ff ff    	push   -0x958(%ebp)
451a55:	8b 85 ac f6 ff ff    	mov    -0x954(%ebp),%eax
451a5b:	6a 01                	push   $0x1
451a5d:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
451a64:	50                   	push   %eax
451a65:	ff b5 bc f6 ff ff    	push   -0x944(%ebp)
451a6b:	e9 1a 03 00 00       	jmp    0x451d8a
451a70:	8b d0                	mov    %eax,%edx
451a72:	2b d6                	sub    %esi,%edx
451a74:	3b d9                	cmp    %ecx,%ebx
451a76:	77 39                	ja     0x451ab1
451a78:	72 30                	jb     0x451aaa
451a7a:	8d 4b ff             	lea    -0x1(%ebx),%ecx
451a7d:	3b cf                	cmp    %edi,%ecx
451a7f:	74 30                	je     0x451ab1
451a81:	8b 84 8d 90 fa ff ff 	mov    -0x570(%ebp,%ecx,4),%eax
451a88:	3b 84 8d 60 fc ff ff 	cmp    -0x3a0(%ebp,%ecx,4),%eax
451a8f:	75 05                	jne    0x451a96
451a91:	49                   	dec    %ecx
451a92:	3b cf                	cmp    %edi,%ecx
451a94:	75 eb                	jne    0x451a81
451a96:	3b cf                	cmp    %edi,%ecx
451a98:	74 17                	je     0x451ab1
451a9a:	8b 84 8d 90 fa ff ff 	mov    -0x570(%ebp,%ecx,4),%eax
451aa1:	3b 84 8d 60 fc ff ff 	cmp    -0x3a0(%ebp,%ecx,4),%eax
451aa8:	77 07                	ja     0x451ab1
451aaa:	46                   	inc    %esi
451aab:	89 b5 d8 f6 ff ff    	mov    %esi,-0x928(%ebp)
451ab1:	8b f2                	mov    %edx,%esi
451ab3:	33 c0                	xor    %eax,%eax
451ab5:	83 e2 1f             	and    $0x1f,%edx
451ab8:	c1 ee 05             	shr    $0x5,%esi
451abb:	6a 20                	push   $0x20
451abd:	59                   	pop    %ecx
451abe:	2b ca                	sub    %edx,%ecx
451ac0:	89 95 c8 f6 ff ff    	mov    %edx,-0x938(%ebp)
451ac6:	40                   	inc    %eax
451ac7:	89 b5 dc f6 ff ff    	mov    %esi,-0x924(%ebp)
451acd:	33 d2                	xor    %edx,%edx
451acf:	89 8d b8 f6 ff ff    	mov    %ecx,-0x948(%ebp)
451ad5:	e8 26 e2 fe ff       	call   0x43fd00
451ada:	8b 8c 9d 8c fa ff ff 	mov    -0x574(%ebp,%ebx,4),%ecx
451ae1:	48                   	dec    %eax
451ae2:	0f bd c9             	bsr    %ecx,%ecx
451ae5:	89 85 b4 f6 ff ff    	mov    %eax,-0x94c(%ebp)
451aeb:	f7 d0                	not    %eax
451aed:	89 85 cc f6 ff ff    	mov    %eax,-0x934(%ebp)
451af3:	74 05                	je     0x451afa
451af5:	8d 41 01             	lea    0x1(%ecx),%eax
451af8:	eb 02                	jmp    0x451afc
451afa:	33 c0                	xor    %eax,%eax
451afc:	6a 20                	push   $0x20
451afe:	59                   	pop    %ecx
451aff:	2b c8                	sub    %eax,%ecx
451b01:	8d 14 1e             	lea    (%esi,%ebx,1),%edx
451b04:	39 8d c8 f6 ff ff    	cmp    %ecx,-0x938(%ebp)
451b0a:	89 95 d0 f6 ff ff    	mov    %edx,-0x930(%ebp)
451b10:	0f 97 c0             	seta   %al
451b13:	83 fa 73             	cmp    $0x73,%edx
451b16:	88 85 c3 f6 ff ff    	mov    %al,-0x93d(%ebp)
451b1c:	0f 97 c1             	seta   %cl
451b1f:	83 fa 73             	cmp    $0x73,%edx
451b22:	75 08                	jne    0x451b2c
451b24:	84 c0                	test   %al,%al
451b26:	74 04                	je     0x451b2c
451b28:	b0 01                	mov    $0x1,%al
451b2a:	eb 02                	jmp    0x451b2e
451b2c:	32 c0                	xor    %al,%al
451b2e:	84 c9                	test   %cl,%cl
451b30:	0f 85 e4 00 00 00    	jne    0x451c1a
451b36:	84 c0                	test   %al,%al
451b38:	0f 85 dc 00 00 00    	jne    0x451c1a
451b3e:	83 fa 72             	cmp    $0x72,%edx
451b41:	72 09                	jb     0x451b4c
451b43:	6a 72                	push   $0x72
451b45:	5a                   	pop    %edx
451b46:	89 95 d0 f6 ff ff    	mov    %edx,-0x930(%ebp)
451b4c:	8b ca                	mov    %edx,%ecx
451b4e:	89 8d d4 f6 ff ff    	mov    %ecx,-0x92c(%ebp)
451b54:	3b d7                	cmp    %edi,%edx
451b56:	0f 84 8f 00 00 00    	je     0x451beb
451b5c:	8b 85 dc f6 ff ff    	mov    -0x924(%ebp),%eax
451b62:	8b f2                	mov    %edx,%esi
451b64:	2b f0                	sub    %eax,%esi
451b66:	8d 95 90 fa ff ff    	lea    -0x570(%ebp),%edx
451b6c:	8d 14 b2             	lea    (%edx,%esi,4),%edx
451b6f:	3b c8                	cmp    %eax,%ecx
451b71:	72 6c                	jb     0x451bdf
451b73:	3b f3                	cmp    %ebx,%esi
451b75:	73 04                	jae    0x451b7b
451b77:	8b 02                	mov    (%edx),%eax
451b79:	eb 02                	jmp    0x451b7d
451b7b:	33 c0                	xor    %eax,%eax
451b7d:	89 85 c4 f6 ff ff    	mov    %eax,-0x93c(%ebp)
451b83:	8d 46 ff             	lea    -0x1(%esi),%eax
451b86:	3b c3                	cmp    %ebx,%eax
451b88:	73 05                	jae    0x451b8f
451b8a:	8b 42 fc             	mov    -0x4(%edx),%eax
451b8d:	eb 02                	jmp    0x451b91
451b8f:	33 c0                	xor    %eax,%eax
451b91:	23 85 cc f6 ff ff    	and    -0x934(%ebp),%eax
451b97:	83 ea 04             	sub    $0x4,%edx
451b9a:	8b 8d b8 f6 ff ff    	mov    -0x948(%ebp),%ecx
451ba0:	8b 9d c4 f6 ff ff    	mov    -0x93c(%ebp),%ebx
451ba6:	23 9d b4 f6 ff ff    	and    -0x94c(%ebp),%ebx
451bac:	d3 e8                	shr    %cl,%eax
451bae:	8b 8d c8 f6 ff ff    	mov    -0x938(%ebp),%ecx
451bb4:	d3 e3                	shl    %cl,%ebx
451bb6:	8b 8d d4 f6 ff ff    	mov    -0x92c(%ebp),%ecx
451bbc:	0b c3                	or     %ebx,%eax
451bbe:	89 84 8d 90 fa ff ff 	mov    %eax,-0x570(%ebp,%ecx,4)
451bc5:	49                   	dec    %ecx
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