00401000 <.text>:
401000:	3b 0d 04 f0 41 00    	cmp    0x41f004,%ecx
401006:	75 02                	jne    0x40100a
401008:	f3 c3                	repz ret
40100a:	e9 cf 02 00 00       	jmp    0x4012de
40100f:	cc                   	int3
401010:	83 3d b4 2e de 02 00 	cmpl   $0x0,0x2de2eb4
401017:	0f 84 8b 06 00 00    	je     0x4016a8
40101d:	83 ec 08             	sub    $0x8,%esp
401020:	0f ae 5c 24 04       	stmxcsr 0x4(%esp)
401025:	8b 44 24 04          	mov    0x4(%esp),%eax
401029:	25 80 1f 00 00       	and    $0x1f80,%eax
40102e:	3d 80 1f 00 00       	cmp    $0x1f80,%eax
401033:	75 0f                	jne    0x401044
401035:	d9 3c 24             	fnstcw (%esp)
401038:	66 8b 04 24          	mov    (%esp),%ax
40103c:	66 83 e0 7f          	and    $0x7f,%ax
401040:	66 83 f8 7f          	cmp    $0x7f,%ax
401044:	8d 64 24 08          	lea    0x8(%esp),%esp
401048:	0f 85 5a 06 00 00    	jne    0x4016a8
40104e:	eb 00                	jmp    0x401050
401050:	f3 0f 7e 44 24 04    	movq   0x4(%esp),%xmm0
401056:	66 0f 28 15 a0 d1 41 	movapd 0x41d1a0,%xmm2
40105d:	00
40105e:	66 0f 28 c8          	movapd %xmm0,%xmm1
401062:	66 0f 28 f8          	movapd %xmm0,%xmm7
401066:	66 0f 73 d0 34       	psrlq  $0x34,%xmm0
40106b:	66 0f 7e c0          	movd   %xmm0,%eax
40106f:	66 0f 54 05 c0 d1 41 	andpd  0x41d1c0,%xmm0
401076:	00
401077:	66 0f fa d0          	psubd  %xmm0,%xmm2
40107b:	66 0f d3 ca          	psrlq  %xmm2,%xmm1
40107f:	a9 00 08 00 00       	test   $0x800,%eax
401084:	74 4c                	je     0x4010d2
401086:	3d ff 0b 00 00       	cmp    $0xbff,%eax
40108b:	7c 7d                	jl     0x40110a
40108d:	66 0f f3 ca          	psllq  %xmm2,%xmm1
401091:	3d 32 0c 00 00       	cmp    $0xc32,%eax
401096:	7f 0b                	jg     0x4010a3
401098:	66 0f d6 4c 24 04    	movq   %xmm1,0x4(%esp)
40109e:	dd 44 24 04          	fldl   0x4(%esp)
4010a2:	c3                   	ret
4010a3:	66 0f 2e ff          	ucomisd %xmm7,%xmm7
4010a7:	7b 24                	jnp    0x4010cd
4010a9:	ba ec 03 00 00       	mov    $0x3ec,%edx
4010ae:	83 ec 10             	sub    $0x10,%esp
4010b1:	89 54 24 0c          	mov    %edx,0xc(%esp)
4010b5:	8b d4                	mov    %esp,%edx
4010b7:	83 c2 14             	add    $0x14,%edx
4010ba:	89 54 24 08          	mov    %edx,0x8(%esp)
4010be:	89 54 24 04          	mov    %edx,0x4(%esp)
4010c2:	89 14 24             	mov    %edx,(%esp)
4010c5:	e8 1a 03 00 00       	call   0x4013e4
4010ca:	83 c4 10             	add    $0x10,%esp
4010cd:	dd 44 24 04          	fldl   0x4(%esp)
4010d1:	c3                   	ret
4010d2:	f3 0f 7e 44 24 04    	movq   0x4(%esp),%xmm0
4010d8:	66 0f f3 ca          	psllq  %xmm2,%xmm1
4010dc:	66 0f 28 d8          	movapd %xmm0,%xmm3
4010e0:	66 0f c2 c1 06       	cmpnlepd %xmm1,%xmm0
4010e5:	3d ff 03 00 00       	cmp    $0x3ff,%eax
4010ea:	7c 25                	jl     0x401111
4010ec:	3d 32 04 00 00       	cmp    $0x432,%eax
4010f1:	7f b0                	jg     0x4010a3
4010f3:	66 0f 54 05 90 d1 41 	andpd  0x41d190,%xmm0
4010fa:	00
4010fb:	f2 0f 58 c8          	addsd  %xmm0,%xmm1
4010ff:	66 0f d6 4c 24 04    	movq   %xmm1,0x4(%esp)
401105:	dd 44 24 04          	fldl   0x4(%esp)
401109:	c3                   	ret
40110a:	dd 05 d0 d1 41 00    	fldl   0x41d1d0
401110:	c3                   	ret
401111:	66 0f c2 1d b0 d1 41 	cmpnlepd 0x41d1b0,%xmm3
401118:	00 06
40111a:	66 0f 54 1d 90 d1 41 	andpd  0x41d190,%xmm3
401121:	00
401122:	66 0f d6 5c 24 04    	movq   %xmm3,0x4(%esp)
401128:	dd 44 24 04          	fldl   0x4(%esp)
40112c:	c3                   	ret
40112d:	8b ff                	mov    %edi,%edi
40112f:	55                   	push   %ebp
401130:	8b ec                	mov    %esp,%ebp
401132:	83 3d 88 06 43 00 01 	cmpl   $0x1,0x430688
401139:	75 05                	jne    0x401140
40113b:	e8 70 0b 00 00       	call   0x401cb0
401140:	ff 75 08             	push   0x8(%ebp)
401143:	e8 bd 09 00 00       	call   0x401b05
401148:	68 ff 00 00 00       	push   $0xff
40114d:	e8 ff 06 00 00       	call   0x401851
401152:	59                   	pop    %ecx
401153:	59                   	pop    %ecx
401154:	5d                   	pop    %ebp
401155:	c3                   	ret
401156:	6a 58                	push   $0x58
401158:	68 f0 e5 41 00       	push   $0x41e5f0
40115d:	e8 1e 1a 00 00       	call   0x402b80
401162:	33 f6                	xor    %esi,%esi
401164:	89 75 fc             	mov    %esi,-0x4(%ebp)
401167:	8d 45 98             	lea    -0x68(%ebp),%eax
40116a:	50                   	push   %eax
40116b:	ff 15 64 d0 41 00    	call   *0x41d064
401171:	6a fe                	push   $0xfffffffe
401173:	5f                   	pop    %edi
401174:	89 7d fc             	mov    %edi,-0x4(%ebp)
401177:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40117c:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
401183:	75 38                	jne    0x4011bd
401185:	a1 3c 00 40 00       	mov    0x40003c,%eax
40118a:	81 b8 00 00 40 00 50 	cmpl   $0x4550,0x400000(%eax)
401191:	45 00 00
401194:	75 27                	jne    0x4011bd
401196:	b9 0b 01 00 00       	mov    $0x10b,%ecx
40119b:	66 39 88 18 00 40 00 	cmp    %cx,0x400018(%eax)
4011a2:	75 19                	jne    0x4011bd
4011a4:	83 b8 74 00 40 00 0e 	cmpl   $0xe,0x400074(%eax)
4011ab:	76 10                	jbe    0x4011bd
4011ad:	33 c9                	xor    %ecx,%ecx
4011af:	39 b0 e8 00 40 00    	cmp    %esi,0x4000e8(%eax)
4011b5:	0f 95 c1             	setne  %cl
4011b8:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4011bb:	eb 03                	jmp    0x4011c0
4011bd:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4011c0:	33 db                	xor    %ebx,%ebx
4011c2:	43                   	inc    %ebx
4011c3:	53                   	push   %ebx
4011c4:	e8 87 19 00 00       	call   0x402b50
4011c9:	59                   	pop    %ecx
4011ca:	85 c0                	test   %eax,%eax
4011cc:	75 08                	jne    0x4011d6
4011ce:	6a 1c                	push   $0x1c
4011d0:	e8 58 ff ff ff       	call   0x40112d
4011d5:	59                   	pop    %ecx
4011d6:	e8 e8 17 00 00       	call   0x4029c3
4011db:	85 c0                	test   %eax,%eax
4011dd:	75 08                	jne    0x4011e7
4011df:	6a 10                	push   $0x10
4011e1:	e8 47 ff ff ff       	call   0x40112d
4011e6:	59                   	pop    %ecx
4011e7:	e8 7b 13 00 00       	call   0x402567
4011ec:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4011ef:	e8 1f 11 00 00       	call   0x402313
4011f4:	85 c0                	test   %eax,%eax
4011f6:	7d 08                	jge    0x401200
4011f8:	6a 1b                	push   $0x1b
4011fa:	e8 fe 05 00 00       	call   0x4017fd
4011ff:	59                   	pop    %ecx
401200:	ff 15 60 d0 41 00    	call   *0x41d060
401206:	a3 c0 2e de 02       	mov    %eax,0x2de2ec0
40120b:	e8 cc 0f 00 00       	call   0x4021dc
401210:	a3 80 06 43 00       	mov    %eax,0x430680
401215:	e8 07 0f 00 00       	call   0x402121
40121a:	85 c0                	test   %eax,%eax
40121c:	7d 08                	jge    0x401226
40121e:	6a 08                	push   $0x8
401220:	e8 d8 05 00 00       	call   0x4017fd
401225:	59                   	pop    %ecx
401226:	e8 7e 0c 00 00       	call   0x401ea9
40122b:	85 c0                	test   %eax,%eax
40122d:	7d 08                	jge    0x401237
40122f:	6a 09                	push   $0x9
401231:	e8 c7 05 00 00       	call   0x4017fd
401236:	59                   	pop    %ecx
401237:	53                   	push   %ebx
401238:	e8 7f 06 00 00       	call   0x4018bc
40123d:	59                   	pop    %ecx
40123e:	3b c6                	cmp    %esi,%eax
401240:	74 07                	je     0x401249
401242:	50                   	push   %eax
401243:	e8 b5 05 00 00       	call   0x4017fd
401248:	59                   	pop    %ecx
401249:	e8 fc 0b 00 00       	call   0x401e4a
40124e:	84 5d c4             	test   %bl,-0x3c(%ebp)
401251:	74 06                	je     0x401259
401253:	0f b7 4d c8          	movzwl -0x38(%ebp),%ecx
401257:	eb 03                	jmp    0x40125c
401259:	6a 0a                	push   $0xa
40125b:	59                   	pop    %ecx
40125c:	51                   	push   %ecx
40125d:	50                   	push   %eax
40125e:	56                   	push   %esi
40125f:	68 00 00 40 00       	push   $0x400000
401264:	e8 b7 b5 01 00       	call   0x41c820
401269:	89 45 e0             	mov    %eax,-0x20(%ebp)
40126c:	39 75 e4             	cmp    %esi,-0x1c(%ebp)
40126f:	75 06                	jne    0x401277
401271:	50                   	push   %eax
401272:	e8 f6 07 00 00       	call   0x401a6d
401277:	e8 1d 08 00 00       	call   0x401a99
40127c:	89 7d fc             	mov    %edi,-0x4(%ebp)
40127f:	eb 35                	jmp    0x4012b6
401281:	8b 45 ec             	mov    -0x14(%ebp),%eax
401284:	8b 08                	mov    (%eax),%ecx
401286:	8b 09                	mov    (%ecx),%ecx
401288:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40128b:	50                   	push   %eax
40128c:	51                   	push   %ecx
40128d:	e8 58 0a 00 00       	call   0x401cea
401292:	59                   	pop    %ecx
401293:	59                   	pop    %ecx
401294:	c3                   	ret
401295:	8b 65 e8             	mov    -0x18(%ebp),%esp
401298:	8b 45 dc             	mov    -0x24(%ebp),%eax
40129b:	89 45 e0             	mov    %eax,-0x20(%ebp)
40129e:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
4012a2:	75 06                	jne    0x4012aa
4012a4:	50                   	push   %eax
4012a5:	e8 d9 07 00 00       	call   0x401a83
4012aa:	e8 f9 07 00 00       	call   0x401aa8
4012af:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4012b6:	8b 45 e0             	mov    -0x20(%ebp),%eax
4012b9:	eb 13                	jmp    0x4012ce
4012bb:	33 c0                	xor    %eax,%eax
4012bd:	40                   	inc    %eax
4012be:	c3                   	ret
4012bf:	8b 65 e8             	mov    -0x18(%ebp),%esp
4012c2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4012c9:	b8 ff 00 00 00       	mov    $0xff,%eax
4012ce:	e8 f2 18 00 00       	call   0x402bc5
4012d3:	c3                   	ret
4012d4:	e8 93 1a 00 00       	call   0x402d6c
4012d9:	e9 78 fe ff ff       	jmp    0x401156
4012de:	8b ff                	mov    %edi,%edi
4012e0:	55                   	push   %ebp
4012e1:	8b ec                	mov    %esp,%ebp
4012e3:	81 ec 28 03 00 00    	sub    $0x328,%esp
4012e9:	a3 98 07 43 00       	mov    %eax,0x430798
4012ee:	89 0d 94 07 43 00    	mov    %ecx,0x430794
4012f4:	89 15 90 07 43 00    	mov    %edx,0x430790
4012fa:	89 1d 8c 07 43 00    	mov    %ebx,0x43078c
401300:	89 35 88 07 43 00    	mov    %esi,0x430788
401306:	89 3d 84 07 43 00    	mov    %edi,0x430784
40130c:	66 8c 15 b0 07 43 00 	data16 mov %ss,0x4307b0
401313:	66 8c 0d a4 07 43 00 	data16 mov %cs,0x4307a4
40131a:	66 8c 1d 80 07 43 00 	data16 mov %ds,0x430780
401321:	66 8c 05 7c 07 43 00 	data16 mov %es,0x43077c
401328:	66 8c 25 78 07 43 00 	data16 mov %fs,0x430778
40132f:	66 8c 2d 74 07 43 00 	data16 mov %gs,0x430774
401336:	9c                   	pushf
401337:	8f 05 a8 07 43 00    	pop    0x4307a8
40133d:	8b 45 00             	mov    0x0(%ebp),%eax
401340:	a3 9c 07 43 00       	mov    %eax,0x43079c
401345:	8b 45 04             	mov    0x4(%ebp),%eax
401348:	a3 a0 07 43 00       	mov    %eax,0x4307a0
40134d:	8d 45 08             	lea    0x8(%ebp),%eax
401350:	a3 ac 07 43 00       	mov    %eax,0x4307ac
401355:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40135b:	c7 05 e8 06 43 00 01 	movl   $0x10001,0x4306e8
401362:	00 01 00
401365:	a1 a0 07 43 00       	mov    0x4307a0,%eax
40136a:	a3 9c 06 43 00       	mov    %eax,0x43069c
40136f:	c7 05 90 06 43 00 09 	movl   $0xc0000409,0x430690
401376:	04 00 c0
401379:	c7 05 94 06 43 00 01 	movl   $0x1,0x430694
401380:	00 00 00
401383:	a1 04 f0 41 00       	mov    0x41f004,%eax
401388:	89 85 d8 fc ff ff    	mov    %eax,-0x328(%ebp)
40138e:	a1 08 f0 41 00       	mov    0x41f008,%eax
401393:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
401399:	ff 15 78 d0 41 00    	call   *0x41d078
40139f:	a3 e0 06 43 00       	mov    %eax,0x4306e0
4013a4:	6a 01                	push   $0x1
4013a6:	e8 57 1a 00 00       	call   0x402e02
4013ab:	59                   	pop    %ecx
4013ac:	6a 00                	push   $0x0
4013ae:	ff 15 74 d0 41 00    	call   *0x41d074
4013b4:	68 d8 d1 41 00       	push   $0x41d1d8
4013b9:	ff 15 70 d0 41 00    	call   *0x41d070
4013bf:	83 3d e0 06 43 00 00 	cmpl   $0x0,0x4306e0
4013c6:	75 08                	jne    0x4013d0
4013c8:	6a 01                	push   $0x1
4013ca:	e8 33 1a 00 00       	call   0x402e02
4013cf:	59                   	pop    %ecx
4013d0:	68 09 04 00 c0       	push   $0xc0000409
4013d5:	ff 15 6c d0 41 00    	call   *0x41d06c
4013db:	50                   	push   %eax
4013dc:	ff 15 68 d0 41 00    	call   *0x41d068
4013e2:	c9                   	leave
4013e3:	c3                   	ret
4013e4:	8b ff                	mov    %edi,%edi
4013e6:	55                   	push   %ebp
4013e7:	8b ec                	mov    %esp,%ebp
4013e9:	83 ec 28             	sub    $0x28,%esp
4013ec:	33 c0                	xor    %eax,%eax
4013ee:	53                   	push   %ebx
4013ef:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4013f2:	56                   	push   %esi
4013f3:	8b 75 10             	mov    0x10(%ebp),%esi
4013f6:	57                   	push   %edi
4013f7:	8b 7d 08             	mov    0x8(%ebp),%edi
4013fa:	88 45 f8             	mov    %al,-0x8(%ebp)
4013fd:	88 45 f9             	mov    %al,-0x7(%ebp)
401400:	88 45 fa             	mov    %al,-0x6(%ebp)
401403:	88 45 fb             	mov    %al,-0x5(%ebp)
401406:	88 45 fc             	mov    %al,-0x4(%ebp)
401409:	88 45 fd             	mov    %al,-0x3(%ebp)
40140c:	88 45 fe             	mov    %al,-0x2(%ebp)
40140f:	88 45 ff             	mov    %al,-0x1(%ebp)
401412:	39 05 b4 09 43 00    	cmp    %eax,0x4309b4
401418:	74 0e                	je     0x401428
40141a:	ff 35 bc 2e de 02    	push   0x2de2ebc
401420:	e8 09 12 00 00       	call   0x40262e
401425:	59                   	pop    %ecx
401426:	eb 05                	jmp    0x40142d
401428:	b8 5f 2e 40 00       	mov    $0x402e5f,%eax
40142d:	8b 4d 14             	mov    0x14(%ebp),%ecx
401430:	ba a6 00 00 00       	mov    $0xa6,%edx
401435:	3b ca                	cmp    %edx,%ecx
401437:	0f 8f 74 01 00 00    	jg     0x4015b1
40143d:	0f 84 5b 01 00 00    	je     0x40159e
401443:	83 f9 19             	cmp    $0x19,%ecx
401446:	0f 8f f8 00 00 00    	jg     0x401544
40144c:	0f 84 e9 00 00 00    	je     0x40153b
401452:	8b d1                	mov    %ecx,%edx
401454:	6a 02                	push   $0x2
401456:	59                   	pop    %ecx
401457:	2b d1                	sub    %ecx,%edx
401459:	0f 84 cd 00 00 00    	je     0x40152c
40145f:	4a                   	dec    %edx
401460:	0f 84 bd 00 00 00    	je     0x401523
401466:	83 ea 05             	sub    $0x5,%edx
401469:	0f 84 a5 00 00 00    	je     0x401514
40146f:	4a                   	dec    %edx
401470:	0f 84 86 00 00 00    	je     0x4014fc
401476:	83 ea 05             	sub    $0x5,%edx
401479:	74 71                	je     0x4014ec
40147b:	4a                   	dec    %edx
40147c:	74 45                	je     0x4014c3
40147e:	83 ea 09             	sub    $0x9,%edx
401481:	0f 85 d4 01 00 00    	jne    0x40165b
401487:	c7 45 d8 03 00 00 00 	movl   $0x3,-0x28(%ebp)
40148e:	c7 45 dc a8 d2 41 00 	movl   $0x41d2a8,-0x24(%ebp)
401495:	dd 07                	fldl   (%edi)
401497:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40149a:	dd 5d e0             	fstpl  -0x20(%ebp)
40149d:	51                   	push   %ecx
40149e:	dd 03                	fldl   (%ebx)
4014a0:	dd 5d e8             	fstpl  -0x18(%ebp)
4014a3:	dd 06                	fldl   (%esi)
4014a5:	dd 5d f0             	fstpl  -0x10(%ebp)
4014a8:	ff d0                	call   *%eax
4014aa:	59                   	pop    %ecx
4014ab:	85 c0                	test   %eax,%eax
4014ad:	0f 85 a3 01 00 00    	jne    0x401656
4014b3:	e8 94 19 00 00       	call   0x402e4c
4014b8:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4014be:	e9 93 01 00 00       	jmp    0x401656
4014c3:	c7 45 dc a4 d2 41 00 	movl   $0x41d2a4,-0x24(%ebp)
4014ca:	dd 07                	fldl   (%edi)
4014cc:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4014cf:	dd 5d e0             	fstpl  -0x20(%ebp)