583835:	8b c1                	mov    %ecx,%eax
583837:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
58383d:	72 10                	jb     0x58384f
58383f:	8b 49 fc             	mov    -0x4(%ecx),%ecx
583842:	83 c2 23             	add    $0x23,%edx
583845:	2b c1                	sub    %ecx,%eax
583847:	83 c0 fc             	add    $0xfffffffc,%eax
58384a:	83 f8 1f             	cmp    $0x1f,%eax
58384d:	77 2a                	ja     0x583879
58384f:	52                   	push   %edx
583850:	51                   	push   %ecx
583851:	e8 1c d8 05 00       	call   0x5e1072
583856:	83 c4 08             	add    $0x8,%esp
583859:	8a c3                	mov    %bl,%al
58385b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
58385e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
583865:	59                   	pop    %ecx
583866:	5f                   	pop    %edi
583867:	5e                   	pop    %esi
583868:	5b                   	pop    %ebx
583869:	8b 4d f0             	mov    -0x10(%ebp),%ecx
58386c:	33 cd                	xor    %ebp,%ecx
58386e:	e8 67 dc 05 00       	call   0x5e14da
583873:	8b e5                	mov    %ebp,%esp
583875:	5d                   	pop    %ebp
583876:	c2 04 00             	ret    $0x4
583879:	e8 b1 96 06 00       	call   0x5ecf2f
58387e:	cc                   	int3
58387f:	cc                   	int3
583880:	55                   	push   %ebp
583881:	8b ec                	mov    %esp,%ebp
583883:	6a ff                	push   $0xffffffff
583885:	68 58 d1 65 00       	push   $0x65d158
58388a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
583890:	50                   	push   %eax
583891:	83 ec 30             	sub    $0x30,%esp
583894:	a1 d4 89 72 00       	mov    0x7289d4,%eax
583899:	33 c5                	xor    %ebp,%eax
58389b:	89 45 f0             	mov    %eax,-0x10(%ebp)
58389e:	53                   	push   %ebx
58389f:	56                   	push   %esi
5838a0:	57                   	push   %edi
5838a1:	50                   	push   %eax
5838a2:	8d 45 f4             	lea    -0xc(%ebp),%eax
5838a5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
5838ab:	89 4d cc             	mov    %ecx,-0x34(%ebp)
5838ae:	8b 5d 08             	mov    0x8(%ebp),%ebx
5838b1:	8b 7d 0c             	mov    0xc(%ebp),%edi
5838b4:	8b cf                	mov    %edi,%ecx
5838b6:	89 5d d0             	mov    %ebx,-0x30(%ebp)
5838b9:	8b 43 08             	mov    0x8(%ebx),%eax
5838bc:	2b 43 04             	sub    0x4(%ebx),%eax
5838bf:	83 e8 02             	sub    $0x2,%eax
5838c2:	50                   	push   %eax
5838c3:	e8 a8 00 ed ff       	call   0x453970
5838c8:	8b 73 04             	mov    0x4(%ebx),%esi
5838cb:	8b 5b 08             	mov    0x8(%ebx),%ebx
5838ce:	46                   	inc    %esi
5838cf:	4b                   	dec    %ebx
5838d0:	3b f3                	cmp    %ebx,%esi
5838d2:	0f 84 12 01 00 00    	je     0x5839ea
5838d8:	8a 06                	mov    (%esi),%al
5838da:	46                   	inc    %esi
5838db:	88 45 c4             	mov    %al,-0x3c(%ebp)
5838de:	3c 22                	cmp    $0x22,%al
5838e0:	0f 84 04 01 00 00    	je     0x5839ea
5838e6:	3c 5c                	cmp    $0x5c,%al
5838e8:	0f 85 ea 00 00 00    	jne    0x5839d8
5838ee:	3b f3                	cmp    %ebx,%esi
5838f0:	0f 84 89 01 00 00    	je     0x583a7f
5838f6:	8a 06                	mov    (%esi),%al
5838f8:	46                   	inc    %esi
5838f9:	0f be c0             	movsbl %al,%eax
5838fc:	83 c0 de             	add    $0xffffffde,%eax
5838ff:	89 75 d4             	mov    %esi,-0x2c(%ebp)
583902:	83 f8 53             	cmp    $0x53,%eax
583905:	0f 87 03 01 00 00    	ja     0x583a0e
58390b:	0f b6 80 0c 3b 58 00 	movzbl 0x583b0c(%eax),%eax
583912:	ff 24 85 e4 3a 58 00 	jmp    *0x583ae4(,%eax,4)
583919:	6a 22                	push   $0x22
58391b:	e9 bb 00 00 00       	jmp    0x5839db
583920:	6a 2f                	push   $0x2f
583922:	e9 b4 00 00 00       	jmp    0x5839db
583927:	6a 5c                	push   $0x5c
583929:	e9 ad 00 00 00       	jmp    0x5839db
58392e:	6a 08                	push   $0x8
583930:	e9 a6 00 00 00       	jmp    0x5839db
583935:	6a 0c                	push   $0xc
583937:	e9 9f 00 00 00       	jmp    0x5839db
58393c:	6a 0a                	push   $0xa
58393e:	e9 98 00 00 00       	jmp    0x5839db
583943:	6a 0d                	push   $0xd
583945:	e9 91 00 00 00       	jmp    0x5839db
58394a:	6a 09                	push   $0x9
58394c:	e9 8a 00 00 00       	jmp    0x5839db
583951:	8b 4d cc             	mov    -0x34(%ebp),%ecx
583954:	8d 45 c8             	lea    -0x38(%ebp),%eax
583957:	50                   	push   %eax
583958:	53                   	push   %ebx
583959:	8d 45 d4             	lea    -0x2c(%ebp),%eax
58395c:	50                   	push   %eax
58395d:	ff 75 d0             	push   -0x30(%ebp)
583960:	e8 fb 01 00 00       	call   0x583b60
583965:	84 c0                	test   %al,%al
583967:	0f 84 9d 00 00 00    	je     0x583a0a
58396d:	ff 75 c8             	push   -0x38(%ebp)
583970:	8d 45 d8             	lea    -0x28(%ebp),%eax
583973:	50                   	push   %eax
583974:	e8 f7 f6 ff ff       	call   0x583070
583979:	83 c4 08             	add    $0x8,%esp
58397c:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
583980:	8b c8                	mov    %eax,%ecx
583982:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
583989:	72 02                	jb     0x58398d
58398b:	8b 08                	mov    (%eax),%ecx
58398d:	ff 70 10             	push   0x10(%eax)
583990:	51                   	push   %ecx
583991:	8b cf                	mov    %edi,%ecx
583993:	e8 28 17 ec ff       	call   0x4450c0
583998:	8b 55 ec             	mov    -0x14(%ebp),%edx
58399b:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
5839a2:	83 fa 10             	cmp    $0x10,%edx
5839a5:	72 2c                	jb     0x5839d3
5839a7:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5839aa:	42                   	inc    %edx
5839ab:	8b c1                	mov    %ecx,%eax
5839ad:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
5839b3:	72 14                	jb     0x5839c9
5839b5:	8b 49 fc             	mov    -0x4(%ecx),%ecx
5839b8:	83 c2 23             	add    $0x23,%edx
5839bb:	2b c1                	sub    %ecx,%eax
5839bd:	83 c0 fc             	add    $0xfffffffc,%eax
5839c0:	83 f8 1f             	cmp    $0x1f,%eax
5839c3:	0f 87 16 01 00 00    	ja     0x583adf
5839c9:	52                   	push   %edx
5839ca:	51                   	push   %ecx
5839cb:	e8 a2 d6 05 00       	call   0x5e1072
5839d0:	83 c4 08             	add    $0x8,%esp
5839d3:	8b 75 d4             	mov    -0x2c(%ebp),%esi
5839d6:	eb 0a                	jmp    0x5839e2
5839d8:	ff 75 c4             	push   -0x3c(%ebp)
5839db:	8b cf                	mov    %edi,%ecx
5839dd:	e8 be a3 ed ff       	call   0x45dda0
5839e2:	3b f3                	cmp    %ebx,%esi
5839e4:	0f 85 ee fe ff ff    	jne    0x5838d8
5839ea:	b0 01                	mov    $0x1,%al
5839ec:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5839ef:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5839f6:	59                   	pop    %ecx
5839f7:	5f                   	pop    %edi
5839f8:	5e                   	pop    %esi
5839f9:	5b                   	pop    %ebx
5839fa:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5839fd:	33 cd                	xor    %ebp,%ecx
5839ff:	e8 d6 da 05 00       	call   0x5e14da
583a04:	8b e5                	mov    %ebp,%esp
583a06:	5d                   	pop    %ebp
583a07:	c2 08 00             	ret    $0x8
583a0a:	32 c0                	xor    %al,%al
583a0c:	eb de                	jmp    0x5839ec
583a0e:	6a 1d                	push   $0x1d
583a10:	68 fc 35 6c 00       	push   $0x6c35fc
583a15:	8d 4d d8             	lea    -0x28(%ebp),%ecx
583a18:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
583a1f:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
583a26:	c6 45 d8 00          	movb   $0x0,-0x28(%ebp)
583a2a:	e8 11 18 ec ff       	call   0x445240
583a2f:	8b 4d cc             	mov    -0x34(%ebp),%ecx
583a32:	8d 45 d8             	lea    -0x28(%ebp),%eax
583a35:	56                   	push   %esi
583a36:	ff 75 d0             	push   -0x30(%ebp)
583a39:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
583a40:	50                   	push   %eax
583a41:	e8 4a f5 ff ff       	call   0x582f90
583a46:	8b 55 ec             	mov    -0x14(%ebp),%edx
583a49:	8a d8                	mov    %al,%bl
583a4b:	83 fa 10             	cmp    $0x10,%edx
583a4e:	72 28                	jb     0x583a78
583a50:	8b 4d d8             	mov    -0x28(%ebp),%ecx
583a53:	42                   	inc    %edx
583a54:	8b c1                	mov    %ecx,%eax
583a56:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
583a5c:	72 10                	jb     0x583a6e
583a5e:	8b 49 fc             	mov    -0x4(%ecx),%ecx
583a61:	83 c2 23             	add    $0x23,%edx
583a64:	2b c1                	sub    %ecx,%eax
583a66:	83 c0 fc             	add    $0xfffffffc,%eax
583a69:	83 f8 1f             	cmp    $0x1f,%eax
583a6c:	77 71                	ja     0x583adf
583a6e:	52                   	push   %edx
583a6f:	51                   	push   %ecx
583a70:	e8 fd d5 05 00       	call   0x5e1072
583a75:	83 c4 08             	add    $0x8,%esp
583a78:	8a c3                	mov    %bl,%al
583a7a:	e9 6d ff ff ff       	jmp    0x5839ec
583a7f:	6a 1f                	push   $0x1f
583a81:	68 dc 35 6c 00       	push   $0x6c35dc
583a86:	8d 4d d8             	lea    -0x28(%ebp),%ecx
583a89:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
583a90:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
583a97:	c6 45 d8 00          	movb   $0x0,-0x28(%ebp)
583a9b:	e8 a0 17 ec ff       	call   0x445240
583aa0:	8b 4d cc             	mov    -0x34(%ebp),%ecx
583aa3:	8d 45 d8             	lea    -0x28(%ebp),%eax
583aa6:	56                   	push   %esi
583aa7:	ff 75 d0             	push   -0x30(%ebp)
583aaa:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
583ab1:	50                   	push   %eax
583ab2:	e8 d9 f4 ff ff       	call   0x582f90
583ab7:	8b 55 ec             	mov    -0x14(%ebp),%edx
583aba:	8a d8                	mov    %al,%bl
583abc:	83 fa 10             	cmp    $0x10,%edx
583abf:	72 b7                	jb     0x583a78
583ac1:	8b 4d d8             	mov    -0x28(%ebp),%ecx
583ac4:	42                   	inc    %edx
583ac5:	8b c1                	mov    %ecx,%eax
583ac7:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
583acd:	72 9f                	jb     0x583a6e
583acf:	8b 49 fc             	mov    -0x4(%ecx),%ecx
583ad2:	83 c2 23             	add    $0x23,%edx
583ad5:	2b c1                	sub    %ecx,%eax
583ad7:	83 c0 fc             	add    $0xfffffffc,%eax
583ada:	83 f8 1f             	cmp    $0x1f,%eax
583add:	76 8f                	jbe    0x583a6e
583adf:	e8 4b 94 06 00       	call   0x5ecf2f
583ae4:	19 39                	sbb    %edi,(%ecx)
583ae6:	58                   	pop    %eax
583ae7:	00 20                	add    %ah,(%eax)
583ae9:	39 58 00             	cmp    %ebx,0x0(%eax)
583aec:	27                   	daa
583aed:	39 58 00             	cmp    %ebx,0x0(%eax)
583af0:	2e 39 58 00          	cmp    %ebx,%cs:0x0(%eax)
583af4:	35 39 58 00 3c       	xor    $0x3c005839,%eax
583af9:	39 58 00             	cmp    %ebx,0x0(%eax)
583afc:	43                   	inc    %ebx
583afd:	39 58 00             	cmp    %ebx,0x0(%eax)
583b00:	4a                   	dec    %edx
583b01:	39 58 00             	cmp    %ebx,0x0(%eax)
583b04:	51                   	push   %ecx
583b05:	39 58 00             	cmp    %ebx,0x0(%eax)
583b08:	0e                   	push   %cs
583b09:	3a 58 00             	cmp    0x0(%eax),%bl
583b0c:	00 09                	add    %cl,(%ecx)
583b0e:	09 09                	or     %ecx,(%ecx)
583b10:	09 09                	or     %ecx,(%ecx)
583b12:	09 09                	or     %ecx,(%ecx)
583b14:	09 09                	or     %ecx,(%ecx)
583b16:	09 09                	or     %ecx,(%ecx)
583b18:	09 01                	or     %eax,(%ecx)
583b1a:	09 09                	or     %ecx,(%ecx)
583b1c:	09 09                	or     %ecx,(%ecx)
583b1e:	09 09                	or     %ecx,(%ecx)
583b20:	09 09                	or     %ecx,(%ecx)
583b22:	09 09                	or     %ecx,(%ecx)
583b24:	09 09                	or     %ecx,(%ecx)
583b26:	09 09                	or     %ecx,(%ecx)
583b28:	09 09                	or     %ecx,(%ecx)
583b2a:	09 09                	or     %ecx,(%ecx)
583b2c:	09 09                	or     %ecx,(%ecx)
583b2e:	09 09                	or     %ecx,(%ecx)
583b30:	09 09                	or     %ecx,(%ecx)
583b32:	09 09                	or     %ecx,(%ecx)
583b34:	09 09                	or     %ecx,(%ecx)
583b36:	09 09                	or     %ecx,(%ecx)
583b38:	09 09                	or     %ecx,(%ecx)
583b3a:	09 09                	or     %ecx,(%ecx)
583b3c:	09 09                	or     %ecx,(%ecx)
583b3e:	09 09                	or     %ecx,(%ecx)
583b40:	09 09                	or     %ecx,(%ecx)
583b42:	09 09                	or     %ecx,(%ecx)
583b44:	09 09                	or     %ecx,(%ecx)
583b46:	02 09                	add    (%ecx),%cl
583b48:	09 09                	or     %ecx,(%ecx)
583b4a:	09 09                	or     %ecx,(%ecx)
583b4c:	03 09                	add    (%ecx),%ecx
583b4e:	09 09                	or     %ecx,(%ecx)
583b50:	04 09                	add    $0x9,%al
583b52:	09 09                	or     %ecx,(%ecx)
583b54:	09 09                	or     %ecx,(%ecx)
583b56:	09 09                	or     %ecx,(%ecx)
583b58:	05 09 09 09 06       	add    $0x6090909,%eax
583b5d:	09 07                	or     %eax,(%edi)
583b5f:	08 55 8b             	or     %dl,-0x75(%ebp)
583b62:	ec                   	in     (%dx),%al
583b63:	6a ff                	push   $0xffffffff
583b65:	68 90 d1 65 00       	push   $0x65d190
583b6a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
583b70:	50                   	push   %eax
583b71:	83 ec 24             	sub    $0x24,%esp
583b74:	a1 d4 89 72 00       	mov    0x7289d4,%eax
583b79:	33 c5                	xor    %ebp,%eax
583b7b:	89 45 f0             	mov    %eax,-0x10(%ebp)
583b7e:	53                   	push   %ebx
583b7f:	56                   	push   %esi
583b80:	57                   	push   %edi
583b81:	50                   	push   %eax
583b82:	8d 45 f4             	lea    -0xc(%ebp),%eax
583b85:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
583b8b:	8b d9                	mov    %ecx,%ebx
583b8d:	8b 7d 14             	mov    0x14(%ebp),%edi
583b90:	8b 45 08             	mov    0x8(%ebp),%eax
583b93:	8b 75 0c             	mov    0xc(%ebp),%esi
583b96:	57                   	push   %edi
583b97:	ff 75 10             	push   0x10(%ebp)
583b9a:	89 45 d4             	mov    %eax,-0x2c(%ebp)
583b9d:	56                   	push   %esi
583b9e:	50                   	push   %eax
583b9f:	e8 8c 01 00 00       	call   0x583d30
583ba4:	84 c0                	test   %al,%al
583ba6:	0f 84 4f 01 00 00    	je     0x583cfb
583bac:	8b 07                	mov    (%edi),%eax
583bae:	2d 00 d8 00 00       	sub    $0xd800,%eax
583bb3:	3d ff 03 00 00       	cmp    $0x3ff,%eax
583bb8:	0f 87 cc 00 00 00    	ja     0x583c8a
583bbe:	8b 45 10             	mov    0x10(%ebp),%eax
583bc1:	8b 0e                	mov    (%esi),%ecx
583bc3:	2b c1                	sub    %ecx,%eax
583bc5:	83 f8 06             	cmp    $0x6,%eax
583bc8:	7d 75                	jge    0x583c3f
583bca:	6a 43                	push   $0x43
583bcc:	68 20 36 6c 00       	push   $0x6c3620
583bd1:	8d 4d d8             	lea    -0x28(%ebp),%ecx
583bd4:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
583bdb:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
583be2:	c6 45 d8 00          	movb   $0x0,-0x28(%ebp)
583be6:	e8 55 16 ec ff       	call   0x445240
583beb:	ff 36                	push   (%esi)
583bed:	8d 45 d8             	lea    -0x28(%ebp),%eax
583bf0:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
583bf7:	ff 75 d4             	push   -0x2c(%ebp)
583bfa:	8b cb                	mov    %ebx,%ecx
583bfc:	50                   	push   %eax
583bfd:	e8 8e f3 ff ff       	call   0x582f90
583c02:	8b 55 ec             	mov    -0x14(%ebp),%edx
583c05:	8a d8                	mov    %al,%bl
583c07:	83 fa 10             	cmp    $0x10,%edx
583c0a:	72 2c                	jb     0x583c38
583c0c:	8b 4d d8             	mov    -0x28(%ebp),%ecx
583c0f:	42                   	inc    %edx
583c10:	8b c1                	mov    %ecx,%eax
583c12:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
583c18:	72 14                	jb     0x583c2e
583c1a:	8b 49 fc             	mov    -0x4(%ecx),%ecx
583c1d:	83 c2 23             	add    $0x23,%edx
583c20:	2b c1                	sub    %ecx,%eax
583c22:	83 c0 fc             	add    $0xfffffffc,%eax
583c25:	83 f8 1f             	cmp    $0x1f,%eax
583c28:	0f 87 ed 00 00 00    	ja     0x583d1b
583c2e:	52                   	push   %edx
583c2f:	51                   	push   %ecx