50aaeb:	73 3b                	jae    0x50ab28
50aaed:	8b d3                	mov    %ebx,%edx
50aaef:	33 c0                	xor    %eax,%eax
50aaf1:	c1 e2 07             	shl    $0x7,%edx
50aaf4:	3b d8                	cmp    %eax,%ebx
50aaf6:	66 8b 4c 16 80       	mov    -0x80(%esi,%edx,1),%cx
50aafb:	8b 54 24 30          	mov    0x30(%esp),%edx
50aaff:	7e 0e                	jle    0x50ab0f
50ab01:	66 89 0a             	mov    %cx,(%edx)
50ab04:	40                   	inc    %eax
50ab05:	81 c2 80 00 00 00    	add    $0x80,%edx
50ab0b:	3b d8                	cmp    %eax,%ebx
50ab0d:	7f f2                	jg     0x50ab01
50ab0f:	8b c3                	mov    %ebx,%eax
50ab11:	c1 e0 07             	shl    $0x7,%eax
50ab14:	01 44 24 30          	add    %eax,0x30(%esp)
50ab18:	03 f0                	add    %eax,%esi
50ab1a:	ff 44 24 18          	incl   0x18(%esp)
50ab1e:	8b 4c 24 18          	mov    0x18(%esp),%ecx
50ab22:	3b 4c 24 14          	cmp    0x14(%esp),%ecx
50ab26:	72 c5                	jb     0x50aaed
50ab28:	ff 44 24 20          	incl   0x20(%esp)
50ab2c:	83 44 24 44 04       	addl   $0x4,0x44(%esp)
50ab31:	8b 44 24 28          	mov    0x28(%esp),%eax
50ab35:	8b 50 0c             	mov    0xc(%eax),%edx
50ab38:	3b 54 24 20          	cmp    0x20(%esp),%edx
50ab3c:	0f 8f 73 ff ff ff    	jg     0x50aab5
50ab42:	83 44 24 34 04       	addl   $0x4,0x34(%esp)
50ab47:	83 44 24 40 04       	addl   $0x4,0x40(%esp)
50ab4c:	ff 44 24 1c          	incl   0x1c(%esp)
50ab50:	83 44 24 28 54       	addl   $0x54,0x28(%esp)
50ab55:	8b 0c 24             	mov    (%esp),%ecx
50ab58:	8b 41 34             	mov    0x34(%ecx),%eax
50ab5b:	3b 44 24 1c          	cmp    0x1c(%esp),%eax
50ab5f:	0f 8f d5 fd ff ff    	jg     0x50a93a
50ab65:	8b 54 24 04          	mov    0x4(%esp),%edx
50ab69:	8b 04 24             	mov    (%esp),%eax
50ab6c:	e8 07 00 00 00       	call   0x50ab78
50ab71:	83 c4 48             	add    $0x48,%esp
50ab74:	5f                   	pop    %edi
50ab75:	5e                   	pop    %esi
50ab76:	5b                   	pop    %ebx
50ab77:	c3                   	ret
50ab78:	53                   	push   %ebx
50ab79:	56                   	push   %esi
50ab7a:	57                   	push   %edi
50ab7b:	83 c4 c8             	add    $0xffffffc8,%esp
50ab7e:	33 c9                	xor    %ecx,%ecx
50ab80:	89 04 24             	mov    %eax,(%esp)
50ab83:	8b 04 24             	mov    (%esp),%eax
50ab86:	8d 74 24 28          	lea    0x28(%esp),%esi
50ab8a:	8b 90 50 01 00 00    	mov    0x150(%eax),%edx
50ab90:	89 54 24 04          	mov    %edx,0x4(%esp)
50ab94:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
50ab98:	8b 04 24             	mov    (%esp),%eax
50ab9b:	8d 98 f0 00 00 00    	lea    0xf0(%eax),%ebx
50aba1:	eb 3f                	jmp    0x50abe2
50aba3:	8b 03                	mov    (%ebx),%eax
50aba5:	89 44 24 18          	mov    %eax,0x18(%esp)
50aba9:	8b 54 24 18          	mov    0x18(%esp),%edx
50abad:	8b 7a 0c             	mov    0xc(%edx),%edi
50abb0:	57                   	push   %edi
50abb1:	6a 00                	push   $0x0
50abb3:	8b 44 24 0c          	mov    0xc(%esp),%eax
50abb7:	8b 54 24 20          	mov    0x20(%esp),%edx
50abbb:	8b 48 08             	mov    0x8(%eax),%ecx
50abbe:	8b 42 04             	mov    0x4(%edx),%eax
50abc1:	0f af cf             	imul   %edi,%ecx
50abc4:	8b 54 24 0c          	mov    0xc(%esp),%edx
50abc8:	8b 54 82 40          	mov    0x40(%edx,%eax,4),%edx
50abcc:	8b 44 24 08          	mov    0x8(%esp),%eax
50abd0:	8b 78 04             	mov    0x4(%eax),%edi
50abd3:	ff 57 20             	call   *0x20(%edi)
50abd6:	89 06                	mov    %eax,(%esi)
50abd8:	83 c6 04             	add    $0x4,%esi
50abdb:	ff 44 24 0c          	incl   0xc(%esp)
50abdf:	83 c3 04             	add    $0x4,%ebx
50abe2:	8b 04 24             	mov    (%esp),%eax
50abe5:	8b 90 ec 00 00 00    	mov    0xec(%eax),%edx
50abeb:	3b 54 24 0c          	cmp    0xc(%esp),%edx
50abef:	7f b2                	jg     0x50aba3
50abf1:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50abf5:	8b 41 10             	mov    0x10(%ecx),%eax
50abf8:	89 44 24 10          	mov    %eax,0x10(%esp)
50abfc:	e9 11 01 00 00       	jmp    0x50ad12
50ac01:	8b 54 24 04          	mov    0x4(%esp),%edx
50ac05:	8b 4a 0c             	mov    0xc(%edx),%ecx
50ac08:	89 4c 24 08          	mov    %ecx,0x8(%esp)
50ac0c:	e9 e1 00 00 00       	jmp    0x50acf2
50ac11:	33 db                	xor    %ebx,%ebx
50ac13:	33 c0                	xor    %eax,%eax
50ac15:	89 44 24 0c          	mov    %eax,0xc(%esp)
50ac19:	8d 54 24 28          	lea    0x28(%esp),%edx
50ac1d:	89 54 24 24          	mov    %edx,0x24(%esp)
50ac21:	8b 0c 24             	mov    (%esp),%ecx
50ac24:	8d 81 f0 00 00 00    	lea    0xf0(%ecx),%eax
50ac2a:	89 44 24 1c          	mov    %eax,0x1c(%esp)
50ac2e:	eb 7a                	jmp    0x50acaa
50ac30:	8b 54 24 1c          	mov    0x1c(%esp),%edx
50ac34:	8b 0a                	mov    (%edx),%ecx
50ac36:	89 4c 24 18          	mov    %ecx,0x18(%esp)
50ac3a:	8b 44 24 18          	mov    0x18(%esp),%eax
50ac3e:	8b 50 34             	mov    0x34(%eax),%edx
50ac41:	0f af 54 24 08       	imul   0x8(%esp),%edx
50ac46:	89 54 24 14          	mov    %edx,0x14(%esp)
50ac4a:	33 f6                	xor    %esi,%esi
50ac4c:	8b 44 24 24          	mov    0x24(%esp),%eax
50ac50:	8b d0                	mov    %eax,%edx
50ac52:	89 54 24 20          	mov    %edx,0x20(%esp)
50ac56:	eb 3b                	jmp    0x50ac93
50ac58:	8b 44 24 20          	mov    0x20(%esp),%eax
50ac5c:	8b 4c 24 10          	mov    0x10(%esp),%ecx
50ac60:	03 ce                	add    %esi,%ecx
50ac62:	8b 10                	mov    (%eax),%edx
50ac64:	8b 44 24 14          	mov    0x14(%esp),%eax
50ac68:	c1 e0 07             	shl    $0x7,%eax
50ac6b:	8b 14 8a             	mov    (%edx,%ecx,4),%edx
50ac6e:	03 d0                	add    %eax,%edx
50ac70:	8b 44 24 04          	mov    0x4(%esp),%eax
50ac74:	33 c9                	xor    %ecx,%ecx
50ac76:	8d 44 98 18          	lea    0x18(%eax,%ebx,4),%eax
50ac7a:	eb 0d                	jmp    0x50ac89
50ac7c:	89 10                	mov    %edx,(%eax)
50ac7e:	81 c2 80 00 00 00    	add    $0x80,%edx
50ac84:	43                   	inc    %ebx
50ac85:	83 c0 04             	add    $0x4,%eax
50ac88:	41                   	inc    %ecx
50ac89:	8b 7c 24 18          	mov    0x18(%esp),%edi
50ac8d:	3b 4f 34             	cmp    0x34(%edi),%ecx
50ac90:	7c ea                	jl     0x50ac7c
50ac92:	46                   	inc    %esi
50ac93:	8b 44 24 18          	mov    0x18(%esp),%eax
50ac97:	3b 70 38             	cmp    0x38(%eax),%esi
50ac9a:	7c bc                	jl     0x50ac58
50ac9c:	ff 44 24 0c          	incl   0xc(%esp)
50aca0:	83 44 24 24 04       	addl   $0x4,0x24(%esp)
50aca5:	83 44 24 1c 04       	addl   $0x4,0x1c(%esp)
50acaa:	8b 14 24             	mov    (%esp),%edx
50acad:	8b 8a ec 00 00 00    	mov    0xec(%edx),%ecx
50acb3:	3b 4c 24 0c          	cmp    0xc(%esp),%ecx
50acb7:	0f 8f 73 ff ff ff    	jg     0x50ac30
50acbd:	8b 04 24             	mov    (%esp),%eax
50acc0:	8b 54 24 04          	mov    0x4(%esp),%edx
50acc4:	83 c2 18             	add    $0x18,%edx
50acc7:	8b 88 64 01 00 00    	mov    0x164(%eax),%ecx
50accd:	ff 51 04             	call   *0x4(%ecx)
50acd0:	85 c0                	test   %eax,%eax
50acd2:	75 1a                	jne    0x50acee
50acd4:	8b 44 24 04          	mov    0x4(%esp),%eax
50acd8:	8b 54 24 10          	mov    0x10(%esp),%edx
50acdc:	89 50 10             	mov    %edx,0x10(%eax)
50acdf:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50ace3:	8b 44 24 08          	mov    0x8(%esp),%eax
50ace7:	89 41 0c             	mov    %eax,0xc(%ecx)
50acea:	33 c0                	xor    %eax,%eax
50acec:	eb 49                	jmp    0x50ad37
50acee:	ff 44 24 08          	incl   0x8(%esp)
50acf2:	8b 14 24             	mov    (%esp),%edx
50acf5:	8b 8a 00 01 00 00    	mov    0x100(%edx),%ecx
50acfb:	3b 4c 24 08          	cmp    0x8(%esp),%ecx
50acff:	0f 87 0c ff ff ff    	ja     0x50ac11
50ad05:	8b 44 24 04          	mov    0x4(%esp),%eax
50ad09:	33 d2                	xor    %edx,%edx
50ad0b:	89 50 0c             	mov    %edx,0xc(%eax)
50ad0e:	ff 44 24 10          	incl   0x10(%esp)
50ad12:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50ad16:	8b 41 14             	mov    0x14(%ecx),%eax
50ad19:	3b 44 24 10          	cmp    0x10(%esp),%eax
50ad1d:	0f 8f de fe ff ff    	jg     0x50ac01
50ad23:	8b 54 24 04          	mov    0x4(%esp),%edx
50ad27:	ff 42 08             	incl   0x8(%edx)
50ad2a:	8b 04 24             	mov    (%esp),%eax
50ad2d:	e8 a6 f8 ff ff       	call   0x50a5d8
50ad32:	b8 01 00 00 00       	mov    $0x1,%eax
50ad37:	83 c4 38             	add    $0x38,%esp
50ad3a:	5f                   	pop    %edi
50ad3b:	5e                   	pop    %esi
50ad3c:	5b                   	pop    %ebx
50ad3d:	c3                   	ret
50ad3e:	90                   	nop
50ad3f:	90                   	nop
50ad40:	53                   	push   %ebx
50ad41:	56                   	push   %esi
50ad42:	8b f0                	mov    %eax,%esi
50ad44:	57                   	push   %edi
50ad45:	8b c6                	mov    %esi,%eax
50ad47:	55                   	push   %ebp
50ad48:	8b da                	mov    %edx,%ebx
50ad4a:	ba 01 00 00 00       	mov    $0x1,%edx
50ad4f:	8b 78 04             	mov    0x4(%eax),%edi
50ad52:	83 c4 f8             	add    $0xfffffff8,%esp
50ad55:	b9 68 00 00 00       	mov    $0x68,%ecx
50ad5a:	ff 17                	call   *(%edi)
50ad5c:	89 04 24             	mov    %eax,(%esp)
50ad5f:	85 db                	test   %ebx,%ebx
50ad61:	8b 04 24             	mov    (%esp),%eax
50ad64:	89 86 50 01 00 00    	mov    %eax,0x150(%esi)
50ad6a:	8b 14 24             	mov    (%esp),%edx
50ad6d:	c7 02 24 a6 50 00    	movl   $0x50a624,(%edx)
50ad73:	74 53                	je     0x50adc8
50ad75:	33 c9                	xor    %ecx,%ecx
50ad77:	89 4c 24 04          	mov    %ecx,0x4(%esp)
50ad7b:	8b 5e 3c             	mov    0x3c(%esi),%ebx
50ad7e:	8b 04 24             	mov    (%esp),%eax
50ad81:	8d 78 40             	lea    0x40(%eax),%edi
50ad84:	eb 37                	jmp    0x50adbd
50ad86:	8b 53 08             	mov    0x8(%ebx),%edx
50ad89:	8b 43 1c             	mov    0x1c(%ebx),%eax
50ad8c:	e8 eb cd ff ff       	call   0x507b7c
50ad91:	50                   	push   %eax
50ad92:	8b 53 0c             	mov    0xc(%ebx),%edx
50ad95:	8b 43 20             	mov    0x20(%ebx),%eax
50ad98:	e8 df cd ff ff       	call   0x507b7c
50ad9d:	50                   	push   %eax
50ad9e:	8b c6                	mov    %esi,%eax
50ada0:	8b 4b 0c             	mov    0xc(%ebx),%ecx
50ada3:	ba 01 00 00 00       	mov    $0x1,%edx
50ada8:	51                   	push   %ecx
50ada9:	33 c9                	xor    %ecx,%ecx
50adab:	8b 68 04             	mov    0x4(%eax),%ebp
50adae:	ff 55 14             	call   *0x14(%ebp)
50adb1:	89 07                	mov    %eax,(%edi)
50adb3:	83 c7 04             	add    $0x4,%edi
50adb6:	ff 44 24 04          	incl   0x4(%esp)
50adba:	83 c3 54             	add    $0x54,%ebx
50adbd:	8b 46 34             	mov    0x34(%esi),%eax
50adc0:	3b 44 24 04          	cmp    0x4(%esp),%eax
50adc4:	7f c0                	jg     0x50ad86
50adc6:	eb 36                	jmp    0x50adfe
50adc8:	8b c6                	mov    %esi,%eax
50adca:	b9 00 05 00 00       	mov    $0x500,%ecx
50adcf:	ba 01 00 00 00       	mov    $0x1,%edx
50add4:	8b 58 04             	mov    0x4(%eax),%ebx
50add7:	ff 53 04             	call   *0x4(%ebx)
50adda:	8b c8                	mov    %eax,%ecx
50addc:	33 c0                	xor    %eax,%eax
50adde:	8b 14 24             	mov    (%esp),%edx
50ade1:	83 c2 18             	add    $0x18,%edx
50ade4:	8b d8                	mov    %eax,%ebx
50ade6:	40                   	inc    %eax
50ade7:	c1 e3 07             	shl    $0x7,%ebx
50adea:	03 d9                	add    %ecx,%ebx
50adec:	89 1a                	mov    %ebx,(%edx)
50adee:	83 c2 04             	add    $0x4,%edx
50adf1:	83 f8 0a             	cmp    $0xa,%eax
50adf4:	7c ee                	jl     0x50ade4
50adf6:	8b 04 24             	mov    (%esp),%eax
50adf9:	33 d2                	xor    %edx,%edx
50adfb:	89 50 40             	mov    %edx,0x40(%eax)
50adfe:	59                   	pop    %ecx
50adff:	5a                   	pop    %edx
50ae00:	5d                   	pop    %ebp
50ae01:	5f                   	pop    %edi
50ae02:	5e                   	pop    %esi
50ae03:	5b                   	pop    %ebx
50ae04:	c3                   	ret
50ae05:	8d 40 00             	lea    0x0(%eax),%eax
50ae08:	53                   	push   %ebx
50ae09:	8b d8                	mov    %eax,%ebx
50ae0b:	8b c3                	mov    %ebx,%eax
50ae0d:	56                   	push   %esi
50ae0e:	51                   	push   %ecx
50ae0f:	b9 00 20 00 00       	mov    $0x2000,%ecx
50ae14:	8b b3 58 01 00 00    	mov    0x158(%ebx),%esi
50ae1a:	8b 58 04             	mov    0x4(%eax),%ebx
50ae1d:	ba 01 00 00 00       	mov    $0x1,%edx
50ae22:	ff 13                	call   *(%ebx)
50ae24:	89 04 24             	mov    %eax,(%esp)
50ae27:	89 46 08             	mov    %eax,0x8(%esi)
50ae2a:	33 d2                	xor    %edx,%edx
50ae2c:	8b 0c 24             	mov    (%esp),%ecx
50ae2f:	8b c1                	mov    %ecx,%eax
50ae31:	69 ca 8b 4c 00 00    	imul   $0x4c8b,%edx,%ecx
50ae37:	89 08                	mov    %ecx,(%eax)
50ae39:	69 ca 46 96 00 00    	imul   $0x9646,%edx,%ecx
50ae3f:	89 88 00 04 00 00    	mov    %ecx,0x400(%eax)
50ae45:	69 ca 2f 1d 00 00    	imul   $0x1d2f,%edx,%ecx
50ae4b:	81 c1 00 80 00 00    	add    $0x8000,%ecx
50ae51:	89 88 00 08 00 00    	mov    %ecx,0x800(%eax)
50ae57:	69 ca cd d4 ff ff    	imul   $0xffffd4cd,%edx,%ecx
50ae5d:	89 88 00 0c 00 00    	mov    %ecx,0xc00(%eax)
50ae63:	69 ca 33 ab ff ff    	imul   $0xffffab33,%edx,%ecx
50ae69:	89 88 00 10 00 00    	mov    %ecx,0x1000(%eax)
50ae6f:	8b ca                	mov    %edx,%ecx
50ae71:	c1 e1 0f             	shl    $0xf,%ecx
50ae74:	81 c1 ff 7f 80 00    	add    $0x807fff,%ecx
50ae7a:	89 88 00 14 00 00    	mov    %ecx,0x1400(%eax)
50ae80:	69 ca d1 94 ff ff    	imul   $0xffff94d1,%edx,%ecx
50ae86:	89 88 00 18 00 00    	mov    %ecx,0x1800(%eax)
50ae8c:	69 ca 2f eb ff ff    	imul   $0xffffeb2f,%edx,%ecx
50ae92:	89 88 00 1c 00 00    	mov    %ecx,0x1c00(%eax)
50ae98:	42                   	inc    %edx
50ae99:	83 c0 04             	add    $0x4,%eax
50ae9c:	81 fa ff 00 00 00    	cmp    $0xff,%edx
50aea2:	7e 8d                	jle    0x50ae31
50aea4:	5a                   	pop    %edx
50aea5:	5e                   	pop    %esi
50aea6:	5b                   	pop    %ebx
50aea7:	c3                   	ret
50aea8:	55                   	push   %ebp
50aea9:	8b ec                	mov    %esp,%ebp
50aeab:	83 c4 e0             	add    $0xffffffe0,%esp
50aeae:	53                   	push   %ebx
50aeaf:	56                   	push   %esi
50aeb0:	57                   	push   %edi
50aeb1:	89 4d f8             	mov    %ecx,-0x8(%ebp)
50aeb4:	89 55 fc             	mov    %edx,-0x4(%ebp)
50aeb7:	8b 90 58 01 00 00    	mov    0x158(%eax),%edx
50aebd:	8b 72 08             	mov    0x8(%edx),%esi
50aec0:	8b 40 18             	mov    0x18(%eax),%eax
50aec3:	89 45 ec             	mov    %eax,-0x14(%ebp)
50aec6:	e9 d1 00 00 00       	jmp    0x50af9c
50aecb:	8b 55 fc             	mov    -0x4(%ebp),%edx
50aece:	8b 02                	mov    (%edx),%eax
50aed0:	83 45 fc 04          	addl   $0x4,-0x4(%ebp)
50aed4:	8b 55 f8             	mov    -0x8(%ebp),%edx
50aed7:	8b 0a                	mov    (%edx),%ecx
50aed9:	8b 55 0c             	mov    0xc(%ebp),%edx
50aedc:	8b 14 91             	mov    (%ecx,%edx,4),%edx
50aedf:	8b 4d f8             	mov    -0x8(%ebp),%ecx
50aee2:	8b 49 04             	mov    0x4(%ecx),%ecx
50aee5:	8b 5d 0c             	mov    0xc(%ebp),%ebx
50aee8:	8b 0c 99             	mov    (%ecx,%ebx,4),%ecx
50aeeb:	8b 5d f8             	mov    -0x8(%ebp),%ebx
50aeee:	8b 5b 08             	mov    0x8(%ebx),%ebx
50aef1:	8b 7d 0c             	mov    0xc(%ebp),%edi
50aef4:	8b 1c bb             	mov    (%ebx,%edi,4),%ebx
50aef7:	ff 45 0c             	incl   0xc(%ebp)
50aefa:	33 ff                	xor    %edi,%edi
50aefc:	89 7d f0             	mov    %edi,-0x10(%ebp)
50aeff:	89 5d e0             	mov    %ebx,-0x20(%ebp)
50af02:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
50af05:	89 55 e8             	mov    %edx,-0x18(%ebp)
50af08:	8b 55 f0             	mov    -0x10(%ebp),%edx
50af0b:	3b 55 ec             	cmp    -0x14(%ebp),%edx
50af0e:	0f 83 88 00 00 00    	jae    0x50af9c
50af14:	33 d2                	xor    %edx,%edx
50af16:	33 c9                	xor    %ecx,%ecx
50af18:	8a 50 02             	mov    0x2(%eax),%dl
50af1b:	33 db                	xor    %ebx,%ebx
50af1d:	8a 48 01             	mov    0x1(%eax),%cl
50af20:	8a 18                	mov    (%eax),%bl
50af22:	89 5d f4             	mov    %ebx,-0xc(%ebp)
50af25:	83 c0 03             	add    $0x3,%eax
50af28:	8b 1c 96             	mov    (%esi,%edx,4),%ebx
50af2b:	8b 7d f4             	mov    -0xc(%ebp),%edi
50af2e:	03 9c 8e 00 04 00 00 	add    0x400(%esi,%ecx,4),%ebx
50af35:	03 9c be 00 08 00 00 	add    0x800(%esi,%edi,4),%ebx
50af3c:	8b 7d e8             	mov    -0x18(%ebp),%edi
50af3f:	c1 fb 10             	sar    $0x10,%ebx