4ba5e8:	3b d7                	cmp    %edi,%edx
4ba5ea:	74 2d                	je     0x4ba619
4ba5ec:	0f 1f 40 00          	nopl   0x0(%eax)
4ba5f0:	8b 0e                	mov    (%esi),%ecx
4ba5f2:	e8 79 0b 00 00       	call   0x4bb170
4ba5f7:	8b c8                	mov    %eax,%ecx
4ba5f9:	83 c6 04             	add    $0x4,%esi
4ba5fc:	83 c8 01             	or     $0x1,%eax
4ba5ff:	0f bd c0             	bsr    %eax,%eax
4ba602:	89 45 ec             	mov    %eax,-0x14(%ebp)
4ba605:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4ba608:	83 c0 49             	add    $0x49,%eax
4ba60b:	c1 e8 06             	shr    $0x6,%eax
4ba60e:	03 c1                	add    %ecx,%eax
4ba610:	03 d8                	add    %eax,%ebx
4ba612:	3b f7                	cmp    %edi,%esi
4ba614:	75 da                	jne    0x4ba5f0
4ba616:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4ba619:	8b 51 24             	mov    0x24(%ecx),%edx
4ba61c:	03 da                	add    %edx,%ebx
4ba61e:	8b 41 2c             	mov    0x2c(%ecx),%eax
4ba621:	85 c0                	test   %eax,%eax
4ba623:	74 07                	je     0x4ba62c
4ba625:	83 c0 04             	add    $0x4,%eax
4ba628:	8b f0                	mov    %eax,%esi
4ba62a:	eb 04                	jmp    0x4ba630
4ba62c:	33 c0                	xor    %eax,%eax
4ba62e:	33 f6                	xor    %esi,%esi
4ba630:	8d 3c 90             	lea    (%eax,%edx,4),%edi
4ba633:	89 45 f4             	mov    %eax,-0xc(%ebp)
4ba636:	3b c7                	cmp    %edi,%eax
4ba638:	0f 84 a1 00 00 00    	je     0x4ba6df
4ba63e:	66 90                	xchg   %ax,%ax
4ba640:	8b 16                	mov    (%esi),%edx
4ba642:	33 c9                	xor    %ecx,%ecx
4ba644:	8b 42 08             	mov    0x8(%edx),%eax
4ba647:	a8 03                	test   $0x3,%al
4ba649:	74 52                	je     0x4ba69d
4ba64b:	a8 01                	test   $0x1,%al
4ba64d:	74 27                	je     0x4ba676
4ba64f:	8b 4a 10             	mov    0x10(%edx),%ecx
4ba652:	85 c9                	test   %ecx,%ecx
4ba654:	79 07                	jns    0x4ba65d
4ba656:	b9 0a 00 00 00       	mov    $0xa,%ecx
4ba65b:	eb 18                	jmp    0x4ba675
4ba65d:	83 c9 01             	or     $0x1,%ecx
4ba660:	0f bd c1             	bsr    %ecx,%eax
4ba663:	89 45 e8             	mov    %eax,-0x18(%ebp)
4ba666:	8d 0c c5 49 00 00 00 	lea    0x49(,%eax,8),%ecx
4ba66d:	03 c8                	add    %eax,%ecx
4ba66f:	8b 42 08             	mov    0x8(%edx),%eax
4ba672:	c1 e9 06             	shr    $0x6,%ecx
4ba675:	41                   	inc    %ecx
4ba676:	a8 02                	test   $0x2,%al
4ba678:	74 23                	je     0x4ba69d
4ba67a:	8b 42 14             	mov    0x14(%edx),%eax
4ba67d:	85 c0                	test   %eax,%eax
4ba67f:	79 07                	jns    0x4ba688
4ba681:	b8 0a 00 00 00       	mov    $0xa,%eax
4ba686:	eb 12                	jmp    0x4ba69a
4ba688:	83 c8 01             	or     $0x1,%eax
4ba68b:	0f bd c0             	bsr    %eax,%eax
4ba68e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4ba691:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4ba694:	83 c0 49             	add    $0x49,%eax
4ba697:	c1 e8 06             	shr    $0x6,%eax
4ba69a:	41                   	inc    %ecx
4ba69b:	03 c8                	add    %eax,%ecx
4ba69d:	8d 42 04             	lea    0x4(%edx),%eax
4ba6a0:	83 c2 0c             	add    $0xc,%edx
4ba6a3:	f6 00 01             	testb  $0x1,(%eax)
4ba6a6:	74 0f                	je     0x4ba6b7
4ba6a8:	52                   	push   %edx
4ba6a9:	51                   	push   %ecx
4ba6aa:	50                   	push   %eax
4ba6ab:	e8 00 4e fb ff       	call   0x46f4b0
4ba6b0:	83 c4 0c             	add    $0xc,%esp
4ba6b3:	8b c8                	mov    %eax,%ecx
4ba6b5:	eb 02                	jmp    0x4ba6b9
4ba6b7:	89 0a                	mov    %ecx,(%edx)
4ba6b9:	8b c1                	mov    %ecx,%eax
4ba6bb:	83 c6 04             	add    $0x4,%esi
4ba6be:	83 c8 01             	or     $0x1,%eax
4ba6c1:	0f bd c0             	bsr    %eax,%eax
4ba6c4:	89 45 e0             	mov    %eax,-0x20(%ebp)
4ba6c7:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4ba6ca:	83 c0 49             	add    $0x49,%eax
4ba6cd:	c1 e8 06             	shr    $0x6,%eax
4ba6d0:	03 c1                	add    %ecx,%eax
4ba6d2:	03 d8                	add    %eax,%ebx
4ba6d4:	3b f7                	cmp    %edi,%esi
4ba6d6:	0f 85 64 ff ff ff    	jne    0x4ba640
4ba6dc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4ba6df:	8d 79 30             	lea    0x30(%ecx),%edi
4ba6e2:	8b cf                	mov    %edi,%ecx
4ba6e4:	e8 d7 38 fa ff       	call   0x45dfc0
4ba6e9:	03 d8                	add    %eax,%ebx
4ba6eb:	8b cf                	mov    %edi,%ecx
4ba6ed:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4ba6f0:	e8 cb 38 fa ff       	call   0x45dfc0
4ba6f5:	33 f6                	xor    %esi,%esi
4ba6f7:	89 45 f4             	mov    %eax,-0xc(%ebp)
4ba6fa:	85 c0                	test   %eax,%eax
4ba6fc:	7e 2e                	jle    0x4ba72c
4ba6fe:	66 90                	xchg   %ax,%ax
4ba700:	56                   	push   %esi
4ba701:	8b cf                	mov    %edi,%ecx
4ba703:	e8 d8 2b fa ff       	call   0x45d2e0
4ba708:	46                   	inc    %esi
4ba709:	8b 48 10             	mov    0x10(%eax),%ecx
4ba70c:	8b c1                	mov    %ecx,%eax
4ba70e:	83 c8 01             	or     $0x1,%eax
4ba711:	0f bd c0             	bsr    %eax,%eax
4ba714:	89 45 dc             	mov    %eax,-0x24(%ebp)
4ba717:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4ba71a:	83 c0 49             	add    $0x49,%eax
4ba71d:	c1 e8 06             	shr    $0x6,%eax
4ba720:	03 c1                	add    %ecx,%eax
4ba722:	03 d8                	add    %eax,%ebx
4ba724:	3b 75 f4             	cmp    -0xc(%ebp),%esi
4ba727:	7c d7                	jl     0x4ba700
4ba729:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4ba72c:	8b 75 fc             	mov    -0x4(%ebp),%esi
4ba72f:	8b 56 08             	mov    0x8(%esi),%edx
4ba732:	f6 c2 03             	test   $0x3,%dl
4ba735:	0f 84 ee 00 00 00    	je     0x4ba829
4ba73b:	f6 c2 01             	test   $0x1,%dl
4ba73e:	74 25                	je     0x4ba765
4ba740:	8b 46 40             	mov    0x40(%esi),%eax
4ba743:	83 e0 fe             	and    $0xfffffffe,%eax
4ba746:	8b 48 10             	mov    0x10(%eax),%ecx
4ba749:	8b c1                	mov    %ecx,%eax
4ba74b:	83 c8 01             	or     $0x1,%eax
4ba74e:	0f bd c0             	bsr    %eax,%eax
4ba751:	89 45 d8             	mov    %eax,-0x28(%ebp)
4ba754:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4ba757:	83 c0 49             	add    $0x49,%eax
4ba75a:	c1 e8 06             	shr    $0x6,%eax
4ba75d:	40                   	inc    %eax
4ba75e:	03 c1                	add    %ecx,%eax
4ba760:	03 d8                	add    %eax,%ebx
4ba762:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4ba765:	f6 c2 02             	test   $0x2,%dl
4ba768:	0f 84 bb 00 00 00    	je     0x4ba829
4ba76e:	8b 76 44             	mov    0x44(%esi),%esi
4ba771:	89 75 f0             	mov    %esi,-0x10(%ebp)
4ba774:	8d 4e 08             	lea    0x8(%esi),%ecx
4ba777:	e8 34 cf fe ff       	call   0x4a76b0
4ba77c:	8b 7e 20             	mov    0x20(%esi),%edi
4ba77f:	8d 0c 78             	lea    (%eax,%edi,2),%ecx
4ba782:	8b 46 28             	mov    0x28(%esi),%eax
4ba785:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4ba788:	85 c0                	test   %eax,%eax
4ba78a:	74 09                	je     0x4ba795
4ba78c:	83 c0 04             	add    $0x4,%eax
4ba78f:	8b d0                	mov    %eax,%edx
4ba791:	8b f0                	mov    %eax,%esi
4ba793:	eb 06                	jmp    0x4ba79b
4ba795:	33 c0                	xor    %eax,%eax
4ba797:	33 d2                	xor    %edx,%edx
4ba799:	33 f6                	xor    %esi,%esi
4ba79b:	8d 3c b8             	lea    (%eax,%edi,4),%edi
4ba79e:	3b d7                	cmp    %edi,%edx
4ba7a0:	74 32                	je     0x4ba7d4
4ba7a2:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4ba7a5:	8b 0e                	mov    (%esi),%ecx
4ba7a7:	e8 f4 6a 00 00       	call   0x4c12a0
4ba7ac:	8b c8                	mov    %eax,%ecx
4ba7ae:	83 c6 04             	add    $0x4,%esi
4ba7b1:	83 c8 01             	or     $0x1,%eax
4ba7b4:	0f bd c0             	bsr    %eax,%eax
4ba7b7:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4ba7ba:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4ba7bd:	83 c0 49             	add    $0x49,%eax
4ba7c0:	c1 e8 06             	shr    $0x6,%eax
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