4ba7c3:	03 c1                	add    %ecx,%eax
4ba7c5:	03 d8                	add    %eax,%ebx
4ba7c7:	3b f7                	cmp    %edi,%esi
4ba7c9:	75 da                	jne    0x4ba7a5
4ba7cb:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4ba7ce:	8b 5d f8             	mov    -0x8(%ebp),%ebx
4ba7d1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4ba7d4:	8b 55 f0             	mov    -0x10(%ebp),%edx
4ba7d7:	8b 42 14             	mov    0x14(%edx),%eax
4ba7da:	a8 03                	test   $0x3,%al
4ba7dc:	74 13                	je     0x4ba7f1
4ba7de:	a8 01                	test   $0x1,%al
4ba7e0:	8d 41 02             	lea    0x2(%ecx),%eax
4ba7e3:	0f 44 c1             	cmove  %ecx,%eax
4ba7e6:	f6 42 14 02          	testb  $0x2,0x14(%edx)
4ba7ea:	8b c8                	mov    %eax,%ecx
4ba7ec:	74 03                	je     0x4ba7f1
4ba7ee:	83 c1 02             	add    $0x2,%ecx
4ba7f1:	8d 42 04             	lea    0x4(%edx),%eax
4ba7f4:	83 c2 18             	add    $0x18,%edx
4ba7f7:	f6 00 01             	testb  $0x1,(%eax)
4ba7fa:	74 0f                	je     0x4ba80b
4ba7fc:	52                   	push   %edx
4ba7fd:	51                   	push   %ecx
4ba7fe:	50                   	push   %eax
4ba7ff:	e8 ac 4c fb ff       	call   0x46f4b0
4ba804:	83 c4 0c             	add    $0xc,%esp
4ba807:	8b c8                	mov    %eax,%ecx
4ba809:	eb 02                	jmp    0x4ba80d
4ba80b:	89 0a                	mov    %ecx,(%edx)
4ba80d:	8b c1                	mov    %ecx,%eax
4ba80f:	8b 75 fc             	mov    -0x4(%ebp),%esi
4ba812:	83 c8 01             	or     $0x1,%eax
4ba815:	43                   	inc    %ebx
4ba816:	0f bd c0             	bsr    %eax,%eax
4ba819:	89 45 d0             	mov    %eax,-0x30(%ebp)
4ba81c:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4ba81f:	83 c0 49             	add    $0x49,%eax
4ba822:	c1 e8 06             	shr    $0x6,%eax
4ba825:	03 c1                	add    %ecx,%eax
4ba827:	03 d8                	add    %eax,%ebx
4ba829:	f6 46 04 01          	testb  $0x1,0x4(%esi)
4ba82d:	8d 46 04             	lea    0x4(%esi),%eax
4ba830:	8d 4e 0c             	lea    0xc(%esi),%ecx
4ba833:	5f                   	pop    %edi
4ba834:	74 11                	je     0x4ba847
4ba836:	51                   	push   %ecx
4ba837:	53                   	push   %ebx
4ba838:	50                   	push   %eax
4ba839:	e8 72 4c fb ff       	call   0x46f4b0
4ba83e:	83 c4 0c             	add    $0xc,%esp
4ba841:	5e                   	pop    %esi
4ba842:	5b                   	pop    %ebx
4ba843:	8b e5                	mov    %ebp,%esp
4ba845:	5d                   	pop    %ebp
4ba846:	c3                   	ret
4ba847:	5e                   	pop    %esi
4ba848:	89 19                	mov    %ebx,(%ecx)
4ba84a:	8b c3                	mov    %ebx,%eax
4ba84c:	5b                   	pop    %ebx
4ba84d:	8b e5                	mov    %ebp,%esp
4ba84f:	5d                   	pop    %ebp
4ba850:	c3                   	ret
4ba851:	cc                   	int3
4ba852:	cc                   	int3
4ba853:	cc                   	int3
4ba854:	cc                   	int3
4ba855:	cc                   	int3
4ba856:	cc                   	int3
4ba857:	cc                   	int3
4ba858:	cc                   	int3
4ba859:	cc                   	int3
4ba85a:	cc                   	int3
4ba85b:	cc                   	int3
4ba85c:	cc                   	int3
4ba85d:	cc                   	int3
4ba85e:	cc                   	int3
4ba85f:	cc                   	int3
4ba860:	55                   	push   %ebp
4ba861:	8b ec                	mov    %esp,%ebp
4ba863:	83 ec 3c             	sub    $0x3c,%esp
4ba866:	53                   	push   %ebx
4ba867:	56                   	push   %esi
4ba868:	8b 75 08             	mov    0x8(%ebp),%esi
4ba86b:	57                   	push   %edi
4ba86c:	8b 7d 0c             	mov    0xc(%ebp),%edi
4ba86f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4ba872:	3b 37                	cmp    (%edi),%esi
4ba874:	72 2a                	jb     0x4ba8a0
4ba876:	8b c6                	mov    %esi,%eax
4ba878:	2b 47 04             	sub    0x4(%edi),%eax
4ba87b:	3b 47 10             	cmp    0x10(%edi),%eax
4ba87e:	0f 84 37 04 00 00    	je     0x4bacbb
4ba884:	ff 77 48             	push   0x48(%edi)
4ba887:	8b cf                	mov    %edi,%ecx
4ba889:	50                   	push   %eax
4ba88a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4ba88d:	50                   	push   %eax
4ba88e:	e8 9d 46 fa ff       	call   0x45ef30
4ba893:	80 7d e8 00          	cmpb   $0x0,-0x18(%ebp)
4ba897:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4ba89a:	0f 85 ac 00 00 00    	jne    0x4ba94c
4ba8a0:	0f b6 1e             	movzbl (%esi),%ebx
4ba8a3:	81 fb 80 00 00 00    	cmp    $0x80,%ebx
4ba8a9:	73 03                	jae    0x4ba8ae
4ba8ab:	46                   	inc    %esi
4ba8ac:	eb 2f                	jmp    0x4ba8dd
4ba8ae:	0f b6 4e 01          	movzbl 0x1(%esi),%ecx
4ba8b2:	83 c3 80             	add    $0xffffff80,%ebx
4ba8b5:	8b c1                	mov    %ecx,%eax
4ba8b7:	c1 e0 07             	shl    $0x7,%eax
4ba8ba:	03 d8                	add    %eax,%ebx
4ba8bc:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
4ba8c2:	73 05                	jae    0x4ba8c9
4ba8c4:	83 c6 02             	add    $0x2,%esi
4ba8c7:	eb 14                	jmp    0x4ba8dd
4ba8c9:	53                   	push   %ebx
4ba8ca:	8d 45 dc             	lea    -0x24(%ebp),%eax
4ba8cd:	56                   	push   %esi
4ba8ce:	50                   	push   %eax
4ba8cf:	e8 0c 51 fa ff       	call   0x45f9e0
4ba8d4:	8b 5d e0             	mov    -0x20(%ebp),%ebx
4ba8d7:	83 c4 0c             	add    $0xc,%esp
4ba8da:	8b 75 dc             	mov    -0x24(%ebp),%esi
4ba8dd:	85 f6                	test   %esi,%esi
4ba8df:	74 69                	je     0x4ba94a
4ba8e1:	8b c3                	mov    %ebx,%eax
4ba8e3:	c1 e8 03             	shr    $0x3,%eax
4ba8e6:	48                   	dec    %eax
4ba8e7:	83 f8 04             	cmp    $0x4,%eax
4ba8ea:	0f 87 81 03 00 00    	ja     0x4bac71
4ba8f0:	ff 24 85 e8 ac 4b 00 	jmp    *0x4bace8(,%eax,4)
4ba8f7:	80 fb 0a             	cmp    $0xa,%bl
4ba8fa:	0f 85 71 03 00 00    	jne    0x4bac71
4ba900:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4ba903:	c6 45 ec 00          	movb   $0x0,-0x14(%ebp)
4ba907:	83 4b 08 01          	orl    $0x1,0x8(%ebx)
4ba90b:	8b 4b 04             	mov    0x4(%ebx),%ecx
4ba90e:	f6 c1 03             	test   $0x3,%cl
4ba911:	75 05                	jne    0x4ba918
4ba913:	83 e1 fc             	and    $0xfffffffc,%ecx
4ba916:	eb 11                	jmp    0x4ba929
4ba918:	8b c1                	mov    %ecx,%eax
4ba91a:	d1 e8                	shr    $1,%eax
4ba91c:	a8 01                	test   $0x1,%al
4ba91e:	74 04                	je     0x4ba924
4ba920:	33 c9                	xor    %ecx,%ecx
4ba922:	eb 05                	jmp    0x4ba929
4ba924:	83 e1 fc             	and    $0xfffffffc,%ecx
4ba927:	8b 09                	mov    (%ecx),%ecx
4ba929:	51                   	push   %ecx
4ba92a:	ff 75 ec             	push   -0x14(%ebp)
4ba92d:	8d 4b 40             	lea    0x40(%ebx),%ecx
4ba930:	e8 fb 0f fa ff       	call   0x45b930
4ba935:	57                   	push   %edi
4ba936:	56                   	push   %esi
4ba937:	50                   	push   %eax
4ba938:	e8 b3 47 fa ff       	call   0x45f0f0
4ba93d:	83 c4 0c             	add    $0xc,%esp
4ba940:	8b f0                	mov    %eax,%esi
4ba942:	85 f6                	test   %esi,%esi
4ba944:	0f 85 28 ff ff ff    	jne    0x4ba872
4ba94a:	33 f6                	xor    %esi,%esi
4ba94c:	5f                   	pop    %edi
4ba94d:	8b c6                	mov    %esi,%eax
4ba94f:	5e                   	pop    %esi
4ba950:	5b                   	pop    %ebx
4ba951:	8b e5                	mov    %ebp,%esp
4ba953:	5d                   	pop    %ebp
4ba954:	c2 08 00             	ret    $0x8
4ba957:	80 fb 12             	cmp    $0x12,%bl
4ba95a:	0f 85 11 03 00 00    	jne    0x4bac71
4ba960:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4ba963:	4e                   	dec    %esi
4ba964:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
4ba967:	46                   	inc    %esi
4ba968:	85 c9                	test   %ecx,%ecx
4ba96a:	74 1d                	je     0x4ba989
4ba96c:	8b 53 14             	mov    0x14(%ebx),%edx
4ba96f:	8b 01                	mov    (%ecx),%eax
4ba971:	3b d0                	cmp    %eax,%edx
4ba973:	7d 0f                	jge    0x4ba984
4ba975:	8b 44 91 04          	mov    0x4(%ecx,%edx,4),%eax
4ba979:	89 45 f8             	mov    %eax,-0x8(%ebp)
4ba97c:	8d 42 01             	lea    0x1(%edx),%eax
4ba97f:	89 43 14             	mov    %eax,0x14(%ebx)
4ba982:	eb 37                	jmp    0x4ba9bb
4ba984:	3b 43 18             	cmp    0x18(%ebx),%eax
4ba987:	75 12                	jne    0x4ba99b
4ba989:	8b 43 18             	mov    0x18(%ebx),%eax
4ba98c:	8d 4b 10             	lea    0x10(%ebx),%ecx
4ba98f:	40                   	inc    %eax
4ba990:	50                   	push   %eax
4ba991:	e8 fa 2e fa ff       	call   0x45d890
4ba996:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
4ba999:	8b 01                	mov    (%ecx),%eax
4ba99b:	40                   	inc    %eax
4ba99c:	89 01                	mov    %eax,(%ecx)
4ba99e:	ff 73 10             	push   0x10(%ebx)
4ba9a1:	e8 fa c7 00 00       	call   0x4c71a0
4ba9a6:	8b 4b 14             	mov    0x14(%ebx),%ecx
4ba9a9:	8b d0                	mov    %eax,%edx
4ba9ab:	8b 43 1c             	mov    0x1c(%ebx),%eax
4ba9ae:	83 c4 04             	add    $0x4,%esp
4ba9b1:	89 55 f8             	mov    %edx,-0x8(%ebp)
4ba9b4:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
4ba9b8:	ff 43 14             	incl   0x14(%ebx)
4ba9bb:	0f b6 06             	movzbl (%esi),%eax
4ba9be:	3d 80 00 00 00       	cmp    $0x80,%eax
4ba9c3:	73 03                	jae    0x4ba9c8
4ba9c5:	46                   	inc    %esi
4ba9c6:	eb 14                	jmp    0x4ba9dc
4ba9c8:	50                   	push   %eax
4ba9c9:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4ba9cc:	56                   	push   %esi
4ba9cd:	50                   	push   %eax
4ba9ce:	e8 9d 4e fa ff       	call   0x45f870
4ba9d3:	8b 75 d4             	mov    -0x2c(%ebp),%esi
4ba9d6:	83 c4 0c             	add    $0xc,%esp
4ba9d9:	8b 45 d8             	mov    -0x28(%ebp),%eax
4ba9dc:	85 f6                	test   %esi,%esi
4ba9de:	0f 84 66 ff ff ff    	je     0x4ba94a
4ba9e4:	2b 47 04             	sub    0x4(%edi),%eax
4ba9e7:	8d 14 30             	lea    (%eax,%esi,1),%edx
4ba9ea:	33 c0                	xor    %eax,%eax
4ba9ec:	85 d2                	test   %edx,%edx
4ba9ee:	89 55 f0             	mov    %edx,-0x10(%ebp)
4ba9f1:	0f 48 c2             	cmovs  %edx,%eax
4ba9f4:	03 47 04             	add    0x4(%edi),%eax
4ba9f7:	83 47 44 ff          	addl   $0xffffffff,0x44(%edi)
4ba9fb:	89 07                	mov    %eax,(%edi)
4ba9fd:	8b 47 10             	mov    0x10(%edi),%eax
4baa00:	89 45 f4             	mov    %eax,-0xc(%ebp)
4baa03:	89 57 10             	mov    %edx,0x10(%edi)
4baa06:	0f 88 3e ff ff ff    	js     0x4ba94a
4baa0c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4baa0f:	57                   	push   %edi
4baa10:	56                   	push   %esi
4baa11:	e8 aa 08 00 00       	call   0x4bb2c0
4baa16:	8b f0                	mov    %eax,%esi
4baa18:	85 f6                	test   %esi,%esi
4baa1a:	0f 84 2a ff ff ff    	je     0x4ba94a
4baa20:	ff 47 44             	incl   0x44(%edi)
4baa23:	83 7f 3c 00          	cmpl   $0x0,0x3c(%edi)
4baa27:	0f 85 1d ff ff ff    	jne    0x4ba94a
4baa2d:	8b 45 f4             	mov    -0xc(%ebp),%eax
4baa30:	b9 00 00 00 00       	mov    $0x0,%ecx
4baa35:	2b 45 f0             	sub    -0x10(%ebp),%eax
4baa38:	01 47 10             	add    %eax,0x10(%edi)
4baa3b:	8b 47 04             	mov    0x4(%edi),%eax
4baa3e:	0f 48 4f 10          	cmovs  0x10(%edi),%ecx
4baa42:	03 c1                	add    %ecx,%eax
4baa44:	89 07                	mov    %eax,(%edi)
4baa46:	3b f0                	cmp    %eax,%esi
4baa48:	0f 83 24 fe ff ff    	jae    0x4ba872
4baa4e:	80 3e 12             	cmpb   $0x12,(%esi)
4baa51:	0f 84 0d ff ff ff    	je     0x4ba964
4baa57:	e9 16 fe ff ff       	jmp    0x4ba872
4baa5c:	80 fb 1a             	cmp    $0x1a,%bl
4baa5f:	0f 85 0c 02 00 00    	jne    0x4bac71
4baa65:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4baa68:	83 49 08 02          	orl    $0x2,0x8(%ecx)
4baa6c:	8b 59 44             	mov    0x44(%ecx),%ebx
4baa6f:	85 db                	test   %ebx,%ebx
4baa71:	75 2f                	jne    0x4baaa2
4baa73:	8b 49 04             	mov    0x4(%ecx),%ecx
4baa76:	f6 c1 03             	test   $0x3,%cl
4baa79:	75 05                	jne    0x4baa80
4baa7b:	83 e1 fc             	and    $0xfffffffc,%ecx
4baa7e:	eb 11                	jmp    0x4baa91
4baa80:	8b c1                	mov    %ecx,%eax
4baa82:	d1 e8                	shr    $1,%eax
4baa84:	a8 01                	test   $0x1,%al
4baa86:	74 04                	je     0x4baa8c
4baa88:	33 c9                	xor    %ecx,%ecx
4baa8a:	eb 05                	jmp    0x4baa91
4baa8c:	83 e1 fc             	and    $0xfffffffc,%ecx
4baa8f:	8b 09                	mov    (%ecx),%ecx
4baa91:	51                   	push   %ecx
4baa92:	e8 09 c6 00 00       	call   0x4c70a0
4baa97:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4baa9a:	83 c4 04             	add    $0x4,%esp
4baa9d:	8b d8                	mov    %eax,%ebx
4baa9f:	89 41 44             	mov    %eax,0x44(%ecx)
4baaa2:	0f b6 06             	movzbl (%esi),%eax
4baaa5:	3d 80 00 00 00       	cmp    $0x80,%eax
4baaaa:	73 03                	jae    0x4baaaf
4baaac:	46                   	inc    %esi
4baaad:	eb 14                	jmp    0x4baac3
4baaaf:	50                   	push   %eax
4baab0:	8d 45 cc             	lea    -0x34(%ebp),%eax
4baab3:	56                   	push   %esi
4baab4:	50                   	push   %eax
4baab5:	e8 b6 4d fa ff       	call   0x45f870
4baaba:	8b 75 cc             	mov    -0x34(%ebp),%esi
4baabd:	83 c4 0c             	add    $0xc,%esp
4baac0:	8b 45 d0             	mov    -0x30(%ebp),%eax
4baac3:	85 f6                	test   %esi,%esi
4baac5:	0f 84 7f fe ff ff    	je     0x4ba94a
4baacb:	2b 47 04             	sub    0x4(%edi),%eax
4baace:	8d 14 30             	lea    (%eax,%esi,1),%edx
4baad1:	33 c0                	xor    %eax,%eax
4baad3:	85 d2                	test   %edx,%edx
4baad5:	89 55 f4             	mov    %edx,-0xc(%ebp)
4baad8:	0f 48 c2             	cmovs  %edx,%eax
4baadb:	03 47 04             	add    0x4(%edi),%eax
4baade:	83 47 44 ff          	addl   $0xffffffff,0x44(%edi)
4baae2:	89 07                	mov    %eax,(%edi)
4baae4:	8b 47 10             	mov    0x10(%edi),%eax
4baae7:	89 45 f0             	mov    %eax,-0x10(%ebp)
4baaea:	89 57 10             	mov    %edx,0x10(%edi)
4baaed:	0f 88 57 fe ff ff    	js     0x4ba94a
4baaf3:	57                   	push   %edi
4baaf4:	56                   	push   %esi
4baaf5:	8b cb                	mov    %ebx,%ecx
4baaf7:	e8 e4 49 00 00       	call   0x4bf4e0
4baafc:	8b f0                	mov    %eax,%esi
4baafe:	85 f6                	test   %esi,%esi
4bab00:	0f 84 44 fe ff ff    	je     0x4ba94a
4bab06:	ff 47 44             	incl   0x44(%edi)
4bab09:	83 7f 3c 00          	cmpl   $0x0,0x3c(%edi)
4bab0d:	0f 85 37 fe ff ff    	jne    0x4ba94a
4bab13:	8b 45 f0             	mov    -0x10(%ebp),%eax
4bab16:	2b 45 f4             	sub    -0xc(%ebp),%eax
4bab19:	01 47 10             	add    %eax,0x10(%edi)
4bab1c:	b8 00 00 00 00       	mov    $0x0,%eax
4bab21:	0f 48 47 10          	cmovs  0x10(%edi),%eax
4bab25:	03 47 04             	add    0x4(%edi),%eax
4bab28:	89 07                	mov    %eax,(%edi)
4bab2a:	e9 43 fd ff ff       	jmp    0x4ba872
4bab2f:	80 fb 22             	cmp    $0x22,%bl
4bab32:	0f 85 39 01 00 00    	jne    0x4bac71
4bab38:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4bab3b:	4e                   	dec    %esi
4bab3c:	0f 1f 40 00          	nopl   0x0(%eax)
4bab40:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
4bab43:	46                   	inc    %esi
4bab44:	85 c9                	test   %ecx,%ecx
4bab46:	74 1d                	je     0x4bab65
4bab48:	8b 53 24             	mov    0x24(%ebx),%edx
4bab4b:	8b 01                	mov    (%ecx),%eax
4bab4d:	3b d0                	cmp    %eax,%edx
4bab4f:	7d 0f                	jge    0x4bab60
4bab51:	8b 44 91 04          	mov    0x4(%ecx,%edx,4),%eax
4bab55:	89 45 f8             	mov    %eax,-0x8(%ebp)
4bab58:	8d 42 01             	lea    0x1(%edx),%eax
4bab5b:	89 43 24             	mov    %eax,0x24(%ebx)
4bab5e:	eb 37                	jmp    0x4bab97
4bab60:	3b 43 28             	cmp    0x28(%ebx),%eax
4bab63:	75 12                	jne    0x4bab77