501807:	59                   	pop    %ecx
501808:	c3                   	ret
501809:	e8 72 b2 00 00       	call   0x50ca80
50180e:	8b d8                	mov    %eax,%ebx
501810:	56                   	push   %esi
501811:	85 db                	test   %ebx,%ebx
501813:	74 e4                	je     0x5017f9
501815:	ff 77 04             	push   0x4(%edi)
501818:	ff 37                	push   (%edi)
50181a:	53                   	push   %ebx
50181b:	e8 c0 99 01 00       	call   0x51b1e0
501820:	56                   	push   %esi
501821:	8b f8                	mov    %eax,%edi
501823:	e8 88 7d fd ff       	call   0x4d95b0
501828:	83 c4 14             	add    $0x14,%esp
50182b:	53                   	push   %ebx
50182c:	85 ff                	test   %edi,%edi
50182e:	74 16                	je     0x501846
501830:	6a 1c                	push   $0x1c
501832:	ff 74 24 24          	push   0x24(%esp)
501836:	e8 a5 f2 fe ff       	call   0x4f0ae0
50183b:	83 c4 0c             	add    $0xc,%esp
50183e:	8b c7                	mov    %edi,%eax
501840:	5e                   	pop    %esi
501841:	5d                   	pop    %ebp
501842:	5f                   	pop    %edi
501843:	5b                   	pop    %ebx
501844:	59                   	pop    %ecx
501845:	c3                   	ret
501846:	e8 35 b1 00 00       	call   0x50c980
50184b:	83 c4 04             	add    $0x4,%esp
50184e:	8b c7                	mov    %edi,%eax
501850:	5e                   	pop    %esi
501851:	5d                   	pop    %ebp
501852:	5f                   	pop    %edi
501853:	5b                   	pop    %ebx
501854:	59                   	pop    %ecx
501855:	c3                   	ret
501856:	cc                   	int3
501857:	cc                   	int3
501858:	cc                   	int3
501859:	cc                   	int3
50185a:	cc                   	int3
50185b:	cc                   	int3
50185c:	cc                   	int3
50185d:	cc                   	int3
50185e:	cc                   	int3
50185f:	cc                   	int3
501860:	56                   	push   %esi
501861:	8b 74 24 08          	mov    0x8(%esp),%esi
501865:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
501869:	8b 46 14             	mov    0x14(%esi),%eax
50186c:	75 22                	jne    0x501890
50186e:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
501872:	75 1c                	jne    0x501890
501874:	68 94 01 00 00       	push   $0x194
501879:	68 5c 9e 62 00       	push   $0x629e5c
50187e:	6a 6b                	push   $0x6b
501880:	6a 71                	push   $0x71
501882:	6a 05                	push   $0x5
501884:	e8 f7 76 fd ff       	call   0x4d8f80
501889:	83 c4 14             	add    $0x14,%esp
50188c:	33 c0                	xor    %eax,%eax
50188e:	5e                   	pop    %esi
50188f:	c3                   	ret
501890:	8b 40 1c             	mov    0x1c(%eax),%eax
501893:	85 c0                	test   %eax,%eax
501895:	74 0b                	je     0x5018a2
501897:	50                   	push   %eax
501898:	e8 03 9c 01 00       	call   0x51b4a0
50189d:	83 c4 04             	add    $0x4,%esp
5018a0:	eb 05                	jmp    0x5018a7
5018a2:	e8 d9 b1 00 00       	call   0x50ca80
5018a7:	57                   	push   %edi
5018a8:	85 c0                	test   %eax,%eax
5018aa:	74 35                	je     0x5018e1
5018ac:	8b 7c 24 10          	mov    0x10(%esp),%edi
5018b0:	50                   	push   %eax
5018b1:	8b 06                	mov    (%esi),%eax
5018b3:	ff 30                	push   (%eax)
5018b5:	57                   	push   %edi
5018b6:	e8 25 f2 fe ff       	call   0x4f0ae0
5018bb:	8b 46 08             	mov    0x8(%esi),%eax
5018be:	83 c4 0c             	add    $0xc,%esp
5018c1:	85 c0                	test   %eax,%eax
5018c3:	74 0e                	je     0x5018d3
5018c5:	50                   	push   %eax
5018c6:	57                   	push   %edi
5018c7:	e8 24 f3 fe ff       	call   0x4f0bf0
5018cc:	83 c4 08             	add    $0x8,%esp
5018cf:	85 c0                	test   %eax,%eax
5018d1:	74 0e                	je     0x5018e1
5018d3:	ff 77 18             	push   0x18(%edi)
5018d6:	e8 35 69 01 00       	call   0x518210
5018db:	83 c4 04             	add    $0x4,%esp
5018de:	5f                   	pop    %edi
5018df:	5e                   	pop    %esi
5018e0:	c3                   	ret
5018e1:	5f                   	pop    %edi
5018e2:	33 c0                	xor    %eax,%eax
5018e4:	5e                   	pop    %esi
5018e5:	c3                   	ret
5018e6:	cc                   	int3
5018e7:	cc                   	int3
5018e8:	cc                   	int3
5018e9:	cc                   	int3
5018ea:	cc                   	int3
5018eb:	cc                   	int3
5018ec:	cc                   	int3
5018ed:	cc                   	int3
5018ee:	cc                   	int3
5018ef:	cc                   	int3
5018f0:	b8 04 00 00 00       	mov    $0x4,%eax
5018f5:	e8 b6 fe 0c 00       	call   0x5d17b0
5018fa:	8b 44 24 08          	mov    0x8(%esp),%eax
5018fe:	56                   	push   %esi
5018ff:	57                   	push   %edi
501900:	8b 78 08             	mov    0x8(%eax),%edi
501903:	8b 70 14             	mov    0x14(%eax),%esi
501906:	85 ff                	test   %edi,%edi
501908:	0f 84 3a 01 00 00    	je     0x501a48
50190e:	8b 40 0c             	mov    0xc(%eax),%eax
501911:	85 c0                	test   %eax,%eax
501913:	0f 84 2f 01 00 00    	je     0x501a48
501919:	8b 40 18             	mov    0x18(%eax),%eax
50191c:	8b 7f 18             	mov    0x18(%edi),%edi
50191f:	53                   	push   %ebx
501920:	8b 58 14             	mov    0x14(%eax),%ebx
501923:	8a 46 28             	mov    0x28(%esi),%al
501926:	3c 01                	cmp    $0x1,%al
501928:	75 53                	jne    0x50197d
50192a:	8b 44 24 18          	mov    0x18(%esp),%eax
50192e:	57                   	push   %edi
50192f:	85 c0                	test   %eax,%eax
501931:	75 18                	jne    0x50194b
501933:	e8 18 b4 00 00       	call   0x50cd50
501938:	8b 4c 24 20          	mov    0x20(%esp),%ecx
50193c:	83 c4 04             	add    $0x4,%esp
50193f:	5b                   	pop    %ebx
501940:	5f                   	pop    %edi
501941:	89 01                	mov    %eax,(%ecx)
501943:	b8 01 00 00 00       	mov    $0x1,%eax
501948:	5e                   	pop    %esi
501949:	59                   	pop    %ecx
50194a:	c3                   	ret
50194b:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
50194f:	53                   	push   %ebx
501950:	50                   	push   %eax
501951:	74 07                	je     0x50195a
501953:	e8 48 68 01 00       	call   0x5181a0
501958:	eb 05                	jmp    0x50195f
50195a:	e8 31 68 01 00       	call   0x518190
50195f:	8b c8                	mov    %eax,%ecx
501961:	83 c4 0c             	add    $0xc,%esp
501964:	85 c9                	test   %ecx,%ecx
501966:	79 05                	jns    0x50196d
501968:	5b                   	pop    %ebx
501969:	5f                   	pop    %edi
50196a:	5e                   	pop    %esi
50196b:	59                   	pop    %ecx
50196c:	c3                   	ret
50196d:	8b 44 24 1c          	mov    0x1c(%esp),%eax
501971:	5b                   	pop    %ebx
501972:	5f                   	pop    %edi
501973:	89 08                	mov    %ecx,(%eax)
501975:	b8 01 00 00 00       	mov    $0x1,%eax
50197a:	5e                   	pop    %esi
50197b:	59                   	pop    %ecx
50197c:	c3                   	ret
50197d:	3c 02                	cmp    $0x2,%al
50197f:	0f 85 bc 00 00 00    	jne    0x501a41
501985:	8b 4e 3c             	mov    0x3c(%esi),%ecx
501988:	85 c9                	test   %ecx,%ecx
50198a:	0f 84 b1 00 00 00    	je     0x501a41
501990:	83 7e 2c 00          	cmpl   $0x0,0x2c(%esi)
501994:	0f 84 a7 00 00 00    	je     0x501a41
50199a:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
50199f:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5019a3:	74 cc                	je     0x501971
5019a5:	39 08                	cmp    %ecx,(%eax)
5019a7:	0f 85 94 00 00 00    	jne    0x501a41
5019ad:	55                   	push   %ebp
5019ae:	57                   	push   %edi
5019af:	c7 44 24 14 00 00 00 	movl   $0x0,0x14(%esp)
5019b6:	00
5019b7:	e8 94 b3 00 00       	call   0x50cd50
5019bc:	68 ce 01 00 00       	push   $0x1ce
5019c1:	68 5c 9e 62 00       	push   $0x629e5c
5019c6:	50                   	push   %eax
5019c7:	89 44 24 28          	mov    %eax,0x28(%esp)
5019cb:	e8 80 ed fd ff       	call   0x4e0750
5019d0:	8b e8                	mov    %eax,%ebp
5019d2:	83 c4 10             	add    $0x10,%esp
5019d5:	85 ed                	test   %ebp,%ebp
5019d7:	74 46                	je     0x501a1f
5019d9:	57                   	push   %edi
5019da:	53                   	push   %ebx
5019db:	55                   	push   %ebp
5019dc:	e8 bf 67 01 00       	call   0x5181a0
5019e1:	8b 7c 24 24          	mov    0x24(%esp),%edi
5019e5:	83 c4 0c             	add    $0xc,%esp
5019e8:	85 c0                	test   %eax,%eax
5019ea:	7e 37                	jle    0x501a23
5019ec:	ff 76 30             	push   0x30(%esi)
5019ef:	8b 5c 24 24          	mov    0x24(%esp),%ebx
5019f3:	ff 76 38             	push   0x38(%esi)
5019f6:	ff 76 34             	push   0x34(%esi)
5019f9:	ff 76 2c             	push   0x2c(%esi)
5019fc:	57                   	push   %edi
5019fd:	55                   	push   %ebp
5019fe:	ff 33                	push   (%ebx)
501a00:	ff 74 24 38          	push   0x38(%esp)
501a04:	e8 87 9b 01 00       	call   0x51b590
501a09:	83 c4 20             	add    $0x20,%esp
501a0c:	85 c0                	test   %eax,%eax
501a0e:	74 13                	je     0x501a23
501a10:	8b 46 3c             	mov    0x3c(%esi),%eax
501a13:	89 03                	mov    %eax,(%ebx)
501a15:	c7 44 24 10 01 00 00 	movl   $0x1,0x10(%esp)
501a1c:	00
501a1d:	eb 04                	jmp    0x501a23
501a1f:	8b 7c 24 18          	mov    0x18(%esp),%edi
501a23:	68 da 01 00 00       	push   $0x1da
501a28:	68 5c 9e 62 00       	push   $0x629e5c
501a2d:	57                   	push   %edi
501a2e:	55                   	push   %ebp
501a2f:	e8 0c ee fd ff       	call   0x4e0840
501a34:	8b 44 24 20          	mov    0x20(%esp),%eax
501a38:	83 c4 10             	add    $0x10,%esp
501a3b:	5d                   	pop    %ebp
501a3c:	5b                   	pop    %ebx
501a3d:	5f                   	pop    %edi
501a3e:	5e                   	pop    %esi
501a3f:	59                   	pop    %ecx
501a40:	c3                   	ret
501a41:	5b                   	pop    %ebx
501a42:	5f                   	pop    %edi
501a43:	33 c0                	xor    %eax,%eax
501a45:	5e                   	pop    %esi
501a46:	59                   	pop    %ecx
501a47:	c3                   	ret
501a48:	68 ac 01 00 00       	push   $0x1ac
501a4d:	68 5c 9e 62 00       	push   $0x629e5c
501a52:	6a 6c                	push   $0x6c
501a54:	6a 70                	push   $0x70
501a56:	6a 05                	push   $0x5
501a58:	e8 23 75 fd ff       	call   0x4d8f80
501a5d:	83 c4 14             	add    $0x14,%esp
501a60:	33 c0                	xor    %eax,%eax
501a62:	5f                   	pop    %edi
501a63:	5e                   	pop    %esi
501a64:	59                   	pop    %ecx
501a65:	c3                   	ret
501a66:	cc                   	int3
501a67:	cc                   	int3
501a68:	cc                   	int3
501a69:	cc                   	int3
501a6a:	cc                   	int3
501a6b:	cc                   	int3
501a6c:	cc                   	int3
501a6d:	cc                   	int3
501a6e:	cc                   	int3
501a6f:	cc                   	int3
501a70:	6a 22                	push   $0x22
501a72:	68 7c 9f 62 00       	push   $0x629f7c
501a77:	6a 18                	push   $0x18
501a79:	e8 d2 ec fd ff       	call   0x4e0750
501a7e:	83 c4 0c             	add    $0xc,%esp
501a81:	85 c0                	test   %eax,%eax
501a83:	75 01                	jne    0x501a86
501a85:	c3                   	ret
501a86:	8b 4c 24 04          	mov    0x4(%esp),%ecx
501a8a:	c7 00 00 08 00 00    	movl   $0x800,(%eax)
501a90:	c7 40 04 e0 00 00 00 	movl   $0xe0,0x4(%eax)
501a97:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
501a9e:	c7 40 14 00 00 00 00 	movl   $0x0,0x14(%eax)
501aa5:	89 41 14             	mov    %eax,0x14(%ecx)
501aa8:	83 c0 0c             	add    $0xc,%eax
501aab:	89 41 20             	mov    %eax,0x20(%ecx)
501aae:	b8 01 00 00 00       	mov    $0x1,%eax
501ab3:	c7 41 24 02 00 00 00 	movl   $0x2,0x24(%ecx)
501aba:	c3                   	ret
501abb:	cc                   	int3
501abc:	cc                   	int3
501abd:	cc                   	int3
501abe:	cc                   	int3
501abf:	cc                   	int3
501ac0:	6a 22                	push   $0x22
501ac2:	68 7c 9f 62 00       	push   $0x629f7c
501ac7:	6a 18                	push   $0x18
501ac9:	e8 82 ec fd ff       	call   0x4e0750
501ace:	8b d0                	mov    %eax,%edx
501ad0:	83 c4 0c             	add    $0xc,%esp
501ad3:	85 d2                	test   %edx,%edx
501ad5:	74 52                	je     0x501b29
501ad7:	8b 4c 24 04          	mov    0x4(%esp),%ecx
501adb:	8d 42 0c             	lea    0xc(%edx),%eax
501ade:	c7 02 00 08 00 00    	movl   $0x800,(%edx)
501ae4:	c7 42 04 e0 00 00 00 	movl   $0xe0,0x4(%edx)
501aeb:	c7 42 08 00 00 00 00 	movl   $0x0,0x8(%edx)
501af2:	c7 42 14 00 00 00 00 	movl   $0x0,0x14(%edx)
501af9:	89 41 20             	mov    %eax,0x20(%ecx)
501afc:	8b 44 24 08          	mov    0x8(%esp),%eax
501b00:	89 51 14             	mov    %edx,0x14(%ecx)
501b03:	c7 41 24 02 00 00 00 	movl   $0x2,0x24(%ecx)
501b0a:	8b 48 14             	mov    0x14(%eax),%ecx
501b0d:	8b 01                	mov    (%ecx),%eax
501b0f:	89 02                	mov    %eax,(%edx)
501b11:	8b 41 04             	mov    0x4(%ecx),%eax
501b14:	89 42 04             	mov    %eax,0x4(%edx)
501b17:	8b 41 08             	mov    0x8(%ecx),%eax
501b1a:	89 42 08             	mov    %eax,0x8(%edx)
501b1d:	8b 41 14             	mov    0x14(%ecx),%eax
501b20:	89 42 14             	mov    %eax,0x14(%edx)
501b23:	b8 01 00 00 00       	mov    $0x1,%eax
501b28:	c3                   	ret
501b29:	33 c0                	xor    %eax,%eax
501b2b:	c3                   	ret
501b2c:	cc                   	int3
501b2d:	cc                   	int3
501b2e:	cc                   	int3
501b2f:	cc                   	int3
501b30:	8b 44 24 04          	mov    0x4(%esp),%eax
501b34:	6a 44                	push   $0x44
501b36:	68 7c 9f 62 00       	push   $0x629f7c
501b3b:	ff 70 14             	push   0x14(%eax)
501b3e:	e8 3d ec fd ff       	call   0x4e0780
501b43:	83 c4 0c             	add    $0xc,%esp
501b46:	c3                   	ret
501b47:	cc                   	int3
501b48:	cc                   	int3
501b49:	cc                   	int3
501b4a:	cc                   	int3
501b4b:	cc                   	int3
501b4c:	cc                   	int3
501b4d:	cc                   	int3
501b4e:	cc                   	int3
501b4f:	cc                   	int3
501b50:	8b 4c 24 04          	mov    0x4(%esp),%ecx
501b54:	57                   	push   %edi
501b55:	8b 41 08             	mov    0x8(%ecx),%eax
501b58:	8b 78 18             	mov    0x18(%eax),%edi
501b5b:	8b 41 14             	mov    0x14(%ecx),%eax
501b5e:	8b 40 14             	mov    0x14(%eax),%eax
501b61:	85 c0                	test   %eax,%eax
501b63:	74 13                	je     0x501b78
501b65:	50                   	push   %eax
501b66:	e8 55 ed fe ff       	call   0x4f08c0
501b6b:	83 c4 04             	add    $0x4,%esp
501b6e:	39 44 24 18          	cmp    %eax,0x18(%esp)