404561:	5e                   	pop    %esi
404562:	5b                   	pop    %ebx
404563:	c3                   	ret
404564:	85 c0                	test   %eax,%eax
404566:	74 56                	je     0x4045be
404568:	53                   	push   %ebx
404569:	56                   	push   %esi
40456a:	57                   	push   %edi
40456b:	55                   	push   %ebp
40456c:	89 c3                	mov    %eax,%ebx
40456e:	89 d6                	mov    %edx,%esi
404570:	89 cf                	mov    %ecx,%edi
404572:	8b 12                	mov    (%edx),%edx
404574:	52                   	push   %edx
404575:	85 d2                	test   %edx,%edx
404577:	74 03                	je     0x40457c
404579:	8b 52 fc             	mov    -0x4(%edx),%edx
40457c:	4f                   	dec    %edi
40457d:	7d 02                	jge    0x404581
40457f:	31 ff                	xor    %edi,%edi
404581:	39 d7                	cmp    %edx,%edi
404583:	7e 02                	jle    0x404587
404585:	89 d7                	mov    %edx,%edi
404587:	8b 6b fc             	mov    -0x4(%ebx),%ebp
40458a:	89 f0                	mov    %esi,%eax
40458c:	01 ea                	add    %ebp,%edx
40458e:	e8 75 00 00 00       	call   0x404608
404593:	58                   	pop    %eax
404594:	39 d8                	cmp    %ebx,%eax
404596:	75 02                	jne    0x40459a
404598:	8b 1e                	mov    (%esi),%ebx
40459a:	8b 06                	mov    (%esi),%eax
40459c:	8d 14 2f             	lea    (%edi,%ebp,1),%edx
40459f:	8b 48 fc             	mov    -0x4(%eax),%ecx
4045a2:	29 d1                	sub    %edx,%ecx
4045a4:	01 c2                	add    %eax,%edx
4045a6:	01 f8                	add    %edi,%eax
4045a8:	e8 0b e3 ff ff       	call   0x4028b8
4045ad:	89 d8                	mov    %ebx,%eax
4045af:	8b 16                	mov    (%esi),%edx
4045b1:	89 e9                	mov    %ebp,%ecx
4045b3:	01 fa                	add    %edi,%edx
4045b5:	e8 fe e2 ff ff       	call   0x4028b8
4045ba:	5d                   	pop    %ebp
4045bb:	5f                   	pop    %edi
4045bc:	5e                   	pop    %esi
4045bd:	5b                   	pop    %ebx
4045be:	c3                   	ret
4045bf:	90                   	nop
4045c0:	85 c0                	test   %eax,%eax
4045c2:	74 40                	je     0x404604
4045c4:	85 d2                	test   %edx,%edx
4045c6:	74 31                	je     0x4045f9
4045c8:	53                   	push   %ebx
4045c9:	56                   	push   %esi
4045ca:	57                   	push   %edi
4045cb:	89 c6                	mov    %eax,%esi
4045cd:	89 d7                	mov    %edx,%edi
4045cf:	8b 4f fc             	mov    -0x4(%edi),%ecx
4045d2:	57                   	push   %edi
4045d3:	8b 56 fc             	mov    -0x4(%esi),%edx
4045d6:	4a                   	dec    %edx
4045d7:	78 1b                	js     0x4045f4
4045d9:	8a 06                	mov    (%esi),%al
4045db:	46                   	inc    %esi
4045dc:	29 d1                	sub    %edx,%ecx
4045de:	7e 14                	jle    0x4045f4
4045e0:	f2 ae                	repnz scas %es:(%edi),%al
4045e2:	75 10                	jne    0x4045f4
4045e4:	89 cb                	mov    %ecx,%ebx
4045e6:	56                   	push   %esi
4045e7:	57                   	push   %edi
4045e8:	89 d1                	mov    %edx,%ecx
4045ea:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
4045ec:	5f                   	pop    %edi
4045ed:	5e                   	pop    %esi
4045ee:	74 0c                	je     0x4045fc
4045f0:	89 d9                	mov    %ebx,%ecx
4045f2:	eb ec                	jmp    0x4045e0
4045f4:	5a                   	pop    %edx
4045f5:	31 c0                	xor    %eax,%eax
4045f7:	eb 08                	jmp    0x404601
4045f9:	31 c0                	xor    %eax,%eax
4045fb:	c3                   	ret
4045fc:	5a                   	pop    %edx
4045fd:	89 f8                	mov    %edi,%eax
4045ff:	29 d0                	sub    %edx,%eax
404601:	5f                   	pop    %edi
404602:	5e                   	pop    %esi
404603:	5b                   	pop    %ebx
404604:	c3                   	ret
404605:	8d 40 00             	lea    0x0(%eax),%eax
404608:	53                   	push   %ebx
404609:	56                   	push   %esi
40460a:	57                   	push   %edi
40460b:	89 c3                	mov    %eax,%ebx
40460d:	89 d6                	mov    %edx,%esi
40460f:	31 ff                	xor    %edi,%edi
404611:	85 d2                	test   %edx,%edx
404613:	7e 48                	jle    0x40465d
404615:	8b 03                	mov    (%ebx),%eax
404617:	85 c0                	test   %eax,%eax
404619:	74 23                	je     0x40463e
40461b:	83 78 f8 01          	cmpl   $0x1,-0x8(%eax)
40461f:	75 1d                	jne    0x40463e
404621:	83 e8 08             	sub    $0x8,%eax
404624:	83 c2 09             	add    $0x9,%edx
404627:	50                   	push   %eax
404628:	89 e0                	mov    %esp,%eax
40462a:	e8 cd e0 ff ff       	call   0x4026fc
40462f:	58                   	pop    %eax
404630:	83 c0 08             	add    $0x8,%eax
404633:	89 03                	mov    %eax,(%ebx)
404635:	89 70 fc             	mov    %esi,-0x4(%eax)
404638:	c6 04 06 00          	movb   $0x0,(%esi,%eax,1)
40463c:	eb 28                	jmp    0x404666
40463e:	89 d0                	mov    %edx,%eax
404640:	e8 3b fa ff ff       	call   0x404080
404645:	89 c7                	mov    %eax,%edi
404647:	8b 03                	mov    (%ebx),%eax
404649:	85 c0                	test   %eax,%eax
40464b:	74 10                	je     0x40465d
40464d:	89 fa                	mov    %edi,%edx
40464f:	8b 48 fc             	mov    -0x4(%eax),%ecx
404652:	39 f1                	cmp    %esi,%ecx
404654:	7c 02                	jl     0x404658
404656:	89 f1                	mov    %esi,%ecx
404658:	e8 5b e2 ff ff       	call   0x4028b8
40465d:	89 d8                	mov    %ebx,%eax
40465f:	e8 58 f9 ff ff       	call   0x403fbc
404664:	89 3b                	mov    %edi,(%ebx)
404666:	5f                   	pop    %edi
404667:	5e                   	pop    %esi
404668:	5b                   	pop    %ebx
404669:	c3                   	ret
40466a:	8b c0                	mov    %eax,%eax
40466c:	b0 01                	mov    $0x1,%al
40466e:	e9 a5 e1 ff ff       	jmp    0x402818
404673:	c3                   	ret
404674:	85 c0                	test   %eax,%eax
404676:	74 10                	je     0x404688
404678:	50                   	push   %eax
404679:	6a 00                	push   $0x0
40467b:	e8 54 cc ff ff       	call   0x4012d4
404680:	85 c0                	test   %eax,%eax
404682:	0f 84 e4 ff ff ff    	je     0x40466c
404688:	c3                   	ret
404689:	8d 40 00             	lea    0x0(%eax),%eax
40468c:	87 10                	xchg   %edx,(%eax)
40468e:	85 d2                	test   %edx,%edx
404690:	74 06                	je     0x404698
404692:	52                   	push   %edx
404693:	e8 4c cc ff ff       	call   0x4012e4
404698:	c3                   	ret
404699:	8d 40 00             	lea    0x0(%eax),%eax
40469c:	8b 10                	mov    (%eax),%edx
40469e:	85 d2                	test   %edx,%edx
4046a0:	74 0e                	je     0x4046b0
4046a2:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4046a8:	50                   	push   %eax
4046a9:	52                   	push   %edx
4046aa:	e8 35 cc ff ff       	call   0x4012e4
4046af:	58                   	pop    %eax
4046b0:	c3                   	ret
4046b1:	8d 40 00             	lea    0x0(%eax),%eax
4046b4:	53                   	push   %ebx
4046b5:	56                   	push   %esi
4046b6:	89 c3                	mov    %eax,%ebx
4046b8:	89 d6                	mov    %edx,%esi
4046ba:	8b 03                	mov    (%ebx),%eax
4046bc:	85 c0                	test   %eax,%eax
4046be:	74 0c                	je     0x4046cc
4046c0:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
4046c6:	50                   	push   %eax
4046c7:	e8 18 cc ff ff       	call   0x4012e4
4046cc:	83 c3 04             	add    $0x4,%ebx
4046cf:	4e                   	dec    %esi
4046d0:	75 e8                	jne    0x4046ba
4046d2:	5e                   	pop    %esi
4046d3:	5b                   	pop    %ebx
4046d4:	c3                   	ret
4046d5:	8d 40 00             	lea    0x0(%eax),%eax
4046d8:	85 d2                	test   %edx,%edx
4046da:	0f 84 bc ff ff ff    	je     0x40469c
4046e0:	8b 4a fc             	mov    -0x4(%edx),%ecx
4046e3:	d1 e9                	shr    $1,%ecx
4046e5:	0f 84 b1 ff ff ff    	je     0x40469c
4046eb:	51                   	push   %ecx
4046ec:	52                   	push   %edx
4046ed:	50                   	push   %eax
4046ee:	e8 e9 cb ff ff       	call   0x4012dc
4046f3:	85 c0                	test   %eax,%eax
4046f5:	0f 84 71 ff ff ff    	je     0x40466c
4046fb:	c3                   	ret
4046fc:	53                   	push   %ebx
4046fd:	56                   	push   %esi
4046fe:	57                   	push   %edi
4046ff:	55                   	push   %ebp
404700:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
404706:	50                   	push   %eax
404707:	83 c4 fc             	add    $0xfffffffc,%esp
40470a:	8b f1                	mov    %ecx,%esi
40470c:	89 14 24             	mov    %edx,(%esp)
40470f:	8b f8                	mov    %eax,%edi
404711:	85 f6                	test   %esi,%esi
404713:	7f 09                	jg     0x40471e
404715:	8b c7                	mov    %edi,%eax
404717:	e8 80 ff ff ff       	call   0x40469c
40471c:	eb 5d                	jmp    0x40477b
40471e:	8d 6e 01             	lea    0x1(%esi),%ebp
404721:	81 fd ff 07 00 00    	cmp    $0x7ff,%ebp
404727:	7d 28                	jge    0x404751
404729:	56                   	push   %esi
40472a:	8d 44 24 08          	lea    0x8(%esp),%eax
40472e:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404732:	ba ff 07 00 00       	mov    $0x7ff,%edx
404737:	e8 c0 f9 ff ff       	call   0x4040fc
40473c:	8b d8                	mov    %eax,%ebx
40473e:	85 db                	test   %ebx,%ebx
404740:	7e 0f                	jle    0x404751
404742:	8d 54 24 04          	lea    0x4(%esp),%edx
404746:	8b c7                	mov    %edi,%eax
404748:	8b cb                	mov    %ebx,%ecx
40474a:	e8 39 00 00 00       	call   0x404788
40474f:	eb 2a                	jmp    0x40477b
404751:	8b dd                	mov    %ebp,%ebx
404753:	8b c7                	mov    %edi,%eax
404755:	8b d3                	mov    %ebx,%edx
404757:	e8 88 01 00 00       	call   0x4048e4
40475c:	56                   	push   %esi
40475d:	8b 07                	mov    (%edi),%eax
40475f:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404763:	8b d3                	mov    %ebx,%edx
404765:	e8 92 f9 ff ff       	call   0x4040fc
40476a:	8b d8                	mov    %eax,%ebx
40476c:	85 db                	test   %ebx,%ebx
40476e:	7d 02                	jge    0x404772
404770:	33 db                	xor    %ebx,%ebx
404772:	8b c7                	mov    %edi,%eax
404774:	8b d3                	mov    %ebx,%edx
404776:	e8 69 01 00 00       	call   0x4048e4
40477b:	81 c4 04 10 00 00    	add    $0x1004,%esp
404781:	5d                   	pop    %ebp
404782:	5f                   	pop    %edi
404783:	5e                   	pop    %esi
404784:	5b                   	pop    %ebx
404785:	c3                   	ret
404786:	8b c0                	mov    %eax,%eax
404788:	85 c9                	test   %ecx,%ecx
40478a:	0f 84 0c ff ff ff    	je     0x40469c
404790:	50                   	push   %eax
404791:	51                   	push   %ecx
404792:	52                   	push   %edx
404793:	e8 3c cb ff ff       	call   0x4012d4
404798:	85 c0                	test   %eax,%eax
40479a:	0f 84 cc fe ff ff    	je     0x40466c
4047a0:	5a                   	pop    %edx
4047a1:	ff 32                	push   (%edx)
4047a3:	89 02                	mov    %eax,(%edx)
4047a5:	e8 3a cb ff ff       	call   0x4012e4
4047aa:	c3                   	ret
4047ab:	90                   	nop
4047ac:	31 c9                	xor    %ecx,%ecx
4047ae:	85 d2                	test   %edx,%edx
4047b0:	74 2d                	je     0x4047df
4047b2:	52                   	push   %edx
4047b3:	66 3b 0a             	cmp    (%edx),%cx
4047b6:	74 20                	je     0x4047d8
4047b8:	66 3b 4a 02          	cmp    0x2(%edx),%cx
4047bc:	74 17                	je     0x4047d5
4047be:	66 3b 4a 04          	cmp    0x4(%edx),%cx
4047c2:	74 0e                	je     0x4047d2
4047c4:	66 3b 4a 06          	cmp    0x6(%edx),%cx
4047c8:	74 05                	je     0x4047cf
4047ca:	83 c2 08             	add    $0x8,%edx
4047cd:	eb e4                	jmp    0x4047b3
4047cf:	83 c2 02             	add    $0x2,%edx
4047d2:	83 c2 02             	add    $0x2,%edx
4047d5:	83 c2 02             	add    $0x2,%edx
4047d8:	89 d1                	mov    %edx,%ecx
4047da:	5a                   	pop    %edx
4047db:	29 d1                	sub    %edx,%ecx
4047dd:	d1 e9                	shr    $1,%ecx
4047df:	e9 a4 ff ff ff       	jmp    0x404788
4047e4:	c3                   	ret
4047e5:	8d 40 00             	lea    0x0(%eax),%eax
4047e8:	31 c9                	xor    %ecx,%ecx
4047ea:	85 d2                	test   %edx,%edx
4047ec:	74 03                	je     0x4047f1
4047ee:	8b 4a fc             	mov    -0x4(%edx),%ecx
4047f1:	e9 06 ff ff ff       	jmp    0x4046fc
4047f6:	c3                   	ret
4047f7:	90                   	nop
4047f8:	85 c0                	test   %eax,%eax
4047fa:	74 04                	je     0x404800
4047fc:	c3                   	ret
4047fd:	90                   	nop
4047fe:	00 00                	add    %al,(%eax)
404800:	b8 fe 47 40 00       	mov    $0x4047fe,%eax
404805:	c3                   	ret
404806:	8b c0                	mov    %eax,%eax
404808:	85 c0                	test   %eax,%eax
40480a:	74 05                	je     0x404811
40480c:	8b 40 fc             	mov    -0x4(%eax),%eax
40480f:	d1 e8                	shr    $1,%eax
404811:	c3                   	ret
404812:	8b c0                	mov    %eax,%eax
404814:	53                   	push   %ebx
404815:	56                   	push   %esi
404816:	57                   	push   %edi
404817:	89 c6                	mov    %eax,%esi
404819:	89 d7                	mov    %edx,%edi
40481b:	39 d0                	cmp    %edx,%eax
40481d:	74 72                	je     0x404891
40481f:	85 f6                	test   %esi,%esi
404821:	74 51                	je     0x404874
404823:	85 ff                	test   %edi,%edi
404825:	74 54                	je     0x40487b
404827:	8b 46 fc             	mov    -0x4(%esi),%eax
40482a:	8b 57 fc             	mov    -0x4(%edi),%edx
40482d:	29 d0                	sub    %edx,%eax
40482f:	77 02                	ja     0x404833
404831:	01 c2                	add    %eax,%edx
404833:	52                   	push   %edx
404834:	c1 ea 02             	shr    $0x2,%edx
404837:	74 26                	je     0x40485f
404839:	8b 0e                	mov    (%esi),%ecx
40483b:	8b 1f                	mov    (%edi),%ebx
40483d:	39 d9                	cmp    %ebx,%ecx
40483f:	75 41                	jne    0x404882
404841:	4a                   	dec    %edx
404842:	74 15                	je     0x404859
404844:	8b 4e 04             	mov    0x4(%esi),%ecx
404847:	8b 5f 04             	mov    0x4(%edi),%ebx
40484a:	39 d9                	cmp    %ebx,%ecx
40484c:	75 34                	jne    0x404882
40484e:	83 c6 08             	add    $0x8,%esi
404851:	83 c7 08             	add    $0x8,%edi
404854:	4a                   	dec    %edx
404855:	75 e2                	jne    0x404839
404857:	eb 06                	jmp    0x40485f
404859:	83 c6 04             	add    $0x4,%esi
40485c:	83 c7 04             	add    $0x4,%edi
40485f:	5a                   	pop    %edx
404860:	83 e2 02             	and    $0x2,%edx
404863:	74 0b                	je     0x404870
404865:	66 8b 0e             	mov    (%esi),%cx
404868:	66 8b 1f             	mov    (%edi),%bx
40486b:	66 39 d9             	cmp    %bx,%cx
40486e:	75 21                	jne    0x404891