542ae3:	ff 8b d0 00 00 00    	decl   0xd0(%ebx)
542ae9:	89 83 c8 00 00 00    	mov    %eax,0xc8(%ebx)
542aef:	8b 43 2c             	mov    0x2c(%ebx),%eax
542af2:	01 47 68             	add    %eax,0x68(%edi)
542af5:	51                   	push   %ecx
542af6:	89 47 64             	mov    %eax,0x64(%edi)
542af9:	e8 02 74 00 00       	call   0x549f00
542afe:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
542b04:	83 c4 04             	add    $0x4,%esp
542b07:	83 79 08 04          	cmpl   $0x4,0x8(%ecx)
542b0b:	75 0b                	jne    0x542b18
542b0d:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
542b10:	8b 43 68             	mov    0x68(%ebx),%eax
542b13:	8b 44 88 08          	mov    0x8(%eax,%ecx,4),%eax
542b17:	48                   	dec    %eax
542b18:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542b1e:	8d 04 80             	lea    (%eax,%eax,4),%eax
542b21:	8b cb                	mov    %ebx,%ecx
542b23:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542b29:	8b 71 68             	mov    0x68(%ecx),%esi
542b2c:	8b 51 58             	mov    0x58(%ecx),%edx
542b2f:	89 b5 64 fe ff ff    	mov    %esi,-0x19c(%ebp)
542b35:	89 95 8c fe ff ff    	mov    %edx,-0x174(%ebp)
542b3b:	8d 34 86             	lea    (%esi,%eax,4),%esi
542b3e:	83 c6 14             	add    $0x14,%esi
542b41:	e9 6e fd ff ff       	jmp    0x5428b4
542b46:	ff b5 98 fe ff ff    	push   -0x168(%ebp)
542b4c:	51                   	push   %ecx
542b4d:	e8 3e 95 fc ff       	call   0x50c090
542b52:	8b c8                	mov    %eax,%ecx
542b54:	83 c4 08             	add    $0x8,%esp
542b57:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
542b5d:	8b 40 04             	mov    0x4(%eax),%eax
542b60:	99                   	cltd
542b61:	89 01                	mov    %eax,(%ecx)
542b63:	89 51 04             	mov    %edx,0x4(%ecx)
542b66:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
542b6c:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542b72:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542b78:	83 c6 14             	add    $0x14,%esi
542b7b:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542b81:	e9 2e fd ff ff       	jmp    0x5428b4
542b86:	ff b5 98 fe ff ff    	push   -0x168(%ebp)
542b8c:	51                   	push   %ecx
542b8d:	e8 fe 94 fc ff       	call   0x50c090
542b92:	8b d0                	mov    %eax,%edx
542b94:	83 c4 08             	add    $0x8,%esp
542b97:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
542b9d:	8b 48 10             	mov    0x10(%eax),%ecx
542ba0:	8b 01                	mov    (%ecx),%eax
542ba2:	89 02                	mov    %eax,(%edx)
542ba4:	8b 41 04             	mov    0x4(%ecx),%eax
542ba7:	89 42 04             	mov    %eax,0x4(%edx)
542baa:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
542bb0:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542bb6:	83 c6 14             	add    $0x14,%esi
542bb9:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542bbf:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542bc5:	e9 ea fc ff ff       	jmp    0x5428b4
542bca:	ff b5 98 fe ff ff    	push   -0x168(%ebp)
542bd0:	51                   	push   %ecx
542bd1:	e8 ba 94 fc ff       	call   0x50c090
542bd6:	8b c8                	mov    %eax,%ecx
542bd8:	83 c4 08             	add    $0x8,%esp
542bdb:	b8 08 00 00 00       	mov    $0x8,%eax
542be0:	66 89 41 08          	mov    %ax,0x8(%ecx)
542be4:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
542bea:	8b 40 10             	mov    0x10(%eax),%eax
542bed:	f2 0f 10 00          	movsd  (%eax),%xmm0
542bf1:	f2 0f 11 01          	movsd  %xmm0,(%ecx)
542bf5:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
542bfb:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542c01:	83 c6 14             	add    $0x14,%esi
542c04:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542c0a:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542c10:	e9 9f fc ff ff       	jmp    0x5428b4
542c15:	8b 9d 98 fe ff ff    	mov    -0x168(%ebp),%ebx
542c1b:	53                   	push   %ebx
542c1c:	51                   	push   %ecx
542c1d:	e8 6e 94 fc ff       	call   0x50c090
542c22:	8b 5b 10             	mov    0x10(%ebx),%ebx
542c25:	8b f0                	mov    %eax,%esi
542c27:	53                   	push   %ebx
542c28:	e8 63 b0 ff ff       	call   0x53dc90
542c2d:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
542c33:	83 c4 0c             	add    $0xc,%esp
542c36:	80 bd 60 fe ff ff 01 	cmpb   $0x1,-0x1a0(%ebp)
542c3d:	89 42 04             	mov    %eax,0x4(%edx)
542c40:	74 76                	je     0x542cb8
542c42:	6a 00                	push   $0x0
542c44:	6a 01                	push   $0x1
542c46:	6a ff                	push   $0xffffffff
542c48:	53                   	push   %ebx
542c49:	56                   	push   %esi
542c4a:	e8 91 8e 00 00       	call   0x54bae0
542c4f:	83 c4 14             	add    $0x14,%esp
542c52:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
542c58:	85 c0                	test   %eax,%eax
542c5a:	0f 85 f0 51 00 00    	jne    0x547e50
542c60:	0f b6 85 60 fe ff ff 	movzbl -0x1a0(%ebp),%eax
542c67:	50                   	push   %eax
542c68:	56                   	push   %esi
542c69:	e8 52 f2 ff ff       	call   0x541ec0
542c6e:	83 c4 08             	add    $0x8,%esp
542c71:	85 c0                	test   %eax,%eax
542c73:	0f 85 5b 63 00 00    	jne    0x548fd4
542c79:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
542c7f:	89 46 18             	mov    %eax,0x18(%esi)
542c82:	b8 00 08 00 00       	mov    $0x800,%eax
542c87:	66 09 46 08          	or     %ax,0x8(%esi)
542c8b:	80 7a 01 f9          	cmpb   $0xf9,0x1(%edx)
542c8f:	75 17                	jne    0x542ca8
542c91:	8b 42 10             	mov    0x10(%edx),%eax
542c94:	85 c0                	test   %eax,%eax
542c96:	74 10                	je     0x542ca8
542c98:	50                   	push   %eax
542c99:	57                   	push   %edi
542c9a:	e8 d1 e6 fd ff       	call   0x521370
542c9f:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
542ca5:	83 c4 08             	add    $0x8,%esp
542ca8:	c6 42 01 f9          	movb   $0xf9,0x1(%edx)
542cac:	8b 46 10             	mov    0x10(%esi),%eax
542caf:	89 42 10             	mov    %eax,0x10(%edx)
542cb2:	8b 46 0c             	mov    0xc(%esi),%eax
542cb5:	89 42 04             	mov    %eax,0x4(%edx)
542cb8:	8b 42 04             	mov    0x4(%edx),%eax
542cbb:	3b 47 6c             	cmp    0x6c(%edi),%eax
542cbe:	0f 8f 8c 51 00 00    	jg     0x547e50
542cc4:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542cca:	c6 02 47             	movb   $0x47,(%edx)
542ccd:	eb 06                	jmp    0x542cd5
542ccf:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
542cd5:	52                   	push   %edx
542cd6:	51                   	push   %ecx
542cd7:	e8 b4 93 fc ff       	call   0x50c090
542cdc:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
542ce2:	8b c8                	mov    %eax,%ecx
542ce4:	b8 02 0a 00 00       	mov    $0xa02,%eax
542ce9:	83 c4 08             	add    $0x8,%esp
542cec:	66 89 41 08          	mov    %ax,0x8(%ecx)
542cf0:	8b 42 10             	mov    0x10(%edx),%eax
542cf3:	89 41 10             	mov    %eax,0x10(%ecx)
542cf6:	8b 42 04             	mov    0x4(%edx),%eax
542cf9:	89 41 0c             	mov    %eax,0xc(%ecx)
542cfc:	8a 85 60 fe ff ff    	mov    -0x1a0(%ebp),%al
542d02:	88 41 0a             	mov    %al,0xa(%ecx)
542d05:	8b c2                	mov    %edx,%eax
542d07:	8b 40 0c             	mov    0xc(%eax),%eax
542d0a:	85 c0                	test   %eax,%eax
542d0c:	0f 8e 54 fe ff ff    	jle    0x542b66
542d12:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
542d18:	8d 34 80             	lea    (%eax,%eax,4),%esi
542d1b:	8b c2                	mov    %edx,%eax
542d1d:	0f b7 40 02          	movzwl 0x2(%eax),%eax
542d21:	99                   	cltd
542d22:	39 04 f3             	cmp    %eax,(%ebx,%esi,8)
542d25:	0f 85 3b fe ff ff    	jne    0x542b66
542d2b:	39 54 f3 04          	cmp    %edx,0x4(%ebx,%esi,8)
542d2f:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
542d35:	0f 85 31 fe ff ff    	jne    0x542b6c
542d3b:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542d41:	b8 10 0a 00 00       	mov    $0xa10,%eax
542d46:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542d4c:	83 c6 14             	add    $0x14,%esi
542d4f:	66 89 41 08          	mov    %ax,0x8(%ecx)
542d53:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542d59:	e9 56 fb ff ff       	jmp    0x5428b4
542d5e:	8b 9d 98 fe ff ff    	mov    -0x168(%ebp),%ebx
542d64:	53                   	push   %ebx
542d65:	51                   	push   %ecx
542d66:	e8 25 93 fc ff       	call   0x50c090
542d6b:	8b 7b 0c             	mov    0xc(%ebx),%edi
542d6e:	83 c4 08             	add    $0x8,%esp
542d71:	2b 7b 08             	sub    0x8(%ebx),%edi
542d74:	b9 01 00 00 00       	mov    $0x1,%ecx
542d79:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
542d7d:	ba 01 01 00 00       	mov    $0x101,%edx
542d82:	8d 70 0c             	lea    0xc(%eax),%esi
542d85:	0f 45 ca             	cmovne %edx,%ecx
542d88:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
542d8e:	0f b7 d9             	movzwl %cx,%ebx
542d91:	66 89 58 08          	mov    %bx,0x8(%eax)
542d95:	85 ff                	test   %edi,%edi
542d97:	0f 8e c9 fd ff ff    	jle    0x542b66
542d9d:	0f 1f 00             	nopl   (%eax)
542da0:	8d 76 28             	lea    0x28(%esi),%esi
542da3:	8d 46 f4             	lea    -0xc(%esi),%eax
542da6:	50                   	push   %eax
542da7:	e8 a4 8c 00 00       	call   0x54ba50
542dac:	4f                   	dec    %edi
542dad:	66 89 5e fc          	mov    %bx,-0x4(%esi)
542db1:	83 c4 04             	add    $0x4,%esp
542db4:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
542dba:	85 ff                	test   %edi,%edi
542dbc:	7f e2                	jg     0x542da0
542dbe:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
542dc4:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542dca:	83 c6 14             	add    $0x14,%esi
542dcd:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542dd3:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542dd9:	e9 d6 fa ff ff       	jmp    0x5428b4
542dde:	8b 46 04             	mov    0x4(%esi),%eax
542de1:	ba 41 ff 00 00       	mov    $0xff41,%edx
542de6:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
542dec:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542df2:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
542df5:	66 8b 44 cb 08       	mov    0x8(%ebx,%ecx,8),%ax
542dfa:	66 23 c2             	and    %dx,%ax
542dfd:	66 83 c8 01          	or     $0x1,%ax
542e01:	83 c6 14             	add    $0x14,%esi
542e04:	66 89 44 cb 08       	mov    %ax,0x8(%ebx,%ecx,8)
542e09:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542e0f:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542e15:	e9 9a fa ff ff       	jmp    0x5428b4
542e1a:	ff b5 98 fe ff ff    	push   -0x168(%ebp)
542e20:	51                   	push   %ecx
542e21:	e8 6a 92 fc ff       	call   0x50c090
542e26:	8b f0                	mov    %eax,%esi
542e28:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
542e2e:	6a 00                	push   $0x0
542e30:	6a 00                	push   $0x0
542e32:	ff 70 04             	push   0x4(%eax)
542e35:	ff 70 10             	push   0x10(%eax)
542e38:	56                   	push   %esi
542e39:	e8 a2 8c 00 00       	call   0x54bae0
542e3e:	8a 85 60 fe ff ff    	mov    -0x1a0(%ebp),%al
542e44:	83 c4 1c             	add    $0x1c,%esp
542e47:	88 46 0a             	mov    %al,0xa(%esi)
542e4a:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
542e50:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542e56:	83 c6 14             	add    $0x14,%esi
542e59:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542e5f:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542e65:	e9 4a fa ff ff       	jmp    0x5428b4
542e6a:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
542e70:	8b 42 04             	mov    0x4(%edx),%eax
542e73:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
542e76:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
542e7c:	8d 49 fb             	lea    -0x5(%ecx),%ecx
542e7f:	8b 40 64             	mov    0x64(%eax),%eax
542e82:	8d 1c c8             	lea    (%eax,%ecx,8),%ebx
542e85:	53                   	push   %ebx
542e86:	e8 85 8f 00 00       	call   0x54be10
542e8b:	83 c4 04             	add    $0x4,%esp
542e8e:	85 c0                	test   %eax,%eax
542e90:	0f 85 ba 4f 00 00    	jne    0x547e50
542e96:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
542e9c:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
542ea2:	8b 40 08             	mov    0x8(%eax),%eax
542ea5:	8d 04 80             	lea    (%eax,%eax,4),%eax
542ea8:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
542eab:	b8 00 24 00 00       	mov    $0x2400,%eax
542eb0:	66 85 46 08          	test   %ax,0x8(%esi)
542eb4:	74 09                	je     0x542ebf
542eb6:	56                   	push   %esi
542eb7:	e8 94 8b 00 00       	call   0x54ba50
542ebc:	83 c4 04             	add    $0x4,%esp
542ebf:	0f 10 03             	movups (%ebx),%xmm0
542ec2:	b9 ff eb 00 00       	mov    $0xebff,%ecx
542ec7:	0f 11 06             	movups %xmm0,(%esi)
542eca:	8b 43 10             	mov    0x10(%ebx),%eax
542ecd:	89 46 10             	mov    %eax,0x10(%esi)
542ed0:	66 8b 46 08          	mov    0x8(%esi),%ax
542ed4:	66 23 c1             	and    %cx,%ax
542ed7:	b9 40 08 00 00       	mov    $0x840,%ecx
542edc:	66 0b c1             	or     %cx,%ax
542edf:	66 89 46 08          	mov    %ax,0x8(%esi)
542ee3:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
542ee9:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542eef:	83 c6 14             	add    $0x14,%esi
542ef2:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542ef8:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542efe:	e9 b1 f9 ff ff       	jmp    0x5428b4
542f03:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
542f09:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
542f0f:	8b 42 0c             	mov    0xc(%edx),%eax
542f12:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
542f18:	8b 42 04             	mov    0x4(%edx),%eax
542f1b:	8d 04 80             	lea    (%eax,%eax,4),%eax
542f1e:	8d 1c c1             	lea    (%ecx,%eax,8),%ebx
542f21:	8b 42 08             	mov    0x8(%edx),%eax
542f24:	8d 04 80             	lea    (%eax,%eax,4),%eax
542f27:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
542f2a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
542f30:	53                   	push   %ebx
542f31:	56                   	push   %esi
542f32:	e8 89 88 00 00       	call   0x54b7c0
542f37:	b8 00 10 00 00       	mov    $0x1000,%eax
542f3c:	83 c4 08             	add    $0x8,%esp
542f3f:	66 85 46 08          	test   %ax,0x8(%esi)
542f43:	74 11                	je     0x542f56
542f45:	56                   	push   %esi
542f46:	e8 15 88 00 00       	call   0x54b760
542f4b:	83 c4 04             	add    $0x4,%esp
542f4e:	85 c0                	test   %eax,%eax
542f50:	0f 85 7e 60 00 00    	jne    0x548fd4
542f56:	83 c3 28             	add    $0x28,%ebx
542f59:	83 c6 28             	add    $0x28,%esi
542f5c:	83 ad 88 fe ff ff 01 	subl   $0x1,-0x178(%ebp)
542f63:	75 cb                	jne    0x542f30
542f65:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
542f6b:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542f71:	83 c6 14             	add    $0x14,%esi
542f74:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542f7a:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542f80:	e9 2f f9 ff ff       	jmp    0x5428b4
542f85:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
542f8b:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
542f91:	8b 42 0c             	mov    0xc(%edx),%eax
542f94:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
542f9a:	8b 42 04             	mov    0x4(%edx),%eax
542f9d:	8d 04 80             	lea    (%eax,%eax,4),%eax
542fa0:	8d 1c c1             	lea    (%ecx,%eax,8),%ebx
542fa3:	8b 42 08             	mov    0x8(%edx),%eax
542fa6:	8d 04 80             	lea    (%eax,%eax,4),%eax
542fa9:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
542fac:	0f 1f 40 00          	nopl   0x0(%eax)
542fb0:	68 00 10 00 00       	push   $0x1000
542fb5:	53                   	push   %ebx
542fb6:	56                   	push   %esi
542fb7:	e8 64 8d 00 00       	call   0x54bd20
542fbc:	b8 00 10 00 00       	mov    $0x1000,%eax
542fc1:	83 c4 0c             	add    $0xc,%esp
542fc4:	66 85 46 08          	test   %ax,0x8(%esi)
542fc8:	74 11                	je     0x542fdb
542fca:	56                   	push   %esi
542fcb:	e8 90 87 00 00       	call   0x54b760
542fd0:	83 c4 04             	add    $0x4,%esp
542fd3:	85 c0                	test   %eax,%eax
542fd5:	0f 85 f9 5f 00 00    	jne    0x548fd4
542fdb:	8b 8d 88 fe ff ff    	mov    -0x178(%ebp),%ecx
542fe1:	8b c1                	mov    %ecx,%eax
542fe3:	49                   	dec    %ecx
542fe4:	89 8d 88 fe ff ff    	mov    %ecx,-0x178(%ebp)
542fea:	85 c0                	test   %eax,%eax
542fec:	0f 84 74 fb ff ff    	je     0x542b66
542ff2:	83 c6 28             	add    $0x28,%esi
542ff5:	83 c3 28             	add    $0x28,%ebx
542ff8:	eb b6                	jmp    0x542fb0
542ffa:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
543000:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
543006:	68 00 10 00 00       	push   $0x1000
54300b:	8b 42 04             	mov    0x4(%edx),%eax
54300e:	8d 04 80             	lea    (%eax,%eax,4),%eax
543011:	8d 04 c3             	lea    (%ebx,%eax,8),%eax
543014:	50                   	push   %eax
543015:	8b 42 08             	mov    0x8(%edx),%eax
543018:	8d 04 80             	lea    (%eax,%eax,4),%eax
54301b:	8d 04 c3             	lea    (%ebx,%eax,8),%eax
54301e:	50                   	push   %eax