40a200:	83 3e 00             	cmpl   $0x0,(%esi)
40a203:	74 51                	je     0x40a256
40a205:	8d 47 08             	lea    0x8(%edi),%eax
40a208:	50                   	push   %eax
40a209:	ff 36                	push   (%esi)
40a20b:	e8 6c ee ff ff       	call   0x40907c
40a210:	59                   	pop    %ecx
40a211:	59                   	pop    %ecx
40a212:	89 06                	mov    %eax,(%esi)
40a214:	eb 40                	jmp    0x40a256
40a216:	8b 48 18             	mov    0x18(%eax),%ecx
40a219:	39 5f 18             	cmp    %ebx,0x18(%edi)
40a21c:	75 23                	jne    0x40a241
40a21e:	85 c9                	test   %ecx,%ecx
40a220:	74 5a                	je     0x40a27c
40a222:	85 f6                	test   %esi,%esi
40a224:	74 56                	je     0x40a27c
40a226:	ff 77 14             	push   0x14(%edi)
40a229:	8d 47 08             	lea    0x8(%edi),%eax
40a22c:	50                   	push   %eax
40a22d:	51                   	push   %ecx
40a22e:	e8 49 ee ff ff       	call   0x40907c
40a233:	59                   	pop    %ecx
40a234:	59                   	pop    %ecx
40a235:	50                   	push   %eax
40a236:	56                   	push   %esi
40a237:	e8 94 f9 ff ff       	call   0x409bd0
40a23c:	83 c4 0c             	add    $0xc,%esp
40a23f:	eb 15                	jmp    0x40a256
40a241:	85 c9                	test   %ecx,%ecx
40a243:	74 37                	je     0x40a27c
40a245:	85 f6                	test   %esi,%esi
40a247:	74 33                	je     0x40a27c
40a249:	f6 07 04             	testb  $0x4,(%edi)
40a24c:	6a 00                	push   $0x0
40a24e:	5b                   	pop    %ebx
40a24f:	0f 95 c3             	setne  %bl
40a252:	43                   	inc    %ebx
40a253:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40a256:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a25d:	8b c3                	mov    %ebx,%eax
40a25f:	eb 0b                	jmp    0x40a26c
40a261:	33 c0                	xor    %eax,%eax
40a263:	40                   	inc    %eax
40a264:	c3                   	ret
40a265:	8b 65 e8             	mov    -0x18(%ebp),%esp
40a268:	eb 12                	jmp    0x40a27c
40a26a:	33 c0                	xor    %eax,%eax
40a26c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a26f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a276:	59                   	pop    %ecx
40a277:	5f                   	pop    %edi
40a278:	5e                   	pop    %esi
40a279:	5b                   	pop    %ebx
40a27a:	c9                   	leave
40a27b:	c3                   	ret
40a27c:	e8 7a 20 00 00       	call   0x40c2fb
40a281:	cc                   	int3
40a282:	6a 08                	push   $0x8
40a284:	68 d0 3d 42 00       	push   $0x423dd0
40a289:	e8 42 e7 ff ff       	call   0x4089d0
40a28e:	8b 55 10             	mov    0x10(%ebp),%edx
40a291:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a294:	83 3a 00             	cmpl   $0x0,(%edx)
40a297:	7d 04                	jge    0x40a29d
40a299:	8b f9                	mov    %ecx,%edi
40a29b:	eb 06                	jmp    0x40a2a3
40a29d:	8d 79 0c             	lea    0xc(%ecx),%edi
40a2a0:	03 7a 08             	add    0x8(%edx),%edi
40a2a3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40a2a7:	8b 75 14             	mov    0x14(%ebp),%esi
40a2aa:	56                   	push   %esi
40a2ab:	52                   	push   %edx
40a2ac:	51                   	push   %ecx
40a2ad:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a2b0:	53                   	push   %ebx
40a2b1:	e8 8e fe ff ff       	call   0x40a144
40a2b6:	83 c4 10             	add    $0x10,%esp
40a2b9:	83 e8 01             	sub    $0x1,%eax
40a2bc:	74 21                	je     0x40a2df
40a2be:	83 e8 01             	sub    $0x1,%eax
40a2c1:	75 34                	jne    0x40a2f7
40a2c3:	8d 46 08             	lea    0x8(%esi),%eax
40a2c6:	50                   	push   %eax
40a2c7:	ff 73 18             	push   0x18(%ebx)
40a2ca:	e8 ad ed ff ff       	call   0x40907c
40a2cf:	59                   	pop    %ecx
40a2d0:	59                   	pop    %ecx
40a2d1:	6a 01                	push   $0x1
40a2d3:	50                   	push   %eax
40a2d4:	ff 76 18             	push   0x18(%esi)
40a2d7:	57                   	push   %edi
40a2d8:	e8 22 0c 00 00       	call   0x40aeff
40a2dd:	eb 18                	jmp    0x40a2f7
40a2df:	8d 46 08             	lea    0x8(%esi),%eax
40a2e2:	50                   	push   %eax
40a2e3:	ff 73 18             	push   0x18(%ebx)
40a2e6:	e8 91 ed ff ff       	call   0x40907c
40a2eb:	59                   	pop    %ecx
40a2ec:	59                   	pop    %ecx
40a2ed:	50                   	push   %eax
40a2ee:	ff 76 18             	push   0x18(%esi)
40a2f1:	57                   	push   %edi
40a2f2:	e8 f8 0b 00 00       	call   0x40aeef
40a2f7:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a2fe:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a301:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a308:	59                   	pop    %ecx
40a309:	5f                   	pop    %edi
40a30a:	5e                   	pop    %esi
40a30b:	5b                   	pop    %ebx
40a30c:	c9                   	leave
40a30d:	c3                   	ret
40a30e:	33 c0                	xor    %eax,%eax
40a310:	40                   	inc    %eax
40a311:	c3                   	ret
40a312:	8b 65 e8             	mov    -0x18(%ebp),%esp
40a315:	e8 e1 1f 00 00       	call   0x40c2fb
40a31a:	cc                   	int3
40a31b:	55                   	push   %ebp
40a31c:	8b ec                	mov    %esp,%ebp
40a31e:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
40a322:	53                   	push   %ebx
40a323:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
40a326:	56                   	push   %esi
40a327:	57                   	push   %edi
40a328:	8b 7d 0c             	mov    0xc(%ebp),%edi
40a32b:	74 10                	je     0x40a33d
40a32d:	ff 75 20             	push   0x20(%ebp)
40a330:	53                   	push   %ebx
40a331:	57                   	push   %edi
40a332:	ff 75 08             	push   0x8(%ebp)
40a335:	e8 48 ff ff ff       	call   0x40a282
40a33a:	83 c4 10             	add    $0x10,%esp
40a33d:	8b 45 2c             	mov    0x2c(%ebp),%eax
40a340:	85 c0                	test   %eax,%eax
40a342:	75 02                	jne    0x40a346
40a344:	8b c7                	mov    %edi,%eax
40a346:	ff 75 08             	push   0x8(%ebp)
40a349:	50                   	push   %eax
40a34a:	e8 b0 f6 ff ff       	call   0x4099ff
40a34f:	8b 75 24             	mov    0x24(%ebp),%esi
40a352:	ff 36                	push   (%esi)
40a354:	ff 75 18             	push   0x18(%ebp)
40a357:	ff 75 14             	push   0x14(%ebp)
40a35a:	57                   	push   %edi
40a35b:	e8 0d 0a 00 00       	call   0x40ad6d
40a360:	8b 46 04             	mov    0x4(%esi),%eax
40a363:	40                   	inc    %eax
40a364:	50                   	push   %eax
40a365:	ff 75 18             	push   0x18(%ebp)
40a368:	57                   	push   %edi
40a369:	e8 48 0c 00 00       	call   0x40afb6
40a36e:	68 00 01 00 00       	push   $0x100
40a373:	ff 75 28             	push   0x28(%ebp)
40a376:	ff 73 0c             	push   0xc(%ebx)
40a379:	ff 75 18             	push   0x18(%ebp)
40a37c:	ff 75 10             	push   0x10(%ebp)
40a37f:	57                   	push   %edi
40a380:	ff 75 08             	push   0x8(%ebp)
40a383:	e8 75 07 00 00       	call   0x40aafd
40a388:	83 c4 38             	add    $0x38,%esp
40a38b:	85 c0                	test   %eax,%eax
40a38d:	74 07                	je     0x40a396
40a38f:	57                   	push   %edi
40a390:	50                   	push   %eax
40a391:	e8 39 f6 ff ff       	call   0x4099cf
40a396:	5f                   	pop    %edi
40a397:	5e                   	pop    %esi
40a398:	5b                   	pop    %ebx
40a399:	5d                   	pop    %ebp
40a39a:	c3                   	ret
40a39b:	55                   	push   %ebp
40a39c:	8b ec                	mov    %esp,%ebp
40a39e:	83 ec 68             	sub    $0x68,%esp
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