40a497:	cc                   	int3
40a498:	55                   	push   %ebp
40a499:	8b ec                	mov    %esp,%ebp
40a49b:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
40a49f:	53                   	push   %ebx
40a4a0:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
40a4a3:	56                   	push   %esi
40a4a4:	57                   	push   %edi
40a4a5:	8b 7d 0c             	mov    0xc(%ebp),%edi
40a4a8:	74 10                	je     0x40a4ba
40a4aa:	ff 75 20             	push   0x20(%ebp)
40a4ad:	53                   	push   %ebx
40a4ae:	57                   	push   %edi
40a4af:	ff 75 08             	push   0x8(%ebp)
40a4b2:	e8 48 ff ff ff       	call   0x40a3ff
40a4b7:	83 c4 10             	add    $0x10,%esp
40a4ba:	8b 45 2c             	mov    0x2c(%ebp),%eax
40a4bd:	85 c0                	test   %eax,%eax
40a4bf:	75 02                	jne    0x40a4c3
40a4c1:	8b c7                	mov    %edi,%eax
40a4c3:	ff 75 08             	push   0x8(%ebp)
40a4c6:	50                   	push   %eax
40a4c7:	e8 42 df ff ff       	call   0x40840e
40a4cc:	8b 75 24             	mov    0x24(%ebp),%esi
40a4cf:	ff 36                	push   (%esi)
40a4d1:	ff 75 18             	push   0x18(%ebp)
40a4d4:	ff 75 14             	push   0x14(%ebp)
40a4d7:	57                   	push   %edi
40a4d8:	e8 62 09 00 00       	call   0x40ae3f
40a4dd:	8b 46 04             	mov    0x4(%esi),%eax
40a4e0:	40                   	inc    %eax
40a4e1:	50                   	push   %eax
40a4e2:	ff 75 18             	push   0x18(%ebp)
40a4e5:	57                   	push   %edi
40a4e6:	e8 aa 0f 00 00       	call   0x40b495
40a4eb:	68 00 01 00 00       	push   $0x100
40a4f0:	ff 75 28             	push   0x28(%ebp)
40a4f3:	ff 73 0c             	push   0xc(%ebx)
40a4f6:	ff 75 18             	push   0x18(%ebp)
40a4f9:	ff 75 10             	push   0x10(%ebp)
40a4fc:	57                   	push   %edi
40a4fd:	ff 75 08             	push   0x8(%ebp)
40a500:	e8 d5 06 00 00       	call   0x40abda
40a505:	83 c4 38             	add    $0x38,%esp
40a508:	85 c0                	test   %eax,%eax
40a50a:	74 07                	je     0x40a513
40a50c:	57                   	push   %edi
40a50d:	50                   	push   %eax
40a50e:	e8 cb de ff ff       	call   0x4083de
40a513:	5f                   	pop    %edi
40a514:	5e                   	pop    %esi
40a515:	5b                   	pop    %ebx
40a516:	5d                   	pop    %ebp
40a517:	c3                   	ret
40a518:	55                   	push   %ebp
40a519:	8b ec                	mov    %esp,%ebp
40a51b:	83 ec 64             	sub    $0x64,%esp
40a51e:	53                   	push   %ebx
40a51f:	56                   	push   %esi
40a520:	57                   	push   %edi
40a521:	8b 7d 18             	mov    0x18(%ebp),%edi
40a524:	33 c0                	xor    %eax,%eax
40a526:	57                   	push   %edi
40a527:	ff 75 14             	push   0x14(%ebp)
40a52a:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a52d:	ff 75 0c             	push   0xc(%ebp)
40a530:	88 45 e8             	mov    %al,-0x18(%ebp)
40a533:	e8 40 0f 00 00       	call   0x40b478
40a538:	8b c8                	mov    %eax,%ecx
40a53a:	83 c4 0c             	add    $0xc,%esp
40a53d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a540:	83 f9 ff             	cmp    $0xffffffff,%ecx
40a543:	0f 8c 73 03 00 00    	jl     0x40a8bc
40a549:	3b 4f 04             	cmp    0x4(%edi),%ecx
40a54c:	0f 8d 6a 03 00 00    	jge    0x40a8bc
40a552:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a555:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
40a55b:	0f 85 f7 00 00 00    	jne    0x40a658
40a561:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
40a565:	0f 85 ed 00 00 00    	jne    0x40a658
40a56b:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
40a572:	74 16                	je     0x40a58a
40a574:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
40a57b:	74 0d                	je     0x40a58a
40a57d:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
40a584:	0f 85 ce 00 00 00    	jne    0x40a658
40a58a:	33 f6                	xor    %esi,%esi
40a58c:	39 73 1c             	cmp    %esi,0x1c(%ebx)
40a58f:	0f 85 c3 00 00 00    	jne    0x40a658
40a595:	e8 02 fc ff ff       	call   0x40a19c
40a59a:	39 70 10             	cmp    %esi,0x10(%eax)
40a59d:	0f 84 b3 02 00 00    	je     0x40a856
40a5a3:	e8 f4 fb ff ff       	call   0x40a19c
40a5a8:	8b 58 10             	mov    0x10(%eax),%ebx
40a5ab:	e8 ec fb ff ff       	call   0x40a19c
40a5b0:	c6 45 e8 01          	movb   $0x1,-0x18(%ebp)
40a5b4:	8b 40 14             	mov    0x14(%eax),%eax
40a5b7:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a5ba:	85 db                	test   %ebx,%ebx
40a5bc:	0f 84 fa 02 00 00    	je     0x40a8bc
40a5c2:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
40a5c8:	75 2a                	jne    0x40a5f4
40a5ca:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
40a5ce:	75 24                	jne    0x40a5f4
40a5d0:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
40a5d7:	74 12                	je     0x40a5eb
40a5d9:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
40a5e0:	74 09                	je     0x40a5eb
40a5e2:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
40a5e9:	75 09                	jne    0x40a5f4
40a5eb:	39 73 1c             	cmp    %esi,0x1c(%ebx)
40a5ee:	0f 84 c8 02 00 00    	je     0x40a8bc
40a5f4:	e8 a3 fb ff ff       	call   0x40a19c
40a5f9:	39 70 1c             	cmp    %esi,0x1c(%eax)
40a5fc:	74 62                	je     0x40a660
40a5fe:	e8 99 fb ff ff       	call   0x40a19c
40a603:	8b 40 1c             	mov    0x1c(%eax),%eax
40a606:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a609:	e8 8e fb ff ff       	call   0x40a19c
40a60e:	ff 75 f4             	push   -0xc(%ebp)
40a611:	53                   	push   %ebx
40a612:	89 70 1c             	mov    %esi,0x1c(%eax)
40a615:	e8 0d 09 00 00       	call   0x40af27
40a61a:	59                   	pop    %ecx
40a61b:	59                   	pop    %ecx
40a61c:	84 c0                	test   %al,%al
40a61e:	75 40                	jne    0x40a660
40a620:	8b 7d f4             	mov    -0xc(%ebp),%edi
40a623:	39 37                	cmp    %esi,(%edi)
40a625:	0f 8e 30 02 00 00    	jle    0x40a85b
40a62b:	8b 47 04             	mov    0x4(%edi),%eax
40a62e:	68 10 3b 43 00       	push   $0x433b10
40a633:	8b 4c 06 04          	mov    0x4(%esi,%eax,1),%ecx
40a637:	e8 7f 05 00 00       	call   0x40abbb
40a63c:	84 c0                	test   %al,%al
40a63e:	0f 85 1c 02 00 00    	jne    0x40a860
40a644:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a647:	83 c6 10             	add    $0x10,%esi
40a64a:	40                   	inc    %eax
40a64b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a64e:	3b 07                	cmp    (%edi),%eax
40a650:	0f 8d 05 02 00 00    	jge    0x40a85b
40a656:	eb d3                	jmp    0x40a62b
40a658:	8b 55 10             	mov    0x10(%ebp),%edx
40a65b:	89 55 fc             	mov    %edx,-0x4(%ebp)
40a65e:	eb 06                	jmp    0x40a666
40a660:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a663:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a666:	33 c0                	xor    %eax,%eax
40a668:	89 7d d0             	mov    %edi,-0x30(%ebp)
40a66b:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40a66e:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
40a674:	0f 85 ab 01 00 00    	jne    0x40a825
40a67a:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
40a67e:	0f 85 a1 01 00 00    	jne    0x40a825
40a684:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
40a68b:	74 16                	je     0x40a6a3
40a68d:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
40a694:	74 0d                	je     0x40a6a3
40a696:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
40a69d:	0f 85 82 01 00 00    	jne    0x40a825
40a6a3:	8b 75 24             	mov    0x24(%ebp),%esi
40a6a6:	39 47 0c             	cmp    %eax,0xc(%edi)
40a6a9:	0f 86 12 01 00 00    	jbe    0x40a7c1
40a6af:	ff 75 20             	push   0x20(%ebp)
40a6b2:	8d 45 d0             	lea    -0x30(%ebp),%eax
40a6b5:	57                   	push   %edi
40a6b6:	ff 75 14             	push   0x14(%ebp)
40a6b9:	51                   	push   %ecx
40a6ba:	50                   	push   %eax
40a6bb:	8d 45 c0             	lea    -0x40(%ebp),%eax
40a6be:	50                   	push   %eax
40a6bf:	e8 57 db ff ff       	call   0x40821b
40a6c4:	8b 55 c4             	mov    -0x3c(%ebp),%edx
40a6c7:	83 c4 18             	add    $0x18,%esp
40a6ca:	8b 45 c0             	mov    -0x40(%ebp),%eax
40a6cd:	89 45 d8             	mov    %eax,-0x28(%ebp)
40a6d0:	89 55 f4             	mov    %edx,-0xc(%ebp)
40a6d3:	3b 55 cc             	cmp    -0x34(%ebp),%edx
40a6d6:	0f 83 e5 00 00 00    	jae    0x40a7c1
40a6dc:	6b ca 14             	imul   $0x14,%edx,%ecx
40a6df:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40a6e2:	8b 00                	mov    (%eax),%eax
40a6e4:	8d 7d 9c             	lea    -0x64(%ebp),%edi
40a6e7:	6a 05                	push   $0x5
40a6e9:	8b 70 10             	mov    0x10(%eax),%esi
40a6ec:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a6ef:	03 f1                	add    %ecx,%esi
40a6f1:	59                   	pop    %ecx
40a6f2:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40a6f4:	39 45 9c             	cmp    %eax,-0x64(%ebp)
40a6f7:	0f 8f a5 00 00 00    	jg     0x40a7a2
40a6fd:	3b 45 a0             	cmp    -0x60(%ebp),%eax
40a700:	0f 8f 9c 00 00 00    	jg     0x40a7a2
40a706:	33 c9                	xor    %ecx,%ecx
40a708:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40a70b:	39 4d a8             	cmp    %ecx,-0x58(%ebp)
40a70e:	0f 84 8e 00 00 00    	je     0x40a7a2
40a714:	8b 43 1c             	mov    0x1c(%ebx),%eax
40a717:	8b 40 0c             	mov    0xc(%eax),%eax
40a71a:	8b 10                	mov    (%eax),%edx
40a71c:	83 c0 04             	add    $0x4,%eax
40a71f:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a722:	8b 45 ac             	mov    -0x54(%ebp),%eax
40a725:	89 55 dc             	mov    %edx,-0x24(%ebp)
40a728:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a72b:	8b f0                	mov    %eax,%esi
40a72d:	8d 7d b0             	lea    -0x50(%ebp),%edi
40a730:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a731:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a732:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a733:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a734:	8b 7d e0             	mov    -0x20(%ebp),%edi
40a737:	8b f2                	mov    %edx,%esi
40a739:	85 f6                	test   %esi,%esi
40a73b:	7e 26                	jle    0x40a763
40a73d:	ff 73 1c             	push   0x1c(%ebx)
40a740:	8d 45 b0             	lea    -0x50(%ebp),%eax
40a743:	ff 37                	push   (%edi)
40a745:	50                   	push   %eax
40a746:	e8 ad 02 00 00       	call   0x40a9f8
40a74b:	83 c4 0c             	add    $0xc,%esp
40a74e:	85 c0                	test   %eax,%eax
40a750:	75 22                	jne    0x40a774
40a752:	4e                   	dec    %esi
40a753:	83 c7 04             	add    $0x4,%edi
40a756:	85 f6                	test   %esi,%esi
40a758:	7f e3                	jg     0x40a73d
40a75a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a75d:	8b 45 ec             	mov    -0x14(%ebp),%eax
40a760:	8b 55 dc             	mov    -0x24(%ebp),%edx
40a763:	41                   	inc    %ecx
40a764:	83 c0 10             	add    $0x10,%eax
40a767:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40a76a:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a76d:	3b 4d a8             	cmp    -0x58(%ebp),%ecx
40a770:	75 b9                	jne    0x40a72b
40a772:	eb 2b                	jmp    0x40a79f
40a774:	ff 75 1c             	push   0x1c(%ebp)
40a777:	8d 45 9c             	lea    -0x64(%ebp),%eax
40a77a:	ff 75 e8             	push   -0x18(%ebp)
40a77d:	ff 75 24             	push   0x24(%ebp)
40a780:	ff 75 20             	push   0x20(%ebp)
40a783:	50                   	push   %eax
40a784:	ff 37                	push   (%edi)
40a786:	8d 45 b0             	lea    -0x50(%ebp),%eax
40a789:	50                   	push   %eax
40a78a:	ff 75 18             	push   0x18(%ebp)
40a78d:	ff 75 14             	push   0x14(%ebp)
40a790:	ff 75 fc             	push   -0x4(%ebp)
40a793:	ff 75 0c             	push   0xc(%ebp)
40a796:	53                   	push   %ebx
40a797:	e8 fc fc ff ff       	call   0x40a498
40a79c:	83 c4 30             	add    $0x30,%esp
40a79f:	8b 55 f4             	mov    -0xc(%ebp),%edx
40a7a2:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40a7a5:	42                   	inc    %edx
40a7a6:	8b 45 d8             	mov    -0x28(%ebp),%eax
40a7a9:	83 c1 14             	add    $0x14,%ecx
40a7ac:	89 55 f4             	mov    %edx,-0xc(%ebp)
40a7af:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40a7b2:	3b 55 cc             	cmp    -0x34(%ebp),%edx
40a7b5:	0f 82 27 ff ff ff    	jb     0x40a6e2
40a7bb:	8b 7d 18             	mov    0x18(%ebp),%edi
40a7be:	8b 75 24             	mov    0x24(%ebp),%esi
40a7c1:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
40a7c5:	74 0a                	je     0x40a7d1
40a7c7:	6a 01                	push   $0x1
40a7c9:	53                   	push   %ebx
40a7ca:	e8 6d df ff ff       	call   0x40873c
40a7cf:	59                   	pop    %ecx
40a7d0:	59                   	pop    %ecx
40a7d1:	8b 07                	mov    (%edi),%eax
40a7d3:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
40a7d8:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40a7dd:	72 6c                	jb     0x40a84b
40a7df:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
40a7e3:	75 10                	jne    0x40a7f5
40a7e5:	8b 47 20             	mov    0x20(%edi),%eax
40a7e8:	c1 e8 02             	shr    $0x2,%eax
40a7eb:	a8 01                	test   $0x1,%al
40a7ed:	74 5c                	je     0x40a84b
40a7ef:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
40a7f3:	75 56                	jne    0x40a84b
40a7f5:	8b 47 20             	mov    0x20(%edi),%eax
40a7f8:	c1 e8 02             	shr    $0x2,%eax
40a7fb:	a8 01                	test   $0x1,%al
40a7fd:	74 15                	je     0x40a814
40a7ff:	e8 98 f9 ff ff       	call   0x40a19c
40a804:	89 58 10             	mov    %ebx,0x10(%eax)
40a807:	e8 90 f9 ff ff       	call   0x40a19c
40a80c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a80f:	89 48 14             	mov    %ecx,0x14(%eax)
40a812:	eb 47                	jmp    0x40a85b
40a814:	ff 77 1c             	push   0x1c(%edi)
40a817:	53                   	push   %ebx
40a818:	e8 0a 07 00 00       	call   0x40af27
40a81d:	59                   	pop    %ecx
40a81e:	59                   	pop    %ecx
40a81f:	84 c0                	test   %al,%al
40a821:	74 5d                	je     0x40a880
40a823:	eb 26                	jmp    0x40a84b
40a825:	39 47 0c             	cmp    %eax,0xc(%edi)
40a828:	76 21                	jbe    0x40a84b
40a82a:	38 45 1c             	cmp    %al,0x1c(%ebp)
40a82d:	0f 85 89 00 00 00    	jne    0x40a8bc
40a833:	ff 75 24             	push   0x24(%ebp)
40a836:	ff 75 20             	push   0x20(%ebp)
40a839:	51                   	push   %ecx
40a83a:	57                   	push   %edi
40a83b:	ff 75 14             	push   0x14(%ebp)
40a83e:	52                   	push   %edx
40a83f:	ff 75 0c             	push   0xc(%ebp)
40a842:	53                   	push   %ebx
40a843:	e8 7a 00 00 00       	call   0x40a8c2
40a848:	83 c4 20             	add    $0x20,%esp
40a84b:	e8 4c f9 ff ff       	call   0x40a19c
40a850:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40a854:	75 66                	jne    0x40a8bc
40a856:	5f                   	pop    %edi
40a857:	5e                   	pop    %esi
40a858:	5b                   	pop    %ebx
40a859:	c9                   	leave
40a85a:	c3                   	ret
40a85b:	e8 b2 7a 00 00       	call   0x412312
40a860:	6a 01                	push   $0x1
40a862:	53                   	push   %ebx
40a863:	e8 d4 de ff ff       	call   0x40873c
40a868:	59                   	pop    %ecx
40a869:	59                   	pop    %ecx
40a86a:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40a86d:	e8 31 03 00 00       	call   0x40aba3
40a872:	68 5c 14 43 00       	push   $0x43145c
40a877:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40a87a:	50                   	push   %eax
40a87b:	e8 7a e0 ff ff       	call   0x4088fa
40a880:	e8 17 f9 ff ff       	call   0x40a19c
40a885:	89 58 10             	mov    %ebx,0x10(%eax)
40a888:	e8 0f f9 ff ff       	call   0x40a19c
40a88d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a890:	89 48 14             	mov    %ecx,0x14(%eax)
40a893:	85 f6                	test   %esi,%esi
40a895:	75 03                	jne    0x40a89a
40a897:	8b 75 0c             	mov    0xc(%ebp),%esi
40a89a:	53                   	push   %ebx
40a89b:	56                   	push   %esi
40a89c:	e8 6d db ff ff       	call   0x40840e
40a8a1:	57                   	push   %edi
40a8a2:	ff 75 14             	push   0x14(%ebp)
40a8a5:	ff 75 0c             	push   0xc(%ebp)