46a0d5:	5f                   	pop    %edi
46a0d6:	5e                   	pop    %esi
46a0d7:	5b                   	pop    %ebx
46a0d8:	8b e5                	mov    %ebp,%esp
46a0da:	5d                   	pop    %ebp
46a0db:	51                   	push   %ecx
46a0dc:	c3                   	ret
46a0dd:	50                   	push   %eax
46a0de:	64 ff 35 00 00 00 00 	push   %fs:0x0
46a0e5:	8d 44 24 0c          	lea    0xc(%esp),%eax
46a0e9:	2b 64 24 0c          	sub    0xc(%esp),%esp
46a0ed:	53                   	push   %ebx
46a0ee:	56                   	push   %esi
46a0ef:	57                   	push   %edi
46a0f0:	89 28                	mov    %ebp,(%eax)
46a0f2:	8b e8                	mov    %eax,%ebp
46a0f4:	a1 14 40 4c 00       	mov    0x4c4014,%eax
46a0f9:	33 c5                	xor    %ebp,%eax
46a0fb:	50                   	push   %eax
46a0fc:	ff 75 fc             	push   -0x4(%ebp)
46a0ff:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
46a106:	8d 45 f4             	lea    -0xc(%ebp),%eax
46a109:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
46a10f:	c3                   	ret
46a110:	50                   	push   %eax
46a111:	64 ff 35 00 00 00 00 	push   %fs:0x0
46a118:	8d 44 24 0c          	lea    0xc(%esp),%eax
46a11c:	2b 64 24 0c          	sub    0xc(%esp),%esp
46a120:	53                   	push   %ebx
46a121:	56                   	push   %esi
46a122:	57                   	push   %edi
46a123:	89 28                	mov    %ebp,(%eax)
46a125:	8b e8                	mov    %eax,%ebp
46a127:	a1 14 40 4c 00       	mov    0x4c4014,%eax
46a12c:	33 c5                	xor    %ebp,%eax
46a12e:	50                   	push   %eax
46a12f:	89 65 f0             	mov    %esp,-0x10(%ebp)
46a132:	ff 75 fc             	push   -0x4(%ebp)
46a135:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
46a13c:	8d 45 f4             	lea    -0xc(%ebp),%eax
46a13f:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
46a145:	c3                   	ret
46a146:	55                   	push   %ebp
46a147:	8b ec                	mov    %esp,%ebp
46a149:	83 25 fc 82 4c 00 00 	andl   $0x0,0x4c82fc
46a150:	83 ec 24             	sub    $0x24,%esp
46a153:	83 0d 1c 40 4c 00 01 	orl    $0x1,0x4c401c
46a15a:	6a 0a                	push   $0xa
46a15c:	ff 15 1c e2 49 00    	call   *0x49e21c
46a162:	85 c0                	test   %eax,%eax
46a164:	0f 84 ac 01 00 00    	je     0x46a316
46a16a:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
46a16e:	33 c0                	xor    %eax,%eax
46a170:	53                   	push   %ebx
46a171:	56                   	push   %esi
46a172:	57                   	push   %edi
46a173:	33 c9                	xor    %ecx,%ecx
46a175:	8d 7d dc             	lea    -0x24(%ebp),%edi
46a178:	53                   	push   %ebx
46a179:	0f a2                	cpuid
46a17b:	8b f3                	mov    %ebx,%esi
46a17d:	5b                   	pop    %ebx
46a17e:	90                   	nop
46a17f:	89 07                	mov    %eax,(%edi)
46a181:	89 77 04             	mov    %esi,0x4(%edi)
46a184:	89 4f 08             	mov    %ecx,0x8(%edi)
46a187:	33 c9                	xor    %ecx,%ecx
46a189:	89 57 0c             	mov    %edx,0xc(%edi)
46a18c:	8b 45 dc             	mov    -0x24(%ebp),%eax
46a18f:	8b 7d e0             	mov    -0x20(%ebp),%edi
46a192:	89 45 f4             	mov    %eax,-0xc(%ebp)
46a195:	81 f7 47 65 6e 75    	xor    $0x756e6547,%edi
46a19b:	8b 45 e8             	mov    -0x18(%ebp),%eax
46a19e:	35 69 6e 65 49       	xor    $0x49656e69,%eax
46a1a3:	89 45 fc             	mov    %eax,-0x4(%ebp)
46a1a6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46a1a9:	35 6e 74 65 6c       	xor    $0x6c65746e,%eax
46a1ae:	89 45 f8             	mov    %eax,-0x8(%ebp)
46a1b1:	33 c0                	xor    %eax,%eax
46a1b3:	40                   	inc    %eax
46a1b4:	53                   	push   %ebx
46a1b5:	0f a2                	cpuid
46a1b7:	8b f3                	mov    %ebx,%esi
46a1b9:	5b                   	pop    %ebx
46a1ba:	90                   	nop
46a1bb:	8d 5d dc             	lea    -0x24(%ebp),%ebx
46a1be:	89 03                	mov    %eax,(%ebx)
46a1c0:	8b 45 fc             	mov    -0x4(%ebp),%eax
46a1c3:	0b 45 f8             	or     -0x8(%ebp),%eax
46a1c6:	0b c7                	or     %edi,%eax
46a1c8:	89 73 04             	mov    %esi,0x4(%ebx)
46a1cb:	89 4b 08             	mov    %ecx,0x8(%ebx)
46a1ce:	89 53 0c             	mov    %edx,0xc(%ebx)
46a1d1:	75 43                	jne    0x46a216
46a1d3:	8b 45 dc             	mov    -0x24(%ebp),%eax
46a1d6:	25 f0 3f ff 0f       	and    $0xfff3ff0,%eax
46a1db:	3d c0 06 01 00       	cmp    $0x106c0,%eax
46a1e0:	74 23                	je     0x46a205
46a1e2:	3d 60 06 02 00       	cmp    $0x20660,%eax
46a1e7:	74 1c                	je     0x46a205
46a1e9:	3d 70 06 02 00       	cmp    $0x20670,%eax
46a1ee:	74 15                	je     0x46a205
46a1f0:	3d 50 06 03 00       	cmp    $0x30650,%eax
46a1f5:	74 0e                	je     0x46a205
46a1f7:	3d 60 06 03 00       	cmp    $0x30660,%eax
46a1fc:	74 07                	je     0x46a205
46a1fe:	3d 70 06 03 00       	cmp    $0x30670,%eax
46a203:	75 11                	jne    0x46a216
46a205:	8b 3d 00 83 4c 00    	mov    0x4c8300,%edi
46a20b:	83 cf 01             	or     $0x1,%edi
46a20e:	89 3d 00 83 4c 00    	mov    %edi,0x4c8300
46a214:	eb 06                	jmp    0x46a21c
46a216:	8b 3d 00 83 4c 00    	mov    0x4c8300,%edi
46a21c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
46a21f:	6a 07                	push   $0x7
46a221:	58                   	pop    %eax
46a222:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46a225:	39 45 f4             	cmp    %eax,-0xc(%ebp)
46a228:	7c 30                	jl     0x46a25a
46a22a:	33 c9                	xor    %ecx,%ecx
46a22c:	53                   	push   %ebx
46a22d:	0f a2                	cpuid
46a22f:	8b f3                	mov    %ebx,%esi
46a231:	5b                   	pop    %ebx
46a232:	90                   	nop
46a233:	8d 5d dc             	lea    -0x24(%ebp),%ebx
46a236:	89 03                	mov    %eax,(%ebx)
46a238:	89 73 04             	mov    %esi,0x4(%ebx)
46a23b:	89 4b 08             	mov    %ecx,0x8(%ebx)
46a23e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46a241:	89 53 0c             	mov    %edx,0xc(%ebx)
46a244:	8b 5d e0             	mov    -0x20(%ebp),%ebx
46a247:	f7 c3 00 02 00 00    	test   $0x200,%ebx
46a24d:	74 0e                	je     0x46a25d
46a24f:	83 cf 02             	or     $0x2,%edi
46a252:	89 3d 00 83 4c 00    	mov    %edi,0x4c8300
46a258:	eb 03                	jmp    0x46a25d
46a25a:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a25d:	a1 1c 40 4c 00       	mov    0x4c401c,%eax
46a262:	83 c8 02             	or     $0x2,%eax
46a265:	c7 05 fc 82 4c 00 01 	movl   $0x1,0x4c82fc
46a26c:	00 00 00
46a26f:	a3 1c 40 4c 00       	mov    %eax,0x4c401c
46a274:	f7 c1 00 00 10 00    	test   $0x100000,%ecx
46a27a:	0f 84 93 00 00 00    	je     0x46a313
46a280:	83 c8 04             	or     $0x4,%eax
46a283:	c7 05 fc 82 4c 00 02 	movl   $0x2,0x4c82fc
46a28a:	00 00 00
46a28d:	a3 1c 40 4c 00       	mov    %eax,0x4c401c
46a292:	f7 c1 00 00 00 08    	test   $0x8000000,%ecx
46a298:	74 79                	je     0x46a313
46a29a:	f7 c1 00 00 00 10    	test   $0x10000000,%ecx
46a2a0:	74 71                	je     0x46a313
46a2a2:	33 c9                	xor    %ecx,%ecx
46a2a4:	0f 01 d0             	xgetbv
46a2a7:	89 45 ec             	mov    %eax,-0x14(%ebp)
46a2aa:	89 55 f0             	mov    %edx,-0x10(%ebp)
46a2ad:	8b 45 ec             	mov    -0x14(%ebp),%eax
46a2b0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46a2b3:	6a 06                	push   $0x6
46a2b5:	5e                   	pop    %esi
46a2b6:	23 c6                	and    %esi,%eax
46a2b8:	3b c6                	cmp    %esi,%eax
46a2ba:	75 57                	jne    0x46a313
46a2bc:	a1 1c 40 4c 00       	mov    0x4c401c,%eax
46a2c1:	83 c8 08             	or     $0x8,%eax
46a2c4:	c7 05 fc 82 4c 00 03 	movl   $0x3,0x4c82fc
46a2cb:	00 00 00
46a2ce:	a3 1c 40 4c 00       	mov    %eax,0x4c401c
46a2d3:	f6 c3 20             	test   $0x20,%bl
46a2d6:	74 3b                	je     0x46a313
46a2d8:	83 c8 20             	or     $0x20,%eax
46a2db:	c7 05 fc 82 4c 00 05 	movl   $0x5,0x4c82fc
46a2e2:	00 00 00
46a2e5:	a3 1c 40 4c 00       	mov    %eax,0x4c401c
46a2ea:	b8 00 00 03 d0       	mov    $0xd0030000,%eax
46a2ef:	23 d8                	and    %eax,%ebx
46a2f1:	3b d8                	cmp    %eax,%ebx
46a2f3:	75 1e                	jne    0x46a313
46a2f5:	8b 45 ec             	mov    -0x14(%ebp),%eax
46a2f8:	ba e0 00 00 00       	mov    $0xe0,%edx
46a2fd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46a300:	23 c2                	and    %edx,%eax
46a302:	3b c2                	cmp    %edx,%eax
46a304:	75 0d                	jne    0x46a313
46a306:	83 0d 1c 40 4c 00 40 	orl    $0x40,0x4c401c
46a30d:	89 35 fc 82 4c 00    	mov    %esi,0x4c82fc
46a313:	5f                   	pop    %edi
46a314:	5e                   	pop    %esi
46a315:	5b                   	pop    %ebx
46a316:	33 c0                	xor    %eax,%eax
46a318:	c9                   	leave
46a319:	c3                   	ret
46a31a:	cc                   	int3
46a31b:	cc                   	int3
46a31c:	cc                   	int3
46a31d:	cc                   	int3
46a31e:	cc                   	int3
46a31f:	cc                   	int3
46a320:	8b 44 24 08          	mov    0x8(%esp),%eax
46a324:	8b 4c 24 10          	mov    0x10(%esp),%ecx
46a328:	0b c8                	or     %eax,%ecx
46a32a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
46a32e:	75 09                	jne    0x46a339
46a330:	8b 44 24 04          	mov    0x4(%esp),%eax
46a334:	f7 e1                	mul    %ecx
46a336:	c2 10 00             	ret    $0x10
46a339:	53                   	push   %ebx
46a33a:	f7 e1                	mul    %ecx
46a33c:	8b d8                	mov    %eax,%ebx
46a33e:	8b 44 24 08          	mov    0x8(%esp),%eax
46a342:	f7 64 24 14          	mull   0x14(%esp)
46a346:	03 d8                	add    %eax,%ebx
46a348:	8b 44 24 08          	mov    0x8(%esp),%eax
46a34c:	f7 e1                	mul    %ecx
46a34e:	03 d3                	add    %ebx,%edx
46a350:	5b                   	pop    %ebx
46a351:	c2 10 00             	ret    $0x10
46a354:	cc                   	int3
46a355:	cc                   	int3
46a356:	cc                   	int3
46a357:	cc                   	int3
46a358:	cc                   	int3
46a359:	cc                   	int3
46a35a:	cc                   	int3
46a35b:	cc                   	int3
46a35c:	cc                   	int3
46a35d:	cc                   	int3
46a35e:	cc                   	int3
46a35f:	cc                   	int3
46a360:	53                   	push   %ebx
46a361:	56                   	push   %esi
46a362:	8b 44 24 18          	mov    0x18(%esp),%eax
46a366:	0b c0                	or     %eax,%eax
46a368:	75 18                	jne    0x46a382
46a36a:	8b 4c 24 14          	mov    0x14(%esp),%ecx
46a36e:	8b 44 24 10          	mov    0x10(%esp),%eax
46a372:	33 d2                	xor    %edx,%edx
46a374:	f7 f1                	div    %ecx
46a376:	8b d8                	mov    %eax,%ebx
46a378:	8b 44 24 0c          	mov    0xc(%esp),%eax
46a37c:	f7 f1                	div    %ecx
46a37e:	8b d3                	mov    %ebx,%edx
46a380:	eb 41                	jmp    0x46a3c3
46a382:	8b c8                	mov    %eax,%ecx
46a384:	8b 5c 24 14          	mov    0x14(%esp),%ebx
46a388:	8b 54 24 10          	mov    0x10(%esp),%edx
46a38c:	8b 44 24 0c          	mov    0xc(%esp),%eax
46a390:	d1 e9                	shr    $1,%ecx
46a392:	d1 db                	rcr    $1,%ebx
46a394:	d1 ea                	shr    $1,%edx
46a396:	d1 d8                	rcr    $1,%eax
46a398:	0b c9                	or     %ecx,%ecx
46a39a:	75 f4                	jne    0x46a390
46a39c:	f7 f3                	div    %ebx
46a39e:	8b f0                	mov    %eax,%esi
46a3a0:	f7 64 24 18          	mull   0x18(%esp)
46a3a4:	8b c8                	mov    %eax,%ecx
46a3a6:	8b 44 24 14          	mov    0x14(%esp),%eax
46a3aa:	f7 e6                	mul    %esi
46a3ac:	03 d1                	add    %ecx,%edx
46a3ae:	72 0e                	jb     0x46a3be
46a3b0:	3b 54 24 10          	cmp    0x10(%esp),%edx
46a3b4:	77 08                	ja     0x46a3be
46a3b6:	72 07                	jb     0x46a3bf
46a3b8:	3b 44 24 0c          	cmp    0xc(%esp),%eax
46a3bc:	76 01                	jbe    0x46a3bf
46a3be:	4e                   	dec    %esi
46a3bf:	33 d2                	xor    %edx,%edx
46a3c1:	8b c6                	mov    %esi,%eax
46a3c3:	5e                   	pop    %esi
46a3c4:	5b                   	pop    %ebx
46a3c5:	c2 10 00             	ret    $0x10
46a3c8:	cc                   	int3
46a3c9:	cc                   	int3
46a3ca:	cc                   	int3
46a3cb:	cc                   	int3
46a3cc:	cc                   	int3
46a3cd:	cc                   	int3
46a3ce:	cc                   	int3
46a3cf:	cc                   	int3
46a3d0:	51                   	push   %ecx
46a3d1:	8d 4c 24 08          	lea    0x8(%esp),%ecx
46a3d5:	2b c8                	sub    %eax,%ecx
46a3d7:	83 e1 0f             	and    $0xf,%ecx
46a3da:	03 c1                	add    %ecx,%eax
46a3dc:	1b c9                	sbb    %ecx,%ecx
46a3de:	0b c1                	or     %ecx,%eax
46a3e0:	59                   	pop    %ecx
46a3e1:	e9 ba 03 00 00       	jmp    0x46a7a0
46a3e6:	51                   	push   %ecx
46a3e7:	8d 4c 24 08          	lea    0x8(%esp),%ecx
46a3eb:	2b c8                	sub    %eax,%ecx
46a3ed:	83 e1 07             	and    $0x7,%ecx
46a3f0:	03 c1                	add    %ecx,%eax
46a3f2:	1b c9                	sbb    %ecx,%ecx
46a3f4:	0b c1                	or     %ecx,%eax
46a3f6:	59                   	pop    %ecx
46a3f7:	e9 a4 03 00 00       	jmp    0x46a7a0
46a3fc:	55                   	push   %ebp
46a3fd:	8b ec                	mov    %esp,%ebp
46a3ff:	83 ec 14             	sub    $0x14,%esp
46a402:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
46a406:	8d 45 f4             	lea    -0xc(%ebp),%eax
46a409:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
46a40d:	50                   	push   %eax
46a40e:	ff 15 24 e2 49 00    	call   *0x49e224
46a414:	8b 45 f8             	mov    -0x8(%ebp),%eax
46a417:	33 45 f4             	xor    -0xc(%ebp),%eax
46a41a:	89 45 fc             	mov    %eax,-0x4(%ebp)
46a41d:	ff 15 b4 e1 49 00    	call   *0x49e1b4
46a423:	31 45 fc             	xor    %eax,-0x4(%ebp)
46a426:	ff 15 84 e1 49 00    	call   *0x49e184
46a42c:	31 45 fc             	xor    %eax,-0x4(%ebp)
46a42f:	8d 45 ec             	lea    -0x14(%ebp),%eax
46a432:	50                   	push   %eax
46a433:	ff 15 20 e2 49 00    	call   *0x49e220
46a439:	8b 45 f0             	mov    -0x10(%ebp),%eax
46a43c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
46a43f:	33 45 ec             	xor    -0x14(%ebp),%eax
46a442:	33 45 fc             	xor    -0x4(%ebp),%eax
46a445:	33 c1                	xor    %ecx,%eax
46a447:	c9                   	leave
46a448:	c3                   	ret
46a449:	8b 0d 14 40 4c 00    	mov    0x4c4014,%ecx
46a44f:	56                   	push   %esi
46a450:	57                   	push   %edi
46a451:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
46a456:	be 00 00 ff ff       	mov    $0xffff0000,%esi
46a45b:	3b cf                	cmp    %edi,%ecx
46a45d:	74 04                	je     0x46a463
46a45f:	85 ce                	test   %ecx,%esi
46a461:	75 26                	jne    0x46a489
46a463:	e8 94 ff ff ff       	call   0x46a3fc
46a468:	8b c8                	mov    %eax,%ecx
46a46a:	3b cf                	cmp    %edi,%ecx
46a46c:	75 07                	jne    0x46a475
46a46e:	b9 4f e6 40 bb       	mov    $0xbb40e64f,%ecx
46a473:	eb 0e                	jmp    0x46a483
46a475:	85 ce                	test   %ecx,%esi
46a477:	75 0a                	jne    0x46a483
46a479:	0d 11 47 00 00       	or     $0x4711,%eax
46a47e:	c1 e0 10             	shl    $0x10,%eax
46a481:	0b c8                	or     %eax,%ecx
46a483:	89 0d 14 40 4c 00    	mov    %ecx,0x4c4014
46a489:	f7 d1                	not    %ecx
46a48b:	5f                   	pop    %edi
46a48c:	89 0d 18 40 4c 00    	mov    %ecx,0x4c4018
46a492:	5e                   	pop    %esi
46a493:	c3                   	ret