40135e:	cc                   	int3
40135f:	cc                   	int3
401360:	51                   	push   %ecx
401361:	56                   	push   %esi
401362:	57                   	push   %edi
401363:	8b f9                	mov    %ecx,%edi
401365:	6a 00                	push   $0x0
401367:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
40136b:	e8 9e 33 00 00       	call   0x40470e
401370:	8b 47 04             	mov    0x4(%edi),%eax
401373:	85 c0                	test   %eax,%eax
401375:	76 09                	jbe    0x401380
401377:	83 f8 ff             	cmp    $0xffffffff,%eax
40137a:	73 04                	jae    0x401380
40137c:	48                   	dec    %eax
40137d:	89 47 04             	mov    %eax,0x4(%edi)
401380:	8b 77 04             	mov    0x4(%edi),%esi
401383:	f7 de                	neg    %esi
401385:	1b f6                	sbb    %esi,%esi
401387:	f7 d6                	not    %esi
401389:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40138d:	23 f7                	and    %edi,%esi
40138f:	e8 a2 33 00 00       	call   0x404736
401394:	5f                   	pop    %edi
401395:	8b c6                	mov    %esi,%eax
401397:	5e                   	pop    %esi
401398:	59                   	pop    %ecx
401399:	c3                   	ret
40139a:	cc                   	int3
40139b:	cc                   	int3
40139c:	cc                   	int3
40139d:	cc                   	int3
40139e:	cc                   	int3
40139f:	cc                   	int3
4013a0:	c7 01 14 a2 41 00    	movl   $0x41a214,(%ecx)
4013a6:	c3                   	ret
4013a7:	cc                   	int3
4013a8:	cc                   	int3
4013a9:	cc                   	int3
4013aa:	cc                   	int3
4013ab:	cc                   	int3
4013ac:	cc                   	int3
4013ad:	cc                   	int3
4013ae:	cc                   	int3
4013af:	cc                   	int3
4013b0:	51                   	push   %ecx
4013b1:	57                   	push   %edi
4013b2:	8b 39                	mov    (%ecx),%edi
4013b4:	85 ff                	test   %edi,%edi
4013b6:	74 3f                	je     0x4013f7
4013b8:	6a 00                	push   $0x0
4013ba:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4013be:	e8 4b 33 00 00       	call   0x40470e
4013c3:	8b 47 04             	mov    0x4(%edi),%eax
4013c6:	85 c0                	test   %eax,%eax
4013c8:	76 09                	jbe    0x4013d3
4013ca:	83 f8 ff             	cmp    $0xffffffff,%eax
4013cd:	73 04                	jae    0x4013d3
4013cf:	48                   	dec    %eax
4013d0:	89 47 04             	mov    %eax,0x4(%edi)
4013d3:	56                   	push   %esi
4013d4:	8b 77 04             	mov    0x4(%edi),%esi
4013d7:	f7 de                	neg    %esi
4013d9:	1b f6                	sbb    %esi,%esi
4013db:	f7 d6                	not    %esi
4013dd:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4013e1:	23 f7                	and    %edi,%esi
4013e3:	e8 4e 33 00 00       	call   0x404736
4013e8:	85 f6                	test   %esi,%esi
4013ea:	74 0a                	je     0x4013f6
4013ec:	8b 06                	mov    (%esi),%eax
4013ee:	8b 10                	mov    (%eax),%edx
4013f0:	6a 01                	push   $0x1
4013f2:	8b ce                	mov    %esi,%ecx
4013f4:	ff d2                	call   *%edx
4013f6:	5e                   	pop    %esi
4013f7:	5f                   	pop    %edi
4013f8:	59                   	pop    %ecx
4013f9:	c3                   	ret
4013fa:	cc                   	int3
4013fb:	cc                   	int3
4013fc:	cc                   	int3
4013fd:	cc                   	int3
4013fe:	cc                   	int3
4013ff:	cc                   	int3
401400:	51                   	push   %ecx
401401:	8b 00                	mov    (%eax),%eax
401403:	33 c9                	xor    %ecx,%ecx
401405:	6a ff                	push   $0xffffffff
401407:	89 4e 14             	mov    %ecx,0x14(%esi)
40140a:	51                   	push   %ecx
40140b:	83 c0 18             	add    $0x18,%eax
40140e:	c7 46 18 0f 00 00 00 	movl   $0xf,0x18(%esi)
401415:	89 4c 24 08          	mov    %ecx,0x8(%esp)
401419:	88 4e 04             	mov    %cl,0x4(%esi)
40141c:	50                   	push   %eax
40141d:	8b ce                	mov    %esi,%ecx
40141f:	e8 0c 1d 00 00       	call   0x403130
401424:	8b c6                	mov    %esi,%eax
401426:	59                   	pop    %ecx
401427:	c3                   	ret
401428:	cc                   	int3
401429:	cc                   	int3
40142a:	cc                   	int3
40142b:	cc                   	int3
40142c:	cc                   	int3
40142d:	cc                   	int3
40142e:	cc                   	int3
40142f:	cc                   	int3
401430:	f6 44 24 04 01       	testb  $0x1,0x4(%esp)
401435:	56                   	push   %esi
401436:	8b f1                	mov    %ecx,%esi
401438:	c7 06 14 a2 41 00    	movl   $0x41a214,(%esi)
40143e:	74 09                	je     0x401449
401440:	56                   	push   %esi
401441:	e8 f0 3e 00 00       	call   0x405336
401446:	83 c4 04             	add    $0x4,%esp
401449:	8b c6                	mov    %esi,%eax
40144b:	5e                   	pop    %esi
40144c:	c2 04 00             	ret    $0x4
40144f:	cc                   	int3
401450:	c7 00 14 a2 41 00    	movl   $0x41a214,(%eax)
401456:	c3                   	ret
401457:	cc                   	int3
401458:	cc                   	int3
401459:	cc                   	int3
40145a:	cc                   	int3
40145b:	cc                   	int3
40145c:	cc                   	int3
40145d:	cc                   	int3
40145e:	cc                   	int3
40145f:	cc                   	int3
401460:	6a ff                	push   $0xffffffff
401462:	68 38 98 41 00       	push   $0x419838
401467:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40146d:	50                   	push   %eax
40146e:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
401475:	51                   	push   %ecx
401476:	56                   	push   %esi
401477:	57                   	push   %edi
401478:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
40147c:	8b f1                	mov    %ecx,%esi
40147e:	57                   	push   %edi
40147f:	89 74 24 0c          	mov    %esi,0xc(%esp)
401483:	e8 8a 3a 00 00       	call   0x404f12
401488:	33 d2                	xor    %edx,%edx
40148a:	89 54 24 14          	mov    %edx,0x14(%esp)
40148e:	6a ff                	push   $0xffffffff
401490:	8d 4e 0c             	lea    0xc(%esi),%ecx
401493:	c7 06 2c a2 41 00    	movl   $0x41a22c,(%esi)
401499:	8d 47 0c             	lea    0xc(%edi),%eax
40149c:	52                   	push   %edx
40149d:	c7 41 18 0f 00 00 00 	movl   $0xf,0x18(%ecx)
4014a4:	89 51 14             	mov    %edx,0x14(%ecx)
4014a7:	50                   	push   %eax
4014a8:	88 51 04             	mov    %dl,0x4(%ecx)
4014ab:	e8 80 1c 00 00       	call   0x403130
4014b0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4014b4:	5f                   	pop    %edi
4014b5:	8b c6                	mov    %esi,%eax
4014b7:	5e                   	pop    %esi
4014b8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4014bf:	83 c4 10             	add    $0x10,%esp
4014c2:	c2 04 00             	ret    $0x4
4014c5:	cc                   	int3
4014c6:	cc                   	int3
4014c7:	cc                   	int3
4014c8:	cc                   	int3
4014c9:	cc                   	int3
4014ca:	cc                   	int3
4014cb:	cc                   	int3
4014cc:	cc                   	int3
4014cd:	cc                   	int3
4014ce:	cc                   	int3
4014cf:	cc                   	int3
4014d0:	6a ff                	push   $0xffffffff
4014d2:	68 18 98 41 00       	push   $0x419818
4014d7:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4014dd:	50                   	push   %eax
4014de:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
4014e5:	83 ec 18             	sub    $0x18,%esp
4014e8:	56                   	push   %esi
4014e9:	8b 74 24 2c          	mov    0x2c(%esp),%esi
4014ed:	33 c0                	xor    %eax,%eax
4014ef:	89 46 04             	mov    %eax,0x4(%esi)
4014f2:	89 44 24 24          	mov    %eax,0x24(%esp)
4014f6:	8d 44 24 04          	lea    0x4(%esp),%eax
4014fa:	50                   	push   %eax
4014fb:	c7 06 04 8b 42 00    	movl   $0x428b04,(%esi)
401501:	e8 d2 36 00 00       	call   0x404bd8
401506:	8b 08                	mov    (%eax),%ecx
401508:	89 4e 08             	mov    %ecx,0x8(%esi)
40150b:	8b 50 04             	mov    0x4(%eax),%edx
40150e:	89 56 0c             	mov    %edx,0xc(%esi)
401511:	8b 48 08             	mov    0x8(%eax),%ecx
401514:	89 4e 10             	mov    %ecx,0x10(%esi)
401517:	8b 50 0c             	mov    0xc(%eax),%edx
40151a:	83 c4 04             	add    $0x4,%esp
40151d:	89 56 14             	mov    %edx,0x14(%esi)
401520:	e8 66 2d 00 00       	call   0x40428b
401525:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
401529:	89 46 18             	mov    %eax,0x18(%esi)
40152c:	89 56 1c             	mov    %edx,0x1c(%esi)
40152f:	8b c6                	mov    %esi,%eax
401531:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401538:	5e                   	pop    %esi
401539:	83 c4 24             	add    $0x24,%esp
40153c:	c2 04 00             	ret    $0x4
40153f:	cc                   	int3
401540:	6a ff                	push   $0xffffffff
401542:	68 00 99 41 00       	push   $0x419900
401547:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40154d:	50                   	push   %eax
40154e:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
401555:	81 ec 98 00 00 00    	sub    $0x98,%esp
40155b:	53                   	push   %ebx
40155c:	55                   	push   %ebp
40155d:	8b ac 24 b0 00 00 00 	mov    0xb0(%esp),%ebp
401564:	33 db                	xor    %ebx,%ebx
401566:	56                   	push   %esi
401567:	57                   	push   %edi
401568:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40156c:	3b eb                	cmp    %ebx,%ebp
40156e:	0f 84 aa 00 00 00    	je     0x40161e
401574:	39 5d 00             	cmp    %ebx,0x0(%ebp)
401577:	0f 85 a1 00 00 00    	jne    0x40161e
40157d:	6a 20                	push   $0x20
40157f:	e8 f9 42 00 00       	call   0x40587d
401584:	8b f8                	mov    %eax,%edi
401586:	83 c4 04             	add    $0x4,%esp
401589:	89 7c 24 14          	mov    %edi,0x14(%esp)
40158d:	89 9c 24 b0 00 00 00 	mov    %ebx,0xb0(%esp)
401594:	3b fb                	cmp    %ebx,%edi
401596:	74 47                	je     0x4015df
401598:	8b 84 24 bc 00 00 00 	mov    0xbc(%esp),%eax
40159f:	8d 74 24 18          	lea    0x18(%esp),%esi
4015a3:	e8 58 fe ff ff       	call   0x401400
4015a8:	50                   	push   %eax
4015a9:	8d 44 24 38          	lea    0x38(%esp),%eax
4015ad:	c6 84 24 b4 00 00 00 	movb   $0x1,0xb4(%esp)
4015b4:	01
4015b5:	50                   	push   %eax
4015b6:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
4015bd:	00
4015be:	e8 ad fb ff ff       	call   0x401170
4015c3:	c7 84 24 b0 00 00 00 	movl   $0x2,0xb0(%esp)
4015ca:	02 00 00 00
4015ce:	bb 03 00 00 00       	mov    $0x3,%ebx
4015d3:	57                   	push   %edi
4015d4:	89 5c 24 14          	mov    %ebx,0x14(%esp)
4015d8:	e8 f3 fe ff ff       	call   0x4014d0
4015dd:	eb 02                	jmp    0x4015e1
4015df:	33 c0                	xor    %eax,%eax
4015e1:	89 45 00             	mov    %eax,0x0(%ebp)
4015e4:	c7 84 24 b0 00 00 00 	movl   $0x3,0xb0(%esp)
4015eb:	03 00 00 00
4015ef:	f6 c3 02             	test   $0x2,%bl
4015f2:	74 11                	je     0x401605
4015f4:	8d 4c 24 34          	lea    0x34(%esp),%ecx
4015f8:	83 e3 fd             	and    $0xfffffffd,%ebx
4015fb:	51                   	push   %ecx
4015fc:	89 5c 24 14          	mov    %ebx,0x14(%esp)
401600:	e8 eb fb ff ff       	call   0x4011f0
401605:	f6 c3 01             	test   $0x1,%bl
401608:	74 14                	je     0x40161e
40160a:	83 7c 24 30 10       	cmpl   $0x10,0x30(%esp)
40160f:	72 0d                	jb     0x40161e
401611:	8b 54 24 1c          	mov    0x1c(%esp),%edx
401615:	52                   	push   %edx
401616:	e8 1b 3d 00 00       	call   0x405336
40161b:	83 c4 04             	add    $0x4,%esp
40161e:	8b 8c 24 a8 00 00 00 	mov    0xa8(%esp),%ecx
401625:	5f                   	pop    %edi
401626:	5e                   	pop    %esi
401627:	5d                   	pop    %ebp
401628:	b8 02 00 00 00       	mov    $0x2,%eax
40162d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401634:	5b                   	pop    %ebx
401635:	81 c4 a4 00 00 00    	add    $0xa4,%esp
40163b:	c3                   	ret
40163c:	cc                   	int3
40163d:	cc                   	int3
40163e:	cc                   	int3
40163f:	cc                   	int3
401640:	8b 44 24 08          	mov    0x8(%esp),%eax
401644:	83 c1 08             	add    $0x8,%ecx
401647:	51                   	push   %ecx
401648:	50                   	push   %eax
401649:	e8 ea 35 00 00       	call   0x404c38
40164e:	83 c4 08             	add    $0x8,%esp
401651:	66 85 44 24 04       	test   %ax,0x4(%esp)
401656:	b8 00 00 00 00       	mov    $0x0,%eax
40165b:	0f 95 c0             	setne  %al
40165e:	c2 08 00             	ret    $0x8
401661:	cc                   	int3
401662:	cc                   	int3
401663:	cc                   	int3
401664:	cc                   	int3
401665:	cc                   	int3
401666:	cc                   	int3
401667:	cc                   	int3
401668:	cc                   	int3
401669:	cc                   	int3
40166a:	cc                   	int3
40166b:	cc                   	int3
40166c:	cc                   	int3
40166d:	cc                   	int3
40166e:	cc                   	int3
40166f:	cc                   	int3
401670:	8b 44 24 0c          	mov    0xc(%esp),%eax
401674:	8b 54 24 04          	mov    0x4(%esp),%edx
401678:	83 c1 08             	add    $0x8,%ecx
40167b:	51                   	push   %ecx
40167c:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
401680:	50                   	push   %eax
401681:	51                   	push   %ecx
401682:	52                   	push   %edx
401683:	e8 df 35 00 00       	call   0x404c67
401688:	83 c4 10             	add    $0x10,%esp
40168b:	c2 0c 00             	ret    $0xc
40168e:	cc                   	int3
40168f:	cc                   	int3
401690:	55                   	push   %ebp
401691:	8b 6c 24 10          	mov    0x10(%esp),%ebp
401695:	56                   	push   %esi
401696:	8b 74 24 10          	mov    0x10(%esp),%esi
40169a:	57                   	push   %edi
40169b:	8b f9                	mov    %ecx,%edi
40169d:	3b f5                	cmp    %ebp,%esi
40169f:	74 1f                	je     0x4016c0
4016a1:	53                   	push   %ebx
4016a2:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4016a6:	0f b7 06             	movzwl (%esi),%eax
4016a9:	8b 17                	mov    (%edi),%edx
4016ab:	50                   	push   %eax
4016ac:	8b 42 08             	mov    0x8(%edx),%eax
4016af:	53                   	push   %ebx
4016b0:	8b cf                	mov    %edi,%ecx
4016b2:	ff d0                	call   *%eax
4016b4:	84 c0                	test   %al,%al
4016b6:	75 07                	jne    0x4016bf
4016b8:	83 c6 02             	add    $0x2,%esi
4016bb:	3b f5                	cmp    %ebp,%esi
4016bd:	75 e7                	jne    0x4016a6
4016bf:	5b                   	pop    %ebx
4016c0:	5f                   	pop    %edi
4016c1:	8b c6                	mov    %esi,%eax
4016c3:	5e                   	pop    %esi
4016c4:	5d                   	pop    %ebp
4016c5:	c2 0c 00             	ret    $0xc