4111b6:	83 ec 0c             	sub    $0xc,%esp
4111b9:	dd 7d fc             	fnstsw -0x4(%ebp)
4111bc:	db e2                	fnclex
4111be:	83 3d 14 3e 42 00 01 	cmpl   $0x1,0x423e14
4111c5:	0f 8c 83 00 00 00    	jl     0x41124e
4111cb:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
4111cf:	33 c9                	xor    %ecx,%ecx
4111d1:	8b d1                	mov    %ecx,%edx
4111d3:	57                   	push   %edi
4111d4:	bf 00 00 08 00       	mov    $0x80000,%edi
4111d9:	a8 3f                	test   $0x3f,%al
4111db:	74 29                	je     0x411206
4111dd:	a8 01                	test   $0x1,%al
4111df:	74 03                	je     0x4111e4
4111e1:	6a 10                	push   $0x10
4111e3:	5a                   	pop    %edx
4111e4:	a8 04                	test   $0x4,%al
4111e6:	74 03                	je     0x4111eb
4111e8:	83 ca 08             	or     $0x8,%edx
4111eb:	a8 08                	test   $0x8,%al
4111ed:	74 03                	je     0x4111f2
4111ef:	83 ca 04             	or     $0x4,%edx
4111f2:	a8 10                	test   $0x10,%al
4111f4:	74 03                	je     0x4111f9
4111f6:	83 ca 02             	or     $0x2,%edx
4111f9:	a8 20                	test   $0x20,%al
4111fb:	74 03                	je     0x411200
4111fd:	83 ca 01             	or     $0x1,%edx
411200:	a8 02                	test   $0x2,%al
411202:	74 02                	je     0x411206
411204:	0b d7                	or     %edi,%edx
411206:	0f ae 5d f8          	stmxcsr -0x8(%ebp)
41120a:	8b 45 f8             	mov    -0x8(%ebp),%eax
41120d:	83 e0 c0             	and    $0xffffffc0,%eax
411210:	89 45 f4             	mov    %eax,-0xc(%ebp)
411213:	0f ae 55 f4          	ldmxcsr -0xc(%ebp)
411217:	8b 45 f8             	mov    -0x8(%ebp),%eax
41121a:	a8 3f                	test   $0x3f,%al
41121c:	74 29                	je     0x411247
41121e:	a8 01                	test   $0x1,%al
411220:	74 03                	je     0x411225
411222:	6a 10                	push   $0x10
411224:	59                   	pop    %ecx
411225:	a8 04                	test   $0x4,%al
411227:	74 03                	je     0x41122c
411229:	83 c9 08             	or     $0x8,%ecx
41122c:	a8 08                	test   $0x8,%al
41122e:	74 03                	je     0x411233
411230:	83 c9 04             	or     $0x4,%ecx
411233:	a8 10                	test   $0x10,%al
411235:	74 03                	je     0x41123a
411237:	83 c9 02             	or     $0x2,%ecx
41123a:	a8 20                	test   $0x20,%al
41123c:	74 03                	je     0x411241
41123e:	83 c9 01             	or     $0x1,%ecx
411241:	a8 02                	test   $0x2,%al
411243:	74 02                	je     0x411247
411245:	0b cf                	or     %edi,%ecx
411247:	0b ca                	or     %edx,%ecx
411249:	8b c1                	mov    %ecx,%eax
41124b:	5f                   	pop    %edi
41124c:	eb 3d                	jmp    0x41128b
41124e:	66 8b 4d fc          	mov    -0x4(%ebp),%cx
411252:	33 c0                	xor    %eax,%eax
411254:	f6 c1 3f             	test   $0x3f,%cl
411257:	74 32                	je     0x41128b
411259:	f6 c1 01             	test   $0x1,%cl
41125c:	74 03                	je     0x411261
41125e:	6a 10                	push   $0x10
411260:	58                   	pop    %eax
411261:	f6 c1 04             	test   $0x4,%cl
411264:	74 03                	je     0x411269
411266:	83 c8 08             	or     $0x8,%eax
411269:	f6 c1 08             	test   $0x8,%cl
41126c:	74 03                	je     0x411271
41126e:	83 c8 04             	or     $0x4,%eax
411271:	f6 c1 10             	test   $0x10,%cl
411274:	74 03                	je     0x411279
411276:	83 c8 02             	or     $0x2,%eax
411279:	f6 c1 20             	test   $0x20,%cl
41127c:	74 03                	je     0x411281
41127e:	83 c8 01             	or     $0x1,%eax
411281:	f6 c1 02             	test   $0x2,%cl
411284:	74 05                	je     0x41128b
411286:	0d 00 00 08 00       	or     $0x80000,%eax
41128b:	8b e5                	mov    %ebp,%esp
41128d:	5d                   	pop    %ebp
41128e:	c3                   	ret
41128f:	8b ff                	mov    %edi,%edi
411291:	55                   	push   %ebp
411292:	8b ec                	mov    %esp,%ebp
411294:	83 ec 10             	sub    $0x10,%esp
411297:	9b d9 7d f8          	fstcw  -0x8(%ebp)
41129b:	66 8b 45 f8          	mov    -0x8(%ebp),%ax
41129f:	33 c9                	xor    %ecx,%ecx
4112a1:	a8 01                	test   $0x1,%al
4112a3:	74 03                	je     0x4112a8
4112a5:	6a 10                	push   $0x10
4112a7:	59                   	pop    %ecx
4112a8:	a8 04                	test   $0x4,%al
4112aa:	74 03                	je     0x4112af
4112ac:	83 c9 08             	or     $0x8,%ecx
4112af:	a8 08                	test   $0x8,%al
4112b1:	74 03                	je     0x4112b6
4112b3:	83 c9 04             	or     $0x4,%ecx
4112b6:	a8 10                	test   $0x10,%al
4112b8:	74 03                	je     0x4112bd
4112ba:	83 c9 02             	or     $0x2,%ecx
4112bd:	a8 20                	test   $0x20,%al
4112bf:	74 03                	je     0x4112c4
4112c1:	83 c9 01             	or     $0x1,%ecx
4112c4:	a8 02                	test   $0x2,%al
4112c6:	74 06                	je     0x4112ce
4112c8:	81 c9 00 00 08 00    	or     $0x80000,%ecx
4112ce:	53                   	push   %ebx
4112cf:	56                   	push   %esi
4112d0:	0f b7 f0             	movzwl %ax,%esi
4112d3:	bb 00 0c 00 00       	mov    $0xc00,%ebx
4112d8:	8b d6                	mov    %esi,%edx
4112da:	57                   	push   %edi
4112db:	bf 00 02 00 00       	mov    $0x200,%edi
4112e0:	23 d3                	and    %ebx,%edx
4112e2:	74 26                	je     0x41130a
4112e4:	81 fa 00 04 00 00    	cmp    $0x400,%edx
4112ea:	74 18                	je     0x411304
4112ec:	81 fa 00 08 00 00    	cmp    $0x800,%edx
4112f2:	74 0c                	je     0x411300
4112f4:	3b d3                	cmp    %ebx,%edx
4112f6:	75 12                	jne    0x41130a
4112f8:	81 c9 00 03 00 00    	or     $0x300,%ecx
4112fe:	eb 0a                	jmp    0x41130a
411300:	0b cf                	or     %edi,%ecx
411302:	eb 06                	jmp    0x41130a
411304:	81 c9 00 01 00 00    	or     $0x100,%ecx
41130a:	81 e6 00 03 00 00    	and    $0x300,%esi
411310:	74 0c                	je     0x41131e
411312:	3b f7                	cmp    %edi,%esi
411314:	75 0e                	jne    0x411324
411316:	81 c9 00 00 01 00    	or     $0x10000,%ecx
41131c:	eb 06                	jmp    0x411324
41131e:	81 c9 00 00 02 00    	or     $0x20000,%ecx
411324:	ba 00 10 00 00       	mov    $0x1000,%edx
411329:	66 85 c2             	test   %ax,%dx
41132c:	74 06                	je     0x411334
41132e:	81 c9 00 00 04 00    	or     $0x40000,%ecx
411334:	8b 7d 0c             	mov    0xc(%ebp),%edi
411337:	8b f7                	mov    %edi,%esi
411339:	8b 45 08             	mov    0x8(%ebp),%eax
41133c:	f7 d6                	not    %esi
41133e:	23 f1                	and    %ecx,%esi
411340:	23 c7                	and    %edi,%eax
411342:	0b f0                	or     %eax,%esi
411344:	3b f1                	cmp    %ecx,%esi
411346:	0f 84 a6 00 00 00    	je     0x4113f2
41134c:	56                   	push   %esi
41134d:	e8 3f 02 00 00       	call   0x411591
411352:	59                   	pop    %ecx
411353:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
411357:	d9 6d fc             	fldcw  -0x4(%ebp)
41135a:	9b d9 7d fc          	fstcw  -0x4(%ebp)
41135e:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
411362:	33 f6                	xor    %esi,%esi
411364:	a8 01                	test   $0x1,%al
411366:	74 03                	je     0x41136b
411368:	6a 10                	push   $0x10
41136a:	5e                   	pop    %esi
41136b:	a8 04                	test   $0x4,%al
41136d:	74 03                	je     0x411372
41136f:	83 ce 08             	or     $0x8,%esi
411372:	a8 08                	test   $0x8,%al
411374:	74 03                	je     0x411379
411376:	83 ce 04             	or     $0x4,%esi
411379:	a8 10                	test   $0x10,%al
41137b:	74 03                	je     0x411380
41137d:	83 ce 02             	or     $0x2,%esi
411380:	a8 20                	test   $0x20,%al
411382:	74 03                	je     0x411387
411384:	83 ce 01             	or     $0x1,%esi
411387:	a8 02                	test   $0x2,%al
411389:	74 06                	je     0x411391
41138b:	81 ce 00 00 08 00    	or     $0x80000,%esi
411391:	0f b7 d0             	movzwl %ax,%edx
411394:	8b ca                	mov    %edx,%ecx
411396:	23 cb                	and    %ebx,%ecx
411398:	74 2a                	je     0x4113c4
41139a:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
4113a0:	74 1c                	je     0x4113be
4113a2:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
4113a8:	74 0c                	je     0x4113b6
4113aa:	3b cb                	cmp    %ebx,%ecx
4113ac:	75 16                	jne    0x4113c4
4113ae:	81 ce 00 03 00 00    	or     $0x300,%esi
4113b4:	eb 0e                	jmp    0x4113c4
4113b6:	81 ce 00 02 00 00    	or     $0x200,%esi
4113bc:	eb 06                	jmp    0x4113c4
4113be:	81 ce 00 01 00 00    	or     $0x100,%esi
4113c4:	81 e2 00 03 00 00    	and    $0x300,%edx
4113ca:	74 10                	je     0x4113dc
4113cc:	81 fa 00 02 00 00    	cmp    $0x200,%edx
4113d2:	75 0e                	jne    0x4113e2
4113d4:	81 ce 00 00 01 00    	or     $0x10000,%esi
4113da:	eb 06                	jmp    0x4113e2
4113dc:	81 ce 00 00 02 00    	or     $0x20000,%esi
4113e2:	ba 00 10 00 00       	mov    $0x1000,%edx
4113e7:	66 85 c2             	test   %ax,%dx
4113ea:	74 06                	je     0x4113f2
4113ec:	81 ce 00 00 04 00    	or     $0x40000,%esi
4113f2:	83 3d 14 3e 42 00 01 	cmpl   $0x1,0x423e14
4113f9:	0f 8c 89 01 00 00    	jl     0x411588
4113ff:	81 e7 1f 03 08 03    	and    $0x308031f,%edi
411405:	0f ae 5d f0          	stmxcsr -0x10(%ebp)
411409:	8b 45 f0             	mov    -0x10(%ebp),%eax
41140c:	33 c9                	xor    %ecx,%ecx
41140e:	84 c0                	test   %al,%al
411410:	79 03                	jns    0x411415
411412:	6a 10                	push   $0x10
411414:	59                   	pop    %ecx
411415:	a9 00 02 00 00       	test   $0x200,%eax
41141a:	74 03                	je     0x41141f
41141c:	83 c9 08             	or     $0x8,%ecx
41141f:	a9 00 04 00 00       	test   $0x400,%eax
411424:	74 03                	je     0x411429
411426:	83 c9 04             	or     $0x4,%ecx
411429:	a9 00 08 00 00       	test   $0x800,%eax
41142e:	74 03                	je     0x411433
411430:	83 c9 02             	or     $0x2,%ecx
411433:	85 c2                	test   %eax,%edx
411435:	74 03                	je     0x41143a
411437:	83 c9 01             	or     $0x1,%ecx
41143a:	a9 00 01 00 00       	test   $0x100,%eax
41143f:	74 06                	je     0x411447
411441:	81 c9 00 00 08 00    	or     $0x80000,%ecx
411447:	8b d0                	mov    %eax,%edx
411449:	bb 00 60 00 00       	mov    $0x6000,%ebx
41144e:	23 d3                	and    %ebx,%edx
411450:	74 2a                	je     0x41147c
411452:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
411458:	74 1c                	je     0x411476
41145a:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
411460:	74 0c                	je     0x41146e
411462:	3b d3                	cmp    %ebx,%edx
411464:	75 16                	jne    0x41147c
411466:	81 c9 00 03 00 00    	or     $0x300,%ecx
41146c:	eb 0e                	jmp    0x41147c
41146e:	81 c9 00 02 00 00    	or     $0x200,%ecx
411474:	eb 06                	jmp    0x41147c
411476:	81 c9 00 01 00 00    	or     $0x100,%ecx
41147c:	6a 40                	push   $0x40
41147e:	25 40 80 00 00       	and    $0x8040,%eax
411483:	5b                   	pop    %ebx
411484:	2b c3                	sub    %ebx,%eax
411486:	74 1b                	je     0x4114a3
411488:	2d c0 7f 00 00       	sub    $0x7fc0,%eax
41148d:	74 0c                	je     0x41149b
41148f:	2b c3                	sub    %ebx,%eax
411491:	75 16                	jne    0x4114a9
411493:	81 c9 00 00 00 01    	or     $0x1000000,%ecx
411499:	eb 0e                	jmp    0x4114a9
41149b:	81 c9 00 00 00 03    	or     $0x3000000,%ecx
4114a1:	eb 06                	jmp    0x4114a9
4114a3:	81 c9 00 00 00 02    	or     $0x2000000,%ecx
4114a9:	8b c7                	mov    %edi,%eax
4114ab:	23 7d 08             	and    0x8(%ebp),%edi
4114ae:	f7 d0                	not    %eax
4114b0:	23 c1                	and    %ecx,%eax
4114b2:	0b c7                	or     %edi,%eax
4114b4:	3b c1                	cmp    %ecx,%eax
4114b6:	0f 84 b5 00 00 00    	je     0x411571
4114bc:	50                   	push   %eax
4114bd:	e8 44 fc ff ff       	call   0x411106
4114c2:	50                   	push   %eax
4114c3:	89 45 f4             	mov    %eax,-0xc(%ebp)
4114c6:	e8 74 44 00 00       	call   0x41593f
4114cb:	59                   	pop    %ecx
4114cc:	59                   	pop    %ecx
4114cd:	0f ae 5d f4          	stmxcsr -0xc(%ebp)
4114d1:	8b 45 f4             	mov    -0xc(%ebp),%eax
4114d4:	33 c9                	xor    %ecx,%ecx
4114d6:	84 c0                	test   %al,%al
4114d8:	79 03                	jns    0x4114dd
4114da:	6a 10                	push   $0x10
4114dc:	59                   	pop    %ecx
4114dd:	a9 00 02 00 00       	test   $0x200,%eax
4114e2:	74 03                	je     0x4114e7
4114e4:	83 c9 08             	or     $0x8,%ecx
4114e7:	a9 00 04 00 00       	test   $0x400,%eax
4114ec:	74 03                	je     0x4114f1
4114ee:	83 c9 04             	or     $0x4,%ecx
4114f1:	a9 00 08 00 00       	test   $0x800,%eax
4114f6:	74 03                	je     0x4114fb
4114f8:	83 c9 02             	or     $0x2,%ecx
4114fb:	a9 00 10 00 00       	test   $0x1000,%eax
411500:	74 03                	je     0x411505
411502:	83 c9 01             	or     $0x1,%ecx
411505:	a9 00 01 00 00       	test   $0x100,%eax
41150a:	74 06                	je     0x411512
41150c:	81 c9 00 00 08 00    	or     $0x80000,%ecx
411512:	8b d0                	mov    %eax,%edx
411514:	bf 00 60 00 00       	mov    $0x6000,%edi
411519:	23 d7                	and    %edi,%edx
41151b:	74 2a                	je     0x411547
41151d:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
411523:	74 1c                	je     0x411541
411525:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
41152b:	74 0c                	je     0x411539
41152d:	3b d7                	cmp    %edi,%edx
41152f:	75 16                	jne    0x411547
411531:	81 c9 00 03 00 00    	or     $0x300,%ecx
411537:	eb 0e                	jmp    0x411547
411539:	81 c9 00 02 00 00    	or     $0x200,%ecx
41153f:	eb 06                	jmp    0x411547
411541:	81 c9 00 01 00 00    	or     $0x100,%ecx
411547:	25 40 80 00 00       	and    $0x8040,%eax
41154c:	2b c3                	sub    %ebx,%eax
41154e:	74 1b                	je     0x41156b
411550:	2d c0 7f 00 00       	sub    $0x7fc0,%eax
411555:	74 0c                	je     0x411563
411557:	2b c3                	sub    %ebx,%eax
411559:	75 16                	jne    0x411571
41155b:	81 c9 00 00 00 01    	or     $0x1000000,%ecx
411561:	eb 0e                	jmp    0x411571
411563:	81 c9 00 00 00 03    	or     $0x3000000,%ecx
411569:	eb 06                	jmp    0x411571
41156b:	81 c9 00 00 00 02    	or     $0x2000000,%ecx
411571:	8b c1                	mov    %ecx,%eax
411573:	0b ce                	or     %esi,%ecx
411575:	33 c6                	xor    %esi,%eax
411577:	a9 1f 03 08 00       	test   $0x8031f,%eax
41157c:	74 06                	je     0x411584
41157e:	81 c9 00 00 00 80    	or     $0x80000000,%ecx
411584:	8b c1                	mov    %ecx,%eax
411586:	eb 02                	jmp    0x41158a
411588:	8b c6                	mov    %esi,%eax
41158a:	5f                   	pop    %edi
41158b:	5e                   	pop    %esi
41158c:	5b                   	pop    %ebx
41158d:	8b e5                	mov    %ebp,%esp
41158f:	5d                   	pop    %ebp
411590:	c3                   	ret
411591:	8b ff                	mov    %edi,%edi
411593:	55                   	push   %ebp
411594:	8b ec                	mov    %esp,%ebp
411596:	8b 4d 08             	mov    0x8(%ebp),%ecx
411599:	33 c0                	xor    %eax,%eax
41159b:	f6 c1 10             	test   $0x10,%cl
41159e:	74 01                	je     0x4115a1
4115a0:	40                   	inc    %eax
4115a1:	f6 c1 08             	test   $0x8,%cl
4115a4:	74 03                	je     0x4115a9
4115a6:	83 c8 04             	or     $0x4,%eax