5efa94:	c3                   	ret
5efa95:	cc                   	int3
5efa96:	cc                   	int3
5efa97:	cc                   	int3
5efa98:	cc                   	int3
5efa99:	cc                   	int3
5efa9a:	cc                   	int3
5efa9b:	cc                   	int3
5efa9c:	cc                   	int3
5efa9d:	cc                   	int3
5efa9e:	cc                   	int3
5efa9f:	cc                   	int3
5efaa0:	55                   	push   %ebp
5efaa1:	8b ec                	mov    %esp,%ebp
5efaa3:	57                   	push   %edi
5efaa4:	56                   	push   %esi
5efaa5:	53                   	push   %ebx
5efaa6:	8b 4d 10             	mov    0x10(%ebp),%ecx
5efaa9:	0b c9                	or     %ecx,%ecx
5efaab:	74 4d                	je     0x5efafa
5efaad:	8b 75 08             	mov    0x8(%ebp),%esi
5efab0:	8b 7d 0c             	mov    0xc(%ebp),%edi
5efab3:	b7 41                	mov    $0x41,%bh
5efab5:	b3 5a                	mov    $0x5a,%bl
5efab7:	b6 20                	mov    $0x20,%dh
5efab9:	8d 49 00             	lea    0x0(%ecx),%ecx
5efabc:	8a 26                	mov    (%esi),%ah
5efabe:	0a e4                	or     %ah,%ah
5efac0:	8a 07                	mov    (%edi),%al
5efac2:	74 27                	je     0x5efaeb
5efac4:	0a c0                	or     %al,%al
5efac6:	74 23                	je     0x5efaeb
5efac8:	83 c6 01             	add    $0x1,%esi
5efacb:	83 c7 01             	add    $0x1,%edi
5eface:	3a e7                	cmp    %bh,%ah
5efad0:	72 06                	jb     0x5efad8
5efad2:	3a e3                	cmp    %bl,%ah
5efad4:	77 02                	ja     0x5efad8
5efad6:	02 e6                	add    %dh,%ah
5efad8:	3a c7                	cmp    %bh,%al
5efada:	72 06                	jb     0x5efae2
5efadc:	3a c3                	cmp    %bl,%al
5efade:	77 02                	ja     0x5efae2
5efae0:	02 c6                	add    %dh,%al
5efae2:	3a e0                	cmp    %al,%ah
5efae4:	75 0b                	jne    0x5efaf1
5efae6:	83 e9 01             	sub    $0x1,%ecx
5efae9:	75 d1                	jne    0x5efabc
5efaeb:	33 c9                	xor    %ecx,%ecx
5efaed:	3a e0                	cmp    %al,%ah
5efaef:	74 09                	je     0x5efafa
5efaf1:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
5efaf6:	72 02                	jb     0x5efafa
5efaf8:	f7 d9                	neg    %ecx
5efafa:	8b c1                	mov    %ecx,%eax
5efafc:	5b                   	pop    %ebx
5efafd:	5e                   	pop    %esi
5efafe:	5f                   	pop    %edi
5efaff:	c9                   	leave
5efb00:	c3                   	ret
5efb01:	8b ff                	mov    %edi,%edi
5efb03:	55                   	push   %ebp
5efb04:	8b ec                	mov    %esp,%ebp
5efb06:	8b 45 08             	mov    0x8(%ebp),%eax
5efb09:	56                   	push   %esi
5efb0a:	85 c0                	test   %eax,%eax
5efb0c:	75 18                	jne    0x5efb26
5efb0e:	e8 75 b1 fe ff       	call   0x5dac88
5efb13:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5efb19:	e8 c2 66 fe ff       	call   0x5d61e0
5efb1e:	83 c8 ff             	or     $0xffffffff,%eax
5efb21:	e9 67 01 00 00       	jmp    0x5efc8d
5efb26:	8b 40 0c             	mov    0xc(%eax),%eax
5efb29:	53                   	push   %ebx
5efb2a:	90                   	nop
5efb2b:	33 db                	xor    %ebx,%ebx
5efb2d:	c1 e8 0d             	shr    $0xd,%eax
5efb30:	43                   	inc    %ebx
5efb31:	84 c3                	test   %al,%bl
5efb33:	0f 84 50 01 00 00    	je     0x5efc89
5efb39:	8b 45 08             	mov    0x8(%ebp),%eax
5efb3c:	8b 40 0c             	mov    0xc(%eax),%eax
5efb3f:	90                   	nop
5efb40:	c1 e8 0c             	shr    $0xc,%eax
5efb43:	84 c3                	test   %al,%bl
5efb45:	0f 85 3e 01 00 00    	jne    0x5efc89
5efb4b:	8b 45 08             	mov    0x8(%ebp),%eax
5efb4e:	8b 40 0c             	mov    0xc(%eax),%eax
5efb51:	90                   	nop
5efb52:	d1 e8                	shr    $1,%eax
5efb54:	84 c3                	test   %al,%bl
5efb56:	8b 45 08             	mov    0x8(%ebp),%eax
5efb59:	74 0e                	je     0x5efb69
5efb5b:	6a 10                	push   $0x10
5efb5d:	59                   	pop    %ecx
5efb5e:	83 c0 0c             	add    $0xc,%eax
5efb61:	f0 09 08             	lock or %ecx,(%eax)
5efb64:	e9 20 01 00 00       	jmp    0x5efc89
5efb69:	83 c0 0c             	add    $0xc,%eax
5efb6c:	f0 09 18             	lock or %ebx,(%eax)
5efb6f:	8b 45 08             	mov    0x8(%ebp),%eax
5efb72:	8b 40 0c             	mov    0xc(%eax),%eax
5efb75:	90                   	nop
5efb76:	a9 c0 04 00 00       	test   $0x4c0,%eax
5efb7b:	75 09                	jne    0x5efb86
5efb7d:	ff 75 08             	push   0x8(%ebp)
5efb80:	e8 2d 55 00 00       	call   0x5f50b2
5efb85:	59                   	pop    %ecx
5efb86:	8b 45 08             	mov    0x8(%ebp),%eax
5efb89:	57                   	push   %edi
5efb8a:	8b 48 04             	mov    0x4(%eax),%ecx
5efb8d:	89 08                	mov    %ecx,(%eax)
5efb8f:	8b 45 08             	mov    0x8(%ebp),%eax
5efb92:	50                   	push   %eax
5efb93:	8b 70 18             	mov    0x18(%eax),%esi
5efb96:	8b 78 04             	mov    0x4(%eax),%edi
5efb99:	e8 7d 61 ff ff       	call   0x5e5d1b
5efb9e:	56                   	push   %esi
5efb9f:	57                   	push   %edi
5efba0:	50                   	push   %eax
5efba1:	e8 46 3b ff ff       	call   0x5e36ec
5efba6:	8b 4d 08             	mov    0x8(%ebp),%ecx
5efba9:	83 c4 10             	add    $0x10,%esp
5efbac:	89 41 08             	mov    %eax,0x8(%ecx)
5efbaf:	8b 45 08             	mov    0x8(%ebp),%eax
5efbb2:	5f                   	pop    %edi
5efbb3:	8b 50 08             	mov    0x8(%eax),%edx
5efbb6:	85 d2                	test   %edx,%edx
5efbb8:	0f 84 b0 00 00 00    	je     0x5efc6e
5efbbe:	83 fa ff             	cmp    $0xffffffff,%edx
5efbc1:	0f 84 a7 00 00 00    	je     0x5efc6e
5efbc7:	8b 40 0c             	mov    0xc(%eax),%eax
5efbca:	90                   	nop
5efbcb:	a8 06                	test   $0x6,%al
5efbcd:	75 5e                	jne    0x5efc2d
5efbcf:	ff 75 08             	push   0x8(%ebp)
5efbd2:	e8 44 61 ff ff       	call   0x5e5d1b
5efbd7:	59                   	pop    %ecx
5efbd8:	83 f8 ff             	cmp    $0xffffffff,%eax
5efbdb:	74 36                	je     0x5efc13
5efbdd:	ff 75 08             	push   0x8(%ebp)
5efbe0:	e8 36 61 ff ff       	call   0x5e5d1b
5efbe5:	59                   	pop    %ecx
5efbe6:	83 f8 fe             	cmp    $0xfffffffe,%eax
5efbe9:	74 28                	je     0x5efc13
5efbeb:	ff 75 08             	push   0x8(%ebp)
5efbee:	e8 28 61 ff ff       	call   0x5e5d1b
5efbf3:	ff 75 08             	push   0x8(%ebp)
5efbf6:	8b f0                	mov    %eax,%esi
5efbf8:	c1 fe 06             	sar    $0x6,%esi
5efbfb:	e8 1b 61 ff ff       	call   0x5e5d1b
5efc00:	59                   	pop    %ecx
5efc01:	83 e0 3f             	and    $0x3f,%eax
5efc04:	59                   	pop    %ecx
5efc05:	6b c8 38             	imul   $0x38,%eax,%ecx
5efc08:	8b 04 b5 a8 70 71 00 	mov    0x7170a8(,%esi,4),%eax
5efc0f:	03 c1                	add    %ecx,%eax
5efc11:	eb 05                	jmp    0x5efc18
5efc13:	b8 e0 19 69 00       	mov    $0x6919e0,%eax
5efc18:	8a 40 28             	mov    0x28(%eax),%al
5efc1b:	24 82                	and    $0x82,%al
5efc1d:	3c 82                	cmp    $0x82,%al
5efc1f:	75 0c                	jne    0x5efc2d
5efc21:	8b 45 08             	mov    0x8(%ebp),%eax
5efc24:	6a 20                	push   $0x20
5efc26:	59                   	pop    %ecx
5efc27:	83 c0 0c             	add    $0xc,%eax
5efc2a:	f0 09 08             	lock or %ecx,(%eax)
5efc2d:	8b 45 08             	mov    0x8(%ebp),%eax
5efc30:	81 78 18 00 02 00 00 	cmpl   $0x200,0x18(%eax)
5efc37:	75 26                	jne    0x5efc5f
5efc39:	8b 40 0c             	mov    0xc(%eax),%eax
5efc3c:	90                   	nop
5efc3d:	c1 e8 06             	shr    $0x6,%eax
5efc40:	84 c3                	test   %al,%bl
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