40f558:	85 c0                	test   %eax,%eax
40f55a:	74 97                	je     0x40f4f3
40f55c:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f560:	ba 7c 59 40 00       	mov    $0x40597c,%edx
40f565:	e8 a7 00 00 00       	call   0x40f611
40f56a:	85 c0                	test   %eax,%eax
40f56c:	74 85                	je     0x40f4f3
40f56e:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f572:	e8 c8 1b 00 00       	call   0x41113f
40f577:	85 c0                	test   %eax,%eax
40f579:	0f 84 74 ff ff ff    	je     0x40f4f3
40f57f:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f583:	ba 68 58 40 00       	mov    $0x405868,%edx
40f588:	e8 84 00 00 00       	call   0x40f611
40f58d:	85 c0                	test   %eax,%eax
40f58f:	0f 84 5e ff ff ff    	je     0x40f4f3
40f595:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f599:	ba 34 58 40 00       	mov    $0x405834,%edx
40f59e:	e8 6e 00 00 00       	call   0x40f611
40f5a3:	ff 74 24 0c          	push   0xc(%esp)
40f5a7:	85 c0                	test   %eax,%eax
40f5a9:	0f 84 48 ff ff ff    	je     0x40f4f7
40f5af:	ff 15 0c 30 42 00    	call   *0x42300c
40f5b5:	33 ff                	xor    %edi,%edi
40f5b7:	47                   	inc    %edi
40f5b8:	8b 35 10 00 42 00    	mov    0x420010,%esi
40f5be:	85 f6                	test   %esi,%esi
40f5c0:	74 3b                	je     0x40f5fd
40f5c2:	68 00 20 00 00       	push   $0x2000
40f5c7:	53                   	push   %ebx
40f5c8:	e8 6f 73 ff ff       	call   0x40693c
40f5cd:	84 c0                	test   %al,%al
40f5cf:	74 2c                	je     0x40f5fd
40f5d1:	83 fe 05             	cmp    $0x5,%esi
40f5d4:	76 27                	jbe    0x40f5fd
40f5d6:	68 00 20 00 00       	push   $0x2000
40f5db:	53                   	push   %ebx
40f5dc:	e8 5b 73 ff ff       	call   0x40693c
40f5e1:	84 c0                	test   %al,%al
40f5e3:	74 18                	je     0x40f5fd
40f5e5:	8d 44 24 10          	lea    0x10(%esp),%eax
40f5e9:	50                   	push   %eax
40f5ea:	6a 02                	push   $0x2
40f5ec:	53                   	push   %ebx
40f5ed:	53                   	push   %ebx
40f5ee:	68 b9 64 40 00       	push   $0x4064b9
40f5f3:	68 10 00 42 00       	push   $0x420010
40f5f8:	e8 b3 72 ff ff       	call   0x4068b0
40f5fd:	8b 4c 24 34          	mov    0x34(%esp),%ecx
40f601:	8b c7                	mov    %edi,%eax
40f603:	5f                   	pop    %edi
40f604:	5e                   	pop    %esi
40f605:	5b                   	pop    %ebx
40f606:	33 cc                	xor    %esp,%ecx
40f608:	e8 13 c0 00 00       	call   0x41b620
40f60d:	8b e5                	mov    %ebp,%esp
40f60f:	5d                   	pop    %ebp
40f610:	c3                   	ret
40f611:	8b ff                	mov    %edi,%edi
40f613:	56                   	push   %esi
40f614:	57                   	push   %edi
40f615:	8b fa                	mov    %edx,%edi
40f617:	57                   	push   %edi
40f618:	51                   	push   %ecx
40f619:	ff 15 18 30 42 00    	call   *0x423018
40f61f:	85 c0                	test   %eax,%eax
40f621:	74 18                	je     0x40f63b
40f623:	83 f8 02             	cmp    $0x2,%eax
40f626:	74 13                	je     0x40f63b
40f628:	50                   	push   %eax
40f629:	57                   	push   %edi
40f62a:	68 96 00 00 00       	push   $0x96
40f62f:	33 f6                	xor    %esi,%esi
40f631:	e8 1d f0 ff ff       	call   0x40e653
40f636:	83 c4 0c             	add    $0xc,%esp
40f639:	eb 11                	jmp    0x40f64c
40f63b:	33 f6                	xor    %esi,%esi
40f63d:	33 c9                	xor    %ecx,%ecx
40f63f:	46                   	inc    %esi
40f640:	83 f8 02             	cmp    $0x2,%eax
40f643:	0f 95 c1             	setne  %cl
40f646:	09 0d f8 09 42 00    	or     %ecx,0x4209f8
40f64c:	5f                   	pop    %edi
40f64d:	8b c6                	mov    %esi,%eax
40f64f:	5e                   	pop    %esi
40f650:	c3                   	ret
40f651:	8b ff                	mov    %edi,%edi
40f653:	55                   	push   %ebp
40f654:	8b ec                	mov    %esp,%ebp
40f656:	51                   	push   %ecx
40f657:	51                   	push   %ecx
40f658:	53                   	push   %ebx
40f659:	56                   	push   %esi
40f65a:	57                   	push   %edi
40f65b:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f65e:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f661:	50                   	push   %eax
40f662:	33 f6                	xor    %esi,%esi
40f664:	bf 50 5a 40 00       	mov    $0x405a50,%edi
40f669:	46                   	inc    %esi
40f66a:	8b d9                	mov    %ecx,%ebx
40f66c:	56                   	push   %esi
40f66d:	6a 00                	push   $0x0
40f66f:	57                   	push   %edi
40f670:	68 02 00 00 80       	push   $0x80000002
40f675:	ff 15 08 30 42 00    	call   *0x423008
40f67b:	85 c0                	test   %eax,%eax
40f67d:	74 28                	je     0x40f6a7
40f67f:	83 f8 05             	cmp    $0x5,%eax
40f682:	75 0d                	jne    0x40f691
40f684:	68 91 00 00 00       	push   $0x91
40f689:	e8 c5 ef ff ff       	call   0x40e653
40f68e:	59                   	pop    %ecx
40f68f:	eb 0f                	jmp    0x40f6a0
40f691:	50                   	push   %eax
40f692:	57                   	push   %edi
40f693:	68 92 00 00 00       	push   $0x92
40f698:	e8 b6 ef ff ff       	call   0x40e653
40f69d:	83 c4 0c             	add    $0xc,%esp
40f6a0:	33 f6                	xor    %esi,%esi
40f6a2:	e9 9f 00 00 00       	jmp    0x40f746
40f6a7:	8b 7d 10             	mov    0x10(%ebp),%edi
40f6aa:	ba 20 59 40 00       	mov    $0x405920,%edx
40f6af:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f6b2:	57                   	push   %edi
40f6b3:	e8 8a fc ff ff       	call   0x40f342
40f6b8:	85 c0                	test   %eax,%eax
40f6ba:	75 0b                	jne    0x40f6c7
40f6bc:	ff 75 fc             	push   -0x4(%ebp)
40f6bf:	ff 15 0c 30 42 00    	call   *0x42300c
40f6c5:	eb d9                	jmp    0x40f6a0
40f6c7:	83 3f 00             	cmpl   $0x0,(%edi)
40f6ca:	74 02                	je     0x40f6ce
40f6cc:	89 33                	mov    %esi,(%ebx)
40f6ce:	8b 7d 1c             	mov    0x1c(%ebp),%edi
40f6d1:	ba 94 58 40 00       	mov    $0x405894,%edx
40f6d6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f6d9:	57                   	push   %edi
40f6da:	e8 63 fc ff ff       	call   0x40f342
40f6df:	85 c0                	test   %eax,%eax
40f6e1:	74 d9                	je     0x40f6bc
40f6e3:	33 db                	xor    %ebx,%ebx
40f6e5:	39 1f                	cmp    %ebx,(%edi)
40f6e7:	74 05                	je     0x40f6ee
40f6e9:	8b 45 0c             	mov    0xc(%ebp),%eax
40f6ec:	89 30                	mov    %esi,(%eax)
40f6ee:	8b 7d 14             	mov    0x14(%ebp),%edi
40f6f1:	ba fc 58 40 00       	mov    $0x4058fc,%edx
40f6f6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f6f9:	57                   	push   %edi
40f6fa:	e8 a1 fc ff ff       	call   0x40f3a0
40f6ff:	85 c0                	test   %eax,%eax
40f701:	74 21                	je     0x40f724
40f703:	8b 07                	mov    (%edi),%eax
40f705:	39 58 f8             	cmp    %ebx,-0x8(%eax)
40f708:	74 05                	je     0x40f70f
40f70a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f70d:	89 30                	mov    %esi,(%eax)
40f70f:	8b 7d 18             	mov    0x18(%ebp),%edi
40f712:	ba c8 58 40 00       	mov    $0x4058c8,%edx
40f717:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f71a:	57                   	push   %edi
40f71b:	e8 80 fc ff ff       	call   0x40f3a0
40f720:	85 c0                	test   %eax,%eax
40f722:	75 0d                	jne    0x40f731
40f724:	ff 75 fc             	push   -0x4(%ebp)
40f727:	ff 15 0c 30 42 00    	call   *0x42300c
40f72d:	8b f3                	mov    %ebx,%esi
40f72f:	eb 15                	jmp    0x40f746
40f731:	8b 07                	mov    (%edi),%eax
40f733:	39 58 f8             	cmp    %ebx,-0x8(%eax)
40f736:	74 05                	je     0x40f73d
40f738:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f73b:	89 31                	mov    %esi,(%ecx)
40f73d:	ff 75 fc             	push   -0x4(%ebp)
40f740:	ff 15 0c 30 42 00    	call   *0x42300c
40f746:	5f                   	pop    %edi
40f747:	8b c6                	mov    %esi,%eax
40f749:	5e                   	pop    %esi
40f74a:	5b                   	pop    %ebx
40f74b:	c9                   	leave
40f74c:	c2 18 00             	ret    $0x18
40f74f:	8b ff                	mov    %edi,%edi
40f751:	55                   	push   %ebp
40f752:	8b ec                	mov    %esp,%ebp
40f754:	51                   	push   %ecx
40f755:	53                   	push   %ebx
40f756:	56                   	push   %esi
40f757:	57                   	push   %edi
40f758:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f75b:	33 db                	xor    %ebx,%ebx
40f75d:	50                   	push   %eax
40f75e:	6a 02                	push   $0x2
40f760:	53                   	push   %ebx
40f761:	68 50 5a 40 00       	push   $0x405a50
40f766:	68 02 00 00 80       	push   $0x80000002
40f76b:	8b f2                	mov    %edx,%esi
40f76d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40f770:	8b f9                	mov    %ecx,%edi
40f772:	ff 15 08 30 42 00    	call   *0x423008
40f778:	85 c0                	test   %eax,%eax
40f77a:	74 2c                	je     0x40f7a8
40f77c:	83 f8 05             	cmp    $0x5,%eax
40f77f:	75 0d                	jne    0x40f78e
40f781:	68 91 00 00 00       	push   $0x91
40f786:	e8 c8 ee ff ff       	call   0x40e653
40f78b:	59                   	pop    %ecx
40f78c:	eb 13                	jmp    0x40f7a1
40f78e:	50                   	push   %eax
40f78f:	68 50 5a 40 00       	push   $0x405a50
40f794:	68 92 00 00 00       	push   $0x92
40f799:	e8 b5 ee ff ff       	call   0x40e653
40f79e:	83 c4 0c             	add    $0xc,%esp
40f7a1:	8b f3                	mov    %ebx,%esi
40f7a3:	e9 99 00 00 00       	jmp    0x40f841
40f7a8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f7ab:	f7 c7 04 00 00 00    	test   $0x4,%edi
40f7b1:	75 0a                	jne    0x40f7bd
40f7b3:	e8 87 19 00 00       	call   0x41113f
40f7b8:	e9 82 00 00 00       	jmp    0x40f83f
40f7bd:	ba 20 59 40 00       	mov    $0x405920,%edx
40f7c2:	85 f6                	test   %esi,%esi
40f7c4:	75 07                	jne    0x40f7cd
40f7c6:	e8 46 fe ff ff       	call   0x40f611
40f7cb:	eb 06                	jmp    0x40f7d3
40f7cd:	56                   	push   %esi
40f7ce:	e8 04 f6 ff ff       	call   0x40edd7
40f7d3:	8b f0                	mov    %eax,%esi
40f7d5:	85 f6                	test   %esi,%esi
40f7d7:	74 68                	je     0x40f841
40f7d9:	8b 45 08             	mov    0x8(%ebp),%eax
40f7dc:	ba fc 58 40 00       	mov    $0x4058fc,%edx
40f7e1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f7e4:	8b 00                	mov    (%eax),%eax
40f7e6:	39 58 f8             	cmp    %ebx,-0x8(%eax)
40f7e9:	75 07                	jne    0x40f7f2
40f7eb:	e8 21 fe ff ff       	call   0x40f611
40f7f0:	eb 06                	jmp    0x40f7f8
40f7f2:	50                   	push   %eax
40f7f3:	e8 22 f6 ff ff       	call   0x40ee1a
40f7f8:	8b f0                	mov    %eax,%esi
40f7fa:	85 f6                	test   %esi,%esi
40f7fc:	74 43                	je     0x40f841
40f7fe:	8b 45 0c             	mov    0xc(%ebp),%eax
40f801:	ba c8 58 40 00       	mov    $0x4058c8,%edx
40f806:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f809:	8b 00                	mov    (%eax),%eax
40f80b:	39 58 f8             	cmp    %ebx,-0x8(%eax)
40f80e:	75 07                	jne    0x40f817
40f810:	e8 fc fd ff ff       	call   0x40f611
40f815:	eb 06                	jmp    0x40f81d
40f817:	50                   	push   %eax
40f818:	e8 fd f5 ff ff       	call   0x40ee1a
40f81d:	8b f0                	mov    %eax,%esi
40f81f:	85 f6                	test   %esi,%esi
40f821:	74 1e                	je     0x40f841
40f823:	ba 94 58 40 00       	mov    $0x405894,%edx
40f828:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f82b:	39 5d 10             	cmp    %ebx,0x10(%ebp)
40f82e:	75 07                	jne    0x40f837
40f830:	e8 dc fd ff ff       	call   0x40f611
40f835:	eb 08                	jmp    0x40f83f
40f837:	ff 75 10             	push   0x10(%ebp)
40f83a:	e8 98 f5 ff ff       	call   0x40edd7
40f83f:	8b f0                	mov    %eax,%esi
40f841:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
40f844:	74 09                	je     0x40f84f
40f846:	ff 75 fc             	push   -0x4(%ebp)
40f849:	ff 15 0c 30 42 00    	call   *0x42300c
40f84f:	5f                   	pop    %edi
40f850:	8b c6                	mov    %esi,%eax
40f852:	5e                   	pop    %esi
40f853:	5b                   	pop    %ebx
40f854:	c9                   	leave
40f855:	c2 0c 00             	ret    $0xc
40f858:	8b ff                	mov    %edi,%edi
40f85a:	55                   	push   %ebp
40f85b:	8b ec                	mov    %esp,%ebp
40f85d:	51                   	push   %ecx
40f85e:	53                   	push   %ebx
40f85f:	57                   	push   %edi
40f860:	8b f9                	mov    %ecx,%edi
40f862:	8b da                	mov    %edx,%ebx
40f864:	89 7d fc             	mov    %edi,-0x4(%ebp)
40f867:	85 ff                	test   %edi,%edi
40f869:	74 4d                	je     0x40f8b8
40f86b:	6a 20                	push   $0x20
40f86d:	5a                   	pop    %edx
40f86e:	6a 09                	push   $0x9
40f870:	59                   	pop    %ecx
40f871:	56                   	push   %esi
40f872:	0f b7 07             	movzwl (%edi),%eax
40f875:	66 85 c0             	test   %ax,%ax
40f878:	74 3d                	je     0x40f8b7
40f87a:	66 3b c2             	cmp    %dx,%ax
40f87d:	0f 84 68 03 00 00    	je     0x40fbeb
40f883:	66 3b c1             	cmp    %cx,%ax
40f886:	0f 84 5f 03 00 00    	je     0x40fbeb
40f88c:	6a 00                	push   $0x0
40f88e:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f891:	8b f7                	mov    %edi,%esi
40f893:	50                   	push   %eax
40f894:	57                   	push   %edi
40f895:	ff 15 44 35 42 00    	call   *0x423544
40f89b:	8b 7d fc             	mov    -0x4(%ebp),%edi
40f89e:	83 c4 0c             	add    $0xc,%esp
40f8a1:	8b c8                	mov    %eax,%ecx
40f8a3:	3b f7                	cmp    %edi,%esi
40f8a5:	75 15                	jne    0x40f8bc
40f8a7:	83 c7 02             	add    $0x2,%edi
40f8aa:	89 7d fc             	mov    %edi,-0x4(%ebp)
40f8ad:	6a 09                	push   $0x9
40f8af:	59                   	pop    %ecx
40f8b0:	6a 20                	push   $0x20
40f8b2:	5a                   	pop    %edx
40f8b3:	85 ff                	test   %edi,%edi
40f8b5:	75 bb                	jne    0x40f872
40f8b7:	5e                   	pop    %esi
40f8b8:	5f                   	pop    %edi
40f8b9:	5b                   	pop    %ebx
40f8ba:	c9                   	leave
40f8bb:	c3                   	ret
40f8bc:	81 f9 03 00 04 00    	cmp    $0x40003,%ecx
40f8c2:	0f 87 e8 00 00 00    	ja     0x40f9b0
40f8c8:	0f 84 db 00 00 00    	je     0x40f9a9
40f8ce:	8d 81 fe ff fd ff    	lea    -0x20002(%ecx),%eax
40f8d4:	83 f8 23             	cmp    $0x23,%eax
40f8d7:	0f 87 0c 02 00 00    	ja     0x40fae9
40f8dd:	ff 24 85 f8 fb 40 00 	jmp    *0x40fbf8(,%eax,4)
40f8e4:	33 c0                	xor    %eax,%eax
40f8e6:	e9 eb 02 00 00       	jmp    0x40fbd6
40f8eb:	33 c0                	xor    %eax,%eax
40f8ed:	40                   	inc    %eax
40f8ee:	e9 e3 02 00 00       	jmp    0x40fbd6
40f8f3:	6a 02                	push   $0x2
40f8f5:	e9 db 02 00 00       	jmp    0x40fbd5
40f8fa:	6a 03                	push   $0x3
40f8fc:	e9 d4 02 00 00       	jmp    0x40fbd5
40f901:	6a 04                	push   $0x4
40f903:	e9 cd 02 00 00       	jmp    0x40fbd5
40f908:	6a 05                	push   $0x5
40f90a:	e9 c6 02 00 00       	jmp    0x40fbd5
40f90f:	6a 06                	push   $0x6
40f911:	e9 bf 02 00 00       	jmp    0x40fbd5
40f916:	6a 07                	push   $0x7
40f918:	e9 b8 02 00 00       	jmp    0x40fbd5
40f91d:	6a 08                	push   $0x8
40f91f:	e9 b1 02 00 00       	jmp    0x40fbd5
40f924:	6a 09                	push   $0x9
40f926:	e9 aa 02 00 00       	jmp    0x40fbd5