4084a9:	8b 45 08             	mov    0x8(%ebp),%eax
4084ac:	a3 34 3f 42 00       	mov    %eax,0x423f34
4084b1:	5d                   	pop    %ebp
4084b2:	c3                   	ret
4084b3:	6a 01                	push   $0x1
4084b5:	6a 02                	push   $0x2
4084b7:	6a 00                	push   $0x0
4084b9:	e8 22 fe ff ff       	call   0x4082e0
4084be:	83 c4 0c             	add    $0xc,%esp
4084c1:	c3                   	ret
4084c2:	6a 01                	push   $0x1
4084c4:	6a 00                	push   $0x0
4084c6:	6a 00                	push   $0x0
4084c8:	e8 13 fe ff ff       	call   0x4082e0
4084cd:	83 c4 0c             	add    $0xc,%esp
4084d0:	c3                   	ret
4084d1:	8b ff                	mov    %edi,%edi
4084d3:	55                   	push   %ebp
4084d4:	8b ec                	mov    %esp,%ebp
4084d6:	6a 00                	push   $0x0
4084d8:	6a 02                	push   $0x2
4084da:	ff 75 08             	push   0x8(%ebp)
4084dd:	e8 fe fd ff ff       	call   0x4082e0
4084e2:	83 c4 0c             	add    $0xc,%esp
4084e5:	5d                   	pop    %ebp
4084e6:	c3                   	ret
4084e7:	8b ff                	mov    %edi,%edi
4084e9:	55                   	push   %ebp
4084ea:	8b ec                	mov    %esp,%ebp
4084ec:	a1 0c 30 42 00       	mov    0x42300c,%eax
4084f1:	83 e0 1f             	and    $0x1f,%eax
4084f4:	6a 20                	push   $0x20
4084f6:	59                   	pop    %ecx
4084f7:	2b c8                	sub    %eax,%ecx
4084f9:	33 c0                	xor    %eax,%eax
4084fb:	d3 c8                	ror    %cl,%eax
4084fd:	33 05 0c 30 42 00    	xor    0x42300c,%eax
408503:	39 05 34 3f 42 00    	cmp    %eax,0x423f34
408509:	0f 85 65 11 00 00    	jne    0x409674
40850f:	ff 75 08             	push   0x8(%ebp)
408512:	e8 b9 0d 00 00       	call   0x4092d0
408517:	59                   	pop    %ecx
408518:	a3 34 3f 42 00       	mov    %eax,0x423f34
40851d:	5d                   	pop    %ebp
40851e:	c3                   	ret
40851f:	8b ff                	mov    %edi,%edi
408521:	55                   	push   %ebp
408522:	8b ec                	mov    %esp,%ebp
408524:	6a 00                	push   $0x0
408526:	6a 00                	push   $0x0
408528:	ff 75 08             	push   0x8(%ebp)
40852b:	e8 b0 fd ff ff       	call   0x4082e0
408530:	83 c4 0c             	add    $0xc,%esp
408533:	5d                   	pop    %ebp
408534:	c3                   	ret
408535:	8b ff                	mov    %edi,%edi
408537:	55                   	push   %ebp
408538:	8b ec                	mov    %esp,%ebp
40853a:	83 ec 0c             	sub    $0xc,%esp
40853d:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
408541:	56                   	push   %esi
408542:	74 1c                	je     0x408560
408544:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
408548:	74 16                	je     0x408560
40854a:	e8 b8 f7 ff ff       	call   0x407d07
40854f:	6a 16                	push   $0x16
408551:	5e                   	pop    %esi
408552:	89 30                	mov    %esi,(%eax)
408554:	e8 d5 f6 ff ff       	call   0x407c2e
408559:	8b c6                	mov    %esi,%eax
40855b:	e9 ef 00 00 00       	jmp    0x40864f
408560:	53                   	push   %ebx
408561:	57                   	push   %edi
408562:	68 04 01 00 00       	push   $0x104
408567:	be 40 3f 42 00       	mov    $0x423f40,%esi
40856c:	33 ff                	xor    %edi,%edi
40856e:	56                   	push   %esi
40856f:	57                   	push   %edi
408570:	ff 15 30 b0 41 00    	call   *0x41b030
408576:	8b 1d 90 41 42 00    	mov    0x424190,%ebx
40857c:	89 35 94 41 42 00    	mov    %esi,0x424194
408582:	85 db                	test   %ebx,%ebx
408584:	74 05                	je     0x40858b
408586:	66 39 3b             	cmp    %di,(%ebx)
408589:	75 02                	jne    0x40858d
40858b:	8b de                	mov    %esi,%ebx
40858d:	8d 45 f4             	lea    -0xc(%ebp),%eax
408590:	89 7d fc             	mov    %edi,-0x4(%ebp)
408593:	50                   	push   %eax
408594:	8d 45 fc             	lea    -0x4(%ebp),%eax
408597:	89 7d f4             	mov    %edi,-0xc(%ebp)
40859a:	50                   	push   %eax
40859b:	57                   	push   %edi
40859c:	57                   	push   %edi
40859d:	53                   	push   %ebx
40859e:	e8 b1 00 00 00       	call   0x408654
4085a3:	6a 02                	push   $0x2
4085a5:	ff 75 f4             	push   -0xc(%ebp)
4085a8:	ff 75 fc             	push   -0x4(%ebp)
4085ab:	e8 2a 02 00 00       	call   0x4087da
4085b0:	8b f0                	mov    %eax,%esi
4085b2:	83 c4 20             	add    $0x20,%esp
4085b5:	85 f6                	test   %esi,%esi
4085b7:	75 0c                	jne    0x4085c5
4085b9:	e8 49 f7 ff ff       	call   0x407d07
4085be:	6a 0c                	push   $0xc
4085c0:	5f                   	pop    %edi
4085c1:	89 38                	mov    %edi,(%eax)
4085c3:	eb 31                	jmp    0x4085f6
4085c5:	8d 45 f4             	lea    -0xc(%ebp),%eax
4085c8:	50                   	push   %eax
4085c9:	8d 45 fc             	lea    -0x4(%ebp),%eax
4085cc:	50                   	push   %eax
4085cd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4085d0:	8d 04 86             	lea    (%esi,%eax,4),%eax
4085d3:	50                   	push   %eax
4085d4:	56                   	push   %esi
4085d5:	53                   	push   %ebx
4085d6:	e8 79 00 00 00       	call   0x408654
4085db:	83 c4 14             	add    $0x14,%esp
4085de:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
4085e2:	75 16                	jne    0x4085fa
4085e4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4085e7:	48                   	dec    %eax
4085e8:	a3 80 41 42 00       	mov    %eax,0x424180
4085ed:	8b c6                	mov    %esi,%eax
4085ef:	8b f7                	mov    %edi,%esi
4085f1:	a3 88 41 42 00       	mov    %eax,0x424188
4085f6:	8b df                	mov    %edi,%ebx
4085f8:	eb 4a                	jmp    0x408644
4085fa:	8d 45 f8             	lea    -0x8(%ebp),%eax
4085fd:	89 7d f8             	mov    %edi,-0x8(%ebp)
408600:	50                   	push   %eax
408601:	56                   	push   %esi
408602:	e8 17 6e 00 00       	call   0x40f41e
408607:	8b d8                	mov    %eax,%ebx
408609:	59                   	pop    %ecx
40860a:	59                   	pop    %ecx
40860b:	85 db                	test   %ebx,%ebx
40860d:	74 05                	je     0x408614
40860f:	8b 45 f8             	mov    -0x8(%ebp),%eax
408612:	eb 26                	jmp    0x40863a
408614:	8b 55 f8             	mov    -0x8(%ebp),%edx
408617:	8b cf                	mov    %edi,%ecx
408619:	8b c2                	mov    %edx,%eax
40861b:	39 3a                	cmp    %edi,(%edx)
40861d:	74 08                	je     0x408627
40861f:	8d 40 04             	lea    0x4(%eax),%eax
408622:	41                   	inc    %ecx
408623:	39 38                	cmp    %edi,(%eax)
408625:	75 f8                	jne    0x40861f
408627:	8b c7                	mov    %edi,%eax
408629:	89 0d 80 41 42 00    	mov    %ecx,0x424180
40862f:	89 45 f8             	mov    %eax,-0x8(%ebp)
408632:	8b df                	mov    %edi,%ebx
408634:	89 15 88 41 42 00    	mov    %edx,0x424188
40863a:	50                   	push   %eax
40863b:	e8 e4 11 00 00       	call   0x409824
408640:	59                   	pop    %ecx
408641:	89 7d f8             	mov    %edi,-0x8(%ebp)
408644:	56                   	push   %esi
408645:	e8 da 11 00 00       	call   0x409824
40864a:	59                   	pop    %ecx
40864b:	5f                   	pop    %edi
40864c:	8b c3                	mov    %ebx,%eax
40864e:	5b                   	pop    %ebx
40864f:	5e                   	pop    %esi
408650:	8b e5                	mov    %ebp,%esp
408652:	5d                   	pop    %ebp
408653:	c3                   	ret
408654:	8b ff                	mov    %edi,%edi
408656:	55                   	push   %ebp
408657:	8b ec                	mov    %esp,%ebp
408659:	8b 45 14             	mov    0x14(%ebp),%eax
40865c:	83 ec 10             	sub    $0x10,%esp
40865f:	8b 4d 08             	mov    0x8(%ebp),%ecx
408662:	8b 55 10             	mov    0x10(%ebp),%edx
408665:	53                   	push   %ebx
408666:	56                   	push   %esi
408667:	8b 75 0c             	mov    0xc(%ebp),%esi
40866a:	33 db                	xor    %ebx,%ebx
40866c:	57                   	push   %edi
40866d:	8b 7d 18             	mov    0x18(%ebp),%edi
408670:	89 1f                	mov    %ebx,(%edi)
408672:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
408678:	85 f6                	test   %esi,%esi
40867a:	74 08                	je     0x408684
40867c:	89 16                	mov    %edx,(%esi)
40867e:	83 c6 04             	add    $0x4,%esi
408681:	89 75 0c             	mov    %esi,0xc(%ebp)
408684:	c7 45 f8 20 00 00 00 	movl   $0x20,-0x8(%ebp)
40868b:	c7 45 f4 09 00 00 00 	movl   $0x9,-0xc(%ebp)
408692:	6a 22                	push   $0x22
408694:	58                   	pop    %eax
408695:	66 39 01             	cmp    %ax,(%ecx)
408698:	75 0a                	jne    0x4086a4
40869a:	84 db                	test   %bl,%bl
40869c:	0f 94 c3             	sete   %bl
40869f:	83 c1 02             	add    $0x2,%ecx
4086a2:	eb 1a                	jmp    0x4086be
4086a4:	ff 07                	incl   (%edi)
4086a6:	85 d2                	test   %edx,%edx
4086a8:	74 09                	je     0x4086b3
4086aa:	66 8b 01             	mov    (%ecx),%ax
4086ad:	66 89 02             	mov    %ax,(%edx)
4086b0:	83 c2 02             	add    $0x2,%edx
4086b3:	0f b7 01             	movzwl (%ecx),%eax
4086b6:	83 c1 02             	add    $0x2,%ecx
4086b9:	66 85 c0             	test   %ax,%ax
4086bc:	74 1f                	je     0x4086dd
4086be:	84 db                	test   %bl,%bl
4086c0:	75 d0                	jne    0x408692
4086c2:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
4086c6:	74 09                	je     0x4086d1
4086c8:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
4086cc:	6a 22                	push   $0x22
4086ce:	58                   	pop    %eax
4086cf:	75 c4                	jne    0x408695
4086d1:	85 d2                	test   %edx,%edx
4086d3:	74 0b                	je     0x4086e0
4086d5:	33 c0                	xor    %eax,%eax
4086d7:	66 89 42 fe          	mov    %ax,-0x2(%edx)
4086db:	eb 03                	jmp    0x4086e0
4086dd:	83 e9 02             	sub    $0x2,%ecx
4086e0:	8b 5d 14             	mov    0x14(%ebp),%ebx
4086e3:	33 c0                	xor    %eax,%eax
4086e5:	88 45 ff             	mov    %al,-0x1(%ebp)
4086e8:	66 39 01             	cmp    %ax,(%ecx)
4086eb:	0f 84 da 00 00 00    	je     0x4087cb
4086f1:	0f b7 01             	movzwl (%ecx),%eax
4086f4:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
4086f8:	74 06                	je     0x408700
4086fa:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
4086fe:	75 05                	jne    0x408705
408700:	83 c1 02             	add    $0x2,%ecx
408703:	eb ec                	jmp    0x4086f1
408705:	33 c0                	xor    %eax,%eax
408707:	66 39 01             	cmp    %ax,(%ecx)
40870a:	0f 84 bb 00 00 00    	je     0x4087cb
408710:	85 f6                	test   %esi,%esi
408712:	74 08                	je     0x40871c
408714:	89 16                	mov    %edx,(%esi)
408716:	83 c6 04             	add    $0x4,%esi
408719:	89 75 0c             	mov    %esi,0xc(%ebp)
40871c:	ff 03                	incl   (%ebx)
40871e:	33 db                	xor    %ebx,%ebx
408720:	6a 5c                	push   $0x5c
408722:	5e                   	pop    %esi
408723:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
40872a:	8b c3                	mov    %ebx,%eax
40872c:	eb 04                	jmp    0x408732
40872e:	83 c1 02             	add    $0x2,%ecx
408731:	40                   	inc    %eax
408732:	66 39 31             	cmp    %si,(%ecx)
408735:	74 f7                	je     0x40872e
408737:	6a 22                	push   $0x22
408739:	5e                   	pop    %esi
40873a:	66 39 31             	cmp    %si,(%ecx)
40873d:	6a 5c                	push   $0x5c
40873f:	5e                   	pop    %esi
408740:	75 38                	jne    0x40877a
408742:	a8 01                	test   $0x1,%al
408744:	75 20                	jne    0x408766
408746:	38 5d ff             	cmp    %bl,-0x1(%ebp)
408749:	74 11                	je     0x40875c
40874b:	6a 22                	push   $0x22
40874d:	5e                   	pop    %esi
40874e:	66 39 71 02          	cmp    %si,0x2(%ecx)
408752:	6a 5c                	push   $0x5c
408754:	5e                   	pop    %esi
408755:	75 05                	jne    0x40875c
408757:	83 c1 02             	add    $0x2,%ecx
40875a:	eb 0a                	jmp    0x408766
40875c:	38 5d ff             	cmp    %bl,-0x1(%ebp)
40875f:	89 5d f0             	mov    %ebx,-0x10(%ebp)
408762:	0f 94 45 ff          	sete   -0x1(%ebp)
408766:	8b 7d 18             	mov    0x18(%ebp),%edi
408769:	d1 e8                	shr    $1,%eax
40876b:	eb 0d                	jmp    0x40877a
40876d:	48                   	dec    %eax
40876e:	85 d2                	test   %edx,%edx
408770:	74 06                	je     0x408778
408772:	66 89 32             	mov    %si,(%edx)
408775:	83 c2 02             	add    $0x2,%edx
408778:	ff 07                	incl   (%edi)
40877a:	85 c0                	test   %eax,%eax
40877c:	75 ef                	jne    0x40876d
40877e:	0f b7 01             	movzwl (%ecx),%eax
408781:	66 85 c0             	test   %ax,%ax
408784:	74 2a                	je     0x4087b0
408786:	38 5d ff             	cmp    %bl,-0x1(%ebp)
408789:	75 0c                	jne    0x408797
40878b:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
40878f:	74 1f                	je     0x4087b0
408791:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
408795:	74 19                	je     0x4087b0
408797:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
40879a:	74 0c                	je     0x4087a8
40879c:	85 d2                	test   %edx,%edx
40879e:	74 06                	je     0x4087a6
4087a0:	66 89 02             	mov    %ax,(%edx)
4087a3:	83 c2 02             	add    $0x2,%edx
4087a6:	ff 07                	incl   (%edi)
4087a8:	83 c1 02             	add    $0x2,%ecx
4087ab:	e9 73 ff ff ff       	jmp    0x408723
4087b0:	8b 75 0c             	mov    0xc(%ebp),%esi
4087b3:	8b 5d 14             	mov    0x14(%ebp),%ebx
4087b6:	85 d2                	test   %edx,%edx
4087b8:	74 08                	je     0x4087c2
4087ba:	33 c0                	xor    %eax,%eax
4087bc:	66 89 02             	mov    %ax,(%edx)
4087bf:	83 c2 02             	add    $0x2,%edx
4087c2:	ff 07                	incl   (%edi)
4087c4:	33 c0                	xor    %eax,%eax
4087c6:	e9 1d ff ff ff       	jmp    0x4086e8
4087cb:	85 f6                	test   %esi,%esi
4087cd:	74 02                	je     0x4087d1
4087cf:	89 06                	mov    %eax,(%esi)
4087d1:	ff 03                	incl   (%ebx)
4087d3:	5f                   	pop    %edi
4087d4:	5e                   	pop    %esi
4087d5:	5b                   	pop    %ebx
4087d6:	8b e5                	mov    %ebp,%esp
4087d8:	5d                   	pop    %ebp
4087d9:	c3                   	ret
4087da:	8b ff                	mov    %edi,%edi
4087dc:	55                   	push   %ebp
4087dd:	8b ec                	mov    %esp,%ebp
4087df:	56                   	push   %esi
4087e0:	8b 75 08             	mov    0x8(%ebp),%esi
4087e3:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
4087e9:	72 04                	jb     0x4087ef
4087eb:	33 c0                	xor    %eax,%eax
4087ed:	eb 3d                	jmp    0x40882c
4087ef:	57                   	push   %edi
4087f0:	83 cf ff             	or     $0xffffffff,%edi
4087f3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4087f6:	33 d2                	xor    %edx,%edx
4087f8:	8b c7                	mov    %edi,%eax
4087fa:	f7 75 10             	divl   0x10(%ebp)
4087fd:	3b c8                	cmp    %eax,%ecx
4087ff:	73 0d                	jae    0x40880e
408801:	0f af 4d 10          	imul   0x10(%ebp),%ecx
408805:	c1 e6 02             	shl    $0x2,%esi
408808:	2b fe                	sub    %esi,%edi
40880a:	3b f9                	cmp    %ecx,%edi
40880c:	77 04                	ja     0x408812
40880e:	33 c0                	xor    %eax,%eax
408810:	eb 19                	jmp    0x40882b
408812:	8d 04 31             	lea    (%ecx,%esi,1),%eax