401201:	50                   	push   %eax
401202:	ff 15 e4 b0 44 00    	call   *0x44b0e4
401208:	c3                   	ret
401209:	55                   	push   %ebp
40120a:	8b ec                	mov    %esp,%ebp
40120c:	51                   	push   %ecx
40120d:	51                   	push   %ecx
40120e:	56                   	push   %esi
40120f:	57                   	push   %edi
401210:	33 ff                	xor    %edi,%edi
401212:	8d 45 fc             	lea    -0x4(%ebp),%eax
401215:	57                   	push   %edi
401216:	68 6c b5 44 00       	push   $0x44b56c
40121b:	50                   	push   %eax
40121c:	89 7d fc             	mov    %edi,-0x4(%ebp)
40121f:	89 7d f8             	mov    %edi,-0x8(%ebp)
401222:	e8 cb 0c 00 00       	call   0x401ef2
401227:	8b f0                	mov    %eax,%esi
401229:	85 f6                	test   %esi,%esi
40122b:	78 62                	js     0x40128f
40122d:	57                   	push   %edi
40122e:	ff 75 08             	push   0x8(%ebp)
401231:	8d 45 fc             	lea    -0x4(%ebp),%eax
401234:	50                   	push   %eax
401235:	e8 b8 0c 00 00       	call   0x401ef2
40123a:	8b f0                	mov    %eax,%esi
40123c:	85 f6                	test   %esi,%esi
40123e:	78 4f                	js     0x40128f
401240:	8d 45 f8             	lea    -0x8(%ebp),%eax
401243:	50                   	push   %eax
401244:	ff 75 fc             	push   -0x4(%ebp)
401247:	ff 15 40 b3 44 00    	call   *0x44b340
40124d:	85 c0                	test   %eax,%eax
40124f:	75 2d                	jne    0x40127e
401251:	ff 15 e8 b0 44 00    	call   *0x44b0e8
401257:	0f b7 f0             	movzwl %ax,%esi
40125a:	81 ce 00 00 07 80    	or     $0x80070000,%esi
401260:	85 c0                	test   %eax,%eax
401262:	0f 4e f0             	cmovle %eax,%esi
401265:	b8 05 40 00 80       	mov    $0x80004005,%eax
40126a:	85 f6                	test   %esi,%esi
40126c:	0f 49 f0             	cmovns %eax,%esi
40126f:	56                   	push   %esi
401270:	6a 63                	push   $0x63
401272:	68 80 b5 44 00       	push   $0x44b580
401277:	e8 57 25 00 00       	call   0x4037d3
40127c:	eb 11                	jmp    0x40128f
40127e:	8d 48 04             	lea    0x4(%eax),%ecx
401281:	8b 45 10             	mov    0x10(%ebp),%eax
401284:	89 08                	mov    %ecx,(%eax)
401286:	8b 45 0c             	mov    0xc(%ebp),%eax
401289:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40128c:	49                   	dec    %ecx
40128d:	89 08                	mov    %ecx,(%eax)
40128f:	39 7d fc             	cmp    %edi,-0x4(%ebp)
401292:	74 08                	je     0x40129c
401294:	ff 75 fc             	push   -0x4(%ebp)
401297:	e8 53 42 04 00       	call   0x4454ef
40129c:	5f                   	pop    %edi
40129d:	8b c6                	mov    %esi,%eax
40129f:	5e                   	pop    %esi
4012a0:	8b e5                	mov    %ebp,%esp
4012a2:	5d                   	pop    %ebp
4012a3:	c2 0c 00             	ret    $0xc
4012a6:	55                   	push   %ebp
4012a7:	8b ec                	mov    %esp,%ebp
4012a9:	51                   	push   %ecx
4012aa:	53                   	push   %ebx
4012ab:	56                   	push   %esi
4012ac:	57                   	push   %edi
4012ad:	8b 7d 08             	mov    0x8(%ebp),%edi
4012b0:	33 db                	xor    %ebx,%ebx
4012b2:	33 f6                	xor    %esi,%esi
4012b4:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4012b7:	39 1f                	cmp    %ebx,(%edi)
4012b9:	74 31                	je     0x4012ec
4012bb:	ff 37                	push   (%edi)
4012bd:	e8 8f 28 00 00       	call   0x403b51
4012c2:	8b f0                	mov    %eax,%esi
4012c4:	83 fe ff             	cmp    $0xffffffff,%esi
4012c7:	75 0a                	jne    0x4012d3
4012c9:	b8 57 00 07 80       	mov    $0x80070057,%eax
4012ce:	e9 84 00 00 00       	jmp    0x401357
4012d3:	8d 45 fc             	lea    -0x4(%ebp),%eax
4012d6:	d1 ee                	shr    $1,%esi
4012d8:	50                   	push   %eax
4012d9:	68 ff ff ff 7f       	push   $0x7fffffff
4012de:	ff 37                	push   (%edi)
4012e0:	e8 72 09 00 00       	call   0x401c57
4012e5:	85 c0                	test   %eax,%eax
4012e7:	78 6e                	js     0x401357
4012e9:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4012ec:	8b 7d 10             	mov    0x10(%ebp),%edi
4012ef:	85 ff                	test   %edi,%edi
4012f1:	75 18                	jne    0x40130b
4012f3:	8d 45 10             	lea    0x10(%ebp),%eax
4012f6:	50                   	push   %eax
4012f7:	68 ff ff ff 7f       	push   $0x7fffffff
4012fc:	ff 75 0c             	push   0xc(%ebp)
4012ff:	e8 53 09 00 00       	call   0x401c57
401304:	85 c0                	test   %eax,%eax
401306:	78 4f                	js     0x401357
401308:	8b 7d 10             	mov    0x10(%ebp),%edi
40130b:	8b ce                	mov    %esi,%ecx
40130d:	8d 47 01             	lea    0x1(%edi),%eax
401310:	2b cb                	sub    %ebx,%ecx
401312:	3b c8                	cmp    %eax,%ecx
401314:	73 1d                	jae    0x401333
401316:	ff 75 14             	push   0x14(%ebp)
401319:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
40131c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40131f:	8d 34 45 02 00 00 00 	lea    0x2(,%eax,2),%esi
401326:	56                   	push   %esi
401327:	53                   	push   %ebx
401328:	e8 0f 01 00 00       	call   0x40143c
40132d:	85 c0                	test   %eax,%eax
40132f:	78 26                	js     0x401357
401331:	eb 03                	jmp    0x401336
401333:	8b 5d 08             	mov    0x8(%ebp),%ebx
401336:	83 3b 00             	cmpl   $0x0,(%ebx)
401339:	74 17                	je     0x401352
40133b:	68 00 02 00 00       	push   $0x200
401340:	6a 00                	push   $0x0
401342:	6a 00                	push   $0x0
401344:	57                   	push   %edi
401345:	ff 75 0c             	push   0xc(%ebp)
401348:	56                   	push   %esi
401349:	ff 33                	push   (%ebx)
40134b:	e8 21 04 00 00       	call   0x401771
401350:	eb 05                	jmp    0x401357
401352:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
401357:	5f                   	pop    %edi
401358:	5e                   	pop    %esi
401359:	5b                   	pop    %ebx
40135a:	8b e5                	mov    %ebp,%esp
40135c:	5d                   	pop    %ebp
40135d:	c2 10 00             	ret    $0x10
401360:	55                   	push   %ebp
401361:	8b ec                	mov    %esp,%ebp
401363:	83 ec 0c             	sub    $0xc,%esp
401366:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40136a:	53                   	push   %ebx
40136b:	56                   	push   %esi
40136c:	8b 75 08             	mov    0x8(%ebp),%esi
40136f:	57                   	push   %edi
401370:	33 ff                	xor    %edi,%edi
401372:	21 7d f8             	and    %edi,-0x8(%ebp)
401375:	89 7d f4             	mov    %edi,-0xc(%ebp)
401378:	39 3e                	cmp    %edi,(%esi)
40137a:	74 2c                	je     0x4013a8
40137c:	ff 36                	push   (%esi)
40137e:	e8 ce 27 00 00       	call   0x403b51
401383:	8b f8                	mov    %eax,%edi
401385:	89 7d f4             	mov    %edi,-0xc(%ebp)
401388:	83 ff ff             	cmp    $0xffffffff,%edi
40138b:	75 0a                	jne    0x401397
40138d:	be 57 00 07 80       	mov    $0x80070057,%esi
401392:	e9 9a 00 00 00       	jmp    0x401431
401397:	ff 36                	push   (%esi)
401399:	8b df                	mov    %edi,%ebx
40139b:	ff 15 f8 b0 44 00    	call   *0x44b0f8
4013a1:	d1 eb                	shr    $1,%ebx
4013a3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4013a6:	75 15                	jne    0x4013bd
4013a8:	ff 75 0c             	push   0xc(%ebp)
4013ab:	bb 00 01 00 00       	mov    $0x100,%ebx
4013b0:	53                   	push   %ebx
4013b1:	56                   	push   %esi
4013b2:	e8 85 00 00 00       	call   0x40143c
4013b7:	8b f0                	mov    %eax,%esi
4013b9:	85 f6                	test   %esi,%esi
4013bb:	78 74                	js     0x401431
4013bd:	8b 7d fc             	mov    -0x4(%ebp),%edi
4013c0:	ff 75 14             	push   0x14(%ebp)
4013c3:	8b 45 08             	mov    0x8(%ebp),%eax
4013c6:	ff 75 10             	push   0x10(%ebp)
4013c9:	53                   	push   %ebx
4013ca:	ff 30                	push   (%eax)
4013cc:	e8 bf 08 00 00       	call   0x401c90
4013d1:	8b f0                	mov    %eax,%esi
4013d3:	81 fe 7a 00 07 80    	cmp    $0x8007007a,%esi
4013d9:	75 2a                	jne    0x401405
4013db:	8b 45 08             	mov    0x8(%ebp),%eax
4013de:	85 ff                	test   %edi,%edi
4013e0:	75 0e                	jne    0x4013f0
4013e2:	8b 38                	mov    (%eax),%edi
4013e4:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4013e7:	83 20 00             	andl   $0x0,(%eax)
4013ea:	33 d2                	xor    %edx,%edx
4013ec:	66 89 14 4f          	mov    %dx,(%edi,%ecx,2)
4013f0:	ff 75 0c             	push   0xc(%ebp)
4013f3:	03 db                	add    %ebx,%ebx
4013f5:	53                   	push   %ebx
4013f6:	50                   	push   %eax
4013f7:	e8 40 00 00 00       	call   0x40143c
4013fc:	8b f0                	mov    %eax,%esi
4013fe:	85 f6                	test   %esi,%esi
401400:	78 08                	js     0x40140a
401402:	33 f6                	xor    %esi,%esi
401404:	46                   	inc    %esi
401405:	83 fe 01             	cmp    $0x1,%esi
401408:	74 b6                	je     0x4013c0
40140a:	8b c7                	mov    %edi,%eax
40140c:	89 7d fc             	mov    %edi,-0x4(%ebp)
40140f:	8b 7d f4             	mov    -0xc(%ebp),%edi
401412:	85 c0                	test   %eax,%eax
401414:	74 1b                	je     0x401431
401416:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40141a:	74 0f                	je     0x40142b
40141c:	8b c8                	mov    %eax,%ecx
40141e:	85 ff                	test   %edi,%edi
401420:	74 09                	je     0x40142b
401422:	c6 01 00             	movb   $0x0,(%ecx)
401425:	41                   	inc    %ecx
401426:	83 ef 01             	sub    $0x1,%edi
401429:	75 f7                	jne    0x401422
40142b:	50                   	push   %eax
40142c:	e8 68 25 00 00       	call   0x403999
401431:	5f                   	pop    %edi
401432:	8b c6                	mov    %esi,%eax
401434:	5e                   	pop    %esi
401435:	5b                   	pop    %ebx
401436:	8b e5                	mov    %ebp,%esp
401438:	5d                   	pop    %ebp
401439:	c2 10 00             	ret    $0x10
40143c:	55                   	push   %ebp
40143d:	8b ec                	mov    %esp,%ebp
40143f:	8b 45 0c             	mov    0xc(%ebp),%eax
401442:	56                   	push   %esi
401443:	33 f6                	xor    %esi,%esi
401445:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40144a:	72 07                	jb     0x401453
40144c:	be 0e 00 07 80       	mov    $0x8007000e,%esi
401451:	eb 58                	jmp    0x4014ab
401453:	57                   	push   %edi
401454:	8b 7d 08             	mov    0x8(%ebp),%edi
401457:	03 c0                	add    %eax,%eax
401459:	39 37                	cmp    %esi,(%edi)
40145b:	74 2b                	je     0x401488
40145d:	39 75 10             	cmp    %esi,0x10(%ebp)
401460:	74 1b                	je     0x40147d
401462:	8d 4d 0c             	lea    0xc(%ebp),%ecx
401465:	89 75 0c             	mov    %esi,0xc(%ebp)
401468:	51                   	push   %ecx
401469:	56                   	push   %esi
40146a:	50                   	push   %eax
40146b:	ff 37                	push   (%edi)
40146d:	e8 25 26 00 00       	call   0x403a97
401472:	8b f0                	mov    %eax,%esi
401474:	85 f6                	test   %esi,%esi
401476:	78 32                	js     0x4014aa
401478:	8b 45 0c             	mov    0xc(%ebp),%eax
40147b:	eb 13                	jmp    0x401490
40147d:	56                   	push   %esi
40147e:	50                   	push   %eax
40147f:	ff 37                	push   (%edi)
401481:	e8 ec 25 00 00       	call   0x403a72
401486:	eb 08                	jmp    0x401490
401488:	6a 01                	push   $0x1
40148a:	50                   	push   %eax
40148b:	e8 44 24 00 00       	call   0x4038d4
401490:	85 c0                	test   %eax,%eax
401492:	75 14                	jne    0x4014a8
401494:	be 0e 00 07 80       	mov    $0x8007000e,%esi
401499:	56                   	push   %esi
40149a:	6a 6d                	push   $0x6d
40149c:	68 90 b5 44 00       	push   $0x44b590
4014a1:	e8 2d 23 00 00       	call   0x4037d3
4014a6:	eb 02                	jmp    0x4014aa
4014a8:	89 07                	mov    %eax,(%edi)
4014aa:	5f                   	pop    %edi
4014ab:	8b c6                	mov    %esi,%eax
4014ad:	5e                   	pop    %esi
4014ae:	5d                   	pop    %ebp
4014af:	c2 0c 00             	ret    $0xc
4014b2:	55                   	push   %ebp
4014b3:	8b ec                	mov    %esp,%ebp
4014b5:	8b 45 08             	mov    0x8(%ebp),%eax
4014b8:	53                   	push   %ebx
4014b9:	56                   	push   %esi
4014ba:	33 f6                	xor    %esi,%esi
4014bc:	83 cb ff             	or     $0xffffffff,%ebx
4014bf:	39 30                	cmp    %esi,(%eax)
4014c1:	74 16                	je     0x4014d9
4014c3:	ff 30                	push   (%eax)
4014c5:	e8 87 26 00 00       	call   0x403b51
4014ca:	8b f0                	mov    %eax,%esi
4014cc:	3b f3                	cmp    %ebx,%esi
4014ce:	75 07                	jne    0x4014d7
4014d0:	b8 57 00 07 80       	mov    $0x80070057,%eax
4014d5:	eb 57                	jmp    0x40152e
4014d7:	d1 ee                	shr    $1,%esi
4014d9:	57                   	push   %edi
4014da:	8b 7d 10             	mov    0x10(%ebp),%edi
4014dd:	85 ff                	test   %edi,%edi
4014df:	75 0b                	jne    0x4014ec
4014e1:	ff 75 0c             	push   0xc(%ebp)
4014e4:	ff 15 f8 b0 44 00    	call   *0x44b0f8
4014ea:	8b f8                	mov    %eax,%edi
4014ec:	8d 4f 01             	lea    0x1(%edi),%ecx
4014ef:	3b cf                	cmp    %edi,%ecx
4014f1:	0f 43 d9             	cmovae %ecx,%ebx
4014f4:	1b c0                	sbb    %eax,%eax
4014f6:	25 16 02 07 80       	and    $0x80070216,%eax
4014fb:	3b cf                	cmp    %edi,%ecx
4014fd:	72 2e                	jb     0x40152d
4014ff:	3b f3                	cmp    %ebx,%esi
401501:	73 12                	jae    0x401515
401503:	ff 75 14             	push   0x14(%ebp)
401506:	8b f3                	mov    %ebx,%esi
401508:	53                   	push   %ebx
401509:	ff 75 08             	push   0x8(%ebp)
40150c:	e8 2b ff ff ff       	call   0x40143c
401511:	85 c0                	test   %eax,%eax
401513:	78 18                	js     0x40152d
401515:	8b 45 08             	mov    0x8(%ebp),%eax
401518:	68 00 02 00 00       	push   $0x200
40151d:	6a 00                	push   $0x0
40151f:	6a 00                	push   $0x0
401521:	57                   	push   %edi
401522:	ff 75 0c             	push   0xc(%ebp)
401525:	56                   	push   %esi
401526:	ff 30                	push   (%eax)
401528:	e8 41 05 00 00       	call   0x401a6e
40152d:	5f                   	pop    %edi
40152e:	5e                   	pop    %esi
40152f:	5b                   	pop    %ebx
401530:	5d                   	pop    %ebp
401531:	c2 10 00             	ret    $0x10
401534:	55                   	push   %ebp
401535:	8b ec                	mov    %esp,%ebp
401537:	8b 4d 08             	mov    0x8(%ebp),%ecx
40153a:	8d 41 d0             	lea    -0x30(%ecx),%eax
40153d:	66 83 f8 09          	cmp    $0x9,%ax
401541:	77 05                	ja     0x401548
401543:	80 e9 30             	sub    $0x30,%cl
401546:	eb 11                	jmp    0x401559
401548:	8d 41 9f             	lea    -0x61(%ecx),%eax
40154b:	66 83 f8 05          	cmp    $0x5,%ax
40154f:	77 05                	ja     0x401556
401551:	80 e9 57             	sub    $0x57,%cl
401554:	eb 03                	jmp    0x401559
401556:	80 e9 37             	sub    $0x37,%cl
401559:	8a c1                	mov    %cl,%al
40155b:	5d                   	pop    %ebp
40155c:	c2 04 00             	ret    $0x4
40155f:	55                   	push   %ebp
401560:	8b ec                	mov    %esp,%ebp
401562:	53                   	push   %ebx
401563:	8b 5d 08             	mov    0x8(%ebp),%ebx