4ef7ca:	2b c8                	sub    %eax,%ecx
4ef7cc:	ff 75 f4             	push   -0xc(%ebp)
4ef7cf:	1b f2                	sbb    %edx,%esi
4ef7d1:	56                   	push   %esi
4ef7d2:	51                   	push   %ecx
4ef7d3:	e8 68 23 0f 00       	call   0x5e1b40
4ef7d8:	03 c3                	add    %ebx,%eax
4ef7da:	13 55 f0             	adc    -0x10(%ebp),%edx
4ef7dd:	83 c0 01             	add    $0x1,%eax
4ef7e0:	83 d2 00             	adc    $0x0,%edx
4ef7e3:	52                   	push   %edx
4ef7e4:	50                   	push   %eax
4ef7e5:	57                   	push   %edi
4ef7e6:	e8 45 3e ff ff       	call   0x4e3630
4ef7eb:	83 c4 0c             	add    $0xc,%esp
4ef7ee:	5b                   	pop    %ebx
4ef7ef:	5f                   	pop    %edi
4ef7f0:	5e                   	pop    %esi
4ef7f1:	8b e5                	mov    %ebp,%esp
4ef7f3:	5d                   	pop    %ebp
4ef7f4:	c3                   	ret
4ef7f5:	cc                   	int3
4ef7f6:	cc                   	int3
4ef7f7:	cc                   	int3
4ef7f8:	cc                   	int3
4ef7f9:	cc                   	int3
4ef7fa:	cc                   	int3
4ef7fb:	cc                   	int3
4ef7fc:	cc                   	int3
4ef7fd:	cc                   	int3
4ef7fe:	cc                   	int3
4ef7ff:	cc                   	int3
4ef800:	55                   	push   %ebp
4ef801:	8b ec                	mov    %esp,%ebp
4ef803:	8b 55 0c             	mov    0xc(%ebp),%edx
4ef806:	56                   	push   %esi
4ef807:	57                   	push   %edi
4ef808:	85 d2                	test   %edx,%edx
4ef80a:	75 04                	jne    0x4ef810
4ef80c:	33 c9                	xor    %ecx,%ecx
4ef80e:	eb 14                	jmp    0x4ef824
4ef810:	8b ca                	mov    %edx,%ecx
4ef812:	8d 71 01             	lea    0x1(%ecx),%esi
4ef815:	8a 01                	mov    (%ecx),%al
4ef817:	41                   	inc    %ecx
4ef818:	84 c0                	test   %al,%al
4ef81a:	75 f9                	jne    0x4ef815
4ef81c:	2b ce                	sub    %esi,%ecx
4ef81e:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
4ef824:	8b 75 08             	mov    0x8(%ebp),%esi
4ef827:	8b 7e 10             	mov    0x10(%esi),%edi
4ef82a:	03 f9                	add    %ecx,%edi
4ef82c:	3b 7e 08             	cmp    0x8(%esi),%edi
4ef82f:	72 0f                	jb     0x4ef840
4ef831:	51                   	push   %ecx
4ef832:	52                   	push   %edx
4ef833:	56                   	push   %esi
4ef834:	e8 e7 f0 00 00       	call   0x4fe920
4ef839:	83 c4 0c             	add    $0xc,%esp
4ef83c:	5f                   	pop    %edi
4ef83d:	5e                   	pop    %esi
4ef83e:	5d                   	pop    %ebp
4ef83f:	c3                   	ret
4ef840:	85 c9                	test   %ecx,%ecx
4ef842:	74 15                	je     0x4ef859
4ef844:	8b 46 04             	mov    0x4(%esi),%eax
4ef847:	51                   	push   %ecx
4ef848:	2b c1                	sub    %ecx,%eax
4ef84a:	89 7e 10             	mov    %edi,0x10(%esi)
4ef84d:	52                   	push   %edx
4ef84e:	03 c7                	add    %edi,%eax
4ef850:	50                   	push   %eax
4ef851:	e8 aa 36 0f 00       	call   0x5e2f00
4ef856:	83 c4 0c             	add    $0xc,%esp
4ef859:	5f                   	pop    %edi
4ef85a:	5e                   	pop    %esi
4ef85b:	5d                   	pop    %ebp
4ef85c:	c3                   	ret
4ef85d:	cc                   	int3
4ef85e:	cc                   	int3
4ef85f:	cc                   	int3
4ef860:	55                   	push   %ebp
4ef861:	8b ec                	mov    %esp,%ebp
4ef863:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4ef866:	83 f9 0b             	cmp    $0xb,%ecx
4ef869:	77 23                	ja     0x4ef88e
4ef86b:	8b 45 08             	mov    0x8(%ebp),%eax
4ef86e:	8b 55 10             	mov    0x10(%ebp),%edx
4ef871:	56                   	push   %esi
4ef872:	8d 34 88             	lea    (%eax,%ecx,4),%esi
4ef875:	8b 46 6c             	mov    0x6c(%esi),%eax
4ef878:	85 d2                	test   %edx,%edx
4ef87a:	78 0f                	js     0x4ef88b
4ef87c:	8b 0c 8d e4 16 6b 00 	mov    0x6b16e4(,%ecx,4),%ecx
4ef883:	3b d1                	cmp    %ecx,%edx
4ef885:	0f 4f d1             	cmovg  %ecx,%edx
4ef888:	89 56 6c             	mov    %edx,0x6c(%esi)
4ef88b:	5e                   	pop    %esi
4ef88c:	5d                   	pop    %ebp
4ef88d:	c3                   	ret
4ef88e:	83 c8 ff             	or     $0xffffffff,%eax
4ef891:	5d                   	pop    %ebp
4ef892:	c3                   	ret
4ef893:	cc                   	int3
4ef894:	cc                   	int3
4ef895:	cc                   	int3
4ef896:	cc                   	int3
4ef897:	cc                   	int3
4ef898:	cc                   	int3
4ef899:	cc                   	int3
4ef89a:	cc                   	int3
4ef89b:	cc                   	int3
4ef89c:	cc                   	int3
4ef89d:	cc                   	int3
4ef89e:	cc                   	int3
4ef89f:	cc                   	int3
4ef8a0:	55                   	push   %ebp
4ef8a1:	8b ec                	mov    %esp,%ebp
4ef8a3:	56                   	push   %esi
4ef8a4:	8b 75 08             	mov    0x8(%ebp),%esi
4ef8a7:	57                   	push   %edi
4ef8a8:	8b 7d 0c             	mov    0xc(%ebp),%edi
4ef8ab:	8b c7                	mov    %edi,%eax
4ef8ad:	99                   	cltd
4ef8ae:	03 46 10             	add    0x10(%esi),%eax
4ef8b1:	83 d2 00             	adc    $0x0,%edx
4ef8b4:	78 13                	js     0x4ef8c9
4ef8b6:	7f 05                	jg     0x4ef8bd
4ef8b8:	3b 46 08             	cmp    0x8(%esi),%eax
4ef8bb:	72 0c                	jb     0x4ef8c9
4ef8bd:	57                   	push   %edi
4ef8be:	56                   	push   %esi
4ef8bf:	e8 0c e2 04 00       	call   0x53dad0
4ef8c4:	83 c4 08             	add    $0x8,%esp
4ef8c7:	8b f8                	mov    %eax,%edi
4ef8c9:	85 ff                	test   %edi,%edi
4ef8cb:	7e 14                	jle    0x4ef8e1
4ef8cd:	8a 55 10             	mov    0x10(%ebp),%dl
4ef8d0:	8b 46 10             	mov    0x10(%esi),%eax
4ef8d3:	4f                   	dec    %edi
4ef8d4:	8b 4e 04             	mov    0x4(%esi),%ecx
4ef8d7:	88 14 01             	mov    %dl,(%ecx,%eax,1)
4ef8da:	ff 46 10             	incl   0x10(%esi)
4ef8dd:	85 ff                	test   %edi,%edi
4ef8df:	7f ef                	jg     0x4ef8d0
4ef8e1:	5f                   	pop    %edi
4ef8e2:	5e                   	pop    %esi
4ef8e3:	5d                   	pop    %ebp
4ef8e4:	c3                   	ret
4ef8e5:	cc                   	int3
4ef8e6:	cc                   	int3
4ef8e7:	cc                   	int3
4ef8e8:	cc                   	int3
4ef8e9:	cc                   	int3
4ef8ea:	cc                   	int3
4ef8eb:	cc                   	int3
4ef8ec:	cc                   	int3
4ef8ed:	cc                   	int3
4ef8ee:	cc                   	int3
4ef8ef:	cc                   	int3
4ef8f0:	55                   	push   %ebp
4ef8f1:	8b ec                	mov    %esp,%ebp
4ef8f3:	56                   	push   %esi
4ef8f4:	8b 75 08             	mov    0x8(%ebp),%esi
4ef8f7:	f6 46 15 04          	testb  $0x4,0x15(%esi)
4ef8fb:	74 16                	je     0x4ef913
4ef8fd:	8b 46 04             	mov    0x4(%esi),%eax
4ef900:	85 c0                	test   %eax,%eax
4ef902:	74 0b                	je     0x4ef90f
4ef904:	50                   	push   %eax
4ef905:	ff 36                	push   (%esi)
4ef907:	e8 64 1a 03 00       	call   0x521370
4ef90c:	83 c4 08             	add    $0x8,%esp
4ef90f:	80 66 15 fb          	andb   $0xfb,0x15(%esi)
4ef913:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
4ef91a:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4ef921:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
4ef928:	5e                   	pop    %esi
4ef929:	5d                   	pop    %ebp
4ef92a:	c3                   	ret
4ef92b:	cc                   	int3
4ef92c:	cc                   	int3
4ef92d:	cc                   	int3
4ef92e:	cc                   	int3
4ef92f:	cc                   	int3
4ef930:	55                   	push   %ebp
4ef931:	8b ec                	mov    %esp,%ebp
4ef933:	8b 45 08             	mov    0x8(%ebp),%eax
4ef936:	85 c0                	test   %eax,%eax
4ef938:	74 06                	je     0x4ef940
4ef93a:	0f b6 40 14          	movzbl 0x14(%eax),%eax
4ef93e:	5d                   	pop    %ebp
4ef93f:	c3                   	ret
4ef940:	b8 07 00 00 00       	mov    $0x7,%eax
4ef945:	5d                   	pop    %ebp
4ef946:	c3                   	ret
4ef947:	cc                   	int3
4ef948:	cc                   	int3
4ef949:	cc                   	int3
4ef94a:	cc                   	int3
4ef94b:	cc                   	int3
4ef94c:	cc                   	int3
4ef94d:	cc                   	int3
4ef94e:	cc                   	int3
4ef94f:	cc                   	int3
4ef950:	55                   	push   %ebp
4ef951:	8b ec                	mov    %esp,%ebp
4ef953:	8b 45 08             	mov    0x8(%ebp),%eax
4ef956:	85 c0                	test   %eax,%eax
4ef958:	74 05                	je     0x4ef95f
4ef95a:	8b 40 10             	mov    0x10(%eax),%eax
4ef95d:	5d                   	pop    %ebp
4ef95e:	c3                   	ret
4ef95f:	33 c0                	xor    %eax,%eax
4ef961:	5d                   	pop    %ebp
4ef962:	c3                   	ret
4ef963:	cc                   	int3
4ef964:	cc                   	int3
4ef965:	cc                   	int3
4ef966:	cc                   	int3
4ef967:	cc                   	int3
4ef968:	cc                   	int3
4ef969:	cc                   	int3
4ef96a:	cc                   	int3
4ef96b:	cc                   	int3
4ef96c:	cc                   	int3
4ef96d:	cc                   	int3
4ef96e:	cc                   	int3
4ef96f:	cc                   	int3
4ef970:	55                   	push   %ebp
4ef971:	8b ec                	mov    %esp,%ebp
4ef973:	ff 75 18             	push   0x18(%ebp)
4ef976:	ff 75 14             	push   0x14(%ebp)
4ef979:	6a 00                	push   $0x0
4ef97b:	6a 00                	push   $0x0
4ef97d:	ff 75 10             	push   0x10(%ebp)
4ef980:	ff 75 0c             	push   0xc(%ebp)
4ef983:	ff 75 08             	push   0x8(%ebp)
4ef986:	e8 05 13 04 00       	call   0x530c90
4ef98b:	83 c4 1c             	add    $0x1c,%esp
4ef98e:	5d                   	pop    %ebp
4ef98f:	c3                   	ret
4ef990:	55                   	push   %ebp
4ef991:	8b ec                	mov    %esp,%ebp
4ef993:	8b 4d 08             	mov    0x8(%ebp),%ecx
4ef996:	85 c9                	test   %ecx,%ecx
4ef998:	74 13                	je     0x4ef9ad
4ef99a:	8b 51 10             	mov    0x10(%ecx),%edx
4ef99d:	85 d2                	test   %edx,%edx
4ef99f:	74 0c                	je     0x4ef9ad
4ef9a1:	8b 41 04             	mov    0x4(%ecx),%eax
4ef9a4:	c6 04 02 00          	movb   $0x0,(%edx,%eax,1)
4ef9a8:	8b 41 04             	mov    0x4(%ecx),%eax
4ef9ab:	5d                   	pop    %ebp
4ef9ac:	c3                   	ret
4ef9ad:	33 c0                	xor    %eax,%eax
4ef9af:	5d                   	pop    %ebp
4ef9b0:	c3                   	ret
4ef9b1:	cc                   	int3
4ef9b2:	cc                   	int3
4ef9b3:	cc                   	int3
4ef9b4:	cc                   	int3
4ef9b5:	cc                   	int3
4ef9b6:	cc                   	int3
4ef9b7:	cc                   	int3
4ef9b8:	cc                   	int3
4ef9b9:	cc                   	int3
4ef9ba:	cc                   	int3
4ef9bb:	cc                   	int3
4ef9bc:	cc                   	int3
4ef9bd:	cc                   	int3
4ef9be:	cc                   	int3
4ef9bf:	cc                   	int3
4ef9c0:	55                   	push   %ebp
4ef9c1:	8b ec                	mov    %esp,%ebp
4ef9c3:	53                   	push   %ebx
4ef9c4:	8b 5d 08             	mov    0x8(%ebp),%ebx
4ef9c7:	b8 00 20 00 00       	mov    $0x2000,%eax
4ef9cc:	56                   	push   %esi
4ef9cd:	8b 73 08             	mov    0x8(%ebx),%esi
4ef9d0:	66 85 46 08          	test   %ax,0x8(%esi)
4ef9d4:	75 0f                	jne    0x4ef9e5
4ef9d6:	6a 08                	push   $0x8
4ef9d8:	53                   	push   %ebx
4ef9d9:	e8 e2 d0 00 00       	call   0x4fcac0
4ef9de:	83 c4 08             	add    $0x8,%esp
4ef9e1:	8b f0                	mov    %eax,%esi
4ef9e3:	eb 03                	jmp    0x4ef9e8
4ef9e5:	8b 76 10             	mov    0x10(%esi),%esi
4ef9e8:	85 f6                	test   %esi,%esi
4ef9ea:	74 51                	je     0x4efa3d
4ef9ec:	57                   	push   %edi
4ef9ed:	8b 3e                	mov    (%esi),%edi
4ef9ef:	85 ff                	test   %edi,%edi
4ef9f1:	74 26                	je     0x4efa19
4ef9f3:	b8 00 24 00 00       	mov    $0x2400,%eax
4ef9f8:	66 85 47 08          	test   %ax,0x8(%edi)
4ef9fc:	75 06                	jne    0x4efa04
4ef9fe:	83 7f 18 00          	cmpl   $0x0,0x18(%edi)
4efa02:	74 09                	je     0x4efa0d
4efa04:	57                   	push   %edi
4efa05:	e8 06 b4 06 00       	call   0x55ae10
4efa0a:	83 c4 04             	add    $0x4,%esp
4efa0d:	57                   	push   %edi
4efa0e:	ff 77 20             	push   0x20(%edi)
4efa11:	e8 5a 19 03 00       	call   0x521370
4efa16:	83 c4 08             	add    $0x8,%esp
4efa19:	8b 45 10             	mov    0x10(%ebp),%eax
4efa1c:	ff 30                	push   (%eax)
4efa1e:	e8 0d 30 ff ff       	call   0x4e2a30
4efa23:	83 c4 04             	add    $0x4,%esp
4efa26:	89 06                	mov    %eax,(%esi)
4efa28:	5f                   	pop    %edi
4efa29:	85 c0                	test   %eax,%eax
4efa2b:	75 0d                	jne    0x4efa3a
4efa2d:	53                   	push   %ebx
4efa2e:	e8 8d 39 ff ff       	call   0x4e33c0
4efa33:	83 c4 04             	add    $0x4,%esp
4efa36:	5e                   	pop    %esi
4efa37:	5b                   	pop    %ebx
4efa38:	5d                   	pop    %ebp
4efa39:	c3                   	ret
4efa3a:	ff 46 04             	incl   0x4(%esi)
4efa3d:	5e                   	pop    %esi
4efa3e:	5b                   	pop    %ebx
4efa3f:	5d                   	pop    %ebp
4efa40:	c3                   	ret
4efa41:	cc                   	int3
4efa42:	cc                   	int3
4efa43:	cc                   	int3
4efa44:	cc                   	int3
4efa45:	cc                   	int3
4efa46:	cc                   	int3
4efa47:	cc                   	int3
4efa48:	cc                   	int3
4efa49:	cc                   	int3
4efa4a:	cc                   	int3
4efa4b:	cc                   	int3
4efa4c:	cc                   	int3
4efa4d:	cc                   	int3
4efa4e:	cc                   	int3
4efa4f:	cc                   	int3
4efa50:	55                   	push   %ebp
4efa51:	8b ec                	mov    %esp,%ebp
4efa53:	83 ec 10             	sub    $0x10,%esp
4efa56:	ff 75 14             	push   0x14(%ebp)
4efa59:	8d 45 f0             	lea    -0x10(%ebp),%eax
4efa5c:	0f 57 c0             	xorps  %xmm0,%xmm0
4efa5f:	50                   	push   %eax
4efa60:	8d 45 f8             	lea    -0x8(%ebp),%eax