45d268:	83 c1 f0             	add    $0xfffffff0,%ecx
45d26b:	8b 00                	mov    (%eax),%eax
45d26d:	03 c1                	add    %ecx,%eax
45d26f:	8d 4c 24 28          	lea    0x28(%esp),%ecx
45d273:	50                   	push   %eax
45d274:	e8 8b a5 00 00       	call   0x467804
45d279:	eb 15                	jmp    0x45d290
45d27b:	8d 4c 24 28          	lea    0x28(%esp),%ecx
45d27f:	e8 9c c7 fa ff       	call   0x409a20
45d284:	89 5c 24 28          	mov    %ebx,0x28(%esp)
45d288:	c7 44 24 34 01 00 00 	movl   $0x1,0x34(%esp)
45d28f:	00
45d290:	8d 44 24 0f          	lea    0xf(%esp),%eax
45d294:	50                   	push   %eax
45d295:	8d 4c 24 7c          	lea    0x7c(%esp),%ecx
45d299:	e8 c4 99 ff ff       	call   0x456c62
45d29e:	8d 44 24 28          	lea    0x28(%esp),%eax
45d2a2:	50                   	push   %eax
45d2a3:	8d 4c 24 64          	lea    0x64(%esp),%ecx
45d2a7:	e8 b9 93 ff ff       	call   0x456665
45d2ac:	8b 4c 24 44          	mov    0x44(%esp),%ecx
45d2b0:	83 6c 24 1c 10       	subl   $0x10,0x1c(%esp)
45d2b5:	41                   	inc    %ecx
45d2b6:	8b 54 24 14          	mov    0x14(%esp),%edx
45d2ba:	46                   	inc    %esi
45d2bb:	89 4c 24 44          	mov    %ecx,0x44(%esp)
45d2bf:	e9 d4 fe ff ff       	jmp    0x45d198
45d2c4:	ff 70 10             	push   0x10(%eax)
45d2c7:	e8 95 b2 fa ff       	call   0x408561
45d2cc:	8b 44 24 3c          	mov    0x3c(%esp),%eax
45d2d0:	6a 04                	push   $0x4
45d2d2:	5e                   	pop    %esi
45d2d3:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
45d2da:	00
45d2db:	83 78 14 01          	cmpl   $0x1,0x14(%eax)
45d2df:	0f 8c 42 01 00 00    	jl     0x45d427
45d2e5:	8b 44 24 64          	mov    0x64(%esp),%eax
45d2e9:	89 44 24 20          	mov    %eax,0x20(%esp)
45d2ed:	8b 4c 24 10          	mov    0x10(%esp),%ecx
45d2f1:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
45d2f5:	8b 49 04             	mov    0x4(%ecx),%ecx
45d2f8:	89 4c 24 18          	mov    %ecx,0x18(%esp)
45d2fc:	eb 17                	jmp    0x45d315
45d2fe:	8b 04 b1             	mov    (%ecx,%esi,4),%eax
45d301:	83 38 24             	cmpl   $0x24,(%eax)
45d304:	74 0e                	je     0x45d314
45d306:	83 38 1e             	cmpl   $0x1e,(%eax)
45d309:	75 0a                	jne    0x45d315
45d30b:	b8 00 01 00 00       	mov    $0x100,%eax
45d310:	89 44 24 1c          	mov    %eax,0x1c(%esp)
45d314:	46                   	inc    %esi
45d315:	8b 04 b1             	mov    (%ecx,%esi,4),%eax
45d318:	66 39 58 08          	cmp    %bx,0x8(%eax)
45d31c:	74 e0                	je     0x45d2fe
45d31e:	33 ff                	xor    %edi,%edi
45d320:	8d 14 b5 04 00 00 00 	lea    0x4(,%esi,4),%edx
45d327:	8b cb                	mov    %ebx,%ecx
45d329:	47                   	inc    %edi
45d32a:	8b 5c 24 18          	mov    0x18(%esp),%ebx
45d32e:	8b 04 13             	mov    (%ebx,%edx,1),%eax
45d331:	0f b7 40 08          	movzwl 0x8(%eax),%eax
45d335:	66 3b 44 24 74       	cmp    0x74(%esp),%ax
45d33a:	75 03                	jne    0x45d33f
45d33c:	41                   	inc    %ecx
45d33d:	eb 7e                	jmp    0x45d3bd
45d33f:	66 3b 44 24 40       	cmp    0x40(%esp),%ax
45d344:	75 6c                	jne    0x45d3b2
45d346:	49                   	dec    %ecx
45d347:	79 74                	jns    0x45d3bd
45d349:	8b 44 24 44          	mov    0x44(%esp),%eax
45d34d:	6a 00                	push   $0x0
45d34f:	89 7c 24 28          	mov    %edi,0x28(%esp)
45d353:	8b 7c 24 60          	mov    0x60(%esp),%edi
45d357:	5b                   	pop    %ebx
45d358:	39 44 24 14          	cmp    %eax,0x14(%esp)
45d35c:	7e 68                	jle    0x45d3c6
45d35e:	8b 4f 3c             	mov    0x3c(%edi),%ecx
45d361:	8d 46 02             	lea    0x2(%esi),%eax
45d364:	89 44 24 18          	mov    %eax,0x18(%esp)
45d368:	8b 44 24 24          	mov    0x24(%esp),%eax
45d36c:	03 c6                	add    %esi,%eax
45d36e:	50                   	push   %eax
45d36f:	8d 44 24 2c          	lea    0x2c(%esp),%eax
45d373:	50                   	push   %eax
45d374:	8d 44 24 20          	lea    0x20(%esp),%eax
45d378:	50                   	push   %eax
45d379:	ff 74 24 1c          	push   0x1c(%esp)
45d37d:	e8 7e cc fa ff       	call   0x40a000
45d382:	85 c0                	test   %eax,%eax
45d384:	0f 88 a9 01 00 00    	js     0x45d533
45d38a:	8b 44 24 10          	mov    0x10(%esp),%eax
45d38e:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
45d392:	8b 40 04             	mov    0x4(%eax),%eax
45d395:	8b 04 b0             	mov    (%eax,%esi,4),%eax
45d398:	ff 30                	push   (%eax)
45d39a:	e8 e5 6b fa ff       	call   0x403f84
45d39f:	8b 44 24 1c          	mov    0x1c(%esp),%eax
45d3a3:	6a 01                	push   $0x1
45d3a5:	0d 00 02 00 00       	or     $0x200,%eax
45d3aa:	50                   	push   %eax
45d3ab:	8d 44 24 30          	lea    0x30(%esp),%eax
45d3af:	50                   	push   %eax
45d3b0:	eb 38                	jmp    0x45d3ea
45d3b2:	66 3b 44 24 48       	cmp    0x48(%esp),%ax
45d3b7:	75 04                	jne    0x45d3bd
45d3b9:	85 c9                	test   %ecx,%ecx
45d3bb:	74 8c                	je     0x45d349
45d3bd:	47                   	inc    %edi
45d3be:	83 c2 04             	add    $0x4,%edx
45d3c1:	e9 68 ff ff ff       	jmp    0x45d32e
45d3c6:	8b 44 24 18          	mov    0x18(%esp),%eax
45d3ca:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
45d3ce:	8b 04 b0             	mov    (%eax,%esi,4),%eax
45d3d1:	ff 30                	push   (%eax)
45d3d3:	e8 ac 6b fa ff       	call   0x403f84
45d3d8:	8b 44 24 1c          	mov    0x1c(%esp),%eax
45d3dc:	6a 01                	push   $0x1
45d3de:	0d 00 02 00 00       	or     $0x200,%eax
45d3e3:	50                   	push   %eax
45d3e4:	8b 44 24 28          	mov    0x28(%esp),%eax
45d3e8:	ff 30                	push   (%eax)
45d3ea:	8b 44 24 1c          	mov    0x1c(%esp),%eax
45d3ee:	8b 40 04             	mov    0x4(%eax),%eax
45d3f1:	8b 04 b0             	mov    (%eax,%esi,4),%eax
45d3f4:	ff 30                	push   (%eax)
45d3f6:	e8 25 b2 fa ff       	call   0x408620
45d3fb:	8b 44 24 24          	mov    0x24(%esp),%eax
45d3ff:	8b 54 24 14          	mov    0x14(%esp),%edx
45d403:	40                   	inc    %eax
45d404:	83 44 24 20 04       	addl   $0x4,0x20(%esp)
45d409:	03 f0                	add    %eax,%esi
45d40b:	8b 44 24 3c          	mov    0x3c(%esp),%eax
45d40f:	42                   	inc    %edx
45d410:	89 54 24 14          	mov    %edx,0x14(%esp)
45d414:	3b 50 14             	cmp    0x14(%eax),%edx
45d417:	0f 8e d0 fe ff ff    	jle    0x45d2ed
45d41d:	8b 74 24 50          	mov    0x50(%esp),%esi
45d421:	89 74 24 20          	mov    %esi,0x20(%esp)
45d425:	eb 02                	jmp    0x45d429
45d427:	8b f3                	mov    %ebx,%esi
45d429:	8d 4c 24 28          	lea    0x28(%esp),%ecx
45d42d:	e8 ee c5 fa ff       	call   0x409a20
45d432:	8d 47 40             	lea    0x40(%edi),%eax
45d435:	c7 44 24 34 06 00 00 	movl   $0x6,0x34(%esp)
45d43c:	00
45d43d:	68 3c 9a 4b 00       	push   $0x4b9a3c
45d442:	8d 8c 24 9c 00 00 00 	lea    0x9c(%esp),%ecx
45d449:	89 44 24 2c          	mov    %eax,0x2c(%esp)
45d44d:	e8 ef aa fa ff       	call   0x407f41
45d452:	8b 44 24 34          	mov    0x34(%esp),%eax
45d456:	83 e8 06             	sub    $0x6,%eax
45d459:	f7 d8                	neg    %eax
45d45b:	6a 01                	push   $0x1
45d45d:	1b c0                	sbb    %eax,%eax
45d45f:	f7 d0                	not    %eax
45d461:	23 44 24 2c          	and    0x2c(%esp),%eax
45d465:	53                   	push   %ebx
45d466:	50                   	push   %eax
45d467:	8d 84 24 a4 00 00 00 	lea    0xa4(%esp),%eax
45d46e:	50                   	push   %eax
45d46f:	e8 ac b1 fa ff       	call   0x408620
45d474:	8d 8c 24 98 00 00 00 	lea    0x98(%esp),%ecx
45d47b:	e8 e4 85 fa ff       	call   0x405a64
45d480:	8b 44 24 3c          	mov    0x3c(%esp),%eax
45d484:	8b 4f 3c             	mov    0x3c(%edi),%ecx
45d487:	53                   	push   %ebx
45d488:	53                   	push   %ebx
45d489:	8b 40 10             	mov    0x10(%eax),%eax
45d48c:	40                   	inc    %eax
45d48d:	50                   	push   %eax
45d48e:	e8 09 e4 fa ff       	call   0x40b89c
45d493:	8b 55 08             	mov    0x8(%ebp),%edx
45d496:	89 5c 24 48          	mov    %ebx,0x48(%esp)
45d49a:	8b 4a 08             	mov    0x8(%edx),%ecx
45d49d:	85 c9                	test   %ecx,%ecx
45d49f:	74 48                	je     0x45d4e9
45d4a1:	8b 44 24 7c          	mov    0x7c(%esp),%eax
45d4a5:	2b c6                	sub    %esi,%eax
45d4a7:	89 44 24 40          	mov    %eax,0x40(%esp)
45d4ab:	8b 04 30             	mov    (%eax,%esi,1),%eax
45d4ae:	80 38 00             	cmpb   $0x0,(%eax)
45d4b1:	74 21                	je     0x45d4d4
45d4b3:	2b cb                	sub    %ebx,%ecx
45d4b5:	83 ec 10             	sub    $0x10,%esp
45d4b8:	8b fc                	mov    %esp,%edi
45d4ba:	8d 71 ff             	lea    -0x1(%ecx),%esi
45d4bd:	c1 e6 04             	shl    $0x4,%esi
45d4c0:	03 32                	add    (%edx),%esi
45d4c2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45d4c3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45d4c4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45d4c5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45d4c6:	8b 74 24 30          	mov    0x30(%esp),%esi
45d4ca:	ff 36                	push   (%esi)
45d4cc:	e8 ae 03 00 00       	call   0x45d87f
45d4d1:	8b 55 08             	mov    0x8(%ebp),%edx
45d4d4:	8b 4a 08             	mov    0x8(%edx),%ecx
45d4d7:	43                   	inc    %ebx
45d4d8:	8b 44 24 40          	mov    0x40(%esp),%eax
45d4dc:	83 c6 04             	add    $0x4,%esi
45d4df:	89 74 24 20          	mov    %esi,0x20(%esp)
45d4e3:	3b d9                	cmp    %ecx,%ebx
45d4e5:	72 c4                	jb     0x45d4ab
45d4e7:	33 db                	xor    %ebx,%ebx
45d4e9:	b9 80 72 4c 00       	mov    $0x4c7280,%ecx
45d4ee:	e8 4c af fa ff       	call   0x40843f
45d4f3:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
45d4f7:	e8 28 6b fa ff       	call   0x404024
45d4fc:	8d 4c 24 78          	lea    0x78(%esp),%ecx
45d500:	e8 ae 35 fc ff       	call   0x420ab3
45d505:	8d 4c 24 28          	lea    0x28(%esp),%ecx
45d509:	e8 12 c5 fa ff       	call   0x409a20
45d50e:	8d 4c 24 60          	lea    0x60(%esp),%ecx
45d512:	e9 84 01 00 00       	jmp    0x45d69b
45d517:	8b 44 24 10          	mov    0x10(%esp),%eax
45d51b:	8b 4f 3c             	mov    0x3c(%edi),%ecx
45d51e:	8b 40 04             	mov    0x4(%eax),%eax
45d521:	8b 04 b0             	mov    (%eax,%esi,4),%eax
45d524:	0f bf 40 0a          	movswl 0xa(%eax),%eax
45d528:	50                   	push   %eax
45d529:	68 91 00 00 00       	push   $0x91
45d52e:	e8 82 cb 00 00       	call   0x46a0b5
45d533:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
45d537:	e8 e8 6a fa ff       	call   0x404024
45d53c:	8d 4c 24 78          	lea    0x78(%esp),%ecx
45d540:	e8 6e 35 fc ff       	call   0x420ab3
45d545:	8d 4c 24 28          	lea    0x28(%esp),%ecx
45d549:	e8 d2 c4 fa ff       	call   0x409a20
45d54e:	8d 4c 24 60          	lea    0x60(%esp),%ecx
45d552:	e8 9d 91 ff ff       	call   0x4566f4
45d557:	bb 05 40 00 80       	mov    $0x80004005,%ebx
45d55c:	e9 3f 01 00 00       	jmp    0x45d6a0
45d561:	8b 4f 38             	mov    0x38(%edi),%ecx
45d564:	83 39 40             	cmpl   $0x40,(%ecx)
45d567:	75 05                	jne    0x45d56e
45d569:	e8 75 04 00 00       	call   0x45d9e3
45d56e:	8d 77 40             	lea    0x40(%edi),%esi
45d571:	c7 44 24 4c 84 fb 48 	movl   $0x48fb84,0x4c(%esp)
45d578:	00
45d579:	83 7e 0c 08          	cmpl   $0x8,0xc(%esi)
45d57d:	89 5c 24 50          	mov    %ebx,0x50(%esp)
45d581:	89 5c 24 54          	mov    %ebx,0x54(%esp)
45d585:	89 5c 24 58          	mov    %ebx,0x58(%esp)
45d589:	89 5c 24 28          	mov    %ebx,0x28(%esp)
45d58d:	89 5c 24 30          	mov    %ebx,0x30(%esp)
45d591:	c7 44 24 34 01 00 00 	movl   $0x1,0x34(%esp)
45d598:	00
45d599:	75 04                	jne    0x45d59f
45d59b:	8b 06                	mov    (%esi),%eax
45d59d:	eb 02                	jmp    0x45d5a1
45d59f:	8b c3                	mov    %ebx,%eax
45d5a1:	8b 40 08             	mov    0x8(%eax),%eax
45d5a4:	50                   	push   %eax
45d5a5:	8b 08                	mov    (%eax),%ecx
45d5a7:	ff 51 04             	call   *0x4(%ecx)
45d5aa:	8d 4c 24 28          	lea    0x28(%esp),%ecx
45d5ae:	e8 6d c4 fa ff       	call   0x409a20
45d5b3:	8d 44 24 28          	lea    0x28(%esp),%eax
45d5b7:	c7 44 24 34 06 00 00 	movl   $0x6,0x34(%esp)
45d5be:	00
45d5bf:	50                   	push   %eax
45d5c0:	8d 4c 24 50          	lea    0x50(%esp),%ecx
45d5c4:	89 74 24 2c          	mov    %esi,0x2c(%esp)
45d5c8:	e8 98 90 ff ff       	call   0x456665
45d5cd:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax
45d5d4:	50                   	push   %eax
45d5d5:	8d 8c 24 9c 00 00 00 	lea    0x9c(%esp),%ecx
45d5dc:	e8 09 be fa ff       	call   0x4093ea
45d5e1:	8d 84 24 98 00 00 00 	lea    0x98(%esp),%eax
45d5e8:	50                   	push   %eax
45d5e9:	8d 4c 24 50          	lea    0x50(%esp),%ecx
45d5ed:	e8 73 90 ff ff       	call   0x456665
45d5f2:	8d 8c 24 98 00 00 00 	lea    0x98(%esp),%ecx
45d5f9:	e8 22 c4 fa ff       	call   0x409a20
45d5fe:	8b 7c 24 14          	mov    0x14(%esp),%edi
45d602:	4f                   	dec    %edi
45d603:	78 2c                	js     0x45d631
45d605:	8b 5d 08             	mov    0x8(%ebp),%ebx
45d608:	8b f7                	mov    %edi,%esi
45d60a:	c1 e6 04             	shl    $0x4,%esi
45d60d:	8b 03                	mov    (%ebx),%eax
45d60f:	8d 4c 24 28          	lea    0x28(%esp),%ecx
45d613:	03 c6                	add    %esi,%eax
45d615:	50                   	push   %eax
45d616:	e8 e9 a1 00 00       	call   0x467804
45d61b:	8d 44 24 28          	lea    0x28(%esp),%eax
45d61f:	50                   	push   %eax
45d620:	8d 4c 24 50          	lea    0x50(%esp),%ecx
45d624:	e8 3c 90 ff ff       	call   0x456665
45d629:	83 ee 10             	sub    $0x10,%esi
45d62c:	4f                   	dec    %edi
45d62d:	79 de                	jns    0x45d60d
45d62f:	33 db                	xor    %ebx,%ebx
45d631:	8b 44 24 3c          	mov    0x3c(%esp),%eax
45d635:	8b 7c 24 14          	mov    0x14(%esp),%edi
45d639:	8b 40 14             	mov    0x14(%eax),%eax
45d63c:	3b c7                	cmp    %edi,%eax
45d63e:	7e 3d                	jle    0x45d67d
45d640:	2b c7                	sub    %edi,%eax
45d642:	8b f3                	mov    %ebx,%esi
45d644:	85 c0                	test   %eax,%eax
45d646:	7e 35                	jle    0x45d67d
45d648:	8d 44 24 60          	lea    0x60(%esp),%eax
45d64c:	89 5c 24 60          	mov    %ebx,0x60(%esp)
45d650:	50                   	push   %eax
45d651:	8d 4c 24 50          	lea    0x50(%esp),%ecx
45d655:	89 5c 24 6c          	mov    %ebx,0x6c(%esp)
45d659:	c7 44 24 70 01 00 00 	movl   $0x1,0x70(%esp)
45d660:	00
45d661:	e8 ff 8f ff ff       	call   0x456665
45d666:	8d 4c 24 60          	lea    0x60(%esp),%ecx
45d66a:	e8 b1 c3 fa ff       	call   0x409a20
45d66f:	8b 44 24 3c          	mov    0x3c(%esp),%eax
45d673:	46                   	inc    %esi
45d674:	8b 40 14             	mov    0x14(%eax),%eax
45d677:	2b c7                	sub    %edi,%eax
45d679:	3b f0                	cmp    %eax,%esi
45d67b:	7c cb                	jl     0x45d648
45d67d:	8b 4c 24 5c          	mov    0x5c(%esp),%ecx
45d681:	8d 44 24 4c          	lea    0x4c(%esp),%eax
45d685:	50                   	push   %eax
45d686:	8b 49 38             	mov    0x38(%ecx),%ecx
45d689:	e8 7a 03 00 00       	call   0x45da08
45d68e:	8d 4c 24 28          	lea    0x28(%esp),%ecx
45d692:	e8 89 c3 fa ff       	call   0x409a20
45d697:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
45d69b:	e8 54 90 ff ff       	call   0x4566f4
45d6a0:	8d 8c 24 88 00 00 00 	lea    0x88(%esp),%ecx
45d6a7:	e8 b8 83 fa ff       	call   0x405a64
45d6ac:	8d 4d 0c             	lea    0xc(%ebp),%ecx
45d6af:	e8 b0 83 fa ff       	call   0x405a64
45d6b4:	5f                   	pop    %edi
45d6b5:	5e                   	pop    %esi
45d6b6:	8b c3                	mov    %ebx,%eax
45d6b8:	5b                   	pop    %ebx
45d6b9:	8b e5                	mov    %ebp,%esp
45d6bb:	5d                   	pop    %ebp
45d6bc:	c2 14 00             	ret    $0x14
45d6bf:	55                   	push   %ebp
45d6c0:	8b ec                	mov    %esp,%ebp
45d6c2:	8b 45 10             	mov    0x10(%ebp),%eax
45d6c5:	83 ec 10             	sub    $0x10,%esp
45d6c8:	56                   	push   %esi
45d6c9:	85 c0                	test   %eax,%eax
45d6cb:	74 48                	je     0x45d715
45d6cd:	8b 75 1c             	mov    0x1c(%ebp),%esi
45d6d0:	85 f6                	test   %esi,%esi
45d6d2:	74 41                	je     0x45d715
45d6d4:	ff 30                	push   (%eax)
45d6d6:	8d 4d f0             	lea    -0x10(%ebp),%ecx