5bc581:	8b 47 04             	mov    0x4(%edi),%eax
5bc584:	8b 0f                	mov    (%edi),%ecx
5bc586:	8b 55 08             	mov    0x8(%ebp),%edx
5bc589:	3b d0                	cmp    %eax,%edx
5bc58b:	75 07                	jne    0x5bc594
5bc58d:	2b c1                	sub    %ecx,%eax
5bc58f:	50                   	push   %eax
5bc590:	51                   	push   %ecx
5bc591:	53                   	push   %ebx
5bc592:	eb 1e                	jmp    0x5bc5b2
5bc594:	2b d1                	sub    %ecx,%edx
5bc596:	52                   	push   %edx
5bc597:	51                   	push   %ecx
5bc598:	53                   	push   %ebx
5bc599:	e8 32 68 01 00       	call   0x5d2dd0
5bc59e:	83 c4 0c             	add    $0xc,%esp
5bc5a1:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5bc5a4:	83 c1 04             	add    $0x4,%ecx
5bc5a7:	8b 47 04             	mov    0x4(%edi),%eax
5bc5aa:	8b 55 08             	mov    0x8(%ebp),%edx
5bc5ad:	2b c2                	sub    %edx,%eax
5bc5af:	50                   	push   %eax
5bc5b0:	52                   	push   %edx
5bc5b1:	51                   	push   %ecx
5bc5b2:	e8 19 68 01 00       	call   0x5d2dd0
5bc5b7:	83 c4 0c             	add    $0xc,%esp
5bc5ba:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
5bc5c1:	56                   	push   %esi
5bc5c2:	ff 75 e0             	push   -0x20(%ebp)
5bc5c5:	53                   	push   %ebx
5bc5c6:	8b cf                	mov    %edi,%ecx
5bc5c8:	e8 43 3d 00 00       	call   0x5c0310
5bc5cd:	8b 45 ec             	mov    -0x14(%ebp),%eax
5bc5d0:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5bc5d3:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5bc5da:	5f                   	pop    %edi
5bc5db:	5e                   	pop    %esi
5bc5dc:	5b                   	pop    %ebx
5bc5dd:	8b e5                	mov    %ebp,%esp
5bc5df:	5d                   	pop    %ebp
5bc5e0:	c2 08 00             	ret    $0x8
5bc5e3:	ff 75 e8             	push   -0x18(%ebp)
5bc5e6:	ff 75 dc             	push   -0x24(%ebp)
5bc5e9:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5bc5ec:	e8 df 3d 00 00       	call   0x5c03d0
5bc5f1:	6a 00                	push   $0x0
5bc5f3:	6a 00                	push   $0x0
5bc5f5:	e8 45 75 01 00       	call   0x5d3b3f
5bc5fa:	e8 a1 01 ea ff       	call   0x45c7a0
5bc5ff:	cc                   	int3
5bc600:	cc                   	int3
5bc601:	cc                   	int3
5bc602:	cc                   	int3
5bc603:	cc                   	int3
5bc604:	cc                   	int3
5bc605:	cc                   	int3
5bc606:	cc                   	int3
5bc607:	cc                   	int3
5bc608:	cc                   	int3
5bc609:	cc                   	int3
5bc60a:	cc                   	int3
5bc60b:	cc                   	int3
5bc60c:	cc                   	int3
5bc60d:	cc                   	int3
5bc60e:	cc                   	int3
5bc60f:	cc                   	int3
5bc610:	55                   	push   %ebp
5bc611:	8b ec                	mov    %esp,%ebp
5bc613:	6a ff                	push   $0xffffffff
5bc615:	68 10 fe 5f 00       	push   $0x5ffe10
5bc61a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
5bc620:	50                   	push   %eax
5bc621:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
5bc628:	83 ec 18             	sub    $0x18,%esp
5bc62b:	53                   	push   %ebx
5bc62c:	56                   	push   %esi
5bc62d:	57                   	push   %edi
5bc62e:	89 65 f0             	mov    %esp,-0x10(%ebp)
5bc631:	89 4d e0             	mov    %ecx,-0x20(%ebp)
5bc634:	8b 19                	mov    (%ecx),%ebx
5bc636:	8b 75 08             	mov    0x8(%ebp),%esi
5bc639:	2b f3                	sub    %ebx,%esi
5bc63b:	8b 41 04             	mov    0x4(%ecx),%eax
5bc63e:	2b c3                	sub    %ebx,%eax
5bc640:	c1 f8 05             	sar    $0x5,%eax
5bc643:	3d ff ff ff 07       	cmp    $0x7ffffff,%eax
5bc648:	0f 84 18 01 00 00    	je     0x5bc766
5bc64e:	8d 50 01             	lea    0x1(%eax),%edx
5bc651:	89 55 dc             	mov    %edx,-0x24(%ebp)
5bc654:	8b 79 08             	mov    0x8(%ecx),%edi
5bc657:	2b fb                	sub    %ebx,%edi
5bc659:	c1 ff 05             	sar    $0x5,%edi
5bc65c:	8b df                	mov    %edi,%ebx
5bc65e:	d1 eb                	shr    $1,%ebx
5bc660:	b8 ff ff ff 07       	mov    $0x7ffffff,%eax
5bc665:	2b c3                	sub    %ebx,%eax
5bc667:	3b f8                	cmp    %eax,%edi
5bc669:	76 07                	jbe    0x5bc672
5bc66b:	bb ff ff ff 07       	mov    $0x7ffffff,%ebx
5bc670:	eb 07                	jmp    0x5bc679
5bc672:	03 df                	add    %edi,%ebx
5bc674:	3b da                	cmp    %edx,%ebx
5bc676:	0f 42 da             	cmovb  %edx,%ebx
5bc679:	89 5d e8             	mov    %ebx,-0x18(%ebp)
5bc67c:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
5bc67f:	8d 45 e4             	lea    -0x1c(%ebp),%eax
5bc682:	50                   	push   %eax
5bc683:	51                   	push   %ecx
5bc684:	e8 67 fb ff ff       	call   0x5bc1f0
5bc689:	83 c4 08             	add    $0x8,%esp
5bc68c:	8b d0                	mov    %eax,%edx
5bc68e:	89 55 e4             	mov    %edx,-0x1c(%ebp)
5bc691:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
5bc698:	83 e6 e0             	and    $0xffffffe0,%esi
5bc69b:	8d 04 16             	lea    (%esi,%edx,1),%eax
5bc69e:	89 45 ec             	mov    %eax,-0x14(%ebp)
5bc6a1:	b9 08 00 00 00       	mov    $0x8,%ecx
5bc6a6:	8b 75 0c             	mov    0xc(%ebp),%esi
5bc6a9:	8b f8                	mov    %eax,%edi
5bc6ab:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
5bc6ad:	8b 75 e0             	mov    -0x20(%ebp),%esi
5bc6b0:	8b 46 04             	mov    0x4(%esi),%eax
5bc6b3:	8b 0e                	mov    (%esi),%ecx
5bc6b5:	8b 7d 08             	mov    0x8(%ebp),%edi
5bc6b8:	3b f8                	cmp    %eax,%edi
5bc6ba:	75 07                	jne    0x5bc6c3
5bc6bc:	2b c1                	sub    %ecx,%eax
5bc6be:	50                   	push   %eax
5bc6bf:	51                   	push   %ecx
5bc6c0:	52                   	push   %edx
5bc6c1:	eb 1d                	jmp    0x5bc6e0
5bc6c3:	8b c7                	mov    %edi,%eax
5bc6c5:	2b c1                	sub    %ecx,%eax
5bc6c7:	50                   	push   %eax
5bc6c8:	51                   	push   %ecx
5bc6c9:	52                   	push   %edx
5bc6ca:	e8 01 67 01 00       	call   0x5d2dd0
5bc6cf:	83 c4 0c             	add    $0xc,%esp
5bc6d2:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5bc6d5:	83 c1 20             	add    $0x20,%ecx
5bc6d8:	8b 46 04             	mov    0x4(%esi),%eax
5bc6db:	2b c7                	sub    %edi,%eax
5bc6dd:	50                   	push   %eax
5bc6de:	57                   	push   %edi
5bc6df:	51                   	push   %ecx
5bc6e0:	e8 eb 66 01 00       	call   0x5d2dd0
5bc6e5:	83 c4 0c             	add    $0xc,%esp
5bc6e8:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
5bc6ef:	8b 06                	mov    (%esi),%eax
5bc6f1:	85 c0                	test   %eax,%eax
5bc6f3:	74 2c                	je     0x5bc721
5bc6f5:	8b 4e 08             	mov    0x8(%esi),%ecx
5bc6f8:	2b c8                	sub    %eax,%ecx
5bc6fa:	83 e1 e0             	and    $0xffffffe0,%ecx
5bc6fd:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
5bc703:	72 12                	jb     0x5bc717
5bc705:	83 c1 23             	add    $0x23,%ecx
5bc708:	8b 50 fc             	mov    -0x4(%eax),%edx
5bc70b:	2b c2                	sub    %edx,%eax
5bc70d:	83 c0 fc             	add    $0xfffffffc,%eax
5bc710:	83 f8 1f             	cmp    $0x1f,%eax
5bc713:	77 56                	ja     0x5bc76b
5bc715:	8b c2                	mov    %edx,%eax
5bc717:	51                   	push   %ecx
5bc718:	50                   	push   %eax
5bc719:	e8 37 4b 01 00       	call   0x5d1255
5bc71e:	83 c4 08             	add    $0x8,%esp
5bc721:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5bc724:	89 06                	mov    %eax,(%esi)
5bc726:	8b 4d dc             	mov    -0x24(%ebp),%ecx
5bc729:	c1 e1 05             	shl    $0x5,%ecx
5bc72c:	03 c8                	add    %eax,%ecx
5bc72e:	89 4e 04             	mov    %ecx,0x4(%esi)
5bc731:	c1 e3 05             	shl    $0x5,%ebx
5bc734:	03 d8                	add    %eax,%ebx
5bc736:	89 5e 08             	mov    %ebx,0x8(%esi)
5bc739:	8b 45 ec             	mov    -0x14(%ebp),%eax
5bc73c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5bc73f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5bc746:	5f                   	pop    %edi
5bc747:	5e                   	pop    %esi
5bc748:	5b                   	pop    %ebx
5bc749:	8b e5                	mov    %ebp,%esp
5bc74b:	5d                   	pop    %ebp
5bc74c:	c2 08 00             	ret    $0x8
5bc74f:	ff 75 e8             	push   -0x18(%ebp)
5bc752:	ff 75 e4             	push   -0x1c(%ebp)
5bc755:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5bc758:	e8 b3 3c 00 00       	call   0x5c0410
5bc75d:	6a 00                	push   $0x0
5bc75f:	6a 00                	push   $0x0
5bc761:	e8 d9 73 01 00       	call   0x5d3b3f
5bc766:	e8 35 00 ea ff       	call   0x45c7a0
5bc76b:	e8 80 9a 01 00       	call   0x5d61f0
5bc770:	cc                   	int3
5bc771:	cc                   	int3
5bc772:	cc                   	int3
5bc773:	cc                   	int3
5bc774:	cc                   	int3
5bc775:	cc                   	int3
5bc776:	cc                   	int3
5bc777:	cc                   	int3
5bc778:	cc                   	int3
5bc779:	cc                   	int3
5bc77a:	cc                   	int3
5bc77b:	cc                   	int3
5bc77c:	cc                   	int3
5bc77d:	cc                   	int3
5bc77e:	cc                   	int3
5bc77f:	cc                   	int3
5bc780:	55                   	push   %ebp
5bc781:	8b ec                	mov    %esp,%ebp
5bc783:	6a ff                	push   $0xffffffff
5bc785:	68 20 fe 5f 00       	push   $0x5ffe20
5bc78a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
5bc790:	50                   	push   %eax
5bc791:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
5bc798:	83 ec 1c             	sub    $0x1c,%esp
5bc79b:	53                   	push   %ebx
5bc79c:	56                   	push   %esi
5bc79d:	57                   	push   %edi
5bc79e:	89 65 f0             	mov    %esp,-0x10(%ebp)
5bc7a1:	8b f9                	mov    %ecx,%edi
5bc7a3:	89 7d d8             	mov    %edi,-0x28(%ebp)
5bc7a6:	8b 17                	mov    (%edi),%edx
5bc7a8:	8b 45 08             	mov    0x8(%ebp),%eax
5bc7ab:	2b c2                	sub    %edx,%eax
5bc7ad:	c1 f8 03             	sar    $0x3,%eax
5bc7b0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5bc7b3:	8b 47 04             	mov    0x4(%edi),%eax
5bc7b6:	2b c2                	sub    %edx,%eax
5bc7b8:	c1 f8 03             	sar    $0x3,%eax
5bc7bb:	3d ff ff ff 1f       	cmp    $0x1fffffff,%eax
5bc7c0:	0f 84 dd 00 00 00    	je     0x5bc8a3
5bc7c6:	8d 58 01             	lea    0x1(%eax),%ebx
5bc7c9:	89 5d e0             	mov    %ebx,-0x20(%ebp)
5bc7cc:	8b 4f 08             	mov    0x8(%edi),%ecx
5bc7cf:	2b ca                	sub    %edx,%ecx
5bc7d1:	c1 f9 03             	sar    $0x3,%ecx
5bc7d4:	8b d1                	mov    %ecx,%edx
5bc7d6:	d1 ea                	shr    $1,%edx
5bc7d8:	b8 ff ff ff 1f       	mov    $0x1fffffff,%eax
5bc7dd:	2b c2                	sub    %edx,%eax
5bc7df:	3b c8                	cmp    %eax,%ecx
5bc7e1:	76 07                	jbe    0x5bc7ea
5bc7e3:	be ff ff ff 1f       	mov    $0x1fffffff,%esi
5bc7e8:	eb 08                	jmp    0x5bc7f2
5bc7ea:	8d 34 0a             	lea    (%edx,%ecx,1),%esi
5bc7ed:	3b f3                	cmp    %ebx,%esi
5bc7ef:	0f 42 f3             	cmovb  %ebx,%esi
5bc7f2:	89 75 e8             	mov    %esi,-0x18(%ebp)
5bc7f5:	89 75 ec             	mov    %esi,-0x14(%ebp)
5bc7f8:	8d 45 ec             	lea    -0x14(%ebp),%eax
5bc7fb:	50                   	push   %eax
5bc7fc:	57                   	push   %edi
5bc7fd:	e8 4e fa ff ff       	call   0x5bc250
5bc802:	83 c4 08             	add    $0x8,%esp
5bc805:	8b d8                	mov    %eax,%ebx
5bc807:	89 5d dc             	mov    %ebx,-0x24(%ebp)
5bc80a:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
5bc811:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5bc814:	8d 04 c3             	lea    (%ebx,%eax,8),%eax
5bc817:	89 45 ec             	mov    %eax,-0x14(%ebp)
5bc81a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5bc81d:	8b 11                	mov    (%ecx),%edx
5bc81f:	8b 41 04             	mov    0x4(%ecx),%eax
5bc822:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5bc825:	89 11                	mov    %edx,(%ecx)
5bc827:	89 41 04             	mov    %eax,0x4(%ecx)
5bc82a:	8b 57 04             	mov    0x4(%edi),%edx
5bc82d:	8b 0f                	mov    (%edi),%ecx
5bc82f:	8b 45 08             	mov    0x8(%ebp),%eax
5bc832:	3b c2                	cmp    %edx,%eax
5bc834:	75 07                	jne    0x5bc83d
5bc836:	2b d1                	sub    %ecx,%edx
5bc838:	52                   	push   %edx
5bc839:	51                   	push   %ecx
5bc83a:	53                   	push   %ebx
5bc83b:	eb 1e                	jmp    0x5bc85b
5bc83d:	2b c1                	sub    %ecx,%eax
5bc83f:	50                   	push   %eax
5bc840:	51                   	push   %ecx
5bc841:	53                   	push   %ebx
5bc842:	e8 89 65 01 00       	call   0x5d2dd0
5bc847:	83 c4 0c             	add    $0xc,%esp
5bc84a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5bc84d:	83 c1 08             	add    $0x8,%ecx
5bc850:	8b 47 04             	mov    0x4(%edi),%eax
5bc853:	8b 55 08             	mov    0x8(%ebp),%edx
5bc856:	2b c2                	sub    %edx,%eax
5bc858:	50                   	push   %eax
5bc859:	52                   	push   %edx
5bc85a:	51                   	push   %ecx
5bc85b:	e8 70 65 01 00       	call   0x5d2dd0
5bc860:	83 c4 0c             	add    $0xc,%esp
5bc863:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
5bc86a:	56                   	push   %esi
5bc86b:	ff 75 e0             	push   -0x20(%ebp)
5bc86e:	53                   	push   %ebx
5bc86f:	8b cf                	mov    %edi,%ecx
5bc871:	e8 fa 3a 00 00       	call   0x5c0370
5bc876:	8b 45 ec             	mov    -0x14(%ebp),%eax
5bc879:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5bc87c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5bc883:	5f                   	pop    %edi
5bc884:	5e                   	pop    %esi
5bc885:	5b                   	pop    %ebx
5bc886:	8b e5                	mov    %ebp,%esp
5bc888:	5d                   	pop    %ebp
5bc889:	c2 08 00             	ret    $0x8
5bc88c:	ff 75 e8             	push   -0x18(%ebp)
5bc88f:	ff 75 dc             	push   -0x24(%ebp)
5bc892:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5bc895:	e8 b6 3b 00 00       	call   0x5c0450
5bc89a:	6a 00                	push   $0x0
5bc89c:	6a 00                	push   $0x0
5bc89e:	e8 9c 72 01 00       	call   0x5d3b3f
5bc8a3:	e8 f8 fe e9 ff       	call   0x45c7a0
5bc8a8:	cc                   	int3
5bc8a9:	cc                   	int3
5bc8aa:	cc                   	int3
5bc8ab:	cc                   	int3
5bc8ac:	cc                   	int3
5bc8ad:	cc                   	int3
5bc8ae:	cc                   	int3
5bc8af:	cc                   	int3
5bc8b0:	55                   	push   %ebp
5bc8b1:	8b ec                	mov    %esp,%ebp
5bc8b3:	6a ff                	push   $0xffffffff
5bc8b5:	68 3d fe 5f 00       	push   $0x5ffe3d
5bc8ba:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
5bc8c0:	50                   	push   %eax
5bc8c1:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
5bc8c8:	51                   	push   %ecx
5bc8c9:	56                   	push   %esi
5bc8ca:	8b 75 0c             	mov    0xc(%ebp),%esi
5bc8cd:	8b c1                	mov    %ecx,%eax
5bc8cf:	89 45 f0             	mov    %eax,-0x10(%ebp)
5bc8d2:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
5bc8d6:	75 3f                	jne    0x5bc917
5bc8d8:	53                   	push   %ebx
5bc8d9:	8b 5d 08             	mov    0x8(%ebp),%ebx
5bc8dc:	57                   	push   %edi
5bc8dd:	8d 49 00             	lea    0x0(%ecx),%ecx
5bc8e0:	ff 76 08             	push   0x8(%esi)
5bc8e3:	8b c8                	mov    %eax,%ecx
5bc8e5:	53                   	push   %ebx
5bc8e6:	e8 c5 ff ff ff       	call   0x5bc8b0
5bc8eb:	8b fe                	mov    %esi,%edi
5bc8ed:	8b 36                	mov    (%esi),%esi