5d74b5:	84 c0                	test   %al,%al
5d74b7:	74 40                	je     0x5d74f9
5d74b9:	8b 45 08             	mov    0x8(%ebp),%eax
5d74bc:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
5d74c0:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
5d74c7:	f6 c3 01             	test   $0x1,%bl
5d74ca:	75 05                	jne    0x5d74d1
5d74cc:	83 ce ff             	or     $0xffffffff,%esi
5d74cf:	eb 2f                	jmp    0x5d7500
5d74d1:	8b 4d 10             	mov    0x10(%ebp),%ecx
5d74d4:	f6 c3 02             	test   $0x2,%bl
5d74d7:	74 10                	je     0x5d74e9
5d74d9:	85 c9                	test   %ecx,%ecx
5d74db:	74 05                	je     0x5d74e2
5d74dd:	8b 45 0c             	mov    0xc(%ebp),%eax
5d74e0:	89 01                	mov    %eax,(%ecx)
5d74e2:	b8 00 00 00 80       	mov    $0x80000000,%eax
5d74e7:	eb 25                	jmp    0x5d750e
5d74e9:	85 c9                	test   %ecx,%ecx
5d74eb:	74 05                	je     0x5d74f2
5d74ed:	8b 45 0c             	mov    0xc(%ebp),%eax
5d74f0:	89 01                	mov    %eax,(%ecx)
5d74f2:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
5d74f7:	eb 15                	jmp    0x5d750e
5d74f9:	f6 c3 02             	test   $0x2,%bl
5d74fc:	74 02                	je     0x5d7500
5d74fe:	f7 de                	neg    %esi
5d7500:	8b 55 10             	mov    0x10(%ebp),%edx
5d7503:	85 d2                	test   %edx,%edx
5d7505:	74 05                	je     0x5d750c
5d7507:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5d750a:	89 0a                	mov    %ecx,(%edx)
5d750c:	8b c6                	mov    %esi,%eax
5d750e:	5f                   	pop    %edi
5d750f:	5e                   	pop    %esi
5d7510:	5b                   	pop    %ebx
5d7511:	c9                   	leave
5d7512:	c3                   	ret
5d7513:	8b ff                	mov    %edi,%edi
5d7515:	56                   	push   %esi
5d7516:	8b f1                	mov    %ecx,%esi
5d7518:	57                   	push   %edi
5d7519:	8b be 04 04 00 00    	mov    0x404(%esi),%edi
5d751f:	e8 0b f6 ff ff       	call   0x5d6b2f
5d7524:	85 ff                	test   %edi,%edi
5d7526:	75 04                	jne    0x5d752c
5d7528:	03 c6                	add    %esi,%eax
5d752a:	eb 02                	jmp    0x5d752e
5d752c:	03 c7                	add    %edi,%eax
5d752e:	5f                   	pop    %edi
5d752f:	5e                   	pop    %esi
5d7530:	c3                   	ret
5d7531:	8b ff                	mov    %edi,%edi
5d7533:	55                   	push   %ebp
5d7534:	8b ec                	mov    %esp,%ebp
5d7536:	83 ec 0c             	sub    $0xc,%esp
5d7539:	53                   	push   %ebx
5d753a:	56                   	push   %esi
5d753b:	8b f1                	mov    %ecx,%esi
5d753d:	57                   	push   %edi
5d753e:	ff 76 28             	push   0x28(%esi)
5d7541:	e8 2c 2a 00 00       	call   0x5d9f72
5d7546:	59                   	pop    %ecx
5d7547:	8b c8                	mov    %eax,%ecx
5d7549:	89 45 f4             	mov    %eax,-0xc(%ebp)
5d754c:	6a 00                	push   $0x0
5d754e:	5b                   	pop    %ebx
5d754f:	83 e9 01             	sub    $0x1,%ecx
5d7552:	0f 84 99 00 00 00    	je     0x5d75f1
5d7558:	83 e9 01             	sub    $0x1,%ecx
5d755b:	74 75                	je     0x5d75d2
5d755d:	49                   	dec    %ecx
5d755e:	83 e9 01             	sub    $0x1,%ecx
5d7561:	74 46                	je     0x5d75a9
5d7563:	83 e9 04             	sub    $0x4,%ecx
5d7566:	74 27                	je     0x5d758f
5d7568:	8b 46 08             	mov    0x8(%esi),%eax
5d756b:	83 c0 18             	add    $0x18,%eax
5d756e:	c6 40 04 01          	movb   $0x1,0x4(%eax)
5d7572:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5d7578:	ff 76 08             	push   0x8(%esi)
5d757b:	53                   	push   %ebx
5d757c:	53                   	push   %ebx
5d757d:	53                   	push   %ebx
5d757e:	53                   	push   %ebx
5d757f:	53                   	push   %ebx
5d7580:	e8 de eb ff ff       	call   0x5d6163
5d7585:	83 c4 18             	add    $0x18,%esp
5d7588:	32 c0                	xor    %al,%al
5d758a:	e9 28 01 00 00       	jmp    0x5d76b7
5d758f:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7592:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7595:	8b c7                	mov    %edi,%eax
5d7597:	c1 e8 04             	shr    $0x4,%eax
5d759a:	a8 01                	test   $0x1,%al
5d759c:	8d 41 08             	lea    0x8(%ecx),%eax
5d759f:	89 46 10             	mov    %eax,0x10(%esi)
5d75a2:	8b 01                	mov    (%ecx),%eax
5d75a4:	8b 51 04             	mov    0x4(%ecx),%edx
5d75a7:	eb 66                	jmp    0x5d760f
5d75a9:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d75ac:	8b c7                	mov    %edi,%eax
5d75ae:	c1 e8 04             	shr    $0x4,%eax
5d75b1:	a8 01                	test   $0x1,%al
5d75b3:	74 0d                	je     0x5d75c2
5d75b5:	8b 46 10             	mov    0x10(%esi),%eax
5d75b8:	8d 48 04             	lea    0x4(%eax),%ecx
5d75bb:	89 4e 10             	mov    %ecx,0x10(%esi)
5d75be:	8b 00                	mov    (%eax),%eax
5d75c0:	eb 4c                	jmp    0x5d760e
5d75c2:	8b 4e 10             	mov    0x10(%esi),%ecx
5d75c5:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5d75c8:	8d 41 04             	lea    0x4(%ecx),%eax
5d75cb:	89 46 10             	mov    %eax,0x10(%esi)
5d75ce:	8b 01                	mov    (%ecx),%eax
5d75d0:	eb 40                	jmp    0x5d7612
5d75d2:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d75d5:	8b c7                	mov    %edi,%eax
5d75d7:	8b 4e 10             	mov    0x10(%esi),%ecx
5d75da:	c1 e8 04             	shr    $0x4,%eax
5d75dd:	a8 01                	test   $0x1,%al
5d75df:	8d 41 04             	lea    0x4(%ecx),%eax
5d75e2:	89 46 10             	mov    %eax,0x10(%esi)
5d75e5:	74 05                	je     0x5d75ec
5d75e7:	0f bf 01             	movswl (%ecx),%eax
5d75ea:	eb 22                	jmp    0x5d760e
5d75ec:	0f b7 01             	movzwl (%ecx),%eax
5d75ef:	eb 1d                	jmp    0x5d760e
5d75f1:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d75f4:	8b c7                	mov    %edi,%eax
5d75f6:	8b 4e 10             	mov    0x10(%esi),%ecx
5d75f9:	c1 e8 04             	shr    $0x4,%eax
5d75fc:	a8 01                	test   $0x1,%al
5d75fe:	8d 41 04             	lea    0x4(%ecx),%eax
5d7601:	89 46 10             	mov    %eax,0x10(%esi)
5d7604:	74 05                	je     0x5d760b
5d7606:	0f be 01             	movsbl (%ecx),%eax
5d7609:	eb 03                	jmp    0x5d760e
5d760b:	0f b6 01             	movzbl (%ecx),%eax
5d760e:	99                   	cltd
5d760f:	89 55 f8             	mov    %edx,-0x8(%ebp)
5d7612:	8b 55 f8             	mov    -0x8(%ebp),%edx
5d7615:	89 45 fc             	mov    %eax,-0x4(%ebp)
5d7618:	8b c7                	mov    %edi,%eax
5d761a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5d761d:	c1 e8 04             	shr    $0x4,%eax
5d7620:	a8 01                	test   $0x1,%al
5d7622:	74 16                	je     0x5d763a
5d7624:	3b d3                	cmp    %ebx,%edx
5d7626:	7f 12                	jg     0x5d763a
5d7628:	7c 04                	jl     0x5d762e
5d762a:	3b cb                	cmp    %ebx,%ecx
5d762c:	73 0c                	jae    0x5d763a
5d762e:	f7 d9                	neg    %ecx
5d7630:	13 d3                	adc    %ebx,%edx
5d7632:	f7 da                	neg    %edx
5d7634:	83 cf 40             	or     $0x40,%edi
5d7637:	89 7e 1c             	mov    %edi,0x1c(%esi)
5d763a:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
5d763e:	89 55 f8             	mov    %edx,-0x8(%ebp)
5d7641:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5d7644:	7d 09                	jge    0x5d764f
5d7646:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
5d764d:	eb 1a                	jmp    0x5d7669
5d764f:	ff 76 08             	push   0x8(%esi)
5d7652:	83 e7 f7             	and    $0xfffffff7,%edi
5d7655:	8d 4e 3c             	lea    0x3c(%esi),%ecx
5d7658:	ff 76 24             	push   0x24(%esi)
5d765b:	89 7e 1c             	mov    %edi,0x1c(%esi)
5d765e:	e8 fd f4 ff ff       	call   0x5d6b60
5d7663:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5d7666:	8b 55 f8             	mov    -0x8(%ebp),%edx
5d7669:	8b c1                	mov    %ecx,%eax
5d766b:	0b c2                	or     %edx,%eax
5d766d:	75 04                	jne    0x5d7673
5d766f:	83 66 1c df          	andl   $0xffffffdf,0x1c(%esi)
5d7673:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
5d7677:	ff 75 08             	push   0x8(%ebp)
5d767a:	88 5e 38             	mov    %bl,0x38(%esi)
5d767d:	75 0b                	jne    0x5d768a
5d767f:	52                   	push   %edx
5d7680:	51                   	push   %ecx
5d7681:	8b ce                	mov    %esi,%ecx
5d7683:	e8 06 0b 00 00       	call   0x5d818e
5d7688:	eb 08                	jmp    0x5d7692
5d768a:	51                   	push   %ecx
5d768b:	8b ce                	mov    %esi,%ecx
5d768d:	e8 fc 07 00 00       	call   0x5d7e8e
5d7692:	8b 46 1c             	mov    0x1c(%esi),%eax
5d7695:	c1 e8 07             	shr    $0x7,%eax
5d7698:	a8 01                	test   $0x1,%al
5d769a:	74 19                	je     0x5d76b5
5d769c:	39 5e 34             	cmp    %ebx,0x34(%esi)
5d769f:	74 08                	je     0x5d76a9
5d76a1:	8b 46 30             	mov    0x30(%esi),%eax
5d76a4:	80 38 30             	cmpb   $0x30,(%eax)
5d76a7:	74 0c                	je     0x5d76b5
5d76a9:	ff 4e 30             	decl   0x30(%esi)
5d76ac:	8b 4e 30             	mov    0x30(%esi),%ecx
5d76af:	c6 01 30             	movb   $0x30,(%ecx)
5d76b2:	ff 46 34             	incl   0x34(%esi)
5d76b5:	b0 01                	mov    $0x1,%al
5d76b7:	5f                   	pop    %edi
5d76b8:	5e                   	pop    %esi
5d76b9:	5b                   	pop    %ebx
5d76ba:	c9                   	leave
5d76bb:	c2 04 00             	ret    $0x4
5d76be:	8b ff                	mov    %edi,%edi
5d76c0:	55                   	push   %ebp
5d76c1:	8b ec                	mov    %esp,%ebp
5d76c3:	83 ec 0c             	sub    $0xc,%esp
5d76c6:	53                   	push   %ebx
5d76c7:	56                   	push   %esi
5d76c8:	8b f1                	mov    %ecx,%esi
5d76ca:	57                   	push   %edi
5d76cb:	ff 76 28             	push   0x28(%esi)
5d76ce:	e8 9f 28 00 00       	call   0x5d9f72
5d76d3:	59                   	pop    %ecx
5d76d4:	8b c8                	mov    %eax,%ecx
5d76d6:	89 45 f4             	mov    %eax,-0xc(%ebp)
5d76d9:	6a 00                	push   $0x0
5d76db:	5b                   	pop    %ebx
5d76dc:	83 e9 01             	sub    $0x1,%ecx
5d76df:	0f 84 99 00 00 00    	je     0x5d777e
5d76e5:	83 e9 01             	sub    $0x1,%ecx
5d76e8:	74 75                	je     0x5d775f
5d76ea:	49                   	dec    %ecx
5d76eb:	83 e9 01             	sub    $0x1,%ecx
5d76ee:	74 46                	je     0x5d7736
5d76f0:	83 e9 04             	sub    $0x4,%ecx
5d76f3:	74 27                	je     0x5d771c
5d76f5:	8b 46 08             	mov    0x8(%esi),%eax
5d76f8:	83 c0 18             	add    $0x18,%eax
5d76fb:	c6 40 04 01          	movb   $0x1,0x4(%eax)
5d76ff:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5d7705:	ff 76 08             	push   0x8(%esi)
5d7708:	53                   	push   %ebx
5d7709:	53                   	push   %ebx
5d770a:	53                   	push   %ebx
5d770b:	53                   	push   %ebx
5d770c:	53                   	push   %ebx
5d770d:	e8 51 ea ff ff       	call   0x5d6163
5d7712:	83 c4 18             	add    $0x18,%esp
5d7715:	32 c0                	xor    %al,%al
5d7717:	e9 2d 01 00 00       	jmp    0x5d7849
5d771c:	8b 4e 10             	mov    0x10(%esi),%ecx
5d771f:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7722:	8b c7                	mov    %edi,%eax
5d7724:	c1 e8 04             	shr    $0x4,%eax
5d7727:	a8 01                	test   $0x1,%al
5d7729:	8d 41 08             	lea    0x8(%ecx),%eax
5d772c:	89 46 10             	mov    %eax,0x10(%esi)
5d772f:	8b 01                	mov    (%ecx),%eax
5d7731:	8b 51 04             	mov    0x4(%ecx),%edx
5d7734:	eb 66                	jmp    0x5d779c
5d7736:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7739:	8b c7                	mov    %edi,%eax
5d773b:	c1 e8 04             	shr    $0x4,%eax
5d773e:	a8 01                	test   $0x1,%al
5d7740:	74 0d                	je     0x5d774f
5d7742:	8b 46 10             	mov    0x10(%esi),%eax
5d7745:	8d 48 04             	lea    0x4(%eax),%ecx
5d7748:	89 4e 10             	mov    %ecx,0x10(%esi)
5d774b:	8b 00                	mov    (%eax),%eax
5d774d:	eb 4c                	jmp    0x5d779b
5d774f:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7752:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5d7755:	8d 41 04             	lea    0x4(%ecx),%eax
5d7758:	89 46 10             	mov    %eax,0x10(%esi)
5d775b:	8b 01                	mov    (%ecx),%eax
5d775d:	eb 40                	jmp    0x5d779f
5d775f:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7762:	8b c7                	mov    %edi,%eax
5d7764:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7767:	c1 e8 04             	shr    $0x4,%eax
5d776a:	a8 01                	test   $0x1,%al
5d776c:	8d 41 04             	lea    0x4(%ecx),%eax
5d776f:	89 46 10             	mov    %eax,0x10(%esi)
5d7772:	74 05                	je     0x5d7779
5d7774:	0f bf 01             	movswl (%ecx),%eax
5d7777:	eb 22                	jmp    0x5d779b
5d7779:	0f b7 01             	movzwl (%ecx),%eax
5d777c:	eb 1d                	jmp    0x5d779b
5d777e:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d7781:	8b c7                	mov    %edi,%eax
5d7783:	8b 4e 10             	mov    0x10(%esi),%ecx
5d7786:	c1 e8 04             	shr    $0x4,%eax
5d7789:	a8 01                	test   $0x1,%al
5d778b:	8d 41 04             	lea    0x4(%ecx),%eax
5d778e:	89 46 10             	mov    %eax,0x10(%esi)
5d7791:	74 05                	je     0x5d7798
5d7793:	0f be 01             	movsbl (%ecx),%eax
5d7796:	eb 03                	jmp    0x5d779b
5d7798:	0f b6 01             	movzbl (%ecx),%eax
5d779b:	99                   	cltd
5d779c:	89 55 f8             	mov    %edx,-0x8(%ebp)
5d779f:	8b 55 f8             	mov    -0x8(%ebp),%edx
5d77a2:	89 45 fc             	mov    %eax,-0x4(%ebp)
5d77a5:	8b c7                	mov    %edi,%eax
5d77a7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5d77aa:	c1 e8 04             	shr    $0x4,%eax
5d77ad:	a8 01                	test   $0x1,%al
5d77af:	74 16                	je     0x5d77c7
5d77b1:	3b d3                	cmp    %ebx,%edx
5d77b3:	7f 12                	jg     0x5d77c7
5d77b5:	7c 04                	jl     0x5d77bb
5d77b7:	3b cb                	cmp    %ebx,%ecx
5d77b9:	73 0c                	jae    0x5d77c7
5d77bb:	f7 d9                	neg    %ecx
5d77bd:	13 d3                	adc    %ebx,%edx
5d77bf:	f7 da                	neg    %edx
5d77c1:	83 cf 40             	or     $0x40,%edi
5d77c4:	89 7e 1c             	mov    %edi,0x1c(%esi)
5d77c7:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
5d77cb:	89 55 f8             	mov    %edx,-0x8(%ebp)
5d77ce:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5d77d1:	7d 09                	jge    0x5d77dc
5d77d3:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
5d77da:	eb 1a                	jmp    0x5d77f6
5d77dc:	ff 76 08             	push   0x8(%esi)
5d77df:	83 e7 f7             	and    $0xfffffff7,%edi
5d77e2:	8d 4e 3c             	lea    0x3c(%esi),%ecx
5d77e5:	ff 76 24             	push   0x24(%esi)
5d77e8:	89 7e 1c             	mov    %edi,0x1c(%esi)
5d77eb:	e8 f1 f3 ff ff       	call   0x5d6be1
5d77f0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5d77f3:	8b 55 f8             	mov    -0x8(%ebp),%edx
5d77f6:	8b c1                	mov    %ecx,%eax
5d77f8:	0b c2                	or     %edx,%eax
5d77fa:	75 04                	jne    0x5d7800
5d77fc:	83 66 1c df          	andl   $0xffffffdf,0x1c(%esi)
5d7800:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
5d7804:	ff 75 08             	push   0x8(%ebp)
5d7807:	c6 46 38 01          	movb   $0x1,0x38(%esi)
5d780b:	75 0b                	jne    0x5d7818
5d780d:	52                   	push   %edx
5d780e:	51                   	push   %ecx
5d780f:	8b ce                	mov    %esi,%ecx
5d7811:	e8 f0 09 00 00       	call   0x5d8206
5d7816:	eb 08                	jmp    0x5d7820
5d7818:	51                   	push   %ecx
5d7819:	8b ce                	mov    %esi,%ecx
5d781b:	e8 d1 06 00 00       	call   0x5d7ef1
5d7820:	8b 46 1c             	mov    0x1c(%esi),%eax
5d7823:	c1 e8 07             	shr    $0x7,%eax
5d7826:	a8 01                	test   $0x1,%al
5d7828:	74 1d                	je     0x5d7847
5d782a:	6a 30                	push   $0x30
5d782c:	5a                   	pop    %edx
5d782d:	39 5e 34             	cmp    %ebx,0x34(%esi)