4054b5:	65
4054b6:	73 00                	jae    0x4054b8
4054b8:	00 00                	add    %al,(%eax)
4054ba:	00 00                	add    %al,(%eax)
4054bc:	e8 03 00 00 00       	call   0x4054c4
4054c1:	c3                   	ret
4054c2:	8b c0                	mov    %eax,%eax
4054c4:	53                   	push   %ebx
4054c5:	56                   	push   %esi
4054c6:	57                   	push   %edi
4054c7:	8b fa                	mov    %edx,%edi
4054c9:	8b f0                	mov    %eax,%esi
4054cb:	8b 1d 34 d0 45 00    	mov    0x45d034,%ebx
4054d1:	85 db                	test   %ebx,%ebx
4054d3:	74 15                	je     0x4054ea
4054d5:	8b c3                	mov    %ebx,%eax
4054d7:	e8 34 fb ff ff       	call   0x405010
4054dc:	8b d7                	mov    %edi,%edx
4054de:	ff d6                	call   *%esi
4054e0:	84 c0                	test   %al,%al
4054e2:	74 06                	je     0x4054ea
4054e4:	8b 1b                	mov    (%ebx),%ebx
4054e6:	85 db                	test   %ebx,%ebx
4054e8:	75 eb                	jne    0x4054d5
4054ea:	5f                   	pop    %edi
4054eb:	5e                   	pop    %esi
4054ec:	5b                   	pop    %ebx
4054ed:	c3                   	ret
4054ee:	8b c0                	mov    %eax,%eax
4054f0:	e8 0b 00 00 00       	call   0x405500
4054f5:	c3                   	ret
4054f6:	8b c0                	mov    %eax,%eax
4054f8:	e8 23 00 00 00       	call   0x405520
4054fd:	c3                   	ret
4054fe:	8b c0                	mov    %eax,%eax
405500:	53                   	push   %ebx
405501:	8b d8                	mov    %eax,%ebx
405503:	b8 08 00 00 00       	mov    $0x8,%eax
405508:	e8 af d1 ff ff       	call   0x4026bc
40550d:	8b 15 38 d0 45 00    	mov    0x45d038,%edx
405513:	89 10                	mov    %edx,(%eax)
405515:	89 58 04             	mov    %ebx,0x4(%eax)
405518:	a3 38 d0 45 00       	mov    %eax,0x45d038
40551d:	5b                   	pop    %ebx
40551e:	c3                   	ret
40551f:	90                   	nop
405520:	53                   	push   %ebx
405521:	56                   	push   %esi
405522:	8b 35 38 d0 45 00    	mov    0x45d038,%esi
405528:	85 f6                	test   %esi,%esi
40552a:	74 22                	je     0x40554e
40552c:	8b 56 04             	mov    0x4(%esi),%edx
40552f:	3b d0                	cmp    %eax,%edx
405531:	75 1b                	jne    0x40554e
405533:	a1 38 d0 45 00       	mov    0x45d038,%eax
405538:	8b 00                	mov    (%eax),%eax
40553a:	a3 38 d0 45 00       	mov    %eax,0x45d038
40553f:	ba 08 00 00 00       	mov    $0x8,%edx
405544:	8b c6                	mov    %esi,%eax
405546:	e8 91 d1 ff ff       	call   0x4026dc
40554b:	5e                   	pop    %esi
40554c:	5b                   	pop    %ebx
40554d:	c3                   	ret
40554e:	8b d6                	mov    %esi,%edx
405550:	85 d2                	test   %edx,%edx
405552:	74 27                	je     0x40557b
405554:	8b 0a                	mov    (%edx),%ecx
405556:	85 c9                	test   %ecx,%ecx
405558:	74 1b                	je     0x405575
40555a:	8b 59 04             	mov    0x4(%ecx),%ebx
40555d:	3b d8                	cmp    %eax,%ebx
40555f:	75 14                	jne    0x405575
405561:	8b f1                	mov    %ecx,%esi
405563:	8b 01                	mov    (%ecx),%eax
405565:	89 02                	mov    %eax,(%edx)
405567:	ba 08 00 00 00       	mov    $0x8,%edx
40556c:	8b c6                	mov    %esi,%eax
40556e:	e8 69 d1 ff ff       	call   0x4026dc
405573:	eb 06                	jmp    0x40557b
405575:	8b 12                	mov    (%edx),%edx
405577:	85 d2                	test   %edx,%edx
405579:	75 d9                	jne    0x405554
40557b:	5e                   	pop    %esi
40557c:	5b                   	pop    %ebx
40557d:	c3                   	ret
40557e:	8b c0                	mov    %eax,%eax
405580:	55                   	push   %ebp
405581:	8b ec                	mov    %esp,%ebp
405583:	83 c4 f8             	add    $0xfffffff8,%esp
405586:	53                   	push   %ebx
405587:	56                   	push   %esi
405588:	57                   	push   %edi
405589:	89 45 fc             	mov    %eax,-0x4(%ebp)
40558c:	a1 38 d0 45 00       	mov    0x45d038,%eax
405591:	89 45 f8             	mov    %eax,-0x8(%ebp)
405594:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405598:	74 39                	je     0x4055d3
40559a:	33 c0                	xor    %eax,%eax
40559c:	55                   	push   %ebp
40559d:	68 bb 55 40 00       	push   $0x4055bb
4055a2:	64 ff 30             	push   %fs:(%eax)
4055a5:	64 89 20             	mov    %esp,%fs:(%eax)
4055a8:	8b 5d f8             	mov    -0x8(%ebp),%ebx
4055ab:	8b 45 fc             	mov    -0x4(%ebp),%eax
4055ae:	ff 53 04             	call   *0x4(%ebx)
4055b1:	33 c0                	xor    %eax,%eax
4055b3:	5a                   	pop    %edx
4055b4:	59                   	pop    %ecx
4055b5:	59                   	pop    %ecx
4055b6:	64 89 10             	mov    %edx,%fs:(%eax)
4055b9:	eb 0a                	jmp    0x4055c5
4055bb:	e9 4c e1 ff ff       	jmp    0x40370c
4055c0:	e8 af e4 ff ff       	call   0x403a74
4055c5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4055c8:	8b 00                	mov    (%eax),%eax
4055ca:	89 45 f8             	mov    %eax,-0x8(%ebp)
4055cd:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4055d1:	75 c7                	jne    0x40559a
4055d3:	5f                   	pop    %edi
4055d4:	5e                   	pop    %esi
4055d5:	5b                   	pop    %ebx
4055d6:	59                   	pop    %ecx
4055d7:	59                   	pop    %ecx
4055d8:	5d                   	pop    %ebp
4055d9:	c3                   	ret
4055da:	8b c0                	mov    %eax,%eax
4055dc:	8b 15 34 d0 45 00    	mov    0x45d034,%edx
4055e2:	89 10                	mov    %edx,(%eax)
4055e4:	a3 34 d0 45 00       	mov    %eax,0x45d034
4055e9:	c3                   	ret
4055ea:	8b c0                	mov    %eax,%eax
4055ec:	55                   	push   %ebp
4055ed:	8b ec                	mov    %esp,%ebp
4055ef:	51                   	push   %ecx
4055f0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4055f3:	33 d2                	xor    %edx,%edx
4055f5:	55                   	push   %ebp
4055f6:	68 50 56 40 00       	push   $0x405650
4055fb:	64 ff 32             	push   %fs:(%edx)
4055fe:	64 89 22             	mov    %esp,%fs:(%edx)
405601:	8b 45 fc             	mov    -0x4(%ebp),%eax
405604:	8b 40 04             	mov    0x4(%eax),%eax
405607:	e8 74 ff ff ff       	call   0x405580
40560c:	33 c0                	xor    %eax,%eax
40560e:	5a                   	pop    %edx
40560f:	59                   	pop    %ecx
405610:	59                   	pop    %ecx
405611:	64 89 10             	mov    %edx,%fs:(%eax)
405614:	68 57 56 40 00       	push   $0x405657
405619:	8b 45 fc             	mov    -0x4(%ebp),%eax
40561c:	3b 05 34 d0 45 00    	cmp    0x45d034,%eax
405622:	75 0c                	jne    0x405630
405624:	8b 45 fc             	mov    -0x4(%ebp),%eax
405627:	8b 00                	mov    (%eax),%eax
405629:	a3 34 d0 45 00       	mov    %eax,0x45d034
40562e:	eb 1f                	jmp    0x40564f
405630:	a1 34 d0 45 00       	mov    0x45d034,%eax
405635:	85 c0                	test   %eax,%eax
405637:	74 16                	je     0x40564f
405639:	8b 10                	mov    (%eax),%edx
40563b:	3b 55 fc             	cmp    -0x4(%ebp),%edx
40563e:	75 09                	jne    0x405649
405640:	8b 55 fc             	mov    -0x4(%ebp),%edx
405643:	8b 12                	mov    (%edx),%edx
405645:	89 10                	mov    %edx,(%eax)
405647:	eb 06                	jmp    0x40564f
405649:	8b 00                	mov    (%eax),%eax
40564b:	85 c0                	test   %eax,%eax
40564d:	75 ea                	jne    0x405639
40564f:	c3                   	ret
405650:	e9 6b e3 ff ff       	jmp    0x4039c0
405655:	eb c2                	jmp    0x405619
405657:	59                   	pop    %ecx
405658:	5d                   	pop    %ebp
405659:	c3                   	ret
40565a:	8b c0                	mov    %eax,%eax
40565c:	8b 10                	mov    (%eax),%edx
40565e:	85 d2                	test   %edx,%edx
405660:	74 0e                	je     0x405670
405662:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
405668:	50                   	push   %eax
405669:	52                   	push   %edx
40566a:	8b 02                	mov    (%edx),%eax
40566c:	ff 50 08             	call   *0x8(%eax)
40566f:	58                   	pop    %eax
405670:	c3                   	ret
405671:	8d 40 00             	lea    0x0(%eax),%eax
405674:	85 d2                	test   %edx,%edx
405676:	74 19                	je     0x405691
405678:	52                   	push   %edx
405679:	50                   	push   %eax
40567a:	8b 02                	mov    (%edx),%eax
40567c:	52                   	push   %edx
40567d:	ff 50 04             	call   *0x4(%eax)
405680:	58                   	pop    %eax
405681:	8b 08                	mov    (%eax),%ecx
405683:	8f 00                	pop    (%eax)
405685:	85 c9                	test   %ecx,%ecx
405687:	75 01                	jne    0x40568a
405689:	c3                   	ret
40568a:	8b 01                	mov    (%ecx),%eax
40568c:	51                   	push   %ecx
40568d:	ff 50 08             	call   *0x8(%eax)
405690:	c3                   	ret
405691:	8b 08                	mov    (%eax),%ecx
405693:	85 c9                	test   %ecx,%ecx
405695:	89 10                	mov    %edx,(%eax)
405697:	74 06                	je     0x40569f
405699:	8b 01                	mov    (%ecx),%eax
40569b:	51                   	push   %ecx
40569c:	ff 50 08             	call   *0x8(%eax)
40569f:	c3                   	ret
4056a0:	85 d2                	test   %edx,%edx
4056a2:	0f 84 b4 ff ff ff    	je     0x40565c
4056a8:	57                   	push   %edi
4056a9:	89 c7                	mov    %eax,%edi
4056ab:	6a 00                	push   $0x0
4056ad:	54                   	push   %esp
4056ae:	51                   	push   %ecx
4056af:	52                   	push   %edx
4056b0:	8b 02                	mov    (%edx),%eax
4056b2:	ff 10                	call   *(%eax)
4056b4:	85 c0                	test   %eax,%eax
4056b6:	74 07                	je     0x4056bf
4056b8:	b0 17                	mov    $0x17,%al
4056ba:	e9 59 d1 ff ff       	jmp    0x402818
4056bf:	8b 07                	mov    (%edi),%eax
4056c1:	85 c0                	test   %eax,%eax
4056c3:	74 06                	je     0x4056cb
4056c5:	50                   	push   %eax
4056c6:	8b 00                	mov    (%eax),%eax
4056c8:	ff 50 08             	call   *0x8(%eax)
4056cb:	58                   	pop    %eax
4056cc:	89 07                	mov    %eax,(%edi)
4056ce:	5f                   	pop    %edi
4056cf:	c3                   	ret
4056d0:	85 c0                	test   %eax,%eax
4056d2:	74 06                	je     0x4056da
4056d4:	50                   	push   %eax
4056d5:	8b 00                	mov    (%eax),%eax
4056d7:	ff 50 04             	call   *0x4(%eax)
4056da:	c3                   	ret
4056db:	90                   	nop
4056dc:	83 c0 04             	add    $0x4,%eax
4056df:	50                   	push   %eax
4056e0:	e8 0f bc ff ff       	call   0x4012f4
4056e5:	c3                   	ret
4056e6:	8b c0                	mov    %eax,%eax
4056e8:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4056ec:	74 07                	je     0x4056f5
4056ee:	b0 02                	mov    $0x2,%al
4056f0:	e8 23 d1 ff ff       	call   0x402818
4056f5:	c3                   	ret
4056f6:	8b c0                	mov    %eax,%eax
4056f8:	e8 07 db ff ff       	call   0x403204
4056fd:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
405704:	c3                   	ret
405705:	8d 40 00             	lea    0x0(%eax),%eax
405708:	55                   	push   %ebp
405709:	8b ec                	mov    %esp,%ebp
40570b:	53                   	push   %ebx
40570c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40570f:	8b 4d 10             	mov    0x10(%ebp),%ecx
405712:	8b 55 0c             	mov    0xc(%ebp),%edx
405715:	8b c3                	mov    %ebx,%eax
405717:	e8 04 dc ff ff       	call   0x403320
40571c:	84 c0                	test   %al,%al
40571e:	74 04                	je     0x405724
405720:	33 c0                	xor    %eax,%eax
405722:	eb 05                	jmp    0x405729
405724:	b8 02 40 00 80       	mov    $0x80004002,%eax
405729:	5b                   	pop    %ebx
40572a:	5d                   	pop    %ebp
40572b:	c2 0c 00             	ret    $0xc
40572e:	8b c0                	mov    %eax,%eax
405730:	55                   	push   %ebp
405731:	8b ec                	mov    %esp,%ebp
405733:	8b 45 08             	mov    0x8(%ebp),%eax
405736:	83 c0 04             	add    $0x4,%eax
405739:	50                   	push   %eax
40573a:	e8 ad bb ff ff       	call   0x4012ec
40573f:	5d                   	pop    %ebp
405740:	c2 04 00             	ret    $0x4
405743:	90                   	nop
405744:	55                   	push   %ebp
405745:	8b ec                	mov    %esp,%ebp
405747:	53                   	push   %ebx
405748:	56                   	push   %esi
405749:	8b 5d 08             	mov    0x8(%ebp),%ebx
40574c:	8d 43 04             	lea    0x4(%ebx),%eax
40574f:	50                   	push   %eax
405750:	e8 9f bb ff ff       	call   0x4012f4
405755:	8b f0                	mov    %eax,%esi
405757:	85 f6                	test   %esi,%esi
405759:	75 09                	jne    0x405764
40575b:	b2 01                	mov    $0x1,%dl
40575d:	8b c3                	mov    %ebx,%eax
40575f:	8b 08                	mov    (%eax),%ecx
405761:	ff 51 fc             	call   *-0x4(%ecx)
405764:	8b c6                	mov    %esi,%eax
405766:	5e                   	pop    %esi
405767:	5b                   	pop    %ebx
405768:	5d                   	pop    %ebp
405769:	c2 04 00             	ret    $0x4
40576c:	55                   	push   %ebp
40576d:	8b ec                	mov    %esp,%ebp
40576f:	83 c4 f8             	add    $0xfffffff8,%esp
405772:	53                   	push   %ebx
405773:	56                   	push   %esi
405774:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405777:	89 55 fc             	mov    %edx,-0x4(%ebp)
40577a:	33 d2                	xor    %edx,%edx
40577c:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405780:	0f 84 b8 00 00 00    	je     0x40583e
405786:	33 f6                	xor    %esi,%esi
405788:	33 c9                	xor    %ecx,%ecx
40578a:	85 c0                	test   %eax,%eax
40578c:	0f 84 87 00 00 00    	je     0x405819
405792:	eb 6c                	jmp    0x405800
405794:	8b 55 f8             	mov    -0x8(%ebp),%edx
405797:	0f b7 14 4a          	movzwl (%edx,%ecx,2),%edx
40579b:	41                   	inc    %ecx
40579c:	83 fa 7f             	cmp    $0x7f,%edx
40579f:	77 06                	ja     0x4057a7
4057a1:	88 14 30             	mov    %dl,(%eax,%esi,1)
4057a4:	46                   	inc    %esi
4057a5:	eb 59                	jmp    0x405800
4057a7:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
4057ad:	76 31                	jbe    0x4057e0
4057af:	8d 5e 03             	lea    0x3(%esi),%ebx
4057b2:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
4057b5:	77 53                	ja     0x40580a
4057b7:	8b da                	mov    %edx,%ebx
4057b9:	c1 eb 0c             	shr    $0xc,%ebx
4057bc:	80 cb e0             	or     $0xe0,%bl
4057bf:	88 1c 30             	mov    %bl,(%eax,%esi,1)
4057c2:	8b da                	mov    %edx,%ebx
4057c4:	c1 eb 06             	shr    $0x6,%ebx
4057c7:	80 e3 3f             	and    $0x3f,%bl
4057ca:	80 cb 80             	or     $0x80,%bl
4057cd:	88 5c 30 01          	mov    %bl,0x1(%eax,%esi,1)
4057d1:	80 e2 3f             	and    $0x3f,%dl
4057d4:	80 ca 80             	or     $0x80,%dl
4057d7:	88 54 30 02          	mov    %dl,0x2(%eax,%esi,1)
4057db:	83 c6 03             	add    $0x3,%esi
4057de:	eb 20                	jmp    0x405800
4057e0:	8d 5e 02             	lea    0x2(%esi),%ebx
4057e3:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
4057e6:	77 22                	ja     0x40580a
4057e8:	8b da                	mov    %edx,%ebx