507ac3:	75 04                	jne    0x507ac9
507ac5:	33 c0                	xor    %eax,%eax
507ac7:	eb 10                	jmp    0x507ad9
507ac9:	8b 9e 98 01 00 00    	mov    0x198(%esi),%ebx
507acf:	e9 37 ff ff ff       	jmp    0x507a0b
507ad4:	b8 01 00 00 00       	mov    $0x1,%eax
507ad9:	5d                   	pop    %ebp
507ada:	5f                   	pop    %edi
507adb:	5e                   	pop    %esi
507adc:	5b                   	pop    %ebx
507add:	c3                   	ret
507ade:	90                   	nop
507adf:	90                   	nop
507ae0:	33 d2                	xor    %edx,%edx
507ae2:	89 90 d4 00 00 00    	mov    %edx,0xd4(%eax)
507ae8:	33 c9                	xor    %ecx,%ecx
507aea:	89 88 8c 00 00 00    	mov    %ecx,0x8c(%eax)
507af0:	33 d2                	xor    %edx,%edx
507af2:	89 90 98 01 00 00    	mov    %edx,0x198(%eax)
507af8:	8b 90 b0 01 00 00    	mov    0x1b0(%eax),%edx
507afe:	33 c9                	xor    %ecx,%ecx
507b00:	89 4a 50             	mov    %ecx,0x50(%edx)
507b03:	33 c9                	xor    %ecx,%ecx
507b05:	89 4a 54             	mov    %ecx,0x54(%edx)
507b08:	33 c0                	xor    %eax,%eax
507b0a:	89 42 5c             	mov    %eax,0x5c(%edx)
507b0d:	c3                   	ret
507b0e:	90                   	nop
507b0f:	90                   	nop
507b10:	53                   	push   %ebx
507b11:	8b d8                	mov    %eax,%ebx
507b13:	8b c3                	mov    %ebx,%eax
507b15:	56                   	push   %esi
507b16:	b9 60 00 00 00       	mov    $0x60,%ecx
507b1b:	33 d2                	xor    %edx,%edx
507b1d:	8b 70 04             	mov    0x4(%eax),%esi
507b20:	ff 16                	call   *(%esi)
507b22:	8b f0                	mov    %eax,%esi
507b24:	33 c0                	xor    %eax,%eax
507b26:	89 b3 b0 01 00 00    	mov    %esi,0x1b0(%ebx)
507b2c:	c7 06 e0 7a 50 00    	movl   $0x507ae0,(%esi)
507b32:	c7 46 04 44 76 50 00 	movl   $0x507644,0x4(%esi)
507b39:	c7 46 08 54 79 50 00 	movl   $0x507954,0x8(%esi)
507b40:	c7 46 0c 00 74 50 00 	movl   $0x507400,0xc(%esi)
507b47:	8b 93 b0 01 00 00    	mov    0x1b0(%ebx),%edx
507b4d:	c7 44 82 10 00 74 50 	movl   $0x507400,0x10(%edx,%eax,4)
507b54:	00
507b55:	40                   	inc    %eax
507b56:	83 f8 10             	cmp    $0x10,%eax
507b59:	7c ec                	jl     0x507b47
507b5b:	8b 83 b0 01 00 00    	mov    0x1b0(%ebx),%eax
507b61:	c7 40 10 80 67 50 00 	movl   $0x506780,0x10(%eax)
507b68:	c7 40 48 04 6a 50 00 	movl   $0x506a04,0x48(%eax)
507b6f:	8b c3                	mov    %ebx,%eax
507b71:	e8 6a ff ff ff       	call   0x507ae0
507b76:	5e                   	pop    %esi
507b77:	5b                   	pop    %ebx
507b78:	c3                   	ret
507b79:	8d 40 00             	lea    0x0(%eax),%eax
507b7c:	53                   	push   %ebx
507b7d:	8b da                	mov    %edx,%ebx
507b7f:	8b c8                	mov    %eax,%ecx
507b81:	8d 43 ff             	lea    -0x1(%ebx),%eax
507b84:	03 c8                	add    %eax,%ecx
507b86:	8b c1                	mov    %ecx,%eax
507b88:	99                   	cltd
507b89:	f7 fb                	idiv   %ebx
507b8b:	8b c1                	mov    %ecx,%eax
507b8d:	2b c2                	sub    %edx,%eax
507b8f:	5b                   	pop    %ebx
507b90:	c3                   	ret
507b91:	90                   	nop
507b92:	90                   	nop
507b93:	90                   	nop
507b94:	55                   	push   %ebp
507b95:	8b ec                	mov    %esp,%ebp
507b97:	51                   	push   %ecx
507b98:	53                   	push   %ebx
507b99:	56                   	push   %esi
507b9a:	57                   	push   %edi
507b9b:	8b d8                	mov    %eax,%ebx
507b9d:	8b 45 08             	mov    0x8(%ebp),%eax
507ba0:	c1 e2 02             	shl    $0x2,%edx
507ba3:	89 45 fc             	mov    %eax,-0x4(%ebp)
507ba6:	03 da                	add    %edx,%ebx
507ba8:	8b 55 10             	mov    0x10(%ebp),%edx
507bab:	c1 e2 02             	shl    $0x2,%edx
507bae:	8b f1                	mov    %ecx,%esi
507bb0:	03 f2                	add    %edx,%esi
507bb2:	8b 7d 0c             	mov    0xc(%ebp),%edi
507bb5:	85 ff                	test   %edi,%edi
507bb7:	7e 1d                	jle    0x507bd6
507bb9:	8b 03                	mov    (%ebx),%eax
507bbb:	83 c3 04             	add    $0x4,%ebx
507bbe:	8b 16                	mov    (%esi),%edx
507bc0:	83 c6 04             	add    $0x4,%esi
507bc3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
507bc6:	51                   	push   %ecx
507bc7:	50                   	push   %eax
507bc8:	52                   	push   %edx
507bc9:	e8 fe 36 ff ff       	call   0x4fb2cc
507bce:	83 c4 0c             	add    $0xc,%esp
507bd1:	4f                   	dec    %edi
507bd2:	85 ff                	test   %edi,%edi
507bd4:	7f e3                	jg     0x507bb9
507bd6:	5f                   	pop    %edi
507bd7:	5e                   	pop    %esi
507bd8:	5b                   	pop    %ebx
507bd9:	59                   	pop    %ecx
507bda:	5d                   	pop    %ebp
507bdb:	c2 0c 00             	ret    $0xc
507bde:	90                   	nop
507bdf:	90                   	nop
507be0:	c1 e1 07             	shl    $0x7,%ecx
507be3:	51                   	push   %ecx
507be4:	50                   	push   %eax
507be5:	52                   	push   %edx
507be6:	e8 e1 36 ff ff       	call   0x4fb2cc
507beb:	83 c4 0c             	add    $0xc,%esp
507bee:	c3                   	ret
507bef:	90                   	nop
507bf0:	53                   	push   %ebx
507bf1:	56                   	push   %esi
507bf2:	8b f0                	mov    %eax,%esi
507bf4:	bb 01 00 00 00       	mov    $0x1,%ebx
507bf9:	8b d3                	mov    %ebx,%edx
507bfb:	8b c6                	mov    %esi,%eax
507bfd:	8b 48 04             	mov    0x4(%eax),%ecx
507c00:	ff 51 24             	call   *0x24(%ecx)
507c03:	4b                   	dec    %ebx
507c04:	85 db                	test   %ebx,%ebx
507c06:	7f f1                	jg     0x507bf9
507c08:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
507c0c:	74 07                	je     0x507c15
507c0e:	b8 c8 00 00 00       	mov    $0xc8,%eax
507c13:	eb 05                	jmp    0x507c1a
507c15:	b8 64 00 00 00       	mov    $0x64,%eax
507c1a:	89 46 10             	mov    %eax,0x10(%esi)
507c1d:	5e                   	pop    %esi
507c1e:	5b                   	pop    %ebx
507c1f:	c3                   	ret
507c20:	53                   	push   %ebx
507c21:	8b d8                	mov    %eax,%ebx
507c23:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
507c27:	74 08                	je     0x507c31
507c29:	8b c3                	mov    %ebx,%eax
507c2b:	8b 50 04             	mov    0x4(%eax),%edx
507c2e:	ff 52 28             	call   *0x28(%edx)
507c31:	33 c9                	xor    %ecx,%ecx
507c33:	33 c0                	xor    %eax,%eax
507c35:	89 4b 04             	mov    %ecx,0x4(%ebx)
507c38:	89 43 10             	mov    %eax,0x10(%ebx)
507c3b:	5b                   	pop    %ebx
507c3c:	c3                   	ret
507c3d:	90                   	nop
507c3e:	90                   	nop
507c3f:	90                   	nop
507c40:	53                   	push   %ebx
507c41:	b9 84 00 00 00       	mov    $0x84,%ecx
507c46:	33 d2                	xor    %edx,%edx
507c48:	8b 58 04             	mov    0x4(%eax),%ebx
507c4b:	ff 13                	call   *(%ebx)
507c4d:	33 d2                	xor    %edx,%edx
507c4f:	89 90 80 00 00 00    	mov    %edx,0x80(%eax)
507c55:	5b                   	pop    %ebx
507c56:	c3                   	ret
507c57:	90                   	nop
507c58:	53                   	push   %ebx
507c59:	b9 18 01 00 00       	mov    $0x118,%ecx
507c5e:	33 d2                	xor    %edx,%edx
507c60:	8b 58 04             	mov    0x4(%eax),%ebx
507c63:	ff 13                	call   *(%ebx)
507c65:	33 d2                	xor    %edx,%edx
507c67:	89 90 14 01 00 00    	mov    %edx,0x114(%eax)
507c6d:	5b                   	pop    %ebx
507c6e:	c3                   	ret
507c6f:	90                   	nop
507c70:	53                   	push   %ebx
507c71:	56                   	push   %esi
507c72:	8b f0                	mov    %eax,%esi
507c74:	57                   	push   %edi
507c75:	8b c6                	mov    %esi,%eax
507c77:	b9 00 10 00 00       	mov    $0x1000,%ecx
507c7c:	8b 5e 14             	mov    0x14(%esi),%ebx
507c7f:	ba 01 00 00 00       	mov    $0x1,%edx
507c84:	8b 70 04             	mov    0x4(%eax),%esi
507c87:	ff 16                	call   *(%esi)
507c89:	8b f8                	mov    %eax,%edi
507c8b:	89 7b 18             	mov    %edi,0x18(%ebx)
507c8e:	89 3b                	mov    %edi,(%ebx)
507c90:	c7 43 04 00 10 00 00 	movl   $0x1000,0x4(%ebx)
507c97:	5f                   	pop    %edi
507c98:	5e                   	pop    %esi
507c99:	5b                   	pop    %ebx
507c9a:	c3                   	ret
507c9b:	90                   	nop
507c9c:	53                   	push   %ebx
507c9d:	56                   	push   %esi
507c9e:	8b f0                	mov    %eax,%esi
507ca0:	8b 5e 14             	mov    0x14(%esi),%ebx
507ca3:	8b 43 14             	mov    0x14(%ebx),%eax
507ca6:	50                   	push   %eax
507ca7:	68 00 10 00 00       	push   $0x1000
507cac:	6a 01                	push   $0x1
507cae:	8b 53 18             	mov    0x18(%ebx),%edx
507cb1:	52                   	push   %edx
507cb2:	e8 45 36 ff ff       	call   0x4fb2fc
507cb7:	83 c4 10             	add    $0x10,%esp
507cba:	3d 00 10 00 00       	cmp    $0x1000,%eax
507cbf:	74 0f                	je     0x507cd0
507cc1:	8b 0e                	mov    (%esi),%ecx
507cc3:	8b c6                	mov    %esi,%eax
507cc5:	c7 41 14 24 00 00 00 	movl   $0x24,0x14(%ecx)
507ccc:	8b 10                	mov    (%eax),%edx
507cce:	ff 12                	call   *(%edx)
507cd0:	8b 4b 18             	mov    0x18(%ebx),%ecx
507cd3:	b8 01 00 00 00       	mov    $0x1,%eax
507cd8:	89 0b                	mov    %ecx,(%ebx)
507cda:	c7 43 04 00 10 00 00 	movl   $0x1000,0x4(%ebx)
507ce1:	5e                   	pop    %esi
507ce2:	5b                   	pop    %ebx
507ce3:	c3                   	ret
507ce4:	53                   	push   %ebx
507ce5:	56                   	push   %esi
507ce6:	57                   	push   %edi
507ce7:	8b f8                	mov    %eax,%edi
507ce9:	8b 5f 14             	mov    0x14(%edi),%ebx
507cec:	be 00 10 00 00       	mov    $0x1000,%esi
507cf1:	2b 73 04             	sub    0x4(%ebx),%esi
507cf4:	85 f6                	test   %esi,%esi
507cf6:	76 26                	jbe    0x507d1e
507cf8:	8b 43 14             	mov    0x14(%ebx),%eax
507cfb:	50                   	push   %eax
507cfc:	56                   	push   %esi
507cfd:	6a 01                	push   $0x1
507cff:	8b 53 18             	mov    0x18(%ebx),%edx
507d02:	52                   	push   %edx
507d03:	e8 f4 35 ff ff       	call   0x4fb2fc
507d08:	83 c4 10             	add    $0x10,%esp
507d0b:	3b f0                	cmp    %eax,%esi
507d0d:	74 0f                	je     0x507d1e
507d0f:	8b 0f                	mov    (%edi),%ecx
507d11:	8b c7                	mov    %edi,%eax
507d13:	c7 41 14 24 00 00 00 	movl   $0x24,0x14(%ecx)
507d1a:	8b 10                	mov    (%eax),%edx
507d1c:	ff 12                	call   *(%edx)
507d1e:	8b 4b 14             	mov    0x14(%ebx),%ecx
507d21:	51                   	push   %ecx
507d22:	e8 f1 35 ff ff       	call   0x4fb318
507d27:	59                   	pop    %ecx
507d28:	85 c0                	test   %eax,%eax
507d2a:	74 0f                	je     0x507d3b
507d2c:	8b 07                	mov    (%edi),%eax
507d2e:	c7 40 14 24 00 00 00 	movl   $0x24,0x14(%eax)
507d35:	8b c7                	mov    %edi,%eax
507d37:	8b 10                	mov    (%eax),%edx
507d39:	ff 12                	call   *(%edx)
507d3b:	5f                   	pop    %edi
507d3c:	5e                   	pop    %esi
507d3d:	5b                   	pop    %ebx
507d3e:	c3                   	ret
507d3f:	90                   	nop
507d40:	53                   	push   %ebx
507d41:	8b d8                	mov    %eax,%ebx
507d43:	56                   	push   %esi
507d44:	57                   	push   %edi
507d45:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)
507d49:	8b f2                	mov    %edx,%esi
507d4b:	75 11                	jne    0x507d5e
507d4d:	8b c3                	mov    %ebx,%eax
507d4f:	b9 1c 00 00 00       	mov    $0x1c,%ecx
507d54:	33 d2                	xor    %edx,%edx
507d56:	8b 78 04             	mov    0x4(%eax),%edi
507d59:	ff 17                	call   *(%edi)
507d5b:	89 43 14             	mov    %eax,0x14(%ebx)
507d5e:	8b 43 14             	mov    0x14(%ebx),%eax
507d61:	c7 40 08 70 7c 50 00 	movl   $0x507c70,0x8(%eax)
507d68:	c7 40 0c 9c 7c 50 00 	movl   $0x507c9c,0xc(%eax)
507d6f:	c7 40 10 e4 7c 50 00 	movl   $0x507ce4,0x10(%eax)
507d76:	89 70 14             	mov    %esi,0x14(%eax)
507d79:	5f                   	pop    %edi
507d7a:	5e                   	pop    %esi
507d7b:	5b                   	pop    %ebx
507d7c:	c3                   	ret
507d7d:	8d 40 00             	lea    0x0(%eax),%eax
507d80:	55                   	push   %ebp
507d81:	8b ec                	mov    %esp,%ebp
507d83:	51                   	push   %ecx
507d84:	53                   	push   %ebx
507d85:	8b d8                	mov    %eax,%ebx
507d87:	56                   	push   %esi
507d88:	57                   	push   %edi
507d89:	89 4d fc             	mov    %ecx,-0x4(%ebp)
507d8c:	83 7b 10 64          	cmpl   $0x64,0x10(%ebx)
507d90:	8d 74 93 40          	lea    0x40(%ebx,%edx,4),%esi
507d94:	74 15                	je     0x507dab
507d96:	8b 03                	mov    (%ebx),%eax
507d98:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
507d9f:	8b 53 10             	mov    0x10(%ebx),%edx
507da2:	89 50 18             	mov    %edx,0x18(%eax)
507da5:	8b c3                	mov    %ebx,%eax
507da7:	8b 10                	mov    (%eax),%edx
507da9:	ff 12                	call   *(%edx)
507dab:	83 3e 00             	cmpl   $0x0,(%esi)
507dae:	75 09                	jne    0x507db9
507db0:	8b c3                	mov    %ebx,%eax
507db2:	e8 89 fe ff ff       	call   0x507c40
507db7:	89 06                	mov    %eax,(%esi)
507db9:	33 c9                	xor    %ecx,%ecx
507dbb:	8b 55 fc             	mov    -0x4(%ebp),%edx
507dbe:	8b da                	mov    %edx,%ebx
507dc0:	8b 03                	mov    (%ebx),%eax
507dc2:	f7 6d 0c             	imull  0xc(%ebp)
507dc5:	83 c0 32             	add    $0x32,%eax
507dc8:	bf 64 00 00 00       	mov    $0x64,%edi
507dcd:	99                   	cltd
507dce:	f7 ff                	idiv   %edi
507dd0:	85 c0                	test   %eax,%eax
507dd2:	7f 05                	jg     0x507dd9
507dd4:	b8 01 00 00 00       	mov    $0x1,%eax
507dd9:	3d ff 7f 00 00       	cmp    $0x7fff,%eax
507dde:	7e 05                	jle    0x507de5
507de0:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
507de5:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
507de9:	74 0c                	je     0x507df7
507deb:	3d ff 00 00 00       	cmp    $0xff,%eax
507df0:	7e 05                	jle    0x507df7
507df2:	b8 ff 00 00 00       	mov    $0xff,%eax
507df7:	8b 16                	mov    (%esi),%edx
507df9:	83 c3 04             	add    $0x4,%ebx
507dfc:	66 89 04 4a          	mov    %ax,(%edx,%ecx,2)
507e00:	41                   	inc    %ecx
507e01:	83 f9 40             	cmp    $0x40,%ecx
507e04:	7c ba                	jl     0x507dc0
507e06:	8b 0e                	mov    (%esi),%ecx
507e08:	33 c0                	xor    %eax,%eax
507e0a:	89 81 80 00 00 00    	mov    %eax,0x80(%ecx)
507e10:	5f                   	pop    %edi
507e11:	5e                   	pop    %esi
507e12:	5b                   	pop    %ebx
507e13:	59                   	pop    %ecx
507e14:	5d                   	pop    %ebp
507e15:	c2 08 00             	ret    $0x8
507e18:	53                   	push   %ebx
507e19:	56                   	push   %esi
507e1a:	57                   	push   %edi
507e1b:	8b f9                	mov    %ecx,%edi
507e1d:	8b f2                	mov    %edx,%esi
507e1f:	8b d8                	mov    %eax,%ebx
507e21:	56                   	push   %esi