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
590971:	47                   	inc    %edi
590972:	ba 48 0a 59 00       	mov    $0x590a48,%edx
590977:	8b c6                	mov    %esi,%eax
590979:	e8 2e 80 ff ff       	call   0x5889ac
59097e:	85 c0                	test   %eax,%eax
590980:	75 0a                	jne    0x59098c
590982:	8d 43 0a             	lea    0xa(%ebx),%eax
590985:	8b d7                	mov    %edi,%edx
590987:	e8 a0 94 e7 ff       	call   0x409e2c
59098c:	ba 54 0a 59 00       	mov    $0x590a54,%edx
590991:	8b c6                	mov    %esi,%eax
590993:	e8 14 80 ff ff       	call   0x5889ac
590998:	85 c0                	test   %eax,%eax
59099a:	75 0a                	jne    0x5909a6
59099c:	8d 43 4a             	lea    0x4a(%ebx),%eax
59099f:	8b d7                	mov    %edi,%edx
5909a1:	e8 86 94 e7 ff       	call   0x409e2c
5909a6:	ba 60 0a 59 00       	mov    $0x590a60,%edx
5909ab:	8b c6                	mov    %esi,%eax
5909ad:	e8 fa 7f ff ff       	call   0x5889ac
5909b2:	85 c0                	test   %eax,%eax
5909b4:	75 1a                	jne    0x5909d0
5909b6:	8d 45 f4             	lea    -0xc(%ebp),%eax
5909b9:	8b d7                	mov    %edi,%edx
5909bb:	e8 98 40 e7 ff       	call   0x404a58
5909c0:	8b 45 f4             	mov    -0xc(%ebp),%eax
5909c3:	33 d2                	xor    %edx,%edx
5909c5:	e8 16 8d e7 ff       	call   0x4096e0
5909ca:	89 83 cc 00 00 00    	mov    %eax,0xcc(%ebx)
5909d0:	8b f7                	mov    %edi,%esi
5909d2:	8b 45 fc             	mov    -0x4(%ebp),%eax
5909d5:	03 45 f8             	add    -0x8(%ebp),%eax
5909d8:	3b f0                	cmp    %eax,%esi
5909da:	72 8a                	jb     0x590966
5909dc:	6a 00                	push   $0x0
5909de:	68 f8 00 00 00       	push   $0xf8
5909e3:	8b 43 04             	mov    0x4(%ebx),%eax
5909e6:	e8 ed dc e8 ff       	call   0x41e6d8
5909eb:	8b 53 04             	mov    0x4(%ebx),%edx
5909ee:	8b c3                	mov    %ebx,%eax
5909f0:	e8 b7 81 ff ff       	call   0x588bac
5909f5:	89 83 ec 00 00 00    	mov    %eax,0xec(%ebx)
5909fb:	8b 53 04             	mov    0x4(%ebx),%edx
5909fe:	8b c3                	mov    %ebx,%eax
590a00:	e8 a7 81 ff ff       	call   0x588bac
590a05:	89 83 e8 00 00 00    	mov    %eax,0xe8(%ebx)
590a0b:	8b 45 fc             	mov    -0x4(%ebp),%eax
590a0e:	e8 b9 1d e7 ff       	call   0x4027cc
590a13:	33 c0                	xor    %eax,%eax
590a15:	5a                   	pop    %edx
590a16:	59                   	pop    %ecx
590a17:	59                   	pop    %ecx
590a18:	64 89 10             	mov    %edx,%fs:(%eax)
590a1b:	68 30 0a 59 00       	push   $0x590a30
590a20:	8d 45 f4             	lea    -0xc(%ebp),%eax
590a23:	e8 40 3e e7 ff       	call   0x404868
590a28:	c3                   	ret
590a29:	e9 de 37 e7 ff       	jmp    0x40420c
590a2e:	eb f0                	jmp    0x590a20
590a30:	5f                   	pop    %edi
590a31:	5e                   	pop    %esi
590a32:	5b                   	pop    %ebx
590a33:	8b e5                	mov    %ebp,%esp
590a35:	5d                   	pop    %ebp
590a36:	c3                   	ret
590a37:	00 70 61             	add    %dh,0x61(%eax)
590a3a:	72 73                	jb     0x590aaf
590a3c:	65 5f                	gs pop %edi
590a3e:	66 6f                	outsw  %ds:(%esi),(%dx)
590a40:	76 65                	jbe    0x590aa7
590a42:	6f                   	outsl  %ds:(%esi),(%dx)
590a43:	6e                   	outsb  %ds:(%esi),(%dx)
590a44:	28 29                	sub    %ch,(%ecx)
590a46:	00 00                	add    %al,(%eax)
590a48:	43                   	inc    %ebx
590a49:	41                   	inc    %ecx
590a4a:	4d                   	dec    %ebp
590a4b:	4d                   	dec    %ebp
590a4c:	41                   	inc    %ecx
590a4d:	4e                   	dec    %esi
590a4e:	55                   	push   %ebp
590a4f:	46                   	inc    %esi
590a50:	00 00                	add    %al,(%eax)
590a52:	00 00                	add    %al,(%eax)
590a54:	43                   	inc    %ebx
590a55:	41                   	inc    %ecx
590a56:	4d                   	dec    %ebp
590a57:	4d                   	dec    %ebp
590a58:	4f                   	dec    %edi
590a59:	44                   	inc    %esp
590a5a:	45                   	inc    %ebp
590a5b:	4c                   	dec    %esp
590a5c:	00 00                	add    %al,(%eax)
590a5e:	00 00                	add    %al,(%eax)
590a60:	54                   	push   %esp
590a61:	49                   	dec    %ecx
590a62:	4d                   	dec    %ebp
590a63:	45                   	inc    %ebp
590a64:	00 00                	add    %al,(%eax)
590a66:	00 00                	add    %al,(%eax)
590a68:	53                   	push   %ebx
590a69:	56                   	push   %esi
590a6a:	57                   	push   %edi
590a6b:	83 c4 f8             	add    $0xfffffff8,%esp
590a6e:	be 03 00 00 00       	mov    $0x3,%esi
590a73:	ba d8 48 6a 00       	mov    $0x6a48d8,%edx
590a78:	89 14 24             	mov    %edx,(%esp)
590a7b:	8d 98 f4 01 00 00    	lea    0x1f4(%eax),%ebx
590a81:	8d 90 04 02 00 00    	lea    0x204(%eax),%edx
590a87:	89 54 24 04          	mov    %edx,0x4(%esp)
590a8b:	bf 03 00 00 00       	mov    $0x3,%edi
590a90:	8b 14 24             	mov    (%esp),%edx
590a93:	8b 4c 24 04          	mov    0x4(%esp),%ecx
590a97:	d9 02                	flds   (%edx)
590a99:	d8 0b                	fmuls  (%ebx)
590a9b:	d9 19                	fstps  (%ecx)
590a9d:	9b                   	fwait
590a9e:	83 c1 04             	add    $0x4,%ecx
590aa1:	83 c2 04             	add    $0x4,%edx
590aa4:	4f                   	dec    %edi
590aa5:	75 f0                	jne    0x590a97
590aa7:	83 44 24 04 10       	addl   $0x10,0x4(%esp)
590aac:	83 c3 04             	add    $0x4,%ebx
590aaf:	83 04 24 0c          	addl   $0xc,(%esp)
590ab3:	4e                   	dec    %esi
590ab4:	75 d5                	jne    0x590a8b
590ab6:	c7 80 24 01 00 00 01 	movl   $0x1,0x124(%eax)
590abd:	00 00 00
590ac0:	59                   	pop    %ecx
590ac1:	5a                   	pop    %edx
590ac2:	5f                   	pop    %edi
590ac3:	5e                   	pop    %esi
590ac4:	5b                   	pop    %ebx
590ac5:	c3                   	ret
590ac6:	8b c0                	mov    %eax,%eax
590ac8:	53                   	push   %ebx
590ac9:	56                   	push   %esi
590aca:	57                   	push   %edi
590acb:	83 c4 f8             	add    $0xfffffff8,%esp
590ace:	be 03 00 00 00       	mov    $0x3,%esi
590ad3:	ba fc 48 6a 00       	mov    $0x6a48fc,%edx
590ad8:	89 14 24             	mov    %edx,(%esp)
590adb:	8d 90 04 02 00 00    	lea    0x204(%eax),%edx
590ae1:	89 54 24 04          	mov    %edx,0x4(%esp)
590ae5:	bb 04 00 00 00       	mov    $0x4,%ebx
590aea:	8b 14 24             	mov    (%esp),%edx
590aed:	8b 4c 24 04          	mov    0x4(%esp),%ecx
590af1:	8b 3a                	mov    (%edx),%edi
590af3:	89 39                	mov    %edi,(%ecx)
590af5:	83 c1 04             	add    $0x4,%ecx
590af8:	83 c2 04             	add    $0x4,%edx
590afb:	4b                   	dec    %ebx
590afc:	75 f3                	jne    0x590af1
590afe:	83 44 24 04 10       	addl   $0x10,0x4(%esp)
590b03:	83 04 24 10          	addl   $0x10,(%esp)
590b07:	4e                   	dec    %esi
590b08:	75 db                	jne    0x590ae5
590b0a:	c7 80 24 01 00 00 01 	movl   $0x1,0x124(%eax)
590b11:	00 00 00
590b14:	59                   	pop    %ecx
590b15:	5a                   	pop    %edx
590b16:	5f                   	pop    %edi
590b17:	5e                   	pop    %esi
590b18:	5b                   	pop    %ebx
590b19:	c3                   	ret
590b1a:	8b c0                	mov    %eax,%eax
590b1c:	53                   	push   %ebx
590b1d:	56                   	push   %esi
590b1e:	57                   	push   %edi
590b1f:	81 c4 3c ff ff ff    	add    $0xffffff3c,%esp
590b25:	89 04 24             	mov    %eax,(%esp)
590b28:	8b 04 24             	mov    (%esp),%eax
590b2b:	05 04 02 00 00       	add    $0x204,%eax
590b30:	b9 30 00 00 00       	mov    $0x30,%ecx
590b35:	33 d2                	xor    %edx,%edx