59572f:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
595733:	66 c7 45 ea 03 00    	movw   $0x3,-0x16(%ebp)
595739:	8b 45 08             	mov    0x8(%ebp),%eax
59573c:	8b 40 e4             	mov    -0x1c(%eax),%eax
59573f:	8b d3                	mov    %ebx,%edx
595741:	e8 7a 66 e8 ff       	call   0x41bdc0
595746:	89 45 ec             	mov    %eax,-0x14(%ebp)
595749:	89 75 f0             	mov    %esi,-0x10(%ebp)
59574c:	8d 55 e8             	lea    -0x18(%ebp),%edx
59574f:	8b 45 08             	mov    0x8(%ebp),%eax
595752:	8b 40 e8             	mov    -0x18(%eax),%eax
595755:	8b 00                	mov    (%eax),%eax
595757:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
59575d:	8b 40 04             	mov    0x4(%eax),%eax
595760:	b9 0c 00 00 00       	mov    $0xc,%ecx
595765:	8b 38                	mov    (%eax),%edi
595767:	ff 57 0c             	call   *0xc(%edi)
59576a:	8b 45 08             	mov    0x8(%ebp),%eax
59576d:	8b 40 e8             	mov    -0x18(%eax),%eax
595770:	8b 00                	mov    (%eax),%eax
595772:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
595778:	8b 40 04             	mov    0x4(%eax),%eax
59577b:	e8 38 8f e8 ff       	call   0x41e6b8
595780:	89 45 fc             	mov    %eax,-0x4(%ebp)
595783:	8b c6                	mov    %esi,%eax
595785:	99                   	cltd
595786:	52                   	push   %edx
595787:	50                   	push   %eax
595788:	8b 45 08             	mov    0x8(%ebp),%eax
59578b:	8b 40 e8             	mov    -0x18(%eax),%eax
59578e:	8b 00                	mov    (%eax),%eax
595790:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
595796:	8b 40 04             	mov    0x4(%eax),%eax
595799:	e8 3a 8f e8 ff       	call   0x41e6d8
59579e:	8b 45 08             	mov    0x8(%ebp),%eax
5957a1:	8b 40 e0             	mov    -0x20(%eax),%eax
5957a4:	8b d3                	mov    %ebx,%edx
5957a6:	e8 15 66 e8 ff       	call   0x41bdc0
5957ab:	8b d0                	mov    %eax,%edx
5957ad:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5957b0:	03 c9                	add    %ecx,%ecx
5957b2:	8b 45 08             	mov    0x8(%ebp),%eax
5957b5:	8b 40 e8             	mov    -0x18(%eax),%eax
5957b8:	8b 00                	mov    (%eax),%eax
5957ba:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
5957c0:	8b 40 04             	mov    0x4(%eax),%eax
5957c3:	8b 30                	mov    (%eax),%esi
5957c5:	ff 56 0c             	call   *0xc(%esi)
5957c8:	8b 45 08             	mov    0x8(%ebp),%eax
5957cb:	8b 40 e8             	mov    -0x18(%eax),%eax
5957ce:	8b 00                	mov    (%eax),%eax
5957d0:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
5957d6:	8b 40 04             	mov    0x4(%eax),%eax
5957d9:	e8 da 8e e8 ff       	call   0x41e6b8
5957de:	8b f0                	mov    %eax,%esi
5957e0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5957e3:	99                   	cltd
5957e4:	52                   	push   %edx
5957e5:	50                   	push   %eax
5957e6:	8b 45 08             	mov    0x8(%ebp),%eax
5957e9:	8b 40 e8             	mov    -0x18(%eax),%eax
5957ec:	8b 00                	mov    (%eax),%eax
5957ee:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
5957f4:	8b 40 04             	mov    0x4(%eax),%eax
5957f7:	e8 dc 8e e8 ff       	call   0x41e6d8
5957fc:	43                   	inc    %ebx
5957fd:	ff 4d f4             	decl   -0xc(%ebp)
595800:	0f 85 1c ff ff ff    	jne    0x595722
595806:	8b 45 08             	mov    0x8(%ebp),%eax
595809:	8b 40 e8             	mov    -0x18(%eax),%eax
59580c:	8b 00                	mov    (%eax),%eax
59580e:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
595814:	e8 2b ba 06 00       	call   0x601244
595819:	5f                   	pop    %edi
59581a:	5e                   	pop    %esi
59581b:	5b                   	pop    %ebx
59581c:	8b e5                	mov    %ebp,%esp
59581e:	5d                   	pop    %ebp
59581f:	c3                   	ret
595820:	55                   	push   %ebp
595821:	8b ec                	mov    %esp,%ebp
595823:	83 c4 d4             	add    $0xffffffd4,%esp
595826:	53                   	push   %ebx
595827:	56                   	push   %esi
595828:	57                   	push   %edi
595829:	33 c9                	xor    %ecx,%ecx
59582b:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
59582e:	89 4d d8             	mov    %ecx,-0x28(%ebp)
595831:	89 4d dc             	mov    %ecx,-0x24(%ebp)
595834:	89 4d e0             	mov    %ecx,-0x20(%ebp)
595837:	89 4d f4             	mov    %ecx,-0xc(%ebp)
59583a:	8b ca                	mov    %edx,%ecx
59583c:	89 45 fc             	mov    %eax,-0x4(%ebp)
59583f:	33 c0                	xor    %eax,%eax
595841:	55                   	push   %ebp
595842:	68 fb 5d 59 00       	push   $0x595dfb
595847:	64 ff 30             	push   %fs:(%eax)
59584a:	64 89 20             	mov    %esp,%fs:(%eax)
59584d:	8b 45 fc             	mov    -0x4(%ebp),%eax
595850:	03 c1                	add    %ecx,%eax
595852:	83 e8 04             	sub    $0x4,%eax
595855:	99                   	cltd
595856:	52                   	push   %edx
595857:	50                   	push   %eax
595858:	8b 45 08             	mov    0x8(%ebp),%eax
59585b:	8b 40 fc             	mov    -0x4(%eax),%eax
59585e:	e8 75 8e e8 ff       	call   0x41e6d8
595863:	8b 45 08             	mov    0x8(%ebp),%eax
595866:	50                   	push   %eax
595867:	e8 f4 fb ff ff       	call   0x595460
59586c:	59                   	pop    %ecx
59586d:	33 d2                	xor    %edx,%edx
59586f:	52                   	push   %edx
595870:	50                   	push   %eax
595871:	8b 45 fc             	mov    -0x4(%ebp),%eax
595874:	99                   	cltd
595875:	03 04 24             	add    (%esp),%eax
595878:	13 54 24 04          	adc    0x4(%esp),%edx
59587c:	83 c4 08             	add    $0x8,%esp
59587f:	52                   	push   %edx
595880:	50                   	push   %eax
595881:	8b 45 08             	mov    0x8(%ebp),%eax
595884:	8b 40 fc             	mov    -0x4(%eax),%eax
595887:	e8 4c 8e e8 ff       	call   0x41e6d8
59588c:	8b 45 08             	mov    0x8(%ebp),%eax
59588f:	50                   	push   %eax
595890:	e8 97 fb ff ff       	call   0x59542c
595895:	59                   	pop    %ecx
595896:	0f b7 c0             	movzwl %ax,%eax
595899:	48                   	dec    %eax
59589a:	85 c0                	test   %eax,%eax
59589c:	0f 8c 36 05 00 00    	jl     0x595dd8
5958a2:	40                   	inc    %eax
5958a3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5958a6:	8b 45 08             	mov    0x8(%ebp),%eax
5958a9:	50                   	push   %eax
5958aa:	e8 7d fb ff ff       	call   0x59542c
5958af:	59                   	pop    %ecx
5958b0:	8b d8                	mov    %eax,%ebx
5958b2:	8b 45 08             	mov    0x8(%ebp),%eax
5958b5:	50                   	push   %eax
5958b6:	e8 a5 fb ff ff       	call   0x595460
5958bb:	59                   	pop    %ecx
5958bc:	89 45 f8             	mov    %eax,-0x8(%ebp)
5958bf:	8b 45 08             	mov    0x8(%ebp),%eax
5958c2:	50                   	push   %eax
5958c3:	e8 98 fb ff ff       	call   0x595460
5958c8:	59                   	pop    %ecx
5958c9:	8b f0                	mov    %eax,%esi
5958cb:	03 75 fc             	add    -0x4(%ebp),%esi
5958ce:	8b 45 08             	mov    0x8(%ebp),%eax
5958d1:	8b 40 fc             	mov    -0x4(%eax),%eax
5958d4:	e8 df 8d e8 ff       	call   0x41e6b8
5958d9:	8b f8                	mov    %eax,%edi
5958db:	8b c3                	mov    %ebx,%eax
5958dd:	66 25 00 c0          	and    $0xc000,%ax
5958e1:	66 3d 00 40          	cmp    $0x4000,%ax
5958e5:	75 0c                	jne    0x5958f3
5958e7:	c7 45 f8 08 00 00 00 	movl   $0x8,-0x8(%ebp)
5958ee:	8b f7                	mov    %edi,%esi
5958f0:	83 ee 08             	sub    $0x8,%esi
5958f3:	8b c6                	mov    %esi,%eax
5958f5:	33 d2                	xor    %edx,%edx
5958f7:	52                   	push   %edx
5958f8:	50                   	push   %eax
5958f9:	8b 45 08             	mov    0x8(%ebp),%eax
5958fc:	8b 40 fc             	mov    -0x4(%eax),%eax
5958ff:	e8 d4 8d e8 ff       	call   0x41e6d8
595904:	8b 45 ec             	mov    -0x14(%ebp),%eax
595907:	89 45 e8             	mov    %eax,-0x18(%ebp)
59590a:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
59590e:	89 45 ec             	mov    %eax,-0x14(%ebp)
595911:	8b c3                	mov    %ebx,%eax
595913:	66 25 ff 07          	and    $0x7ff,%ax
595917:	66 89 45 f2          	mov    %ax,-0xe(%ebp)
59591b:	0f b7 c3             	movzwl %bx,%eax
59591e:	25 ff 3f ff ff       	and    $0xffff3fff,%eax
595923:	3d 03 18 00 00       	cmp    $0x1803,%eax
595928:	0f 8f d3 00 00 00    	jg     0x595a01
59592e:	0f 84 43 03 00 00    	je     0x595c77
595934:	3d 0a 10 00 00       	cmp    $0x100a,%eax
595939:	7f 65                	jg     0x5959a0
59593b:	0f 84 c6 02 00 00    	je     0x595c07
595941:	3d 0c 08 00 00       	cmp    $0x80c,%eax
595946:	7f 2f                	jg     0x595977
595948:	0f 84 50 02 00 00    	je     0x595b9e
59594e:	83 e8 36             	sub    $0x36,%eax
595951:	0f 84 0c 04 00 00    	je     0x595d63
595957:	2d cf 07 00 00       	sub    $0x7cf,%eax
59595c:	0f 84 99 01 00 00    	je     0x595afb
595962:	83 e8 05             	sub    $0x5,%eax
595965:	0f 84 ba 01 00 00    	je     0x595b25
59596b:	48                   	dec    %eax
59596c:	0f 84 02 02 00 00    	je     0x595b74
595972:	e9 2c 04 00 00       	jmp    0x595da3
595977:	2d 0d 08 00 00       	sub    $0x80d,%eax
59597c:	0f 84 31 02 00 00    	je     0x595bb3
595982:	83 e8 03             	sub    $0x3,%eax
595985:	0f 84 3d 02 00 00    	je     0x595bc8
59598b:	83 e8 06             	sub    $0x6,%eax
59598e:	0f 84 49 02 00 00    	je     0x595bdd
595994:	48                   	dec    %eax
595995:	0f 84 57 02 00 00    	je     0x595bf2
59599b:	e9 03 04 00 00       	jmp    0x595da3
5959a0:	3d 2a 10 00 00       	cmp    $0x102a,%eax
5959a5:	7f 2f                	jg     0x5959d6
5959a7:	0f 84 d7 03 00 00    	je     0x595d84
5959ad:	2d 10 10 00 00       	sub    $0x1010,%eax
5959b2:	0f 84 5f 02 00 00    	je     0x595c17
5959b8:	48                   	dec    %eax
5959b9:	0f 84 68 02 00 00    	je     0x595c27
5959bf:	83 e8 05             	sub    $0x5,%eax
5959c2:	0f 84 6f 02 00 00    	je     0x595c37
5959c8:	83 e8 06             	sub    $0x6,%eax
5959cb:	0f 84 76 02 00 00    	je     0x595c47
5959d1:	e9 cd 03 00 00       	jmp    0x595da3
5959d6:	2d 2d 10 00 00       	sub    $0x102d,%eax
5959db:	0f 84 8f 03 00 00    	je     0x595d70
5959e1:	83 e8 04             	sub    $0x4,%eax
5959e4:	0f 84 6d 02 00 00    	je     0x595c57
5959ea:	83 e8 02             	sub    $0x2,%eax
5959ed:	0f 84 a5 03 00 00    	je     0x595d98
5959f3:	83 e8 76             	sub    $0x76,%eax
5959f6:	0f 84 6b 02 00 00    	je     0x595c67
5959fc:	e9 a2 03 00 00       	jmp    0x595da3
595a01:	3d 18 18 00 00       	cmp    $0x1818,%eax
595a06:	7f 6b                	jg     0x595a73
595a08:	0f 84 f9 02 00 00    	je     0x595d07
595a0e:	05 fc e7 ff ff       	add    $0xffffe7fc,%eax
595a13:	83 f8 13             	cmp    $0x13,%eax
595a16:	0f 87 87 03 00 00    	ja     0x595da3
595a1c:	ff 24 85 23 5a 59 00 	jmp    *0x595a23(,%eax,4)
595a23:	87 5c 59 00          	xchg   %ebx,0x0(%ecx,%ebx,2)
595a27:	a3 5d 59 00 97       	mov    %eax,0x9700595d
595a2c:	5c                   	pop    %esp
595a2d:	59                   	pop    %ecx
595a2e:	00 a7 5c 59 00 a3    	add    %ah,-0x5cffa6a4(%edi)
595a34:	5d                   	pop    %ebp
595a35:	59                   	pop    %ecx
595a36:	00 a3 5d 59 00 a3    	add    %ah,-0x5cffa6a3(%ebx)
595a3c:	5d                   	pop    %ebp
595a3d:	59                   	pop    %ecx
595a3e:	00 b7 5c 59 00 a3    	add    %dh,-0x5cffa6a4(%edi)
595a44:	5d                   	pop    %ebp
595a45:	59                   	pop    %ecx
595a46:	00 a3 5d 59 00 c7    	add    %ah,-0x38ffa6a3(%ebx)
595a4c:	5c                   	pop    %esp
595a4d:	59                   	pop    %ecx
595a4e:	00 a3 5d 59 00 24    	add    %ah,0x2400595d(%ebx)
595a54:	5d                   	pop    %ebp
595a55:	59                   	pop    %ecx
595a56:	00 a3 5d 59 00 a3    	add    %ah,-0x5cffa6a3(%ebx)
595a5c:	5d                   	pop    %ebp
595a5d:	59                   	pop    %ecx
595a5e:	00 d7                	add    %dl,%bh
595a60:	5c                   	pop    %esp
595a61:	59                   	pop    %ecx
595a62:	00 e7                	add    %ah,%bh
595a64:	5c                   	pop    %esp
595a65:	59                   	pop    %ecx
595a66:	00 a3 5d 59 00 a3    	add    %ah,-0x5cffa6a3(%ebx)
595a6c:	5d                   	pop    %ebp
595a6d:	59                   	pop    %ecx
595a6e:	00 f7                	add    %dh,%bh
595a70:	5c                   	pop    %esp
595a71:	59                   	pop    %ecx
595a72:	00 3d 04 28 00 00    	add    %bh,0x2804
595a78:	7f 27                	jg     0x595aa1
595a7a:	0f 84 d6 02 00 00    	je     0x595d56
595a80:	2d 35 18 00 00       	sub    $0x1835,%eax
595a85:	0f 84 8c 02 00 00    	je     0x595d17
595a8b:	2d d2 07 00 00       	sub    $0x7d2,%eax
595a90:	74 45                	je     0x595ad7
595a92:	48                   	dec    %eax
595a93:	74 54                	je     0x595ae9
595a95:	2d f8 07 00 00       	sub    $0x7f8,%eax
595a9a:	74 27                	je     0x595ac3
595a9c:	e9 02 03 00 00       	jmp    0x595da3
595aa1:	2d 07 28 00 00       	sub    $0x2807,%eax
595aa6:	74 1b                	je     0x595ac3
595aa8:	2d f9 07 00 00       	sub    $0x7f9,%eax
595aad:	74 14                	je     0x595ac3
595aaf:	83 c0 fe             	add    $0xfffffffe,%eax
595ab2:	83 e8 03             	sub    $0x3,%eax
595ab5:	72 0c                	jb     0x595ac3
595ab7:	83 c0 fb             	add    $0xfffffffb,%eax
595aba:	83 e8 02             	sub    $0x2,%eax
595abd:	0f 83 e0 02 00 00    	jae    0x595da3
595ac3:	8b 45 08             	mov    0x8(%ebp),%eax
595ac6:	50                   	push   %eax
595ac7:	8b 55 f8             	mov    -0x8(%ebp),%edx
595aca:	8b c6                	mov    %esi,%eax
595acc:	e8 4f fd ff ff       	call   0x595820
595ad1:	59                   	pop    %ecx
595ad2:	e9 cc 02 00 00       	jmp    0x595da3
595ad7:	8b 45 08             	mov    0x8(%ebp),%eax
595ada:	50                   	push   %eax
595adb:	8b 45 f8             	mov    -0x8(%ebp),%eax
595ade:	e8 ad f9 ff ff       	call   0x595490
595ae3:	59                   	pop    %ecx
595ae4:	e9 ba 02 00 00       	jmp    0x595da3
595ae9:	8b 45 08             	mov    0x8(%ebp),%eax
595aec:	50                   	push   %eax
595aed:	8b 45 f8             	mov    -0x8(%ebp),%eax
595af0:	e8 9b f9 ff ff       	call   0x595490
595af5:	59                   	pop    %ecx
595af6:	e9 a8 02 00 00       	jmp    0x595da3
595afb:	8b 45 08             	mov    0x8(%ebp),%eax
595afe:	50                   	push   %eax
595aff:	8d 55 e0             	lea    -0x20(%ebp),%edx
595b02:	8b 45 f8             	mov    -0x8(%ebp),%eax
595b05:	e8 b2 fa ff ff       	call   0x5955bc
595b0a:	59                   	pop    %ecx
595b0b:	8b 55 e0             	mov    -0x20(%ebp),%edx
595b0e:	8b 45 08             	mov    0x8(%ebp),%eax
595b11:	8b 40 e8             	mov    -0x18(%eax),%eax
595b14:	8b 00                	mov    (%eax),%eax
595b16:	05 78 01 00 00       	add    $0x178,%eax
595b1b:	e8 9c ed e6 ff       	call   0x4048bc
595b20:	e9 7e 02 00 00       	jmp    0x595da3
595b25:	8b 45 08             	mov    0x8(%ebp),%eax
595b28:	50                   	push   %eax
595b29:	8d 55 dc             	lea    -0x24(%ebp),%edx
595b2c:	8b 45 f8             	mov    -0x8(%ebp),%eax
595b2f:	e8 88 fa ff ff       	call   0x5955bc
595b34:	59                   	pop    %ecx
595b35:	8b 55 dc             	mov    -0x24(%ebp),%edx
595b38:	8b 45 08             	mov    0x8(%ebp),%eax
595b3b:	8b 40 e8             	mov    -0x18(%eax),%eax
595b3e:	8b 00                	mov    (%eax),%eax
595b40:	05 7c 01 00 00       	add    $0x17c,%eax
595b45:	e8 72 ed e6 ff       	call   0x4048bc
595b4a:	8b 45 08             	mov    0x8(%ebp),%eax
595b4d:	50                   	push   %eax
595b4e:	8d 55 d8             	lea    -0x28(%ebp),%edx
595b51:	8b 45 f8             	mov    -0x8(%ebp),%eax
595b54:	e8 63 fa ff ff       	call   0x5955bc
595b59:	59                   	pop    %ecx
595b5a:	8b 55 d8             	mov    -0x28(%ebp),%edx
595b5d:	8b 45 08             	mov    0x8(%ebp),%eax
595b60:	8b 40 e8             	mov    -0x18(%eax),%eax
595b63:	8b 00                	mov    (%eax),%eax
595b65:	05 80 01 00 00       	add    $0x180,%eax
595b6a:	e8 4d ed e6 ff       	call   0x4048bc
595b6f:	e9 2f 02 00 00       	jmp    0x595da3
595b74:	8b 45 08             	mov    0x8(%ebp),%eax
595b77:	50                   	push   %eax
595b78:	8d 55 d4             	lea    -0x2c(%ebp),%edx
595b7b:	8b 45 f8             	mov    -0x8(%ebp),%eax
595b7e:	e8 39 fa ff ff       	call   0x5955bc