40a2d2:	8b 48 04             	mov    0x4(%eax),%ecx
40a2d5:	85 c9                	test   %ecx,%ecx
40a2d7:	0f 84 0a 01 00 00    	je     0x40a3e7
40a2dd:	38 59 08             	cmp    %bl,0x8(%ecx)
40a2e0:	0f 84 01 01 00 00    	je     0x40a3e7
40a2e6:	8b 50 08             	mov    0x8(%eax),%edx
40a2e9:	85 d2                	test   %edx,%edx
40a2eb:	75 08                	jne    0x40a2f5
40a2ed:	39 18                	cmp    %ebx,(%eax)
40a2ef:	0f 8d f2 00 00 00    	jge    0x40a3e7
40a2f5:	8b 08                	mov    (%eax),%ecx
40a2f7:	8b 75 0c             	mov    0xc(%ebp),%esi
40a2fa:	85 c9                	test   %ecx,%ecx
40a2fc:	78 05                	js     0x40a303
40a2fe:	83 c6 0c             	add    $0xc,%esi
40a301:	03 f2                	add    %edx,%esi
40a303:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a306:	8b 7d 14             	mov    0x14(%ebp),%edi
40a309:	84 c9                	test   %cl,%cl
40a30b:	79 20                	jns    0x40a32d
40a30d:	f6 07 10             	testb  $0x10,(%edi)
40a310:	74 1b                	je     0x40a32d
40a312:	a1 6c 45 43 00       	mov    0x43456c,%eax
40a317:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40a31a:	85 c0                	test   %eax,%eax
40a31c:	74 0f                	je     0x40a32d
40a31e:	8b c8                	mov    %eax,%ecx
40a320:	ff 15 54 41 42 00    	call   *0x424154
40a326:	ff 55 e4             	call   *-0x1c(%ebp)
40a329:	8b c8                	mov    %eax,%ecx
40a32b:	eb 0b                	jmp    0x40a338
40a32d:	8b 45 08             	mov    0x8(%ebp),%eax
40a330:	f6 c1 08             	test   $0x8,%cl
40a333:	74 1c                	je     0x40a351
40a335:	8b 48 18             	mov    0x18(%eax),%ecx
40a338:	85 c9                	test   %ecx,%ecx
40a33a:	0f 84 b9 00 00 00    	je     0x40a3f9
40a340:	85 f6                	test   %esi,%esi
40a342:	0f 84 b1 00 00 00    	je     0x40a3f9
40a348:	89 0e                	mov    %ecx,(%esi)
40a34a:	8d 47 08             	lea    0x8(%edi),%eax
40a34d:	50                   	push   %eax
40a34e:	51                   	push   %ecx
40a34f:	eb 37                	jmp    0x40a388
40a351:	f6 07 01             	testb  $0x1,(%edi)
40a354:	74 3d                	je     0x40a393
40a356:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
40a35a:	0f 84 99 00 00 00    	je     0x40a3f9
40a360:	85 f6                	test   %esi,%esi
40a362:	0f 84 91 00 00 00    	je     0x40a3f9
40a368:	ff 77 14             	push   0x14(%edi)
40a36b:	ff 70 18             	push   0x18(%eax)
40a36e:	56                   	push   %esi
40a36f:	e8 fc e5 ff ff       	call   0x408970
40a374:	83 c4 0c             	add    $0xc,%esp
40a377:	83 7f 14 04          	cmpl   $0x4,0x14(%edi)
40a37b:	75 56                	jne    0x40a3d3
40a37d:	83 3e 00             	cmpl   $0x0,(%esi)
40a380:	74 51                	je     0x40a3d3
40a382:	8d 47 08             	lea    0x8(%edi),%eax
40a385:	50                   	push   %eax
40a386:	ff 36                	push   (%esi)
40a388:	e8 db e4 ff ff       	call   0x408868
40a38d:	59                   	pop    %ecx
40a38e:	59                   	pop    %ecx
40a38f:	89 06                	mov    %eax,(%esi)
40a391:	eb 40                	jmp    0x40a3d3
40a393:	8b 48 18             	mov    0x18(%eax),%ecx
40a396:	39 5f 18             	cmp    %ebx,0x18(%edi)
40a399:	75 23                	jne    0x40a3be
40a39b:	85 c9                	test   %ecx,%ecx
40a39d:	74 5a                	je     0x40a3f9
40a39f:	85 f6                	test   %esi,%esi
40a3a1:	74 56                	je     0x40a3f9
40a3a3:	ff 77 14             	push   0x14(%edi)
40a3a6:	8d 47 08             	lea    0x8(%edi),%eax
40a3a9:	50                   	push   %eax
40a3aa:	51                   	push   %ecx
40a3ab:	e8 b8 e4 ff ff       	call   0x408868
40a3b0:	59                   	pop    %ecx
40a3b1:	59                   	pop    %ecx
40a3b2:	50                   	push   %eax
40a3b3:	56                   	push   %esi
40a3b4:	e8 b7 e5 ff ff       	call   0x408970
40a3b9:	83 c4 0c             	add    $0xc,%esp
40a3bc:	eb 15                	jmp    0x40a3d3
40a3be:	85 c9                	test   %ecx,%ecx
40a3c0:	74 37                	je     0x40a3f9
40a3c2:	85 f6                	test   %esi,%esi
40a3c4:	74 33                	je     0x40a3f9
40a3c6:	f6 07 04             	testb  $0x4,(%edi)
40a3c9:	6a 00                	push   $0x0
40a3cb:	5b                   	pop    %ebx
40a3cc:	0f 95 c3             	setne  %bl
40a3cf:	43                   	inc    %ebx
40a3d0:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40a3d3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a3da:	8b c3                	mov    %ebx,%eax
40a3dc:	eb 0b                	jmp    0x40a3e9
40a3de:	33 c0                	xor    %eax,%eax
40a3e0:	40                   	inc    %eax
40a3e1:	c3                   	ret
40a3e2:	8b 65 e8             	mov    -0x18(%ebp),%esp
40a3e5:	eb 12                	jmp    0x40a3f9
40a3e7:	33 c0                	xor    %eax,%eax
40a3e9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a3ec:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a3f3:	59                   	pop    %ecx
40a3f4:	5f                   	pop    %edi
40a3f5:	5e                   	pop    %esi
40a3f6:	5b                   	pop    %ebx
40a3f7:	c9                   	leave
40a3f8:	c3                   	ret
40a3f9:	e8 10 4a 00 00       	call   0x40ee0e
40a3fe:	cc                   	int3
40a3ff:	6a 08                	push   $0x8
40a401:	68 40 14 43 00       	push   $0x431440
40a406:	e8 b5 db ff ff       	call   0x407fc0
40a40b:	8b 55 10             	mov    0x10(%ebp),%edx
40a40e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a411:	83 3a 00             	cmpl   $0x0,(%edx)
40a414:	7d 04                	jge    0x40a41a
40a416:	8b f9                	mov    %ecx,%edi
40a418:	eb 06                	jmp    0x40a420
40a41a:	8d 79 0c             	lea    0xc(%ecx),%edi
40a41d:	03 7a 08             	add    0x8(%edx),%edi
40a420:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40a424:	8b 75 14             	mov    0x14(%ebp),%esi
40a427:	56                   	push   %esi
40a428:	52                   	push   %edx
40a429:	51                   	push   %ecx
40a42a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a42d:	53                   	push   %ebx
40a42e:	e8 8e fe ff ff       	call   0x40a2c1
40a433:	83 c4 10             	add    $0x10,%esp
40a436:	83 e8 01             	sub    $0x1,%eax
40a439:	74 21                	je     0x40a45c
40a43b:	83 e8 01             	sub    $0x1,%eax
40a43e:	75 34                	jne    0x40a474
40a440:	8d 46 08             	lea    0x8(%esi),%eax
40a443:	50                   	push   %eax
40a444:	ff 73 18             	push   0x18(%ebx)
40a447:	e8 1c e4 ff ff       	call   0x408868
40a44c:	59                   	pop    %ecx
40a44d:	59                   	pop    %ecx
40a44e:	6a 01                	push   $0x1
40a450:	50                   	push   %eax
40a451:	ff 76 18             	push   0x18(%esi)
40a454:	57                   	push   %edi
40a455:	e8 77 0b 00 00       	call   0x40afd1
40a45a:	eb 18                	jmp    0x40a474
40a45c:	8d 46 08             	lea    0x8(%esi),%eax
40a45f:	50                   	push   %eax
40a460:	ff 73 18             	push   0x18(%ebx)
40a463:	e8 00 e4 ff ff       	call   0x408868
40a468:	59                   	pop    %ecx
40a469:	59                   	pop    %ecx
40a46a:	50                   	push   %eax
40a46b:	ff 76 18             	push   0x18(%esi)
40a46e:	57                   	push   %edi
40a46f:	e8 4d 0b 00 00       	call   0x40afc1
40a474:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a47b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a47e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a485:	59                   	pop    %ecx
40a486:	5f                   	pop    %edi
40a487:	5e                   	pop    %esi
40a488:	5b                   	pop    %ebx
40a489:	c9                   	leave
40a48a:	c3                   	ret
40a48b:	33 c0                	xor    %eax,%eax
40a48d:	40                   	inc    %eax
40a48e:	c3                   	ret
40a48f:	8b 65 e8             	mov    -0x18(%ebp),%esp
40a492:	e8 77 49 00 00       	call   0x40ee0e
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