4053f9:	f6 c1 08             	test   $0x8,%cl
4053fc:	74 1c                	je     0x40541a
4053fe:	8b 48 18             	mov    0x18(%eax),%ecx
405401:	85 c9                	test   %ecx,%ecx
405403:	0f 84 b9 00 00 00    	je     0x4054c2
405409:	85 f6                	test   %esi,%esi
40540b:	0f 84 b1 00 00 00    	je     0x4054c2
405411:	89 0e                	mov    %ecx,(%esi)
405413:	8d 47 08             	lea    0x8(%edi),%eax
405416:	50                   	push   %eax
405417:	51                   	push   %ecx
405418:	eb 37                	jmp    0x405451
40541a:	f6 07 01             	testb  $0x1,(%edi)
40541d:	74 3d                	je     0x40545c
40541f:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
405423:	0f 84 99 00 00 00    	je     0x4054c2
405429:	85 f6                	test   %esi,%esi
40542b:	0f 84 91 00 00 00    	je     0x4054c2
405431:	ff 77 14             	push   0x14(%edi)
405434:	ff 70 18             	push   0x18(%eax)
405437:	56                   	push   %esi
405438:	e8 f3 ee ff ff       	call   0x404330
40543d:	83 c4 0c             	add    $0xc,%esp
405440:	83 7f 14 04          	cmpl   $0x4,0x14(%edi)
405444:	75 56                	jne    0x40549c
405446:	83 3e 00             	cmpl   $0x0,(%esi)
405449:	74 51                	je     0x40549c
40544b:	8d 47 08             	lea    0x8(%edi),%eax
40544e:	50                   	push   %eax
40544f:	ff 36                	push   (%esi)
405451:	e8 86 f5 ff ff       	call   0x4049dc
405456:	59                   	pop    %ecx
405457:	59                   	pop    %ecx
405458:	89 06                	mov    %eax,(%esi)
40545a:	eb 40                	jmp    0x40549c
40545c:	8b 48 18             	mov    0x18(%eax),%ecx
40545f:	39 5f 18             	cmp    %ebx,0x18(%edi)
405462:	75 23                	jne    0x405487
405464:	85 c9                	test   %ecx,%ecx
405466:	74 5a                	je     0x4054c2
405468:	85 f6                	test   %esi,%esi
40546a:	74 56                	je     0x4054c2
40546c:	ff 77 14             	push   0x14(%edi)
40546f:	8d 47 08             	lea    0x8(%edi),%eax
405472:	50                   	push   %eax
405473:	51                   	push   %ecx
405474:	e8 63 f5 ff ff       	call   0x4049dc
405479:	59                   	pop    %ecx
40547a:	59                   	pop    %ecx
40547b:	50                   	push   %eax
40547c:	56                   	push   %esi
40547d:	e8 ae ee ff ff       	call   0x404330
405482:	83 c4 0c             	add    $0xc,%esp
405485:	eb 15                	jmp    0x40549c
405487:	85 c9                	test   %ecx,%ecx
405489:	74 37                	je     0x4054c2
40548b:	85 f6                	test   %esi,%esi
40548d:	74 33                	je     0x4054c2
40548f:	f6 07 04             	testb  $0x4,(%edi)
405492:	6a 00                	push   $0x0
405494:	5b                   	pop    %ebx
405495:	0f 95 c3             	setne  %bl
405498:	43                   	inc    %ebx
405499:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40549c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4054a3:	8b c3                	mov    %ebx,%eax
4054a5:	eb 0b                	jmp    0x4054b2
4054a7:	33 c0                	xor    %eax,%eax
4054a9:	40                   	inc    %eax
4054aa:	c3                   	ret
4054ab:	8b 65 e8             	mov    -0x18(%ebp),%esp
4054ae:	eb 12                	jmp    0x4054c2
4054b0:	33 c0                	xor    %eax,%eax
4054b2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4054b5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4054bc:	59                   	pop    %ecx
4054bd:	5f                   	pop    %edi
4054be:	5e                   	pop    %esi
4054bf:	5b                   	pop    %ebx
4054c0:	c9                   	leave
4054c1:	c3                   	ret
4054c2:	e8 63 50 00 00       	call   0x40a52a
4054c7:	cc                   	int3
4054c8:	6a 08                	push   $0x8
4054ca:	68 c8 fd 41 00       	push   $0x41fdc8
4054cf:	e8 cc e9 ff ff       	call   0x403ea0
4054d4:	8b 55 10             	mov    0x10(%ebp),%edx
4054d7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4054da:	83 3a 00             	cmpl   $0x0,(%edx)
4054dd:	7d 04                	jge    0x4054e3
4054df:	8b f9                	mov    %ecx,%edi
4054e1:	eb 06                	jmp    0x4054e9
4054e3:	8d 79 0c             	lea    0xc(%ecx),%edi
4054e6:	03 7a 08             	add    0x8(%edx),%edi
4054e9:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4054ed:	8b 75 14             	mov    0x14(%ebp),%esi
4054f0:	56                   	push   %esi
4054f1:	52                   	push   %edx
4054f2:	51                   	push   %ecx
4054f3:	8b 5d 08             	mov    0x8(%ebp),%ebx
4054f6:	53                   	push   %ebx
4054f7:	e8 8e fe ff ff       	call   0x40538a
4054fc:	83 c4 10             	add    $0x10,%esp
4054ff:	83 e8 01             	sub    $0x1,%eax
405502:	74 21                	je     0x405525
405504:	83 e8 01             	sub    $0x1,%eax
405507:	75 34                	jne    0x40553d
405509:	8d 46 08             	lea    0x8(%esi),%eax
40550c:	50                   	push   %eax
40550d:	ff 73 18             	push   0x18(%ebx)
405510:	e8 c7 f4 ff ff       	call   0x4049dc
405515:	59                   	pop    %ecx
405516:	59                   	pop    %ecx
405517:	6a 01                	push   $0x1
405519:	50                   	push   %eax
40551a:	ff 76 18             	push   0x18(%esi)
40551d:	57                   	push   %edi
40551e:	e8 86 0b 00 00       	call   0x4060a9
405523:	eb 18                	jmp    0x40553d
405525:	8d 46 08             	lea    0x8(%esi),%eax
405528:	50                   	push   %eax
405529:	ff 73 18             	push   0x18(%ebx)
40552c:	e8 ab f4 ff ff       	call   0x4049dc
405531:	59                   	pop    %ecx
405532:	59                   	pop    %ecx
405533:	50                   	push   %eax
405534:	ff 76 18             	push   0x18(%esi)
405537:	57                   	push   %edi
405538:	e8 5c 0b 00 00       	call   0x406099
40553d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
405544:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405547:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40554e:	59                   	pop    %ecx
40554f:	5f                   	pop    %edi
405550:	5e                   	pop    %esi
405551:	5b                   	pop    %ebx
405552:	c9                   	leave
405553:	c3                   	ret
405554:	33 c0                	xor    %eax,%eax
405556:	40                   	inc    %eax
405557:	c3                   	ret
405558:	8b 65 e8             	mov    -0x18(%ebp),%esp
40555b:	e8 ca 4f 00 00       	call   0x40a52a
405560:	cc                   	int3
405561:	55                   	push   %ebp
405562:	8b ec                	mov    %esp,%ebp
405564:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
405568:	53                   	push   %ebx
405569:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
40556c:	56                   	push   %esi
40556d:	57                   	push   %edi
40556e:	8b 7d 0c             	mov    0xc(%ebp),%edi
405571:	74 10                	je     0x405583
405573:	ff 75 20             	push   0x20(%ebp)
405576:	53                   	push   %ebx
405577:	57                   	push   %edi
405578:	ff 75 08             	push   0x8(%ebp)
40557b:	e8 48 ff ff ff       	call   0x4054c8
405580:	83 c4 10             	add    $0x10,%esp
405583:	8b 45 2c             	mov    0x2c(%ebp),%eax
405586:	85 c0                	test   %eax,%eax
405588:	75 02                	jne    0x40558c
40558a:	8b c7                	mov    %edi,%eax
40558c:	ff 75 08             	push   0x8(%ebp)
40558f:	50                   	push   %eax
405590:	e8 0f f9 ff ff       	call   0x404ea4
405595:	8b 75 24             	mov    0x24(%ebp),%esi
405598:	ff 36                	push   (%esi)
40559a:	ff 75 18             	push   0x18(%ebp)
40559d:	ff 75 14             	push   0x14(%ebp)
4055a0:	57                   	push   %edi
4055a1:	e8 71 09 00 00       	call   0x405f17
4055a6:	8b 46 04             	mov    0x4(%esi),%eax
4055a9:	40                   	inc    %eax
4055aa:	50                   	push   %eax
4055ab:	ff 75 18             	push   0x18(%ebp)
4055ae:	57                   	push   %edi
4055af:	e8 c9 0f 00 00       	call   0x40657d
4055b4:	68 00 01 00 00       	push   $0x100
4055b9:	ff 75 28             	push   0x28(%ebp)
4055bc:	ff 73 0c             	push   0xc(%ebx)
4055bf:	ff 75 18             	push   0x18(%ebp)
4055c2:	ff 75 10             	push   0x10(%ebp)
4055c5:	57                   	push   %edi
4055c6:	ff 75 08             	push   0x8(%ebp)
4055c9:	e8 d9 06 00 00       	call   0x405ca7
4055ce:	83 c4 38             	add    $0x38,%esp
4055d1:	85 c0                	test   %eax,%eax
4055d3:	74 07                	je     0x4055dc
4055d5:	57                   	push   %edi
4055d6:	50                   	push   %eax
4055d7:	e8 98 f8 ff ff       	call   0x404e74
4055dc:	5f                   	pop    %edi
4055dd:	5e                   	pop    %esi
4055de:	5b                   	pop    %ebx
4055df:	5d                   	pop    %ebp
4055e0:	c3                   	ret
4055e1:	55                   	push   %ebp
4055e2:	8b ec                	mov    %esp,%ebp
4055e4:	83 ec 64             	sub    $0x64,%esp
4055e7:	53                   	push   %ebx
4055e8:	56                   	push   %esi
4055e9:	57                   	push   %edi
4055ea:	8b 7d 18             	mov    0x18(%ebp),%edi
4055ed:	33 c0                	xor    %eax,%eax
4055ef:	57                   	push   %edi
4055f0:	ff 75 14             	push   0x14(%ebp)
4055f3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4055f6:	ff 75 0c             	push   0xc(%ebp)
4055f9:	88 45 e8             	mov    %al,-0x18(%ebp)
4055fc:	e8 5f 0f 00 00       	call   0x406560
405601:	8b c8                	mov    %eax,%ecx
405603:	83 c4 0c             	add    $0xc,%esp
405606:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405609:	83 f9 ff             	cmp    $0xffffffff,%ecx
40560c:	0f 8c 6e 03 00 00    	jl     0x405980
405612:	3b 4f 04             	cmp    0x4(%edi),%ecx
405615:	0f 8d 65 03 00 00    	jge    0x405980
40561b:	8b 5d 08             	mov    0x8(%ebp),%ebx
40561e:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
405624:	0f 85 f7 00 00 00    	jne    0x405721
40562a:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
40562e:	0f 85 ed 00 00 00    	jne    0x405721
405634:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
40563b:	74 16                	je     0x405653
40563d:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
405644:	74 0d                	je     0x405653
405646:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
40564d:	0f 85 ce 00 00 00    	jne    0x405721
405653:	33 f6                	xor    %esi,%esi
405655:	39 73 1c             	cmp    %esi,0x1c(%ebx)
405658:	0f 85 c3 00 00 00    	jne    0x405721
40565e:	e8 39 fc ff ff       	call   0x40529c
405663:	39 70 10             	cmp    %esi,0x10(%eax)
405666:	0f 84 ae 02 00 00    	je     0x40591a
40566c:	e8 2b fc ff ff       	call   0x40529c
405671:	8b 58 10             	mov    0x10(%eax),%ebx
405674:	e8 23 fc ff ff       	call   0x40529c
405679:	c6 45 e8 01          	movb   $0x1,-0x18(%ebp)
40567d:	8b 40 14             	mov    0x14(%eax),%eax
405680:	89 45 fc             	mov    %eax,-0x4(%ebp)
405683:	85 db                	test   %ebx,%ebx
405685:	0f 84 f5 02 00 00    	je     0x405980
40568b:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
405691:	75 2a                	jne    0x4056bd
405693:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
405697:	75 24                	jne    0x4056bd
405699:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
4056a0:	74 12                	je     0x4056b4
4056a2:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
4056a9:	74 09                	je     0x4056b4
4056ab:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
4056b2:	75 09                	jne    0x4056bd
4056b4:	39 73 1c             	cmp    %esi,0x1c(%ebx)
4056b7:	0f 84 c3 02 00 00    	je     0x405980
4056bd:	e8 da fb ff ff       	call   0x40529c
4056c2:	39 70 1c             	cmp    %esi,0x1c(%eax)
4056c5:	74 62                	je     0x405729
4056c7:	e8 d0 fb ff ff       	call   0x40529c
4056cc:	8b 40 1c             	mov    0x1c(%eax),%eax
4056cf:	89 45 f4             	mov    %eax,-0xc(%ebp)
4056d2:	e8 c5 fb ff ff       	call   0x40529c
4056d7:	ff 75 f4             	push   -0xc(%ebp)
4056da:	53                   	push   %ebx
4056db:	89 70 1c             	mov    %esi,0x1c(%eax)
4056de:	e8 1c 09 00 00       	call   0x405fff
4056e3:	59                   	pop    %ecx
4056e4:	59                   	pop    %ecx
4056e5:	84 c0                	test   %al,%al
4056e7:	75 40                	jne    0x405729
4056e9:	8b 7d f4             	mov    -0xc(%ebp),%edi
4056ec:	39 37                	cmp    %esi,(%edi)
4056ee:	0f 8e 2b 02 00 00    	jle    0x40591f
4056f4:	8b 47 04             	mov    0x4(%edi),%eax
4056f7:	68 f0 19 42 00       	push   $0x4219f0
4056fc:	8b 4c 06 04          	mov    0x4(%esi,%eax,1),%ecx
405700:	e8 83 05 00 00       	call   0x405c88
405705:	84 c0                	test   %al,%al
405707:	0f 85 17 02 00 00    	jne    0x405924
40570d:	8b 45 f0             	mov    -0x10(%ebp),%eax
405710:	83 c6 10             	add    $0x10,%esi
405713:	40                   	inc    %eax
405714:	89 45 f0             	mov    %eax,-0x10(%ebp)
405717:	3b 07                	cmp    (%edi),%eax
405719:	0f 8d 00 02 00 00    	jge    0x40591f
40571f:	eb d3                	jmp    0x4056f4
405721:	8b 55 10             	mov    0x10(%ebp),%edx
405724:	89 55 fc             	mov    %edx,-0x4(%ebp)
405727:	eb 06                	jmp    0x40572f
405729:	8b 55 fc             	mov    -0x4(%ebp),%edx
40572c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40572f:	33 c0                	xor    %eax,%eax
405731:	89 7d d0             	mov    %edi,-0x30(%ebp)
405734:	89 45 d4             	mov    %eax,-0x2c(%ebp)
405737:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
40573d:	0f 85 a6 01 00 00    	jne    0x4058e9
405743:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
405747:	0f 85 9c 01 00 00    	jne    0x4058e9
40574d:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
405754:	74 16                	je     0x40576c
405756:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
40575d:	74 0d                	je     0x40576c
40575f:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
405766:	0f 85 7d 01 00 00    	jne    0x4058e9
40576c:	8b 75 24             	mov    0x24(%ebp),%esi
40576f:	39 47 0c             	cmp    %eax,0xc(%edi)
405772:	0f 86 11 01 00 00    	jbe    0x405889
405778:	ff 75 20             	push   0x20(%ebp)
40577b:	8d 45 d0             	lea    -0x30(%ebp),%eax
40577e:	57                   	push   %edi
40577f:	ff 75 14             	push   0x14(%ebp)
405782:	51                   	push   %ecx
405783:	50                   	push   %eax
405784:	8d 45 c0             	lea    -0x40(%ebp),%eax
405787:	50                   	push   %eax
405788:	e8 2b f5 ff ff       	call   0x404cb8
40578d:	8b 55 c4             	mov    -0x3c(%ebp),%edx
405790:	83 c4 18             	add    $0x18,%esp
405793:	8b 45 c0             	mov    -0x40(%ebp),%eax
405796:	89 45 d8             	mov    %eax,-0x28(%ebp)
405799:	89 55 f4             	mov    %edx,-0xc(%ebp)
40579c:	3b 55 cc             	cmp    -0x34(%ebp),%edx
40579f:	0f 83 e4 00 00 00    	jae    0x405889
4057a5:	6b ca 14             	imul   $0x14,%edx,%ecx
4057a8:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4057ab:	8b 00                	mov    (%eax),%eax
4057ad:	8d 7d 9c             	lea    -0x64(%ebp),%edi
4057b0:	6a 05                	push   $0x5
4057b2:	8b 70 10             	mov    0x10(%eax),%esi
4057b5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4057b8:	03 f1                	add    %ecx,%esi
4057ba:	59                   	pop    %ecx
4057bb:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4057bd:	39 45 9c             	cmp    %eax,-0x64(%ebp)
4057c0:	0f 8f a4 00 00 00    	jg     0x40586a
4057c6:	3b 45 a0             	cmp    -0x60(%ebp),%eax
4057c9:	0f 8f 9b 00 00 00    	jg     0x40586a
4057cf:	33 c9                	xor    %ecx,%ecx
4057d1:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4057d4:	39 4d a8             	cmp    %ecx,-0x58(%ebp)
4057d7:	0f 84 8d 00 00 00    	je     0x40586a
4057dd:	8b 53 1c             	mov    0x1c(%ebx),%edx
4057e0:	8b 42 0c             	mov    0xc(%edx),%eax
4057e3:	8b 30                	mov    (%eax),%esi
4057e5:	83 c0 04             	add    $0x4,%eax
4057e8:	89 45 e0             	mov    %eax,-0x20(%ebp)
4057eb:	8b 45 ac             	mov    -0x54(%ebp),%eax
4057ee:	89 75 dc             	mov    %esi,-0x24(%ebp)
4057f1:	89 45 ec             	mov    %eax,-0x14(%ebp)
4057f4:	8b f0                	mov    %eax,%esi