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)
401381:	00
401382:	75 26                	jne    0x4013aa
401384:	83 c6 02             	add    $0x2,%esi
401387:	3b f1                	cmp    %ecx,%esi
401389:	72 e6                	jb     0x401371
40138b:	8b 4d a8             	mov    -0x58(%ebp),%ecx
40138e:	57                   	push   %edi
40138f:	e8 ac 0b 00 00       	call   0x401f40
401394:	8b 45 a8             	mov    -0x58(%ebp),%eax
401397:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40139a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4013a1:	5f                   	pop    %edi
4013a2:	5e                   	pop    %esi
4013a3:	8b e5                	mov    %ebp,%esp
4013a5:	5d                   	pop    %ebp
4013a6:	8b e3                	mov    %ebx,%esp
4013a8:	5b                   	pop    %ebx
4013a9:	c3                   	ret
4013aa:	2b f2                	sub    %edx,%esi
4013ac:	d1 fe                	sar    $1,%esi
4013ae:	eb 66                	jmp    0x401416
4013b0:	8b 47 10             	mov    0x10(%edi),%eax
4013b3:	8d 04 46             	lea    (%esi,%eax,2),%eax
4013b6:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4013b9:	39 45 ec             	cmp    %eax,-0x14(%ebp)
4013bc:	73 55                	jae    0x401413
4013be:	c7 45 e8 09 00 00 00 	movl   $0x9,-0x18(%ebp)
4013c5:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%eax,%eax,1)
4013cc:	00 00 00 00
4013d0:	0f b7 06             	movzwl (%esi),%eax
4013d3:	ba 03 00 00 00       	mov    $0x3,%edx
4013d8:	b9 60 3d 41 00       	mov    $0x413d60,%ecx
4013dd:	89 45 e0             	mov    %eax,-0x20(%ebp)
4013e0:	66 39 45 e8          	cmp    %ax,-0x18(%ebp)
4013e4:	0f 84 5a 01 00 00    	je     0x401544
4013ea:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
4013f0:	83 fa 01             	cmp    $0x1,%edx
4013f3:	74 16                	je     0x40140b
4013f5:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
4013f9:	83 c1 02             	add    $0x2,%ecx
4013fc:	4a                   	dec    %edx
4013fd:	66 3b 45 e0          	cmp    -0x20(%ebp),%ax
401401:	75 ed                	jne    0x4013f0
401403:	85 c9                	test   %ecx,%ecx
401405:	0f 85 39 01 00 00    	jne    0x401544
40140b:	83 c6 02             	add    $0x2,%esi
40140e:	3b 75 e4             	cmp    -0x1c(%ebp),%esi
401411:	72 bd                	jb     0x4013d0
401413:	83 ce ff             	or     $0xffffffff,%esi
401416:	83 fe ff             	cmp    $0xffffffff,%esi
401419:	0f 84 6c ff ff ff    	je     0x40138b
40141f:	6a 01                	push   $0x1
401421:	0f 57 c0             	xorps  %xmm0,%xmm0
401424:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
40142b:	68 68 3d 41 00       	push   $0x413d68
401430:	8d 4d c8             	lea    -0x38(%ebp),%ecx
401433:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
40143a:	0f 11 45 c8          	movups %xmm0,-0x38(%ebp)
40143e:	e8 cd 0c 00 00       	call   0x402110
401443:	8b 75 ac             	mov    -0x54(%ebp),%esi
401446:	8b c6                	mov    %esi,%eax
401448:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40144f:	89 75 ec             	mov    %esi,-0x14(%ebp)
401452:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
401456:	8b 4e 10             	mov    0x10(%esi),%ecx
401459:	72 05                	jb     0x401460
40145b:	8b 06                	mov    (%esi),%eax
40145d:	89 45 ec             	mov    %eax,-0x14(%ebp)
401460:	85 c9                	test   %ecx,%ecx
401462:	0f 84 9b 01 00 00    	je     0x401603
401468:	33 ff                	xor    %edi,%edi
40146a:	8b d0                	mov    %eax,%edx
40146c:	66 83 38 22          	cmpw   $0x22,(%eax)
401470:	74 0f                	je     0x401481
401472:	83 f9 01             	cmp    $0x1,%ecx
401475:	74 0c                	je     0x401483
401477:	83 c2 02             	add    $0x2,%edx
40147a:	49                   	dec    %ecx
40147b:	66 83 3a 22          	cmpw   $0x22,(%edx)
40147f:	75 f1                	jne    0x401472
401481:	8b fa                	mov    %edx,%edi
401483:	85 ff                	test   %edi,%edi
401485:	0f 84 78 01 00 00    	je     0x401603
40148b:	2b 7d ec             	sub    -0x14(%ebp),%edi
40148e:	33 c0                	xor    %eax,%eax
401490:	d1 ff                	sar    $1,%edi
401492:	83 ff ff             	cmp    $0xffffffff,%edi
401495:	0f 84 6a 01 00 00    	je     0x401605
40149b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
4014a0:	8b 4e 10             	mov    0x10(%esi),%ecx
4014a3:	0f 57 c0             	xorps  %xmm0,%xmm0
4014a6:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
4014ad:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
4014b4:	0f 11 45 b0          	movups %xmm0,-0x50(%ebp)
4014b8:	3b c8                	cmp    %eax,%ecx
4014ba:	0f 82 70 02 00 00    	jb     0x401730
4014c0:	2b c8                	sub    %eax,%ecx
4014c2:	8b d7                	mov    %edi,%edx
4014c4:	3b cf                	cmp    %edi,%ecx
4014c6:	0f 42 d1             	cmovb  %ecx,%edx
4014c9:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4014cd:	8b ce                	mov    %esi,%ecx
4014cf:	72 02                	jb     0x4014d3
4014d1:	8b 0e                	mov    (%esi),%ecx
4014d3:	8d 04 41             	lea    (%ecx,%eax,2),%eax
4014d6:	52                   	push   %edx
4014d7:	50                   	push   %eax
4014d8:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4014db:	e8 30 0c 00 00       	call   0x402110
4014e0:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4014e4:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4014e7:	83 7d c4 08          	cmpl   $0x8,-0x3c(%ebp)
4014eb:	8b 45 b0             	mov    -0x50(%ebp),%eax
4014ee:	8b 55 d8             	mov    -0x28(%ebp),%edx
4014f1:	0f 43 c8             	cmovae %eax,%ecx
4014f4:	89 45 e0             	mov    %eax,-0x20(%ebp)
4014f7:	8b 45 dc             	mov    -0x24(%ebp),%eax
4014fa:	2b c2                	sub    %edx,%eax
4014fc:	89 55 ec             	mov    %edx,-0x14(%ebp)
4014ff:	8b 55 c0             	mov    -0x40(%ebp),%edx
401502:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
401505:	3b d0                	cmp    %eax,%edx
401507:	77 45                	ja     0x40154e
401509:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40150c:	8d 75 c8             	lea    -0x38(%ebp),%esi
40150f:	83 7d dc 08          	cmpl   $0x8,-0x24(%ebp)
401513:	0f 43 75 c8          	cmovae -0x38(%ebp),%esi
401517:	8d 04 11             	lea    (%ecx,%edx,1),%eax
40151a:	89 45 d8             	mov    %eax,-0x28(%ebp)
40151d:	8d 04 12             	lea    (%edx,%edx,1),%eax
401520:	50                   	push   %eax
401521:	ff 75 e4             	push   -0x1c(%ebp)
401524:	8d 0c 4e             	lea    (%esi,%ecx,2),%ecx
401527:	51                   	push   %ecx
401528:	e8 23 3f 00 00       	call   0x405450
40152d:	8b 45 c0             	mov    -0x40(%ebp),%eax
401530:	83 c4 0c             	add    $0xc,%esp
401533:	03 45 ec             	add    -0x14(%ebp),%eax
401536:	33 c9                	xor    %ecx,%ecx
401538:	66 89 0c 46          	mov    %cx,(%esi,%eax,2)
40153c:	8b 75 ac             	mov    -0x54(%ebp),%esi
40153f:	8b 4d e0             	mov    -0x20(%ebp),%ecx
401542:	eb 1b                	jmp    0x40155f
401544:	2b 75 ec             	sub    -0x14(%ebp),%esi
401547:	d1 fe                	sar    $1,%esi
401549:	e9 c8 fe ff ff       	jmp    0x401416
40154e:	52                   	push   %edx
40154f:	51                   	push   %ecx
401550:	ff 75 e4             	push   -0x1c(%ebp)
401553:	8d 4d c8             	lea    -0x38(%ebp),%ecx
401556:	52                   	push   %edx
401557:	e8 c4 0e 00 00       	call   0x402420
40155c:	8b 4d b0             	mov    -0x50(%ebp),%ecx
40155f:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
401563:	8b 45 c4             	mov    -0x3c(%ebp),%eax
401566:	83 f8 08             	cmp    $0x8,%eax
401569:	72 2f                	jb     0x40159a
40156b:	8d 14 45 02 00 00 00 	lea    0x2(,%eax,2),%edx
401572:	8b c1                	mov    %ecx,%eax
401574:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
40157a:	72 14                	jb     0x401590
40157c:	8b 48 fc             	mov    -0x4(%eax),%ecx
40157f:	83 c2 23             	add    $0x23,%edx
401582:	2b c1                	sub    %ecx,%eax
401584:	83 c0 fc             	add    $0xfffffffc,%eax
401587:	83 f8 1f             	cmp    $0x1f,%eax
40158a:	0f 87 a5 01 00 00    	ja     0x401735
401590:	52                   	push   %edx
401591:	51                   	push   %ecx
401592:	e8 e7 15 00 00       	call   0x402b7e
401597:	83 c4 08             	add    $0x8,%esp
40159a:	68 6c 3d 41 00       	push   $0x413d6c
40159f:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4015a2:	e8 99 0a 00 00       	call   0x402040
4015a7:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)