50c853:	e8 95 90 f0 ff       	call   0x4158ed
50c858:	ff b0 04 02 00 00    	push   0x204(%eax)
50c85e:	8b 0e                	mov    (%esi),%ecx
50c860:	68 78 c7 bd 00       	push   $0xbdc778
50c865:	68 ec 5f bd 00       	push   $0xbd5fec
50c86a:	56                   	push   %esi
50c86b:	89 7d fc             	mov    %edi,-0x4(%ebp)
50c86e:	ff 51 18             	call   *0x18(%ecx)
50c871:	83 c4 10             	add    $0x10,%esp
50c874:	8d 8d 6c 06 00 00    	lea    0x66c(%ebp),%ecx
50c87a:	e8 6d 7c f1 ff       	call   0x4244ec
50c87f:	32 c0                	xor    %al,%al
50c881:	e9 38 0f 00 00       	jmp    0x50d7be
50c886:	80 bd a8 09 00 00 00 	cmpb   $0x0,0x9a8(%ebp)
50c88d:	74 70                	je     0x50c8ff
50c88f:	83 bb 14 05 00 00 00 	cmpl   $0x0,0x514(%ebx)
50c896:	74 61                	je     0x50c8f9
50c898:	8d 85 54 05 00 00    	lea    0x554(%ebp),%eax
50c89e:	c7 85 50 05 00 00 f8 	movl   $0xbd1cf8,0x550(%ebp)
50c8a5:	1c bd 00
50c8a8:	56                   	push   %esi
50c8a9:	8d 8d 50 05 00 00    	lea    0x550(%ebp),%ecx
50c8af:	89 85 58 06 00 00    	mov    %eax,0x658(%ebp)
50c8b5:	c7 85 5c 06 00 00 04 	movl   $0x104,0x65c(%ebp)
50c8bc:	01 00 00
50c8bf:	e8 b2 34 f0 ff       	call   0x40fd76
50c8c4:	c7 85 50 05 00 00 04 	movl   $0xbd1d04,0x550(%ebp)
50c8cb:	1d bd 00
50c8ce:	8b 8b 14 05 00 00    	mov    0x514(%ebx),%ecx
50c8d4:	8d 95 50 05 00 00    	lea    0x550(%ebp),%edx
50c8da:	b8 01 00 00 00       	mov    $0x1,%eax
50c8df:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
50c8e6:	89 45 e0             	mov    %eax,-0x20(%ebp)
50c8e9:	89 45 ec             	mov    %eax,-0x14(%ebp)
50c8ec:	8b 01                	mov    (%ecx),%eax
50c8ee:	57                   	push   %edi
50c8ef:	52                   	push   %edx
50c8f0:	8b 40 04             	mov    0x4(%eax),%eax
50c8f3:	ff d0                	call   *%eax
50c8f5:	84 c0                	test   %al,%al
50c8f7:	75 06                	jne    0x50c8ff
50c8f9:	c6 45 f3 01          	movb   $0x1,-0xd(%ebp)
50c8fd:	eb 04                	jmp    0x50c903
50c8ff:	c6 45 f3 00          	movb   $0x0,-0xd(%ebp)
50c903:	8b 45 e0             	mov    -0x20(%ebp),%eax
50c906:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
50c90d:	a8 01                	test   $0x1,%al
50c90f:	74 11                	je     0x50c922
50c911:	83 e0 fe             	and    $0xfffffffe,%eax
50c914:	8d 8d 50 05 00 00    	lea    0x550(%ebp),%ecx
50c91a:	89 45 e0             	mov    %eax,-0x20(%ebp)
50c91d:	e8 d6 1b f0 ff       	call   0x40e4f8
50c922:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
50c926:	0f 85 53 ff ff ff    	jne    0x50c87f
50c92c:	57                   	push   %edi
50c92d:	8d 45 ac             	lea    -0x54(%ebp),%eax
50c930:	8b cb                	mov    %ebx,%ecx
50c932:	50                   	push   %eax
50c933:	e8 6b 89 f0 ff       	call   0x4152a3
50c938:	57                   	push   %edi
50c939:	8b cb                	mov    %ebx,%ecx
50c93b:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
50c942:	e8 2b 92 f0 ff       	call   0x415b72
50c947:	56                   	push   %esi
50c948:	89 45 ec             	mov    %eax,-0x14(%ebp)
50c94b:	e8 eb 5b ef ff       	call   0x40253b
50c950:	8b f8                	mov    %eax,%edi
50c952:	32 db                	xor    %bl,%bl
50c954:	83 c4 04             	add    $0x4,%esp
50c957:	89 5d e8             	mov    %ebx,-0x18(%ebp)
50c95a:	85 ff                	test   %edi,%edi
50c95c:	0f 84 2c 01 00 00    	je     0x50ca8e
50c962:	8b 4d ec             	mov    -0x14(%ebp),%ecx
50c965:	83 c1 1c             	add    $0x1c,%ecx
50c968:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
50c96c:	72 02                	jb     0x50c970
50c96e:	8b 09                	mov    (%ecx),%ecx
50c970:	6a 3b                	push   $0x3b
50c972:	51                   	push   %ecx
50c973:	8d 8d 60 06 00 00    	lea    0x660(%ebp),%ecx
50c979:	e8 51 06 f2 ff       	call   0x42cfcf
50c97e:	c7 85 60 06 00 00 a8 	movl   $0xbd62a8,0x660(%ebp)
50c985:	62 bd 00
50c988:	8b 85 74 08 00 00    	mov    0x874(%ebp),%eax
50c98e:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
50c992:	85 c0                	test   %eax,%eax
50c994:	74 3b                	je     0x50c9d1
50c996:	be 01 00 00 00       	mov    $0x1,%esi
50c99b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
50c9a0:	84 db                	test   %bl,%bl
50c9a2:	75 27                	jne    0x50c9cb
50c9a4:	50                   	push   %eax
50c9a5:	57                   	push   %edi
50c9a6:	e8 30 6b ef ff       	call   0x4034db
50c9ab:	83 c4 08             	add    $0x8,%esp
50c9ae:	0f b6 db             	movzbl %bl,%ebx
50c9b1:	85 c0                	test   %eax,%eax
50c9b3:	8d 8d 60 06 00 00    	lea    0x660(%ebp),%ecx
50c9b9:	0f 44 de             	cmove  %esi,%ebx
50c9bc:	e8 c8 b0 f1 ff       	call   0x427a89
50c9c1:	8b 85 74 08 00 00    	mov    0x874(%ebp),%eax
50c9c7:	85 c0                	test   %eax,%eax
50c9c9:	75 d5                	jne    0x50c9a0
50c9cb:	8b 75 dc             	mov    -0x24(%ebp),%esi
50c9ce:	89 5d e8             	mov    %ebx,-0x18(%ebp)
50c9d1:	8d 8d 60 06 00 00    	lea    0x660(%ebp),%ecx
50c9d7:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
50c9db:	e8 0c 7b f1 ff       	call   0x4244ec
50c9e0:	8b 45 ec             	mov    -0x14(%ebp),%eax
50c9e3:	05 88 00 00 00       	add    $0x88,%eax
50c9e8:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
50c9ec:	72 02                	jb     0x50c9f0
50c9ee:	8b 00                	mov    (%eax),%eax
50c9f0:	6a 3b                	push   $0x3b
50c9f2:	50                   	push   %eax
50c9f3:	8d 8d 60 06 00 00    	lea    0x660(%ebp),%ecx
50c9f9:	e8 d1 05 f2 ff       	call   0x42cfcf
50c9fe:	c7 85 60 06 00 00 a8 	movl   $0xbd62a8,0x660(%ebp)
50ca05:	62 bd 00
50ca08:	8b 85 74 08 00 00    	mov    0x874(%ebp),%eax
50ca0e:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
50ca12:	85 c0                	test   %eax,%eax
50ca14:	74 6d                	je     0x50ca83
50ca16:	84 db                	test   %bl,%bl
50ca18:	75 69                	jne    0x50ca83
50ca1a:	50                   	push   %eax
50ca1b:	57                   	push   %edi
50ca1c:	e8 ba 6a ef ff       	call   0x4034db
50ca21:	8b 8d 70 08 00 00    	mov    0x870(%ebp),%ecx
50ca27:	83 c4 08             	add    $0x8,%esp
50ca2a:	85 c0                	test   %eax,%eax
50ca2c:	0f b6 db             	movzbl %bl,%ebx
50ca2f:	b8 01 00 00 00       	mov    $0x1,%eax
50ca34:	0f 44 d8             	cmove  %eax,%ebx
50ca37:	89 5d e8             	mov    %ebx,-0x18(%ebp)
50ca3a:	85 c9                	test   %ecx,%ecx
50ca3c:	74 3b                	je     0x50ca79
50ca3e:	80 39 00             	cmpb   $0x0,(%ecx)
50ca41:	74 36                	je     0x50ca79
50ca43:	0f be 85 6c 08 00 00 	movsbl 0x86c(%ebp),%eax
50ca4a:	50                   	push   %eax
50ca4b:	51                   	push   %ecx
50ca4c:	89 8d 74 08 00 00    	mov    %ecx,0x874(%ebp)
50ca52:	e8 fc 82 f0 ff       	call   0x414d53
50ca57:	83 c4 08             	add    $0x8,%esp
50ca5a:	89 85 70 08 00 00    	mov    %eax,0x870(%ebp)
50ca60:	85 c0                	test   %eax,%eax
50ca62:	74 09                	je     0x50ca6d
50ca64:	c6 00 00             	movb   $0x0,(%eax)
50ca67:	ff 85 70 08 00 00    	incl   0x870(%ebp)
50ca6d:	8b 85 74 08 00 00    	mov    0x874(%ebp),%eax
50ca73:	85 c0                	test   %eax,%eax
50ca75:	75 9f                	jne    0x50ca16
50ca77:	eb 0a                	jmp    0x50ca83
50ca79:	c7 85 74 08 00 00 00 	movl   $0x0,0x874(%ebp)
50ca80:	00 00 00
50ca83:	8d 8d 60 06 00 00    	lea    0x660(%ebp),%ecx
50ca89:	e8 5e 7a f1 ff       	call   0x4244ec
50ca8e:	33 db                	xor    %ebx,%ebx
50ca90:	33 c0                	xor    %eax,%eax
50ca92:	33 ff                	xor    %edi,%edi
50ca94:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
50ca97:	89 5d c8             	mov    %ebx,-0x38(%ebp)
50ca9a:	89 7d cc             	mov    %edi,-0x34(%ebp)
50ca9d:	89 45 d4             	mov    %eax,-0x2c(%ebp)
50caa0:	89 45 d0             	mov    %eax,-0x30(%ebp)
50caa3:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
50caa7:	38 45 e8             	cmp    %al,-0x18(%ebp)
50caaa:	0f 85 3f 03 00 00    	jne    0x50cdef
50cab0:	8b 45 ec             	mov    -0x14(%ebp),%eax
50cab3:	83 c0 1c             	add    $0x1c,%eax
50cab6:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
50caba:	72 02                	jb     0x50cabe
50cabc:	8b 00                	mov    (%eax),%eax
50cabe:	6a 3b                	push   $0x3b
50cac0:	50                   	push   %eax
50cac1:	8d 8d 60 06 00 00    	lea    0x660(%ebp),%ecx
50cac7:	e8 03 05 f2 ff       	call   0x42cfcf
50cacc:	c7 85 60 06 00 00 a8 	movl   $0xbd62a8,0x660(%ebp)
50cad3:	62 bd 00
50cad6:	8b b5 74 08 00 00    	mov    0x874(%ebp),%esi
50cadc:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
50cae0:	85 f6                	test   %esi,%esi
50cae2:	0f 84 f5 02 00 00    	je     0x50cddd
50cae8:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
50caef:	00
50caf0:	8d 85 7c 08 00 00    	lea    0x87c(%ebp),%eax
50caf6:	c7 85 78 08 00 00 f8 	movl   $0xbd1cf8,0x878(%ebp)
50cafd:	1c bd 00
50cb00:	89 45 e8             	mov    %eax,-0x18(%ebp)
50cb03:	ba 04 01 00 00       	mov    $0x104,%edx
50cb08:	89 85 80 09 00 00    	mov    %eax,0x980(%ebp)
50cb0e:	8b 45 dc             	mov    -0x24(%ebp),%eax
50cb11:	89 95 84 09 00 00    	mov    %edx,0x984(%ebp)
50cb17:	85 c0                	test   %eax,%eax
50cb19:	75 08                	jne    0x50cb23
50cb1b:	88 85 7c 08 00 00    	mov    %al,0x87c(%ebp)
50cb21:	eb 78                	jmp    0x50cb9b
50cb23:	8b c8                	mov    %eax,%ecx
50cb25:	8d 71 01             	lea    0x1(%ecx),%esi
50cb28:	8a 01                	mov    (%ecx),%al
50cb2a:	41                   	inc    %ecx
50cb2b:	84 c0                	test   %al,%al
50cb2d:	75 f9                	jne    0x50cb28
50cb2f:	2b ce                	sub    %esi,%ecx
50cb31:	8d 41 01             	lea    0x1(%ecx),%eax
50cb34:	89 45 ec             	mov    %eax,-0x14(%ebp)
50cb37:	3d 04 01 00 00       	cmp    $0x104,%eax
50cb3c:	76 47                	jbe    0x50cb85
50cb3e:	50                   	push   %eax
50cb3f:	e8 53 8c f2 ff       	call   0x435797
50cb44:	ff b5 84 09 00 00    	push   0x984(%ebp)
50cb4a:	8b f0                	mov    %eax,%esi
50cb4c:	ff b5 80 09 00 00    	push   0x980(%ebp)
50cb52:	56                   	push   %esi
50cb53:	e8 2a 7b f0 ff       	call   0x414682
50cb58:	8b 85 80 09 00 00    	mov    0x980(%ebp),%eax
50cb5e:	8d 8d 7c 08 00 00    	lea    0x87c(%ebp),%ecx
50cb64:	83 c4 10             	add    $0x10,%esp
50cb67:	3b c1                	cmp    %ecx,%eax
50cb69:	74 09                	je     0x50cb74
50cb6b:	50                   	push   %eax
50cb6c:	e8 a1 1a f3 ff       	call   0x43e612
50cb71:	83 c4 04             	add    $0x4,%esp
50cb74:	8b 55 ec             	mov    -0x14(%ebp),%edx
50cb77:	89 b5 80 09 00 00    	mov    %esi,0x980(%ebp)
50cb7d:	89 95 84 09 00 00    	mov    %edx,0x984(%ebp)
50cb83:	eb 03                	jmp    0x50cb88
50cb85:	8b 75 e8             	mov    -0x18(%ebp),%esi
50cb88:	ff 75 dc             	push   -0x24(%ebp)
50cb8b:	52                   	push   %edx
50cb8c:	56                   	push   %esi
50cb8d:	e8 ff 2c f3 ff       	call   0x43f891
50cb92:	8b b5 74 08 00 00    	mov    0x874(%ebp),%esi
50cb98:	83 c4 0c             	add    $0xc,%esp
50cb9b:	c7 85 78 08 00 00 04 	movl   $0xbd1d04,0x878(%ebp)
50cba2:	1d bd 00
50cba5:	80 3e 2e             	cmpb   $0x2e,(%esi)
50cba8:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
50cbac:	74 0d                	je     0x50cbbb
50cbae:	6a 2e                	push   $0x2e
50cbb0:	8d 8d 78 08 00 00    	lea    0x878(%ebp),%ecx
50cbb6:	e8 31 fd ef ff       	call   0x40c8ec
50cbbb:	56                   	push   %esi
50cbbc:	8d 8d 78 08 00 00    	lea    0x878(%ebp),%ecx
50cbc2:	e8 fe 5d f2 ff       	call   0x4329c5
50cbc7:	8d 85 78 08 00 00    	lea    0x878(%ebp),%eax
50cbcd:	3b c7                	cmp    %edi,%eax
50cbcf:	0f 83 da 00 00 00    	jae    0x50ccaf
50cbd5:	3b d8                	cmp    %eax,%ebx
50cbd7:	0f 87 d2 00 00 00    	ja     0x50ccaf
50cbdd:	8b c8                	mov    %eax,%ecx
50cbdf:	b8 79 78 78 78       	mov    $0x78787879,%eax
50cbe4:	2b cb                	sub    %ebx,%ecx
50cbe6:	f7 e9                	imul   %ecx
50cbe8:	c1 fa 07             	sar    $0x7,%edx
50cbeb:	8b f2                	mov    %edx,%esi
50cbed:	c1 ee 1f             	shr    $0x1f,%esi
50cbf0:	03 f2                	add    %edx,%esi
50cbf2:	3b 7d d4             	cmp    -0x2c(%ebp),%edi
50cbf5:	75 16                	jne    0x50cc0d
50cbf7:	6a 01                	push   $0x1
50cbf9:	8d 4d c8             	lea    -0x38(%ebp),%ecx
50cbfc:	e8 7c 43 f0 ff       	call   0x410f7d
50cc01:	8b 45 d0             	mov    -0x30(%ebp),%eax
50cc04:	8b 7d cc             	mov    -0x34(%ebp),%edi
50cc07:	8b 5d c8             	mov    -0x38(%ebp),%ebx
50cc0a:	89 45 d4             	mov    %eax,-0x2c(%ebp)
50cc0d:	69 f6 10 01 00 00    	imul   $0x110,%esi,%esi
50cc13:	89 7d ec             	mov    %edi,-0x14(%ebp)
50cc16:	89 7d c4             	mov    %edi,-0x3c(%ebp)
50cc19:	03 f3                	add    %ebx,%esi
50cc1b:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
50cc1f:	85 ff                	test   %edi,%edi
50cc21:	0f 84 4a 01 00 00    	je     0x50cd71
50cc27:	c7 07 f8 1c bd 00    	movl   $0xbd1cf8,(%edi)
50cc2d:	8d 47 04             	lea    0x4(%edi),%eax
50cc30:	89 87 08 01 00 00    	mov    %eax,0x108(%edi)
50cc36:	c7 87 0c 01 00 00 04 	movl   $0x104,0x10c(%edi)
50cc3d:	01 00 00
50cc40:	3b fe                	cmp    %esi,%edi
50cc42:	0f 84 23 01 00 00    	je     0x50cd6b
50cc48:	8b 86 0c 01 00 00    	mov    0x10c(%esi),%eax
50cc4e:	89 45 e8             	mov    %eax,-0x18(%ebp)
50cc51:	3d 04 01 00 00       	cmp    $0x104,%eax
50cc56:	76 46                	jbe    0x50cc9e
50cc58:	50                   	push   %eax
50cc59:	e8 39 8b f2 ff       	call   0x435797
50cc5e:	ff b7 0c 01 00 00    	push   0x10c(%edi)
50cc64:	89 45 ec             	mov    %eax,-0x14(%ebp)
50cc67:	ff b7 08 01 00 00    	push   0x108(%edi)
50cc6d:	50                   	push   %eax
50cc6e:	e8 0f 7a f0 ff       	call   0x414682
50cc73:	8b 97 08 01 00 00    	mov    0x108(%edi),%edx
50cc79:	8d 4f 04             	lea    0x4(%edi),%ecx
50cc7c:	83 c4 10             	add    $0x10,%esp
50cc7f:	3b d1                	cmp    %ecx,%edx
50cc81:	74 09                	je     0x50cc8c
50cc83:	52                   	push   %edx
50cc84:	e8 89 19 f3 ff       	call   0x43e612
50cc89:	83 c4 04             	add    $0x4,%esp
50cc8c:	8b 45 ec             	mov    -0x14(%ebp),%eax
50cc8f:	89 87 08 01 00 00    	mov    %eax,0x108(%edi)
50cc95:	8b 45 e8             	mov    -0x18(%ebp),%eax
50cc98:	89 87 0c 01 00 00    	mov    %eax,0x10c(%edi)
50cc9e:	ff b6 0c 01 00 00    	push   0x10c(%esi)
50cca4:	ff b6 08 01 00 00    	push   0x108(%esi)
50ccaa:	e9 ae 00 00 00       	jmp    0x50cd5d
50ccaf:	3b 7d d4             	cmp    -0x2c(%ebp),%edi
50ccb2:	75 16                	jne    0x50ccca
50ccb4:	6a 01                	push   $0x1
50ccb6:	8d 4d c8             	lea    -0x38(%ebp),%ecx
50ccb9:	e8 bf 42 f0 ff       	call   0x410f7d
50ccbe:	8b 45 d0             	mov    -0x30(%ebp),%eax
50ccc1:	8b 7d cc             	mov    -0x34(%ebp),%edi
50ccc4:	8b 5d c8             	mov    -0x38(%ebp),%ebx
50ccc7:	89 45 d4             	mov    %eax,-0x2c(%ebp)
50ccca:	89 7d ec             	mov    %edi,-0x14(%ebp)
50cccd:	89 7d e8             	mov    %edi,-0x18(%ebp)
50ccd0:	c6 45 fc 09          	movb   $0x9,-0x4(%ebp)
50ccd4:	85 ff                	test   %edi,%edi
50ccd6:	0f 84 95 00 00 00    	je     0x50cd71
50ccdc:	8d 47 04             	lea    0x4(%edi),%eax
50ccdf:	c7 07 f8 1c bd 00    	movl   $0xbd1cf8,(%edi)
50cce5:	89 87 08 01 00 00    	mov    %eax,0x108(%edi)
50cceb:	8d 85 78 08 00 00    	lea    0x878(%ebp),%eax
50ccf1:	c7 87 0c 01 00 00 04 	movl   $0x104,0x10c(%edi)
50ccf8:	01 00 00
50ccfb:	3b f8                	cmp    %eax,%edi
50ccfd:	74 6c                	je     0x50cd6b
50ccff:	8b b5 84 09 00 00    	mov    0x984(%ebp),%esi
50cd05:	81 fe 04 01 00 00    	cmp    $0x104,%esi
50cd0b:	76 49                	jbe    0x50cd56
50cd0d:	56                   	push   %esi
50cd0e:	e8 84 8a f2 ff       	call   0x435797
50cd13:	ff b7 0c 01 00 00    	push   0x10c(%edi)
50cd19:	89 45 ec             	mov    %eax,-0x14(%ebp)
50cd1c:	ff b7 08 01 00 00    	push   0x108(%edi)
50cd22:	50                   	push   %eax
50cd23:	e8 5a 79 f0 ff       	call   0x414682
50cd28:	8b 97 08 01 00 00    	mov    0x108(%edi),%edx
50cd2e:	8d 4f 04             	lea    0x4(%edi),%ecx
50cd31:	83 c4 10             	add    $0x10,%esp
50cd34:	3b d1                	cmp    %ecx,%edx
50cd36:	74 09                	je     0x50cd41
50cd38:	52                   	push   %edx
50cd39:	e8 d4 18 f3 ff       	call   0x43e612
50cd3e:	83 c4 04             	add    $0x4,%esp
50cd41:	8b 45 ec             	mov    -0x14(%ebp),%eax
50cd44:	89 87 08 01 00 00    	mov    %eax,0x108(%edi)