40a338:	e8 83 10 00 00       	call   0x40b3c0
40a33d:	8b 45 04             	mov    0x4(%ebp),%eax
40a340:	83 c4 0c             	add    $0xc,%esp
40a343:	c7 45 a8 15 00 00 40 	movl   $0x40000015,-0x58(%ebp)
40a34a:	c7 45 ac 01 00 00 00 	movl   $0x1,-0x54(%ebp)
40a351:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40a354:	ff 15 94 11 43 00    	call   *0x431194
40a35a:	8b f0                	mov    %eax,%esi
40a35c:	8d 45 a8             	lea    -0x58(%ebp),%eax
40a35f:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a362:	8d 85 dc fc ff ff    	lea    -0x324(%ebp),%eax
40a368:	6a 00                	push   $0x0
40a36a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a36d:	ff 15 9c 11 43 00    	call   *0x43119c
40a373:	8d 45 f8             	lea    -0x8(%ebp),%eax
40a376:	50                   	push   %eax
40a377:	ff 15 98 11 43 00    	call   *0x431198
40a37d:	85 c0                	test   %eax,%eax
40a37f:	75 0d                	jne    0x40a38e
40a381:	83 fe 01             	cmp    $0x1,%esi
40a384:	74 08                	je     0x40a38e
40a386:	6a 03                	push   $0x3
40a388:	e8 dd 00 00 00       	call   0x40a46a
40a38d:	59                   	pop    %ecx
40a38e:	5e                   	pop    %esi
40a38f:	c9                   	leave
40a390:	c3                   	ret
40a391:	55                   	push   %ebp
40a392:	8b ec                	mov    %esp,%ebp
40a394:	83 ec 44             	sub    $0x44,%esp
40a397:	6a 44                	push   $0x44
40a399:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a39c:	6a 00                	push   $0x0
40a39e:	50                   	push   %eax
40a39f:	e8 1c 10 00 00       	call   0x40b3c0
40a3a4:	83 c4 0c             	add    $0xc,%esp
40a3a7:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a3aa:	50                   	push   %eax
40a3ab:	ff 15 a0 11 43 00    	call   *0x4311a0
40a3b1:	f6 45 e8 01          	testb  $0x1,-0x18(%ebp)
40a3b5:	0f b7 4d ec          	movzwl -0x14(%ebp),%ecx
40a3b9:	6a 0a                	push   $0xa
40a3bb:	58                   	pop    %eax
40a3bc:	0f 45 c1             	cmovne %ecx,%eax
40a3bf:	c9                   	leave
40a3c0:	c3                   	ret
40a3c1:	e9 24 b6 ff ff       	jmp    0x4059ea
40a3c6:	6a 00                	push   $0x0
40a3c8:	ff 15 a8 11 43 00    	call   *0x4311a8
40a3ce:	85 c0                	test   %eax,%eax
40a3d0:	74 33                	je     0x40a405
40a3d2:	b9 4d 5a 00 00       	mov    $0x5a4d,%ecx
40a3d7:	66 39 08             	cmp    %cx,(%eax)
40a3da:	75 29                	jne    0x40a405
40a3dc:	8b 48 3c             	mov    0x3c(%eax),%ecx
40a3df:	03 c8                	add    %eax,%ecx
40a3e1:	81 39 50 45 00 00    	cmpl   $0x4550,(%ecx)
40a3e7:	75 1c                	jne    0x40a405
40a3e9:	b8 0b 01 00 00       	mov    $0x10b,%eax
40a3ee:	66 39 41 18          	cmp    %ax,0x18(%ecx)
40a3f2:	75 11                	jne    0x40a405
40a3f4:	83 79 74 0e          	cmpl   $0xe,0x74(%ecx)
40a3f8:	76 0b                	jbe    0x40a405
40a3fa:	83 b9 e8 00 00 00 00 	cmpl   $0x0,0xe8(%ecx)
40a401:	0f 95 c0             	setne  %al
40a404:	c3                   	ret
40a405:	32 c0                	xor    %al,%al
40a407:	c3                   	ret
40a408:	68 14 a4 40 00       	push   $0x40a414
40a40d:	ff 15 9c 11 43 00    	call   *0x43119c
40a413:	c3                   	ret
40a414:	55                   	push   %ebp
40a415:	8b ec                	mov    %esp,%ebp
40a417:	56                   	push   %esi
40a418:	57                   	push   %edi
40a419:	8b 7d 08             	mov    0x8(%ebp),%edi
40a41c:	8b 37                	mov    (%edi),%esi
40a41e:	81 3e 63 73 6d e0    	cmpl   $0xe06d7363,(%esi)
40a424:	75 25                	jne    0x40a44b
40a426:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
40a42a:	75 1f                	jne    0x40a44b
40a42c:	8b 46 14             	mov    0x14(%esi),%eax
40a42f:	3d 20 05 93 19       	cmp    $0x19930520,%eax
40a434:	74 1d                	je     0x40a453
40a436:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40a43b:	74 16                	je     0x40a453
40a43d:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40a442:	74 0f                	je     0x40a453
40a444:	3d 00 40 99 01       	cmp    $0x1994000,%eax
40a449:	74 08                	je     0x40a453
40a44b:	5f                   	pop    %edi
40a44c:	33 c0                	xor    %eax,%eax
40a44e:	5e                   	pop    %esi
40a44f:	5d                   	pop    %ebp
40a450:	c2 04 00             	ret    $0x4
40a453:	e8 0f 19 00 00       	call   0x40bd67
40a458:	89 30                	mov    %esi,(%eax)
40a45a:	8b 77 04             	mov    0x4(%edi),%esi
40a45d:	e8 0e 19 00 00       	call   0x40bd70
40a462:	89 30                	mov    %esi,(%eax)
40a464:	e8 ec 19 01 00       	call   0x41be55
40a469:	cc                   	int3
40a46a:	83 25 a8 f2 43 00 00 	andl   $0x0,0x43f2a8
40a471:	c3                   	ret
40a472:	53                   	push   %ebx
40a473:	56                   	push   %esi
40a474:	be c4 a5 43 00       	mov    $0x43a5c4,%esi
40a479:	bb c4 a5 43 00       	mov    $0x43a5c4,%ebx
40a47e:	3b f3                	cmp    %ebx,%esi
40a480:	73 19                	jae    0x40a49b
40a482:	57                   	push   %edi
40a483:	8b 3e                	mov    (%esi),%edi
40a485:	85 ff                	test   %edi,%edi
40a487:	74 0a                	je     0x40a493
40a489:	8b cf                	mov    %edi,%ecx
40a48b:	ff 15 68 12 43 00    	call   *0x431268
40a491:	ff d7                	call   *%edi
40a493:	83 c6 04             	add    $0x4,%esi
40a496:	3b f3                	cmp    %ebx,%esi
40a498:	72 e9                	jb     0x40a483
40a49a:	5f                   	pop    %edi
40a49b:	5e                   	pop    %esi
40a49c:	5b                   	pop    %ebx
40a49d:	c3                   	ret
40a49e:	53                   	push   %ebx
40a49f:	56                   	push   %esi
40a4a0:	be cc a5 43 00       	mov    $0x43a5cc,%esi
40a4a5:	bb cc a5 43 00       	mov    $0x43a5cc,%ebx
40a4aa:	3b f3                	cmp    %ebx,%esi
40a4ac:	73 19                	jae    0x40a4c7
40a4ae:	57                   	push   %edi
40a4af:	8b 3e                	mov    (%esi),%edi
40a4b1:	85 ff                	test   %edi,%edi
40a4b3:	74 0a                	je     0x40a4bf
40a4b5:	8b cf                	mov    %edi,%ecx
40a4b7:	ff 15 68 12 43 00    	call   *0x431268
40a4bd:	ff d7                	call   *%edi
40a4bf:	83 c6 04             	add    $0x4,%esi
40a4c2:	3b f3                	cmp    %ebx,%esi
40a4c4:	72 e9                	jb     0x40a4af
40a4c6:	5f                   	pop    %edi
40a4c7:	5e                   	pop    %esi
40a4c8:	5b                   	pop    %ebx
40a4c9:	c3                   	ret
40a4ca:	cc                   	int3
40a4cb:	cc                   	int3
40a4cc:	cc                   	int3
40a4cd:	cc                   	int3
40a4ce:	cc                   	int3
40a4cf:	cc                   	int3
40a4d0:	68 f0 b9 40 00       	push   $0x40b9f0
40a4d5:	64 ff 35 00 00 00 00 	push   %fs:0x0
40a4dc:	8b 44 24 10          	mov    0x10(%esp),%eax
40a4e0:	89 6c 24 10          	mov    %ebp,0x10(%esp)
40a4e4:	8d 6c 24 10          	lea    0x10(%esp),%ebp
40a4e8:	2b e0                	sub    %eax,%esp
40a4ea:	53                   	push   %ebx
40a4eb:	56                   	push   %esi
40a4ec:	57                   	push   %edi
40a4ed:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
40a4f2:	31 45 fc             	xor    %eax,-0x4(%ebp)
40a4f5:	33 c5                	xor    %ebp,%eax
40a4f7:	50                   	push   %eax
40a4f8:	89 65 e8             	mov    %esp,-0x18(%ebp)
40a4fb:	ff 75 f8             	push   -0x8(%ebp)
40a4fe:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a501:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a508:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a50b:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a50e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a514:	c3                   	ret
40a515:	55                   	push   %ebp
40a516:	8b ec                	mov    %esp,%ebp
40a518:	6a 00                	push   $0x0
40a51a:	ff 15 9c 11 43 00    	call   *0x43119c
40a520:	ff 75 08             	push   0x8(%ebp)
40a523:	ff 15 98 11 43 00    	call   *0x431198
40a529:	68 09 04 00 c0       	push   $0xc0000409
40a52e:	ff 15 dc 10 43 00    	call   *0x4310dc
40a534:	50                   	push   %eax
40a535:	ff 15 ac 11 43 00    	call   *0x4311ac
40a53b:	5d                   	pop    %ebp
40a53c:	c3                   	ret
40a53d:	55                   	push   %ebp
40a53e:	8b ec                	mov    %esp,%ebp
40a540:	81 ec 24 03 00 00    	sub    $0x324,%esp
40a546:	6a 17                	push   $0x17
40a548:	ff 15 a4 11 43 00    	call   *0x4311a4
40a54e:	85 c0                	test   %eax,%eax
40a550:	74 05                	je     0x40a557
40a552:	6a 02                	push   $0x2
40a554:	59                   	pop    %ecx
40a555:	cd 29                	int    $0x29
40a557:	a3 b0 f3 43 00       	mov    %eax,0x43f3b0
40a55c:	89 0d ac f3 43 00    	mov    %ecx,0x43f3ac
40a562:	89 15 a8 f3 43 00    	mov    %edx,0x43f3a8
40a568:	89 1d a4 f3 43 00    	mov    %ebx,0x43f3a4
40a56e:	89 35 a0 f3 43 00    	mov    %esi,0x43f3a0
40a574:	89 3d 9c f3 43 00    	mov    %edi,0x43f39c
40a57a:	66 8c 15 c8 f3 43 00 	data16 mov %ss,0x43f3c8
40a581:	66 8c 0d bc f3 43 00 	data16 mov %cs,0x43f3bc
40a588:	66 8c 1d 98 f3 43 00 	data16 mov %ds,0x43f398
40a58f:	66 8c 05 94 f3 43 00 	data16 mov %es,0x43f394
40a596:	66 8c 25 90 f3 43 00 	data16 mov %fs,0x43f390
40a59d:	66 8c 2d 8c f3 43 00 	data16 mov %gs,0x43f38c
40a5a4:	9c                   	pushf
40a5a5:	8f 05 c0 f3 43 00    	pop    0x43f3c0
40a5ab:	8b 45 00             	mov    0x0(%ebp),%eax
40a5ae:	a3 b4 f3 43 00       	mov    %eax,0x43f3b4
40a5b3:	8b 45 04             	mov    0x4(%ebp),%eax
40a5b6:	a3 b8 f3 43 00       	mov    %eax,0x43f3b8
40a5bb:	8d 45 08             	lea    0x8(%ebp),%eax
40a5be:	a3 c4 f3 43 00       	mov    %eax,0x43f3c4
40a5c3:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
40a5c9:	c7 05 00 f3 43 00 01 	movl   $0x10001,0x43f300
40a5d0:	00 01 00
40a5d3:	a1 b8 f3 43 00       	mov    0x43f3b8,%eax
40a5d8:	a3 bc f2 43 00       	mov    %eax,0x43f2bc
40a5dd:	c7 05 b0 f2 43 00 09 	movl   $0xc0000409,0x43f2b0
40a5e4:	04 00 c0
40a5e7:	c7 05 b4 f2 43 00 01 	movl   $0x1,0x43f2b4
40a5ee:	00 00 00
40a5f1:	c7 05 c0 f2 43 00 01 	movl   $0x1,0x43f2c0
40a5f8:	00 00 00
40a5fb:	6a 04                	push   $0x4
40a5fd:	58                   	pop    %eax
40a5fe:	6b c0 00             	imul   $0x0,%eax,%eax
40a601:	c7 80 c4 f2 43 00 02 	movl   $0x2,0x43f2c4(%eax)
40a608:	00 00 00
40a60b:	6a 04                	push   $0x4
40a60d:	58                   	pop    %eax
40a60e:	6b c0 00             	imul   $0x0,%eax,%eax
40a611:	8b 0d c0 d0 43 00    	mov    0x43d0c0,%ecx
40a617:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
40a61b:	6a 04                	push   $0x4
40a61d:	58                   	pop    %eax
40a61e:	c1 e0 00             	shl    $0x0,%eax
40a621:	8b 0d 00 d1 43 00    	mov    0x43d100,%ecx
40a627:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
40a62b:	68 0c 18 43 00       	push   $0x43180c
40a630:	e8 e0 fe ff ff       	call   0x40a515
40a635:	90                   	nop
40a636:	c9                   	leave
40a637:	c3                   	ret
40a638:	55                   	push   %ebp
40a639:	8b ec                	mov    %esp,%ebp
40a63b:	6a 08                	push   $0x8
40a63d:	e8 03 00 00 00       	call   0x40a645
40a642:	90                   	nop
40a643:	5d                   	pop    %ebp
40a644:	c3                   	ret
40a645:	55                   	push   %ebp
40a646:	8b ec                	mov    %esp,%ebp
40a648:	81 ec 1c 03 00 00    	sub    $0x31c,%esp
40a64e:	6a 17                	push   $0x17
40a650:	ff 15 a4 11 43 00    	call   *0x4311a4
40a656:	85 c0                	test   %eax,%eax
40a658:	74 05                	je     0x40a65f
40a65a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a65d:	cd 29                	int    $0x29
40a65f:	a3 b0 f3 43 00       	mov    %eax,0x43f3b0
40a664:	89 0d ac f3 43 00    	mov    %ecx,0x43f3ac
40a66a:	89 15 a8 f3 43 00    	mov    %edx,0x43f3a8
40a670:	89 1d a4 f3 43 00    	mov    %ebx,0x43f3a4
40a676:	89 35 a0 f3 43 00    	mov    %esi,0x43f3a0
40a67c:	89 3d 9c f3 43 00    	mov    %edi,0x43f39c
40a682:	66 8c 15 c8 f3 43 00 	data16 mov %ss,0x43f3c8
40a689:	66 8c 0d bc f3 43 00 	data16 mov %cs,0x43f3bc
40a690:	66 8c 1d 98 f3 43 00 	data16 mov %ds,0x43f398
40a697:	66 8c 05 94 f3 43 00 	data16 mov %es,0x43f394
40a69e:	66 8c 25 90 f3 43 00 	data16 mov %fs,0x43f390
40a6a5:	66 8c 2d 8c f3 43 00 	data16 mov %gs,0x43f38c
40a6ac:	9c                   	pushf
40a6ad:	8f 05 c0 f3 43 00    	pop    0x43f3c0
40a6b3:	8b 45 00             	mov    0x0(%ebp),%eax
40a6b6:	a3 b4 f3 43 00       	mov    %eax,0x43f3b4
40a6bb:	8b 45 04             	mov    0x4(%ebp),%eax
40a6be:	a3 b8 f3 43 00       	mov    %eax,0x43f3b8
40a6c3:	8d 45 08             	lea    0x8(%ebp),%eax
40a6c6:	a3 c4 f3 43 00       	mov    %eax,0x43f3c4
40a6cb:	8b 85 e4 fc ff ff    	mov    -0x31c(%ebp),%eax
40a6d1:	a1 b8 f3 43 00       	mov    0x43f3b8,%eax
40a6d6:	a3 bc f2 43 00       	mov    %eax,0x43f2bc
40a6db:	c7 05 b0 f2 43 00 09 	movl   $0xc0000409,0x43f2b0
40a6e2:	04 00 c0
40a6e5:	c7 05 b4 f2 43 00 01 	movl   $0x1,0x43f2b4
40a6ec:	00 00 00
40a6ef:	c7 05 c0 f2 43 00 01 	movl   $0x1,0x43f2c0
40a6f6:	00 00 00
40a6f9:	6a 04                	push   $0x4
40a6fb:	58                   	pop    %eax
40a6fc:	6b c0 00             	imul   $0x0,%eax,%eax
40a6ff:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a702:	89 88 c4 f2 43 00    	mov    %ecx,0x43f2c4(%eax)
40a708:	68 0c 18 43 00       	push   $0x43180c
40a70d:	e8 03 fe ff ff       	call   0x40a515
40a712:	90                   	nop
40a713:	c9                   	leave
40a714:	c3                   	ret
40a715:	55                   	push   %ebp
40a716:	8b ec                	mov    %esp,%ebp
40a718:	83 25 d0 f5 43 00 00 	andl   $0x0,0x43f5d0
40a71f:	83 ec 28             	sub    $0x28,%esp
40a722:	83 0d 10 d1 43 00 01 	orl    $0x1,0x43d110
40a729:	6a 0a                	push   $0xa
40a72b:	ff 15 a4 11 43 00    	call   *0x4311a4
40a731:	85 c0                	test   %eax,%eax
40a733:	0f 84 05 03 00 00    	je     0x40aa3e
40a739:	53                   	push   %ebx
40a73a:	56                   	push   %esi
40a73b:	57                   	push   %edi
40a73c:	33 c0                	xor    %eax,%eax
40a73e:	8d 7d d8             	lea    -0x28(%ebp),%edi
40a741:	33 c9                	xor    %ecx,%ecx
40a743:	53                   	push   %ebx
40a744:	0f a2                	cpuid
40a746:	8b f3                	mov    %ebx,%esi
40a748:	5b                   	pop    %ebx
40a749:	90                   	nop
40a74a:	89 07                	mov    %eax,(%edi)
40a74c:	89 77 04             	mov    %esi,0x4(%edi)
40a74f:	89 4f 08             	mov    %ecx,0x8(%edi)
40a752:	33 c9                	xor    %ecx,%ecx
40a754:	89 57 0c             	mov    %edx,0xc(%edi)
40a757:	8b 45 d8             	mov    -0x28(%ebp),%eax
40a75a:	8b 7d dc             	mov    -0x24(%ebp),%edi
40a75d:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a760:	81 f7 47 65 6e 75    	xor    $0x756e6547,%edi
40a766:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40a769:	35 69 6e 65 49       	xor    $0x49656e69,%eax
40a76e:	89 45 e8             	mov    %eax,-0x18(%ebp)
40a771:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a774:	35 6e 74 65 6c       	xor    $0x6c65746e,%eax
40a779:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a77c:	33 c0                	xor    %eax,%eax
40a77e:	40                   	inc    %eax
40a77f:	53                   	push   %ebx
40a780:	0f a2                	cpuid
40a782:	8b f3                	mov    %ebx,%esi
40a784:	5b                   	pop    %ebx
40a785:	90                   	nop
40a786:	8d 5d d8             	lea    -0x28(%ebp),%ebx
40a789:	89 03                	mov    %eax,(%ebx)
40a78b:	8b 45 e8             	mov    -0x18(%ebp),%eax
40a78e:	0b 45 ec             	or     -0x14(%ebp),%eax
40a791:	0b c7                	or     %edi,%eax
40a793:	89 73 04             	mov    %esi,0x4(%ebx)
40a796:	89 4b 08             	mov    %ecx,0x8(%ebx)
40a799:	89 53 0c             	mov    %edx,0xc(%ebx)
40a79c:	75 39                	jne    0x40a7d7