590563:	00 43 61             	add    %al,0x61(%ebx)
590566:	6e                   	outsb  %ds:(%esi),(%dx)
590567:	6f                   	outsl  %ds:(%esi),(%dx)
590568:	6e                   	outsb  %ds:(%esi),(%dx)
590569:	20 45 4f             	and    %al,0x4f(%ebp)
59056c:	53                   	push   %ebx
59056d:	20 44 49 47          	and    %al,0x47(%ecx,%ecx,2)
590571:	49                   	dec    %ecx
590572:	54                   	push   %esp
590573:	41                   	inc    %ecx
590574:	4c                   	dec    %esp
590575:	20 52 45             	and    %dl,0x45(%edx)
590578:	42                   	inc    %edx
590579:	45                   	inc    %ebp
59057a:	4c                   	dec    %esp
59057b:	00 43 61             	add    %al,0x61(%ebx)
59057e:	6e                   	outsb  %ds:(%esi),(%dx)
59057f:	6f                   	outsl  %ds:(%esi),(%dx)
590580:	6e                   	outsb  %ds:(%esi),(%dx)
590581:	20 45 4f             	and    %al,0x4f(%ebp)
590584:	53                   	push   %ebx
590585:	20 33                	and    %dh,(%ebx)
590587:	30 30                	xor    %dh,(%eax)
590589:	44                   	inc    %esp
59058a:	20 44 49 47          	and    %al,0x47(%ecx,%ecx,2)
59058e:	49                   	dec    %ecx
59058f:	54                   	push   %esp
590590:	41                   	inc    %ecx
590591:	4c                   	dec    %esp
590592:	00 00                	add    %al,(%eax)
590594:	43                   	inc    %ebx
590595:	61                   	popa
590596:	6e                   	outsb  %ds:(%esi),(%dx)
590597:	6f                   	outsl  %ds:(%esi),(%dx)
590598:	6e                   	outsb  %ds:(%esi),(%dx)
590599:	20 50 6f             	and    %dl,0x6f(%eax)
59059c:	77 65                	ja     0x590603
59059e:	72 53                	jb     0x5905f3
5905a0:	68 6f 74 20 47       	push   $0x4720746f
5905a5:	31 00                	xor    %eax,(%eax)
5905a7:	00 43 61             	add    %al,0x61(%ebx)
5905aa:	6e                   	outsb  %ds:(%esi),(%dx)
5905ab:	6f                   	outsl  %ds:(%esi),(%dx)
5905ac:	6e                   	outsb  %ds:(%esi),(%dx)
5905ad:	20 50 6f             	and    %dl,0x6f(%eax)
5905b0:	77 65                	ja     0x590617
5905b2:	72 53                	jb     0x590607
5905b4:	68 6f 74 20 50       	push   $0x5020746f
5905b9:	72 6f                	jb     0x59062a
5905bb:	39 30                	cmp    %esi,(%eax)
5905bd:	20 49 53             	and    %cl,0x53(%ecx)
5905c0:	00 00                	add    %al,(%eax)
5905c2:	00 00                	add    %al,(%eax)
5905c4:	43                   	inc    %ebx
5905c5:	61                   	popa
5905c6:	6e                   	outsb  %ds:(%esi),(%dx)
5905c7:	6f                   	outsl  %ds:(%esi),(%dx)
5905c8:	6e                   	outsb  %ds:(%esi),(%dx)
5905c9:	20 45 4f             	and    %al,0x4f(%ebp)
5905cc:	53                   	push   %ebx
5905cd:	20 44 33 30          	and    %al,0x30(%ebx,%esi,1)
5905d1:	00 00                	add    %al,(%eax)
5905d3:	00 00                	add    %al,(%eax)
5905d5:	00 00                	add    %al,(%eax)
5905d7:	00 43 61             	add    %al,0x61(%ebx)
5905da:	6e                   	outsb  %ds:(%esi),(%dx)
5905db:	6f                   	outsl  %ds:(%esi),(%dx)
5905dc:	6e                   	outsb  %ds:(%esi),(%dx)
5905dd:	20 45 4f             	and    %al,0x4f(%ebp)
5905e0:	53                   	push   %ebx
5905e1:	20 31                	and    %dh,(%ecx)
5905e3:	30 44 00 00          	xor    %al,0x0(%eax,%eax,1)
5905e7:	00 e8                	add    %ch,%al
5905e9:	db 99 e7 ff c3 8b    	fistpl -0x743c0019(%ecx)
5905ef:	c0 55 8b ec          	rclb   $0xec,-0x75(%ebp)
5905f3:	81 c4 64 ff ff ff    	add    $0xffffff64,%esp
5905f9:	53                   	push   %ebx
5905fa:	56                   	push   %esi
5905fb:	33 d2                	xor    %edx,%edx
5905fd:	89 95 64 ff ff ff    	mov    %edx,-0x9c(%ebp)
590603:	89 95 68 ff ff ff    	mov    %edx,-0x98(%ebp)
590609:	89 95 6c ff ff ff    	mov    %edx,-0x94(%ebp)
59060f:	89 95 70 ff ff ff    	mov    %edx,-0x90(%ebp)
590615:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)
59061b:	8b f0                	mov    %eax,%esi
59061d:	33 c0                	xor    %eax,%eax
59061f:	55                   	push   %ebp
590620:	68 0a 08 59 00       	push   $0x59080a
590625:	64 ff 30             	push   %fs:(%eax)
590628:	64 89 20             	mov    %esp,%fs:(%eax)
59062b:	33 c0                	xor    %eax,%eax
59062d:	89 45 fc             	mov    %eax,-0x4(%ebp)
590630:	33 c0                	xor    %eax,%eax
590632:	89 45 f8             	mov    %eax,-0x8(%ebp)
590635:	6a 00                	push   $0x0
590637:	6a 00                	push   $0x0
590639:	8b 46 04             	mov    0x4(%esi),%eax
59063c:	e8 97 e0 e8 ff       	call   0x41e6d8
590641:	8d 95 78 ff ff ff    	lea    -0x88(%ebp),%edx
590647:	8b 46 04             	mov    0x4(%esi),%eax
59064a:	b9 80 00 00 00       	mov    $0x80,%ecx
59064f:	8b 18                	mov    (%eax),%ebx
590651:	ff 53 08             	call   *0x8(%ebx)
590654:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
59065a:	ba 3d 00 00 00       	mov    $0x3d,%edx
59065f:	e8 84 ff ff ff       	call   0x5905e8
590664:	8b d8                	mov    %eax,%ebx
590666:	85 db                	test   %ebx,%ebx
590668:	74 06                	je     0x590670
59066a:	c6 03 00             	movb   $0x0,(%ebx)
59066d:	43                   	inc    %ebx
59066e:	eb 15                	jmp    0x590685
590670:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
590676:	e8 75 97 e7 ff       	call   0x409df0
59067b:	8b d8                	mov    %eax,%ebx
59067d:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
590683:	03 d8                	add    %eax,%ebx
590685:	ba 18 08 59 00       	mov    $0x590818,%edx
59068a:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
590690:	e8 17 83 ff ff       	call   0x5889ac
590695:	85 c0                	test   %eax,%eax
590697:	ba 1c 08 59 00       	mov    $0x59081c,%edx
59069c:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
5906a2:	e8 05 83 ff ff       	call   0x5889ac
5906a7:	85 c0                	test   %eax,%eax
5906a9:	ba 20 08 59 00       	mov    $0x590820,%edx
5906ae:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
5906b4:	e8 f3 82 ff ff       	call   0x5889ac
5906b9:	85 c0                	test   %eax,%eax
5906bb:	75 20                	jne    0x5906dd
5906bd:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
5906c3:	8b d3                	mov    %ebx,%edx
5906c5:	e8 8e 43 e7 ff       	call   0x404a58
5906ca:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
5906d0:	33 d2                	xor    %edx,%edx
5906d2:	e8 09 90 e7 ff       	call   0x4096e0
5906d7:	89 86 d4 00 00 00    	mov    %eax,0xd4(%esi)
5906dd:	ba 24 08 59 00       	mov    $0x590824,%edx
5906e2:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
5906e8:	e8 bf 82 ff ff       	call   0x5889ac
5906ed:	85 c0                	test   %eax,%eax
5906ef:	75 20                	jne    0x590711
5906f1:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
5906f7:	8b d3                	mov    %ebx,%edx
5906f9:	e8 5a 43 e7 ff       	call   0x404a58
5906fe:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
590704:	33 d2                	xor    %edx,%edx
590706:	e8 d5 8f e7 ff       	call   0x4096e0
59070b:	89 86 ec 00 00 00    	mov    %eax,0xec(%esi)
590711:	ba 28 08 59 00       	mov    $0x590828,%edx
590716:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
59071c:	e8 8b 82 ff ff       	call   0x5889ac
590721:	85 c0                	test   %eax,%eax
590723:	75 20                	jne    0x590745
590725:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
59072b:	8b d3                	mov    %ebx,%edx
59072d:	e8 26 43 e7 ff       	call   0x404a58
590732:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
590738:	33 d2                	xor    %edx,%edx
59073a:	e8 a1 8f e7 ff       	call   0x4096e0
59073f:	89 86 e8 00 00 00    	mov    %eax,0xe8(%esi)
590745:	ba 2c 08 59 00       	mov    $0x59082c,%edx
59074a:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
590750:	e8 57 82 ff ff       	call   0x5889ac
590755:	85 c0                	test   %eax,%eax
590757:	75 1d                	jne    0x590776
590759:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
59075f:	8b d3                	mov    %ebx,%edx
590761:	e8 f2 42 e7 ff       	call   0x404a58
590766:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
59076c:	33 d2                	xor    %edx,%edx
59076e:	e8 6d 8f e7 ff       	call   0x4096e0
590773:	89 45 fc             	mov    %eax,-0x4(%ebp)
590776:	ba 30 08 59 00       	mov    $0x590830,%edx
59077b:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
590781:	e8 26 82 ff ff       	call   0x5889ac
590786:	85 c0                	test   %eax,%eax
590788:	75 1d                	jne    0x5907a7
59078a:	8d 85 64 ff ff ff    	lea    -0x9c(%ebp),%eax
590790:	8b d3                	mov    %ebx,%edx
590792:	e8 c1 42 e7 ff       	call   0x404a58
590797:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
59079d:	33 d2                	xor    %edx,%edx
59079f:	e8 3c 8f e7 ff       	call   0x4096e0
5907a4:	89 45 f8             	mov    %eax,-0x8(%ebp)
5907a7:	ba 34 08 59 00       	mov    $0x590834,%edx
5907ac:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
5907b2:	b9 04 00 00 00       	mov    $0x4,%ecx
5907b7:	e8 f8 81 ff ff       	call   0x5889b4
5907bc:	85 c0                	test   %eax,%eax
5907be:	0f 85 7d fe ff ff    	jne    0x590641
5907c4:	8b 45 fc             	mov    -0x4(%ebp),%eax
5907c7:	f7 6d f8             	imull  -0x8(%ebp)
5907ca:	03 c0                	add    %eax,%eax
5907cc:	01 86 d4 00 00 00    	add    %eax,0xd4(%esi)
5907d2:	ba 3c 08 59 00       	mov    $0x59083c,%edx
5907d7:	8d 46 0a             	lea    0xa(%esi),%eax
5907da:	e8 4d 96 e7 ff       	call   0x409e2c
5907df:	ba 44 08 59 00       	mov    $0x590844,%edx
5907e4:	8d 46 4a             	lea    0x4a(%esi),%eax
5907e7:	e8 40 96 e7 ff       	call   0x409e2c
5907ec:	33 c0                	xor    %eax,%eax
5907ee:	5a                   	pop    %edx
5907ef:	59                   	pop    %ecx
5907f0:	59                   	pop    %ecx
5907f1:	64 89 10             	mov    %edx,%fs:(%eax)
5907f4:	68 11 08 59 00       	push   $0x590811
5907f9:	8d 85 64 ff ff ff    	lea    -0x9c(%ebp),%eax
5907ff:	ba 05 00 00 00       	mov    $0x5,%edx
590804:	e8 83 40 e7 ff       	call   0x40488c
590809:	c3                   	ret
59080a:	e9 fd 39 e7 ff       	jmp    0x40420c
59080f:	eb e8                	jmp    0x5907f9
590811:	5e                   	pop    %esi
590812:	5b                   	pop    %ebx
590813:	8b e5                	mov    %ebp,%esp
590815:	5d                   	pop    %ebp
590816:	c3                   	ret
590817:	00 44 41 54          	add    %al,0x54(%ecx,%eax,2)
59081b:	00 54 49 4d          	add    %dl,0x4d(%ecx,%ecx,2)
59081f:	00 48 44             	add    %cl,0x44(%eax)
590822:	52                   	push   %edx
590823:	00 58 20             	add    %bl,0x20(%eax)
590826:	20 00                	and    %al,(%eax)
590828:	59                   	pop    %ecx
590829:	20 20                	and    %ah,(%eax)
59082b:	00 54 58 20          	add    %dl,0x20(%eax,%ebx,2)
59082f:	00 54 59 20          	add    %dl,0x20(%ecx,%ebx,2)
590833:	00 45 4f             	add    %al,0x4f(%ebp)
590836:	48                   	dec    %eax
590837:	44                   	inc    %esp
590838:	00 00                	add    %al,(%eax)
59083a:	00 00                	add    %al,(%eax)
59083c:	52                   	push   %edx
59083d:	6f                   	outsl  %ds:(%esi),(%dx)
59083e:	6c                   	insb   (%dx),%es:(%edi)
59083f:	6c                   	insb   (%dx),%es:(%edi)
590840:	65 69 00 00 64 35 33 	imul   $0x33356400,%gs:(%eax),%eax
590847:	30 66 6c             	xor    %ah,0x6c(%esi)
59084a:	65 78 00             	gs js  0x59084d
59084d:	00 00                	add    %al,(%eax)
59084f:	00 55 8b             	add    %dl,-0x75(%ebp)
590852:	ec                   	in     (%dx),%al
590853:	83 c4 f4             	add    $0xfffffff4,%esp
590856:	53                   	push   %ebx
590857:	56                   	push   %esi
590858:	57                   	push   %edi
590859:	33 d2                	xor    %edx,%edx
59085b:	89 55 f4             	mov    %edx,-0xc(%ebp)
59085e:	8b d8                	mov    %eax,%ebx
590860:	33 c0                	xor    %eax,%eax
590862:	55                   	push   %ebp
590863:	68 29 0a 59 00       	push   $0x590a29
590868:	64 ff 30             	push   %fs:(%eax)
59086b:	64 89 20             	mov    %esp,%fs:(%eax)
59086e:	66 c7 43 08 49 49    	movw   $0x4949,0x8(%ebx)
590874:	8b 73 04             	mov    0x4(%ebx),%esi
590877:	8b c6                	mov    %esi,%eax
590879:	e8 6e de e8 ff       	call   0x41e6ec
59087e:	83 e8 04             	sub    $0x4,%eax
590881:	83 da 00             	sbb    $0x0,%edx
590884:	52                   	push   %edx
590885:	50                   	push   %eax
590886:	8b c6                	mov    %esi,%eax
590888:	e8 4b de e8 ff       	call   0x41e6d8
59088d:	8b 53 04             	mov    0x4(%ebx),%edx
590890:	8b c3                	mov    %ebx,%eax
590892:	e8 15 83 ff ff       	call   0x588bac
590897:	8b f8                	mov    %eax,%edi
590899:	8b c7                	mov    %edi,%eax
59089b:	99                   	cltd
59089c:	52                   	push   %edx
59089d:	50                   	push   %eax
59089e:	8b 43 04             	mov    0x4(%ebx),%eax
5908a1:	e8 32 de e8 ff       	call   0x41e6d8
5908a6:	eb 2c                	jmp    0x5908d4
5908a8:	8b 43 04             	mov    0x4(%ebx),%eax
5908ab:	e8 08 de e8 ff       	call   0x41e6b8
5908b0:	52                   	push   %edx
5908b1:	50                   	push   %eax
5908b2:	8b 43 04             	mov    0x4(%ebx),%eax
5908b5:	e8 32 de e8 ff       	call   0x41e6ec
5908ba:	3b 54 24 04          	cmp    0x4(%esp),%edx
5908be:	75 0c                	jne    0x5908cc
5908c0:	3b 04 24             	cmp    (%esp),%eax
5908c3:	5a                   	pop    %edx
5908c4:	58                   	pop    %eax
5908c5:	77 0d                	ja     0x5908d4
5908c7:	e9 47 01 00 00       	jmp    0x590a13
5908cc:	5a                   	pop    %edx
5908cd:	58                   	pop    %eax
5908ce:	0f 8e 3f 01 00 00    	jle    0x590a13
5908d4:	8b 53 04             	mov    0x4(%ebx),%edx
5908d7:	8b c3                	mov    %ebx,%eax
5908d9:	e8 ce 82 ff ff       	call   0x588bac
5908de:	3d 43 41 4d 46       	cmp    $0x464d4143,%eax
5908e3:	75 c3                	jne    0x5908a8
5908e5:	8b 53 04             	mov    0x4(%ebx),%edx
5908e8:	8b c3                	mov    %ebx,%eax
5908ea:	e8 bd 82 ff ff       	call   0x588bac
5908ef:	8b f0                	mov    %eax,%esi
5908f1:	8d 46 08             	lea    0x8(%esi),%eax
5908f4:	99                   	cltd
5908f5:	52                   	push   %edx
5908f6:	50                   	push   %eax
5908f7:	8b 43 04             	mov    0x4(%ebx),%eax
5908fa:	e8 d9 dd e8 ff       	call   0x41e6d8
5908ff:	8b 53 04             	mov    0x4(%ebx),%edx
590902:	8b c3                	mov    %ebx,%eax
590904:	e8 a3 82 ff ff       	call   0x588bac
590909:	83 c0 03             	add    $0x3,%eax
59090c:	c1 e0 03             	shl    $0x3,%eax
59090f:	03 f0                	add    %eax,%esi
590911:	2b fe                	sub    %esi,%edi
590913:	d1 ff                	sar    $1,%edi
590915:	79 03                	jns    0x59091a
590917:	83 d7 00             	adc    $0x0,%edi
59091a:	89 7d f8             	mov    %edi,-0x8(%ebp)
59091d:	8b c6                	mov    %esi,%eax
59091f:	99                   	cltd
590920:	52                   	push   %edx
590921:	50                   	push   %eax
590922:	8b 43 04             	mov    0x4(%ebx),%eax
590925:	e8 ae dd e8 ff       	call   0x41e6d8
59092a:	8b 45 f8             	mov    -0x8(%ebp),%eax
59092d:	e8 82 87 e7 ff       	call   0x4090b4
590932:	89 45 fc             	mov    %eax,-0x4(%ebp)
590935:	ba 38 0a 59 00       	mov    $0x590a38,%edx
59093a:	8b 45 fc             	mov    -0x4(%ebp),%eax
59093d:	e8 82 81 ff ff       	call   0x588ac4
590942:	8b 75 f8             	mov    -0x8(%ebp),%esi
590945:	4e                   	dec    %esi
590946:	85 f6                	test   %esi,%esi
590948:	7c 17                	jl     0x590961
59094a:	46                   	inc    %esi
59094b:	33 ff                	xor    %edi,%edi
59094d:	8b 53 04             	mov    0x4(%ebx),%edx
590950:	8b c3                	mov    %ebx,%eax
590952:	e8 fd 81 ff ff       	call   0x588b54
590957:	8b 55 fc             	mov    -0x4(%ebp),%edx
59095a:	88 04 3a             	mov    %al,(%edx,%edi,1)
59095d:	47                   	inc    %edi
59095e:	4e                   	dec    %esi
59095f:	75 ec                	jne    0x59094d
590961:	8b 75 fc             	mov    -0x4(%ebp),%esi
590964:	eb 6c                	jmp    0x5909d2
590966:	8b c6                	mov    %esi,%eax
590968:	e8 83 94 e7 ff       	call   0x409df0
59096d:	8b f8                	mov    %eax,%edi
59096f:	03 fe                	add    %esi,%edi