45442d:	8b d3                	mov    %ebx,%edx
45442f:	8b 46 04             	mov    0x4(%esi),%eax
454432:	ff 16                	call   *(%esi)
454434:	8b 43 0c             	mov    0xc(%ebx),%eax
454437:	85 c0                	test   %eax,%eax
454439:	74 0a                	je     0x454445
45443b:	8b 55 08             	mov    0x8(%ebp),%edx
45443e:	52                   	push   %edx
45443f:	e8 dc ff ff ff       	call   0x454420
454444:	59                   	pop    %ecx
454445:	8b 43 08             	mov    0x8(%ebx),%eax
454448:	85 c0                	test   %eax,%eax
45444a:	74 0a                	je     0x454456
45444c:	8b 55 08             	mov    0x8(%ebp),%edx
45444f:	52                   	push   %edx
454450:	e8 cb ff ff ff       	call   0x454420
454455:	59                   	pop    %ecx
454456:	5e                   	pop    %esi
454457:	5b                   	pop    %ebx
454458:	5d                   	pop    %ebp
454459:	c3                   	ret
45445a:	8b c0                	mov    %eax,%eax
45445c:	55                   	push   %ebp
45445d:	8b ec                	mov    %esp,%ebp
45445f:	85 d2                	test   %edx,%edx
454461:	75 03                	jne    0x454466
454463:	8b 50 64             	mov    0x64(%eax),%edx
454466:	55                   	push   %ebp
454467:	8b c2                	mov    %edx,%eax
454469:	e8 b2 ff ff ff       	call   0x454420
45446e:	59                   	pop    %ecx
45446f:	5d                   	pop    %ebp
454470:	c2 08 00             	ret    $0x8
454473:	90                   	nop
454474:	53                   	push   %ebx
454475:	56                   	push   %esi
454476:	57                   	push   %edi
454477:	83 c4 f0             	add    $0xfffffff0,%esp
45447a:	8b f1                	mov    %ecx,%esi
45447c:	e8 73 ff ff ff       	call   0x4543f4
454481:	8b d8                	mov    %eax,%ebx
454483:	85 db                	test   %ebx,%ebx
454485:	75 10                	jne    0x454497
454487:	8b c6                	mov    %esi,%eax
454489:	33 c9                	xor    %ecx,%ecx
45448b:	ba 10 00 00 00       	mov    $0x10,%edx
454490:	e8 c3 ed fa ff       	call   0x403258
454495:	eb 47                	jmp    0x4544de
454497:	ba 01 00 00 00       	mov    $0x1,%edx
45449c:	8b c3                	mov    %ebx,%eax
45449e:	e8 29 f8 ff ff       	call   0x453ccc
4544a3:	50                   	push   %eax
4544a4:	8d 44 24 04          	lea    0x4(%esp),%eax
4544a8:	50                   	push   %eax
4544a9:	ba 02 00 00 00       	mov    $0x2,%edx
4544ae:	8b c3                	mov    %ebx,%eax
4544b0:	e8 17 f8 ff ff       	call   0x453ccc
4544b5:	50                   	push   %eax
4544b6:	ba 01 00 00 00       	mov    $0x1,%edx
4544bb:	8b c3                	mov    %ebx,%eax
4544bd:	e8 86 f7 ff ff       	call   0x453c48
4544c2:	50                   	push   %eax
4544c3:	ba 02 00 00 00       	mov    $0x2,%edx
4544c8:	8b c3                	mov    %ebx,%eax
4544ca:	e8 79 f7 ff ff       	call   0x453c48
4544cf:	5a                   	pop    %edx
4544d0:	59                   	pop    %ecx
4544d1:	e8 d2 28 fc ff       	call   0x416da8
4544d6:	8b fe                	mov    %esi,%edi
4544d8:	8b f4                	mov    %esp,%esi
4544da:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4544db:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4544dc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4544dd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4544de:	83 c4 10             	add    $0x10,%esp
4544e1:	5f                   	pop    %edi
4544e2:	5e                   	pop    %esi
4544e3:	5b                   	pop    %ebx
4544e4:	c3                   	ret
4544e5:	8d 40 00             	lea    0x0(%eax),%eax
4544e8:	e8 eb 06 00 00       	call   0x454bd8
4544ed:	85 c0                	test   %eax,%eax
4544ef:	74 04                	je     0x4544f5
4544f1:	8b 40 04             	mov    0x4(%eax),%eax
4544f4:	c3                   	ret
4544f5:	33 c0                	xor    %eax,%eax
4544f7:	c3                   	ret
4544f8:	55                   	push   %ebp
4544f9:	8b ec                	mov    %esp,%ebp
4544fb:	83 c4 d0             	add    $0xffffffd0,%esp
4544fe:	53                   	push   %ebx
4544ff:	56                   	push   %esi
454500:	57                   	push   %edi
454501:	88 4d ff             	mov    %cl,-0x1(%ebp)
454504:	8b f2                	mov    %edx,%esi
454506:	8b d8                	mov    %eax,%ebx
454508:	80 7e 57 00          	cmpb   $0x0,0x57(%esi)
45450c:	0f 84 f6 01 00 00    	je     0x454708
454512:	8b 43 38             	mov    0x38(%ebx),%eax
454515:	85 c0                	test   %eax,%eax
454517:	74 0d                	je     0x454526
454519:	89 70 04             	mov    %esi,0x4(%eax)
45451c:	e8 03 fa ff ff       	call   0x453f24
454521:	e9 d7 01 00 00       	jmp    0x4546fd
454526:	8b 43 64             	mov    0x64(%ebx),%eax
454529:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
45452d:	0f 85 a3 00 00 00    	jne    0x4545d6
454533:	8d 55 e0             	lea    -0x20(%ebp),%edx
454536:	8b 43 14             	mov    0x14(%ebx),%eax
454539:	8b 08                	mov    (%eax),%ecx
45453b:	ff 51 44             	call   *0x44(%ecx)
45453e:	8d 55 e0             	lea    -0x20(%ebp),%edx
454541:	8b 43 14             	mov    0x14(%ebx),%eax
454544:	8b 08                	mov    (%eax),%ecx
454546:	ff 91 90 00 00 00    	call   *0x90(%ecx)
45454c:	8b 7d e8             	mov    -0x18(%ebp),%edi
45454f:	2b 7d e0             	sub    -0x20(%ebp),%edi
454552:	8b 45 ec             	mov    -0x14(%ebp),%eax
454555:	2b 45 e4             	sub    -0x1c(%ebp),%eax
454558:	89 45 f0             	mov    %eax,-0x10(%ebp)
45455b:	8b 43 14             	mov    0x14(%ebx),%eax
45455e:	80 78 5c 00          	cmpb   $0x0,0x5c(%eax)
454562:	74 1d                	je     0x454581
454564:	85 ff                	test   %edi,%edi
454566:	75 09                	jne    0x454571
454568:	8b c6                	mov    %esi,%eax
45456a:	e8 a5 58 ff ff       	call   0x449e14
45456f:	8b f8                	mov    %eax,%edi
454571:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
454575:	75 0a                	jne    0x454581
454577:	8b c6                	mov    %esi,%eax
454579:	e8 82 58 ff ff       	call   0x449e00
45457e:	89 45 f0             	mov    %eax,-0x10(%ebp)
454581:	8b 45 f0             	mov    -0x10(%ebp),%eax
454584:	50                   	push   %eax
454585:	8d 45 d0             	lea    -0x30(%ebp),%eax
454588:	50                   	push   %eax
454589:	8b cf                	mov    %edi,%ecx
45458b:	8b 55 e4             	mov    -0x1c(%ebp),%edx
45458e:	8b 45 e0             	mov    -0x20(%ebp),%eax
454591:	e8 12 28 fc ff       	call   0x416da8
454596:	56                   	push   %esi
454597:	8d 75 d0             	lea    -0x30(%ebp),%esi
45459a:	8d 7d e0             	lea    -0x20(%ebp),%edi
45459d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45459e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45459f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4545a0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4545a1:	5e                   	pop    %esi
4545a2:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4545a5:	8b d6                	mov    %esi,%edx
4545a7:	8b c3                	mov    %ebx,%eax
4545a9:	8b 38                	mov    (%eax),%edi
4545ab:	ff 17                	call   *(%edi)
4545ad:	8d 55 e0             	lea    -0x20(%ebp),%edx
4545b0:	8b c6                	mov    %esi,%eax
4545b2:	e8 ed 51 ff ff       	call   0x4497a4
4545b7:	8b cb                	mov    %ebx,%ecx
4545b9:	b2 01                	mov    $0x1,%dl
4545bb:	a1 ec 61 44 00       	mov    0x4461ec,%eax
4545c0:	e8 5f f5 ff ff       	call   0x453b24
4545c5:	8b 53 64             	mov    0x64(%ebx),%edx
4545c8:	89 42 08             	mov    %eax,0x8(%edx)
4545cb:	89 50 14             	mov    %edx,0x14(%eax)
4545ce:	89 70 04             	mov    %esi,0x4(%eax)
4545d1:	e9 27 01 00 00       	jmp    0x4546fd
4545d6:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
4545da:	84 c0                	test   %al,%al
4545dc:	74 04                	je     0x4545e2
4545de:	2c 05                	sub    $0x5,%al
4545e0:	75 04                	jne    0x4545e6
4545e2:	c6 45 ff 04          	movb   $0x4,-0x1(%ebp)
4545e6:	8b d6                	mov    %esi,%edx
4545e8:	8b c3                	mov    %ebx,%eax
4545ea:	e8 05 fe ff ff       	call   0x4543f4
4545ef:	85 c0                	test   %eax,%eax
4545f1:	74 09                	je     0x4545fc
4545f3:	8b d0                	mov    %eax,%edx
4545f5:	8b c3                	mov    %ebx,%eax
4545f7:	e8 4c 10 00 00       	call   0x455648
4545fc:	8b 55 08             	mov    0x8(%ebp),%edx
4545ff:	8b c3                	mov    %ebx,%eax
454601:	e8 ee fd ff ff       	call   0x4543f4
454606:	89 45 f8             	mov    %eax,-0x8(%ebp)
454609:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
45460d:	0f b6 80 40 c7 49 00 	movzbl 0x49c740(%eax),%eax
454614:	88 45 f7             	mov    %al,-0x9(%ebp)
454617:	8b 43 64             	mov    0x64(%ebx),%eax
45461a:	e8 29 f5 ff ff       	call   0x453b48
45461f:	48                   	dec    %eax
454620:	75 6c                	jne    0x45468e
454622:	8b 7b 64             	mov    0x64(%ebx),%edi
454625:	0f b6 45 f7          	movzbl -0x9(%ebp),%eax
454629:	88 47 10             	mov    %al,0x10(%edi)
45462c:	0f b6 45 f7          	movzbl -0x9(%ebp),%eax
454630:	fe c8                	dec    %al
454632:	74 06                	je     0x45463a
454634:	fe c8                	dec    %al
454636:	74 2d                	je     0x454665
454638:	eb 54                	jmp    0x45468e
45463a:	8b 47 08             	mov    0x8(%edi),%eax
45463d:	ba 02 00 00 00       	mov    $0x2,%edx
454642:	e8 85 f6 ff ff       	call   0x453ccc
454647:	8b d0                	mov    %eax,%edx
454649:	8b c7                	mov    %edi,%eax
45464b:	e8 78 fa ff ff       	call   0x4540c8
454650:	8b 43 64             	mov    0x64(%ebx),%eax
454653:	8b 40 08             	mov    0x8(%eax),%eax
454656:	ba 01 00 00 00       	mov    $0x1,%edx
45465b:	e8 6c f6 ff ff       	call   0x453ccc
454660:	89 43 68             	mov    %eax,0x68(%ebx)
454663:	eb 29                	jmp    0x45468e
454665:	8b 47 08             	mov    0x8(%edi),%eax
454668:	ba 01 00 00 00       	mov    $0x1,%edx
45466d:	e8 5a f6 ff ff       	call   0x453ccc
454672:	8b d0                	mov    %eax,%edx
454674:	8b c7                	mov    %edi,%eax
454676:	e8 4d fa ff ff       	call   0x4540c8
45467b:	8b 43 64             	mov    0x64(%ebx),%eax
45467e:	8b 40 08             	mov    0x8(%eax),%eax
454681:	ba 02 00 00 00       	mov    $0x2,%edx
454686:	e8 41 f6 ff ff       	call   0x453ccc
45468b:	89 43 68             	mov    %eax,0x68(%ebx)
45468e:	8b cb                	mov    %ebx,%ecx
454690:	b2 01                	mov    $0x1,%dl
454692:	a1 ec 61 44 00       	mov    0x4461ec,%eax
454697:	e8 88 f4 ff ff       	call   0x453b24
45469c:	89 70 04             	mov    %esi,0x4(%eax)
45469f:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4546a3:	74 0c                	je     0x4546b1
4546a5:	8b 55 f8             	mov    -0x8(%ebp),%edx
4546a8:	8b 52 14             	mov    0x14(%edx),%edx
4546ab:	0f b6 52 10          	movzbl 0x10(%edx),%edx
4546af:	eb 07                	jmp    0x4546b8
4546b1:	8b 53 64             	mov    0x64(%ebx),%edx
4546b4:	0f b6 52 10          	movzbl 0x10(%edx),%edx
4546b8:	80 7d f7 00          	cmpb   $0x0,-0x9(%ebp)
4546bc:	75 03                	jne    0x4546c1
4546be:	88 55 f7             	mov    %dl,-0x9(%ebp)
4546c1:	3a 55 f7             	cmp    -0x9(%ebp),%dl
4546c4:	75 1a                	jne    0x4546e0
4546c6:	0f b6 55 ff          	movzbl -0x1(%ebp),%edx
4546ca:	0f b6 92 48 c7 49 00 	movzbl 0x49c748(%edx),%edx
4546d1:	52                   	push   %edx
4546d2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4546d5:	8b d0                	mov    %eax,%edx
4546d7:	8b c3                	mov    %ebx,%eax
4546d9:	e8 de 01 00 00       	call   0x4548bc
4546de:	eb 1d                	jmp    0x4546fd
4546e0:	0f b6 55 f7          	movzbl -0x9(%ebp),%edx
4546e4:	52                   	push   %edx
4546e5:	0f b6 55 ff          	movzbl -0x1(%ebp),%edx
4546e9:	0f b6 92 48 c7 49 00 	movzbl 0x49c748(%edx),%edx
4546f0:	52                   	push   %edx
4546f1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4546f4:	8b d0                	mov    %eax,%edx
4546f6:	8b c3                	mov    %ebx,%eax
4546f8:	e8 17 00 00 00       	call   0x454714
4546fd:	8b 43 14             	mov    0x14(%ebx),%eax
454700:	8b 10                	mov    (%eax),%edx
454702:	ff 92 80 00 00 00    	call   *0x80(%edx)
454708:	5f                   	pop    %edi
454709:	5e                   	pop    %esi
45470a:	5b                   	pop    %ebx
45470b:	8b e5                	mov    %ebp,%esp
45470d:	5d                   	pop    %ebp
45470e:	c2 04 00             	ret    $0x4
454711:	8d 40 00             	lea    0x0(%eax),%eax
454714:	55                   	push   %ebp
454715:	8b ec                	mov    %esp,%ebp
454717:	51                   	push   %ecx
454718:	53                   	push   %ebx
454719:	56                   	push   %esi
45471a:	57                   	push   %edi
45471b:	8b f9                	mov    %ecx,%edi
45471d:	89 55 fc             	mov    %edx,-0x4(%ebp)
454720:	8b f0                	mov    %eax,%esi
454722:	8b ce                	mov    %esi,%ecx
454724:	b2 01                	mov    $0x1,%dl
454726:	a1 ec 61 44 00       	mov    0x4461ec,%eax
45472b:	e8 f4 f3 ff ff       	call   0x453b24
454730:	8b d8                	mov    %eax,%ebx
454732:	0f b6 45 0c          	movzbl 0xc(%ebp),%eax
454736:	88 43 10             	mov    %al,0x10(%ebx)
454739:	85 ff                	test   %edi,%edi
45473b:	0f 85 de 00 00 00    	jne    0x45481f
454741:	8b 56 68             	mov    0x68(%esi),%edx
454744:	8b c3                	mov    %ebx,%eax
454746:	e8 7d f9 ff ff       	call   0x4540c8
45474b:	8b 46 64             	mov    0x64(%esi),%eax
45474e:	e8 4d f9 ff ff       	call   0x4540a0
454753:	89 46 68             	mov    %eax,0x68(%esi)
454756:	0f b6 45 0c          	movzbl 0xc(%ebp),%eax
45475a:	88 46 48             	mov    %al,0x48(%esi)
45475d:	33 c0                	xor    %eax,%eax
45475f:	89 46 40             	mov    %eax,0x40(%esi)
454762:	c7 46 44 00 00 e0 3f 	movl   $0x3fe00000,0x44(%esi)
454769:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
45476d:	74 33                	je     0x4547a2
45476f:	8b 46 64             	mov    0x64(%esi),%eax
454772:	89 43 08             	mov    %eax,0x8(%ebx)
454775:	8b 46 64             	mov    0x64(%esi),%eax
454778:	89 58 14             	mov    %ebx,0x14(%eax)
45477b:	8b 55 fc             	mov    -0x4(%ebp),%edx
45477e:	89 50 0c             	mov    %edx,0xc(%eax)
454781:	8b 55 fc             	mov    -0x4(%ebp),%edx
454784:	89 42 18             	mov    %eax,0x18(%edx)
454787:	8b 45 fc             	mov    -0x4(%ebp),%eax
45478a:	89 58 14             	mov    %ebx,0x14(%eax)
45478d:	89 5e 64             	mov    %ebx,0x64(%esi)
454790:	56                   	push   %esi
454791:	68 d0 59 45 00       	push   $0x4559d0
454796:	8b 53 08             	mov    0x8(%ebx),%edx
454799:	8b c6                	mov    %esi,%eax
45479b:	e8 bc fc ff ff       	call   0x45445c
4547a0:	eb 6c                	jmp    0x45480e
4547a2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4547a5:	89 43 08             	mov    %eax,0x8(%ebx)
4547a8:	8b 46 64             	mov    0x64(%esi),%eax
4547ab:	89 58 14             	mov    %ebx,0x14(%eax)
4547ae:	8b 55 fc             	mov    -0x4(%ebp),%edx
4547b1:	89 50 18             	mov    %edx,0x18(%eax)
4547b4:	8b 55 fc             	mov    -0x4(%ebp),%edx
4547b7:	89 42 0c             	mov    %eax,0xc(%edx)
4547ba:	8b 45 fc             	mov    -0x4(%ebp),%eax
4547bd:	89 58 14             	mov    %ebx,0x14(%eax)
4547c0:	89 5e 64             	mov    %ebx,0x64(%esi)
4547c3:	56                   	push   %esi
4547c4:	68 d0 59 45 00       	push   $0x4559d0
4547c9:	8b 53 08             	mov    0x8(%ebx),%edx
4547cc:	8b c6                	mov    %esi,%eax
4547ce:	e8 89 fc ff ff       	call   0x45445c
4547d3:	8b 46 64             	mov    0x64(%esi),%eax
4547d6:	e8 c5 f8 ff ff       	call   0x4540a0
4547db:	d1 f8                	sar    $1,%eax
4547dd:	79 03                	jns    0x4547e2
4547df:	83 d0 00             	adc    $0x0,%eax
4547e2:	89 46 4c             	mov    %eax,0x4c(%esi)
4547e5:	56                   	push   %esi
4547e6:	68 20 5e 45 00       	push   $0x455e20
4547eb:	8b 53 08             	mov    0x8(%ebx),%edx
4547ee:	8b c6                	mov    %esi,%eax
4547f0:	e8 67 fc ff ff       	call   0x45445c
4547f5:	8b 46 64             	mov    0x64(%esi),%eax
4547f8:	e8 a3 f8 ff ff       	call   0x4540a0
4547fd:	8b d0                	mov    %eax,%edx
4547ff:	d1 fa                	sar    $1,%edx
454801:	79 03                	jns    0x454806
454803:	83 d2 00             	adc    $0x0,%edx
454806:	8b 45 fc             	mov    -0x4(%ebp),%eax