421e86:	a8 04                	test   $0x4,%al
421e88:	74 03                	je     0x421e8d
421e8a:	83 ca 08             	or     $0x8,%edx
421e8d:	a8 08                	test   $0x8,%al
421e8f:	74 03                	je     0x421e94
421e91:	83 ca 04             	or     $0x4,%edx
421e94:	a8 10                	test   $0x10,%al
421e96:	74 03                	je     0x421e9b
421e98:	83 ca 02             	or     $0x2,%edx
421e9b:	a8 20                	test   $0x20,%al
421e9d:	74 03                	je     0x421ea2
421e9f:	83 ca 01             	or     $0x1,%edx
421ea2:	a8 02                	test   $0x2,%al
421ea4:	74 02                	je     0x421ea8
421ea6:	0b d7                	or     %edi,%edx
421ea8:	0f ae 5d f8          	stmxcsr -0x8(%ebp)
421eac:	8b 45 f8             	mov    -0x8(%ebp),%eax
421eaf:	83 e0 c0             	and    $0xffffffc0,%eax
421eb2:	89 45 f4             	mov    %eax,-0xc(%ebp)
421eb5:	0f ae 55 f4          	ldmxcsr -0xc(%ebp)
421eb9:	8b 45 f8             	mov    -0x8(%ebp),%eax
421ebc:	a8 3f                	test   $0x3f,%al
421ebe:	74 29                	je     0x421ee9
421ec0:	a8 01                	test   $0x1,%al
421ec2:	74 03                	je     0x421ec7
421ec4:	6a 10                	push   $0x10
421ec6:	59                   	pop    %ecx
421ec7:	a8 04                	test   $0x4,%al
421ec9:	74 03                	je     0x421ece
421ecb:	83 c9 08             	or     $0x8,%ecx
421ece:	a8 08                	test   $0x8,%al
421ed0:	74 03                	je     0x421ed5
421ed2:	83 c9 04             	or     $0x4,%ecx
421ed5:	a8 10                	test   $0x10,%al
421ed7:	74 03                	je     0x421edc
421ed9:	83 c9 02             	or     $0x2,%ecx
421edc:	a8 20                	test   $0x20,%al
421ede:	74 03                	je     0x421ee3
421ee0:	83 c9 01             	or     $0x1,%ecx
421ee3:	a8 02                	test   $0x2,%al
421ee5:	74 02                	je     0x421ee9
421ee7:	0b cf                	or     %edi,%ecx
421ee9:	0b ca                	or     %edx,%ecx
421eeb:	8b c1                	mov    %ecx,%eax
421eed:	5f                   	pop    %edi
421eee:	eb 3d                	jmp    0x421f2d
421ef0:	66 8b 4d fc          	mov    -0x4(%ebp),%cx
421ef4:	33 c0                	xor    %eax,%eax
421ef6:	f6 c1 3f             	test   $0x3f,%cl
421ef9:	74 32                	je     0x421f2d
421efb:	f6 c1 01             	test   $0x1,%cl
421efe:	74 03                	je     0x421f03
421f00:	6a 10                	push   $0x10
421f02:	58                   	pop    %eax
421f03:	f6 c1 04             	test   $0x4,%cl
421f06:	74 03                	je     0x421f0b
421f08:	83 c8 08             	or     $0x8,%eax
421f0b:	f6 c1 08             	test   $0x8,%cl
421f0e:	74 03                	je     0x421f13
421f10:	83 c8 04             	or     $0x4,%eax
421f13:	f6 c1 10             	test   $0x10,%cl
421f16:	74 03                	je     0x421f1b
421f18:	83 c8 02             	or     $0x2,%eax
421f1b:	f6 c1 20             	test   $0x20,%cl
421f1e:	74 03                	je     0x421f23
421f20:	83 c8 01             	or     $0x1,%eax
421f23:	f6 c1 02             	test   $0x2,%cl
421f26:	74 05                	je     0x421f2d
421f28:	0d 00 00 08 00       	or     $0x80000,%eax
421f2d:	8b e5                	mov    %ebp,%esp
421f2f:	5d                   	pop    %ebp
421f30:	c3                   	ret
421f31:	8b ff                	mov    %edi,%edi
421f33:	55                   	push   %ebp
421f34:	8b ec                	mov    %esp,%ebp
421f36:	83 ec 10             	sub    $0x10,%esp
421f39:	9b d9 7d f8          	fstcw  -0x8(%ebp)
421f3d:	66 8b 45 f8          	mov    -0x8(%ebp),%ax
421f41:	33 c9                	xor    %ecx,%ecx
421f43:	a8 01                	test   $0x1,%al
421f45:	74 03                	je     0x421f4a
421f47:	6a 10                	push   $0x10
421f49:	59                   	pop    %ecx
421f4a:	a8 04                	test   $0x4,%al
421f4c:	74 03                	je     0x421f51
421f4e:	83 c9 08             	or     $0x8,%ecx
421f51:	a8 08                	test   $0x8,%al
421f53:	74 03                	je     0x421f58
421f55:	83 c9 04             	or     $0x4,%ecx
421f58:	a8 10                	test   $0x10,%al
421f5a:	74 03                	je     0x421f5f
421f5c:	83 c9 02             	or     $0x2,%ecx
421f5f:	a8 20                	test   $0x20,%al
421f61:	74 03                	je     0x421f66
421f63:	83 c9 01             	or     $0x1,%ecx
421f66:	a8 02                	test   $0x2,%al
421f68:	74 06                	je     0x421f70
421f6a:	81 c9 00 00 08 00    	or     $0x80000,%ecx
421f70:	53                   	push   %ebx
421f71:	56                   	push   %esi
421f72:	0f b7 f0             	movzwl %ax,%esi
421f75:	bb 00 0c 00 00       	mov    $0xc00,%ebx
421f7a:	8b d6                	mov    %esi,%edx
421f7c:	57                   	push   %edi
421f7d:	bf 00 02 00 00       	mov    $0x200,%edi
421f82:	23 d3                	and    %ebx,%edx
421f84:	74 26                	je     0x421fac
421f86:	81 fa 00 04 00 00    	cmp    $0x400,%edx
421f8c:	74 18                	je     0x421fa6
421f8e:	81 fa 00 08 00 00    	cmp    $0x800,%edx
421f94:	74 0c                	je     0x421fa2
421f96:	3b d3                	cmp    %ebx,%edx
421f98:	75 12                	jne    0x421fac
421f9a:	81 c9 00 03 00 00    	or     $0x300,%ecx
421fa0:	eb 0a                	jmp    0x421fac
421fa2:	0b cf                	or     %edi,%ecx
421fa4:	eb 06                	jmp    0x421fac
421fa6:	81 c9 00 01 00 00    	or     $0x100,%ecx
421fac:	81 e6 00 03 00 00    	and    $0x300,%esi
421fb2:	74 0c                	je     0x421fc0
421fb4:	3b f7                	cmp    %edi,%esi
421fb6:	75 0e                	jne    0x421fc6
421fb8:	81 c9 00 00 01 00    	or     $0x10000,%ecx
421fbe:	eb 06                	jmp    0x421fc6
421fc0:	81 c9 00 00 02 00    	or     $0x20000,%ecx
421fc6:	ba 00 10 00 00       	mov    $0x1000,%edx
421fcb:	66 85 c2             	test   %ax,%dx
421fce:	74 06                	je     0x421fd6
421fd0:	81 c9 00 00 04 00    	or     $0x40000,%ecx
421fd6:	8b 7d 0c             	mov    0xc(%ebp),%edi
421fd9:	8b f7                	mov    %edi,%esi
421fdb:	8b 45 08             	mov    0x8(%ebp),%eax
421fde:	f7 d6                	not    %esi
421fe0:	23 f1                	and    %ecx,%esi
421fe2:	23 c7                	and    %edi,%eax
421fe4:	0b f0                	or     %eax,%esi
421fe6:	3b f1                	cmp    %ecx,%esi
421fe8:	0f 84 a6 00 00 00    	je     0x422094
421fee:	56                   	push   %esi
421fef:	e8 3f 02 00 00       	call   0x422233
421ff4:	59                   	pop    %ecx
421ff5:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
421ff9:	d9 6d fc             	fldcw  -0x4(%ebp)
421ffc:	9b d9 7d fc          	fstcw  -0x4(%ebp)
422000:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
422004:	33 f6                	xor    %esi,%esi
422006:	a8 01                	test   $0x1,%al
422008:	74 03                	je     0x42200d
42200a:	6a 10                	push   $0x10
42200c:	5e                   	pop    %esi
42200d:	a8 04                	test   $0x4,%al
42200f:	74 03                	je     0x422014
422011:	83 ce 08             	or     $0x8,%esi
422014:	a8 08                	test   $0x8,%al
422016:	74 03                	je     0x42201b
422018:	83 ce 04             	or     $0x4,%esi
42201b:	a8 10                	test   $0x10,%al
42201d:	74 03                	je     0x422022
42201f:	83 ce 02             	or     $0x2,%esi
422022:	a8 20                	test   $0x20,%al
422024:	74 03                	je     0x422029
422026:	83 ce 01             	or     $0x1,%esi
422029:	a8 02                	test   $0x2,%al
42202b:	74 06                	je     0x422033
42202d:	81 ce 00 00 08 00    	or     $0x80000,%esi
422033:	0f b7 d0             	movzwl %ax,%edx
422036:	8b ca                	mov    %edx,%ecx
422038:	23 cb                	and    %ebx,%ecx
42203a:	74 2a                	je     0x422066
42203c:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
422042:	74 1c                	je     0x422060
422044:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
42204a:	74 0c                	je     0x422058
42204c:	3b cb                	cmp    %ebx,%ecx
42204e:	75 16                	jne    0x422066
422050:	81 ce 00 03 00 00    	or     $0x300,%esi
422056:	eb 0e                	jmp    0x422066
422058:	81 ce 00 02 00 00    	or     $0x200,%esi
42205e:	eb 06                	jmp    0x422066
422060:	81 ce 00 01 00 00    	or     $0x100,%esi
422066:	81 e2 00 03 00 00    	and    $0x300,%edx
42206c:	74 10                	je     0x42207e
42206e:	81 fa 00 02 00 00    	cmp    $0x200,%edx
422074:	75 0e                	jne    0x422084
422076:	81 ce 00 00 01 00    	or     $0x10000,%esi
42207c:	eb 06                	jmp    0x422084
42207e:	81 ce 00 00 02 00    	or     $0x20000,%esi
422084:	ba 00 10 00 00       	mov    $0x1000,%edx
422089:	66 85 c2             	test   %ax,%dx
42208c:	74 06                	je     0x422094
42208e:	81 ce 00 00 04 00    	or     $0x40000,%esi
422094:	83 3d 48 96 83 02 01 	cmpl   $0x1,0x2839648
42209b:	0f 8c 89 01 00 00    	jl     0x42222a
4220a1:	81 e7 1f 03 08 03    	and    $0x308031f,%edi
4220a7:	0f ae 5d f0          	stmxcsr -0x10(%ebp)
4220ab:	8b 45 f0             	mov    -0x10(%ebp),%eax
4220ae:	33 c9                	xor    %ecx,%ecx
4220b0:	84 c0                	test   %al,%al
4220b2:	79 03                	jns    0x4220b7
4220b4:	6a 10                	push   $0x10
4220b6:	59                   	pop    %ecx
4220b7:	a9 00 02 00 00       	test   $0x200,%eax
4220bc:	74 03                	je     0x4220c1
4220be:	83 c9 08             	or     $0x8,%ecx
4220c1:	a9 00 04 00 00       	test   $0x400,%eax
4220c6:	74 03                	je     0x4220cb
4220c8:	83 c9 04             	or     $0x4,%ecx
4220cb:	a9 00 08 00 00       	test   $0x800,%eax
4220d0:	74 03                	je     0x4220d5
4220d2:	83 c9 02             	or     $0x2,%ecx
4220d5:	85 c2                	test   %eax,%edx
4220d7:	74 03                	je     0x4220dc
4220d9:	83 c9 01             	or     $0x1,%ecx
4220dc:	a9 00 01 00 00       	test   $0x100,%eax
4220e1:	74 06                	je     0x4220e9
4220e3:	81 c9 00 00 08 00    	or     $0x80000,%ecx
4220e9:	8b d0                	mov    %eax,%edx
4220eb:	bb 00 60 00 00       	mov    $0x6000,%ebx
4220f0:	23 d3                	and    %ebx,%edx
4220f2:	74 2a                	je     0x42211e
4220f4:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
4220fa:	74 1c                	je     0x422118
4220fc:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
422102:	74 0c                	je     0x422110
422104:	3b d3                	cmp    %ebx,%edx
422106:	75 16                	jne    0x42211e
422108:	81 c9 00 03 00 00    	or     $0x300,%ecx
42210e:	eb 0e                	jmp    0x42211e
422110:	81 c9 00 02 00 00    	or     $0x200,%ecx
422116:	eb 06                	jmp    0x42211e
422118:	81 c9 00 01 00 00    	or     $0x100,%ecx
42211e:	6a 40                	push   $0x40
422120:	25 40 80 00 00       	and    $0x8040,%eax
422125:	5b                   	pop    %ebx
422126:	2b c3                	sub    %ebx,%eax
422128:	74 1b                	je     0x422145
42212a:	2d c0 7f 00 00       	sub    $0x7fc0,%eax
42212f:	74 0c                	je     0x42213d
422131:	2b c3                	sub    %ebx,%eax
422133:	75 16                	jne    0x42214b
422135:	81 c9 00 00 00 01    	or     $0x1000000,%ecx
42213b:	eb 0e                	jmp    0x42214b
42213d:	81 c9 00 00 00 03    	or     $0x3000000,%ecx
422143:	eb 06                	jmp    0x42214b
422145:	81 c9 00 00 00 02    	or     $0x2000000,%ecx
42214b:	8b c7                	mov    %edi,%eax
42214d:	23 7d 08             	and    0x8(%ebp),%edi
422150:	f7 d0                	not    %eax
422152:	23 c1                	and    %ecx,%eax
422154:	0b c7                	or     %edi,%eax
422156:	3b c1                	cmp    %ecx,%eax
422158:	0f 84 b5 00 00 00    	je     0x422213
42215e:	50                   	push   %eax
42215f:	e8 44 fc ff ff       	call   0x421da8
422164:	50                   	push   %eax
422165:	89 45 f4             	mov    %eax,-0xc(%ebp)
422168:	e8 db b4 ff ff       	call   0x41d648
42216d:	59                   	pop    %ecx
42216e:	59                   	pop    %ecx
42216f:	0f ae 5d f4          	stmxcsr -0xc(%ebp)
422173:	8b 45 f4             	mov    -0xc(%ebp),%eax
422176:	33 c9                	xor    %ecx,%ecx
422178:	84 c0                	test   %al,%al
42217a:	79 03                	jns    0x42217f
42217c:	6a 10                	push   $0x10
42217e:	59                   	pop    %ecx
42217f:	a9 00 02 00 00       	test   $0x200,%eax
422184:	74 03                	je     0x422189
422186:	83 c9 08             	or     $0x8,%ecx
422189:	a9 00 04 00 00       	test   $0x400,%eax
42218e:	74 03                	je     0x422193
422190:	83 c9 04             	or     $0x4,%ecx
422193:	a9 00 08 00 00       	test   $0x800,%eax
422198:	74 03                	je     0x42219d
42219a:	83 c9 02             	or     $0x2,%ecx
42219d:	a9 00 10 00 00       	test   $0x1000,%eax
4221a2:	74 03                	je     0x4221a7
4221a4:	83 c9 01             	or     $0x1,%ecx
4221a7:	a9 00 01 00 00       	test   $0x100,%eax
4221ac:	74 06                	je     0x4221b4
4221ae:	81 c9 00 00 08 00    	or     $0x80000,%ecx
4221b4:	8b d0                	mov    %eax,%edx
4221b6:	bf 00 60 00 00       	mov    $0x6000,%edi
4221bb:	23 d7                	and    %edi,%edx
4221bd:	74 2a                	je     0x4221e9
4221bf:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
4221c5:	74 1c                	je     0x4221e3
4221c7:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
4221cd:	74 0c                	je     0x4221db
4221cf:	3b d7                	cmp    %edi,%edx
4221d1:	75 16                	jne    0x4221e9
4221d3:	81 c9 00 03 00 00    	or     $0x300,%ecx
4221d9:	eb 0e                	jmp    0x4221e9
4221db:	81 c9 00 02 00 00    	or     $0x200,%ecx
4221e1:	eb 06                	jmp    0x4221e9
4221e3:	81 c9 00 01 00 00    	or     $0x100,%ecx
4221e9:	25 40 80 00 00       	and    $0x8040,%eax
4221ee:	2b c3                	sub    %ebx,%eax
4221f0:	74 1b                	je     0x42220d
4221f2:	2d c0 7f 00 00       	sub    $0x7fc0,%eax
4221f7:	74 0c                	je     0x422205
4221f9:	2b c3                	sub    %ebx,%eax
4221fb:	75 16                	jne    0x422213
4221fd:	81 c9 00 00 00 01    	or     $0x1000000,%ecx
422203:	eb 0e                	jmp    0x422213
422205:	81 c9 00 00 00 03    	or     $0x3000000,%ecx
42220b:	eb 06                	jmp    0x422213
42220d:	81 c9 00 00 00 02    	or     $0x2000000,%ecx
422213:	8b c1                	mov    %ecx,%eax
422215:	0b ce                	or     %esi,%ecx
422217:	33 c6                	xor    %esi,%eax
422219:	a9 1f 03 08 00       	test   $0x8031f,%eax
42221e:	74 06                	je     0x422226
422220:	81 c9 00 00 00 80    	or     $0x80000000,%ecx
422226:	8b c1                	mov    %ecx,%eax
422228:	eb 02                	jmp    0x42222c
42222a:	8b c6                	mov    %esi,%eax
42222c:	5f                   	pop    %edi
42222d:	5e                   	pop    %esi
42222e:	5b                   	pop    %ebx
42222f:	8b e5                	mov    %ebp,%esp
422231:	5d                   	pop    %ebp
422232:	c3                   	ret
422233:	8b ff                	mov    %edi,%edi
422235:	55                   	push   %ebp
422236:	8b ec                	mov    %esp,%ebp
422238:	8b 4d 08             	mov    0x8(%ebp),%ecx
42223b:	33 c0                	xor    %eax,%eax
42223d:	f6 c1 10             	test   $0x10,%cl
422240:	74 01                	je     0x422243
422242:	40                   	inc    %eax
422243:	f6 c1 08             	test   $0x8,%cl
422246:	74 03                	je     0x42224b
422248:	83 c8 04             	or     $0x4,%eax
42224b:	f6 c1 04             	test   $0x4,%cl
42224e:	74 03                	je     0x422253
422250:	83 c8 08             	or     $0x8,%eax
422253:	f6 c1 02             	test   $0x2,%cl
422256:	74 03                	je     0x42225b
422258:	83 c8 10             	or     $0x10,%eax
42225b:	f6 c1 01             	test   $0x1,%cl
42225e:	74 03                	je     0x422263
422260:	83 c8 20             	or     $0x20,%eax
422263:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
422269:	74 03                	je     0x42226e
42226b:	83 c8 02             	or     $0x2,%eax
42226e:	56                   	push   %esi
42226f:	8b d1                	mov    %ecx,%edx
422271:	be 00 03 00 00       	mov    $0x300,%esi
422276:	57                   	push   %edi