45550b:	2c 02                	sub    $0x2,%al
45550d:	73 0d                	jae    0x45551c
45550f:	8b 43 4c             	mov    0x4c(%ebx),%eax
455512:	d1 f8                	sar    $1,%eax
455514:	79 03                	jns    0x455519
455516:	83 d0 00             	adc    $0x0,%eax
455519:	89 45 f4             	mov    %eax,-0xc(%ebp)
45551c:	0f b6 45 0c          	movzbl 0xc(%ebp),%eax
455520:	2c 02                	sub    $0x2,%al
455522:	74 09                	je     0x45552d
455524:	2c 02                	sub    $0x2,%al
455526:	75 0b                	jne    0x455533
455528:	01 7d fc             	add    %edi,-0x4(%ebp)
45552b:	eb 06                	jmp    0x455533
45552d:	8b 45 f4             	mov    -0xc(%ebp),%eax
455530:	01 45 f8             	add    %eax,-0x8(%ebp)
455533:	8b 45 f4             	mov    -0xc(%ebp),%eax
455536:	50                   	push   %eax
455537:	8d 45 e4             	lea    -0x1c(%ebp),%eax
45553a:	50                   	push   %eax
45553b:	8b cf                	mov    %edi,%ecx
45553d:	8b 55 f8             	mov    -0x8(%ebp),%edx
455540:	8b 45 fc             	mov    -0x4(%ebp),%eax
455543:	e8 60 18 fc ff       	call   0x416da8
455548:	8b 45 08             	mov    0x8(%ebp),%eax
45554b:	56                   	push   %esi
45554c:	8d 75 e4             	lea    -0x1c(%ebp),%esi
45554f:	8b f8                	mov    %eax,%edi
455551:	a5                   	movsl  %ds:(%esi),%es:(%edi)
455552:	a5                   	movsl  %ds:(%esi),%es:(%edi)
455553:	a5                   	movsl  %ds:(%esi),%es:(%edi)
455554:	a5                   	movsl  %ds:(%esi),%es:(%edi)
455555:	5e                   	pop    %esi
455556:	6a 02                	push   $0x2
455558:	8b 45 08             	mov    0x8(%ebp),%eax
45555b:	50                   	push   %eax
45555c:	6a 00                	push   $0x0
45555e:	8b 46 14             	mov    0x14(%esi),%eax
455561:	e8 46 c4 ff ff       	call   0x4519ac
455566:	50                   	push   %eax
455567:	e8 1c 1c fb ff       	call   0x407188
45556c:	5f                   	pop    %edi
45556d:	5e                   	pop    %esi
45556e:	5b                   	pop    %ebx
45556f:	8b e5                	mov    %ebp,%esp
455571:	5d                   	pop    %ebp
455572:	c2 08 00             	ret    $0x8
455575:	8d 40 00             	lea    0x0(%eax),%eax
455578:	55                   	push   %ebp
455579:	8b ec                	mov    %esp,%ebp
45557b:	53                   	push   %ebx
45557c:	8b d8                	mov    %eax,%ebx
45557e:	8b 43 0c             	mov    0xc(%ebx),%eax
455581:	85 c0                	test   %eax,%eax
455583:	74 0a                	je     0x45558f
455585:	8b 55 08             	mov    0x8(%ebp),%edx
455588:	52                   	push   %edx
455589:	e8 ea ff ff ff       	call   0x455578
45558e:	59                   	pop    %ecx
45558f:	8b 43 08             	mov    0x8(%ebx),%eax
455592:	85 c0                	test   %eax,%eax
455594:	74 0a                	je     0x4555a0
455596:	8b 55 08             	mov    0x8(%ebp),%edx
455599:	52                   	push   %edx
45559a:	e8 d9 ff ff ff       	call   0x455578
45559f:	59                   	pop    %ecx
4555a0:	8b c3                	mov    %ebx,%eax
4555a2:	e8 75 e3 fa ff       	call   0x40391c
4555a7:	5b                   	pop    %ebx
4555a8:	5d                   	pop    %ebp
4555a9:	c3                   	ret
4555aa:	8b c0                	mov    %eax,%eax
4555ac:	55                   	push   %ebp
4555ad:	8b ec                	mov    %esp,%ebp
4555af:	53                   	push   %ebx
4555b0:	56                   	push   %esi
4555b1:	8b da                	mov    %edx,%ebx
4555b3:	8b f0                	mov    %eax,%esi
4555b5:	85 db                	test   %ebx,%ebx
4555b7:	74 48                	je     0x455601
4555b9:	8b 43 08             	mov    0x8(%ebx),%eax
4555bc:	85 c0                	test   %eax,%eax
4555be:	74 07                	je     0x4555c7
4555c0:	55                   	push   %ebp
4555c1:	e8 b2 ff ff ff       	call   0x455578
4555c6:	59                   	pop    %ecx
4555c7:	8b 43 18             	mov    0x18(%ebx),%eax
4555ca:	85 c0                	test   %eax,%eax
4555cc:	74 08                	je     0x4555d6
4555ce:	8b 53 0c             	mov    0xc(%ebx),%edx
4555d1:	89 50 0c             	mov    %edx,0xc(%eax)
4555d4:	eb 0d                	jmp    0x4555e3
4555d6:	8b 43 14             	mov    0x14(%ebx),%eax
4555d9:	85 c0                	test   %eax,%eax
4555db:	74 06                	je     0x4555e3
4555dd:	8b 53 0c             	mov    0xc(%ebx),%edx
4555e0:	89 50 08             	mov    %edx,0x8(%eax)
4555e3:	8b 43 0c             	mov    0xc(%ebx),%eax
4555e6:	85 c0                	test   %eax,%eax
4555e8:	74 06                	je     0x4555f0
4555ea:	8b 53 18             	mov    0x18(%ebx),%edx
4555ed:	89 50 18             	mov    %edx,0x18(%eax)
4555f0:	3b 5e 64             	cmp    0x64(%esi),%ebx
4555f3:	75 05                	jne    0x4555fa
4555f5:	33 c0                	xor    %eax,%eax
4555f7:	89 46 64             	mov    %eax,0x64(%esi)
4555fa:	8b c3                	mov    %ebx,%eax
4555fc:	e8 1b e3 fa ff       	call   0x40391c
455601:	5e                   	pop    %esi
455602:	5b                   	pop    %ebx
455603:	5d                   	pop    %ebp
455604:	c3                   	ret
455605:	8d 40 00             	lea    0x0(%eax),%eax
455608:	53                   	push   %ebx
455609:	56                   	push   %esi
45560a:	8b f2                	mov    %edx,%esi
45560c:	8b d8                	mov    %eax,%ebx
45560e:	8b d6                	mov    %esi,%edx
455610:	8b c3                	mov    %ebx,%eax
455612:	e8 dd ed ff ff       	call   0x4543f4
455617:	85 c0                	test   %eax,%eax
455619:	74 27                	je     0x455642
45561b:	3b 43 38             	cmp    0x38(%ebx),%eax
45561e:	75 07                	jne    0x455627
455620:	33 d2                	xor    %edx,%edx
455622:	89 50 04             	mov    %edx,0x4(%eax)
455625:	eb 09                	jmp    0x455630
455627:	8b d0                	mov    %eax,%edx
455629:	8b c3                	mov    %ebx,%eax
45562b:	e8 18 00 00 00       	call   0x455648
455630:	c6 86 90 00 00 00 00 	movb   $0x0,0x90(%esi)
455637:	8b 43 14             	mov    0x14(%ebx),%eax
45563a:	8b 10                	mov    (%eax),%edx
45563c:	ff 92 80 00 00 00    	call   *0x80(%edx)
455642:	5e                   	pop    %esi
455643:	5b                   	pop    %ebx
455644:	c3                   	ret
455645:	8d 40 00             	lea    0x0(%eax),%eax
455648:	55                   	push   %ebp
455649:	8b ec                	mov    %esp,%ebp
45564b:	33 c9                	xor    %ecx,%ecx
45564d:	51                   	push   %ecx
45564e:	51                   	push   %ecx
45564f:	51                   	push   %ecx
455650:	51                   	push   %ecx
455651:	53                   	push   %ebx
455652:	56                   	push   %esi
455653:	57                   	push   %edi
455654:	8b da                	mov    %edx,%ebx
455656:	8b f0                	mov    %eax,%esi
455658:	33 c0                	xor    %eax,%eax
45565a:	55                   	push   %ebp
45565b:	68 d9 58 45 00       	push   $0x4558d9
455660:	64 ff 30             	push   %fs:(%eax)
455663:	64 89 20             	mov    %esp,%fs:(%eax)
455666:	85 db                	test   %ebx,%ebx
455668:	75 3b                	jne    0x4556a5
45566a:	8d 55 fc             	lea    -0x4(%ebp),%edx
45566d:	a1 38 75 4a 00       	mov    0x4a7538,%eax
455672:	e8 fd 0f fb ff       	call   0x406674
455677:	8d 45 fc             	lea    -0x4(%ebp),%eax
45567a:	50                   	push   %eax
45567b:	8d 55 f8             	lea    -0x8(%ebp),%edx
45567e:	a1 00 74 4a 00       	mov    0x4a7400,%eax
455683:	e8 ec 0f fb ff       	call   0x406674
455688:	8b 55 f8             	mov    -0x8(%ebp),%edx
45568b:	58                   	pop    %eax
45568c:	e8 83 f3 fa ff       	call   0x404a14
455691:	8b 4d fc             	mov    -0x4(%ebp),%ecx
455694:	b2 01                	mov    $0x1,%dl
455696:	a1 38 7b 40 00       	mov    0x407b38,%eax
45569b:	e8 70 6d fb ff       	call   0x40c410
4556a0:	e8 eb ea fa ff       	call   0x404190
4556a5:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
4556a9:	75 3b                	jne    0x4556e6
4556ab:	8d 55 f4             	lea    -0xc(%ebp),%edx
4556ae:	a1 38 75 4a 00       	mov    0x4a7538,%eax
4556b3:	e8 bc 0f fb ff       	call   0x406674
4556b8:	8d 45 f4             	lea    -0xc(%ebp),%eax
4556bb:	50                   	push   %eax
4556bc:	8d 55 f0             	lea    -0x10(%ebp),%edx
4556bf:	a1 14 77 4a 00       	mov    0x4a7714,%eax
4556c4:	e8 ab 0f fb ff       	call   0x406674
4556c9:	8b 55 f0             	mov    -0x10(%ebp),%edx
4556cc:	58                   	pop    %eax
4556cd:	e8 42 f3 fa ff       	call   0x404a14
4556d2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4556d5:	b2 01                	mov    $0x1,%dl
4556d7:	a1 38 7b 40 00       	mov    0x407b38,%eax
4556dc:	e8 2f 6d fb ff       	call   0x40c410
4556e1:	e8 aa ea fa ff       	call   0x404190
4556e6:	8b 43 14             	mov    0x14(%ebx),%eax
4556e9:	e8 5a e4 ff ff       	call   0x453b48
4556ee:	83 f8 01             	cmp    $0x1,%eax
4556f1:	75 11                	jne    0x455704
4556f3:	8b 46 64             	mov    0x64(%esi),%eax
4556f6:	33 d2                	xor    %edx,%edx
4556f8:	89 50 08             	mov    %edx,0x8(%eax)
4556fb:	c6 40 10 00          	movb   $0x0,0x10(%eax)
4556ff:	e9 b3 01 00 00       	jmp    0x4558b7
455704:	83 f8 02             	cmp    $0x2,%eax
455707:	0f 85 52 01 00 00    	jne    0x45585f
45570d:	8b 43 18             	mov    0x18(%ebx),%eax
455710:	85 c0                	test   %eax,%eax
455712:	75 05                	jne    0x455719
455714:	8b 7b 0c             	mov    0xc(%ebx),%edi
455717:	eb 02                	jmp    0x45571b
455719:	8b f8                	mov    %eax,%edi
45571b:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
45571f:	74 5f                	je     0x455780
455721:	8b 56 64             	mov    0x64(%esi),%edx
455724:	8b 43 14             	mov    0x14(%ebx),%eax
455727:	3b d0                	cmp    %eax,%edx
455729:	75 2a                	jne    0x455755
45572b:	8b 46 64             	mov    0x64(%esi),%eax
45572e:	89 78 08             	mov    %edi,0x8(%eax)
455731:	33 c0                	xor    %eax,%eax
455733:	89 47 18             	mov    %eax,0x18(%edi)
455736:	33 c0                	xor    %eax,%eax
455738:	89 47 0c             	mov    %eax,0xc(%edi)
45573b:	8b 46 64             	mov    0x64(%esi),%eax
45573e:	e8 bd e4 ff ff       	call   0x453c00
455743:	8b d0                	mov    %eax,%edx
455745:	8b c7                	mov    %edi,%eax
455747:	e8 7c e9 ff ff       	call   0x4540c8
45574c:	8b c7                	mov    %edi,%eax
45574e:	e8 d1 e7 ff ff       	call   0x453f24
455753:	eb 16                	jmp    0x45576b
455755:	c6 40 10 00          	movb   $0x0,0x10(%eax)
455759:	8b 57 04             	mov    0x4(%edi),%edx
45575c:	89 50 04             	mov    %edx,0x4(%eax)
45575f:	33 d2                	xor    %edx,%edx
455761:	89 50 08             	mov    %edx,0x8(%eax)
455764:	8b c7                	mov    %edi,%eax
455766:	e8 b1 e1 fa ff       	call   0x40391c
45576b:	56                   	push   %esi
45576c:	68 58 5f 45 00       	push   $0x455f58
455771:	8b 53 14             	mov    0x14(%ebx),%edx
455774:	8b c6                	mov    %esi,%eax
455776:	e8 e1 ec ff ff       	call   0x45445c
45577b:	e9 37 01 00 00       	jmp    0x4558b7
455780:	8b 43 14             	mov    0x14(%ebx),%eax
455783:	3b 46 64             	cmp    0x64(%esi),%eax
455786:	75 3b                	jne    0x4557c3
455788:	8b 56 68             	mov    0x68(%esi),%edx
45578b:	8b c7                	mov    %edi,%eax
45578d:	e8 4a e9 ff ff       	call   0x4540dc
455792:	8b 46 64             	mov    0x64(%esi),%eax
455795:	e8 06 e9 ff ff       	call   0x4540a0
45579a:	89 46 68             	mov    %eax,0x68(%esi)
45579d:	8b 46 64             	mov    0x64(%esi),%eax
4557a0:	e8 77 e1 fa ff       	call   0x40391c
4557a5:	89 7e 64             	mov    %edi,0x64(%esi)
4557a8:	33 c0                	xor    %eax,%eax
4557aa:	89 47 0c             	mov    %eax,0xc(%edi)
4557ad:	33 c0                	xor    %eax,%eax
4557af:	89 47 18             	mov    %eax,0x18(%edi)
4557b2:	33 c0                	xor    %eax,%eax
4557b4:	89 47 14             	mov    %eax,0x14(%edi)
4557b7:	8b c6                	mov    %esi,%eax
4557b9:	e8 72 07 00 00       	call   0x455f30
4557be:	e9 f4 00 00 00       	jmp    0x4558b7
4557c3:	8b 47 08             	mov    0x8(%edi),%eax
4557c6:	85 c0                	test   %eax,%eax
4557c8:	0f 84 80 00 00 00    	je     0x45584e
4557ce:	8b 53 14             	mov    0x14(%ebx),%edx
4557d1:	8b 52 18             	mov    0x18(%edx),%edx
4557d4:	89 50 18             	mov    %edx,0x18(%eax)
4557d7:	8b 57 08             	mov    0x8(%edi),%edx
4557da:	83 7a 18 00          	cmpl   $0x0,0x18(%edx)
4557de:	75 0b                	jne    0x4557eb
4557e0:	8b 53 14             	mov    0x14(%ebx),%edx
4557e3:	8b 52 14             	mov    0x14(%edx),%edx
4557e6:	89 42 08             	mov    %eax,0x8(%edx)
4557e9:	eb 09                	jmp    0x4557f4
4557eb:	8b 57 08             	mov    0x8(%edi),%edx
4557ee:	8b 52 18             	mov    0x18(%edx),%edx
4557f1:	89 42 0c             	mov    %eax,0xc(%edx)
4557f4:	8b 47 08             	mov    0x8(%edi),%eax
4557f7:	8b 53 14             	mov    0x14(%ebx),%edx
4557fa:	8b 52 14             	mov    0x14(%edx),%edx
4557fd:	89 50 14             	mov    %edx,0x14(%eax)
455800:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
455804:	74 12                	je     0x455818
455806:	8b 40 0c             	mov    0xc(%eax),%eax
455809:	8b 53 14             	mov    0x14(%ebx),%edx
45580c:	8b 52 14             	mov    0x14(%edx),%edx
45580f:	89 50 14             	mov    %edx,0x14(%eax)
455812:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
455816:	75 ee                	jne    0x455806
455818:	8b 53 14             	mov    0x14(%ebx),%edx
45581b:	8b 52 0c             	mov    0xc(%edx),%edx
45581e:	89 50 0c             	mov    %edx,0xc(%eax)
455821:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
455825:	74 06                	je     0x45582d
455827:	8b 50 0c             	mov    0xc(%eax),%edx
45582a:	89 42 18             	mov    %eax,0x18(%edx)
45582d:	56                   	push   %esi
45582e:	68 58 5f 45 00       	push   $0x455f58
455833:	8b 50 14             	mov    0x14(%eax),%edx
455836:	8b c6                	mov    %esi,%eax
455838:	e8 1f ec ff ff       	call   0x45445c
45583d:	8b 43 14             	mov    0x14(%ebx),%eax
455840:	e8 d7 e0 fa ff       	call   0x40391c
455845:	8b c7                	mov    %edi,%eax
455847:	e8 d0 e0 fa ff       	call   0x40391c
45584c:	eb 69                	jmp    0x4558b7
45584e:	8b 47 14             	mov    0x14(%edi),%eax
455851:	33 d2                	xor    %edx,%edx
455853:	89 50 08             	mov    %edx,0x8(%eax)
455856:	8b c7                	mov    %edi,%eax
455858:	e8 bf e0 fa ff       	call   0x40391c
45585d:	eb 58                	jmp    0x4558b7
45585f:	8b 43 18             	mov    0x18(%ebx),%eax
455862:	85 c0                	test   %eax,%eax
455864:	75 18                	jne    0x45587e
455866:	8b 43 14             	mov    0x14(%ebx),%eax
455869:	8b 53 0c             	mov    0xc(%ebx),%edx
45586c:	89 50 08             	mov    %edx,0x8(%eax)
45586f:	8b 43 0c             	mov    0xc(%ebx),%eax
455872:	33 d2                	xor    %edx,%edx
455874:	89 50 18             	mov    %edx,0x18(%eax)
455877:	e8 a8 e6 ff ff       	call   0x453f24
45587c:	eb 29                	jmp    0x4558a7
45587e:	8b 53 0c             	mov    0xc(%ebx),%edx
455881:	89 50 0c             	mov    %edx,0xc(%eax)
455884:	8b 53 0c             	mov    0xc(%ebx),%edx
455887:	85 d2                	test   %edx,%edx
455889:	74 03                	je     0x45588e
45588b:	89 42 18             	mov    %eax,0x18(%edx)
45588e:	8b c3                	mov    %ebx,%eax
455890:	e8 0b e8 ff ff       	call   0x4540a0
455895:	8b d0                	mov    %eax,%edx
455897:	8b 43 18             	mov    0x18(%ebx),%eax
45589a:	e8 3d e8 ff ff       	call   0x4540dc
45589f:	8b 43 18             	mov    0x18(%ebx),%eax
4558a2:	e8 7d e6 ff ff       	call   0x453f24
4558a7:	56                   	push   %esi
4558a8:	68 58 5f 45 00       	push   $0x455f58
4558ad:	8b 53 14             	mov    0x14(%ebx),%edx
4558b0:	8b c6                	mov    %esi,%eax
4558b2:	e8 a5 eb ff ff       	call   0x45445c
4558b7:	8b c3                	mov    %ebx,%eax
4558b9:	e8 5e e0 fa ff       	call   0x40391c
4558be:	33 c0                	xor    %eax,%eax
4558c0:	5a                   	pop    %edx
4558c1:	59                   	pop    %ecx
4558c2:	59                   	pop    %ecx
4558c3:	64 89 10             	mov    %edx,%fs:(%eax)
4558c6:	68 e0 58 45 00       	push   $0x4558e0