5efc42:	74 18                	je     0x5efc5c
5efc44:	8b 45 08             	mov    0x8(%ebp),%eax
5efc47:	8b 40 0c             	mov    0xc(%eax),%eax
5efc4a:	90                   	nop
5efc4b:	c1 e8 08             	shr    $0x8,%eax
5efc4e:	84 c3                	test   %al,%bl
5efc50:	75 0a                	jne    0x5efc5c
5efc52:	8b 45 08             	mov    0x8(%ebp),%eax
5efc55:	c7 40 18 00 10 00 00 	movl   $0x1000,0x18(%eax)
5efc5c:	8b 45 08             	mov    0x8(%ebp),%eax
5efc5f:	8b 08                	mov    (%eax),%ecx
5efc61:	ff 48 08             	decl   0x8(%eax)
5efc64:	8a 11                	mov    (%ecx),%dl
5efc66:	41                   	inc    %ecx
5efc67:	89 08                	mov    %ecx,(%eax)
5efc69:	0f b6 c2             	movzbl %dl,%eax
5efc6c:	eb 1e                	jmp    0x5efc8c
5efc6e:	33 c9                	xor    %ecx,%ecx
5efc70:	85 d2                	test   %edx,%edx
5efc72:	0f 95 c1             	setne  %cl
5efc75:	83 c0 0c             	add    $0xc,%eax
5efc78:	8d 0c cd 08 00 00 00 	lea    0x8(,%ecx,8),%ecx
5efc7f:	f0 09 08             	lock or %ecx,(%eax)
5efc82:	8b 4d 08             	mov    0x8(%ebp),%ecx
5efc85:	83 61 08 00          	andl   $0x0,0x8(%ecx)
5efc89:	83 c8 ff             	or     $0xffffffff,%eax
5efc8c:	5b                   	pop    %ebx
5efc8d:	5e                   	pop    %esi
5efc8e:	5d                   	pop    %ebp
5efc8f:	c3                   	ret
5efc90:	8b ff                	mov    %edi,%edi
5efc92:	55                   	push   %ebp
5efc93:	8b ec                	mov    %esp,%ebp
5efc95:	5d                   	pop    %ebp
5efc96:	e9 66 fe ff ff       	jmp    0x5efb01
5efc9b:	8b ff                	mov    %edi,%edi
5efc9d:	55                   	push   %ebp
5efc9e:	8b ec                	mov    %esp,%ebp
5efca0:	ff 75 0c             	push   0xc(%ebp)
5efca3:	e8 73 60 ff ff       	call   0x5e5d1b
5efca8:	8b 45 0c             	mov    0xc(%ebp),%eax
5efcab:	59                   	pop    %ecx
5efcac:	8b 40 0c             	mov    0xc(%eax),%eax
5efcaf:	90                   	nop
5efcb0:	a8 06                	test   $0x6,%al
5efcb2:	75 1f                	jne    0x5efcd3
5efcb4:	8b 45 10             	mov    0x10(%ebp),%eax
5efcb7:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
5efcbe:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
5efcc2:	8b 45 0c             	mov    0xc(%ebp),%eax
5efcc5:	6a 10                	push   $0x10
5efcc7:	59                   	pop    %ecx
5efcc8:	83 c0 0c             	add    $0xc,%eax
5efccb:	f0 09 08             	lock or %ecx,(%eax)
5efcce:	83 c8 ff             	or     $0xffffffff,%eax
5efcd1:	5d                   	pop    %ebp
5efcd2:	c3                   	ret
5efcd3:	8b 45 0c             	mov    0xc(%ebp),%eax
5efcd6:	8b 40 0c             	mov    0xc(%eax),%eax
5efcd9:	90                   	nop
5efcda:	c1 e8 0c             	shr    $0xc,%eax
5efcdd:	a8 01                	test   $0x1,%al
5efcdf:	74 0c                	je     0x5efced
5efce1:	8b 45 10             	mov    0x10(%ebp),%eax
5efce4:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
5efceb:	eb d1                	jmp    0x5efcbe
5efced:	8b 45 0c             	mov    0xc(%ebp),%eax
5efcf0:	8b 40 0c             	mov    0xc(%eax),%eax
5efcf3:	90                   	nop
5efcf4:	a8 01                	test   $0x1,%al
5efcf6:	74 28                	je     0x5efd20
5efcf8:	ff 75 0c             	push   0xc(%ebp)
5efcfb:	e8 63 01 00 00       	call   0x5efe63
5efd00:	59                   	pop    %ecx
5efd01:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5efd04:	83 61 08 00          	andl   $0x0,0x8(%ecx)
5efd08:	84 c0                	test   %al,%al
5efd0a:	8b 45 0c             	mov    0xc(%ebp),%eax
5efd0d:	74 b6                	je     0x5efcc5
5efd0f:	8b 48 04             	mov    0x4(%eax),%ecx
5efd12:	89 08                	mov    %ecx,(%eax)
5efd14:	8b 45 0c             	mov    0xc(%ebp),%eax
5efd17:	6a fe                	push   $0xfffffffe
5efd19:	59                   	pop    %ecx
5efd1a:	83 c0 0c             	add    $0xc,%eax
5efd1d:	f0 21 08             	lock and %ecx,(%eax)
5efd20:	8b 45 0c             	mov    0xc(%ebp),%eax
5efd23:	6a 02                	push   $0x2
5efd25:	59                   	pop    %ecx
5efd26:	83 c0 0c             	add    $0xc,%eax
5efd29:	f0 09 08             	lock or %ecx,(%eax)
5efd2c:	8b 45 0c             	mov    0xc(%ebp),%eax
5efd2f:	6a f7                	push   $0xfffffff7
5efd31:	59                   	pop    %ecx
5efd32:	83 c0 0c             	add    $0xc,%eax
5efd35:	f0 21 08             	lock and %ecx,(%eax)
5efd38:	8b 45 0c             	mov    0xc(%ebp),%eax
5efd3b:	83 60 08 00          	andl   $0x0,0x8(%eax)
5efd3f:	8b 45 0c             	mov    0xc(%ebp),%eax
5efd42:	8b 40 0c             	mov    0xc(%eax),%eax
5efd45:	90                   	nop
5efd46:	a9 c0 04 00 00       	test   $0x4c0,%eax
5efd4b:	75 16                	jne    0x5efd63
5efd4d:	ff 75 0c             	push   0xc(%ebp)
5efd50:	e8 98 c3 ff ff       	call   0x5ec0ed
5efd55:	59                   	pop    %ecx
5efd56:	84 c0                	test   %al,%al
5efd58:	75 09                	jne    0x5efd63
5efd5a:	ff 75 0c             	push   0xc(%ebp)
5efd5d:	e8 50 53 00 00       	call   0x5f50b2
5efd62:	59                   	pop    %ecx
5efd63:	53                   	push   %ebx
5efd64:	ff 75 10             	push   0x10(%ebp)
5efd67:	8b 5d 08             	mov    0x8(%ebp),%ebx
5efd6a:	ff 75 0c             	push   0xc(%ebp)
5efd6d:	53                   	push   %ebx
5efd6e:	e8 1e 00 00 00       	call   0x5efd91
5efd73:	83 c4 0c             	add    $0xc,%esp
5efd76:	84 c0                	test   %al,%al
5efd78:	75 11                	jne    0x5efd8b
5efd7a:	8b 45 0c             	mov    0xc(%ebp),%eax
5efd7d:	6a 10                	push   $0x10
5efd7f:	59                   	pop    %ecx
5efd80:	83 c0 0c             	add    $0xc,%eax
5efd83:	f0 09 08             	lock or %ecx,(%eax)
5efd86:	83 c8 ff             	or     $0xffffffff,%eax
5efd89:	eb 03                	jmp    0x5efd8e
5efd8b:	0f b6 c3             	movzbl %bl,%eax
5efd8e:	5b                   	pop    %ebx
5efd8f:	5d                   	pop    %ebp
5efd90:	c3                   	ret
5efd91:	8b ff                	mov    %edi,%edi
5efd93:	55                   	push   %ebp
5efd94:	8b ec                	mov    %esp,%ebp
5efd96:	56                   	push   %esi
5efd97:	57                   	push   %edi
5efd98:	ff 75 0c             	push   0xc(%ebp)
5efd9b:	e8 7b 5f ff ff       	call   0x5e5d1b
5efda0:	59                   	pop    %ecx
5efda1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5efda4:	8b d0                	mov    %eax,%edx
5efda6:	8b 49 0c             	mov    0xc(%ecx),%ecx
5efda9:	90                   	nop
5efdaa:	f6 c1 c0             	test   $0xc0,%cl
5efdad:	0f 84 93 00 00 00    	je     0x5efe46
5efdb3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5efdb6:	33 ff                	xor    %edi,%edi
5efdb8:	8b 41 04             	mov    0x4(%ecx),%eax
5efdbb:	8b 31                	mov    (%ecx),%esi
5efdbd:	2b f0                	sub    %eax,%esi
5efdbf:	40                   	inc    %eax
5efdc0:	89 01                	mov    %eax,(%ecx)
5efdc2:	8b 45 0c             	mov    0xc(%ebp),%eax
5efdc5:	8b 48 18             	mov    0x18(%eax),%ecx
5efdc8:	49                   	dec    %ecx
5efdc9:	89 48 08             	mov    %ecx,0x8(%eax)
5efdcc:	85 f6                	test   %esi,%esi
5efdce:	7e 27                	jle    0x5efdf7
5efdd0:	ff 75 10             	push   0x10(%ebp)
5efdd3:	8b 45 0c             	mov    0xc(%ebp),%eax
5efdd6:	56                   	push   %esi
5efdd7:	ff 70 04             	push   0x4(%eax)
5efdda:	52                   	push   %edx
5efddb:	e8 e2 47 ff ff       	call   0x5e45c2
5efde0:	83 c4 10             	add    $0x10,%esp
5efde3:	8b f8                	mov    %eax,%edi
5efde5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5efde8:	3b fe                	cmp    %esi,%edi
5efdea:	8a 45 08             	mov    0x8(%ebp),%al
5efded:	8b 49 04             	mov    0x4(%ecx),%ecx
5efdf0:	88 01                	mov    %al,(%ecx)
5efdf2:	0f 94 c0             	sete   %al
5efdf5:	eb 68                	jmp    0x5efe5f
5efdf7:	83 fa ff             	cmp    $0xffffffff,%edx
5efdfa:	74 1b                	je     0x5efe17
5efdfc:	83 fa fe             	cmp    $0xfffffffe,%edx
5efdff:	74 16                	je     0x5efe17
5efe01:	8b c2                	mov    %edx,%eax
5efe03:	8b ca                	mov    %edx,%ecx
5efe05:	83 e0 3f             	and    $0x3f,%eax
5efe08:	c1 f9 06             	sar    $0x6,%ecx
5efe0b:	6b c0 38             	imul   $0x38,%eax,%eax
5efe0e:	03 04 8d a8 70 71 00 	add    0x7170a8(,%ecx,4),%eax
5efe15:	eb 05                	jmp    0x5efe1c
5efe17:	b8 e0 19 69 00       	mov    $0x6919e0,%eax
5efe1c:	f6 40 28 20          	testb  $0x20,0x28(%eax)
5efe20:	74 c3                	je     0x5efde5
5efe22:	6a 02                	push   $0x2
5efe24:	57                   	push   %edi
5efe25:	57                   	push   %edi
5efe26:	52                   	push   %edx
5efe27:	e8 36 f5 ff ff       	call   0x5ef362
5efe2c:	23 c2                	and    %edx,%eax
5efe2e:	83 c4 10             	add    $0x10,%esp
5efe31:	83 f8 ff             	cmp    $0xffffffff,%eax
5efe34:	75 af                	jne    0x5efde5
5efe36:	8b 45 0c             	mov    0xc(%ebp),%eax
5efe39:	6a 10                	push   $0x10
5efe3b:	59                   	pop    %ecx
5efe3c:	83 c0 0c             	add    $0xc,%eax
5efe3f:	f0 09 08             	lock or %ecx,(%eax)
5efe42:	b0 01                	mov    $0x1,%al
5efe44:	eb 19                	jmp    0x5efe5f
5efe46:	ff 75 10             	push   0x10(%ebp)
5efe49:	8d 45 08             	lea    0x8(%ebp),%eax
5efe4c:	6a 01                	push   $0x1
5efe4e:	50                   	push   %eax
5efe4f:	52                   	push   %edx
5efe50:	e8 6d 47 ff ff       	call   0x5e45c2
5efe55:	83 c4 10             	add    $0x10,%esp
5efe58:	48                   	dec    %eax
5efe59:	f7 d8                	neg    %eax
5efe5b:	1a c0                	sbb    %al,%al
5efe5d:	fe c0                	inc    %al
5efe5f:	5f                   	pop    %edi
5efe60:	5e                   	pop    %esi
5efe61:	5d                   	pop    %ebp
5efe62:	c3                   	ret
5efe63:	8b ff                	mov    %edi,%edi
5efe65:	55                   	push   %ebp
5efe66:	8b ec                	mov    %esp,%ebp
5efe68:	8b 45 08             	mov    0x8(%ebp),%eax
5efe6b:	83 ec 10             	sub    $0x10,%esp
5efe6e:	8b 40 0c             	mov    0xc(%eax),%eax
5efe71:	90                   	nop
5efe72:	c1 e8 03             	shr    $0x3,%eax
5efe75:	a8 01                	test   $0x1,%al
5efe77:	74 04                	je     0x5efe7d
5efe79:	b0 01                	mov    $0x1,%al
5efe7b:	c9                   	leave
5efe7c:	c3                   	ret
5efe7d:	8b 45 08             	mov    0x8(%ebp),%eax
5efe80:	53                   	push   %ebx
5efe81:	56                   	push   %esi
5efe82:	8b 40 0c             	mov    0xc(%eax),%eax
5efe85:	90                   	nop
5efe86:	a8 c0                	test   $0xc0,%al
5efe88:	8b 45 08             	mov    0x8(%ebp),%eax
5efe8b:	74 07                	je     0x5efe94
5efe8d:	8b 08                	mov    (%eax),%ecx
5efe8f:	3b 48 04             	cmp    0x4(%eax),%ecx
5efe92:	74 4e                	je     0x5efee2
5efe94:	8b 40 10             	mov    0x10(%eax),%eax
5efe97:	90                   	nop
5efe98:	50                   	push   %eax
5efe99:	e8 97 f0 ff ff       	call   0x5eef35
5efe9e:	8b f0                	mov    %eax,%esi
5efea0:	59                   	pop    %ecx
5efea1:	83 fe ff             	cmp    $0xffffffff,%esi
5efea4:	74 3c                	je     0x5efee2
5efea6:	33 db                	xor    %ebx,%ebx
5efea8:	8d 45 f8             	lea    -0x8(%ebp),%eax
5efeab:	43                   	inc    %ebx
5efeac:	53                   	push   %ebx
5efead:	50                   	push   %eax
5efeae:	6a 00                	push   $0x0
5efeb0:	6a 00                	push   $0x0
5efeb2:	56                   	push   %esi
5efeb3:	ff 15 c4 20 60 00    	call   *0x6020c4
5efeb9:	85 c0                	test   %eax,%eax
5efebb:	74 25                	je     0x5efee2
5efebd:	8d 45 f0             	lea    -0x10(%ebp),%eax
5efec0:	50                   	push   %eax
5efec1:	56                   	push   %esi
5efec2:	ff 15 90 22 60 00    	call   *0x602290
5efec8:	85 c0                	test   %eax,%eax
5efeca:	74 16                	je     0x5efee2
5efecc:	8b 45 f8             	mov    -0x8(%ebp),%eax
5efecf:	3b 45 f0             	cmp    -0x10(%ebp),%eax
5efed2:	75 08                	jne    0x5efedc
5efed4:	8b 45 fc             	mov    -0x4(%ebp),%eax
5efed7:	3b 45 f4             	cmp    -0xc(%ebp),%eax
5efeda:	74 02                	je     0x5efede
5efedc:	32 db                	xor    %bl,%bl
5efede:	8a c3                	mov    %bl,%al
5efee0:	eb 02                	jmp    0x5efee4
5efee2:	32 c0                	xor    %al,%al
5efee4:	5e                   	pop    %esi
5efee5:	5b                   	pop    %ebx
5efee6:	c9                   	leave
5efee7:	c3                   	ret
5efee8:	8b ff                	mov    %edi,%edi
5efeea:	55                   	push   %ebp
5efeeb:	8b ec                	mov    %esp,%ebp
5efeed:	5d                   	pop    %ebp
5efeee:	e9 a8 fd ff ff       	jmp    0x5efc9b
5efef3:	8b ff                	mov    %edi,%edi
5efef5:	55                   	push   %ebp
5efef6:	8b ec                	mov    %esp,%ebp
5efef8:	51                   	push   %ecx
5efef9:	51                   	push   %ecx
5efefa:	a1 c0 14 69 00       	mov    0x6914c0,%eax
5efeff:	33 c5                	xor    %ebp,%eax
5eff01:	89 45 fc             	mov    %eax,-0x4(%ebp)
5eff04:	53                   	push   %ebx
5eff05:	56                   	push   %esi
5eff06:	57                   	push   %edi
5eff07:	8b 7d 18             	mov    0x18(%ebp),%edi
5eff0a:	85 ff                	test   %edi,%edi
5eff0c:	7e 14                	jle    0x5eff22
5eff0e:	57                   	push   %edi
5eff0f:	ff 75 14             	push   0x14(%ebp)
5eff12:	e8 53 87 ff ff       	call   0x5e866a
5eff17:	59                   	pop    %ecx
5eff18:	3b c7                	cmp    %edi,%eax
5eff1a:	59                   	pop    %ecx
5eff1b:	8d 78 01             	lea    0x1(%eax),%edi
5eff1e:	7c 02                	jl     0x5eff22
5eff20:	8b f8                	mov    %eax,%edi
5eff22:	8b 5d 24             	mov    0x24(%ebp),%ebx
5eff25:	85 db                	test   %ebx,%ebx
5eff27:	75 0b                	jne    0x5eff34
5eff29:	8b 45 08             	mov    0x8(%ebp),%eax
5eff2c:	8b 00                	mov    (%eax),%eax
5eff2e:	8b 58 08             	mov    0x8(%eax),%ebx
5eff31:	89 5d 24             	mov    %ebx,0x24(%ebp)
5eff34:	33 c0                	xor    %eax,%eax
5eff36:	39 45 28             	cmp    %eax,0x28(%ebp)
5eff39:	6a 00                	push   $0x0
5eff3b:	6a 00                	push   $0x0
5eff3d:	0f 95 c0             	setne  %al
5eff40:	57                   	push   %edi
5eff41:	ff 75 14             	push   0x14(%ebp)
5eff44:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
5eff4b:	50                   	push   %eax
5eff4c:	53                   	push   %ebx
5eff4d:	e8 ef eb ff ff       	call   0x5eeb41
5eff52:	83 c4 18             	add    $0x18,%esp
5eff55:	89 45 f8             	mov    %eax,-0x8(%ebp)
5eff58:	85 c0                	test   %eax,%eax
5eff5a:	0f 84 70 01 00 00    	je     0x5f00d0
5eff60:	03 c0                	add    %eax,%eax
5eff62:	8d 48 08             	lea    0x8(%eax),%ecx
5eff65:	3b c1                	cmp    %ecx,%eax
5eff67:	1b c0                	sbb    %eax,%eax
5eff69:	23 c1                	and    %ecx,%eax
5eff6b:	0f 84 52 01 00 00    	je     0x5f00c3
5eff71:	3d 00 04 00 00       	cmp    $0x400,%eax
5eff76:	77 17                	ja     0x5eff8f
5eff78:	e8 f3 12 fe ff       	call   0x5d1270
5eff7d:	8b f4                	mov    %esp,%esi
5eff7f:	85 f6                	test   %esi,%esi
5eff81:	0f 84 3e 01 00 00    	je     0x5f00c5
5eff87:	c7 06 cc cc 00 00    	movl   $0xcccc,(%esi)
5eff8d:	eb 17                	jmp    0x5effa6
5eff8f:	50                   	push   %eax
5eff90:	e8 c7 b2 ff ff       	call   0x5eb25c
5eff95:	8b f0                	mov    %eax,%esi
5eff97:	59                   	pop    %ecx
5eff98:	85 f6                	test   %esi,%esi