45c418:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
45c41e:	e8 14 07 fb ff       	call   0x40cb37
45c423:	8d 8d 64 ff ff ff    	lea    -0x9c(%ebp),%ecx
45c429:	e8 09 07 fb ff       	call   0x40cb37
45c42e:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
45c431:	e8 01 07 fb ff       	call   0x40cb37
45c436:	5f                   	pop    %edi
45c437:	8b c6                	mov    %esi,%eax
45c439:	5e                   	pop    %esi
45c43a:	5b                   	pop    %ebx
45c43b:	c9                   	leave
45c43c:	c2 14 00             	ret    $0x14
45c43f:	55                   	push   %ebp
45c440:	8b ec                	mov    %esp,%ebp
45c442:	81 ec 08 01 00 00    	sub    $0x108,%esp
45c448:	8b 45 18             	mov    0x18(%ebp),%eax
45c44b:	53                   	push   %ebx
45c44c:	8b 40 08             	mov    0x8(%eax),%eax
45c44f:	33 db                	xor    %ebx,%ebx
45c451:	56                   	push   %esi
45c452:	8b 75 10             	mov    0x10(%ebp),%esi
45c455:	57                   	push   %edi
45c456:	8b f9                	mov    %ecx,%edi
45c458:	89 7d e4             	mov    %edi,-0x1c(%ebp)
45c45b:	89 45 f4             	mov    %eax,-0xc(%ebp)
45c45e:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
45c461:	89 5d d8             	mov    %ebx,-0x28(%ebp)
45c464:	89 5d dc             	mov    %ebx,-0x24(%ebp)
45c467:	89 5d e0             	mov    %ebx,-0x20(%ebp)
45c46a:	c7 45 cc fd ff ff ff 	movl   $0xfffffffd,-0x34(%ebp)
45c471:	89 5d f0             	mov    %ebx,-0x10(%ebp)
45c474:	88 5d fb             	mov    %bl,-0x5(%ebp)
45c477:	85 f6                	test   %esi,%esi
45c479:	0f 84 04 04 00 00    	je     0x45c883
45c47f:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
45c482:	0f 84 fb 03 00 00    	je     0x45c883
45c488:	39 5d 14             	cmp    %ebx,0x14(%ebp)
45c48b:	0f 84 f2 03 00 00    	je     0x45c883
45c491:	8b ce                	mov    %esi,%ecx
45c493:	e8 e8 06 00 00       	call   0x45cb80
45c498:	84 c0                	test   %al,%al
45c49a:	75 11                	jne    0x45c4ad
45c49c:	6a 01                	push   $0x1
45c49e:	68 34 40 4b 00       	push   $0x4b4034
45c4a3:	53                   	push   %ebx
45c4a4:	6a 02                	push   $0x2
45c4a6:	8b cf                	mov    %edi,%ecx
45c4a8:	e9 e1 03 00 00       	jmp    0x45c88e
45c4ad:	8b ce                	mov    %esi,%ecx
45c4af:	e8 74 f0 fe ff       	call   0x44b528
45c4b4:	84 c0                	test   %al,%al
45c4b6:	0f 84 2d 03 00 00    	je     0x45c7e9
45c4bc:	6a 08                	push   $0x8
45c4be:	58                   	pop    %eax
45c4bf:	39 46 0c             	cmp    %eax,0xc(%esi)
45c4c2:	75 04                	jne    0x45c4c8
45c4c4:	8b 06                	mov    (%esi),%eax
45c4c6:	eb 02                	jmp    0x45c4ca
45c4c8:	8b c3                	mov    %ebx,%eax
45c4ca:	8b 70 08             	mov    0x8(%eax),%esi
45c4cd:	89 75 ec             	mov    %esi,-0x14(%ebp)
45c4d0:	85 f6                	test   %esi,%esi
45c4d2:	0f 84 9c 03 00 00    	je     0x45c874
45c4d8:	8b 55 14             	mov    0x14(%ebp),%edx
45c4db:	8d 45 f0             	lea    -0x10(%ebp),%eax
45c4de:	50                   	push   %eax
45c4df:	8b ce                	mov    %esi,%ecx
45c4e1:	89 9d fc fe ff ff    	mov    %ebx,-0x104(%ebp)
45c4e7:	e8 6f d9 fd ff       	call   0x439e5b
45c4ec:	59                   	pop    %ecx
45c4ed:	85 c0                	test   %eax,%eax
45c4ef:	79 0a                	jns    0x45c4fb
45c4f1:	6a 01                	push   $0x1
45c4f3:	53                   	push   %ebx
45c4f4:	8b cf                	mov    %edi,%ecx
45c4f6:	e9 91 03 00 00       	jmp    0x45c88c
45c4fb:	8b 4d 08             	mov    0x8(%ebp),%ecx
45c4fe:	33 c0                	xor    %eax,%eax
45c500:	40                   	inc    %eax
45c501:	89 4d 08             	mov    %ecx,0x8(%ebp)
45c504:	66 3b c8             	cmp    %ax,%cx
45c507:	75 4d                	jne    0x45c556
45c509:	8b 55 f0             	mov    -0x10(%ebp),%edx
45c50c:	c7 45 08 03 00 00 00 	movl   $0x3,0x8(%ebp)
45c513:	85 d2                	test   %edx,%edx
45c515:	74 3f                	je     0x45c556
45c517:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
45c51d:	50                   	push   %eax
45c51e:	51                   	push   %ecx
45c51f:	ff 75 14             	push   0x14(%ebp)
45c522:	8b ce                	mov    %esi,%ecx
45c524:	e8 07 d6 fd ff       	call   0x439b30
45c529:	83 c4 0c             	add    $0xc,%esp
45c52c:	85 c0                	test   %eax,%eax
45c52e:	78 26                	js     0x45c556
45c530:	f6 85 00 ff ff ff 01 	testb  $0x1,-0x100(%ebp)
45c537:	74 0d                	je     0x45c546
45c539:	66 39 9d 08 ff ff ff 	cmp    %bx,-0xf8(%ebp)
45c540:	75 04                	jne    0x45c546
45c542:	c6 45 fb 01          	movb   $0x1,-0x5(%ebp)
45c546:	83 bd 00 ff ff ff 01 	cmpl   $0x1,-0x100(%ebp)
45c54d:	75 07                	jne    0x45c556
45c54f:	c7 45 08 01 00 00 00 	movl   $0x1,0x8(%ebp)
45c556:	8b 75 f4             	mov    -0xc(%ebp),%esi
45c559:	6a 10                	push   $0x10
45c55b:	46                   	inc    %esi
45c55c:	33 c9                	xor    %ecx,%ecx
45c55e:	5a                   	pop    %edx
45c55f:	8b c6                	mov    %esi,%eax
45c561:	f7 e2                	mul    %edx
45c563:	0f 90 c1             	seto   %cl
45c566:	6a 04                	push   $0x4
45c568:	5a                   	pop    %edx
45c569:	f7 d9                	neg    %ecx
45c56b:	0b c8                	or     %eax,%ecx
45c56d:	33 c0                	xor    %eax,%eax
45c56f:	03 ca                	add    %edx,%ecx
45c571:	0f 92 c0             	setb   %al
45c574:	f7 d8                	neg    %eax
45c576:	0b c1                	or     %ecx,%eax
45c578:	50                   	push   %eax
45c579:	e8 f7 28 fc ff       	call   0x41ee75
45c57e:	59                   	pop    %ecx
45c57f:	85 c0                	test   %eax,%eax
45c581:	74 1d                	je     0x45c5a0
45c583:	68 69 94 43 00       	push   $0x439469
45c588:	56                   	push   %esi
45c589:	89 30                	mov    %esi,(%eax)
45c58b:	83 c0 04             	add    $0x4,%eax
45c58e:	6a 10                	push   $0x10
45c590:	5a                   	pop    %edx
45c591:	8b c8                	mov    %eax,%ecx
45c593:	89 45 14             	mov    %eax,0x14(%ebp)
45c596:	e8 d1 83 fa ff       	call   0x40496c
45c59b:	8b 4d 14             	mov    0x14(%ebp),%ecx
45c59e:	eb 05                	jmp    0x45c5a5
45c5a0:	8b cb                	mov    %ebx,%ecx
45c5a2:	89 4d 14             	mov    %ecx,0x14(%ebp)
45c5a5:	8b 45 f4             	mov    -0xc(%ebp),%eax
45c5a8:	8b f3                	mov    %ebx,%esi
45c5aa:	85 c0                	test   %eax,%eax
45c5ac:	74 2c                	je     0x45c5da
45c5ae:	8b f8                	mov    %eax,%edi
45c5b0:	8b df                	mov    %edi,%ebx
45c5b2:	c1 e3 04             	shl    $0x4,%ebx
45c5b5:	83 c3 f0             	add    $0xfffffff0,%ebx
45c5b8:	03 d9                	add    %ecx,%ebx
45c5ba:	8b 45 18             	mov    0x18(%ebp),%eax
45c5bd:	8b cb                	mov    %ebx,%ecx
45c5bf:	8b 40 04             	mov    0x4(%eax),%eax
45c5c2:	ff 34 b0             	push   (%eax,%esi,4)
45c5c5:	e8 e5 ce fd ff       	call   0x4394af
45c5ca:	46                   	inc    %esi
45c5cb:	83 eb 10             	sub    $0x10,%ebx
45c5ce:	3b f7                	cmp    %edi,%esi
45c5d0:	72 e8                	jb     0x45c5ba
45c5d2:	8b 7d e4             	mov    -0x1c(%ebp),%edi
45c5d5:	8b 45 f4             	mov    -0xc(%ebp),%eax
45c5d8:	33 db                	xor    %ebx,%ebx
45c5da:	83 bd fc fe ff ff 00 	cmpl   $0x0,-0x104(%ebp)
45c5e1:	0f 84 80 00 00 00    	je     0x45c667
45c5e7:	8b cb                	mov    %ebx,%ecx
45c5e9:	89 4d 10             	mov    %ecx,0x10(%ebp)
45c5ec:	85 c0                	test   %eax,%eax
45c5ee:	74 77                	je     0x45c667
45c5f0:	8b 75 14             	mov    0x14(%ebp),%esi
45c5f3:	8b 7d 18             	mov    0x18(%ebp),%edi
45c5f6:	c1 e0 04             	shl    $0x4,%eax
45c5f9:	83 c6 f0             	add    $0xfffffff0,%esi
45c5fc:	6a 02                	push   $0x2
45c5fe:	03 f0                	add    %eax,%esi
45c600:	8b 45 f4             	mov    -0xc(%ebp),%eax
45c603:	5a                   	pop    %edx
45c604:	66 39 94 8d 0e ff ff 	cmp    %dx,-0xf2(%ebp,%ecx,4)
45c60b:	ff
45c60c:	75 4b                	jne    0x45c659
45c60e:	56                   	push   %esi
45c60f:	ff 15 4c d4 48 00    	call   *0x48d44c
45c615:	8b 4d 10             	mov    0x10(%ebp),%ecx
45c618:	ba 08 40 00 00       	mov    $0x4008,%edx
45c61d:	0f b7 84 8d 0c ff ff 	movzwl -0xf4(%ebp,%ecx,4),%eax
45c624:	ff
45c625:	66 89 06             	mov    %ax,(%esi)
45c628:	66 3b c2             	cmp    %dx,%ax
45c62b:	75 17                	jne    0x45c644
45c62d:	68 00 dc 49 00       	push   $0x49dc00
45c632:	ff 15 2c d4 48 00    	call   *0x48d42c
45c638:	8b 4d 10             	mov    0x10(%ebp),%ecx
45c63b:	89 45 d0             	mov    %eax,-0x30(%ebp)
45c63e:	8d 45 d0             	lea    -0x30(%ebp),%eax
45c641:	89 46 08             	mov    %eax,0x8(%esi)
45c644:	8b 47 04             	mov    0x4(%edi),%eax
45c647:	6a 02                	push   $0x2
45c649:	8b 04 88             	mov    (%eax,%ecx,4),%eax
45c64c:	5a                   	pop    %edx
45c64d:	83 78 0c 06          	cmpl   $0x6,0xc(%eax)
45c651:	8b 45 f4             	mov    -0xc(%ebp),%eax
45c654:	74 03                	je     0x45c659
45c656:	89 76 08             	mov    %esi,0x8(%esi)
45c659:	41                   	inc    %ecx
45c65a:	83 ee 10             	sub    $0x10,%esi
45c65d:	89 4d 10             	mov    %ecx,0x10(%ebp)
45c660:	3b c8                	cmp    %eax,%ecx
45c662:	72 a0                	jb     0x45c604
45c664:	8b 7d e4             	mov    -0x1c(%ebp),%edi
45c667:	f6 45 08 0c          	testb  $0xc,0x8(%ebp)
45c66b:	89 45 dc             	mov    %eax,-0x24(%ebp)
45c66e:	8b 45 14             	mov    0x14(%ebp),%eax
45c671:	89 45 d4             	mov    %eax,-0x2c(%ebp)
45c674:	74 0d                	je     0x45c683
45c676:	8d 45 cc             	lea    -0x34(%ebp),%eax
45c679:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
45c680:	89 45 d8             	mov    %eax,-0x28(%ebp)
45c683:	8d 45 bc             	lea    -0x44(%ebp),%eax
45c686:	50                   	push   %eax
45c687:	ff 15 64 d4 48 00    	call   *0x48d464
45c68d:	6a 20                	push   $0x20
45c68f:	8d 45 9c             	lea    -0x64(%ebp),%eax
45c692:	53                   	push   %ebx
45c693:	50                   	push   %eax
45c694:	e8 b7 46 fc ff       	call   0x420d50
45c699:	8b 4d ec             	mov    -0x14(%ebp),%ecx
45c69c:	8b 75 08             	mov    0x8(%ebp),%esi
45c69f:	8b 01                	mov    (%ecx),%eax
45c6a1:	83 c4 0c             	add    $0xc,%esp
45c6a4:	80 7d fb 00          	cmpb   $0x0,-0x5(%ebp)
45c6a8:	8d 55 e8             	lea    -0x18(%ebp),%edx
45c6ab:	52                   	push   %edx
45c6ac:	8d 55 9c             	lea    -0x64(%ebp),%edx
45c6af:	52                   	push   %edx
45c6b0:	74 03                	je     0x45c6b5
45c6b2:	53                   	push   %ebx
45c6b3:	eb 04                	jmp    0x45c6b9
45c6b5:	8d 55 bc             	lea    -0x44(%ebp),%edx
45c6b8:	52                   	push   %edx
45c6b9:	8d 55 d4             	lea    -0x2c(%ebp),%edx
45c6bc:	52                   	push   %edx
45c6bd:	56                   	push   %esi
45c6be:	68 00 08 00 00       	push   $0x800
45c6c3:	68 3c d9 48 00       	push   $0x48d93c
45c6c8:	ff 75 f0             	push   -0x10(%ebp)
45c6cb:	51                   	push   %ecx
45c6cc:	ff 50 18             	call   *0x18(%eax)
45c6cf:	3d 03 00 02 80       	cmp    $0x80020003,%eax
45c6d4:	75 3c                	jne    0x45c712
45c6d6:	83 7d e0 01          	cmpl   $0x1,-0x20(%ebp)
45c6da:	75 4d                	jne    0x45c729
45c6dc:	8b 55 ec             	mov    -0x14(%ebp),%edx
45c6df:	6a 04                	push   $0x4
45c6e1:	59                   	pop    %ecx
45c6e2:	33 c0                	xor    %eax,%eax
45c6e4:	66 3b f1             	cmp    %cx,%si
45c6e7:	8b 0a                	mov    (%edx),%ecx
45c6e9:	0f 94 c0             	sete   %al
45c6ec:	8d 75 e8             	lea    -0x18(%ebp),%esi
45c6ef:	56                   	push   %esi
45c6f0:	8d 75 9c             	lea    -0x64(%ebp),%esi
45c6f3:	56                   	push   %esi
45c6f4:	53                   	push   %ebx
45c6f5:	8d 75 d4             	lea    -0x2c(%ebp),%esi
45c6f8:	56                   	push   %esi
45c6f9:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
45c700:	50                   	push   %eax
45c701:	68 00 08 00 00       	push   $0x800
45c706:	68 3c d9 48 00       	push   $0x48d93c
45c70b:	ff 75 f0             	push   -0x10(%ebp)
45c70e:	52                   	push   %edx
45c70f:	ff 51 18             	call   *0x18(%ecx)
45c712:	85 c0                	test   %eax,%eax
45c714:	79 26                	jns    0x45c73c
45c716:	b9 09 00 02 80       	mov    $0x80020009,%ecx
45c71b:	3b c1                	cmp    %ecx,%eax
45c71d:	75 0a                	jne    0x45c729
45c71f:	6a 01                	push   $0x1
45c721:	53                   	push   %ebx
45c722:	8d 45 9c             	lea    -0x64(%ebp),%eax
45c725:	50                   	push   %eax
45c726:	51                   	push   %ecx
45c727:	eb 05                	jmp    0x45c72e
45c729:	6a 01                	push   $0x1
45c72b:	53                   	push   %ebx
45c72c:	53                   	push   %ebx
45c72d:	50                   	push   %eax
45c72e:	8b cf                	mov    %edi,%ecx
45c730:	e8 88 f6 ff ff       	call   0x45bdbd
45c735:	8b d8                	mov    %eax,%ebx
45c737:	e9 8d 00 00 00       	jmp    0x45c7c9
45c73c:	8b 07                	mov    (%edi),%eax
45c73e:	53                   	push   %ebx
45c73f:	8b 48 04             	mov    0x4(%eax),%ecx
45c742:	53                   	push   %ebx
45c743:	03 cf                	add    %edi,%ecx
45c745:	e8 02 08 ff ff       	call   0x44cf4c
45c74a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45c74d:	8d 45 bc             	lea    -0x44(%ebp),%eax
45c750:	50                   	push   %eax
45c751:	e8 6f d6 fe ff       	call   0x449dc5
45c756:	8b 45 f4             	mov    -0xc(%ebp),%eax
45c759:	8b f3                	mov    %ebx,%esi
45c75b:	85 c0                	test   %eax,%eax
45c75d:	74 6a                	je     0x45c7c9
45c75f:	8b 7d 14             	mov    0x14(%ebp),%edi
45c762:	c1 e0 04             	shl    $0x4,%eax
45c765:	83 c7 f0             	add    $0xfffffff0,%edi
45c768:	03 f8                	add    %eax,%edi
45c76a:	8b 45 18             	mov    0x18(%ebp),%eax
45c76d:	8b 40 04             	mov    0x4(%eax),%eax
45c770:	8b 04 b0             	mov    (%eax,%esi,4),%eax
45c773:	83 78 0c 06          	cmpl   $0x6,0xc(%eax)
45c777:	75 47                	jne    0x45c7c0
45c779:	83 bd fc fe ff ff 00 	cmpl   $0x0,-0x104(%ebp)
45c780:	74 2c                	je     0x45c7ae
45c782:	0f b7 8c b5 0c ff ff 	movzwl -0xf4(%ebp,%esi,4),%ecx
45c789:	ff
45c78a:	ba 24 40 00 00       	mov    $0x4024,%edx
45c78f:	66 3b ca             	cmp    %dx,%cx
45c792:	74 2c                	je     0x45c7c0
45c794:	f6 84 b5 0e ff ff ff 	testb  $0x2,-0xf2(%ebp,%esi,4)
45c79b:	02
45c79c:	75 10                	jne    0x45c7ae
45c79e:	f7 c1 00 40 00 00    	test   $0x4000,%ecx
45c7a4:	75 08                	jne    0x45c7ae
45c7a6:	6a 08                	push   $0x8
45c7a8:	59                   	pop    %ecx
45c7a9:	66 39 0f             	cmp    %cx,(%edi)
45c7ac:	75 12                	jne    0x45c7c0
45c7ae:	83 78 0c 06          	cmpl   $0x6,0xc(%eax)
45c7b2:	75 04                	jne    0x45c7b8
45c7b4:	8b 08                	mov    (%eax),%ecx
45c7b6:	eb 02                	jmp    0x45c7ba
45c7b8:	8b cb                	mov    %ebx,%ecx
45c7ba:	57                   	push   %edi
45c7bb:	e8 05 d6 fe ff       	call   0x449dc5
45c7c0:	46                   	inc    %esi
45c7c1:	83 ef 10             	sub    $0x10,%edi
45c7c4:	3b 75 f4             	cmp    -0xc(%ebp),%esi
45c7c7:	72 a1                	jb     0x45c76a
45c7c9:	8d 45 bc             	lea    -0x44(%ebp),%eax
45c7cc:	50                   	push   %eax
45c7cd:	ff 15 4c d4 48 00    	call   *0x48d44c
45c7d3:	8b 45 14             	mov    0x14(%ebp),%eax
45c7d6:	85 c0                	test   %eax,%eax
45c7d8:	74 08                	je     0x45c7e2
45c7da:	51                   	push   %ecx
45c7db:	8b c8                	mov    %eax,%ecx
45c7dd:	e8 6f 40 fe ff       	call   0x440851
45c7e2:	8b c3                	mov    %ebx,%eax
45c7e4:	e9 aa 00 00 00       	jmp    0x45c893
45c7e9:	6a 0c                	push   $0xc
45c7eb:	8b ce                	mov    %esi,%ecx