00401000 <.text>:
401000:	55                   	push   %ebp
401001:	8b ec                	mov    %esp,%ebp
401003:	56                   	push   %esi
401004:	8b f1                	mov    %ecx,%esi
401006:	0f 57 c0             	xorps  %xmm0,%xmm0
401009:	8d 46 04             	lea    0x4(%esi),%eax
40100c:	50                   	push   %eax
40100d:	c7 06 74 f1 40 00    	movl   $0x40f174,(%esi)
401013:	66 0f d6 00          	movq   %xmm0,(%eax)
401017:	8b 45 08             	mov    0x8(%ebp),%eax
40101a:	83 c0 04             	add    $0x4,%eax
40101d:	50                   	push   %eax
40101e:	e8 b6 2c 00 00       	call   0x403cd9
401023:	83 c4 08             	add    $0x8,%esp
401026:	8b c6                	mov    %esi,%eax
401028:	5e                   	pop    %esi
401029:	5d                   	pop    %ebp
40102a:	c2 04 00             	ret    $0x4
40102d:	cc                   	int3
40102e:	cc                   	int3
40102f:	cc                   	int3
401030:	8b 49 04             	mov    0x4(%ecx),%ecx
401033:	b8 20 3d 41 00       	mov    $0x413d20,%eax
401038:	85 c9                	test   %ecx,%ecx
40103a:	0f 45 c1             	cmovne %ecx,%eax
40103d:	c3                   	ret
40103e:	cc                   	int3
40103f:	cc                   	int3
401040:	55                   	push   %ebp
401041:	8b ec                	mov    %esp,%ebp
401043:	56                   	push   %esi
401044:	8b f1                	mov    %ecx,%esi
401046:	8d 46 04             	lea    0x4(%esi),%eax
401049:	c7 06 74 f1 40 00    	movl   $0x40f174,(%esi)
40104f:	50                   	push   %eax
401050:	e8 e7 2c 00 00       	call   0x403d3c
401055:	83 c4 04             	add    $0x4,%esp
401058:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40105c:	74 0b                	je     0x401069
40105e:	6a 0c                	push   $0xc
401060:	56                   	push   %esi
401061:	e8 18 1b 00 00       	call   0x402b7e
401066:	83 c4 08             	add    $0x8,%esp
401069:	8b c6                	mov    %esi,%eax
40106b:	5e                   	pop    %esi
40106c:	5d                   	pop    %ebp
40106d:	c2 04 00             	ret    $0x4
401070:	8d 41 04             	lea    0x4(%ecx),%eax
401073:	c7 01 74 f1 40 00    	movl   $0x40f174,(%ecx)
401079:	50                   	push   %eax
40107a:	e8 bd 2c 00 00       	call   0x403d3c
40107f:	59                   	pop    %ecx
401080:	c3                   	ret
401081:	cc                   	int3
401082:	cc                   	int3
401083:	cc                   	int3
401084:	cc                   	int3
401085:	cc                   	int3
401086:	cc                   	int3
401087:	cc                   	int3
401088:	cc                   	int3
401089:	cc                   	int3
40108a:	cc                   	int3
40108b:	cc                   	int3
40108c:	cc                   	int3
40108d:	cc                   	int3
40108e:	cc                   	int3
40108f:	cc                   	int3
401090:	0f 57 c0             	xorps  %xmm0,%xmm0
401093:	8b c1                	mov    %ecx,%eax
401095:	66 0f d6 41 04       	movq   %xmm0,0x4(%ecx)
40109a:	c7 41 04 34 3d 41 00 	movl   $0x413d34,0x4(%ecx)
4010a1:	c7 01 c8 f1 40 00    	movl   $0x40f1c8,(%ecx)
4010a7:	c3                   	ret
4010a8:	cc                   	int3
4010a9:	cc                   	int3
4010aa:	cc                   	int3
4010ab:	cc                   	int3
4010ac:	cc                   	int3
4010ad:	cc                   	int3
4010ae:	cc                   	int3
4010af:	cc                   	int3
4010b0:	55                   	push   %ebp
4010b1:	8b ec                	mov    %esp,%ebp
4010b3:	83 ec 0c             	sub    $0xc,%esp
4010b6:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4010b9:	e8 d2 ff ff ff       	call   0x401090
4010be:	68 f8 4d 41 00       	push   $0x414df8
4010c3:	8d 45 f4             	lea    -0xc(%ebp),%eax
4010c6:	50                   	push   %eax
4010c7:	e8 8f 2c 00 00       	call   0x403d5b
4010cc:	cc                   	int3
4010cd:	cc                   	int3
4010ce:	cc                   	int3
4010cf:	cc                   	int3
4010d0:	55                   	push   %ebp
4010d1:	8b ec                	mov    %esp,%ebp
4010d3:	56                   	push   %esi
4010d4:	8b f1                	mov    %ecx,%esi
4010d6:	0f 57 c0             	xorps  %xmm0,%xmm0
4010d9:	8d 46 04             	lea    0x4(%esi),%eax
4010dc:	50                   	push   %eax
4010dd:	c7 06 74 f1 40 00    	movl   $0x40f174,(%esi)
4010e3:	66 0f d6 00          	movq   %xmm0,(%eax)
4010e7:	8b 45 08             	mov    0x8(%ebp),%eax
4010ea:	83 c0 04             	add    $0x4,%eax
4010ed:	50                   	push   %eax
4010ee:	e8 e6 2b 00 00       	call   0x403cd9
4010f3:	83 c4 08             	add    $0x8,%esp
4010f6:	c7 06 c8 f1 40 00    	movl   $0x40f1c8,(%esi)
4010fc:	8b c6                	mov    %esi,%eax
4010fe:	5e                   	pop    %esi
4010ff:	5d                   	pop    %ebp
401100:	c2 04 00             	ret    $0x4
401103:	cc                   	int3
401104:	cc                   	int3
401105:	cc                   	int3
401106:	cc                   	int3
401107:	cc                   	int3
401108:	cc                   	int3
401109:	cc                   	int3
40110a:	cc                   	int3
40110b:	cc                   	int3
40110c:	cc                   	int3
40110d:	cc                   	int3
40110e:	cc                   	int3
40110f:	cc                   	int3
401110:	55                   	push   %ebp
401111:	8b ec                	mov    %esp,%ebp
401113:	56                   	push   %esi
401114:	8b f1                	mov    %ecx,%esi
401116:	0f 57 c0             	xorps  %xmm0,%xmm0
401119:	8d 46 04             	lea    0x4(%esi),%eax
40111c:	50                   	push   %eax
40111d:	c7 06 74 f1 40 00    	movl   $0x40f174,(%esi)
401123:	66 0f d6 00          	movq   %xmm0,(%eax)
401127:	8b 45 08             	mov    0x8(%ebp),%eax
40112a:	83 c0 04             	add    $0x4,%eax
40112d:	50                   	push   %eax
40112e:	e8 a6 2b 00 00       	call   0x403cd9
401133:	83 c4 08             	add    $0x8,%esp
401136:	c7 06 80 f1 40 00    	movl   $0x40f180,(%esi)
40113c:	8b c6                	mov    %esi,%eax
40113e:	5e                   	pop    %esi
40113f:	5d                   	pop    %ebp
401140:	c2 04 00             	ret    $0x4
401143:	cc                   	int3
401144:	cc                   	int3
401145:	cc                   	int3
401146:	cc                   	int3
401147:	cc                   	int3
401148:	cc                   	int3
401149:	cc                   	int3
40114a:	cc                   	int3
40114b:	cc                   	int3
40114c:	cc                   	int3
40114d:	cc                   	int3
40114e:	cc                   	int3
40114f:	cc                   	int3
401150:	68 4c 3d 41 00       	push   $0x413d4c
401155:	e8 e4 19 00 00       	call   0x402b3e
40115a:	cc                   	int3
40115b:	cc                   	int3
40115c:	cc                   	int3
40115d:	cc                   	int3
40115e:	cc                   	int3
40115f:	cc                   	int3
401160:	53                   	push   %ebx
401161:	8b dc                	mov    %esp,%ebx
401163:	83 ec 08             	sub    $0x8,%esp
401166:	83 e4 f8             	and    $0xfffffff8,%esp
401169:	83 c4 04             	add    $0x4,%esp
40116c:	55                   	push   %ebp
40116d:	8b 6b 04             	mov    0x4(%ebx),%ebp
401170:	89 6c 24 04          	mov    %ebp,0x4(%esp)
401174:	8b ec                	mov    %esp,%ebp
401176:	6a ff                	push   $0xffffffff
401178:	68 59 ee 40 00       	push   $0x40ee59
40117d:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
401183:	50                   	push   %eax
401184:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40118b:	53                   	push   %ebx
40118c:	83 ec 30             	sub    $0x30,%esp
40118f:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
401196:	0f 57 c0             	xorps  %xmm0,%xmm0
401199:	56                   	push   %esi
40119a:	8b 73 08             	mov    0x8(%ebx),%esi
40119d:	33 c0                	xor    %eax,%eax
40119f:	57                   	push   %edi
4011a0:	0f 11 06             	movups %xmm0,(%esi)
4011a3:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4011aa:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
4011b1:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4011b8:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
4011bf:	66 89 06             	mov    %ax,(%esi)
4011c2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4011c5:	8b 39                	mov    (%ecx),%edi
4011c7:	8b 41 04             	mov    0x4(%ecx),%eax
4011ca:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
4011d1:	89 7d e8             	mov    %edi,-0x18(%ebp)
4011d4:	89 45 dc             	mov    %eax,-0x24(%ebp)
4011d7:	3b f8                	cmp    %eax,%edi
4011d9:	0f 84 ce 00 00 00    	je     0x4012ad
4011df:	90                   	nop
4011e0:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
4011e4:	74 0c                	je     0x4011f2
4011e6:	68 5c 3d 41 00       	push   $0x413d5c
4011eb:	8b ce                	mov    %esi,%ecx
4011ed:	e8 4e 0e 00 00       	call   0x402040
4011f2:	8b d7                	mov    %edi,%edx
4011f4:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
4011f7:	e8 d4 00 00 00       	call   0x4012d0
4011fc:	8b d0                	mov    %eax,%edx
4011fe:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401205:	83 7a 14 08          	cmpl   $0x8,0x14(%edx)
401209:	8b 7a 10             	mov    0x10(%edx),%edi
40120c:	72 02                	jb     0x401210
40120e:	8b 12                	mov    (%edx),%edx
401210:	8b 46 14             	mov    0x14(%esi),%eax
401213:	8b 4e 10             	mov    0x10(%esi),%ecx
401216:	2b c1                	sub    %ecx,%eax
401218:	3b f8                	cmp    %eax,%edi
40121a:	77 38                	ja     0x401254
40121c:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
401220:	8d 04 0f             	lea    (%edi,%ecx,1),%eax
401223:	89 45 e0             	mov    %eax,-0x20(%ebp)
401226:	89 46 10             	mov    %eax,0x10(%esi)
401229:	8b c6                	mov    %esi,%eax
40122b:	89 75 ec             	mov    %esi,-0x14(%ebp)
40122e:	72 05                	jb     0x401235
401230:	8b 06                	mov    (%esi),%eax
401232:	89 45 ec             	mov    %eax,-0x14(%ebp)
401235:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
401238:	8d 04 3f             	lea    (%edi,%edi,1),%eax
40123b:	50                   	push   %eax
40123c:	52                   	push   %edx
40123d:	51                   	push   %ecx
40123e:	e8 0d 42 00 00       	call   0x405450
401243:	8b 45 ec             	mov    -0x14(%ebp),%eax
401246:	83 c4 0c             	add    $0xc,%esp
401249:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40124c:	33 d2                	xor    %edx,%edx
40124e:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
401252:	eb 0d                	jmp    0x401261
401254:	57                   	push   %edi
401255:	52                   	push   %edx
401256:	ff 75 dc             	push   -0x24(%ebp)
401259:	8b ce                	mov    %esi,%ecx
40125b:	57                   	push   %edi
40125c:	e8 bf 11 00 00       	call   0x402420
401261:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
401265:	8b 4d d8             	mov    -0x28(%ebp),%ecx
401268:	83 f9 08             	cmp    $0x8,%ecx
40126b:	72 2e                	jb     0x40129b
40126d:	8b 55 c4             	mov    -0x3c(%ebp),%edx
401270:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
401277:	8b c2                	mov    %edx,%eax
401279:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40127f:	72 10                	jb     0x401291
401281:	8b 50 fc             	mov    -0x4(%eax),%edx
401284:	83 c1 23             	add    $0x23,%ecx
401287:	2b c2                	sub    %edx,%eax
401289:	83 c0 fc             	add    $0xfffffffc,%eax
40128c:	83 f8 1f             	cmp    $0x1f,%eax
40128f:	77 33                	ja     0x4012c4
401291:	51                   	push   %ecx
401292:	52                   	push   %edx
401293:	e8 e6 18 00 00       	call   0x402b7e
401298:	83 c4 08             	add    $0x8,%esp
40129b:	8b 7d e8             	mov    -0x18(%ebp),%edi
40129e:	83 c7 18             	add    $0x18,%edi
4012a1:	89 7d e8             	mov    %edi,-0x18(%ebp)
4012a4:	3b 7d dc             	cmp    -0x24(%ebp),%edi
4012a7:	0f 85 33 ff ff ff    	jne    0x4011e0
4012ad:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4012b0:	8b c6                	mov    %esi,%eax
4012b2:	5f                   	pop    %edi
4012b3:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4012ba:	5e                   	pop    %esi
4012bb:	8b e5                	mov    %ebp,%esp
4012bd:	5d                   	pop    %ebp
4012be:	8b e3                	mov    %ebx,%esp
4012c0:	5b                   	pop    %ebx
4012c1:	c2 04 00             	ret    $0x4
4012c4:	e8 63 4a 00 00       	call   0x405d2c
4012c9:	cc                   	int3
4012ca:	cc                   	int3
4012cb:	cc                   	int3
4012cc:	cc                   	int3
4012cd:	cc                   	int3
4012ce:	cc                   	int3
4012cf:	cc                   	int3
4012d0:	53                   	push   %ebx
4012d1:	8b dc                	mov    %esp,%ebx
4012d3:	83 ec 08             	sub    $0x8,%esp
4012d6:	83 e4 f8             	and    $0xfffffff8,%esp
4012d9:	83 c4 04             	add    $0x4,%esp
4012dc:	55                   	push   %ebp
4012dd:	8b 6b 04             	mov    0x4(%ebx),%ebp
4012e0:	89 6c 24 04          	mov    %ebp,0x4(%esp)
4012e4:	8b ec                	mov    %esp,%ebp
4012e6:	6a ff                	push   $0xffffffff
4012e8:	68 8d ee 40 00       	push   $0x40ee8d
4012ed:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4012f3:	50                   	push   %eax
4012f4:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
4012fb:	53                   	push   %ebx
4012fc:	81 ec 50 01 00 00    	sub    $0x150,%esp
401302:	56                   	push   %esi
401303:	57                   	push   %edi
401304:	8b fa                	mov    %edx,%edi
401306:	89 4d a8             	mov    %ecx,-0x58(%ebp)
401309:	89 7d ac             	mov    %edi,-0x54(%ebp)
40130c:	8b f7                	mov    %edi,%esi
40130e:	89 7d ec             	mov    %edi,-0x14(%ebp)
401311:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
401315:	8b 47 10             	mov    0x10(%edi),%eax
401318:	72 05                	jb     0x40131f
40131a:	8b 37                	mov    (%edi),%esi
40131c:	89 75 ec             	mov    %esi,-0x14(%ebp)
40131f:	85 c0                	test   %eax,%eax
401321:	74 68                	je     0x40138b
401323:	68 00 01 00 00       	push   $0x100
401328:	8d 85 a0 fe ff ff    	lea    -0x160(%ebp),%eax
40132e:	6a 00                	push   $0x0
401330:	50                   	push   %eax
401331:	e8 aa 2c 00 00       	call   0x403fe0
401336:	ba 00 01 00 00       	mov    $0x100,%edx
40133b:	83 c4 0c             	add    $0xc,%esp
40133e:	b9 60 3d 41 00       	mov    $0x413d60,%ecx
401343:	89 55 e8             	mov    %edx,-0x18(%ebp)
401346:	0f b7 01             	movzwl (%ecx),%eax
401349:	66 3b c2             	cmp    %dx,%ax
40134c:	73 62                	jae    0x4013b0
40134e:	0f b6 c0             	movzbl %al,%eax
401351:	83 c1 02             	add    $0x2,%ecx
401354:	c6 84 05 a0 fe ff ff 	movb   $0x1,-0x160(%ebp,%eax,1)
40135b:	01
40135c:	81 f9 66 3d 41 00    	cmp    $0x413d66,%ecx
401362:	75 e2                	jne    0x401346
401364:	8b 47 10             	mov    0x10(%edi),%eax
401367:	8b 55 ec             	mov    -0x14(%ebp),%edx
40136a:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
40136d:	3b d1                	cmp    %ecx,%edx
40136f:	73 1a                	jae    0x40138b
401371:	0f b7 06             	movzwl (%esi),%eax
401374:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
401378:	73 0a                	jae    0x401384
40137a:	80 bc 05 a0 fe ff ff 	cmpb   $0x0,-0x160(%ebp,%eax,1)