547a9f:	89 7c f3 04          	mov    %edi,0x4(%ebx,%esi,8)
547aa3:	e9 6e ae ff ff       	jmp    0x542916
547aa8:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
547aae:	52                   	push   %edx
547aaf:	51                   	push   %ecx
547ab0:	8b 42 04             	mov    0x4(%edx),%eax
547ab3:	8d 34 80             	lea    (%eax,%eax,4),%esi
547ab6:	8b 42 0c             	mov    0xc(%edx),%eax
547ab9:	8d 1c 80             	lea    (%eax,%eax,4),%ebx
547abc:	e8 cf 45 fc ff       	call   0x50c090
547ac1:	8b 95 8c fe ff ff    	mov    -0x174(%ebp),%edx
547ac7:	83 c4 08             	add    $0x8,%esp
547aca:	8b f8                	mov    %eax,%edi
547acc:	8b 4c f2 04          	mov    0x4(%edx,%esi,8),%ecx
547ad0:	8b 04 f2             	mov    (%edx,%esi,8),%eax
547ad3:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
547ad9:	89 8d e8 fd ff ff    	mov    %ecx,-0x218(%ebp)
547adf:	85 c9                	test   %ecx,%ecx
547ae1:	7c 74                	jl     0x547b57
547ae3:	7f 04                	jg     0x547ae9
547ae5:	85 c0                	test   %eax,%eax
547ae7:	74 6e                	je     0x547b57
547ae9:	8b 4c da 04          	mov    0x4(%edx,%ebx,8),%ecx
547aed:	8b 04 da             	mov    (%edx,%ebx,8),%eax
547af0:	85 c9                	test   %ecx,%ecx
547af2:	7c 06                	jl     0x547afa
547af4:	7f 1b                	jg     0x547b11
547af6:	85 c0                	test   %eax,%eax
547af8:	75 17                	jne    0x547b11
547afa:	0f 57 c0             	xorps  %xmm0,%xmm0
547afd:	66 0f 13 85 74 fe ff 	movlpd %xmm0,-0x18c(%ebp)
547b04:	ff
547b05:	8b 8d 78 fe ff ff    	mov    -0x188(%ebp),%ecx
547b0b:	8b 85 74 fe ff ff    	mov    -0x18c(%ebp),%eax
547b11:	51                   	push   %ecx
547b12:	50                   	push   %eax
547b13:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
547b19:	50                   	push   %eax
547b1a:	e8 21 02 fd ff       	call   0x517d40
547b1f:	83 c4 0c             	add    $0xc,%esp
547b22:	85 c0                	test   %eax,%eax
547b24:	75 31                	jne    0x547b57
547b26:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
547b2c:	89 07                	mov    %eax,(%edi)
547b2e:	8b 85 e8 fd ff ff    	mov    -0x218(%ebp),%eax
547b34:	89 47 04             	mov    %eax,0x4(%edi)
547b37:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
547b3d:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
547b43:	83 c6 14             	add    $0x14,%esi
547b46:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
547b4c:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
547b52:	e9 5d ad ff ff       	jmp    0x5428b4
547b57:	c7 07 ff ff ff ff    	movl   $0xffffffff,(%edi)
547b5d:	c7 47 04 ff ff ff ff 	movl   $0xffffffff,0x4(%edi)
547b64:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
547b6a:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
547b70:	83 c6 14             	add    $0x14,%esi
547b73:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
547b79:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
547b7f:	e9 30 ad ff ff       	jmp    0x5428b4
547b84:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
547b8a:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
547b90:	8b 42 04             	mov    0x4(%edx),%eax
547b93:	8d 34 80             	lea    (%eax,%eax,4),%esi
547b96:	8b 0c f3             	mov    (%ebx,%esi,8),%ecx
547b99:	8b c1                	mov    %ecx,%eax
547b9b:	8b 54 f3 04          	mov    0x4(%ebx,%esi,8),%edx
547b9f:	0b c2                	or     %edx,%eax
547ba1:	0f 84 bf af ff ff    	je     0x542b66
547ba7:	85 d2                	test   %edx,%edx
547ba9:	0f 8c 67 ad ff ff    	jl     0x542916
547baf:	7f 08                	jg     0x547bb9
547bb1:	85 c9                	test   %ecx,%ecx
547bb3:	0f 84 5d ad ff ff    	je     0x542916
547bb9:	83 e9 01             	sub    $0x1,%ecx
547bbc:	89 0c f3             	mov    %ecx,(%ebx,%esi,8)
547bbf:	83 da 00             	sbb    $0x0,%edx
547bc2:	89 54 f3 04          	mov    %edx,0x4(%ebx,%esi,8)
547bc6:	e9 4b ad ff ff       	jmp    0x542916
547bcb:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
547bd1:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
547bd7:	8b 42 04             	mov    0x4(%edx),%eax
547bda:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
547bdd:	8b 54 cb 04          	mov    0x4(%ebx,%ecx,8),%edx
547be1:	8b 04 cb             	mov    (%ebx,%ecx,8),%eax
547be4:	81 fa 00 00 00 80    	cmp    $0x80000000,%edx
547bea:	7c 13                	jl     0x547bff
547bec:	7f 04                	jg     0x547bf2
547bee:	85 c0                	test   %eax,%eax
547bf0:	74 0d                	je     0x547bff
547bf2:	83 e8 01             	sub    $0x1,%eax
547bf5:	89 04 cb             	mov    %eax,(%ebx,%ecx,8)
547bf8:	83 da 00             	sbb    $0x0,%edx
547bfb:	89 54 cb 04          	mov    %edx,0x4(%ebx,%ecx,8)
547bff:	8b 04 cb             	mov    (%ebx,%ecx,8),%eax
547c02:	0b 44 cb 04          	or     0x4(%ebx,%ecx,8),%eax
547c06:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
547c0c:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
547c12:	0f 84 0a ad ff ff    	je     0x542922
547c18:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
547c1e:	83 c6 14             	add    $0x14,%esi
547c21:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
547c27:	e9 88 ac ff ff       	jmp    0x5428b4
547c2c:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
547c32:	6a 00                	push   $0x0
547c34:	0f b7 5a 02          	movzwl 0x2(%edx),%ebx
547c38:	8d 04 9d 44 00 00 00 	lea    0x44(,%ebx,4),%eax
547c3f:	50                   	push   %eax
547c40:	57                   	push   %edi
547c41:	e8 9a 97 fd ff       	call   0x5213e0
547c46:	8b f0                	mov    %eax,%esi
547c48:	83 c4 0c             	add    $0xc,%esp
547c4b:	85 f6                	test   %esi,%esi
547c4d:	0f 84 81 13 00 00    	je     0x548fd4
547c53:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
547c5a:	8d 4b 07             	lea    0x7(%ebx),%ecx
547c5d:	8d 0c 8e             	lea    (%esi,%ecx,4),%ecx
547c60:	b8 01 00 00 00       	mov    $0x1,%eax
547c65:	89 0e                	mov    %ecx,(%esi)
547c67:	66 89 41 08          	mov    %ax,0x8(%ecx)
547c6b:	89 79 20             	mov    %edi,0x20(%ecx)
547c6e:	c7 41 18 00 00 00 00 	movl   $0x0,0x18(%ecx)
547c75:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
547c7b:	8b 41 10             	mov    0x10(%ecx),%eax
547c7e:	2b 8d 64 fe ff ff    	sub    -0x19c(%ebp),%ecx
547c84:	89 46 04             	mov    %eax,0x4(%esi)
547c87:	b8 67 66 66 66       	mov    $0x66666667,%eax
547c8c:	f7 e9                	imul   %ecx
547c8e:	c6 46 18 00          	movb   $0x0,0x18(%esi)
547c92:	c1 fa 03             	sar    $0x3,%edx
547c95:	8b c2                	mov    %edx,%eax
547c97:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
547c9e:	c1 e8 1f             	shr    $0x1f,%eax
547ca1:	03 c2                	add    %edx,%eax
547ca3:	88 5e 19             	mov    %bl,0x19(%esi)
547ca6:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
547cac:	89 46 10             	mov    %eax,0x10(%esi)
547caf:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
547cb5:	89 46 0c             	mov    %eax,0xc(%esi)
547cb8:	66 c7 02 9b f0       	movw   $0xf09b,(%edx)
547cbd:	89 72 10             	mov    %esi,0x10(%edx)
547cc0:	eb 06                	jmp    0x547cc8
547cc2:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
547cc8:	8b 42 0c             	mov    0xc(%edx),%eax
547ccb:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
547cd1:	8b 72 10             	mov    0x10(%edx),%esi
547cd4:	8d 04 80             	lea    (%eax,%eax,4),%eax
547cd7:	8d 1c c1             	lea    (%ecx,%eax,8),%ebx
547cda:	89 9d 78 fe ff ff    	mov    %ebx,-0x188(%ebp)
547ce0:	39 5e 08             	cmp    %ebx,0x8(%esi)
547ce3:	74 46                	je     0x547d2b
547ce5:	0f b6 4e 19          	movzbl 0x19(%esi),%ecx
547ce9:	83 e9 01             	sub    $0x1,%ecx
547cec:	89 5e 08             	mov    %ebx,0x8(%esi)
547cef:	78 3a                	js     0x547d2b
547cf1:	8b bd 98 fe ff ff    	mov    -0x168(%ebp),%edi
547cf7:	8d 51 07             	lea    0x7(%ecx),%edx
547cfa:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
547d00:	8d 14 96             	lea    (%esi,%edx,4),%edx
547d03:	8b 47 08             	mov    0x8(%edi),%eax
547d06:	8d 52 fc             	lea    -0x4(%edx),%edx
547d09:	03 c1                	add    %ecx,%eax
547d0b:	83 e9 01             	sub    $0x1,%ecx
547d0e:	8d 04 80             	lea    (%eax,%eax,4),%eax
547d11:	8d 04 c3             	lea    (%ebx,%eax,8),%eax
547d14:	89 42 04             	mov    %eax,0x4(%edx)
547d17:	79 ea                	jns    0x547d03
547d19:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
547d1f:	8b 9d 78 fe ff ff    	mov    -0x188(%ebp),%ebx
547d25:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
547d2b:	ff 43 0c             	incl   0xc(%ebx)
547d2e:	8d 46 1c             	lea    0x1c(%esi),%eax
547d31:	83 7a 04 00          	cmpl   $0x0,0x4(%edx)
547d35:	8b 4e 04             	mov    0x4(%esi),%ecx
547d38:	50                   	push   %eax
547d39:	0f b6 46 19          	movzbl 0x19(%esi),%eax
547d3d:	50                   	push   %eax
547d3e:	56                   	push   %esi
547d3f:	74 05                	je     0x547d46
547d41:	8b 41 1c             	mov    0x1c(%ecx),%eax
547d44:	eb 03                	jmp    0x547d49
547d46:	8b 41 10             	mov    0x10(%ecx),%eax
547d49:	ff d0                	call   *%eax
547d4b:	8b 46 14             	mov    0x14(%esi),%eax
547d4e:	83 c4 0c             	add    $0xc,%esp
547d51:	85 c0                	test   %eax,%eax
547d53:	0f 84 0d ae ff ff    	je     0x542b66
547d59:	7e 24                	jle    0x547d7f
547d5b:	ff 36                	push   (%esi)
547d5d:	e8 de a8 f9 ff       	call   0x4e2640
547d62:	50                   	push   %eax
547d63:	68 04 d0 6a 00       	push   $0x6ad004
547d68:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
547d6e:	e8 3d aa ff ff       	call   0x5427b0
547d73:	8b 46 14             	mov    0x14(%esi),%eax
547d76:	83 c4 10             	add    $0x10,%esp
547d79:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
547d7f:	80 7e 18 00          	cmpb   $0x0,0x18(%esi)
547d83:	74 2a                	je     0x547daf
547d85:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
547d8b:	8b 40 f0             	mov    -0x10(%eax),%eax
547d8e:	85 c0                	test   %eax,%eax
547d90:	74 19                	je     0x547dab
547d92:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
547d98:	8d 04 80             	lea    (%eax,%eax,4),%eax
547d9b:	6a 00                	push   $0x0
547d9d:	6a 01                	push   $0x1
547d9f:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
547da2:	50                   	push   %eax
547da3:	e8 68 3c 00 00       	call   0x54ba10
547da8:	83 c4 0c             	add    $0xc,%esp
547dab:	c6 46 18 00          	movb   $0x0,0x18(%esi)
547daf:	ff 36                	push   (%esi)
547db1:	e8 ba 3b 00 00       	call   0x54b970
547db6:	8b 06                	mov    (%esi),%eax
547db8:	b9 01 00 00 00       	mov    $0x1,%ecx
547dbd:	83 c4 04             	add    $0x4,%esp
547dc0:	66 89 48 08          	mov    %cx,0x8(%eax)
547dc4:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
547dca:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
547dd1:	e9 33 bb ff ff       	jmp    0x543909
547dd6:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
547ddc:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
547de2:	8b 42 04             	mov    0x4(%edx),%eax
547de5:	ff 72 10             	push   0x10(%edx)
547de8:	8d 04 80             	lea    (%eax,%eax,4),%eax
547deb:	8d 34 c3             	lea    (%ebx,%eax,8),%esi
547dee:	8b 42 0c             	mov    0xc(%edx),%eax
547df1:	85 c0                	test   %eax,%eax
547df3:	74 23                	je     0x547e18
547df5:	8d 04 80             	lea    (%eax,%eax,4),%eax
547df8:	8d 04 c3             	lea    (%ebx,%eax,8),%eax
547dfb:	50                   	push   %eax
547dfc:	56                   	push   %esi
547dfd:	e8 7e 33 00 00       	call   0x54b180
547e02:	8b c8                	mov    %eax,%ecx
547e04:	83 c4 0c             	add    $0xc,%esp
547e07:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
547e0d:	8b 40 0c             	mov    0xc(%eax),%eax
547e10:	8d 04 80             	lea    (%eax,%eax,4),%eax
547e13:	8d 34 c3             	lea    (%ebx,%eax,8),%esi
547e16:	eb 0b                	jmp    0x547e23
547e18:	56                   	push   %esi
547e19:	e8 c2 35 00 00       	call   0x54b3e0
547e1e:	83 c4 08             	add    $0x8,%esp
547e21:	8b c8                	mov    %eax,%ecx
547e23:	89 8d 94 fe ff ff    	mov    %ecx,-0x16c(%ebp)
547e29:	85 c9                	test   %ecx,%ecx
547e2b:	0f 85 4a 11 00 00    	jne    0x548f7b
547e31:	0f b6 85 60 fe ff ff 	movzbl -0x1a0(%ebp),%eax
547e38:	50                   	push   %eax
547e39:	56                   	push   %esi
547e3a:	e8 81 a0 ff ff       	call   0x541ec0
547e3f:	56                   	push   %esi
547e40:	e8 cb 3f 00 00       	call   0x54be10
547e45:	83 c4 0c             	add    $0xc,%esp
547e48:	85 c0                	test   %eax,%eax
547e4a:	0f 84 16 ad ff ff    	je     0x542b66
547e50:	68 00 88 6b 00       	push   $0x6b8800
547e55:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
547e5b:	e8 50 a9 ff ff       	call   0x5427b0
547e60:	83 c4 08             	add    $0x8,%esp
547e63:	b8 12 00 00 00       	mov    $0x12,%eax
547e68:	e9 91 10 00 00       	jmp    0x548efe
547e6d:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
547e73:	8d 45 f8             	lea    -0x8(%ebp),%eax
547e76:	50                   	push   %eax
547e77:	8d 45 f4             	lea    -0xc(%ebp),%eax
547e7a:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
547e81:	50                   	push   %eax
547e82:	ff 72 08             	push   0x8(%edx)
547e85:	c7 45 f8 ff ff ff ff 	movl   $0xffffffff,-0x8(%ebp)
547e8c:	ff 72 04             	push   0x4(%edx)
547e8f:	c7 45 f4 ff ff ff ff 	movl   $0xffffffff,-0xc(%ebp)
547e96:	57                   	push   %edi
547e97:	e8 34 62 fd ff       	call   0x51e0d0
547e9c:	83 c4 14             	add    $0x14,%esp
547e9f:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
547ea5:	85 c0                	test   %eax,%eax
547ea7:	74 1a                	je     0x547ec3
547ea9:	83 f8 05             	cmp    $0x5,%eax
547eac:	0f 85 4c 10 00 00    	jne    0x548efe
547eb2:	c7 85 94 fe ff ff 00 	movl   $0x0,-0x16c(%ebp)
547eb9:	00 00 00
547ebc:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
547ec3:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
547ec9:	33 f6                	xor    %esi,%esi
547ecb:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
547ed1:	8b 40 0c             	mov    0xc(%eax),%eax
547ed4:	8d 04 80             	lea    (%eax,%eax,4),%eax
547ed7:	8d 3c c1             	lea    (%ecx,%eax,8),%edi
547eda:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
547ee0:	8b 44 b5 f0          	mov    -0x10(%ebp,%esi,4),%eax
547ee4:	99                   	cltd
547ee5:	52                   	push   %edx
547ee6:	50                   	push   %eax
547ee7:	57                   	push   %edi
547ee8:	e8 23 3b 00 00       	call   0x54ba10
547eed:	46                   	inc    %esi
547eee:	83 c4 0c             	add    $0xc,%esp
547ef1:	83 c7 28             	add    $0x28,%edi
547ef4:	83 fe 03             	cmp    $0x3,%esi
547ef7:	7c e7                	jl     0x547ee0
547ef9:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
547eff:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
547f05:	83 c6 14             	add    $0x14,%esi
547f08:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
547f0e:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
547f14:	e9 9b a9 ff ff       	jmp    0x5428b4
547f19:	8b 9d 98 fe ff ff    	mov    -0x168(%ebp),%ebx
547f1f:	53                   	push   %ebx
547f20:	51                   	push   %ecx
547f21:	e8 6a 41 fc ff       	call   0x50c090
547f26:	8b 53 04             	mov    0x4(%ebx),%edx
547f29:	83 c4 08             	add    $0x8,%esp
547f2c:	8b 4f 10             	mov    0x10(%edi),%ecx
547f2f:	c1 e2 04             	shl    $0x4,%edx
547f32:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
547f38:	8b 43 0c             	mov    0xc(%ebx),%eax
547f3b:	83 f8 ff             	cmp    $0xffffffff,%eax
547f3e:	8b 4c 0a 04          	mov    0x4(%edx,%ecx,1),%ecx
547f42:	89 8d 70 fe ff ff    	mov    %ecx,-0x190(%ebp)
547f48:	8b 49 04             	mov    0x4(%ecx),%ecx
547f4b:	8b 19                	mov    (%ecx),%ebx
547f4d:	0f b6 4b 05          	movzbl 0x5(%ebx),%ecx
547f51:	0f 44 c1             	cmove  %ecx,%eax
547f54:	89 8d 84 fe ff ff    	mov    %ecx,-0x17c(%ebp)
547f5a:	80 7b 10 03          	cmpb   $0x3,0x10(%ebx)
547f5e:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
547f64:	72 04                	jb     0x547f6a
547f66:	33 c0                	xor    %eax,%eax
547f68:	eb 1f                	jmp    0x547f89
547f6a:	8b 43 40             	mov    0x40(%ebx),%eax
547f6d:	83 38 00             	cmpl   $0x0,(%eax)
547f70:	74 12                	je     0x547f84
547f72:	83 7b 4c 00          	cmpl   $0x0,0x4c(%ebx)
547f76:	7c 0c                	jl     0x547f84
547f78:	7f 06                	jg     0x547f80
547f7a:	83 7b 48 00          	cmpl   $0x0,0x48(%ebx)
547f7e:	76 04                	jbe    0x547f84
547f80:	33 c0                	xor    %eax,%eax
547f82:	eb 05                	jmp    0x547f89
547f84:	b8 01 00 00 00       	mov    $0x1,%eax
547f89:	85 c0                	test   %eax,%eax
547f8b:	8b f1                	mov    %ecx,%esi
547f8d:	b8 98 26 6b 00       	mov    $0x6b2698,%eax
547f92:	0f 45 b5 78 fe ff ff 	cmovne -0x188(%ebp),%esi
547f99:	80 7b 0f 00          	cmpb   $0x0,0xf(%ebx)
547f9d:	75 06                	jne    0x547fa5
547f9f:	8b 83 a8 00 00 00    	mov    0xa8(%ebx),%eax