578c7f:	85 c0                	test   %eax,%eax
578c81:	74 0d                	je     0x578c90
578c83:	83 4b 04 08          	orl    $0x8,0x4(%ebx)
578c87:	c7 43 14 00 20 00 00 	movl   $0x2000,0x14(%ebx)
578c8e:	eb 64                	jmp    0x578cf4
578c90:	8d 53 20             	lea    0x20(%ebx),%edx
578c93:	89 53 0c             	mov    %edx,0xc(%ebx)
578c96:	c7 43 14 01 00 00 00 	movl   $0x1,0x14(%ebx)
578c9d:	eb 55                	jmp    0x578cf4
578c9f:	8b 4d 08             	mov    0x8(%ebp),%ecx
578ca2:	83 f9 10             	cmp    $0x10,%ecx
578ca5:	7f 17                	jg     0x578cbe
578ca7:	68 eb 02 00 00       	push   $0x2eb
578cac:	68 c2 2a 6a 00       	push   $0x6a2ac2
578cb1:	68 a2 2a 6a 00       	push   $0x6a2aa2
578cb6:	e8 85 1e fe ff       	call   0x55ab40
578cbb:	83 c4 0c             	add    $0xc,%esp
578cbe:	89 73 0c             	mov    %esi,0xc(%ebx)
578cc1:	8b 45 08             	mov    0x8(%ebp),%eax
578cc4:	83 c0 f0             	add    $0xfffffff0,%eax
578cc7:	89 43 14             	mov    %eax,0x14(%ebx)
578cca:	eb 28                	jmp    0x578cf4
578ccc:	85 f6                	test   %esi,%esi
578cce:	74 17                	je     0x578ce7
578cd0:	68 f2 02 00 00       	push   $0x2f2
578cd5:	68 d4 2a 6a 00       	push   $0x6a2ad4
578cda:	68 cf 2a 6a 00       	push   $0x6a2acf
578cdf:	e8 5c 1e fe ff       	call   0x55ab40
578ce4:	83 c4 0c             	add    $0xc,%esp
578ce7:	8d 53 20             	lea    0x20(%ebx),%edx
578cea:	89 53 0c             	mov    %edx,0xc(%ebx)
578ced:	c7 43 14 01 00 00 00 	movl   $0x1,0x14(%ebx)
578cf4:	8b 43 0c             	mov    0xc(%ebx),%eax
578cf7:	33 d2                	xor    %edx,%edx
578cf9:	83 c0 10             	add    $0x10,%eax
578cfc:	83 e7 0f             	and    $0xf,%edi
578cff:	89 43 10             	mov    %eax,0x10(%ebx)
578d02:	89 43 18             	mov    %eax,0x18(%ebx)
578d05:	89 53 1c             	mov    %edx,0x1c(%ebx)
578d08:	09 7b 04             	or     %edi,0x4(%ebx)
578d0b:	5f                   	pop    %edi
578d0c:	5e                   	pop    %esi
578d0d:	5b                   	pop    %ebx
578d0e:	5d                   	pop    %ebp
578d0f:	c2 04 00             	ret    $0x4
578d12:	90                   	nop
578d13:	90                   	nop
578d14:	f6 40 04 10          	testb  $0x10,0x4(%eax)
578d18:	74 03                	je     0x578d1d
578d1a:	33 c0                	xor    %eax,%eax
578d1c:	c3                   	ret
578d1d:	83 ca ff             	or     $0xffffffff,%edx
578d20:	e8 f3 00 00 00       	call   0x578e18
578d25:	c3                   	ret
578d26:	90                   	nop
578d27:	90                   	nop
578d28:	53                   	push   %ebx
578d29:	8b d8                	mov    %eax,%ebx
578d2b:	56                   	push   %esi
578d2c:	57                   	push   %edi
578d2d:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
578d31:	8b fa                	mov    %edx,%edi
578d33:	74 08                	je     0x578d3d
578d35:	83 c8 ff             	or     $0xffffffff,%eax
578d38:	e9 d4 00 00 00       	jmp    0x578e11
578d3d:	f6 03 01             	testb  $0x1,(%ebx)
578d40:	75 08                	jne    0x578d4a
578d42:	83 c8 ff             	or     $0xffffffff,%eax
578d45:	e9 c7 00 00 00       	jmp    0x578e11
578d4a:	f6 43 04 20          	testb  $0x20,0x4(%ebx)
578d4e:	74 17                	je     0x578d67
578d50:	68 1a 03 00 00       	push   $0x31a
578d55:	68 0c 2b 6a 00       	push   $0x6a2b0c
578d5a:	68 e1 2a 6a 00       	push   $0x6a2ae1
578d5f:	e8 dc 1d fe ff       	call   0x55ab40
578d64:	83 c4 0c             	add    $0xc,%esp
578d67:	8b 53 18             	mov    0x18(%ebx),%edx
578d6a:	8b 4b 10             	mov    0x10(%ebx),%ecx
578d6d:	2b d1                	sub    %ecx,%edx
578d6f:	8b 43 14             	mov    0x14(%ebx),%eax
578d72:	3b d0                	cmp    %eax,%edx
578d74:	7e 17                	jle    0x578d8d
578d76:	68 1c 03 00 00       	push   $0x31c
578d7b:	68 4e 2b 6a 00       	push   $0x6a2b4e
578d80:	68 19 2b 6a 00       	push   $0x6a2b19
578d85:	e8 b6 1d fe ff       	call   0x55ab40
578d8a:	83 c4 0c             	add    $0xc,%esp
578d8d:	83 4b 04 10          	orl    $0x10,0x4(%ebx)
578d91:	8b 53 10             	mov    0x10(%ebx),%edx
578d94:	89 53 18             	mov    %edx,0x18(%ebx)
578d97:	8b 73 34             	mov    0x34(%ebx),%esi
578d9a:	8b 4b 14             	mov    0x14(%ebx),%ecx
578d9d:	8b 53 10             	mov    0x10(%ebx),%edx
578da0:	8b 43 38             	mov    0x38(%ebx),%eax
578da3:	ff 16                	call   *(%esi)
578da5:	8b f0                	mov    %eax,%esi
578da7:	89 73 1c             	mov    %esi,0x1c(%ebx)
578daa:	85 f6                	test   %esi,%esi
578dac:	7f 18                	jg     0x578dc6
578dae:	85 f6                	test   %esi,%esi
578db0:	7d 06                	jge    0x578db8
578db2:	83 4b 08 02          	orl    $0x2,0x8(%ebx)
578db6:	eb 04                	jmp    0x578dbc
578db8:	83 4b 08 01          	orl    $0x1,0x8(%ebx)
578dbc:	33 c0                	xor    %eax,%eax
578dbe:	89 43 1c             	mov    %eax,0x1c(%ebx)
578dc1:	83 c8 ff             	or     $0xffffffff,%eax
578dc4:	eb 4b                	jmp    0x578e11
578dc6:	8b 53 1c             	mov    0x1c(%ebx),%edx
578dc9:	85 d2                	test   %edx,%edx
578dcb:	7f 17                	jg     0x578de4
578dcd:	68 2e 03 00 00       	push   $0x32e
578dd2:	68 6c 2b 6a 00       	push   $0x6a2b6c
578dd7:	68 5b 2b 6a 00       	push   $0x6a2b5b
578ddc:	e8 5f 1d fe ff       	call   0x55ab40
578de1:	83 c4 0c             	add    $0xc,%esp
578de4:	85 ff                	test   %edi,%edi
578de6:	74 22                	je     0x578e0a
578de8:	ff 4b 1c             	decl   0x1c(%ebx)
578deb:	79 0e                	jns    0x578dfb
578ded:	ba 01 00 00 00       	mov    $0x1,%edx
578df2:	8b c3                	mov    %ebx,%eax
578df4:	e8 2f ff ff ff       	call   0x578d28
578df9:	eb 16                	jmp    0x578e11
578dfb:	ff 43 3c             	incl   0x3c(%ebx)
578dfe:	8b 4b 18             	mov    0x18(%ebx),%ecx
578e01:	ff 43 18             	incl   0x18(%ebx)
578e04:	33 c0                	xor    %eax,%eax
578e06:	8a 01                	mov    (%ecx),%al
578e08:	eb 07                	jmp    0x578e11
578e0a:	8b 53 18             	mov    0x18(%ebx),%edx
578e0d:	33 c0                	xor    %eax,%eax
578e0f:	8a 02                	mov    (%edx),%al
578e11:	5f                   	pop    %edi
578e12:	5e                   	pop    %esi
578e13:	5b                   	pop    %ebx
578e14:	c3                   	ret
578e15:	90                   	nop
578e16:	90                   	nop
578e17:	90                   	nop
578e18:	53                   	push   %ebx
578e19:	8b d8                	mov    %eax,%ebx
578e1b:	56                   	push   %esi
578e1c:	57                   	push   %edi
578e1d:	55                   	push   %ebp
578e1e:	8b fa                	mov    %edx,%edi
578e20:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
578e24:	74 08                	je     0x578e2e
578e26:	83 c8 ff             	or     $0xffffffff,%eax
578e29:	e9 ac 00 00 00       	jmp    0x578eda
578e2e:	f6 03 06             	testb  $0x6,(%ebx)
578e31:	75 08                	jne    0x578e3b
578e33:	83 c8 ff             	or     $0xffffffff,%eax
578e36:	e9 9f 00 00 00       	jmp    0x578eda
578e3b:	f6 43 04 10          	testb  $0x10,0x4(%ebx)
578e3f:	74 17                	je     0x578e58
578e41:	68 45 03 00 00       	push   $0x345
578e46:	68 a0 2b 6a 00       	push   $0x6a2ba0
578e4b:	68 79 2b 6a 00       	push   $0x6a2b79
578e50:	e8 eb 1c fe ff       	call   0x55ab40
578e55:	83 c4 0c             	add    $0xc,%esp
578e58:	8b 73 18             	mov    0x18(%ebx),%esi
578e5b:	8b 43 10             	mov    0x10(%ebx),%eax
578e5e:	2b f0                	sub    %eax,%esi
578e60:	85 f6                	test   %esi,%esi
578e62:	7e 1a                	jle    0x578e7e
578e64:	8b 6b 34             	mov    0x34(%ebx),%ebp
578e67:	8b ce                	mov    %esi,%ecx
578e69:	8b d0                	mov    %eax,%edx
578e6b:	8b 43 38             	mov    0x38(%ebx),%eax
578e6e:	ff 55 04             	call   *0x4(%ebp)
578e71:	3b f0                	cmp    %eax,%esi
578e73:	74 09                	je     0x578e7e
578e75:	83 4b 08 02          	orl    $0x2,0x8(%ebx)
578e79:	83 c8 ff             	or     $0xffffffff,%eax
578e7c:	eb 5c                	jmp    0x578eda
578e7e:	8b 53 14             	mov    0x14(%ebx),%edx
578e81:	89 53 1c             	mov    %edx,0x1c(%ebx)
578e84:	8b 4b 10             	mov    0x10(%ebx),%ecx
578e87:	89 4b 18             	mov    %ecx,0x18(%ebx)
578e8a:	83 4b 04 20          	orl    $0x20,0x4(%ebx)
578e8e:	83 ff ff             	cmp    $0xffffffff,%edi
578e91:	74 45                	je     0x578ed8
578e93:	8b 43 1c             	mov    0x1c(%ebx),%eax
578e96:	85 c0                	test   %eax,%eax
578e98:	7f 17                	jg     0x578eb1
578e9a:	68 59 03 00 00       	push   $0x359
578e9f:	68 be 2b 6a 00       	push   $0x6a2bbe
578ea4:	68 ad 2b 6a 00       	push   $0x6a2bad
578ea9:	e8 92 1c fe ff       	call   0x55ab40
578eae:	83 c4 0c             	add    $0xc,%esp
578eb1:	83 4b 04 20          	orl    $0x20,0x4(%ebx)
578eb5:	ff 4b 1c             	decl   0x1c(%ebx)
578eb8:	79 11                	jns    0x578ecb
578eba:	8b d7                	mov    %edi,%edx
578ebc:	8b c3                	mov    %ebx,%eax
578ebe:	81 e2 ff 00 00 00    	and    $0xff,%edx
578ec4:	e8 4f ff ff ff       	call   0x578e18
578ec9:	eb 0d                	jmp    0x578ed8
578ecb:	ff 43 3c             	incl   0x3c(%ebx)
578ece:	8b cf                	mov    %edi,%ecx
578ed0:	8b 43 18             	mov    0x18(%ebx),%eax
578ed3:	ff 43 18             	incl   0x18(%ebx)
578ed6:	88 08                	mov    %cl,(%eax)
578ed8:	33 c0                	xor    %eax,%eax
578eda:	5d                   	pop    %ebp
578edb:	5f                   	pop    %edi
578edc:	5e                   	pop    %esi
578edd:	5b                   	pop    %ebx
578ede:	c3                   	ret
578edf:	90                   	nop
578ee0:	33 c9                	xor    %ecx,%ecx
578ee2:	eb 3a                	jmp    0x578f1e
578ee4:	0f be d2             	movsbl %dl,%edx
578ee7:	83 fa 62             	cmp    $0x62,%edx
578eea:	7f 0e                	jg     0x578efa
578eec:	74 22                	je     0x578f10
578eee:	83 ea 2b             	sub    $0x2b,%edx
578ef1:	74 27                	je     0x578f1a
578ef3:	83 ea 36             	sub    $0x36,%edx
578ef6:	74 1d                	je     0x578f15
578ef8:	eb 23                	jmp    0x578f1d
578efa:	83 ea 72             	sub    $0x72,%edx
578efd:	74 07                	je     0x578f06
578eff:	83 ea 05             	sub    $0x5,%edx
578f02:	74 07                	je     0x578f0b
578f04:	eb 17                	jmp    0x578f1d
578f06:	83 c9 01             	or     $0x1,%ecx
578f09:	eb 12                	jmp    0x578f1d
578f0b:	83 c9 12             	or     $0x12,%ecx
578f0e:	eb 0d                	jmp    0x578f1d
578f10:	83 c9 08             	or     $0x8,%ecx
578f13:	eb 08                	jmp    0x578f1d
578f15:	83 c9 04             	or     $0x4,%ecx
578f18:	eb 03                	jmp    0x578f1d
578f1a:	83 c9 03             	or     $0x3,%ecx
578f1d:	40                   	inc    %eax
578f1e:	8a 10                	mov    (%eax),%dl
578f20:	84 d2                	test   %dl,%dl
578f22:	75 c0                	jne    0x578ee4
578f24:	8b c1                	mov    %ecx,%eax
578f26:	c3                   	ret
578f27:	90                   	nop
578f28:	53                   	push   %ebx
578f29:	56                   	push   %esi
578f2a:	57                   	push   %edi
578f2b:	55                   	push   %ebp
578f2c:	51                   	push   %ecx
578f2d:	8b f2                	mov    %edx,%esi
578f2f:	8b d8                	mov    %eax,%ebx
578f31:	85 c9                	test   %ecx,%ecx
578f33:	7d 07                	jge    0x578f3c
578f35:	b8 01 00 00 00       	mov    $0x1,%eax
578f3a:	eb 02                	jmp    0x578f3e
578f3c:	33 c0                	xor    %eax,%eax
578f3e:	89 04 24             	mov    %eax,(%esp)
578f41:	8b e9                	mov    %ecx,%ebp
578f43:	e9 bc 00 00 00       	jmp    0x579004
578f48:	f6 46 08 07          	testb  $0x7,0x8(%esi)
578f4c:	75 3d                	jne    0x578f8b
578f4e:	8b 46 40             	mov    0x40(%esi),%eax
578f51:	85 c0                	test   %eax,%eax
578f53:	7c 13                	jl     0x578f68
578f55:	8b 56 40             	mov    0x40(%esi),%edx
578f58:	8b 4e 3c             	mov    0x3c(%esi),%ecx
578f5b:	3b d1                	cmp    %ecx,%edx
578f5d:	7f 09                	jg     0x578f68
578f5f:	83 4e 08 04          	orl    $0x4,0x8(%esi)
578f63:	83 cf ff             	or     $0xffffffff,%edi
578f66:	eb 26                	jmp    0x578f8e
578f68:	ff 4e 1c             	decl   0x1c(%esi)
578f6b:	79 10                	jns    0x578f7d
578f6d:	ba 01 00 00 00       	mov    $0x1,%edx
578f72:	8b c6                	mov    %esi,%eax
578f74:	e8 af fd ff ff       	call   0x578d28
578f79:	8b f8                	mov    %eax,%edi
578f7b:	eb 11                	jmp    0x578f8e
578f7d:	ff 46 3c             	incl   0x3c(%esi)
578f80:	8b 46 18             	mov    0x18(%esi),%eax
578f83:	ff 46 18             	incl   0x18(%esi)
578f86:	0f b6 38             	movzbl (%eax),%edi
578f89:	eb 03                	jmp    0x578f8e
578f8b:	83 cf ff             	or     $0xffffffff,%edi
578f8e:	83 ff ff             	cmp    $0xffffffff,%edi
578f91:	75 16                	jne    0x578fa9
578f93:	8b 04 24             	mov    (%esp),%eax
578f96:	85 c0                	test   %eax,%eax
578f98:	74 06                	je     0x578fa0
578f9a:	f6 46 08 02          	testb  $0x2,0x8(%esi)
578f9e:	74 05                	je     0x578fa5
578fa0:	83 c8 ff             	or     $0xffffffff,%eax
578fa3:	eb 74                	jmp    0x579019
578fa5:	33 c0                	xor    %eax,%eax
578fa7:	eb 70                	jmp    0x579019
578fa9:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
578fad:	75 49                	jne    0x578ff8
578faf:	8b 53 40             	mov    0x40(%ebx),%edx
578fb2:	85 d2                	test   %edx,%edx
578fb4:	7c 13                	jl     0x578fc9
578fb6:	8b 4b 40             	mov    0x40(%ebx),%ecx
578fb9:	8b 43 3c             	mov    0x3c(%ebx),%eax
578fbc:	3b c8                	cmp    %eax,%ecx
578fbe:	7f 09                	jg     0x578fc9
578fc0:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
578fc4:	83 ca ff             	or     $0xffffffff,%edx
578fc7:	eb 32                	jmp    0x578ffb
578fc9:	83 4b 04 20          	orl    $0x20,0x4(%ebx)
578fcd:	ff 4b 1c             	decl   0x1c(%ebx)
578fd0:	79 13                	jns    0x578fe5
578fd2:	8b d7                	mov    %edi,%edx
578fd4:	8b c3                	mov    %ebx,%eax
578fd6:	81 e2 ff 00 00 00    	and    $0xff,%edx
578fdc:	e8 37 fe ff ff       	call   0x578e18
578fe1:	8b d0                	mov    %eax,%edx
578fe3:	eb 16                	jmp    0x578ffb
578fe5:	ff 43 3c             	incl   0x3c(%ebx)
578fe8:	8b c7                	mov    %edi,%eax
578fea:	8b 4b 18             	mov    0x18(%ebx),%ecx
578fed:	ff 43 18             	incl   0x18(%ebx)
578ff0:	88 01                	mov    %al,(%ecx)
578ff2:	33 d2                	xor    %edx,%edx
578ff4:	8a d0                	mov    %al,%dl
578ff6:	eb 03                	jmp    0x578ffb
578ff8:	83 ca ff             	or     $0xffffffff,%edx
578ffb:	42                   	inc    %edx
578ffc:	75 05                	jne    0x579003
578ffe:	83 c8 ff             	or     $0xffffffff,%eax
579001:	eb 16                	jmp    0x579019
579003:	4d                   	dec    %ebp
579004:	8b 0c 24             	mov    (%esp),%ecx
579007:	85 c9                	test   %ecx,%ecx
579009:	0f 85 39 ff ff ff    	jne    0x578f48
57900f:	85 ed                	test   %ebp,%ebp
579011:	0f 8f 31 ff ff ff    	jg     0x578f48
579017:	33 c0                	xor    %eax,%eax
579019:	5a                   	pop    %edx
57901a:	5d                   	pop    %ebp
57901b:	5f                   	pop    %edi
57901c:	5e                   	pop    %esi
57901d:	5b                   	pop    %ebx
57901e:	c3                   	ret
57901f:	90                   	nop
579020:	8b 48 3c             	mov    0x3c(%eax),%ecx
579023:	89 50 3c             	mov    %edx,0x3c(%eax)
579026:	8b c1                	mov    %ecx,%eax
579028:	c3                   	ret
579029:	90                   	nop
57902a:	90                   	nop
57902b:	90                   	nop
57902c:	53                   	push   %ebx