5f34a3:	40                   	inc    %eax
5f34a4:	33 d2                	xor    %edx,%edx
5f34a6:	e8 e5 ed fe ff       	call   0x5e2290
5f34ab:	23 c7                	and    %edi,%eax
5f34ad:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
5f34b1:	23 d6                	and    %esi,%edx
5f34b3:	0b c2                	or     %edx,%eax
5f34b5:	8b d7                	mov    %edi,%edx
5f34b7:	8b c6                	mov    %esi,%eax
5f34b9:	75 03                	jne    0x5f34be
5f34bb:	88 5d fe             	mov    %bl,-0x2(%ebp)
5f34be:	23 45 e0             	and    -0x20(%ebp),%eax
5f34c1:	8b ca                	mov    %edx,%ecx
5f34c3:	23 4d dc             	and    -0x24(%ebp),%ecx
5f34c6:	0b c8                	or     %eax,%ecx
5f34c8:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
5f34cc:	8b c6                	mov    %esi,%eax
5f34ce:	75 03                	jne    0x5f34d3
5f34d0:	88 5d ff             	mov    %bl,-0x1(%ebp)
5f34d3:	38 5d 18             	cmp    %bl,0x18(%ebp)
5f34d6:	74 10                	je     0x5f34e8
5f34d8:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5f34db:	23 ca                	and    %edx,%ecx
5f34dd:	8b 55 e8             	mov    -0x18(%ebp),%edx
5f34e0:	23 d0                	and    %eax,%edx
5f34e2:	8a c3                	mov    %bl,%al
5f34e4:	0b ca                	or     %edx,%ecx
5f34e6:	74 02                	je     0x5f34ea
5f34e8:	b0 01                	mov    $0x1,%al
5f34ea:	88 45 fd             	mov    %al,-0x3(%ebp)
5f34ed:	38 5d ff             	cmp    %bl,-0x1(%ebp)
5f34f0:	75 04                	jne    0x5f34f6
5f34f2:	84 c0                	test   %al,%al
5f34f4:	74 35                	je     0x5f352b
5f34f6:	e8 a4 36 01 00       	call   0x606b9f
5f34fb:	85 c0                	test   %eax,%eax
5f34fd:	74 1b                	je     0x5f351a
5f34ff:	3d 00 01 00 00       	cmp    $0x100,%eax
5f3504:	74 0f                	je     0x5f3515
5f3506:	3d 00 02 00 00       	cmp    $0x200,%eax
5f350b:	75 1e                	jne    0x5f352b
5f350d:	8a 5d 14             	mov    0x14(%ebp),%bl
5f3510:	80 f3 01             	xor    $0x1,%bl
5f3513:	eb 16                	jmp    0x5f352b
5f3515:	8a 5d 14             	mov    0x14(%ebp),%bl
5f3518:	eb 11                	jmp    0x5f352b
5f351a:	38 5d ff             	cmp    %bl,-0x1(%ebp)
5f351d:	74 0c                	je     0x5f352b
5f351f:	38 5d fd             	cmp    %bl,-0x3(%ebp)
5f3522:	75 05                	jne    0x5f3529
5f3524:	38 5d fe             	cmp    %bl,-0x2(%ebp)
5f3527:	74 02                	je     0x5f352b
5f3529:	b3 01                	mov    $0x1,%bl
5f352b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f352e:	8b c7                	mov    %edi,%eax
5f3530:	8b d6                	mov    %esi,%edx
5f3532:	e8 29 eb fe ff       	call   0x5e2060
5f3537:	8b f8                	mov    %eax,%edi
5f3539:	8b f2                	mov    %edx,%esi
5f353b:	0f b6 c3             	movzbl %bl,%eax
5f353e:	99                   	cltd
5f353f:	03 f8                	add    %eax,%edi
5f3541:	13 f2                	adc    %edx,%esi
5f3543:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
5f3546:	e8 f9 25 00 00       	call   0x5f5b44
5f354b:	3b f2                	cmp    %edx,%esi
5f354d:	72 4f                	jb     0x5f359e
5f354f:	77 04                	ja     0x5f3555
5f3551:	3b f8                	cmp    %eax,%edi
5f3553:	76 49                	jbe    0x5f359e
5f3555:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
5f3558:	33 c0                	xor    %eax,%eax
5f355a:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5f355d:	0f ac f7 01          	shrd   $0x1,%esi,%edi
5f3561:	d1 ee                	shr    $1,%esi
5f3563:	43                   	inc    %ebx
5f3564:	38 41 04             	cmp    %al,0x4(%ecx)
5f3567:	0f 94 c0             	sete   %al
5f356a:	48                   	dec    %eax
5f356b:	25 80 03 00 00       	and    $0x380,%eax
5f3570:	83 c0 7f             	add    $0x7f,%eax
5f3573:	3b d8                	cmp    %eax,%ebx
5f3575:	7e 2a                	jle    0x5f35a1
5f3577:	ff 75 1c             	push   0x1c(%ebp)
5f357a:	ff 75 14             	push   0x14(%ebp)
5f357d:	e8 d6 fc ff ff       	call   0x5f3258
5f3582:	59                   	pop    %ecx
5f3583:	59                   	pop    %ecx
5f3584:	6a 03                	push   $0x3
5f3586:	58                   	pop    %eax
5f3587:	5f                   	pop    %edi
5f3588:	5e                   	pop    %esi
5f3589:	5b                   	pop    %ebx
5f358a:	c9                   	leave
5f358b:	c3                   	ret
5f358c:	7e 10                	jle    0x5f359e
5f358e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f3591:	8b d6                	mov    %esi,%edx
5f3593:	8b c7                	mov    %edi,%eax
5f3595:	e8 f6 ec fe ff       	call   0x5e2290
5f359a:	8b f2                	mov    %edx,%esi
5f359c:	8b f8                	mov    %eax,%edi
5f359e:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5f35a1:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
5f35a4:	e8 e6 1f 00 00       	call   0x5f558f
5f35a9:	23 f8                	and    %eax,%edi
5f35ab:	23 f2                	and    %edx,%esi
5f35ad:	8b 45 1c             	mov    0x1c(%ebp),%eax
5f35b0:	8b c8                	mov    %eax,%ecx
5f35b2:	80 78 04 00          	cmpb   $0x0,0x4(%eax)
5f35b6:	74 13                	je     0x5f35cb
5f35b8:	e8 51 fc ff ff       	call   0x5f320e
5f35bd:	50                   	push   %eax
5f35be:	56                   	push   %esi
5f35bf:	57                   	push   %edi
5f35c0:	53                   	push   %ebx
5f35c1:	ff 75 14             	push   0x14(%ebp)
5f35c4:	e8 94 e7 ff ff       	call   0x5f1d5d
5f35c9:	eb 11                	jmp    0x5f35dc
5f35cb:	e8 63 fc ff ff       	call   0x5f3233
5f35d0:	50                   	push   %eax
5f35d1:	56                   	push   %esi
5f35d2:	57                   	push   %edi
5f35d3:	53                   	push   %ebx
5f35d4:	ff 75 14             	push   0x14(%ebp)
5f35d7:	e8 51 e7 ff ff       	call   0x5f1d2d
5f35dc:	83 c4 14             	add    $0x14,%esp
5f35df:	eb a6                	jmp    0x5f3587
5f35e1:	8b ff                	mov    %edi,%edi
5f35e3:	55                   	push   %ebp
5f35e4:	8b ec                	mov    %esp,%ebp
5f35e6:	83 ec 20             	sub    $0x20,%esp
5f35e9:	33 d2                	xor    %edx,%edx
5f35eb:	53                   	push   %ebx
5f35ec:	8b 5d 18             	mov    0x18(%ebp),%ebx
5f35ef:	56                   	push   %esi
5f35f0:	57                   	push   %edi
5f35f1:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f35f4:	38 53 04             	cmp    %dl,0x4(%ebx)
5f35f7:	0f 94 c2             	sete   %dl
5f35fa:	4a                   	dec    %edx
5f35fb:	83 e2 1d             	and    $0x1d,%edx
5f35fe:	83 c2 17             	add    $0x17,%edx
5f3601:	83 ff 40             	cmp    $0x40,%edi
5f3604:	77 37                	ja     0x5f363d
5f3606:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f3609:	83 39 00             	cmpl   $0x0,(%ecx)
5f360c:	76 05                	jbe    0x5f3613
5f360e:	8b 71 04             	mov    0x4(%ecx),%esi
5f3611:	eb 02                	jmp    0x5f3615
5f3613:	33 f6                	xor    %esi,%esi
5f3615:	83 39 01             	cmpl   $0x1,(%ecx)
5f3618:	76 05                	jbe    0x5f361f
5f361a:	8b 49 08             	mov    0x8(%ecx),%ecx
5f361d:	eb 02                	jmp    0x5f3621
5f361f:	33 c9                	xor    %ecx,%ecx
5f3621:	8a 45 14             	mov    0x14(%ebp),%al
5f3624:	34 01                	xor    $0x1,%al
5f3626:	53                   	push   %ebx
5f3627:	0f b6 c0             	movzbl %al,%eax
5f362a:	50                   	push   %eax
5f362b:	ff 75 10             	push   0x10(%ebp)
5f362e:	33 c0                	xor    %eax,%eax
5f3630:	03 c6                	add    %esi,%eax
5f3632:	52                   	push   %edx
5f3633:	83 d1 00             	adc    $0x0,%ecx
5f3636:	51                   	push   %ecx
5f3637:	50                   	push   %eax
5f3638:	e9 2b 01 00 00       	jmp    0x5f3768
5f363d:	8b cf                	mov    %edi,%ecx
5f363f:	c1 ef 05             	shr    $0x5,%edi
5f3642:	83 e1 1f             	and    $0x1f,%ecx
5f3645:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5f3648:	8d 77 fe             	lea    -0x2(%edi),%esi
5f364b:	8b c6                	mov    %esi,%eax
5f364d:	c1 e0 05             	shl    $0x5,%eax
5f3650:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f3653:	8b 45 08             	mov    0x8(%ebp),%eax
5f3656:	8b 5c b0 04          	mov    0x4(%eax,%esi,4),%ebx
5f365a:	89 5d e8             	mov    %ebx,-0x18(%ebp)
5f365d:	8b 1c b8             	mov    (%eax,%edi,4),%ebx
5f3660:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5f3663:	8b 5d 18             	mov    0x18(%ebp),%ebx
5f3666:	85 c9                	test   %ecx,%ecx
5f3668:	75 4f                	jne    0x5f36b9
5f366a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f366d:	8b 7d f8             	mov    -0x8(%ebp),%edi
5f3670:	03 ca                	add    %edx,%ecx
5f3672:	89 4d ec             	mov    %ecx,-0x14(%ebp)
5f3675:	33 c9                	xor    %ecx,%ecx
5f3677:	03 4c b0 04          	add    0x4(%eax,%esi,4),%ecx
5f367b:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5f367e:	8a 4d 14             	mov    0x14(%ebp),%cl
5f3681:	83 d7 00             	adc    $0x0,%edi
5f3684:	80 f1 01             	xor    $0x1,%cl
5f3687:	88 4d f4             	mov    %cl,-0xc(%ebp)
5f368a:	85 f6                	test   %esi,%esi
5f368c:	74 18                	je     0x5f36a6
5f368e:	8d 50 04             	lea    0x4(%eax),%edx
5f3691:	83 3a 00             	cmpl   $0x0,(%edx)
5f3694:	8d 52 04             	lea    0x4(%edx),%edx
5f3697:	0f 95 c0             	setne  %al
5f369a:	fe c8                	dec    %al
5f369c:	22 c8                	and    %al,%cl
5f369e:	83 ee 01             	sub    $0x1,%esi
5f36a1:	75 ee                	jne    0x5f3691
5f36a3:	88 4d f4             	mov    %cl,-0xc(%ebp)
5f36a6:	53                   	push   %ebx
5f36a7:	ff 75 f4             	push   -0xc(%ebp)
5f36aa:	ff 75 10             	push   0x10(%ebp)
5f36ad:	ff 75 ec             	push   -0x14(%ebp)
5f36b0:	57                   	push   %edi
5f36b1:	ff 75 f0             	push   -0x10(%ebp)
5f36b4:	e9 af 00 00 00       	jmp    0x5f3768
5f36b9:	33 db                	xor    %ebx,%ebx
5f36bb:	43                   	inc    %ebx
5f36bc:	8b c3                	mov    %ebx,%eax
5f36be:	d3 e0                	shl    %cl,%eax
5f36c0:	48                   	dec    %eax
5f36c1:	89 45 ec             	mov    %eax,-0x14(%ebp)
5f36c4:	6a 40                	push   $0x40
5f36c6:	58                   	pop    %eax
5f36c7:	2b c1                	sub    %ecx,%eax
5f36c9:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f36cc:	8b 45 f4             	mov    -0xc(%ebp),%eax
5f36cf:	03 c1                	add    %ecx,%eax
5f36d1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5f36d4:	03 c2                	add    %edx,%eax
5f36d6:	33 d2                	xor    %edx,%edx
5f36d8:	89 45 e0             	mov    %eax,-0x20(%ebp)
5f36db:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f36de:	8d 49 e0             	lea    -0x20(%ecx),%ecx
5f36e1:	e8 aa eb fe ff       	call   0x5e2290
5f36e6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5f36e9:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f36ec:	8b 45 08             	mov    0x8(%ebp),%eax
5f36ef:	89 55 f8             	mov    %edx,-0x8(%ebp)
5f36f2:	33 d2                	xor    %edx,%edx
5f36f4:	8b 44 b8 04          	mov    0x4(%eax,%edi,4),%eax
5f36f8:	23 45 ec             	and    -0x14(%ebp),%eax
5f36fb:	e8 90 eb fe ff       	call   0x5e2290
5f3700:	01 45 fc             	add    %eax,-0x4(%ebp)
5f3703:	8b 45 ec             	mov    -0x14(%ebp),%eax
5f3706:	11 55 f8             	adc    %edx,-0x8(%ebp)
5f3709:	f7 d0                	not    %eax
5f370b:	8b 7d e8             	mov    -0x18(%ebp),%edi
5f370e:	33 d2                	xor    %edx,%edx
5f3710:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5f3713:	23 c7                	and    %edi,%eax
5f3715:	e8 46 e9 fe ff       	call   0x5e2060
5f371a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f371d:	03 c8                	add    %eax,%ecx
5f371f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5f3722:	11 55 f8             	adc    %edx,-0x8(%ebp)
5f3725:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
5f3729:	75 05                	jne    0x5f3730
5f372b:	85 7d ec             	test   %edi,-0x14(%ebp)
5f372e:	74 02                	je     0x5f3732
5f3730:	32 db                	xor    %bl,%bl
5f3732:	88 5d f4             	mov    %bl,-0xc(%ebp)
5f3735:	85 f6                	test   %esi,%esi
5f3737:	74 1e                	je     0x5f3757
5f3739:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f373c:	83 c1 04             	add    $0x4,%ecx
5f373f:	83 39 00             	cmpl   $0x0,(%ecx)
5f3742:	8d 49 04             	lea    0x4(%ecx),%ecx
5f3745:	0f 95 c0             	setne  %al
5f3748:	fe c8                	dec    %al
5f374a:	22 d8                	and    %al,%bl
5f374c:	88 5d f4             	mov    %bl,-0xc(%ebp)
5f374f:	83 ee 01             	sub    $0x1,%esi
5f3752:	75 eb                	jne    0x5f373f
5f3754:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f3757:	ff 75 18             	push   0x18(%ebp)
5f375a:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f375d:	ff 75 f4             	push   -0xc(%ebp)
5f3760:	ff 75 10             	push   0x10(%ebp)
5f3763:	ff 75 e0             	push   -0x20(%ebp)
5f3766:	52                   	push   %edx
5f3767:	51                   	push   %ecx
5f3768:	e8 2b fb ff ff       	call   0x5f3298
5f376d:	83 c4 18             	add    $0x18,%esp
5f3770:	5f                   	pop    %edi
5f3771:	5e                   	pop    %esi
5f3772:	5b                   	pop    %ebx
5f3773:	c9                   	leave
5f3774:	c3                   	ret
5f3775:	8b ff                	mov    %edi,%edi
5f3777:	55                   	push   %ebp
5f3778:	8b ec                	mov    %esp,%ebp
5f377a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f377d:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
5f3781:	74 17                	je     0x5f379a
5f3783:	e8 86 fa ff ff       	call   0x5f320e
5f3788:	8b c8                	mov    %eax,%ecx
5f378a:	0f b6 45 08          	movzbl 0x8(%ebp),%eax
5f378e:	99                   	cltd
5f378f:	c1 e0 1f             	shl    $0x1f,%eax
5f3792:	83 21 00             	andl   $0x0,(%ecx)
5f3795:	89 41 04             	mov    %eax,0x4(%ecx)
5f3798:	5d                   	pop    %ebp
5f3799:	c3                   	ret
5f379a:	e8 94 fa ff ff       	call   0x5f3233
5f379f:	0f b6 4d 08          	movzbl 0x8(%ebp),%ecx
5f37a3:	c1 e1 1f             	shl    $0x1f,%ecx
5f37a6:	89 08                	mov    %ecx,(%eax)
5f37a8:	5d                   	pop    %ebp
5f37a9:	c3                   	ret
5f37aa:	8b ff                	mov    %edi,%edi
5f37ac:	55                   	push   %ebp
5f37ad:	8b ec                	mov    %esp,%ebp
5f37af:	81 ec 2c 0b 00 00    	sub    $0xb2c,%esp
5f37b5:	a1 d4 89 72 00       	mov    0x7289d4,%eax
5f37ba:	33 c5                	xor    %ebp,%eax
5f37bc:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f37bf:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f37c2:	33 c0                	xor    %eax,%eax
5f37c4:	8b 55 08             	mov    0x8(%ebp),%edx
5f37c7:	53                   	push   %ebx
5f37c8:	56                   	push   %esi
5f37c9:	38 41 04             	cmp    %al,0x4(%ecx)
5f37cc:	8b 1a                	mov    (%edx),%ebx
5f37ce:	0f 94 c0             	sete   %al
5f37d1:	89 95 b8 f6 ff ff    	mov    %edx,-0x948(%ebp)
5f37d7:	48                   	dec    %eax
5f37d8:	89 8d b0 f6 ff ff    	mov    %ecx,-0x950(%ebp)
5f37de:	83 e0 1d             	and    $0x1d,%eax
5f37e1:	83 c0 19             	add    $0x19,%eax
5f37e4:	89 85 b4 f6 ff ff    	mov    %eax,-0x94c(%ebp)
5f37ea:	57                   	push   %edi
5f37eb:	85 db                	test   %ebx,%ebx
5f37ed:	79 02                	jns    0x5f37f1
5f37ef:	33 db                	xor    %ebx,%ebx
5f37f1:	8b 42 04             	mov    0x4(%edx),%eax
5f37f4:	8b cb                	mov    %ebx,%ecx
5f37f6:	3b d8                	cmp    %eax,%ebx
5f37f8:	72 02                	jb     0x5f37fc
5f37fa:	8b c8                	mov    %eax,%ecx
5f37fc:	2b d9                	sub    %ecx,%ebx
5f37fe:	8d 7a 08             	lea    0x8(%edx),%edi
5f3801:	83 c0 08             	add    $0x8,%eax
5f3804:	89 9d c8 f6 ff ff    	mov    %ebx,-0x938(%ebp)
5f380a:	83 c1 08             	add    $0x8,%ecx
5f380d:	89 bd c4 f6 ff ff    	mov    %edi,-0x93c(%ebp)
5f3813:	03 ca                	add    %edx,%ecx
5f3815:	03 c2                	add    %edx,%eax
5f3817:	89 8d ac f6 ff ff    	mov    %ecx,-0x954(%ebp)
5f381d:	33 db                	xor    %ebx,%ebx
5f381f:	89 85 a8 f6 ff ff    	mov    %eax,-0x958(%ebp)
5f3825:	33 f6                	xor    %esi,%esi