50ba27:	8a 42 ff             	mov    -0x1(%edx),%al
50ba2a:	0f b6 52 01          	movzbl 0x1(%edx),%edx
50ba2e:	03 d8                	add    %eax,%ebx
50ba30:	03 da                	add    %edx,%ebx
50ba32:	33 d2                	xor    %edx,%edx
50ba34:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
50ba37:	8b 45 e4             	mov    -0x1c(%ebp),%eax
50ba3a:	01 45 e4             	add    %eax,-0x1c(%ebp)
50ba3d:	33 c0                	xor    %eax,%eax
50ba3f:	8a 51 ff             	mov    -0x1(%ecx),%dl
50ba42:	8a 46 ff             	mov    -0x1(%esi),%al
50ba45:	0f b6 49 01          	movzbl 0x1(%ecx),%ecx
50ba49:	03 d1                	add    %ecx,%edx
50ba4b:	33 c9                	xor    %ecx,%ecx
50ba4d:	8a 4e 01             	mov    0x1(%esi),%cl
50ba50:	03 d0                	add    %eax,%edx
50ba52:	03 d1                	add    %ecx,%edx
50ba54:	01 55 e4             	add    %edx,-0x1c(%ebp)
50ba57:	8b 55 e8             	mov    -0x18(%ebp),%edx
50ba5a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
50ba5d:	0f af 45 dc          	imul   -0x24(%ebp),%eax
50ba61:	0f af 55 e0          	imul   -0x20(%ebp),%edx
50ba65:	03 d0                	add    %eax,%edx
50ba67:	89 55 e8             	mov    %edx,-0x18(%ebp)
50ba6a:	8b 55 e8             	mov    -0x18(%ebp),%edx
50ba6d:	8b 4d ec             	mov    -0x14(%ebp),%ecx
50ba70:	81 c2 00 80 00 00    	add    $0x8000,%edx
50ba76:	c1 fa 10             	sar    $0x10,%edx
50ba79:	88 11                	mov    %dl,(%ecx)
50ba7b:	83 45 d4 08          	addl   $0x8,-0x2c(%ebp)
50ba7f:	ff 45 f8             	incl   -0x8(%ebp)
50ba82:	83 45 d8 04          	addl   $0x4,-0x28(%ebp)
50ba86:	8b 45 fc             	mov    -0x4(%ebp),%eax
50ba89:	8b 50 0c             	mov    0xc(%eax),%edx
50ba8c:	3b 55 f8             	cmp    -0x8(%ebp),%edx
50ba8f:	0f 8f e6 fd ff ff    	jg     0x50b87b
50ba95:	5f                   	pop    %edi
50ba96:	5e                   	pop    %esi
50ba97:	5b                   	pop    %ebx
50ba98:	8b e5                	mov    %ebp,%esp
50ba9a:	5d                   	pop    %ebp
50ba9b:	c2 04 00             	ret    $0x4
50ba9e:	90                   	nop
50ba9f:	90                   	nop
50baa0:	55                   	push   %ebp
50baa1:	8b ec                	mov    %esp,%ebp
50baa3:	83 c4 cc             	add    $0xffffffcc,%esp
50baa6:	53                   	push   %ebx
50baa7:	56                   	push   %esi
50baa8:	8b d8                	mov    %eax,%ebx
50baaa:	89 55 fc             	mov    %edx,-0x4(%ebp)
50baad:	8b 45 fc             	mov    -0x4(%ebp),%eax
50bab0:	8b f1                	mov    %ecx,%esi
50bab2:	8b 50 1c             	mov    0x1c(%eax),%edx
50bab5:	8d 46 fc             	lea    -0x4(%esi),%eax
50bab8:	c1 e2 03             	shl    $0x3,%edx
50babb:	89 55 f0             	mov    %edx,-0x10(%ebp)
50babe:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50bac1:	51                   	push   %ecx
50bac2:	8b 93 e4 00 00 00    	mov    0xe4(%ebx),%edx
50bac8:	8b 4b 18             	mov    0x18(%ebx),%ecx
50bacb:	83 c2 02             	add    $0x2,%edx
50bace:	e8 c1 f9 ff ff       	call   0x50b494
50bad3:	8b 83 b8 00 00 00    	mov    0xb8(%ebx),%eax
50bad9:	b9 00 00 01 00       	mov    $0x10000,%ecx
50bade:	8b d0                	mov    %eax,%edx
50bae0:	c1 e2 09             	shl    $0x9,%edx
50bae3:	2b ca                	sub    %edx,%ecx
50bae5:	8b d6                	mov    %esi,%edx
50bae7:	c1 e0 06             	shl    $0x6,%eax
50baea:	89 4d dc             	mov    %ecx,-0x24(%ebp)
50baed:	89 45 d8             	mov    %eax,-0x28(%ebp)
50baf0:	33 c0                	xor    %eax,%eax
50baf2:	89 45 f8             	mov    %eax,-0x8(%ebp)
50baf5:	89 55 cc             	mov    %edx,-0x34(%ebp)
50baf8:	8b 4d 08             	mov    0x8(%ebp),%ecx
50bafb:	8b c1                	mov    %ecx,%eax
50bafd:	89 45 d0             	mov    %eax,-0x30(%ebp)
50bb00:	e9 14 01 00 00       	jmp    0x50bc19
50bb05:	8b 55 d0             	mov    -0x30(%ebp),%edx
50bb08:	8b 0a                	mov    (%edx),%ecx
50bb0a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
50bb0d:	8b 45 cc             	mov    -0x34(%ebp),%eax
50bb10:	8b 55 cc             	mov    -0x34(%ebp),%edx
50bb13:	8b 08                	mov    (%eax),%ecx
50bb15:	8b 42 fc             	mov    -0x4(%edx),%eax
50bb18:	89 45 ec             	mov    %eax,-0x14(%ebp)
50bb1b:	8b 55 cc             	mov    -0x34(%ebp),%edx
50bb1e:	8b 42 04             	mov    0x4(%edx),%eax
50bb21:	89 45 e8             	mov    %eax,-0x18(%ebp)
50bb24:	33 c0                	xor    %eax,%eax
50bb26:	8b 55 ec             	mov    -0x14(%ebp),%edx
50bb29:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50bb2c:	8a 01                	mov    (%ecx),%al
50bb2e:	41                   	inc    %ecx
50bb2f:	0f b6 1b             	movzbl (%ebx),%ebx
50bb32:	0f b6 12             	movzbl (%edx),%edx
50bb35:	ff 45 e8             	incl   -0x18(%ebp)
50bb38:	ff 45 ec             	incl   -0x14(%ebp)
50bb3b:	03 d3                	add    %ebx,%edx
50bb3d:	8b 5d ec             	mov    -0x14(%ebp),%ebx
50bb40:	03 d0                	add    %eax,%edx
50bb42:	0f b6 33             	movzbl (%ebx),%esi
50bb45:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50bb48:	0f b6 1b             	movzbl (%ebx),%ebx
50bb4b:	03 f3                	add    %ebx,%esi
50bb4d:	33 db                	xor    %ebx,%ebx
50bb4f:	8a 19                	mov    (%ecx),%bl
50bb51:	03 f3                	add    %ebx,%esi
50bb53:	8b da                	mov    %edx,%ebx
50bb55:	2b d8                	sub    %eax,%ebx
50bb57:	03 da                	add    %edx,%ebx
50bb59:	03 de                	add    %esi,%ebx
50bb5b:	89 5d e0             	mov    %ebx,-0x20(%ebp)
50bb5e:	0f af 45 dc          	imul   -0x24(%ebp),%eax
50bb62:	8b 5d e0             	mov    -0x20(%ebp),%ebx
50bb65:	0f af 5d d8          	imul   -0x28(%ebp),%ebx
50bb69:	03 c3                	add    %ebx,%eax
50bb6b:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
50bb6e:	05 00 80 00 00       	add    $0x8000,%eax
50bb73:	c1 f8 10             	sar    $0x10,%eax
50bb76:	88 03                	mov    %al,(%ebx)
50bb78:	ff 45 e4             	incl   -0x1c(%ebp)
50bb7b:	89 55 d4             	mov    %edx,-0x2c(%ebp)
50bb7e:	8b 45 f0             	mov    -0x10(%ebp),%eax
50bb81:	8b d6                	mov    %esi,%edx
50bb83:	83 e8 02             	sub    $0x2,%eax
50bb86:	89 45 f4             	mov    %eax,-0xc(%ebp)
50bb89:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
50bb8d:	76 56                	jbe    0x50bbe5
50bb8f:	33 c0                	xor    %eax,%eax
50bb91:	8a 01                	mov    (%ecx),%al
50bb93:	41                   	inc    %ecx
50bb94:	ff 45 ec             	incl   -0x14(%ebp)
50bb97:	ff 45 e8             	incl   -0x18(%ebp)
50bb9a:	8b 5d ec             	mov    -0x14(%ebp),%ebx
50bb9d:	0f b6 33             	movzbl (%ebx),%esi
50bba0:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50bba3:	0f b6 1b             	movzbl (%ebx),%ebx
50bba6:	03 f3                	add    %ebx,%esi
50bba8:	33 db                	xor    %ebx,%ebx
50bbaa:	8a 19                	mov    (%ecx),%bl
50bbac:	03 f3                	add    %ebx,%esi
50bbae:	8b da                	mov    %edx,%ebx
50bbb0:	2b d8                	sub    %eax,%ebx
50bbb2:	03 5d d4             	add    -0x2c(%ebp),%ebx
50bbb5:	03 de                	add    %esi,%ebx
50bbb7:	89 5d e0             	mov    %ebx,-0x20(%ebp)
50bbba:	0f af 45 dc          	imul   -0x24(%ebp),%eax
50bbbe:	8b 5d e0             	mov    -0x20(%ebp),%ebx
50bbc1:	0f af 5d d8          	imul   -0x28(%ebp),%ebx
50bbc5:	03 c3                	add    %ebx,%eax
50bbc7:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
50bbca:	05 00 80 00 00       	add    $0x8000,%eax
50bbcf:	c1 f8 10             	sar    $0x10,%eax
50bbd2:	88 03                	mov    %al,(%ebx)
50bbd4:	ff 45 e4             	incl   -0x1c(%ebp)
50bbd7:	89 55 d4             	mov    %edx,-0x2c(%ebp)
50bbda:	ff 4d f4             	decl   -0xc(%ebp)
50bbdd:	8b d6                	mov    %esi,%edx
50bbdf:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
50bbe3:	77 aa                	ja     0x50bb8f
50bbe5:	33 c0                	xor    %eax,%eax
50bbe7:	8a 01                	mov    (%ecx),%al
50bbe9:	8b ca                	mov    %edx,%ecx
50bbeb:	2b c8                	sub    %eax,%ecx
50bbed:	03 4d d4             	add    -0x2c(%ebp),%ecx
50bbf0:	03 d1                	add    %ecx,%edx
50bbf2:	89 55 e0             	mov    %edx,-0x20(%ebp)
50bbf5:	f7 6d dc             	imull  -0x24(%ebp)
50bbf8:	8b 55 e0             	mov    -0x20(%ebp),%edx
50bbfb:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
50bbfe:	0f af 55 d8          	imul   -0x28(%ebp),%edx
50bc02:	03 c2                	add    %edx,%eax
50bc04:	05 00 80 00 00       	add    $0x8000,%eax
50bc09:	c1 f8 10             	sar    $0x10,%eax
50bc0c:	88 01                	mov    %al,(%ecx)
50bc0e:	ff 45 f8             	incl   -0x8(%ebp)
50bc11:	83 45 cc 04          	addl   $0x4,-0x34(%ebp)
50bc15:	83 45 d0 04          	addl   $0x4,-0x30(%ebp)
50bc19:	8b 45 fc             	mov    -0x4(%ebp),%eax
50bc1c:	8b 50 0c             	mov    0xc(%eax),%edx
50bc1f:	3b 55 f8             	cmp    -0x8(%ebp),%edx
50bc22:	0f 8f dd fe ff ff    	jg     0x50bb05
50bc28:	5e                   	pop    %esi
50bc29:	5b                   	pop    %ebx
50bc2a:	8b e5                	mov    %ebp,%esp
50bc2c:	5d                   	pop    %ebp
50bc2d:	c2 04 00             	ret    $0x4
50bc30:	53                   	push   %ebx
50bc31:	56                   	push   %esi
50bc32:	57                   	push   %edi
50bc33:	55                   	push   %ebp
50bc34:	83 c4 f8             	add    $0xfffffff8,%esp
50bc37:	8b d8                	mov    %eax,%ebx
50bc39:	8b c3                	mov    %ebx,%eax
50bc3b:	b9 34 00 00 00       	mov    $0x34,%ecx
50bc40:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
50bc47:	00
50bc48:	8b 70 04             	mov    0x4(%eax),%esi
50bc4b:	ba 01 00 00 00       	mov    $0x1,%edx
50bc50:	ff 16                	call   *(%esi)
50bc52:	89 04 24             	mov    %eax,(%esp)
50bc55:	8b 04 24             	mov    (%esp),%eax
50bc58:	89 83 5c 01 00 00    	mov    %eax,0x15c(%ebx)
50bc5e:	8b 14 24             	mov    (%esp),%edx
50bc61:	c7 02 90 b4 50 00    	movl   $0x50b490,(%edx)
50bc67:	8b 0c 24             	mov    (%esp),%ecx
50bc6a:	c7 41 04 e4 b4 50 00 	movl   $0x50b4e4,0x4(%ecx)
50bc71:	8b 04 24             	mov    (%esp),%eax
50bc74:	33 d2                	xor    %edx,%edx
50bc76:	89 50 08             	mov    %edx,0x8(%eax)
50bc79:	83 bb b4 00 00 00 00 	cmpl   $0x0,0xb4(%ebx)
50bc80:	74 0f                	je     0x50bc91
50bc82:	8b 0b                	mov    (%ebx),%ecx
50bc84:	8b c3                	mov    %ebx,%eax
50bc86:	c7 41 14 17 00 00 00 	movl   $0x17,0x14(%ecx)
50bc8d:	8b 10                	mov    (%eax),%edx
50bc8f:	ff 12                	call   *(%edx)
50bc91:	33 ed                	xor    %ebp,%ebp
50bc93:	8b 73 3c             	mov    0x3c(%ebx),%esi
50bc96:	8b 04 24             	mov    (%esp),%eax
50bc99:	8d 78 0c             	lea    0xc(%eax),%edi
50bc9c:	e9 e2 00 00 00       	jmp    0x50bd83
50bca1:	8b 46 08             	mov    0x8(%esi),%eax
50bca4:	3b 83 e0 00 00 00    	cmp    0xe0(%ebx),%eax
50bcaa:	75 34                	jne    0x50bce0
50bcac:	8b 56 0c             	mov    0xc(%esi),%edx
50bcaf:	3b 93 e4 00 00 00    	cmp    0xe4(%ebx),%edx
50bcb5:	75 29                	jne    0x50bce0
50bcb7:	83 bb b8 00 00 00 00 	cmpl   $0x0,0xb8(%ebx)
50bcbe:	74 15                	je     0x50bcd5
50bcc0:	c7 07 a0 ba 50 00    	movl   $0x50baa0,(%edi)
50bcc6:	8b 0c 24             	mov    (%esp),%ecx
50bcc9:	c7 41 08 01 00 00 00 	movl   $0x1,0x8(%ecx)
50bcd0:	e9 a7 00 00 00       	jmp    0x50bd7c
50bcd5:	c7 07 78 b6 50 00    	movl   $0x50b678,(%edi)
50bcdb:	e9 9c 00 00 00       	jmp    0x50bd7c
50bce0:	8b 46 08             	mov    0x8(%esi),%eax
50bce3:	03 c0                	add    %eax,%eax
50bce5:	3b 83 e0 00 00 00    	cmp    0xe0(%ebx),%eax
50bceb:	75 19                	jne    0x50bd06
50bced:	8b 56 0c             	mov    0xc(%esi),%edx
50bcf0:	3b 93 e4 00 00 00    	cmp    0xe4(%ebx),%edx
50bcf6:	75 0e                	jne    0x50bd06
50bcf8:	33 c9                	xor    %ecx,%ecx
50bcfa:	89 4c 24 04          	mov    %ecx,0x4(%esp)
50bcfe:	c7 07 c4 b6 50 00    	movl   $0x50b6c4,(%edi)
50bd04:	eb 76                	jmp    0x50bd7c
50bd06:	8b 46 08             	mov    0x8(%esi),%eax
50bd09:	03 c0                	add    %eax,%eax
50bd0b:	3b 83 e0 00 00 00    	cmp    0xe0(%ebx),%eax
50bd11:	75 30                	jne    0x50bd43
50bd13:	8b 56 0c             	mov    0xc(%esi),%edx
50bd16:	03 d2                	add    %edx,%edx
50bd18:	3b 93 e4 00 00 00    	cmp    0xe4(%ebx),%edx
50bd1e:	75 23                	jne    0x50bd43
50bd20:	83 bb b8 00 00 00 00 	cmpl   $0x0,0xb8(%ebx)
50bd27:	74 12                	je     0x50bd3b
50bd29:	c7 07 10 b8 50 00    	movl   $0x50b810,(%edi)
50bd2f:	8b 0c 24             	mov    (%esp),%ecx
50bd32:	c7 41 08 01 00 00 00 	movl   $0x1,0x8(%ecx)
50bd39:	eb 41                	jmp    0x50bd7c
50bd3b:	c7 07 58 b7 50 00    	movl   $0x50b758,(%edi)
50bd41:	eb 39                	jmp    0x50bd7c
50bd43:	8b 83 e0 00 00 00    	mov    0xe0(%ebx),%eax
50bd49:	99                   	cltd
50bd4a:	f7 7e 08             	idivl  0x8(%esi)
50bd4d:	85 d2                	test   %edx,%edx
50bd4f:	75 1c                	jne    0x50bd6d
50bd51:	8b 83 e4 00 00 00    	mov    0xe4(%ebx),%eax
50bd57:	99                   	cltd
50bd58:	f7 7e 0c             	idivl  0xc(%esi)
50bd5b:	85 d2                	test   %edx,%edx
50bd5d:	75 0e                	jne    0x50bd6d
50bd5f:	33 c9                	xor    %ecx,%ecx
50bd61:	89 4c 24 04          	mov    %ecx,0x4(%esp)
50bd65:	c7 07 68 b5 50 00    	movl   $0x50b568,(%edi)
50bd6b:	eb 0f                	jmp    0x50bd7c
50bd6d:	8b 03                	mov    (%ebx),%eax
50bd6f:	c7 40 14 25 00 00 00 	movl   $0x25,0x14(%eax)
50bd76:	8b c3                	mov    %ebx,%eax
50bd78:	8b 10                	mov    (%eax),%edx
50bd7a:	ff 12                	call   *(%edx)
50bd7c:	83 c7 04             	add    $0x4,%edi
50bd7f:	45                   	inc    %ebp
50bd80:	83 c6 54             	add    $0x54,%esi
50bd83:	3b 6b 34             	cmp    0x34(%ebx),%ebp
50bd86:	0f 8c 15 ff ff ff    	jl     0x50bca1
50bd8c:	83 bb b8 00 00 00 00 	cmpl   $0x0,0xb8(%ebx)
50bd93:	74 19                	je     0x50bdae
50bd95:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
50bd9a:	75 12                	jne    0x50bdae
50bd9c:	8b 0b                	mov    (%ebx),%ecx
50bd9e:	8b c3                	mov    %ebx,%eax
50bda0:	33 d2                	xor    %edx,%edx
50bda2:	c7 41 14 62 00 00 00 	movl   $0x62,0x14(%ecx)
50bda9:	8b 08                	mov    (%eax),%ecx
50bdab:	ff 51 04             	call   *0x4(%ecx)
50bdae:	59                   	pop    %ecx
50bdaf:	5a                   	pop    %edx
50bdb0:	5d                   	pop    %ebp
50bdb1:	5f                   	pop    %edi
50bdb2:	5e                   	pop    %esi
50bdb3:	5b                   	pop    %ebx
50bdb4:	c3                   	ret
50bdb5:	8d 40 00             	lea    0x0(%eax),%eax
50bdb8:	53                   	push   %ebx
50bdb9:	56                   	push   %esi
50bdba:	57                   	push   %edi
50bdbb:	83 c4 d8             	add    $0xffffffd8,%esp
50bdbe:	33 c9                	xor    %ecx,%ecx
50bdc0:	89 04 24             	mov    %eax,(%esp)
50bdc3:	8b 04 24             	mov    (%esp),%eax
50bdc6:	8b 90 60 01 00 00    	mov    0x160(%eax),%edx
50bdcc:	89 54 24 04          	mov    %edx,0x4(%esp)
50bdd0:	89 4c 24 08          	mov    %ecx,0x8(%esp)
50bdd4:	8b 04 24             	mov    (%esp),%eax
50bdd7:	8b 50 3c             	mov    0x3c(%eax),%edx
50bdda:	89 54 24 0c          	mov    %edx,0xc(%esp)
50bdde:	e9 6e 01 00 00       	jmp    0x50bf51
50bde3:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
50bde7:	8b 59 10             	mov    0x10(%ecx),%ebx
50bdea:	85 db                	test   %ebx,%ebx
50bdec:	7c 0f                	jl     0x50bdfd
50bdee:	83 fb 04             	cmp    $0x4,%ebx
50bdf1:	7d 0a                	jge    0x50bdfd
50bdf3:	8b 04 24             	mov    (%esp),%eax
50bdf6:	83 7c 98 40 00       	cmpl   $0x0,0x40(%eax,%ebx,4)
50bdfb:	75 16                	jne    0x50be13
50bdfd:	8b 14 24             	mov    (%esp),%edx
50be00:	8b 02                	mov    (%edx),%eax
50be02:	c7 40 14 33 00 00 00 	movl   $0x33,0x14(%eax)
50be09:	89 58 18             	mov    %ebx,0x18(%eax)
50be0c:	8b 04 24             	mov    (%esp),%eax
50be0f:	8b 10                	mov    (%eax),%edx
50be11:	ff 12                	call   *(%edx)
50be13:	8b 0c 24             	mov    (%esp),%ecx
50be16:	8b 44 99 40          	mov    0x40(%ecx,%ebx,4),%eax
50be1a:	89 44 24 10          	mov    %eax,0x10(%esp)
50be1e:	8b 14 24             	mov    (%esp),%edx
50be21:	8b 8a bc 00 00 00    	mov    0xbc(%edx),%ecx
50be27:	49                   	dec    %ecx
50be28:	74 08                	je     0x50be32
50be2a:	49                   	dec    %ecx
50be2b:	74 67                	je     0x50be94
50be2d:	e9 03 01 00 00       	jmp    0x50bf35
50be32:	8b 44 24 04          	mov    0x4(%esp),%eax
50be36:	83 7c 98 0c 00       	cmpl   $0x0,0xc(%eax,%ebx,4)
50be3b:	75 1a                	jne    0x50be57