50d8d1:	ff 4b 04             	decl   0x4(%ebx)
50d8d4:	75 10                	jne    0x50d8e6
50d8d6:	8b c3                	mov    %ebx,%eax
50d8d8:	e8 4b fd ff ff       	call   0x50d628
50d8dd:	85 c0                	test   %eax,%eax
50d8df:	75 05                	jne    0x50d8e6
50d8e1:	33 c0                	xor    %eax,%eax
50d8e3:	5e                   	pop    %esi
50d8e4:	5b                   	pop    %ebx
50d8e5:	c3                   	ret
50d8e6:	33 d2                	xor    %edx,%edx
50d8e8:	8d 43 10             	lea    0x10(%ebx),%eax
50d8eb:	eb 08                	jmp    0x50d8f5
50d8ed:	33 c9                	xor    %ecx,%ecx
50d8ef:	42                   	inc    %edx
50d8f0:	89 08                	mov    %ecx,(%eax)
50d8f2:	83 c0 04             	add    $0x4,%eax
50d8f5:	8b 4b 20             	mov    0x20(%ebx),%ecx
50d8f8:	3b 91 ec 00 00 00    	cmp    0xec(%ecx),%edx
50d8fe:	7c ed                	jl     0x50d8ed
50d900:	b8 01 00 00 00       	mov    $0x1,%eax
50d905:	5e                   	pop    %esi
50d906:	5b                   	pop    %ebx
50d907:	c3                   	ret
50d908:	53                   	push   %ebx
50d909:	56                   	push   %esi
50d90a:	8b f0                	mov    %eax,%esi
50d90c:	57                   	push   %edi
50d90d:	55                   	push   %ebp
50d90e:	83 c4 d4             	add    $0xffffffd4,%esp
50d911:	8b 46 14             	mov    0x14(%esi),%eax
50d914:	8b da                	mov    %edx,%ebx
50d916:	8b ae 64 01 00 00    	mov    0x164(%esi),%ebp
50d91c:	8b 10                	mov    (%eax),%edx
50d91e:	89 54 24 08          	mov    %edx,0x8(%esp)
50d922:	8b 48 04             	mov    0x4(%eax),%ecx
50d925:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
50d929:	56                   	push   %esi
50d92a:	8d 7c 24 14          	lea    0x14(%esp),%edi
50d92e:	8d 75 0c             	lea    0xc(%ebp),%esi
50d931:	b9 06 00 00 00       	mov    $0x6,%ecx
50d936:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
50d938:	5e                   	pop    %esi
50d939:	89 74 24 28          	mov    %esi,0x28(%esp)
50d93d:	83 be c0 00 00 00 00 	cmpl   $0x0,0xc0(%esi)
50d944:	74 1d                	je     0x50d963
50d946:	83 7d 24 00          	cmpl   $0x0,0x24(%ebp)
50d94a:	75 17                	jne    0x50d963
50d94c:	8b 55 28             	mov    0x28(%ebp),%edx
50d94f:	8d 44 24 08          	lea    0x8(%esp),%eax
50d953:	e8 3c ff ff ff       	call   0x50d894
50d958:	85 c0                	test   %eax,%eax
50d95a:	75 07                	jne    0x50d963
50d95c:	33 c0                	xor    %eax,%eax
50d95e:	e9 aa 00 00 00       	jmp    0x50da0d
50d963:	33 d2                	xor    %edx,%edx
50d965:	89 14 24             	mov    %edx,(%esp)
50d968:	8b cb                	mov    %ebx,%ecx
50d96a:	8b d9                	mov    %ecx,%ebx
50d96c:	8d 86 0c 01 00 00    	lea    0x10c(%esi),%eax
50d972:	89 44 24 04          	mov    %eax,0x4(%esp)
50d976:	eb 48                	jmp    0x50d9c0
50d978:	8b 54 24 04          	mov    0x4(%esp),%edx
50d97c:	8b 3a                	mov    (%edx),%edi
50d97e:	8b 84 be f0 00 00 00 	mov    0xf0(%esi,%edi,4),%eax
50d985:	8b 50 14             	mov    0x14(%eax),%edx
50d988:	8b 4c 95 2c          	mov    0x2c(%ebp,%edx,4),%ecx
50d98c:	51                   	push   %ecx
50d98d:	8b 40 18             	mov    0x18(%eax),%eax
50d990:	8b 54 85 3c          	mov    0x3c(%ebp,%eax,4),%edx
50d994:	52                   	push   %edx
50d995:	8b 4c bc 20          	mov    0x20(%esp,%edi,4),%ecx
50d999:	8d 44 24 10          	lea    0x10(%esp),%eax
50d99d:	8b 13                	mov    (%ebx),%edx
50d99f:	e8 84 fd ff ff       	call   0x50d728
50d9a4:	85 c0                	test   %eax,%eax
50d9a6:	75 04                	jne    0x50d9ac
50d9a8:	33 c0                	xor    %eax,%eax
50d9aa:	eb 61                	jmp    0x50da0d
50d9ac:	8b 13                	mov    (%ebx),%edx
50d9ae:	0f bf 0a             	movswl (%edx),%ecx
50d9b1:	89 4c bc 18          	mov    %ecx,0x18(%esp,%edi,4)
50d9b5:	ff 04 24             	incl   (%esp)
50d9b8:	83 c3 04             	add    $0x4,%ebx
50d9bb:	83 44 24 04 04       	addl   $0x4,0x4(%esp)
50d9c0:	8b 04 24             	mov    (%esp),%eax
50d9c3:	3b 86 08 01 00 00    	cmp    0x108(%esi),%eax
50d9c9:	7c ad                	jl     0x50d978
50d9cb:	8b 46 14             	mov    0x14(%esi),%eax
50d9ce:	8b 54 24 08          	mov    0x8(%esp),%edx
50d9d2:	8d 7d 0c             	lea    0xc(%ebp),%edi
50d9d5:	89 10                	mov    %edx,(%eax)
50d9d7:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
50d9db:	89 48 04             	mov    %ecx,0x4(%eax)
50d9de:	56                   	push   %esi
50d9df:	8d 74 24 14          	lea    0x14(%esp),%esi
50d9e3:	b9 06 00 00 00       	mov    $0x6,%ecx
50d9e8:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
50d9ea:	5e                   	pop    %esi
50d9eb:	8b 86 c0 00 00 00    	mov    0xc0(%esi),%eax
50d9f1:	85 c0                	test   %eax,%eax
50d9f3:	74 13                	je     0x50da08
50d9f5:	83 7d 24 00          	cmpl   $0x0,0x24(%ebp)
50d9f9:	75 0a                	jne    0x50da05
50d9fb:	89 45 24             	mov    %eax,0x24(%ebp)
50d9fe:	ff 45 28             	incl   0x28(%ebp)
50da01:	83 65 28 07          	andl   $0x7,0x28(%ebp)
50da05:	ff 4d 24             	decl   0x24(%ebp)
50da08:	b8 01 00 00 00       	mov    $0x1,%eax
50da0d:	83 c4 2c             	add    $0x2c,%esp
50da10:	5d                   	pop    %ebp
50da11:	5f                   	pop    %edi
50da12:	5e                   	pop    %esi
50da13:	5b                   	pop    %ebx
50da14:	c3                   	ret
50da15:	90                   	nop
50da16:	90                   	nop
50da17:	90                   	nop
50da18:	53                   	push   %ebx
50da19:	8b d8                	mov    %eax,%ebx
50da1b:	56                   	push   %esi
50da1c:	57                   	push   %edi
50da1d:	8b 43 14             	mov    0x14(%ebx),%eax
50da20:	83 c4 dc             	add    $0xffffffdc,%esp
50da23:	8b b3 64 01 00 00    	mov    0x164(%ebx),%esi
50da29:	8b 10                	mov    (%eax),%edx
50da2b:	89 14 24             	mov    %edx,(%esp)
50da2e:	8b 48 04             	mov    0x4(%eax),%ecx
50da31:	89 4c 24 04          	mov    %ecx,0x4(%esp)
50da35:	56                   	push   %esi
50da36:	8d 7c 24 0c          	lea    0xc(%esp),%edi
50da3a:	83 c6 0c             	add    $0xc,%esi
50da3d:	b9 06 00 00 00       	mov    $0x6,%ecx
50da42:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
50da44:	5e                   	pop    %esi
50da45:	89 5c 24 20          	mov    %ebx,0x20(%esp)
50da49:	8b c4                	mov    %esp,%eax
50da4b:	e8 a8 fc ff ff       	call   0x50d6f8
50da50:	85 c0                	test   %eax,%eax
50da52:	75 0f                	jne    0x50da63
50da54:	8b 13                	mov    (%ebx),%edx
50da56:	8b c3                	mov    %ebx,%eax
50da58:	c7 42 14 16 00 00 00 	movl   $0x16,0x14(%edx)
50da5f:	8b 10                	mov    (%eax),%edx
50da61:	ff 12                	call   *(%edx)
50da63:	8b 43 14             	mov    0x14(%ebx),%eax
50da66:	8b 14 24             	mov    (%esp),%edx
50da69:	8d 7e 0c             	lea    0xc(%esi),%edi
50da6c:	89 10                	mov    %edx,(%eax)
50da6e:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50da72:	89 48 04             	mov    %ecx,0x4(%eax)
50da75:	56                   	push   %esi
50da76:	8d 74 24 0c          	lea    0xc(%esp),%esi
50da7a:	b9 06 00 00 00       	mov    $0x6,%ecx
50da7f:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
50da81:	5e                   	pop    %esi
50da82:	83 c4 24             	add    $0x24,%esp
50da85:	5f                   	pop    %edi
50da86:	5e                   	pop    %esi
50da87:	5b                   	pop    %ebx
50da88:	c3                   	ret
50da89:	90                   	nop
50da8a:	90                   	nop
50da8b:	90                   	nop
50da8c:	55                   	push   %ebp
50da8d:	8b ec                	mov    %esp,%ebp
50da8f:	83 c4 f0             	add    $0xfffffff0,%esp
50da92:	53                   	push   %ebx
50da93:	89 4d f8             	mov    %ecx,-0x8(%ebp)
50da96:	89 45 fc             	mov    %eax,-0x4(%ebp)
50da99:	8b 45 08             	mov    0x8(%ebp),%eax
50da9c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50da9f:	0f bf 19             	movswl (%ecx),%ebx
50daa2:	2b da                	sub    %edx,%ebx
50daa4:	85 db                	test   %ebx,%ebx
50daa6:	7d 02                	jge    0x50daaa
50daa8:	f7 db                	neg    %ebx
50daaa:	33 c9                	xor    %ecx,%ecx
50daac:	85 db                	test   %ebx,%ebx
50daae:	74 07                	je     0x50dab7
50dab0:	d1 fb                	sar    $1,%ebx
50dab2:	41                   	inc    %ecx
50dab3:	85 db                	test   %ebx,%ebx
50dab5:	75 f9                	jne    0x50dab0
50dab7:	8b 55 f8             	mov    -0x8(%ebp),%edx
50daba:	ff 04 8a             	incl   (%edx,%ecx,4)
50dabd:	33 d2                	xor    %edx,%edx
50dabf:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
50dac6:	c7 45 f0 68 d9 68 00 	movl   $0x68d968,-0x10(%ebp)
50dacd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50dad0:	8b 09                	mov    (%ecx),%ecx
50dad2:	8b 5d fc             	mov    -0x4(%ebp),%ebx
50dad5:	0f bf 1c 4b          	movswl (%ebx,%ecx,2),%ebx
50dad9:	85 db                	test   %ebx,%ebx
50dadb:	75 03                	jne    0x50dae0
50dadd:	42                   	inc    %edx
50dade:	eb 2f                	jmp    0x50db0f
50dae0:	83 fa 0f             	cmp    $0xf,%edx
50dae3:	7e 0e                	jle    0x50daf3
50dae5:	ff 80 c0 03 00 00    	incl   0x3c0(%eax)
50daeb:	83 ea 10             	sub    $0x10,%edx
50daee:	83 fa 0f             	cmp    $0xf,%edx
50daf1:	7f f2                	jg     0x50dae5
50daf3:	85 db                	test   %ebx,%ebx
50daf5:	7d 02                	jge    0x50daf9
50daf7:	f7 db                	neg    %ebx
50daf9:	b9 01 00 00 00       	mov    $0x1,%ecx
50dafe:	eb 01                	jmp    0x50db01
50db00:	41                   	inc    %ecx
50db01:	d1 fb                	sar    $1,%ebx
50db03:	75 fb                	jne    0x50db00
50db05:	c1 e2 04             	shl    $0x4,%edx
50db08:	03 ca                	add    %edx,%ecx
50db0a:	ff 04 88             	incl   (%eax,%ecx,4)
50db0d:	33 d2                	xor    %edx,%edx
50db0f:	ff 45 f4             	incl   -0xc(%ebp)
50db12:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
50db16:	83 7d f4 40          	cmpl   $0x40,-0xc(%ebp)
50db1a:	7c b1                	jl     0x50dacd
50db1c:	85 d2                	test   %edx,%edx
50db1e:	7e 02                	jle    0x50db22
50db20:	ff 00                	incl   (%eax)
50db22:	5b                   	pop    %ebx
50db23:	8b e5                	mov    %ebp,%esp
50db25:	5d                   	pop    %ebp
50db26:	c2 04 00             	ret    $0x4
50db29:	90                   	nop
50db2a:	90                   	nop
50db2b:	90                   	nop
50db2c:	53                   	push   %ebx
50db2d:	56                   	push   %esi
50db2e:	57                   	push   %edi
50db2f:	55                   	push   %ebp
50db30:	83 c4 f4             	add    $0xfffffff4,%esp
50db33:	8b e8                	mov    %eax,%ebp
50db35:	89 14 24             	mov    %edx,(%esp)
50db38:	83 bd c0 00 00 00 00 	cmpl   $0x0,0xc0(%ebp)
50db3f:	8b 9d 64 01 00 00    	mov    0x164(%ebp),%ebx
50db45:	74 29                	je     0x50db70
50db47:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
50db4b:	75 20                	jne    0x50db6d
50db4d:	33 f6                	xor    %esi,%esi
50db4f:	8d 43 14             	lea    0x14(%ebx),%eax
50db52:	eb 08                	jmp    0x50db5c
50db54:	33 d2                	xor    %edx,%edx
50db56:	46                   	inc    %esi
50db57:	89 10                	mov    %edx,(%eax)
50db59:	83 c0 04             	add    $0x4,%eax
50db5c:	3b b5 ec 00 00 00    	cmp    0xec(%ebp),%esi
50db62:	7c f0                	jl     0x50db54
50db64:	8b 8d c0 00 00 00    	mov    0xc0(%ebp),%ecx
50db6a:	89 4b 24             	mov    %ecx,0x24(%ebx)
50db6d:	ff 4b 24             	decl   0x24(%ebx)
50db70:	33 c0                	xor    %eax,%eax
50db72:	89 44 24 04          	mov    %eax,0x4(%esp)
50db76:	8d 85 0c 01 00 00    	lea    0x10c(%ebp),%eax
50db7c:	8b 14 24             	mov    (%esp),%edx
50db7f:	89 44 24 08          	mov    %eax,0x8(%esp)
50db83:	8b fa                	mov    %edx,%edi
50db85:	eb 3c                	jmp    0x50dbc3
50db87:	8b 54 24 08          	mov    0x8(%esp),%edx
50db8b:	8b 32                	mov    (%edx),%esi
50db8d:	8b 84 b5 f0 00 00 00 	mov    0xf0(%ebp,%esi,4),%eax
50db94:	8b 50 18             	mov    0x18(%eax),%edx
50db97:	8b 4c 93 5c          	mov    0x5c(%ebx,%edx,4),%ecx
50db9b:	51                   	push   %ecx
50db9c:	8b 40 14             	mov    0x14(%eax),%eax
50db9f:	8b 4c 83 4c          	mov    0x4c(%ebx,%eax,4),%ecx
50dba3:	8b 07                	mov    (%edi),%eax
50dba5:	8b 54 b3 14          	mov    0x14(%ebx,%esi,4),%edx
50dba9:	e8 de fe ff ff       	call   0x50da8c
50dbae:	8b 0f                	mov    (%edi),%ecx
50dbb0:	0f bf 01             	movswl (%ecx),%eax
50dbb3:	89 44 b3 14          	mov    %eax,0x14(%ebx,%esi,4)
50dbb7:	ff 44 24 04          	incl   0x4(%esp)
50dbbb:	83 c7 04             	add    $0x4,%edi
50dbbe:	83 44 24 08 04       	addl   $0x4,0x8(%esp)
50dbc3:	8b 95 08 01 00 00    	mov    0x108(%ebp),%edx
50dbc9:	3b 54 24 04          	cmp    0x4(%esp),%edx
50dbcd:	7f b8                	jg     0x50db87
50dbcf:	b8 01 00 00 00       	mov    $0x1,%eax
50dbd4:	83 c4 0c             	add    $0xc,%esp
50dbd7:	5d                   	pop    %ebp
50dbd8:	5f                   	pop    %edi
50dbd9:	5e                   	pop    %esi
50dbda:	5b                   	pop    %ebx
50dbdb:	c3                   	ret
50dbdc:	53                   	push   %ebx
50dbdd:	56                   	push   %esi
50dbde:	57                   	push   %edi
50dbdf:	81 c4 c8 f7 ff ff    	add    $0xfffff7c8,%esp
50dbe5:	89 4c 24 08          	mov    %ecx,0x8(%esp)
50dbe9:	89 54 24 04          	mov    %edx,0x4(%esp)
50dbed:	89 04 24             	mov    %eax,(%esp)
50dbf0:	6a 21                	push   $0x21
50dbf2:	6a 00                	push   $0x0
50dbf4:	8d 44 24 14          	lea    0x14(%esp),%eax
50dbf8:	50                   	push   %eax
50dbf9:	e8 b6 d6 fe ff       	call   0x4fb2b4
50dbfe:	83 c4 0c             	add    $0xc,%esp
50dc01:	68 04 04 00 00       	push   $0x404
50dc06:	6a 00                	push   $0x0
50dc08:	8d 54 24 38          	lea    0x38(%esp),%edx
50dc0c:	52                   	push   %edx
50dc0d:	e8 a2 d6 fe ff       	call   0x4fb2b4
50dc12:	83 c4 0c             	add    $0xc,%esp
50dc15:	33 db                	xor    %ebx,%ebx
50dc17:	8d 84 24 34 04 00 00 	lea    0x434(%esp),%eax
50dc1e:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)
50dc24:	43                   	inc    %ebx
50dc25:	83 c0 04             	add    $0x4,%eax
50dc28:	81 fb 01 01 00 00    	cmp    $0x101,%ebx
50dc2e:	7c ee                	jl     0x50dc1e
50dc30:	8b 54 24 08          	mov    0x8(%esp),%edx
50dc34:	c7 82 00 04 00 00 01 	movl   $0x1,0x400(%edx)
50dc3b:	00 00 00
50dc3e:	83 c8 ff             	or     $0xffffffff,%eax
50dc41:	bf 00 ca 9a 3b       	mov    $0x3b9aca00,%edi
50dc46:	33 db                	xor    %ebx,%ebx
50dc48:	8b 54 24 08          	mov    0x8(%esp),%edx
50dc4c:	8b 0a                	mov    (%edx),%ecx
50dc4e:	85 c9                	test   %ecx,%ecx
50dc50:	74 08                	je     0x50dc5a
50dc52:	3b f9                	cmp    %ecx,%edi
50dc54:	7c 04                	jl     0x50dc5a
50dc56:	8b f9                	mov    %ecx,%edi
50dc58:	8b c3                	mov    %ebx,%eax
50dc5a:	43                   	inc    %ebx
50dc5b:	83 c2 04             	add    $0x4,%edx
50dc5e:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
50dc64:	7e e6                	jle    0x50dc4c
50dc66:	83 ca ff             	or     $0xffffffff,%edx
50dc69:	bf 00 ca 9a 3b       	mov    $0x3b9aca00,%edi
50dc6e:	33 db                	xor    %ebx,%ebx
50dc70:	8b 4c 24 08          	mov    0x8(%esp),%ecx
50dc74:	8b 31                	mov    (%ecx),%esi
50dc76:	85 f6                	test   %esi,%esi
50dc78:	74 0c                	je     0x50dc86
50dc7a:	3b fe                	cmp    %esi,%edi
50dc7c:	7c 08                	jl     0x50dc86
50dc7e:	3b c3                	cmp    %ebx,%eax
50dc80:	74 04                	je     0x50dc86
50dc82:	8b fe                	mov    %esi,%edi
50dc84:	8b d3                	mov    %ebx,%edx
50dc86:	43                   	inc    %ebx
50dc87:	83 c1 04             	add    $0x4,%ecx
50dc8a:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
50dc90:	7e e2                	jle    0x50dc74
50dc92:	85 d2                	test   %edx,%edx
50dc94:	7c 51                	jl     0x50dce7