608dca:	8b ec                	mov    %esp,%ebp
608dcc:	8b 4d 08             	mov    0x8(%ebp),%ecx
608dcf:	8b 01                	mov    (%ecx),%eax
608dd1:	a9 00 c0 00 00       	test   $0xc000,%eax
608dd6:	74 04                	je     0x608ddc
608dd8:	32 c0                	xor    %al,%al
608dda:	5d                   	pop    %ebp
608ddb:	c3                   	ret
608ddc:	0d 00 40 00 00       	or     $0x4000,%eax
608de1:	89 01                	mov    %eax,(%ecx)
608de3:	b0 01                	mov    $0x1,%al
608de5:	5d                   	pop    %ebp
608de6:	c3                   	ret
608de7:	8b ff                	mov    %edi,%edi
608de9:	55                   	push   %ebp
608dea:	8b ec                	mov    %esp,%ebp
608dec:	8b 4d 08             	mov    0x8(%ebp),%ecx
608def:	8b 01                	mov    (%ecx),%eax
608df1:	a9 00 02 00 00       	test   $0x200,%eax
608df6:	75 04                	jne    0x608dfc
608df8:	32 c0                	xor    %al,%al
608dfa:	5d                   	pop    %ebp
608dfb:	c3                   	ret
608dfc:	0d 00 04 00 00       	or     $0x400,%eax
608e01:	89 01                	mov    %eax,(%ecx)
608e03:	b0 01                	mov    $0x1,%al
608e05:	5d                   	pop    %ebp
608e06:	c3                   	ret
608e07:	8b ff                	mov    %edi,%edi
608e09:	55                   	push   %ebp
608e0a:	8b ec                	mov    %esp,%ebp
608e0c:	5d                   	pop    %ebp
608e0d:	e9 db fd ff ff       	jmp    0x608bed
608e12:	8b ff                	mov    %edi,%edi
608e14:	55                   	push   %ebp
608e15:	8b ec                	mov    %esp,%ebp
608e17:	5d                   	pop    %ebp
608e18:	e9 53 fe ff ff       	jmp    0x608c70
608e1d:	8b ff                	mov    %edi,%edi
608e1f:	55                   	push   %ebp
608e20:	8b ec                	mov    %esp,%ebp
608e22:	57                   	push   %edi
608e23:	ff 75 0c             	push   0xc(%ebp)
608e26:	e8 7d 69 ff ff       	call   0x5ff7a8
608e2b:	59                   	pop    %ecx
608e2c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
608e2f:	8b f8                	mov    %eax,%edi
608e31:	8b 49 0c             	mov    0xc(%ecx),%ecx
608e34:	90                   	nop
608e35:	f6 c1 06             	test   $0x6,%cl
608e38:	75 1f                	jne    0x608e59
608e3a:	e8 ba 41 fe ff       	call   0x5ecff9
608e3f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
608e45:	8b 45 0c             	mov    0xc(%ebp),%eax
608e48:	6a 10                	push   $0x10
608e4a:	59                   	pop    %ecx
608e4b:	83 c0 0c             	add    $0xc,%eax
608e4e:	f0 09 08             	lock or %ecx,(%eax)
608e51:	83 c8 ff             	or     $0xffffffff,%eax
608e54:	e9 d6 00 00 00       	jmp    0x608f2f
608e59:	8b 45 0c             	mov    0xc(%ebp),%eax
608e5c:	8b 40 0c             	mov    0xc(%eax),%eax
608e5f:	90                   	nop
608e60:	c1 e8 0c             	shr    $0xc,%eax
608e63:	a8 01                	test   $0x1,%al
608e65:	74 0d                	je     0x608e74
608e67:	e8 8d 41 fe ff       	call   0x5ecff9
608e6c:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
608e72:	eb d1                	jmp    0x608e45
608e74:	8b 45 0c             	mov    0xc(%ebp),%eax
608e77:	8b 40 0c             	mov    0xc(%eax),%eax
608e7a:	90                   	nop
608e7b:	a8 01                	test   $0x1,%al
608e7d:	74 28                	je     0x608ea7
608e7f:	ff 75 0c             	push   0xc(%ebp)
608e82:	e8 77 01 00 00       	call   0x608ffe
608e87:	59                   	pop    %ecx
608e88:	8b 4d 0c             	mov    0xc(%ebp),%ecx
608e8b:	83 61 08 00          	andl   $0x0,0x8(%ecx)
608e8f:	84 c0                	test   %al,%al
608e91:	8b 45 0c             	mov    0xc(%ebp),%eax
608e94:	74 b2                	je     0x608e48
608e96:	8b 48 04             	mov    0x4(%eax),%ecx
608e99:	89 08                	mov    %ecx,(%eax)
608e9b:	8b 45 0c             	mov    0xc(%ebp),%eax
608e9e:	6a fe                	push   $0xfffffffe
608ea0:	59                   	pop    %ecx
608ea1:	83 c0 0c             	add    $0xc,%eax
608ea4:	f0 21 08             	lock and %ecx,(%eax)
608ea7:	8b 45 0c             	mov    0xc(%ebp),%eax
608eaa:	53                   	push   %ebx
608eab:	6a 02                	push   $0x2
608ead:	5b                   	pop    %ebx
608eae:	83 c0 0c             	add    $0xc,%eax
608eb1:	f0 09 18             	lock or %ebx,(%eax)
608eb4:	8b 45 0c             	mov    0xc(%ebp),%eax
608eb7:	6a f7                	push   $0xfffffff7
608eb9:	59                   	pop    %ecx
608eba:	83 c0 0c             	add    $0xc,%eax
608ebd:	f0 21 08             	lock and %ecx,(%eax)
608ec0:	8b 45 0c             	mov    0xc(%ebp),%eax
608ec3:	83 60 08 00          	andl   $0x0,0x8(%eax)
608ec7:	8b 45 0c             	mov    0xc(%ebp),%eax
608eca:	8b 40 0c             	mov    0xc(%eax),%eax
608ecd:	90                   	nop
608ece:	a9 c0 04 00 00       	test   $0x4c0,%eax
608ed3:	75 33                	jne    0x608f08
608ed5:	56                   	push   %esi
608ed6:	8b 75 0c             	mov    0xc(%ebp),%esi
608ed9:	6a 01                	push   $0x1
608edb:	e8 18 32 ff ff       	call   0x5fc0f8
608ee0:	59                   	pop    %ecx
608ee1:	3b f0                	cmp    %eax,%esi
608ee3:	74 0e                	je     0x608ef3
608ee5:	8b 75 0c             	mov    0xc(%ebp),%esi
608ee8:	53                   	push   %ebx
608ee9:	e8 0a 32 ff ff       	call   0x5fc0f8
608eee:	59                   	pop    %ecx
608eef:	3b f0                	cmp    %eax,%esi
608ef1:	75 0b                	jne    0x608efe
608ef3:	57                   	push   %edi
608ef4:	e8 94 76 00 00       	call   0x61058d
608ef9:	59                   	pop    %ecx
608efa:	85 c0                	test   %eax,%eax
608efc:	75 09                	jne    0x608f07
608efe:	ff 75 0c             	push   0xc(%ebp)
608f01:	e8 d1 26 00 00       	call   0x60b5d7
608f06:	59                   	pop    %ecx
608f07:	5e                   	pop    %esi
608f08:	ff 75 0c             	push   0xc(%ebp)
608f0b:	8b 5d 08             	mov    0x8(%ebp),%ebx
608f0e:	53                   	push   %ebx
608f0f:	e8 1e 00 00 00       	call   0x608f32
608f14:	59                   	pop    %ecx
608f15:	59                   	pop    %ecx
608f16:	84 c0                	test   %al,%al
608f18:	75 11                	jne    0x608f2b
608f1a:	8b 45 0c             	mov    0xc(%ebp),%eax
608f1d:	6a 10                	push   $0x10
608f1f:	59                   	pop    %ecx
608f20:	83 c0 0c             	add    $0xc,%eax
608f23:	f0 09 08             	lock or %ecx,(%eax)
608f26:	83 c8 ff             	or     $0xffffffff,%eax
608f29:	eb 03                	jmp    0x608f2e
608f2b:	0f b6 c3             	movzbl %bl,%eax
608f2e:	5b                   	pop    %ebx
608f2f:	5f                   	pop    %edi
608f30:	5d                   	pop    %ebp
608f31:	c3                   	ret
608f32:	8b ff                	mov    %edi,%edi
608f34:	55                   	push   %ebp
608f35:	8b ec                	mov    %esp,%ebp
608f37:	56                   	push   %esi
608f38:	57                   	push   %edi
608f39:	ff 75 0c             	push   0xc(%ebp)
608f3c:	e8 67 68 ff ff       	call   0x5ff7a8
608f41:	59                   	pop    %ecx
608f42:	8b 4d 0c             	mov    0xc(%ebp),%ecx
608f45:	8b d0                	mov    %eax,%edx
608f47:	8b 49 0c             	mov    0xc(%ecx),%ecx
608f4a:	90                   	nop
608f4b:	f6 c1 c0             	test   $0xc0,%cl
608f4e:	0f 84 90 00 00 00    	je     0x608fe4
608f54:	8b 4d 0c             	mov    0xc(%ebp),%ecx
608f57:	33 ff                	xor    %edi,%edi
608f59:	8b 41 04             	mov    0x4(%ecx),%eax
608f5c:	8b 31                	mov    (%ecx),%esi
608f5e:	2b f0                	sub    %eax,%esi
608f60:	40                   	inc    %eax
608f61:	89 01                	mov    %eax,(%ecx)
608f63:	8b 45 0c             	mov    0xc(%ebp),%eax
608f66:	8b 48 18             	mov    0x18(%eax),%ecx
608f69:	49                   	dec    %ecx
608f6a:	89 48 08             	mov    %ecx,0x8(%eax)
608f6d:	85 f6                	test   %esi,%esi
608f6f:	7e 24                	jle    0x608f95
608f71:	8b 45 0c             	mov    0xc(%ebp),%eax
608f74:	56                   	push   %esi
608f75:	ff 70 04             	push   0x4(%eax)
608f78:	52                   	push   %edx
608f79:	e8 6e 1d 00 00       	call   0x60acec
608f7e:	83 c4 0c             	add    $0xc,%esp
608f81:	8b f8                	mov    %eax,%edi
608f83:	8b 45 0c             	mov    0xc(%ebp),%eax
608f86:	3b fe                	cmp    %esi,%edi
608f88:	8b 48 04             	mov    0x4(%eax),%ecx
608f8b:	8a 45 08             	mov    0x8(%ebp),%al
608f8e:	88 01                	mov    %al,(%ecx)
608f90:	0f 94 c0             	sete   %al
608f93:	eb 65                	jmp    0x608ffa
608f95:	83 fa ff             	cmp    $0xffffffff,%edx
608f98:	74 1b                	je     0x608fb5
608f9a:	83 fa fe             	cmp    $0xfffffffe,%edx
608f9d:	74 16                	je     0x608fb5
608f9f:	8b c2                	mov    %edx,%eax
608fa1:	8b ca                	mov    %edx,%ecx
608fa3:	83 e0 3f             	and    $0x3f,%eax
608fa6:	c1 f9 06             	sar    $0x6,%ecx
608fa9:	6b c0 38             	imul   $0x38,%eax,%eax
608fac:	03 04 8d b8 10 73 00 	add    0x7310b8(,%ecx,4),%eax
608fb3:	eb 05                	jmp    0x608fba
608fb5:	b8 48 8d 72 00       	mov    $0x728d48,%eax
608fba:	f6 40 28 20          	testb  $0x20,0x28(%eax)
608fbe:	74 c3                	je     0x608f83
608fc0:	6a 02                	push   $0x2
608fc2:	57                   	push   %edi
608fc3:	57                   	push   %edi
608fc4:	52                   	push   %edx
608fc5:	e8 d8 c8 ff ff       	call   0x6058a2
608fca:	23 c2                	and    %edx,%eax
608fcc:	83 c4 10             	add    $0x10,%esp
608fcf:	83 f8 ff             	cmp    $0xffffffff,%eax
608fd2:	75 af                	jne    0x608f83
608fd4:	8b 45 0c             	mov    0xc(%ebp),%eax
608fd7:	6a 10                	push   $0x10
608fd9:	59                   	pop    %ecx
608fda:	83 c0 0c             	add    $0xc,%eax
608fdd:	f0 09 08             	lock or %ecx,(%eax)
608fe0:	b0 01                	mov    $0x1,%al
608fe2:	eb 16                	jmp    0x608ffa
608fe4:	6a 01                	push   $0x1
608fe6:	8d 45 08             	lea    0x8(%ebp),%eax
608fe9:	50                   	push   %eax
608fea:	52                   	push   %edx
608feb:	e8 fc 1c 00 00       	call   0x60acec
608ff0:	83 c4 0c             	add    $0xc,%esp
608ff3:	48                   	dec    %eax
608ff4:	f7 d8                	neg    %eax
608ff6:	1a c0                	sbb    %al,%al
608ff8:	fe c0                	inc    %al
608ffa:	5f                   	pop    %edi
608ffb:	5e                   	pop    %esi
608ffc:	5d                   	pop    %ebp
608ffd:	c3                   	ret
608ffe:	8b ff                	mov    %edi,%edi
609000:	55                   	push   %ebp
609001:	8b ec                	mov    %esp,%ebp
609003:	8b 45 08             	mov    0x8(%ebp),%eax
609006:	83 ec 10             	sub    $0x10,%esp
609009:	8b 40 0c             	mov    0xc(%eax),%eax
60900c:	90                   	nop
60900d:	c1 e8 03             	shr    $0x3,%eax
609010:	a8 01                	test   $0x1,%al
609012:	74 04                	je     0x609018
609014:	b0 01                	mov    $0x1,%al
609016:	c9                   	leave
609017:	c3                   	ret
609018:	8b 45 08             	mov    0x8(%ebp),%eax
60901b:	53                   	push   %ebx
60901c:	56                   	push   %esi
60901d:	8b 40 0c             	mov    0xc(%eax),%eax
609020:	90                   	nop
609021:	a8 c0                	test   $0xc0,%al
609023:	8b 45 08             	mov    0x8(%ebp),%eax
609026:	74 07                	je     0x60902f
609028:	8b 08                	mov    (%eax),%ecx
60902a:	3b 48 04             	cmp    0x4(%eax),%ecx
60902d:	74 4e                	je     0x60907d
60902f:	8b 40 10             	mov    0x10(%eax),%eax
609032:	90                   	nop
609033:	50                   	push   %eax
609034:	e8 3c 05 00 00       	call   0x609575
609039:	8b f0                	mov    %eax,%esi
60903b:	59                   	pop    %ecx
60903c:	83 fe ff             	cmp    $0xffffffff,%esi
60903f:	74 3c                	je     0x60907d
609041:	33 db                	xor    %ebx,%ebx
609043:	8d 45 f8             	lea    -0x8(%ebp),%eax
609046:	43                   	inc    %ebx
609047:	53                   	push   %ebx
609048:	50                   	push   %eax
609049:	6a 00                	push   $0x0
60904b:	6a 00                	push   $0x0
60904d:	56                   	push   %esi
60904e:	ff 15 58 21 68 00    	call   *0x682158
609054:	85 c0                	test   %eax,%eax
609056:	74 25                	je     0x60907d
609058:	8d 45 f0             	lea    -0x10(%ebp),%eax
60905b:	50                   	push   %eax
60905c:	56                   	push   %esi
60905d:	ff 15 14 23 68 00    	call   *0x682314
609063:	85 c0                	test   %eax,%eax
609065:	74 16                	je     0x60907d
609067:	8b 45 f8             	mov    -0x8(%ebp),%eax
60906a:	3b 45 f0             	cmp    -0x10(%ebp),%eax
60906d:	75 08                	jne    0x609077
60906f:	8b 45 fc             	mov    -0x4(%ebp),%eax
609072:	3b 45 f4             	cmp    -0xc(%ebp),%eax
609075:	74 02                	je     0x609079
609077:	32 db                	xor    %bl,%bl
609079:	8a c3                	mov    %bl,%al
60907b:	eb 02                	jmp    0x60907f
60907d:	32 c0                	xor    %al,%al
60907f:	5e                   	pop    %esi
609080:	5b                   	pop    %ebx
609081:	c9                   	leave
609082:	c3                   	ret
609083:	8b ff                	mov    %edi,%edi
609085:	55                   	push   %ebp
609086:	8b ec                	mov    %esp,%ebp
609088:	5d                   	pop    %ebp
609089:	e9 8f fd ff ff       	jmp    0x608e1d
60908e:	8b ff                	mov    %edi,%edi
609090:	55                   	push   %ebp
609091:	8b ec                	mov    %esp,%ebp
609093:	8b 45 08             	mov    0x8(%ebp),%eax
609096:	0f b7 08             	movzwl (%eax),%ecx
609099:	66 85 c9             	test   %cx,%cx
60909c:	74 17                	je     0x6090b5
60909e:	66 83 78 02 3a       	cmpw   $0x3a,0x2(%eax)
6090a3:	75 10                	jne    0x6090b5
6090a5:	8d 41 9f             	lea    -0x61(%ecx),%eax
6090a8:	83 f8 19             	cmp    $0x19,%eax
6090ab:	77 03                	ja     0x6090b0
6090ad:	83 c1 e0             	add    $0xffffffe0,%ecx
6090b0:	8d 41 c0             	lea    -0x40(%ecx),%eax
6090b3:	5d                   	pop    %ebp
6090b4:	c3                   	ret
6090b5:	33 c0                	xor    %eax,%eax
6090b7:	5d                   	pop    %ebp
6090b8:	c3                   	ret
6090b9:	8b ff                	mov    %edi,%edi
6090bb:	55                   	push   %ebp
6090bc:	8b ec                	mov    %esp,%ebp
6090be:	81 ec 10 02 00 00    	sub    $0x210,%esp
6090c4:	a1 d4 89 72 00       	mov    0x7289d4,%eax
6090c9:	33 c5                	xor    %ebp,%eax
6090cb:	89 45 fc             	mov    %eax,-0x4(%ebp)
6090ce:	57                   	push   %edi
6090cf:	68 0a 02 00 00       	push   $0x20a
6090d4:	33 ff                	xor    %edi,%edi
6090d6:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
6090dc:	57                   	push   %edi
6090dd:	50                   	push   %eax
6090de:	e8 1d a9 fd ff       	call   0x5e3a00
6090e3:	83 c4 0c             	add    $0xc,%esp
6090e6:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
6090ec:	50                   	push   %eax
6090ed:	68 05 01 00 00       	push   $0x105
6090f2:	ff 15 fc 21 68 00    	call   *0x6821fc
6090f8:	3d 04 01 00 00       	cmp    $0x104,%eax
6090fd:	77 0f                	ja     0x60910e
6090ff:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
609105:	50                   	push   %eax
609106:	e8 83 ff ff ff       	call   0x60908e
60910b:	59                   	pop    %ecx
60910c:	eb 42                	jmp    0x609150
60910e:	53                   	push   %ebx
60910f:	56                   	push   %esi
609110:	8d 58 01             	lea    0x1(%eax),%ebx