50c791:	2b f9                	sub    %ecx,%edi
50c793:	8b 5c 24 14          	mov    0x14(%esp),%ebx
50c797:	85 db                	test   %ebx,%ebx
50c799:	74 43                	je     0x50c7de
50c79b:	57                   	push   %edi
50c79c:	50                   	push   %eax
50c79d:	8d 44 24 24          	lea    0x24(%esp),%eax
50c7a1:	50                   	push   %eax
50c7a2:	e8 09 ae 00 00       	call   0x5175b0
50c7a7:	8b e8                	mov    %eax,%ebp
50c7a9:	83 c4 0c             	add    $0xc,%esp
50c7ac:	85 ed                	test   %ebp,%ebp
50c7ae:	74 28                	je     0x50c7d8
50c7b0:	ff 74 24 1c          	push   0x1c(%esp)
50c7b4:	e8 c7 af fd ff       	call   0x4e7780
50c7b9:	ff 74 24 20          	push   0x20(%esp)
50c7bd:	f7 d8                	neg    %eax
50c7bf:	1b f6                	sbb    %esi,%esi
50c7c1:	23 f5                	and    %ebp,%esi
50c7c3:	e8 e8 f5 fe ff       	call   0x4fbdb0
50c7c8:	8b 4c 24 24          	mov    0x24(%esp),%ecx
50c7cc:	83 c4 08             	add    $0x8,%esp
50c7cf:	8b c6                	mov    %esi,%eax
50c7d1:	89 0b                	mov    %ecx,(%ebx)
50c7d3:	5f                   	pop    %edi
50c7d4:	5e                   	pop    %esi
50c7d5:	5d                   	pop    %ebp
50c7d6:	5b                   	pop    %ebx
50c7d7:	c3                   	ret
50c7d8:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
50c7de:	a1 80 68 69 00       	mov    0x696880,%eax
50c7e3:	be 14 00 00 00       	mov    $0x14,%esi
50c7e8:	85 c0                	test   %eax,%eax
50c7ea:	74 0c                	je     0x50c7f8
50c7ec:	50                   	push   %eax
50c7ed:	e8 ce 88 fd ff       	call   0x4e50c0
50c7f2:	83 c4 04             	add    $0x4,%esp
50c7f5:	8d 70 14             	lea    0x14(%eax),%esi
50c7f8:	85 f6                	test   %esi,%esi
50c7fa:	7e 67                	jle    0x50c863
50c7fc:	0f 1f 40 00          	nopl   0x0(%eax)
50c800:	83 ee 01             	sub    $0x1,%esi
50c803:	79 04                	jns    0x50c809
50c805:	33 db                	xor    %ebx,%ebx
50c807:	eb 22                	jmp    0x50c82b
50c809:	83 fe 14             	cmp    $0x14,%esi
50c80c:	7d 09                	jge    0x50c817
50c80e:	8b 1c b5 88 e0 68 00 	mov    0x68e088(,%esi,4),%ebx
50c815:	eb 14                	jmp    0x50c82b
50c817:	8d 46 ec             	lea    -0x14(%esi),%eax
50c81a:	50                   	push   %eax
50c81b:	ff 35 80 68 69 00    	push   0x696880
50c821:	e8 5a 8a fd ff       	call   0x4e5280
50c826:	83 c4 08             	add    $0x8,%esp
50c829:	8b d8                	mov    %eax,%ebx
50c82b:	f6 43 08 01          	testb  $0x1,0x8(%ebx)
50c82f:	75 2e                	jne    0x50c85f
50c831:	8b 53 0c             	mov    0xc(%ebx),%edx
50c834:	8b ca                	mov    %edx,%ecx
50c836:	8d 69 01             	lea    0x1(%ecx),%ebp
50c839:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
50c840:	8a 01                	mov    (%ecx),%al
50c842:	41                   	inc    %ecx
50c843:	84 c0                	test   %al,%al
50c845:	75 f9                	jne    0x50c840
50c847:	2b cd                	sub    %ebp,%ecx
50c849:	3b cf                	cmp    %edi,%ecx
50c84b:	75 12                	jne    0x50c85f
50c84d:	57                   	push   %edi
50c84e:	ff 74 24 1c          	push   0x1c(%esp)
50c852:	52                   	push   %edx
50c853:	e8 01 91 0d 00       	call   0x5e5959
50c858:	83 c4 0c             	add    $0xc,%esp
50c85b:	85 c0                	test   %eax,%eax
50c85d:	74 0b                	je     0x50c86a
50c85f:	85 f6                	test   %esi,%esi
50c861:	7f 9d                	jg     0x50c800
50c863:	5f                   	pop    %edi
50c864:	5e                   	pop    %esi
50c865:	5d                   	pop    %ebp
50c866:	33 c0                	xor    %eax,%eax
50c868:	5b                   	pop    %ebx
50c869:	c3                   	ret
50c86a:	5f                   	pop    %edi
50c86b:	5e                   	pop    %esi
50c86c:	5d                   	pop    %ebp
50c86d:	8b c3                	mov    %ebx,%eax
50c86f:	5b                   	pop    %ebx
50c870:	c3                   	ret
50c871:	cc                   	int3
50c872:	cc                   	int3
50c873:	cc                   	int3
50c874:	cc                   	int3
50c875:	cc                   	int3
50c876:	cc                   	int3
50c877:	cc                   	int3
50c878:	cc                   	int3
50c879:	cc                   	int3
50c87a:	cc                   	int3
50c87b:	cc                   	int3
50c87c:	cc                   	int3
50c87d:	cc                   	int3
50c87e:	cc                   	int3
50c87f:	cc                   	int3
50c880:	56                   	push   %esi
50c881:	8b 74 24 08          	mov    0x8(%esp),%esi
50c885:	85 f6                	test   %esi,%esi
50c887:	74 3d                	je     0x50c8c6
50c889:	f6 46 08 02          	testb  $0x2,0x8(%esi)
50c88d:	74 37                	je     0x50c8c6
50c88f:	68 22 01 00 00       	push   $0x122
50c894:	68 c4 b4 62 00       	push   $0x62b4c4
50c899:	ff 76 0c             	push   0xc(%esi)
50c89c:	e8 df 3e fd ff       	call   0x4e0780
50c8a1:	68 23 01 00 00       	push   $0x123
50c8a6:	68 c4 b4 62 00       	push   $0x62b4c4
50c8ab:	ff 76 10             	push   0x10(%esi)
50c8ae:	e8 cd 3e fd ff       	call   0x4e0780
50c8b3:	68 24 01 00 00       	push   $0x124
50c8b8:	68 c4 b4 62 00       	push   $0x62b4c4
50c8bd:	56                   	push   %esi
50c8be:	e8 bd 3e fd ff       	call   0x4e0780
50c8c3:	83 c4 24             	add    $0x24,%esp
50c8c6:	5e                   	pop    %esi
50c8c7:	c3                   	ret
50c8c8:	cc                   	int3
50c8c9:	cc                   	int3
50c8ca:	cc                   	int3
50c8cb:	cc                   	int3
50c8cc:	cc                   	int3
50c8cd:	cc                   	int3
50c8ce:	cc                   	int3
50c8cf:	cc                   	int3
50c8d0:	8b 44 24 04          	mov    0x4(%esp),%eax
50c8d4:	85 c0                	test   %eax,%eax
50c8d6:	79 03                	jns    0x50c8db
50c8d8:	33 c0                	xor    %eax,%eax
50c8da:	c3                   	ret
50c8db:	83 f8 14             	cmp    $0x14,%eax
50c8de:	7d 08                	jge    0x50c8e8
50c8e0:	8b 04 85 88 e0 68 00 	mov    0x68e088(,%eax,4),%eax
50c8e7:	c3                   	ret
50c8e8:	83 c0 ec             	add    $0xffffffec,%eax
50c8eb:	50                   	push   %eax
50c8ec:	ff 35 80 68 69 00    	push   0x696880
50c8f2:	e8 89 89 fd ff       	call   0x4e5280
50c8f7:	83 c4 08             	add    $0x8,%esp
50c8fa:	c3                   	ret
50c8fb:	cc                   	int3
50c8fc:	cc                   	int3
50c8fd:	cc                   	int3
50c8fe:	cc                   	int3
50c8ff:	cc                   	int3
50c900:	8b 4c 24 18          	mov    0x18(%esp),%ecx
50c904:	85 c9                	test   %ecx,%ecx
50c906:	75 03                	jne    0x50c90b
50c908:	33 c0                	xor    %eax,%eax
50c90a:	c3                   	ret
50c90b:	8b 54 24 04          	mov    0x4(%esp),%edx
50c90f:	85 d2                	test   %edx,%edx
50c911:	74 04                	je     0x50c917
50c913:	8b 01                	mov    (%ecx),%eax
50c915:	89 02                	mov    %eax,(%edx)
50c917:	8b 54 24 08          	mov    0x8(%esp),%edx
50c91b:	85 d2                	test   %edx,%edx
50c91d:	74 05                	je     0x50c924
50c91f:	8b 41 04             	mov    0x4(%ecx),%eax
50c922:	89 02                	mov    %eax,(%edx)
50c924:	8b 54 24 0c          	mov    0xc(%esp),%edx
50c928:	85 d2                	test   %edx,%edx
50c92a:	74 05                	je     0x50c931
50c92c:	8b 41 08             	mov    0x8(%ecx),%eax
50c92f:	89 02                	mov    %eax,(%edx)
50c931:	8b 54 24 10          	mov    0x10(%esp),%edx
50c935:	85 d2                	test   %edx,%edx
50c937:	74 05                	je     0x50c93e
50c939:	8b 41 10             	mov    0x10(%ecx),%eax
50c93c:	89 02                	mov    %eax,(%edx)
50c93e:	8b 54 24 14          	mov    0x14(%esp),%edx
50c942:	85 d2                	test   %edx,%edx
50c944:	74 05                	je     0x50c94b
50c946:	8b 41 0c             	mov    0xc(%ecx),%eax
50c949:	89 02                	mov    %eax,(%edx)
50c94b:	b8 01 00 00 00       	mov    $0x1,%eax
50c950:	c3                   	ret
50c951:	cc                   	int3
50c952:	cc                   	int3
50c953:	cc                   	int3
50c954:	cc                   	int3
50c955:	cc                   	int3
50c956:	cc                   	int3
50c957:	cc                   	int3
50c958:	cc                   	int3
50c959:	cc                   	int3
50c95a:	cc                   	int3
50c95b:	cc                   	int3
50c95c:	cc                   	int3
50c95d:	cc                   	int3
50c95e:	cc                   	int3
50c95f:	cc                   	int3
50c960:	a1 80 68 69 00       	mov    0x696880,%eax
50c965:	85 c0                	test   %eax,%eax
50c967:	74 0d                	je     0x50c976
50c969:	50                   	push   %eax
50c96a:	e8 51 87 fd ff       	call   0x4e50c0
50c96f:	83 c4 04             	add    $0x4,%esp
50c972:	83 c0 14             	add    $0x14,%eax
50c975:	c3                   	ret
50c976:	b8 14 00 00 00       	mov    $0x14,%eax
50c97b:	c3                   	ret
50c97c:	cc                   	int3
50c97d:	cc                   	int3
50c97e:	cc                   	int3
50c97f:	cc                   	int3
50c980:	56                   	push   %esi
50c981:	8b 74 24 08          	mov    0x8(%esp),%esi
50c985:	85 f6                	test   %esi,%esi
50c987:	0f 84 9a 00 00 00    	je     0x50ca27
50c98d:	83 c9 ff             	or     $0xffffffff,%ecx
50c990:	8d 46 38             	lea    0x38(%esi),%eax
50c993:	f0 0f c1 08          	lock xadd %ecx,(%eax)
50c997:	49                   	dec    %ecx
50c998:	85 c9                	test   %ecx,%ecx
50c99a:	0f 8f 87 00 00 00    	jg     0x50ca27
50c9a0:	8b 46 40             	mov    0x40(%esi),%eax
50c9a3:	85 c0                	test   %eax,%eax
50c9a5:	74 0d                	je     0x50c9b4
50c9a7:	8b 40 14             	mov    0x14(%eax),%eax
50c9aa:	85 c0                	test   %eax,%eax
50c9ac:	74 06                	je     0x50c9b4
50c9ae:	56                   	push   %esi
50c9af:	ff d0                	call   *%eax
50c9b1:	83 c4 04             	add    $0x4,%esp
50c9b4:	ff 76 44             	push   0x44(%esi)
50c9b7:	e8 f4 ac fd ff       	call   0x4e76b0
50c9bc:	8d 46 3c             	lea    0x3c(%esi),%eax
50c9bf:	50                   	push   %eax
50c9c0:	56                   	push   %esi
50c9c1:	6a 06                	push   $0x6
50c9c3:	e8 28 37 fd ff       	call   0x4e00f0
50c9c8:	ff 76 48             	push   0x48(%esi)
50c9cb:	e8 80 55 fd ff       	call   0x4e1f50
50c9d0:	ff 76 08             	push   0x8(%esi)
50c9d3:	e8 c8 ce fc ff       	call   0x4d98a0
50c9d8:	ff 76 0c             	push   0xc(%esi)
50c9db:	e8 c0 ce fc ff       	call   0x4d98a0
50c9e0:	ff 76 24             	push   0x24(%esi)
50c9e3:	e8 b8 ce fc ff       	call   0x4d98a0
50c9e8:	ff 76 28             	push   0x28(%esi)
50c9eb:	e8 b0 ce fc ff       	call   0x4d98a0
50c9f0:	6a 7b                	push   $0x7b
50c9f2:	68 dc b4 62 00       	push   $0x62b4dc
50c9f7:	ff 76 2c             	push   0x2c(%esi)
50c9fa:	e8 81 3d fd ff       	call   0x4e0780
50c9ff:	ff 76 34             	push   0x34(%esi)
50ca02:	e8 99 ce fc ff       	call   0x4d98a0
50ca07:	ff 76 14             	push   0x14(%esi)
50ca0a:	e8 91 ce fc ff       	call   0x4d98a0
50ca0f:	ff 76 18             	push   0x18(%esi)
50ca12:	e8 89 ce fc ff       	call   0x4d98a0
50ca17:	6a 7f                	push   $0x7f
50ca19:	68 dc b4 62 00       	push   $0x62b4dc
50ca1e:	56                   	push   %esi
50ca1f:	e8 5c 3d fd ff       	call   0x4e0780
50ca24:	83 c4 48             	add    $0x48,%esp
50ca27:	5e                   	pop    %esi
50ca28:	c3                   	ret
50ca29:	cc                   	int3
50ca2a:	cc                   	int3
50ca2b:	cc                   	int3
50ca2c:	cc                   	int3
50ca2d:	cc                   	int3
50ca2e:	cc                   	int3
50ca2f:	cc                   	int3
50ca30:	8b 4c 24 08          	mov    0x8(%esp),%ecx
50ca34:	8b 54 24 04          	mov    0x4(%esp),%edx
50ca38:	85 c9                	test   %ecx,%ecx
50ca3a:	74 05                	je     0x50ca41
50ca3c:	8b 42 14             	mov    0x14(%edx),%eax
50ca3f:	89 01                	mov    %eax,(%ecx)
50ca41:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
50ca45:	85 c9                	test   %ecx,%ecx
50ca47:	74 05                	je     0x50ca4e
50ca49:	8b 42 18             	mov    0x18(%edx),%eax
50ca4c:	89 01                	mov    %eax,(%ecx)
50ca4e:	c3                   	ret
50ca4f:	cc                   	int3
50ca50:	8b 54 24 08          	mov    0x8(%esp),%edx
50ca54:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50ca58:	85 d2                	test   %edx,%edx
50ca5a:	74 05                	je     0x50ca61
50ca5c:	8b 41 08             	mov    0x8(%ecx),%eax
50ca5f:	89 02                	mov    %eax,(%edx)
50ca61:	8b 54 24 0c          	mov    0xc(%esp),%edx
50ca65:	85 d2                	test   %edx,%edx
50ca67:	74 05                	je     0x50ca6e
50ca69:	8b 41 24             	mov    0x24(%ecx),%eax
50ca6c:	89 02                	mov    %eax,(%edx)
50ca6e:	8b 54 24 10          	mov    0x10(%esp),%edx
50ca72:	85 d2                	test   %edx,%edx
50ca74:	74 05                	je     0x50ca7b
50ca76:	8b 41 0c             	mov    0xc(%ecx),%eax
50ca79:	89 02                	mov    %eax,(%edx)
50ca7b:	c3                   	ret
50ca7c:	cc                   	int3
50ca7d:	cc                   	int3
50ca7e:	cc                   	int3
50ca7f:	cc                   	int3
50ca80:	6a 00                	push   $0x0
50ca82:	e8 09 00 00 00       	call   0x50ca90
50ca87:	83 c4 04             	add    $0x4,%esp
50ca8a:	c3                   	ret
50ca8b:	cc                   	int3
50ca8c:	cc                   	int3
50ca8d:	cc                   	int3
50ca8e:	cc                   	int3
50ca8f:	cc                   	int3
50ca90:	56                   	push   %esi
50ca91:	6a 2c                	push   $0x2c
50ca93:	68 dc b4 62 00       	push   $0x62b4dc
50ca98:	6a 4c                	push   $0x4c
50ca9a:	e8 a1 3f fd ff       	call   0x4e0a40
50ca9f:	8b f0                	mov    %eax,%esi
50caa1:	83 c4 0c             	add    $0xc,%esp
50caa4:	85 f6                	test   %esi,%esi
50caa6:	75 19                	jne    0x50cac1
50caa8:	6a 2f                	push   $0x2f
50caaa:	68 dc b4 62 00       	push   $0x62b4dc
50caaf:	6a 41                	push   $0x41
50cab1:	6a 69                	push   $0x69
50cab3:	6a 05                	push   $0x5
50cab5:	e8 c6 c4 fc ff       	call   0x4d8f80
50caba:	83 c4 14             	add    $0x14,%esp
50cabd:	33 c0                	xor    %eax,%eax
50cabf:	5e                   	pop    %esi
50cac0:	c3                   	ret
50cac1:	53                   	push   %ebx
50cac2:	8d 5e 38             	lea    0x38(%esi),%ebx
50cac5:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
50cacb:	e8 b0 54 fd ff       	call   0x4e1f80
50cad0:	89 46 48             	mov    %eax,0x48(%esi)
50cad3:	85 c0                	test   %eax,%eax
50cad5:	75 27                	jne    0x50cafe
50cad7:	6a 36                	push   $0x36
50cad9:	68 dc b4 62 00       	push   $0x62b4dc
50cade:	6a 41                	push   $0x41
50cae0:	6a 69                	push   $0x69
50cae2:	6a 05                	push   $0x5
50cae4:	e8 97 c4 fc ff       	call   0x4d8f80
50cae9:	6a 37                	push   $0x37