40a3a1:	53                   	push   %ebx
40a3a2:	56                   	push   %esi
40a3a3:	33 c0                	xor    %eax,%eax
40a3a5:	57                   	push   %edi
40a3a6:	8b 7d 18             	mov    0x18(%ebp),%edi
40a3a9:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a3ac:	88 45 ec             	mov    %al,-0x14(%ebp)
40a3af:	8b 45 14             	mov    0x14(%ebp),%eax
40a3b2:	57                   	push   %edi
40a3b3:	50                   	push   %eax
40a3b4:	8b 45 0c             	mov    0xc(%ebp),%eax
40a3b7:	50                   	push   %eax
40a3b8:	e8 dc 0b 00 00       	call   0x40af99
40a3bd:	8b c8                	mov    %eax,%ecx
40a3bf:	83 c4 0c             	add    $0xc,%esp
40a3c2:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a3c5:	83 f9 ff             	cmp    $0xffffffff,%ecx
40a3c8:	0f 8c 8a 03 00 00    	jl     0x40a758
40a3ce:	3b 4f 04             	cmp    0x4(%edi),%ecx
40a3d1:	0f 8d 81 03 00 00    	jge    0x40a758
40a3d7:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a3da:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
40a3e0:	0f 85 f7 00 00 00    	jne    0x40a4dd
40a3e6:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
40a3ea:	0f 85 ed 00 00 00    	jne    0x40a4dd
40a3f0:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
40a3f7:	74 16                	je     0x40a40f
40a3f9:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
40a400:	74 0d                	je     0x40a40f
40a402:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
40a409:	0f 85 ce 00 00 00    	jne    0x40a4dd
40a40f:	33 f6                	xor    %esi,%esi
40a411:	39 73 1c             	cmp    %esi,0x1c(%ebx)
40a414:	0f 85 c3 00 00 00    	jne    0x40a4dd
40a41a:	e8 0d f0 ff ff       	call   0x40942c
40a41f:	39 70 10             	cmp    %esi,0x10(%eax)
40a422:	0f 84 c4 02 00 00    	je     0x40a6ec
40a428:	e8 ff ef ff ff       	call   0x40942c
40a42d:	8b 58 10             	mov    0x10(%eax),%ebx
40a430:	e8 f7 ef ff ff       	call   0x40942c
40a435:	c6 45 ec 01          	movb   $0x1,-0x14(%ebp)
40a439:	8b 40 14             	mov    0x14(%eax),%eax
40a43c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a43f:	85 db                	test   %ebx,%ebx
40a441:	0f 84 11 03 00 00    	je     0x40a758
40a447:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
40a44d:	75 2a                	jne    0x40a479
40a44f:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
40a453:	75 24                	jne    0x40a479
40a455:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
40a45c:	74 12                	je     0x40a470
40a45e:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
40a465:	74 09                	je     0x40a470
40a467:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
40a46e:	75 09                	jne    0x40a479
40a470:	39 73 1c             	cmp    %esi,0x1c(%ebx)
40a473:	0f 84 df 02 00 00    	je     0x40a758
40a479:	e8 ae ef ff ff       	call   0x40942c
40a47e:	39 70 1c             	cmp    %esi,0x1c(%eax)
40a481:	74 62                	je     0x40a4e5
40a483:	e8 a4 ef ff ff       	call   0x40942c
40a488:	8b 40 1c             	mov    0x1c(%eax),%eax
40a48b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a48e:	e8 99 ef ff ff       	call   0x40942c
40a493:	ff 75 f4             	push   -0xc(%ebp)
40a496:	53                   	push   %ebx
40a497:	89 70 1c             	mov    %esi,0x1c(%eax)
40a49a:	e8 b6 09 00 00       	call   0x40ae55
40a49f:	59                   	pop    %ecx
40a4a0:	59                   	pop    %ecx
40a4a1:	84 c0                	test   %al,%al
40a4a3:	75 40                	jne    0x40a4e5
40a4a5:	8b 7d f4             	mov    -0xc(%ebp),%edi
40a4a8:	39 37                	cmp    %esi,(%edi)
40a4aa:	0f 8e 41 02 00 00    	jle    0x40a6f1
40a4b0:	8b 47 04             	mov    0x4(%edi),%eax
40a4b3:	68 ac 68 42 00       	push   $0x4268ac
40a4b8:	8b 4c 06 04          	mov    0x4(%esi,%eax,1),%ecx
40a4bc:	e8 f0 05 00 00       	call   0x40aab1
40a4c1:	84 c0                	test   %al,%al
40a4c3:	0f 85 2d 02 00 00    	jne    0x40a6f6
40a4c9:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a4cc:	83 c6 10             	add    $0x10,%esi
40a4cf:	40                   	inc    %eax
40a4d0:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a4d3:	3b 07                	cmp    (%edi),%eax
40a4d5:	0f 8d 16 02 00 00    	jge    0x40a6f1
40a4db:	eb d3                	jmp    0x40a4b0
40a4dd:	8b 55 10             	mov    0x10(%ebp),%edx
40a4e0:	89 55 fc             	mov    %edx,-0x4(%ebp)
40a4e3:	eb 06                	jmp    0x40a4eb
40a4e5:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a4e8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a4eb:	33 c0                	xor    %eax,%eax
40a4ed:	89 7d cc             	mov    %edi,-0x34(%ebp)
40a4f0:	89 45 d0             	mov    %eax,-0x30(%ebp)
40a4f3:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
40a4f9:	0f 85 b9 01 00 00    	jne    0x40a6b8
40a4ff:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
40a503:	0f 85 af 01 00 00    	jne    0x40a6b8
40a509:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
40a510:	74 16                	je     0x40a528
40a512:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
40a519:	74 0d                	je     0x40a528
40a51b:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
40a522:	0f 85 90 01 00 00    	jne    0x40a6b8
40a528:	39 47 0c             	cmp    %eax,0xc(%edi)
40a52b:	8b 45 1c             	mov    0x1c(%ebp),%eax
40a52e:	8b 75 24             	mov    0x24(%ebp),%esi
40a531:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40a534:	8b 45 20             	mov    0x20(%ebp),%eax
40a537:	0f 86 18 01 00 00    	jbe    0x40a655
40a53d:	50                   	push   %eax
40a53e:	57                   	push   %edi
40a53f:	ff 75 14             	push   0x14(%ebp)
40a542:	8d 45 cc             	lea    -0x34(%ebp),%eax
40a545:	51                   	push   %ecx
40a546:	50                   	push   %eax
40a547:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a54a:	50                   	push   %eax
40a54b:	0f ae e8             	lfence
40a54e:	e8 b9 f2 ff ff       	call   0x40980c
40a553:	8b 55 c0             	mov    -0x40(%ebp),%edx
40a556:	83 c4 18             	add    $0x18,%esp
40a559:	8b 4d bc             	mov    -0x44(%ebp),%ecx
40a55c:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40a55f:	89 55 f4             	mov    %edx,-0xc(%ebp)
40a562:	3b 55 c8             	cmp    -0x38(%ebp),%edx
40a565:	0f 83 ea 00 00 00    	jae    0x40a655
40a56b:	8b 45 ec             	mov    -0x14(%ebp),%eax
40a56e:	89 45 d8             	mov    %eax,-0x28(%ebp)
40a571:	8b 01                	mov    (%ecx),%eax
40a573:	8d 7d 98             	lea    -0x68(%ebp),%edi
40a576:	6b ca 14             	imul   $0x14,%edx,%ecx
40a579:	6a 05                	push   $0x5
40a57b:	8b 70 10             	mov    0x10(%eax),%esi
40a57e:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a581:	03 f1                	add    %ecx,%esi
40a583:	59                   	pop    %ecx
40a584:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40a586:	39 45 98             	cmp    %eax,-0x68(%ebp)
40a589:	0f 8f b0 00 00 00    	jg     0x40a63f
40a58f:	3b 45 9c             	cmp    -0x64(%ebp),%eax
40a592:	0f 8f a7 00 00 00    	jg     0x40a63f
40a598:	33 c9                	xor    %ecx,%ecx
40a59a:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40a59d:	39 4d a4             	cmp    %ecx,-0x5c(%ebp)
40a5a0:	0f 84 99 00 00 00    	je     0x40a63f
40a5a6:	8b 53 1c             	mov    0x1c(%ebx),%edx
40a5a9:	8b 42 0c             	mov    0xc(%edx),%eax
40a5ac:	8b 30                	mov    (%eax),%esi
40a5ae:	83 c0 04             	add    $0x4,%eax
40a5b1:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a5b4:	8b 45 a8             	mov    -0x58(%ebp),%eax
40a5b7:	89 75 dc             	mov    %esi,-0x24(%ebp)
40a5ba:	89 45 e8             	mov    %eax,-0x18(%ebp)
40a5bd:	8b f0                	mov    %eax,%esi
40a5bf:	8d 7d ac             	lea    -0x54(%ebp),%edi
40a5c2:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a5c5:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a5c8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a5c9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a5ca:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a5cb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a5cc:	8b 75 dc             	mov    -0x24(%ebp),%esi
40a5cf:	85 f6                	test   %esi,%esi
40a5d1:	7e 28                	jle    0x40a5fb
40a5d3:	8b 38                	mov    (%eax),%edi
40a5d5:	8d 45 ac             	lea    -0x54(%ebp),%eax
40a5d8:	52                   	push   %edx
40a5d9:	57                   	push   %edi
40a5da:	50                   	push   %eax
40a5db:	e8 b4 02 00 00       	call   0x40a894
40a5e0:	83 c4 0c             	add    $0xc,%esp
40a5e3:	85 c0                	test   %eax,%eax
40a5e5:	75 28                	jne    0x40a60f
40a5e7:	8b 45 ec             	mov    -0x14(%ebp),%eax
40a5ea:	4e                   	dec    %esi
40a5eb:	8b 53 1c             	mov    0x1c(%ebx),%edx
40a5ee:	83 c0 04             	add    $0x4,%eax
40a5f1:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a5f4:	85 f6                	test   %esi,%esi
40a5f6:	7f db                	jg     0x40a5d3
40a5f8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a5fb:	8b 45 e8             	mov    -0x18(%ebp),%eax
40a5fe:	41                   	inc    %ecx
40a5ff:	83 c0 10             	add    $0x10,%eax
40a602:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40a605:	89 45 e8             	mov    %eax,-0x18(%ebp)
40a608:	3b 4d a4             	cmp    -0x5c(%ebp),%ecx
40a60b:	75 b0                	jne    0x40a5bd
40a60d:	eb 2d                	jmp    0x40a63c
40a60f:	ff 75 e4             	push   -0x1c(%ebp)
40a612:	8d 45 98             	lea    -0x68(%ebp),%eax
40a615:	ff 75 d8             	push   -0x28(%ebp)
40a618:	0f ae e8             	lfence
40a61b:	ff 75 24             	push   0x24(%ebp)
40a61e:	ff 75 20             	push   0x20(%ebp)
40a621:	50                   	push   %eax
40a622:	57                   	push   %edi
40a623:	8d 45 ac             	lea    -0x54(%ebp),%eax
40a626:	50                   	push   %eax
40a627:	ff 75 18             	push   0x18(%ebp)
40a62a:	ff 75 14             	push   0x14(%ebp)
40a62d:	ff 75 fc             	push   -0x4(%ebp)
40a630:	ff 75 0c             	push   0xc(%ebp)
40a633:	53                   	push   %ebx
40a634:	e8 e2 fc ff ff       	call   0x40a31b
40a639:	83 c4 30             	add    $0x30,%esp
40a63c:	8b 55 f4             	mov    -0xc(%ebp),%edx
40a63f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40a642:	42                   	inc    %edx
40a643:	89 55 f4             	mov    %edx,-0xc(%ebp)
40a646:	3b 55 c8             	cmp    -0x38(%ebp),%edx
40a649:	0f 82 22 ff ff ff    	jb     0x40a571
40a64f:	8b 7d 18             	mov    0x18(%ebp),%edi
40a652:	8b 75 24             	mov    0x24(%ebp),%esi
40a655:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
40a659:	74 0a                	je     0x40a665
40a65b:	6a 01                	push   $0x1
40a65d:	53                   	push   %ebx
40a65e:	e8 ed e8 ff ff       	call   0x408f50
40a663:	59                   	pop    %ecx
40a664:	59                   	pop    %ecx
40a665:	8b 07                	mov    (%edi),%eax
40a667:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
40a66c:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40a671:	72 6e                	jb     0x40a6e1
40a673:	8b 47 20             	mov    0x20(%edi),%eax
40a676:	c1 e8 02             	shr    $0x2,%eax
40a679:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
40a67d:	75 0c                	jne    0x40a68b
40a67f:	a8 01                	test   $0x1,%al
40a681:	74 5e                	je     0x40a6e1
40a683:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
40a687:	75 58                	jne    0x40a6e1
40a689:	eb 04                	jmp    0x40a68f
40a68b:	a8 01                	test   $0x1,%al
40a68d:	74 15                	je     0x40a6a4
40a68f:	e8 98 ed ff ff       	call   0x40942c
40a694:	89 58 10             	mov    %ebx,0x10(%eax)
40a697:	e8 90 ed ff ff       	call   0x40942c
40a69c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a69f:	89 48 14             	mov    %ecx,0x14(%eax)
40a6a2:	eb 4d                	jmp    0x40a6f1
40a6a4:	0f ae e8             	lfence
40a6a7:	ff 77 1c             	push   0x1c(%edi)
40a6aa:	53                   	push   %ebx
40a6ab:	e8 a5 07 00 00       	call   0x40ae55
40a6b0:	59                   	pop    %ecx
40a6b1:	59                   	pop    %ecx
40a6b2:	84 c0                	test   %al,%al
40a6b4:	74 60                	je     0x40a716
40a6b6:	eb 29                	jmp    0x40a6e1
40a6b8:	39 47 0c             	cmp    %eax,0xc(%edi)
40a6bb:	76 24                	jbe    0x40a6e1
40a6bd:	38 45 1c             	cmp    %al,0x1c(%ebp)
40a6c0:	0f 85 92 00 00 00    	jne    0x40a758
40a6c6:	ff 75 24             	push   0x24(%ebp)
40a6c9:	0f ae e8             	lfence
40a6cc:	ff 75 20             	push   0x20(%ebp)
40a6cf:	51                   	push   %ecx
40a6d0:	57                   	push   %edi
40a6d1:	ff 75 14             	push   0x14(%ebp)
40a6d4:	52                   	push   %edx
40a6d5:	ff 75 0c             	push   0xc(%ebp)
40a6d8:	53                   	push   %ebx
40a6d9:	e8 80 00 00 00       	call   0x40a75e
40a6de:	83 c4 20             	add    $0x20,%esp
40a6e1:	e8 46 ed ff ff       	call   0x40942c
40a6e6:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40a6ea:	75 6c                	jne    0x40a758
40a6ec:	5f                   	pop    %edi
40a6ed:	5e                   	pop    %esi
40a6ee:	5b                   	pop    %ebx
40a6ef:	c9                   	leave
40a6f0:	c3                   	ret
40a6f1:	e8 49 1b 00 00       	call   0x40c23f
40a6f6:	6a 01                	push   $0x1
40a6f8:	53                   	push   %ebx
40a6f9:	e8 52 e8 ff ff       	call   0x408f50
40a6fe:	59                   	pop    %ecx
40a6ff:	59                   	pop    %ecx
40a700:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40a703:	e8 43 03 00 00       	call   0x40aa4b
40a708:	68 ec 3d 42 00       	push   $0x423dec
40a70d:	8d 45 c0             	lea    -0x40(%ebp),%eax
40a710:	50                   	push   %eax
40a711:	e8 30 09 00 00       	call   0x40b046
40a716:	0f ae e8             	lfence
40a719:	e8 0e ed ff ff       	call   0x40942c
40a71e:	89 58 10             	mov    %ebx,0x10(%eax)
40a721:	e8 06 ed ff ff       	call   0x40942c
40a726:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a729:	89 48 14             	mov    %ecx,0x14(%eax)
40a72c:	85 f6                	test   %esi,%esi
40a72e:	75 06                	jne    0x40a736
40a730:	8b 75 0c             	mov    0xc(%ebp),%esi
40a733:	0f ae e8             	lfence
40a736:	53                   	push   %ebx
40a737:	56                   	push   %esi
40a738:	e8 c2 f2 ff ff       	call   0x4099ff
40a73d:	57                   	push   %edi
40a73e:	ff 75 14             	push   0x14(%ebp)
40a741:	ff 75 0c             	push   0xc(%ebp)
40a744:	e8 0c 06 00 00       	call   0x40ad55
40a749:	57                   	push   %edi
40a74a:	e8 c3 07 00 00       	call   0x40af12
40a74f:	83 c4 10             	add    $0x10,%esp
40a752:	50                   	push   %eax
40a753:	e8 74 05 00 00       	call   0x40accc
40a758:	e8 9e 1b 00 00       	call   0x40c2fb
40a75d:	cc                   	int3
40a75e:	55                   	push   %ebp
40a75f:	8b ec                	mov    %esp,%ebp
40a761:	83 ec 38             	sub    $0x38,%esp
40a764:	53                   	push   %ebx
40a765:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a768:	81 3b 03 00 00 80    	cmpl   $0x80000003,(%ebx)
40a76e:	0f 84 17 01 00 00    	je     0x40a88b
40a774:	56                   	push   %esi
40a775:	57                   	push   %edi
40a776:	e8 b1 ec ff ff       	call   0x40942c
40a77b:	33 ff                	xor    %edi,%edi
40a77d:	39 78 08             	cmp    %edi,0x8(%eax)
40a780:	74 46                	je     0x40a7c8
40a782:	57                   	push   %edi
40a783:	ff 15 10 c1 41 00    	call   *0x41c110
40a789:	8b f0                	mov    %eax,%esi
40a78b:	e8 9c ec ff ff       	call   0x40942c
40a790:	39 70 08             	cmp    %esi,0x8(%eax)
40a793:	74 33                	je     0x40a7c8
40a795:	81 3b 4d 4f 43 e0    	cmpl   $0xe0434f4d,(%ebx)
40a79b:	74 2b                	je     0x40a7c8
40a79d:	81 3b 52 43 43 e0    	cmpl   $0xe0434352,(%ebx)
40a7a3:	74 23                	je     0x40a7c8
40a7a5:	ff 75 24             	push   0x24(%ebp)
40a7a8:	ff 75 20             	push   0x20(%ebp)
40a7ab:	ff 75 18             	push   0x18(%ebp)
40a7ae:	ff 75 14             	push   0x14(%ebp)
40a7b1:	ff 75 10             	push   0x10(%ebp)
40a7b4:	ff 75 0c             	push   0xc(%ebp)
40a7b7:	53                   	push   %ebx
40a7b8:	e8 1c f1 ff ff       	call   0x4098d9
40a7bd:	83 c4 1c             	add    $0x1c,%esp
40a7c0:	85 c0                	test   %eax,%eax
40a7c2:	0f 85 c1 00 00 00    	jne    0x40a889
40a7c8:	8b 45 18             	mov    0x18(%ebp),%eax
40a7cb:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a7ce:	89 7d f0             	mov    %edi,-0x10(%ebp)