5f2de8:	a8 3f                	test   $0x3f,%al
5f2dea:	74 29                	je     0x5f2e15
5f2dec:	0f b7 d0             	movzwl %ax,%edx
5f2def:	23 d6                	and    %esi,%edx
5f2df1:	c1 e2 04             	shl    $0x4,%edx
5f2df4:	a8 04                	test   $0x4,%al
5f2df6:	74 03                	je     0x5f2dfb
5f2df8:	83 ca 08             	or     $0x8,%edx
5f2dfb:	a8 08                	test   $0x8,%al
5f2dfd:	74 03                	je     0x5f2e02
5f2dff:	83 ca 04             	or     $0x4,%edx
5f2e02:	a8 10                	test   $0x10,%al
5f2e04:	74 03                	je     0x5f2e09
5f2e06:	83 ca 02             	or     $0x2,%edx
5f2e09:	a8 20                	test   $0x20,%al
5f2e0b:	74 02                	je     0x5f2e0f
5f2e0d:	0b d6                	or     %esi,%edx
5f2e0f:	a8 02                	test   $0x2,%al
5f2e11:	74 02                	je     0x5f2e15
5f2e13:	0b d7                	or     %edi,%edx
5f2e15:	0f ae 5d f8          	stmxcsr -0x8(%ebp)
5f2e19:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f2e1c:	83 e0 c0             	and    $0xffffffc0,%eax
5f2e1f:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f2e22:	0f ae 55 f4          	ldmxcsr -0xc(%ebp)
5f2e26:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f2e29:	a8 3f                	test   $0x3f,%al
5f2e2b:	74 28                	je     0x5f2e55
5f2e2d:	8b c8                	mov    %eax,%ecx
5f2e2f:	23 ce                	and    %esi,%ecx
5f2e31:	c1 e1 04             	shl    $0x4,%ecx
5f2e34:	a8 04                	test   $0x4,%al
5f2e36:	74 03                	je     0x5f2e3b
5f2e38:	83 c9 08             	or     $0x8,%ecx
5f2e3b:	a8 08                	test   $0x8,%al
5f2e3d:	74 03                	je     0x5f2e42
5f2e3f:	83 c9 04             	or     $0x4,%ecx
5f2e42:	a8 10                	test   $0x10,%al
5f2e44:	74 03                	je     0x5f2e49
5f2e46:	83 c9 02             	or     $0x2,%ecx
5f2e49:	a8 20                	test   $0x20,%al
5f2e4b:	74 02                	je     0x5f2e4f
5f2e4d:	0b ce                	or     %esi,%ecx
5f2e4f:	a8 02                	test   $0x2,%al
5f2e51:	74 02                	je     0x5f2e55
5f2e53:	0b cf                	or     %edi,%ecx
5f2e55:	0b ca                	or     %edx,%ecx
5f2e57:	8b c1                	mov    %ecx,%eax
5f2e59:	5f                   	pop    %edi
5f2e5a:	eb 3c                	jmp    0x5f2e98
5f2e5c:	66 8b 4d fc          	mov    -0x4(%ebp),%cx
5f2e60:	33 c0                	xor    %eax,%eax
5f2e62:	f6 c1 3f             	test   $0x3f,%cl
5f2e65:	74 31                	je     0x5f2e98
5f2e67:	0f b7 c1             	movzwl %cx,%eax
5f2e6a:	23 c6                	and    %esi,%eax
5f2e6c:	c1 e0 04             	shl    $0x4,%eax
5f2e6f:	f6 c1 04             	test   $0x4,%cl
5f2e72:	74 03                	je     0x5f2e77
5f2e74:	83 c8 08             	or     $0x8,%eax
5f2e77:	f6 c1 08             	test   $0x8,%cl
5f2e7a:	74 03                	je     0x5f2e7f
5f2e7c:	83 c8 04             	or     $0x4,%eax
5f2e7f:	f6 c1 10             	test   $0x10,%cl
5f2e82:	74 03                	je     0x5f2e87
5f2e84:	83 c8 02             	or     $0x2,%eax
5f2e87:	f6 c1 20             	test   $0x20,%cl
5f2e8a:	74 02                	je     0x5f2e8e
5f2e8c:	0b c6                	or     %esi,%eax
5f2e8e:	f6 c1 02             	test   $0x2,%cl
5f2e91:	74 05                	je     0x5f2e98
5f2e93:	0d 00 00 08 00       	or     $0x80000,%eax
5f2e98:	5e                   	pop    %esi
5f2e99:	c9                   	leave
5f2e9a:	c3                   	ret
5f2e9b:	8b ff                	mov    %edi,%edi
5f2e9d:	55                   	push   %ebp
5f2e9e:	8b ec                	mov    %esp,%ebp
5f2ea0:	83 ec 10             	sub    $0x10,%esp
5f2ea3:	9b d9 7d f8          	fstcw  -0x8(%ebp)
5f2ea7:	66 8b 45 f8          	mov    -0x8(%ebp),%ax
5f2eab:	0f b7 c8             	movzwl %ax,%ecx
5f2eae:	83 e1 01             	and    $0x1,%ecx
5f2eb1:	c1 e1 04             	shl    $0x4,%ecx
5f2eb4:	a8 04                	test   $0x4,%al
5f2eb6:	74 03                	je     0x5f2ebb
5f2eb8:	83 c9 08             	or     $0x8,%ecx
5f2ebb:	a8 08                	test   $0x8,%al
5f2ebd:	74 03                	je     0x5f2ec2
5f2ebf:	83 c9 04             	or     $0x4,%ecx
5f2ec2:	a8 10                	test   $0x10,%al
5f2ec4:	74 03                	je     0x5f2ec9
5f2ec6:	83 c9 02             	or     $0x2,%ecx
5f2ec9:	a8 20                	test   $0x20,%al
5f2ecb:	74 03                	je     0x5f2ed0
5f2ecd:	83 c9 01             	or     $0x1,%ecx
5f2ed0:	a8 02                	test   $0x2,%al
5f2ed2:	74 06                	je     0x5f2eda
5f2ed4:	81 c9 00 00 08 00    	or     $0x80000,%ecx
5f2eda:	53                   	push   %ebx
5f2edb:	56                   	push   %esi
5f2edc:	0f b7 f0             	movzwl %ax,%esi
5f2edf:	bb 00 0c 00 00       	mov    $0xc00,%ebx
5f2ee4:	8b d6                	mov    %esi,%edx
5f2ee6:	57                   	push   %edi
5f2ee7:	bf 00 02 00 00       	mov    $0x200,%edi
5f2eec:	23 d3                	and    %ebx,%edx
5f2eee:	74 26                	je     0x5f2f16
5f2ef0:	81 fa 00 04 00 00    	cmp    $0x400,%edx
5f2ef6:	74 18                	je     0x5f2f10
5f2ef8:	81 fa 00 08 00 00    	cmp    $0x800,%edx
5f2efe:	74 0c                	je     0x5f2f0c
5f2f00:	3b d3                	cmp    %ebx,%edx
5f2f02:	75 12                	jne    0x5f2f16
5f2f04:	81 c9 00 03 00 00    	or     $0x300,%ecx
5f2f0a:	eb 0a                	jmp    0x5f2f16
5f2f0c:	0b cf                	or     %edi,%ecx
5f2f0e:	eb 06                	jmp    0x5f2f16
5f2f10:	81 c9 00 01 00 00    	or     $0x100,%ecx
5f2f16:	81 e6 00 03 00 00    	and    $0x300,%esi
5f2f1c:	74 0c                	je     0x5f2f2a
5f2f1e:	3b f7                	cmp    %edi,%esi
5f2f20:	75 0e                	jne    0x5f2f30
5f2f22:	81 c9 00 00 01 00    	or     $0x10000,%ecx
5f2f28:	eb 06                	jmp    0x5f2f30
5f2f2a:	81 c9 00 00 02 00    	or     $0x20000,%ecx
5f2f30:	0f b7 c0             	movzwl %ax,%eax
5f2f33:	ba 00 10 00 00       	mov    $0x1000,%edx
5f2f38:	85 c2                	test   %eax,%edx
5f2f3a:	74 06                	je     0x5f2f42
5f2f3c:	81 c9 00 00 04 00    	or     $0x40000,%ecx
5f2f42:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f2f45:	8b f7                	mov    %edi,%esi
5f2f47:	8b 45 08             	mov    0x8(%ebp),%eax
5f2f4a:	f7 d6                	not    %esi
5f2f4c:	23 f1                	and    %ecx,%esi
5f2f4e:	23 c7                	and    %edi,%eax
5f2f50:	0b f0                	or     %eax,%esi
5f2f52:	3b f1                	cmp    %ecx,%esi
5f2f54:	0f 84 a8 00 00 00    	je     0x5f3002
5f2f5a:	56                   	push   %esi
5f2f5b:	e8 3c 02 00 00       	call   0x5f319c
5f2f60:	59                   	pop    %ecx
5f2f61:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
5f2f65:	d9 6d fc             	fldcw  -0x4(%ebp)
5f2f68:	9b d9 7d fc          	fstcw  -0x4(%ebp)
5f2f6c:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
5f2f70:	0f b7 f0             	movzwl %ax,%esi
5f2f73:	83 e6 01             	and    $0x1,%esi
5f2f76:	c1 e6 04             	shl    $0x4,%esi
5f2f79:	a8 04                	test   $0x4,%al
5f2f7b:	74 03                	je     0x5f2f80
5f2f7d:	83 ce 08             	or     $0x8,%esi
5f2f80:	a8 08                	test   $0x8,%al
5f2f82:	74 03                	je     0x5f2f87
5f2f84:	83 ce 04             	or     $0x4,%esi
5f2f87:	a8 10                	test   $0x10,%al
5f2f89:	74 03                	je     0x5f2f8e
5f2f8b:	83 ce 02             	or     $0x2,%esi
5f2f8e:	a8 20                	test   $0x20,%al
5f2f90:	74 03                	je     0x5f2f95
5f2f92:	83 ce 01             	or     $0x1,%esi
5f2f95:	a8 02                	test   $0x2,%al
5f2f97:	74 06                	je     0x5f2f9f
5f2f99:	81 ce 00 00 08 00    	or     $0x80000,%esi
5f2f9f:	0f b7 d0             	movzwl %ax,%edx
5f2fa2:	8b ca                	mov    %edx,%ecx
5f2fa4:	23 cb                	and    %ebx,%ecx
5f2fa6:	74 2a                	je     0x5f2fd2
5f2fa8:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
5f2fae:	74 1c                	je     0x5f2fcc
5f2fb0:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
5f2fb6:	74 0c                	je     0x5f2fc4
5f2fb8:	3b cb                	cmp    %ebx,%ecx
5f2fba:	75 16                	jne    0x5f2fd2
5f2fbc:	81 ce 00 03 00 00    	or     $0x300,%esi
5f2fc2:	eb 0e                	jmp    0x5f2fd2
5f2fc4:	81 ce 00 02 00 00    	or     $0x200,%esi
5f2fca:	eb 06                	jmp    0x5f2fd2
5f2fcc:	81 ce 00 01 00 00    	or     $0x100,%esi
5f2fd2:	81 e2 00 03 00 00    	and    $0x300,%edx
5f2fd8:	74 10                	je     0x5f2fea
5f2fda:	81 fa 00 02 00 00    	cmp    $0x200,%edx
5f2fe0:	75 0e                	jne    0x5f2ff0
5f2fe2:	81 ce 00 00 01 00    	or     $0x10000,%esi
5f2fe8:	eb 06                	jmp    0x5f2ff0
5f2fea:	81 ce 00 00 02 00    	or     $0x20000,%esi
5f2ff0:	0f b7 c0             	movzwl %ax,%eax
5f2ff3:	ba 00 10 00 00       	mov    $0x1000,%edx
5f2ff8:	85 c2                	test   %eax,%edx
5f2ffa:	74 06                	je     0x5f3002
5f2ffc:	81 ce 00 00 04 00    	or     $0x40000,%esi
5f3002:	83 3d 58 6b 71 00 01 	cmpl   $0x1,0x716b58
5f3009:	0f 8c 86 01 00 00    	jl     0x5f3195
5f300f:	81 e7 1f 03 08 03    	and    $0x308031f,%edi
5f3015:	0f ae 5d f0          	stmxcsr -0x10(%ebp)
5f3019:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5f301c:	8b c1                	mov    %ecx,%eax
5f301e:	c1 e8 03             	shr    $0x3,%eax
5f3021:	83 e0 10             	and    $0x10,%eax
5f3024:	f7 c1 00 02 00 00    	test   $0x200,%ecx
5f302a:	74 03                	je     0x5f302f
5f302c:	83 c8 08             	or     $0x8,%eax
5f302f:	f7 c1 00 04 00 00    	test   $0x400,%ecx
5f3035:	74 03                	je     0x5f303a
5f3037:	83 c8 04             	or     $0x4,%eax
5f303a:	f7 c1 00 08 00 00    	test   $0x800,%ecx
5f3040:	74 03                	je     0x5f3045
5f3042:	83 c8 02             	or     $0x2,%eax
5f3045:	85 ca                	test   %ecx,%edx
5f3047:	74 03                	je     0x5f304c
5f3049:	83 c8 01             	or     $0x1,%eax
5f304c:	f7 c1 00 01 00 00    	test   $0x100,%ecx
5f3052:	74 05                	je     0x5f3059
5f3054:	0d 00 00 08 00       	or     $0x80000,%eax
5f3059:	8b d1                	mov    %ecx,%edx
5f305b:	bb 00 60 00 00       	mov    $0x6000,%ebx
5f3060:	23 d3                	and    %ebx,%edx
5f3062:	74 27                	je     0x5f308b
5f3064:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
5f306a:	74 1a                	je     0x5f3086
5f306c:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
5f3072:	74 0b                	je     0x5f307f
5f3074:	3b d3                	cmp    %ebx,%edx
5f3076:	75 13                	jne    0x5f308b
5f3078:	0d 00 03 00 00       	or     $0x300,%eax
5f307d:	eb 0c                	jmp    0x5f308b
5f307f:	0d 00 02 00 00       	or     $0x200,%eax
5f3084:	eb 05                	jmp    0x5f308b
5f3086:	0d 00 01 00 00       	or     $0x100,%eax
5f308b:	6a 40                	push   $0x40
5f308d:	81 e1 40 80 00 00    	and    $0x8040,%ecx
5f3093:	5b                   	pop    %ebx
5f3094:	2b cb                	sub    %ebx,%ecx
5f3096:	74 1a                	je     0x5f30b2
5f3098:	81 e9 c0 7f 00 00    	sub    $0x7fc0,%ecx
5f309e:	74 0b                	je     0x5f30ab
5f30a0:	2b cb                	sub    %ebx,%ecx
5f30a2:	75 13                	jne    0x5f30b7
5f30a4:	0d 00 00 00 01       	or     $0x1000000,%eax
5f30a9:	eb 0c                	jmp    0x5f30b7
5f30ab:	0d 00 00 00 03       	or     $0x3000000,%eax
5f30b0:	eb 05                	jmp    0x5f30b7
5f30b2:	0d 00 00 00 02       	or     $0x2000000,%eax
5f30b7:	8b cf                	mov    %edi,%ecx
5f30b9:	23 7d 08             	and    0x8(%ebp),%edi
5f30bc:	f7 d1                	not    %ecx
5f30be:	23 c8                	and    %eax,%ecx
5f30c0:	0b cf                	or     %edi,%ecx
5f30c2:	3b c8                	cmp    %eax,%ecx
5f30c4:	0f 84 b4 00 00 00    	je     0x5f317e
5f30ca:	51                   	push   %ecx
5f30cb:	e8 46 fc ff ff       	call   0x5f2d16
5f30d0:	50                   	push   %eax
5f30d1:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f30d4:	e8 f0 ae ff ff       	call   0x5edfc9
5f30d9:	59                   	pop    %ecx
5f30da:	59                   	pop    %ecx
5f30db:	0f ae 5d f4          	stmxcsr -0xc(%ebp)
5f30df:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f30e2:	8b c1                	mov    %ecx,%eax
5f30e4:	c1 e8 03             	shr    $0x3,%eax
5f30e7:	83 e0 10             	and    $0x10,%eax
5f30ea:	f7 c1 00 02 00 00    	test   $0x200,%ecx
5f30f0:	74 03                	je     0x5f30f5
5f30f2:	83 c8 08             	or     $0x8,%eax
5f30f5:	f7 c1 00 04 00 00    	test   $0x400,%ecx
5f30fb:	74 03                	je     0x5f3100
5f30fd:	83 c8 04             	or     $0x4,%eax
5f3100:	f7 c1 00 08 00 00    	test   $0x800,%ecx
5f3106:	74 03                	je     0x5f310b
5f3108:	83 c8 02             	or     $0x2,%eax
5f310b:	f7 c1 00 10 00 00    	test   $0x1000,%ecx
5f3111:	74 03                	je     0x5f3116
5f3113:	83 c8 01             	or     $0x1,%eax
5f3116:	f7 c1 00 01 00 00    	test   $0x100,%ecx
5f311c:	74 05                	je     0x5f3123
5f311e:	0d 00 00 08 00       	or     $0x80000,%eax
5f3123:	8b d1                	mov    %ecx,%edx
5f3125:	bf 00 60 00 00       	mov    $0x6000,%edi
5f312a:	23 d7                	and    %edi,%edx
5f312c:	74 27                	je     0x5f3155
5f312e:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
5f3134:	74 1a                	je     0x5f3150
5f3136:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
5f313c:	74 0b                	je     0x5f3149
5f313e:	3b d7                	cmp    %edi,%edx
5f3140:	75 13                	jne    0x5f3155
5f3142:	0d 00 03 00 00       	or     $0x300,%eax
5f3147:	eb 0c                	jmp    0x5f3155
5f3149:	0d 00 02 00 00       	or     $0x200,%eax
5f314e:	eb 05                	jmp    0x5f3155
5f3150:	0d 00 01 00 00       	or     $0x100,%eax
5f3155:	81 e1 40 80 00 00    	and    $0x8040,%ecx
5f315b:	2b cb                	sub    %ebx,%ecx
5f315d:	74 1a                	je     0x5f3179
5f315f:	81 e9 c0 7f 00 00    	sub    $0x7fc0,%ecx
5f3165:	74 0b                	je     0x5f3172
5f3167:	2b cb                	sub    %ebx,%ecx
5f3169:	75 13                	jne    0x5f317e
5f316b:	0d 00 00 00 01       	or     $0x1000000,%eax
5f3170:	eb 0c                	jmp    0x5f317e
5f3172:	0d 00 00 00 03       	or     $0x3000000,%eax
5f3177:	eb 05                	jmp    0x5f317e
5f3179:	0d 00 00 00 02       	or     $0x2000000,%eax
5f317e:	8b c8                	mov    %eax,%ecx
5f3180:	33 c6                	xor    %esi,%eax
5f3182:	0b ce                	or     %esi,%ecx
5f3184:	a9 1f 03 08 00       	test   $0x8031f,%eax
5f3189:	74 06                	je     0x5f3191
5f318b:	81 c9 00 00 00 80    	or     $0x80000000,%ecx
5f3191:	8b c1                	mov    %ecx,%eax
5f3193:	eb 02                	jmp    0x5f3197
5f3195:	8b c6                	mov    %esi,%eax
5f3197:	5f                   	pop    %edi
5f3198:	5e                   	pop    %esi
5f3199:	5b                   	pop    %ebx
5f319a:	c9                   	leave
5f319b:	c3                   	ret
5f319c:	8b ff                	mov    %edi,%edi
5f319e:	55                   	push   %ebp
5f319f:	8b ec                	mov    %esp,%ebp
5f31a1:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f31a4:	8b d1                	mov    %ecx,%edx
5f31a6:	c1 ea 04             	shr    $0x4,%edx
5f31a9:	83 e2 01             	and    $0x1,%edx
5f31ac:	8b c2                	mov    %edx,%eax
5f31ae:	f6 c1 08             	test   $0x8,%cl
5f31b1:	74 06                	je     0x5f31b9
5f31b3:	83 ca 04             	or     $0x4,%edx
5f31b6:	0f b7 c2             	movzwl %dx,%eax
5f31b9:	f6 c1 04             	test   $0x4,%cl
5f31bc:	74 03                	je     0x5f31c1
5f31be:	83 c8 08             	or     $0x8,%eax
5f31c1:	f6 c1 02             	test   $0x2,%cl
5f31c4:	74 03                	je     0x5f31c9
5f31c6:	83 c8 10             	or     $0x10,%eax
5f31c9:	f6 c1 01             	test   $0x1,%cl
5f31cc:	74 03                	je     0x5f31d1
5f31ce:	83 c8 20             	or     $0x20,%eax
5f31d1:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
5f31d7:	74 03                	je     0x5f31dc
5f31d9:	83 c8 02             	or     $0x2,%eax
5f31dc:	56                   	push   %esi
5f31dd:	8b d1                	mov    %ecx,%edx
5f31df:	be 00 03 00 00       	mov    $0x300,%esi
5f31e4:	57                   	push   %edi
5f31e5:	bf 00 02 00 00       	mov    $0x200,%edi
5f31ea:	23 d6                	and    %esi,%edx
5f31ec:	74 23                	je     0x5f3211