45857f:	6a 02                	push   $0x2
458581:	56                   	push   %esi
458582:	ff 15 74 f0 48 00    	call   *0x48f074
458588:	85 c0                	test   %eax,%eax
45858a:	74 3c                	je     0x4585c8
45858c:	8b 45 0c             	mov    0xc(%ebp),%eax
45858f:	8b 4d 10             	mov    0x10(%ebp),%ecx
458592:	40                   	inc    %eax
458593:	83 c1 0c             	add    $0xc,%ecx
458596:	89 45 0c             	mov    %eax,0xc(%ebp)
458599:	89 4d 10             	mov    %ecx,0x10(%ebp)
45859c:	83 f8 02             	cmp    $0x2,%eax
45859f:	72 c6                	jb     0x458567
4585a1:	53                   	push   %ebx
4585a2:	56                   	push   %esi
4585a3:	6a 01                	push   $0x1
4585a5:	ff 75 f8             	push   -0x8(%ebp)
4585a8:	ff 15 78 f0 48 00    	call   *0x48f078
4585ae:	85 c0                	test   %eax,%eax
4585b0:	74 16                	je     0x4585c8
4585b2:	ff 75 f8             	push   -0x8(%ebp)
4585b5:	8d 45 ec             	lea    -0x14(%ebp),%eax
4585b8:	50                   	push   %eax
4585b9:	ff 75 08             	push   0x8(%ebp)
4585bc:	ff 15 98 f6 48 00    	call   *0x48f698
4585c2:	85 c0                	test   %eax,%eax
4585c4:	74 02                	je     0x4585c8
4585c6:	b3 01                	mov    $0x1,%bl
4585c8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4585cb:	e8 e3 00 00 00       	call   0x4586b3
4585d0:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4585d3:	e8 db 00 00 00       	call   0x4586b3
4585d8:	8b ce                	mov    %esi,%ecx
4585da:	e8 d4 00 00 00       	call   0x4586b3
4585df:	8b cf                	mov    %edi,%ecx
4585e1:	e8 cd 00 00 00       	call   0x4586b3
4585e6:	5f                   	pop    %edi
4585e7:	5e                   	pop    %esi
4585e8:	8a c3                	mov    %bl,%al
4585ea:	5b                   	pop    %ebx
4585eb:	8b e5                	mov    %ebp,%esp
4585ed:	5d                   	pop    %ebp
4585ee:	c2 10 00             	ret    $0x10
4585f1:	55                   	push   %ebp
4585f2:	8b ec                	mov    %esp,%ebp
4585f4:	8b 45 08             	mov    0x8(%ebp),%eax
4585f7:	53                   	push   %ebx
4585f8:	56                   	push   %esi
4585f9:	8b 75 10             	mov    0x10(%ebp),%esi
4585fc:	33 db                	xor    %ebx,%ebx
4585fe:	57                   	push   %edi
4585ff:	56                   	push   %esi
458600:	53                   	push   %ebx
458601:	ff 30                	push   (%eax)
458603:	8b f9                	mov    %ecx,%edi
458605:	6a 02                	push   $0x2
458607:	57                   	push   %edi
458608:	ff 15 68 f0 48 00    	call   *0x48f068
45860e:	85 c0                	test   %eax,%eax
458610:	75 36                	jne    0x458648
458612:	ff 15 40 f3 48 00    	call   *0x48f340
458618:	83 f8 7a             	cmp    $0x7a,%eax
45861b:	75 2e                	jne    0x45864b
45861d:	ff 36                	push   (%esi)
45861f:	6a 08                	push   $0x8
458621:	ff 15 74 f1 48 00    	call   *0x48f174
458627:	50                   	push   %eax
458628:	ff 15 70 f1 48 00    	call   *0x48f170
45862e:	8b 4d 08             	mov    0x8(%ebp),%ecx
458631:	89 01                	mov    %eax,(%ecx)
458633:	85 c0                	test   %eax,%eax
458635:	74 14                	je     0x45864b
458637:	56                   	push   %esi
458638:	ff 36                	push   (%esi)
45863a:	50                   	push   %eax
45863b:	6a 02                	push   $0x2
45863d:	57                   	push   %edi
45863e:	ff 15 68 f0 48 00    	call   *0x48f068
458644:	85 c0                	test   %eax,%eax
458646:	74 03                	je     0x45864b
458648:	33 db                	xor    %ebx,%ebx
45864a:	43                   	inc    %ebx
45864b:	5f                   	pop    %edi
45864c:	5e                   	pop    %esi
45864d:	8a c3                	mov    %bl,%al
45864f:	5b                   	pop    %ebx
458650:	5d                   	pop    %ebp
458651:	c3                   	ret
458652:	55                   	push   %ebp
458653:	8b ec                	mov    %esp,%ebp
458655:	8b 45 08             	mov    0x8(%ebp),%eax
458658:	53                   	push   %ebx
458659:	56                   	push   %esi
45865a:	8b 75 10             	mov    0x10(%ebp),%esi
45865d:	33 db                	xor    %ebx,%ebx
45865f:	57                   	push   %edi
458660:	56                   	push   %esi
458661:	53                   	push   %ebx
458662:	ff 30                	push   (%eax)
458664:	8b f9                	mov    %ecx,%edi
458666:	6a 03                	push   $0x3
458668:	57                   	push   %edi
458669:	ff 15 68 f0 48 00    	call   *0x48f068
45866f:	85 c0                	test   %eax,%eax
458671:	75 36                	jne    0x4586a9
458673:	ff 15 40 f3 48 00    	call   *0x48f340
458679:	83 f8 7a             	cmp    $0x7a,%eax
45867c:	75 2e                	jne    0x4586ac
45867e:	ff 36                	push   (%esi)
458680:	6a 08                	push   $0x8
458682:	ff 15 74 f1 48 00    	call   *0x48f174
458688:	50                   	push   %eax
458689:	ff 15 70 f1 48 00    	call   *0x48f170
45868f:	8b 4d 08             	mov    0x8(%ebp),%ecx
458692:	89 01                	mov    %eax,(%ecx)
458694:	85 c0                	test   %eax,%eax
458696:	74 14                	je     0x4586ac
458698:	56                   	push   %esi
458699:	ff 36                	push   (%esi)
45869b:	50                   	push   %eax
45869c:	6a 03                	push   $0x3
45869e:	57                   	push   %edi
45869f:	ff 15 68 f0 48 00    	call   *0x48f068
4586a5:	85 c0                	test   %eax,%eax
4586a7:	74 03                	je     0x4586ac
4586a9:	33 db                	xor    %ebx,%ebx
4586ab:	43                   	inc    %ebx
4586ac:	5f                   	pop    %edi
4586ad:	5e                   	pop    %esi
4586ae:	8a c3                	mov    %bl,%al
4586b0:	5b                   	pop    %ebx
4586b1:	5d                   	pop    %ebp
4586b2:	c3                   	ret
4586b3:	85 c9                	test   %ecx,%ecx
4586b5:	74 10                	je     0x4586c7
4586b7:	51                   	push   %ecx
4586b8:	6a 00                	push   $0x0
4586ba:	ff 15 74 f1 48 00    	call   *0x48f174
4586c0:	50                   	push   %eax
4586c1:	ff 15 78 f1 48 00    	call   *0x48f178
4586c7:	c3                   	ret
4586c8:	53                   	push   %ebx
4586c9:	56                   	push   %esi
4586ca:	57                   	push   %edi
4586cb:	8b f9                	mov    %ecx,%edi
4586cd:	33 f6                	xor    %esi,%esi
4586cf:	6a 04                	push   $0x4
4586d1:	5b                   	pop    %ebx
4586d2:	89 5f 04             	mov    %ebx,0x4(%edi)
4586d5:	89 77 08             	mov    %esi,0x8(%edi)
4586d8:	e8 7d 05 00 00       	call   0x458c5a
4586dd:	8b 47 04             	mov    0x4(%edi),%eax
4586e0:	33 c9                	xor    %ecx,%ecx
4586e2:	f7 e3                	mul    %ebx
4586e4:	0f 90 c1             	seto   %cl
4586e7:	f7 d9                	neg    %ecx
4586e9:	0b c8                	or     %eax,%ecx
4586eb:	51                   	push   %ecx
4586ec:	e8 05 89 fc ff       	call   0x420ff6
4586f1:	59                   	pop    %ecx
4586f2:	89 07                	mov    %eax,(%edi)
4586f4:	39 77 04             	cmp    %esi,0x4(%edi)
4586f7:	76 12                	jbe    0x45870b
4586f9:	8b 0f                	mov    (%edi),%ecx
4586fb:	8b 04 b5 00 3e 4c 00 	mov    0x4c3e00(,%esi,4),%eax
458702:	89 04 b1             	mov    %eax,(%ecx,%esi,4)
458705:	46                   	inc    %esi
458706:	3b 77 04             	cmp    0x4(%edi),%esi
458709:	72 ee                	jb     0x4586f9
45870b:	8b c7                	mov    %edi,%eax
45870d:	5f                   	pop    %edi
45870e:	5e                   	pop    %esi
45870f:	5b                   	pop    %ebx
458710:	c2 08 00             	ret    $0x8
458713:	56                   	push   %esi
458714:	8b f1                	mov    %ecx,%esi
458716:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
45871a:	74 1b                	je     0x458737
45871c:	33 c0                	xor    %eax,%eax
45871e:	50                   	push   %eax
45871f:	50                   	push   %eax
458720:	50                   	push   %eax
458721:	ff 76 08             	push   0x8(%esi)
458724:	50                   	push   %eax
458725:	ff 76 0c             	push   0xc(%esi)
458728:	ff 15 30 f0 48 00    	call   *0x48f030
45872e:	ff 76 08             	push   0x8(%esi)
458731:	e8 36 89 fc ff       	call   0x42106c
458736:	59                   	pop    %ecx
458737:	ff 76 0c             	push   0xc(%esi)
45873a:	ff 15 5c f3 48 00    	call   *0x48f35c
458740:	ff 36                	push   (%esi)
458742:	e8 25 89 fc ff       	call   0x42106c
458747:	59                   	pop    %ecx
458748:	5e                   	pop    %esi
458749:	c3                   	ret
45874a:	55                   	push   %ebp
45874b:	8b ec                	mov    %esp,%ebp
45874d:	51                   	push   %ecx
45874e:	53                   	push   %ebx
45874f:	56                   	push   %esi
458750:	8b 75 10             	mov    0x10(%ebp),%esi
458753:	8b c1                	mov    %ecx,%eax
458755:	8b 4d 08             	mov    0x8(%ebp),%ecx
458758:	33 db                	xor    %ebx,%ebx
45875a:	57                   	push   %edi
45875b:	56                   	push   %esi
45875c:	53                   	push   %ebx
45875d:	ff 31                	push   (%ecx)
45875f:	8b fa                	mov    %edx,%edi
458761:	89 45 fc             	mov    %eax,-0x4(%ebp)
458764:	57                   	push   %edi
458765:	50                   	push   %eax
458766:	ff 15 b4 f6 48 00    	call   *0x48f6b4
45876c:	85 c0                	test   %eax,%eax
45876e:	75 37                	jne    0x4587a7
458770:	ff 15 40 f3 48 00    	call   *0x48f340
458776:	83 f8 7a             	cmp    $0x7a,%eax
458779:	75 2f                	jne    0x4587aa
45877b:	ff 36                	push   (%esi)
45877d:	6a 08                	push   $0x8
45877f:	ff 15 74 f1 48 00    	call   *0x48f174
458785:	50                   	push   %eax
458786:	ff 15 70 f1 48 00    	call   *0x48f170
45878c:	8b 4d 08             	mov    0x8(%ebp),%ecx
45878f:	89 01                	mov    %eax,(%ecx)
458791:	85 c0                	test   %eax,%eax
458793:	74 15                	je     0x4587aa
458795:	56                   	push   %esi
458796:	ff 36                	push   (%esi)
458798:	50                   	push   %eax
458799:	57                   	push   %edi
45879a:	ff 75 fc             	push   -0x4(%ebp)
45879d:	ff 15 b4 f6 48 00    	call   *0x48f6b4
4587a3:	85 c0                	test   %eax,%eax
4587a5:	74 03                	je     0x4587aa
4587a7:	33 db                	xor    %ebx,%ebx
4587a9:	43                   	inc    %ebx
4587aa:	5f                   	pop    %edi
4587ab:	5e                   	pop    %esi
4587ac:	8a c3                	mov    %bl,%al
4587ae:	5b                   	pop    %ebx
4587af:	8b e5                	mov    %ebp,%esp
4587b1:	5d                   	pop    %ebp
4587b2:	c3                   	ret
4587b3:	56                   	push   %esi
4587b4:	57                   	push   %edi
4587b5:	8b fa                	mov    %edx,%edi
4587b7:	8b f1                	mov    %ecx,%esi
4587b9:	57                   	push   %edi
4587ba:	6a 08                	push   $0x8
4587bc:	ff 15 74 f1 48 00    	call   *0x48f174
4587c2:	50                   	push   %eax
4587c3:	ff 15 70 f1 48 00    	call   *0x48f170
4587c9:	89 06                	mov    %eax,(%esi)
4587cb:	85 c0                	test   %eax,%eax
4587cd:	74 13                	je     0x4587e2
4587cf:	6a 02                	push   $0x2
4587d1:	57                   	push   %edi
4587d2:	50                   	push   %eax
4587d3:	ff 15 2c f0 48 00    	call   *0x48f02c
4587d9:	85 c0                	test   %eax,%eax
4587db:	74 05                	je     0x4587e2
4587dd:	33 c0                	xor    %eax,%eax
4587df:	40                   	inc    %eax
4587e0:	eb 02                	jmp    0x4587e4
4587e2:	33 c0                	xor    %eax,%eax
4587e4:	5f                   	pop    %edi
4587e5:	5e                   	pop    %esi
4587e6:	c3                   	ret
4587e7:	55                   	push   %ebp
4587e8:	8b ec                	mov    %esp,%ebp
4587ea:	53                   	push   %ebx
4587eb:	56                   	push   %esi
4587ec:	ff 75 08             	push   0x8(%ebp)
4587ef:	8b f1                	mov    %ecx,%esi
4587f1:	6a 08                	push   $0x8
4587f3:	ff 15 74 f1 48 00    	call   *0x48f174
4587f9:	50                   	push   %eax
4587fa:	ff 15 70 f1 48 00    	call   *0x48f170
458800:	89 06                	mov    %eax,(%esi)
458802:	85 c0                	test   %eax,%eax
458804:	74 0f                	je     0x458815
458806:	33 db                	xor    %ebx,%ebx
458808:	43                   	inc    %ebx
458809:	53                   	push   %ebx
45880a:	50                   	push   %eax
45880b:	ff 15 28 f0 48 00    	call   *0x48f028
458811:	85 c0                	test   %eax,%eax
458813:	75 02                	jne    0x458817
458815:	33 db                	xor    %ebx,%ebx
458817:	5e                   	pop    %esi
458818:	8a c3                	mov    %bl,%al
45881a:	5b                   	pop    %ebx
45881b:	5d                   	pop    %ebp
45881c:	c3                   	ret
45881d:	55                   	push   %ebp
45881e:	8b ec                	mov    %esp,%ebp
458820:	83 ec 14             	sub    $0x14,%esp
458823:	53                   	push   %ebx
458824:	51                   	push   %ecx
458825:	51                   	push   %ecx
458826:	8d 4d f0             	lea    -0x10(%ebp),%ecx
458829:	e8 9a fe ff ff       	call   0x4586c8
45882e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
458831:	e8 68 03 00 00       	call   0x458b9e
458836:	84 c0                	test   %al,%al
458838:	74 0d                	je     0x458847
45883a:	e8 c4 c3 00 00       	call   0x464c03
45883f:	84 c0                	test   %al,%al
458841:	74 04                	je     0x458847
458843:	b3 01                	mov    $0x1,%bl
458845:	eb 02                	jmp    0x458849
458847:	32 db                	xor    %bl,%bl
458849:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45884c:	e8 c2 fe ff ff       	call   0x458713
458851:	8a c3                	mov    %bl,%al
458853:	5b                   	pop    %ebx
458854:	8b e5                	mov    %ebp,%esp
458856:	5d                   	pop    %ebp
458857:	c3                   	ret
458858:	55                   	push   %ebp
458859:	8b ec                	mov    %esp,%ebp
45885b:	83 ec 5c             	sub    $0x5c,%esp
45885e:	53                   	push   %ebx
45885f:	56                   	push   %esi
458860:	57                   	push   %edi
458861:	51                   	push   %ecx
458862:	51                   	push   %ecx
458863:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
458866:	e8 5d fe ff ff       	call   0x4586c8
45886b:	51                   	push   %ecx
45886c:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
45886f:	e8 4f 04 00 00       	call   0x458cc3
458874:	84 c0                	test   %al,%al
458876:	75 07                	jne    0x45887f
458878:	32 db                	xor    %bl,%bl
45887a:	e9 67 02 00 00       	jmp    0x458ae6
45887f:	33 db                	xor    %ebx,%ebx
458881:	8d 45 a4             	lea    -0x5c(%ebp),%eax
458884:	6a 20                	push   $0x20
458886:	53                   	push   %ebx
458887:	50                   	push   %eax
458888:	89 5d fc             	mov    %ebx,-0x4(%ebp)
45888b:	8b f3                	mov    %ebx,%esi
45888d:	8b fb                	mov    %ebx,%edi
45888f:	89 5d f8             	mov    %ebx,-0x8(%ebp)
458892:	89 5d ec             	mov    %ebx,-0x14(%ebp)
458895:	89 5d f0             	mov    %ebx,-0x10(%ebp)
458898:	89 5d f4             	mov    %ebx,-0xc(%ebp)