40c2ea:	89 75 dc             	mov    %esi,-0x24(%ebp)
40c2ed:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c2f0:	8b f0                	mov    %eax,%esi
40c2f2:	8d 7d b0             	lea    -0x50(%ebp),%edi
40c2f5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c2f6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c2f7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c2f8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c2f9:	8b 75 dc             	mov    -0x24(%ebp),%esi
40c2fc:	8b 7d e0             	mov    -0x20(%ebp),%edi
40c2ff:	85 f6                	test   %esi,%esi
40c301:	7e 24                	jle    0x40c327
40c303:	52                   	push   %edx
40c304:	ff 37                	push   (%edi)
40c306:	8d 45 b0             	lea    -0x50(%ebp),%eax
40c309:	50                   	push   %eax
40c30a:	e8 aa 02 00 00       	call   0x40c5b9
40c30f:	83 c4 0c             	add    $0xc,%esp
40c312:	85 c0                	test   %eax,%eax
40c314:	75 22                	jne    0x40c338
40c316:	8b 53 1c             	mov    0x1c(%ebx),%edx
40c319:	4e                   	dec    %esi
40c31a:	83 c7 04             	add    $0x4,%edi
40c31d:	85 f6                	test   %esi,%esi
40c31f:	7f e2                	jg     0x40c303
40c321:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c324:	8b 45 ec             	mov    -0x14(%ebp),%eax
40c327:	41                   	inc    %ecx
40c328:	83 c0 10             	add    $0x10,%eax
40c32b:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40c32e:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c331:	3b 4d a8             	cmp    -0x58(%ebp),%ecx
40c334:	75 ba                	jne    0x40c2f0
40c336:	eb 2b                	jmp    0x40c363
40c338:	ff 75 1c             	push   0x1c(%ebp)
40c33b:	8d 45 9c             	lea    -0x64(%ebp),%eax
40c33e:	ff 75 e8             	push   -0x18(%ebp)
40c341:	ff 75 24             	push   0x24(%ebp)
40c344:	ff 75 20             	push   0x20(%ebp)
40c347:	50                   	push   %eax
40c348:	ff 37                	push   (%edi)
40c34a:	8d 45 b0             	lea    -0x50(%ebp),%eax
40c34d:	50                   	push   %eax
40c34e:	ff 75 18             	push   0x18(%ebp)
40c351:	ff 75 14             	push   0x14(%ebp)
40c354:	ff 75 fc             	push   -0x4(%ebp)
40c357:	ff 75 0c             	push   0xc(%ebp)
40c35a:	53                   	push   %ebx
40c35b:	e8 ff fc ff ff       	call   0x40c05f
40c360:	83 c4 30             	add    $0x30,%esp
40c363:	8b 55 f4             	mov    -0xc(%ebp),%edx
40c366:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40c369:	42                   	inc    %edx
40c36a:	8b 45 d8             	mov    -0x28(%ebp),%eax
40c36d:	83 c1 14             	add    $0x14,%ecx
40c370:	89 55 f4             	mov    %edx,-0xc(%ebp)
40c373:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40c376:	3b 55 cc             	cmp    -0x34(%ebp),%edx
40c379:	0f 82 28 ff ff ff    	jb     0x40c2a7
40c37f:	8b 7d 18             	mov    0x18(%ebp),%edi
40c382:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
40c386:	74 0a                	je     0x40c392
40c388:	6a 01                	push   $0x1
40c38a:	53                   	push   %ebx
40c38b:	e8 30 f8 ff ff       	call   0x40bbc0
40c390:	59                   	pop    %ecx
40c391:	59                   	pop    %ecx
40c392:	8b 07                	mov    (%edi),%eax
40c394:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
40c399:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40c39e:	72 68                	jb     0x40c408
40c3a0:	8b 47 20             	mov    0x20(%edi),%eax
40c3a3:	c1 e8 02             	shr    $0x2,%eax
40c3a6:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
40c3aa:	75 0c                	jne    0x40c3b8
40c3ac:	a8 01                	test   $0x1,%al
40c3ae:	74 58                	je     0x40c408
40c3b0:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
40c3b4:	75 52                	jne    0x40c408
40c3b6:	eb 04                	jmp    0x40c3bc
40c3b8:	a8 01                	test   $0x1,%al
40c3ba:	74 15                	je     0x40c3d1
40c3bc:	e8 d9 f9 ff ff       	call   0x40bd9a
40c3c1:	89 58 10             	mov    %ebx,0x10(%eax)
40c3c4:	e8 d1 f9 ff ff       	call   0x40bd9a
40c3c9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c3cc:	89 48 14             	mov    %ecx,0x14(%eax)
40c3cf:	eb 47                	jmp    0x40c418
40c3d1:	ff 77 1c             	push   0x1c(%edi)
40c3d4:	53                   	push   %ebx
40c3d5:	e8 22 07 00 00       	call   0x40cafc
40c3da:	59                   	pop    %ecx
40c3db:	59                   	pop    %ecx
40c3dc:	84 c0                	test   %al,%al
40c3de:	74 5d                	je     0x40c43d
40c3e0:	eb 26                	jmp    0x40c408
40c3e2:	39 47 0c             	cmp    %eax,0xc(%edi)
40c3e5:	76 21                	jbe    0x40c408
40c3e7:	38 45 1c             	cmp    %al,0x1c(%ebp)
40c3ea:	0f 85 8d 00 00 00    	jne    0x40c47d
40c3f0:	ff 75 24             	push   0x24(%ebp)
40c3f3:	ff 75 20             	push   0x20(%ebp)
40c3f6:	51                   	push   %ecx
40c3f7:	57                   	push   %edi
40c3f8:	ff 75 14             	push   0x14(%ebp)
40c3fb:	52                   	push   %edx
40c3fc:	ff 75 0c             	push   0xc(%ebp)
40c3ff:	53                   	push   %ebx
40c400:	e8 7e 00 00 00       	call   0x40c483
40c405:	83 c4 20             	add    $0x20,%esp
40c408:	e8 8d f9 ff ff       	call   0x40bd9a
40c40d:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40c411:	75 6a                	jne    0x40c47d
40c413:	5f                   	pop    %edi
40c414:	5e                   	pop    %esi
40c415:	5b                   	pop    %ebx
40c416:	c9                   	leave
40c417:	c3                   	ret
40c418:	e8 38 fa 00 00       	call   0x41be55
40c41d:	6a 01                	push   $0x1
40c41f:	53                   	push   %ebx
40c420:	e8 9b f7 ff ff       	call   0x40bbc0
40c425:	59                   	pop    %ecx
40c426:	59                   	pop    %ecx
40c427:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40c42a:	e8 3e 03 00 00       	call   0x40c76d
40c42f:	68 dc aa 43 00       	push   $0x43aadc
40c434:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40c437:	50                   	push   %eax
40c438:	e8 d0 f3 ff ff       	call   0x40b80d
40c43d:	e8 58 f9 ff ff       	call   0x40bd9a
40c442:	89 58 10             	mov    %ebx,0x10(%eax)
40c445:	e8 50 f9 ff ff       	call   0x40bd9a
40c44a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c44d:	83 7d 24 00          	cmpl   $0x0,0x24(%ebp)
40c451:	53                   	push   %ebx
40c452:	89 48 14             	mov    %ecx,0x14(%eax)
40c455:	8b 45 0c             	mov    0xc(%ebp),%eax
40c458:	0f 45 45 24          	cmovne 0x24(%ebp),%eax
40c45c:	50                   	push   %eax
40c45d:	e8 0a e8 ff ff       	call   0x40ac6c
40c462:	57                   	push   %edi
40c463:	ff 75 14             	push   0x14(%ebp)
40c466:	ff 75 0c             	push   0xc(%ebp)
40c469:	e8 8e 05 00 00       	call   0x40c9fc
40c46e:	57                   	push   %edi
40c46f:	e8 45 07 00 00       	call   0x40cbb9
40c474:	83 c4 10             	add    $0x10,%esp
40c477:	50                   	push   %eax
40c478:	e8 f6 04 00 00       	call   0x40c973
40c47d:	e8 0f fa 00 00       	call   0x41be91
40c482:	cc                   	int3
40c483:	55                   	push   %ebp
40c484:	8b ec                	mov    %esp,%ebp
40c486:	83 ec 38             	sub    $0x38,%esp
40c489:	53                   	push   %ebx
40c48a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c48d:	81 3b 03 00 00 80    	cmpl   $0x80000003,(%ebx)
40c493:	0f 84 17 01 00 00    	je     0x40c5b0
40c499:	56                   	push   %esi
40c49a:	57                   	push   %edi
40c49b:	e8 fa f8 ff ff       	call   0x40bd9a
40c4a0:	33 ff                	xor    %edi,%edi
40c4a2:	39 78 08             	cmp    %edi,0x8(%eax)
40c4a5:	74 46                	je     0x40c4ed
40c4a7:	57                   	push   %edi
40c4a8:	ff 15 cc 10 43 00    	call   *0x4310cc
40c4ae:	8b f0                	mov    %eax,%esi
40c4b0:	e8 e5 f8 ff ff       	call   0x40bd9a
40c4b5:	39 70 08             	cmp    %esi,0x8(%eax)
40c4b8:	74 33                	je     0x40c4ed
40c4ba:	81 3b 4d 4f 43 e0    	cmpl   $0xe0434f4d,(%ebx)
40c4c0:	74 2b                	je     0x40c4ed
40c4c2:	81 3b 52 43 43 e0    	cmpl   $0xe0434352,(%ebx)
40c4c8:	74 23                	je     0x40c4ed
40c4ca:	ff 75 24             	push   0x24(%ebp)
40c4cd:	ff 75 20             	push   0x20(%ebp)
40c4d0:	ff 75 18             	push   0x18(%ebp)
40c4d3:	ff 75 14             	push   0x14(%ebp)
40c4d6:	ff 75 10             	push   0x10(%ebp)
40c4d9:	ff 75 0c             	push   0xc(%ebp)
40c4dc:	53                   	push   %ebx
40c4dd:	e8 6a e6 ff ff       	call   0x40ab4c
40c4e2:	83 c4 1c             	add    $0x1c,%esp
40c4e5:	85 c0                	test   %eax,%eax
40c4e7:	0f 85 c1 00 00 00    	jne    0x40c5ae
40c4ed:	8b 45 18             	mov    0x18(%ebp),%eax
40c4f0:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c4f3:	89 7d f0             	mov    %edi,-0x10(%ebp)
40c4f6:	39 78 0c             	cmp    %edi,0xc(%eax)
40c4f9:	0f 86 b4 00 00 00    	jbe    0x40c5b3
40c4ff:	ff 75 20             	push   0x20(%ebp)
40c502:	50                   	push   %eax
40c503:	ff 75 14             	push   0x14(%ebp)
40c506:	8d 45 ec             	lea    -0x14(%ebp),%eax
40c509:	ff 75 1c             	push   0x1c(%ebp)
40c50c:	50                   	push   %eax
40c50d:	8d 45 dc             	lea    -0x24(%ebp),%eax
40c510:	50                   	push   %eax
40c511:	e8 6a e5 ff ff       	call   0x40aa80
40c516:	8b 55 e0             	mov    -0x20(%ebp),%edx
40c519:	83 c4 18             	add    $0x18,%esp
40c51c:	8b 45 dc             	mov    -0x24(%ebp),%eax
40c51f:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c522:	89 55 fc             	mov    %edx,-0x4(%ebp)
40c525:	3b 55 e8             	cmp    -0x18(%ebp),%edx
40c528:	0f 83 80 00 00 00    	jae    0x40c5ae
40c52e:	6b ca 14             	imul   $0x14,%edx,%ecx
40c531:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40c534:	8b 00                	mov    (%eax),%eax
40c536:	8d 7d c8             	lea    -0x38(%ebp),%edi
40c539:	6a 05                	push   $0x5
40c53b:	8b 70 10             	mov    0x10(%eax),%esi
40c53e:	8b 45 1c             	mov    0x1c(%ebp),%eax
40c541:	03 f1                	add    %ecx,%esi
40c543:	59                   	pop    %ecx
40c544:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40c546:	39 45 c8             	cmp    %eax,-0x38(%ebp)
40c549:	7f 4e                	jg     0x40c599
40c54b:	3b 45 cc             	cmp    -0x34(%ebp),%eax
40c54e:	7f 49                	jg     0x40c599
40c550:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40c553:	8b 45 d8             	mov    -0x28(%ebp),%eax
40c556:	c1 e1 04             	shl    $0x4,%ecx
40c559:	83 c0 f0             	add    $0xfffffff0,%eax
40c55c:	03 c1                	add    %ecx,%eax
40c55e:	8b 48 04             	mov    0x4(%eax),%ecx
40c561:	85 c9                	test   %ecx,%ecx
40c563:	74 06                	je     0x40c56b
40c565:	80 79 08 00          	cmpb   $0x0,0x8(%ecx)
40c569:	75 2e                	jne    0x40c599
40c56b:	f6 00 40             	testb  $0x40,(%eax)
40c56e:	75 29                	jne    0x40c599
40c570:	6a 00                	push   $0x0
40c572:	6a 01                	push   $0x1
40c574:	ff 75 24             	push   0x24(%ebp)
40c577:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40c57a:	ff 75 20             	push   0x20(%ebp)
40c57d:	51                   	push   %ecx
40c57e:	6a 00                	push   $0x0
40c580:	50                   	push   %eax
40c581:	ff 75 18             	push   0x18(%ebp)
40c584:	ff 75 14             	push   0x14(%ebp)
40c587:	ff 75 10             	push   0x10(%ebp)
40c58a:	ff 75 0c             	push   0xc(%ebp)
40c58d:	53                   	push   %ebx
40c58e:	e8 cc fa ff ff       	call   0x40c05f
40c593:	8b 55 fc             	mov    -0x4(%ebp),%edx
40c596:	83 c4 30             	add    $0x30,%esp
40c599:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40c59c:	42                   	inc    %edx
40c59d:	8b 45 f4             	mov    -0xc(%ebp),%eax
40c5a0:	83 c1 14             	add    $0x14,%ecx
40c5a3:	89 55 fc             	mov    %edx,-0x4(%ebp)
40c5a6:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40c5a9:	3b 55 e8             	cmp    -0x18(%ebp),%edx
40c5ac:	72 86                	jb     0x40c534
40c5ae:	5f                   	pop    %edi
40c5af:	5e                   	pop    %esi
40c5b0:	5b                   	pop    %ebx
40c5b1:	c9                   	leave
40c5b2:	c3                   	ret
40c5b3:	e8 d9 f8 00 00       	call   0x41be91
40c5b8:	cc                   	int3
40c5b9:	55                   	push   %ebp
40c5ba:	8b ec                	mov    %esp,%ebp
40c5bc:	8b 55 08             	mov    0x8(%ebp),%edx
40c5bf:	53                   	push   %ebx
40c5c0:	56                   	push   %esi
40c5c1:	57                   	push   %edi
40c5c2:	8b 42 04             	mov    0x4(%edx),%eax
40c5c5:	85 c0                	test   %eax,%eax
40c5c7:	74 76                	je     0x40c63f
40c5c9:	8d 48 08             	lea    0x8(%eax),%ecx
40c5cc:	80 39 00             	cmpb   $0x0,(%ecx)
40c5cf:	74 6e                	je     0x40c63f
40c5d1:	f6 02 80             	testb  $0x80,(%edx)
40c5d4:	8b 7d 0c             	mov    0xc(%ebp),%edi
40c5d7:	74 05                	je     0x40c5de
40c5d9:	f6 07 10             	testb  $0x10,(%edi)
40c5dc:	75 61                	jne    0x40c63f
40c5de:	8b 5f 04             	mov    0x4(%edi),%ebx
40c5e1:	33 f6                	xor    %esi,%esi
40c5e3:	3b c3                	cmp    %ebx,%eax
40c5e5:	74 30                	je     0x40c617
40c5e7:	8d 43 08             	lea    0x8(%ebx),%eax
40c5ea:	8a 19                	mov    (%ecx),%bl
40c5ec:	3a 18                	cmp    (%eax),%bl
40c5ee:	75 1a                	jne    0x40c60a
40c5f0:	84 db                	test   %bl,%bl
40c5f2:	74 12                	je     0x40c606
40c5f4:	8a 59 01             	mov    0x1(%ecx),%bl
40c5f7:	3a 58 01             	cmp    0x1(%eax),%bl
40c5fa:	75 0e                	jne    0x40c60a
40c5fc:	83 c1 02             	add    $0x2,%ecx
40c5ff:	83 c0 02             	add    $0x2,%eax
40c602:	84 db                	test   %bl,%bl
40c604:	75 e4                	jne    0x40c5ea
40c606:	8b c6                	mov    %esi,%eax
40c608:	eb 05                	jmp    0x40c60f
40c60a:	1b c0                	sbb    %eax,%eax
40c60c:	83 c8 01             	or     $0x1,%eax
40c60f:	85 c0                	test   %eax,%eax
40c611:	74 04                	je     0x40c617
40c613:	33 c0                	xor    %eax,%eax
40c615:	eb 2b                	jmp    0x40c642
40c617:	f6 07 02             	testb  $0x2,(%edi)
40c61a:	74 05                	je     0x40c621
40c61c:	f6 02 08             	testb  $0x8,(%edx)
40c61f:	74 1a                	je     0x40c63b
40c621:	8b 45 10             	mov    0x10(%ebp),%eax
40c624:	f6 00 01             	testb  $0x1,(%eax)
40c627:	74 05                	je     0x40c62e
40c629:	f6 02 01             	testb  $0x1,(%edx)
40c62c:	74 0d                	je     0x40c63b
40c62e:	f6 00 02             	testb  $0x2,(%eax)
40c631:	74 05                	je     0x40c638
40c633:	f6 02 02             	testb  $0x2,(%edx)
40c636:	74 03                	je     0x40c63b
40c638:	33 f6                	xor    %esi,%esi
40c63a:	46                   	inc    %esi
40c63b:	8b c6                	mov    %esi,%eax
40c63d:	eb 03                	jmp    0x40c642
40c63f:	33 c0                	xor    %eax,%eax
40c641:	40                   	inc    %eax
40c642:	5f                   	pop    %edi
40c643:	5e                   	pop    %esi
40c644:	5b                   	pop    %ebx
40c645:	5d                   	pop    %ebp
40c646:	c3                   	ret
40c647:	55                   	push   %ebp
40c648:	8b ec                	mov    %esp,%ebp
40c64a:	53                   	push   %ebx
40c64b:	56                   	push   %esi
40c64c:	57                   	push   %edi
40c64d:	ff 75 10             	push   0x10(%ebp)
40c650:	e8 c7 05 00 00       	call   0x40cc1c
40c655:	59                   	pop    %ecx
40c656:	e8 3f f7 ff ff       	call   0x40bd9a
40c65b:	8b 4d 18             	mov    0x18(%ebp),%ecx
40c65e:	33 f6                	xor    %esi,%esi
40c660:	8b 55 08             	mov    0x8(%ebp),%edx
40c663:	bb ff ff ff 1f       	mov    $0x1fffffff,%ebx
40c668:	bf 22 05 93 19       	mov    $0x19930522,%edi
40c66d:	39 70 20             	cmp    %esi,0x20(%eax)
40c670:	75 22                	jne    0x40c694
40c672:	81 3a 63 73 6d e0    	cmpl   $0xe06d7363,(%edx)
40c678:	74 1a                	je     0x40c694
40c67a:	81 3a 26 00 00 80    	cmpl   $0x80000026,(%edx)
40c680:	74 12                	je     0x40c694