00401000 <.text>:
401000:	8b 4c 24 04          	mov    0x4(%esp),%ecx
401004:	31 c0                	xor    %eax,%eax
401006:	83 f9 06             	cmp    $0x6,%ecx
401009:	77 07                	ja     0x401012
40100b:	8b 04 8d 50 95 41 00 	mov    0x419550(,%ecx,4),%eax
401012:	c2 04 00             	ret    $0x4
401015:	66 66 2e 0f 1f 84 00 	data16 nopw %cs:0x0(%eax,%eax,1)
40101c:	00 00 00 00
401020:	53                   	push   %ebx
401021:	57                   	push   %edi
401022:	56                   	push   %esi
401023:	81 ec 00 01 00 00    	sub    $0x100,%esp
401029:	8b 84 24 10 01 00 00 	mov    0x110(%esp),%eax
401030:	8b 94 24 18 01 00 00 	mov    0x118(%esp),%edx
401037:	8b 8c 24 14 01 00 00 	mov    0x114(%esp),%ecx
40103e:	be ff ff ff ff       	mov    $0xffffffff,%esi
401043:	85 d2                	test   %edx,%edx
401045:	0f 84 a4 00 00 00    	je     0x4010ef
40104b:	0f 57 c0             	xorps  %xmm0,%xmm0
40104e:	0f 11 44 24 50       	movups %xmm0,0x50(%esp)
401053:	0f 11 44 24 20       	movups %xmm0,0x20(%esp)
401058:	0f 11 84 24 f0 00 00 	movups %xmm0,0xf0(%esp)
40105f:	00
401060:	0f 11 84 24 e0 00 00 	movups %xmm0,0xe0(%esp)
401067:	00
401068:	0f 11 84 24 d0 00 00 	movups %xmm0,0xd0(%esp)
40106f:	00
401070:	0f 11 84 24 c0 00 00 	movups %xmm0,0xc0(%esp)
401077:	00
401078:	0f 11 84 24 b0 00 00 	movups %xmm0,0xb0(%esp)
40107f:	00
401080:	0f 11 84 24 a0 00 00 	movups %xmm0,0xa0(%esp)
401087:	00
401088:	0f 11 84 24 90 00 00 	movups %xmm0,0x90(%esp)
40108f:	00
401090:	0f 11 84 24 80 00 00 	movups %xmm0,0x80(%esp)
401097:	00
401098:	0f 11 44 24 70       	movups %xmm0,0x70(%esp)
40109d:	0f 11 44 24 60       	movups %xmm0,0x60(%esp)
4010a2:	0f 11 44 24 40       	movups %xmm0,0x40(%esp)
4010a7:	0f 11 44 24 30       	movups %xmm0,0x30(%esp)
4010ac:	0f 11 44 24 10       	movups %xmm0,0x10(%esp)
4010b1:	0f 11 04 24          	movups %xmm0,(%esp)
4010b5:	c6 44 24 5c 01       	movb   $0x1,0x5c(%esp)
4010ba:	c6 44 24 2f 01       	movb   $0x1,0x2f(%esp)
4010bf:	8d 3c 12             	lea    (%edx,%edx,1),%edi
4010c2:	83 c7 fe             	add    $0xfffffffe,%edi
4010c5:	66 66 2e 0f 1f 84 00 	data16 nopw %cs:0x0(%eax,%eax,1)
4010cc:	00 00 00 00
4010d0:	0f b7 1c 39          	movzwl (%ecx,%edi,1),%ebx
4010d4:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
4010da:	77 06                	ja     0x4010e2
4010dc:	80 3c 1c 00          	cmpb   $0x0,(%esp,%ebx,1)
4010e0:	75 09                	jne    0x4010eb
4010e2:	85 ff                	test   %edi,%edi
4010e4:	74 09                	je     0x4010ef
4010e6:	83 c7 fe             	add    $0xfffffffe,%edi
4010e9:	eb e5                	jmp    0x4010d0
4010eb:	d1 ff                	sar    $1,%edi
4010ed:	89 fe                	mov    %edi,%esi
4010ef:	39 f2                	cmp    %esi,%edx
4010f1:	0f 42 f2             	cmovb  %edx,%esi
4010f4:	89 08                	mov    %ecx,(%eax)
4010f6:	89 70 04             	mov    %esi,0x4(%eax)
4010f9:	81 c4 00 01 00 00    	add    $0x100,%esp
4010ff:	5e                   	pop    %esi
401100:	5f                   	pop    %edi
401101:	5b                   	pop    %ebx
401102:	c3                   	ret
401103:	66 66 66 66 2e 0f 1f 	data16 data16 data16 nopw %cs:0x0(%eax,%eax,1)
40110a:	84 00 00 00 00 00
401110:	55                   	push   %ebp
401111:	53                   	push   %ebx
401112:	57                   	push   %edi
401113:	56                   	push   %esi
401114:	50                   	push   %eax
401115:	8b 74 24 18          	mov    0x18(%esp),%esi
401119:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
40111d:	80 7f 18 00          	cmpb   $0x0,0x18(%edi)
401121:	74 79                	je     0x40119c
401123:	8b 4f 10             	mov    0x10(%edi),%ecx
401126:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
40112a:	89 f8                	mov    %edi,%eax
40112c:	72 02                	jb     0x401130
40112e:	8b 07                	mov    (%edi),%eax
401130:	83 f9 05             	cmp    $0x5,%ecx
401133:	72 67                	jb     0x40119c
401135:	8d 1c 48             	lea    (%eax,%ecx,2),%ebx
401138:	83 c3 f8             	add    $0xfffffff8,%ebx
40113b:	39 c3                	cmp    %eax,%ebx
40113d:	74 5d                	je     0x40119c
40113f:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
401142:	83 c1 f6             	add    $0xfffffff6,%ecx
401145:	89 0c 24             	mov    %ecx,(%esp)
401148:	89 c2                	mov    %eax,%edx
40114a:	89 d9                	mov    %ebx,%ecx
40114c:	29 d1                	sub    %edx,%ecx
40114e:	d1 f9                	sar    $1,%ecx
401150:	31 ed                	xor    %ebp,%ebp
401152:	66 66 66 66 66 2e 0f 	data16 data16 data16 data16 nopw %cs:0x0(%eax,%eax,1)
401159:	1f 84 00 00 00 00 00
401160:	66 83 3c 2a 25       	cmpw   $0x25,(%edx,%ebp,1)
401165:	74 08                	je     0x40116f
401167:	83 c5 02             	add    $0x2,%ebp
40116a:	49                   	dec    %ecx
40116b:	75 f3                	jne    0x401160
40116d:	eb 2d                	jmp    0x40119c
40116f:	66 83 7c 2a 02 7e    	cmpw   $0x7e,0x2(%edx,%ebp,1)
401175:	75 18                	jne    0x40118f
401177:	66 83 7c 2a 04 64    	cmpw   $0x64,0x4(%edx,%ebp,1)
40117d:	75 10                	jne    0x40118f
40117f:	66 83 7c 2a 06 70    	cmpw   $0x70,0x6(%edx,%ebp,1)
401185:	75 08                	jne    0x40118f
401187:	66 83 7c 2a 08 30    	cmpw   $0x30,0x8(%edx,%ebp,1)
40118d:	74 1f                	je     0x4011ae
40118f:	8d 0c 2a             	lea    (%edx,%ebp,1),%ecx
401192:	01 ea                	add    %ebp,%edx
401194:	83 c2 02             	add    $0x2,%edx
401197:	3b 0c 24             	cmp    (%esp),%ecx
40119a:	75 ae                	jne    0x40114a
40119c:	89 f1                	mov    %esi,%ecx
40119e:	57                   	push   %edi
40119f:	e8 2c 17 00 00       	call   0x4028d0
4011a4:	89 f0                	mov    %esi,%eax
4011a6:	83 c4 04             	add    $0x4,%esp
4011a9:	5e                   	pop    %esi
4011aa:	5f                   	pop    %edi
4011ab:	5b                   	pop    %ebx
4011ac:	5d                   	pop    %ebp
4011ad:	c3                   	ret
4011ae:	29 c2                	sub    %eax,%edx
4011b0:	01 ea                	add    %ebp,%edx
4011b2:	83 fa fe             	cmp    $0xfffffffe,%edx
4011b5:	74 e5                	je     0x40119c
4011b7:	d1 fa                	sar    $1,%edx
4011b9:	89 f9                	mov    %edi,%ecx
4011bb:	ff 74 24 24          	push   0x24(%esp)
4011bf:	ff 74 24 24          	push   0x24(%esp)
4011c3:	6a 05                	push   $0x5
4011c5:	52                   	push   %edx
4011c6:	e8 f5 10 00 00       	call   0x4022c0
4011cb:	eb cf                	jmp    0x40119c
4011cd:	0f 1f 00             	nopl   (%eax)
4011d0:	55                   	push   %ebp
4011d1:	89 e5                	mov    %esp,%ebp
4011d3:	53                   	push   %ebx
4011d4:	57                   	push   %edi
4011d5:	56                   	push   %esi
4011d6:	b8 64 83 00 00       	mov    $0x8364,%eax
4011db:	e8 e0 23 00 00       	call   0x4035c0
4011e0:	8b 75 08             	mov    0x8(%ebp),%esi
4011e3:	89 65 e4             	mov    %esp,-0x1c(%ebp)
4011e6:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)
4011ed:	8d 45 e8             	lea    -0x18(%ebp),%eax
4011f0:	c7 45 ec 90 22 40 00 	movl   $0x402290,-0x14(%ebp)
4011f7:	64 8b 0d 00 00 00 00 	mov    %fs:0x0,%ecx
4011fe:	89 4d e8             	mov    %ecx,-0x18(%ebp)
401201:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
401207:	8d bd 90 fc ff ff    	lea    -0x370(%ebp),%edi
40120d:	68 04 01 00 00       	push   $0x104
401212:	57                   	push   %edi
401213:	6a 00                	push   $0x0
401215:	ff 15 14 90 41 00    	call   *0x419014
40121b:	3d 04 01 00 00       	cmp    $0x104,%eax
401220:	72 2b                	jb     0x40124d
401222:	6a 02                	push   $0x2
401224:	e8 62 54 00 00       	call   0x40668b
401229:	83 c4 04             	add    $0x4,%esp
40122c:	50                   	push   %eax
40122d:	6a 01                	push   $0x1
40122f:	6a 39                	push   $0x39
401231:	68 d0 91 41 00       	push   $0x4191d0
401236:	e8 80 58 00 00       	call   0x406abb
40123b:	83 c4 10             	add    $0x10,%esp
40123e:	c6 46 18 00          	movb   $0x0,0x18(%esi)
401242:	c6 46 34 00          	movb   $0x0,0x34(%esi)
401246:	89 f0                	mov    %esi,%eax
401248:	e9 73 05 00 00       	jmp    0x4017c0
40124d:	c7 84 45 8e fc ff ff 	movl   $0x6d0069,-0x372(%ebp,%eax,2)
401254:	69 00 6d 00
401258:	c7 84 45 8a fc ff ff 	movl   $0x680073,-0x376(%ebp,%eax,2)
40125f:	73 00 68 00
401263:	66 c7 84 45 92 fc ff 	movw   $0x0,-0x36e(%ebp,%eax,2)
40126a:	ff 00 00
40126d:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
401274:	8d 45 b8             	lea    -0x48(%ebp),%eax
401277:	68 0a 92 41 00       	push   $0x41920a
40127c:	57                   	push   %edi
40127d:	50                   	push   %eax
40127e:	e8 28 59 00 00       	call   0x406bab
401283:	83 c4 0c             	add    $0xc,%esp
401286:	85 c0                	test   %eax,%eax
401288:	74 2c                	je     0x4012b6
40128a:	6a 02                	push   $0x2
40128c:	e8 fa 53 00 00       	call   0x40668b
401291:	83 c4 04             	add    $0x4,%esp
401294:	50                   	push   %eax
401295:	6a 01                	push   $0x1
401297:	6a 20                	push   $0x20
401299:	68 22 92 41 00       	push   $0x419222
40129e:	e8 18 58 00 00       	call   0x406abb
4012a3:	83 c4 10             	add    $0x10,%esp
4012a6:	8b 45 08             	mov    0x8(%ebp),%eax
4012a9:	c6 40 18 00          	movb   $0x0,0x18(%eax)
4012ad:	c6 40 34 00          	movb   $0x0,0x34(%eax)
4012b1:	e9 0a 05 00 00       	jmp    0x4017c0
4012b6:	8b 4d b8             	mov    -0x48(%ebp),%ecx
4012b9:	c6 45 d8 00          	movb   $0x0,-0x28(%ebp)
4012bd:	c6 45 b4 00          	movb   $0x0,-0x4c(%ebp)
4012c1:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4012c4:	66 66 66 2e 0f 1f 84 	data16 data16 nopw %cs:0x0(%eax,%eax,1)
4012cb:	00 00 00 00 00
4012d0:	c7 45 f0 04 00 00 00 	movl   $0x4,-0x10(%ebp)
4012d7:	51                   	push   %ecx
4012d8:	68 00 40 00 00       	push   $0x4000
4012dd:	8d 85 90 7c ff ff    	lea    -0x8370(%ebp),%eax
4012e3:	50                   	push   %eax
4012e4:	e8 61 5a 00 00       	call   0x406d4a
4012e9:	83 c4 0c             	add    $0xc,%esp
4012ec:	85 c0                	test   %eax,%eax
4012ee:	0f 84 21 03 00 00    	je     0x401615
4012f4:	8d 85 90 7c ff ff    	lea    -0x8370(%ebp),%eax
4012fa:	50                   	push   %eax
4012fb:	e8 77 5b 00 00       	call   0x406e77
401300:	83 c4 04             	add    $0x4,%esp
401303:	83 f8 07             	cmp    $0x7,%eax
401306:	8b 4d e0             	mov    -0x20(%ebp),%ecx
401309:	72 c5                	jb     0x4012d0
40130b:	66 83 bd 98 7c ff ff 	cmpw   $0x20,-0x8368(%ebp)
401312:	20
401313:	75 bb                	jne    0x4012d0
401315:	66 83 bd 9a 7c ff ff 	cmpw   $0x3d,-0x8366(%ebp)
40131c:	3d
40131d:	75 b1                	jne    0x4012d0
40131f:	66 83 bd 9c 7c ff ff 	cmpw   $0x20,-0x8364(%ebp)
401326:	20
401327:	75 a7                	jne    0x4012d0
401329:	66 83 bd 90 7c ff ff 	cmpw   $0x70,-0x8370(%ebp)
401330:	70
401331:	75 5d                	jne    0x401390
401333:	66 83 bd 92 7c ff ff 	cmpw   $0x61,-0x836e(%ebp)
40133a:	61
40133b:	75 53                	jne    0x401390
40133d:	66 83 bd 94 7c ff ff 	cmpw   $0x74,-0x836c(%ebp)
401344:	74
401345:	75 49                	jne    0x401390
401347:	66 83 bd 96 7c ff ff 	cmpw   $0x68,-0x836a(%ebp)
40134e:	68
40134f:	75 3f                	jne    0x401390
401351:	89 c7                	mov    %eax,%edi
401353:	83 c7 f9             	add    $0xfffffff9,%edi
401356:	0f 84 08 01 00 00    	je     0x401464
40135c:	8d 70 ff             	lea    -0x1(%eax),%esi
40135f:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
401362:	83 c1 f2             	add    $0xfffffff2,%ecx
401365:	d1 f9                	sar    $1,%ecx
401367:	31 d2                	xor    %edx,%edx
401369:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
401370:	66 83 bc 15 9e 7c ff 	cmpw   $0x20,-0x8362(%ebp,%edx,1)
401377:	ff 20
401379:	0f 84 89 01 00 00    	je     0x401508
40137f:	83 c2 02             	add    $0x2,%edx
401382:	49                   	dec    %ecx
401383:	75 eb                	jne    0x401370
401385:	e9 df 00 00 00       	jmp    0x401469
40138a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
401390:	66 83 bd 90 7c ff ff 	cmpw   $0x61,-0x8370(%ebp)
401397:	61
401398:	0f 85 32 ff ff ff    	jne    0x4012d0
40139e:	66 83 bd 92 7c ff ff 	cmpw   $0x72,-0x836e(%ebp)
4013a5:	72
4013a6:	0f 85 24 ff ff ff    	jne    0x4012d0
4013ac:	66 83 bd 94 7c ff ff 	cmpw   $0x67,-0x836c(%ebp)
4013b3:	67
4013b4:	0f 85 16 ff ff ff    	jne    0x4012d0
4013ba:	66 83 bd 96 7c ff ff 	cmpw   $0x73,-0x836a(%ebp)
4013c1:	73
4013c2:	0f 85 08 ff ff ff    	jne    0x4012d0
4013c8:	31 db                	xor    %ebx,%ebx
4013ca:	66 83 bc 45 8e 7c ff 	cmpw   $0xa,-0x8372(%ebp,%eax,2)
4013d1:	ff 0a
4013d3:	0f 94 c1             	sete   %cl
4013d6:	80 7d b4 00          	cmpb   $0x0,-0x4c(%ebp)
4013da:	74 4e                	je     0x40142a
4013dc:	8b 7d b0             	mov    -0x50(%ebp),%edi
4013df:	83 ff 08             	cmp    $0x8,%edi
4013e2:	72 42                	jb     0x401426
4013e4:	88 4d bc             	mov    %cl,-0x44(%ebp)
4013e7:	89 45 dc             	mov    %eax,-0x24(%ebp)
4013ea:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
4013ed:	8d 34 3f             	lea    (%edi,%edi,1),%esi
4013f0:	83 c6 02             	add    $0x2,%esi
4013f3:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
4013f9:	72 1a                	jb     0x401415
4013fb:	8b 51 fc             	mov    -0x4(%ecx),%edx
4013fe:	83 c1 fc             	add    $0xfffffffc,%ecx
401401:	29 d1                	sub    %edx,%ecx
401403:	83 f9 20             	cmp    $0x20,%ecx
401406:	0f 83 da 03 00 00    	jae    0x4017e6
40140c:	01 ff                	add    %edi,%edi
40140e:	83 c7 25             	add    $0x25,%edi
401411:	89 fe                	mov    %edi,%esi
401413:	89 d1                	mov    %edx,%ecx
401415:	56                   	push   %esi
401416:	51                   	push   %ecx
401417:	e8 cf 21 00 00       	call   0x4035eb
40141c:	83 c4 08             	add    $0x8,%esp
40141f:	8b 45 dc             	mov    -0x24(%ebp),%eax
401422:	0f b6 4d bc          	movzbl -0x44(%ebp),%ecx
401426:	c6 45 b4 00          	movb   $0x0,-0x4c(%ebp)
40142a:	88 cb                	mov    %cl,%bl
40142c:	f7 db                	neg    %ebx
40142e:	01 d8                	add    %ebx,%eax
401430:	83 c0 f9             	add    $0xfffffff9,%eax
401433:	0f 57 c0             	xorps  %xmm0,%xmm0
401436:	0f 11 45 9c          	movups %xmm0,-0x64(%ebp)
40143a:	c7 45 b0 00 00 00 00 	movl   $0x0,-0x50(%ebp)
401441:	c7 45 ac 00 00 00 00 	movl   $0x0,-0x54(%ebp)
401448:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
40144b:	50                   	push   %eax
40144c:	8d 85 9e 7c ff ff    	lea    -0x8362(%ebp),%eax
401452:	50                   	push   %eax
401453:	e8 58 1b 00 00       	call   0x402fb0
401458:	c6 45 b4 01          	movb   $0x1,-0x4c(%ebp)
40145c:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40145f:	e9 6c fe ff ff       	jmp    0x4012d0
401464:	be 06 00 00 00       	mov    $0x6,%esi
401469:	31 db                	xor    %ebx,%ebx
40146b:	66 83 bc 75 90 7c ff 	cmpw   $0xa,-0x8370(%ebp,%esi,2)
401472:	ff 0a
401474:	0f 94 c1             	sete   %cl
401477:	80 7d d8 00          	cmpb   $0x0,-0x28(%ebp)
40147b:	74 4f                	je     0x4014cc
40147d:	8b 45 d4             	mov    -0x2c(%ebp),%eax
401480:	83 f8 08             	cmp    $0x8,%eax
401483:	72 3c                	jb     0x4014c1
401485:	88 4d dc             	mov    %cl,-0x24(%ebp)
401488:	8b 4d c0             	mov    -0x40(%ebp),%ecx
40148b:	8d 34 00             	lea    (%eax,%eax,1),%esi
40148e:	83 c6 02             	add    $0x2,%esi
401491:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
401497:	72 1a                	jb     0x4014b3
401499:	8b 51 fc             	mov    -0x4(%ecx),%edx
40149c:	83 c1 fc             	add    $0xfffffffc,%ecx
40149f:	29 d1                	sub    %edx,%ecx
4014a1:	83 f9 20             	cmp    $0x20,%ecx
4014a4:	0f 83 30 03 00 00    	jae    0x4017da
4014aa:	01 c0                	add    %eax,%eax
4014ac:	83 c0 25             	add    $0x25,%eax