4170cd:	0f b7 d0             	movzwl %ax,%edx
4170d0:	8b ca                	mov    %edx,%ecx
4170d2:	23 cb                	and    %ebx,%ecx
4170d4:	74 2a                	je     0x417100
4170d6:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
4170dc:	74 1c                	je     0x4170fa
4170de:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
4170e4:	74 0c                	je     0x4170f2
4170e6:	3b cb                	cmp    %ebx,%ecx
4170e8:	75 16                	jne    0x417100
4170ea:	81 ce 00 03 00 00    	or     $0x300,%esi
4170f0:	eb 0e                	jmp    0x417100
4170f2:	81 ce 00 02 00 00    	or     $0x200,%esi
4170f8:	eb 06                	jmp    0x417100
4170fa:	81 ce 00 01 00 00    	or     $0x100,%esi
417100:	81 e2 00 03 00 00    	and    $0x300,%edx
417106:	74 10                	je     0x417118
417108:	81 fa 00 02 00 00    	cmp    $0x200,%edx
41710e:	75 0e                	jne    0x41711e
417110:	81 ce 00 00 01 00    	or     $0x10000,%esi
417116:	eb 06                	jmp    0x41711e
417118:	81 ce 00 00 02 00    	or     $0x20000,%esi
41711e:	ba 00 10 00 00       	mov    $0x1000,%edx
417123:	85 c2                	test   %eax,%edx
417125:	74 06                	je     0x41712d
417127:	81 ce 00 00 04 00    	or     $0x40000,%esi
41712d:	83 3d d0 20 42 00 01 	cmpl   $0x1,0x4220d0
417134:	0f 8c 89 01 00 00    	jl     0x4172c3
41713a:	81 e7 1f 03 08 03    	and    $0x308031f,%edi
417140:	0f ae 5d f4          	stmxcsr -0xc(%ebp)
417144:	8b 45 f4             	mov    -0xc(%ebp),%eax
417147:	33 c9                	xor    %ecx,%ecx
417149:	84 c0                	test   %al,%al
41714b:	79 03                	jns    0x417150
41714d:	6a 10                	push   $0x10
41714f:	59                   	pop    %ecx
417150:	a9 00 02 00 00       	test   $0x200,%eax
417155:	74 03                	je     0x41715a
417157:	83 c9 08             	or     $0x8,%ecx
41715a:	a9 00 04 00 00       	test   $0x400,%eax
41715f:	74 03                	je     0x417164
417161:	83 c9 04             	or     $0x4,%ecx
417164:	a9 00 08 00 00       	test   $0x800,%eax
417169:	74 03                	je     0x41716e
41716b:	83 c9 02             	or     $0x2,%ecx
41716e:	85 c2                	test   %eax,%edx
417170:	74 03                	je     0x417175
417172:	83 c9 01             	or     $0x1,%ecx
417175:	a9 00 01 00 00       	test   $0x100,%eax
41717a:	74 06                	je     0x417182
41717c:	81 c9 00 00 08 00    	or     $0x80000,%ecx
417182:	8b d0                	mov    %eax,%edx
417184:	bb 00 60 00 00       	mov    $0x6000,%ebx
417189:	23 d3                	and    %ebx,%edx
41718b:	74 2a                	je     0x4171b7
41718d:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
417193:	74 1c                	je     0x4171b1
417195:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
41719b:	74 0c                	je     0x4171a9
41719d:	3b d3                	cmp    %ebx,%edx
41719f:	75 16                	jne    0x4171b7
4171a1:	81 c9 00 03 00 00    	or     $0x300,%ecx
4171a7:	eb 0e                	jmp    0x4171b7
4171a9:	81 c9 00 02 00 00    	or     $0x200,%ecx
4171af:	eb 06                	jmp    0x4171b7
4171b1:	81 c9 00 01 00 00    	or     $0x100,%ecx
4171b7:	6a 40                	push   $0x40
4171b9:	25 40 80 00 00       	and    $0x8040,%eax
4171be:	5b                   	pop    %ebx
4171bf:	2b c3                	sub    %ebx,%eax
4171c1:	74 1b                	je     0x4171de
4171c3:	2d c0 7f 00 00       	sub    $0x7fc0,%eax
4171c8:	74 0c                	je     0x4171d6
4171ca:	2b c3                	sub    %ebx,%eax
4171cc:	75 16                	jne    0x4171e4
4171ce:	81 c9 00 00 00 01    	or     $0x1000000,%ecx
4171d4:	eb 0e                	jmp    0x4171e4
4171d6:	81 c9 00 00 00 03    	or     $0x3000000,%ecx
4171dc:	eb 06                	jmp    0x4171e4
4171de:	81 c9 00 00 00 02    	or     $0x2000000,%ecx
4171e4:	8b c7                	mov    %edi,%eax
4171e6:	23 7d 08             	and    0x8(%ebp),%edi
4171e9:	f7 d0                	not    %eax
4171eb:	23 c1                	and    %ecx,%eax
4171ed:	0b c7                	or     %edi,%eax
4171ef:	3b c1                	cmp    %ecx,%eax
4171f1:	0f 84 b5 00 00 00    	je     0x4172ac
4171f7:	50                   	push   %eax
4171f8:	e8 24 fd ff ff       	call   0x416f21
4171fd:	50                   	push   %eax
4171fe:	89 45 0c             	mov    %eax,0xc(%ebp)
417201:	e8 21 93 ff ff       	call   0x410527
417206:	59                   	pop    %ecx
417207:	59                   	pop    %ecx
417208:	0f ae 5d 0c          	stmxcsr 0xc(%ebp)
41720c:	8b 45 0c             	mov    0xc(%ebp),%eax
41720f:	33 c9                	xor    %ecx,%ecx
417211:	84 c0                	test   %al,%al
417213:	79 03                	jns    0x417218
417215:	6a 10                	push   $0x10
417217:	59                   	pop    %ecx
417218:	a9 00 02 00 00       	test   $0x200,%eax
41721d:	74 03                	je     0x417222
41721f:	83 c9 08             	or     $0x8,%ecx
417222:	a9 00 04 00 00       	test   $0x400,%eax
417227:	74 03                	je     0x41722c
417229:	83 c9 04             	or     $0x4,%ecx
41722c:	a9 00 08 00 00       	test   $0x800,%eax
417231:	74 03                	je     0x417236
417233:	83 c9 02             	or     $0x2,%ecx
417236:	a9 00 10 00 00       	test   $0x1000,%eax
41723b:	74 03                	je     0x417240
41723d:	83 c9 01             	or     $0x1,%ecx
417240:	a9 00 01 00 00       	test   $0x100,%eax
417245:	74 06                	je     0x41724d
417247:	81 c9 00 00 08 00    	or     $0x80000,%ecx
41724d:	8b d0                	mov    %eax,%edx
41724f:	bf 00 60 00 00       	mov    $0x6000,%edi
417254:	23 d7                	and    %edi,%edx
417256:	74 2a                	je     0x417282
417258:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
41725e:	74 1c                	je     0x41727c
417260:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
417266:	74 0c                	je     0x417274
417268:	3b d7                	cmp    %edi,%edx
41726a:	75 16                	jne    0x417282
41726c:	81 c9 00 03 00 00    	or     $0x300,%ecx
417272:	eb 0e                	jmp    0x417282
417274:	81 c9 00 02 00 00    	or     $0x200,%ecx
41727a:	eb 06                	jmp    0x417282
41727c:	81 c9 00 01 00 00    	or     $0x100,%ecx
417282:	25 40 80 00 00       	and    $0x8040,%eax
417287:	2b c3                	sub    %ebx,%eax
417289:	74 1b                	je     0x4172a6
41728b:	2d c0 7f 00 00       	sub    $0x7fc0,%eax
417290:	74 0c                	je     0x41729e
417292:	2b c3                	sub    %ebx,%eax
417294:	75 16                	jne    0x4172ac
417296:	81 c9 00 00 00 01    	or     $0x1000000,%ecx
41729c:	eb 0e                	jmp    0x4172ac
41729e:	81 c9 00 00 00 03    	or     $0x3000000,%ecx
4172a4:	eb 06                	jmp    0x4172ac
4172a6:	81 c9 00 00 00 02    	or     $0x2000000,%ecx
4172ac:	8b c1                	mov    %ecx,%eax
4172ae:	33 c6                	xor    %esi,%eax
4172b0:	0b ce                	or     %esi,%ecx
4172b2:	a9 1f 03 08 00       	test   $0x8031f,%eax
4172b7:	74 06                	je     0x4172bf
4172b9:	81 c9 00 00 00 80    	or     $0x80000000,%ecx
4172bf:	8b c1                	mov    %ecx,%eax
4172c1:	eb 02                	jmp    0x4172c5
4172c3:	8b c6                	mov    %esi,%eax
4172c5:	5f                   	pop    %edi
4172c6:	5e                   	pop    %esi
4172c7:	5b                   	pop    %ebx
4172c8:	c9                   	leave
4172c9:	c3                   	ret
4172ca:	55                   	push   %ebp
4172cb:	8b ec                	mov    %esp,%ebp
4172cd:	8b 4d 08             	mov    0x8(%ebp),%ecx
4172d0:	33 c0                	xor    %eax,%eax
4172d2:	f6 c1 10             	test   $0x10,%cl
4172d5:	74 01                	je     0x4172d8
4172d7:	40                   	inc    %eax
4172d8:	f6 c1 08             	test   $0x8,%cl
4172db:	74 03                	je     0x4172e0
4172dd:	83 c8 04             	or     $0x4,%eax
4172e0:	f6 c1 04             	test   $0x4,%cl
4172e3:	74 03                	je     0x4172e8
4172e5:	83 c8 08             	or     $0x8,%eax
4172e8:	f6 c1 02             	test   $0x2,%cl
4172eb:	74 03                	je     0x4172f0
4172ed:	83 c8 10             	or     $0x10,%eax
4172f0:	f6 c1 01             	test   $0x1,%cl
4172f3:	74 03                	je     0x4172f8
4172f5:	83 c8 20             	or     $0x20,%eax
4172f8:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
4172fe:	74 03                	je     0x417303
417300:	83 c8 02             	or     $0x2,%eax
417303:	56                   	push   %esi
417304:	8b d1                	mov    %ecx,%edx
417306:	be 00 03 00 00       	mov    $0x300,%esi
41730b:	57                   	push   %edi
41730c:	bf 00 02 00 00       	mov    $0x200,%edi
417311:	23 d6                	and    %esi,%edx
417313:	74 23                	je     0x417338
417315:	81 fa 00 01 00 00    	cmp    $0x100,%edx
41731b:	74 16                	je     0x417333
41731d:	3b d7                	cmp    %edi,%edx
41731f:	74 0b                	je     0x41732c
417321:	3b d6                	cmp    %esi,%edx
417323:	75 13                	jne    0x417338
417325:	0d 00 0c 00 00       	or     $0xc00,%eax
41732a:	eb 0c                	jmp    0x417338
41732c:	0d 00 08 00 00       	or     $0x800,%eax
417331:	eb 05                	jmp    0x417338
417333:	0d 00 04 00 00       	or     $0x400,%eax
417338:	8b d1                	mov    %ecx,%edx
41733a:	81 e2 00 00 03 00    	and    $0x30000,%edx
417340:	74 0c                	je     0x41734e
417342:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
417348:	75 06                	jne    0x417350
41734a:	0b c7                	or     %edi,%eax
41734c:	eb 02                	jmp    0x417350
41734e:	0b c6                	or     %esi,%eax
417350:	5f                   	pop    %edi
417351:	5e                   	pop    %esi
417352:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
417358:	74 05                	je     0x41735f
41735a:	0d 00 10 00 00       	or     $0x1000,%eax
41735f:	5d                   	pop    %ebp
417360:	c3                   	ret
417361:	55                   	push   %ebp
417362:	8b ec                	mov    %esp,%ebp
417364:	8b 45 0c             	mov    0xc(%ebp),%eax
417367:	8b 4d 08             	mov    0x8(%ebp),%ecx
41736a:	83 ec 0c             	sub    $0xc,%esp
41736d:	85 c0                	test   %eax,%eax
41736f:	74 02                	je     0x417373
417371:	89 08                	mov    %ecx,(%eax)
417373:	85 c9                	test   %ecx,%ecx
417375:	75 14                	jne    0x41738b
417377:	e8 01 0e ff ff       	call   0x40817d
41737c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
417382:	e8 6e 42 ff ff       	call   0x40b5f5
417387:	33 c0                	xor    %eax,%eax
417389:	c9                   	leave
41738a:	c3                   	ret
41738b:	8b 45 10             	mov    0x10(%ebp),%eax
41738e:	85 c0                	test   %eax,%eax
417390:	74 0a                	je     0x41739c
417392:	83 f8 02             	cmp    $0x2,%eax
417395:	7c e0                	jl     0x417377
417397:	83 f8 24             	cmp    $0x24,%eax
41739a:	7f db                	jg     0x417377
41739c:	53                   	push   %ebx
41739d:	56                   	push   %esi
41739e:	57                   	push   %edi
41739f:	0f b7 39             	movzwl (%ecx),%edi
4173a2:	33 db                	xor    %ebx,%ebx
4173a4:	8d 71 02             	lea    0x2(%ecx),%esi
4173a7:	eb 06                	jmp    0x4173af
4173a9:	0f b7 3e             	movzwl (%esi),%edi
4173ac:	83 c6 02             	add    $0x2,%esi
4173af:	6a 08                	push   $0x8
4173b1:	57                   	push   %edi
4173b2:	e8 30 da ff ff       	call   0x414de7
4173b7:	59                   	pop    %ecx
4173b8:	59                   	pop    %ecx
4173b9:	85 c0                	test   %eax,%eax
4173bb:	75 ec                	jne    0x4173a9
4173bd:	8b 45 14             	mov    0x14(%ebp),%eax
4173c0:	66 83 ff 2d          	cmp    $0x2d,%di
4173c4:	75 05                	jne    0x4173cb
4173c6:	83 c8 02             	or     $0x2,%eax
4173c9:	eb 06                	jmp    0x4173d1
4173cb:	66 83 ff 2b          	cmp    $0x2b,%di
4173cf:	75 06                	jne    0x4173d7
4173d1:	0f b7 3e             	movzwl (%esi),%edi
4173d4:	83 c6 02             	add    $0x2,%esi
4173d7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4173da:	8b 45 10             	mov    0x10(%ebp),%eax
4173dd:	85 c0                	test   %eax,%eax
4173df:	75 36                	jne    0x417417
4173e1:	57                   	push   %edi
4173e2:	e8 50 03 00 00       	call   0x417737
4173e7:	59                   	pop    %ecx
4173e8:	85 c0                	test   %eax,%eax
4173ea:	74 09                	je     0x4173f5
4173ec:	c7 45 10 0a 00 00 00 	movl   $0xa,0x10(%ebp)
4173f3:	eb 4c                	jmp    0x417441
4173f5:	0f b7 06             	movzwl (%esi),%eax
4173f8:	6a 78                	push   $0x78
4173fa:	59                   	pop    %ecx
4173fb:	66 3b c1             	cmp    %cx,%ax
4173fe:	74 11                	je     0x417411
417400:	6a 58                	push   $0x58
417402:	59                   	pop    %ecx
417403:	66 3b c1             	cmp    %cx,%ax
417406:	74 09                	je     0x417411
417408:	c7 45 10 08 00 00 00 	movl   $0x8,0x10(%ebp)
41740f:	eb 30                	jmp    0x417441
417411:	6a 10                	push   $0x10
417413:	58                   	pop    %eax
417414:	89 45 10             	mov    %eax,0x10(%ebp)
417417:	83 f8 10             	cmp    $0x10,%eax
41741a:	75 25                	jne    0x417441
41741c:	57                   	push   %edi
41741d:	e8 15 03 00 00       	call   0x417737
417422:	59                   	pop    %ecx
417423:	85 c0                	test   %eax,%eax
417425:	75 1a                	jne    0x417441
417427:	0f b7 06             	movzwl (%esi),%eax
41742a:	6a 78                	push   $0x78
41742c:	59                   	pop    %ecx
41742d:	66 3b c1             	cmp    %cx,%ax
417430:	74 08                	je     0x41743a
417432:	6a 58                	push   $0x58
417434:	59                   	pop    %ecx
417435:	66 3b c1             	cmp    %cx,%ax
417438:	75 07                	jne    0x417441
41743a:	0f b7 7e 02          	movzwl 0x2(%esi),%edi
41743e:	83 c6 04             	add    $0x4,%esi
417441:	83 c8 ff             	or     $0xffffffff,%eax
417444:	33 d2                	xor    %edx,%edx
417446:	f7 75 10             	divl   0x10(%ebp)
417449:	89 55 f4             	mov    %edx,-0xc(%ebp)
41744c:	89 45 f8             	mov    %eax,-0x8(%ebp)
41744f:	57                   	push   %edi
417450:	e8 e2 02 00 00       	call   0x417737
417455:	8b d0                	mov    %eax,%edx
417457:	59                   	pop    %ecx
417458:	83 fa ff             	cmp    $0xffffffff,%edx
41745b:	75 48                	jne    0x4174a5
41745d:	6a 41                	push   $0x41
41745f:	58                   	pop    %eax
417460:	66 3b c7             	cmp    %di,%ax
417463:	77 06                	ja     0x41746b
417465:	66 83 ff 5a          	cmp    $0x5a,%di
417469:	76 26                	jbe    0x417491
41746b:	6a 19                	push   $0x19
41746d:	8d 47 9f             	lea    -0x61(%edi),%eax
417470:	59                   	pop    %ecx
417471:	66 3b c1             	cmp    %cx,%ax
417474:	76 1e                	jbe    0x417494
417476:	8b 45 fc             	mov    -0x4(%ebp),%eax
417479:	8b 7d 0c             	mov    0xc(%ebp),%edi
41747c:	83 ee 02             	sub    $0x2,%esi
41747f:	a8 08                	test   $0x8,%al
417481:	75 5f                	jne    0x4174e2
417483:	85 ff                	test   %edi,%edi
417485:	74 03                	je     0x41748a
417487:	8b 75 08             	mov    0x8(%ebp),%esi
41748a:	33 db                	xor    %ebx,%ebx
41748c:	e9 99 00 00 00       	jmp    0x41752a
417491:	6a 19                	push   $0x19
417493:	59                   	pop    %ecx
417494:	8d 47 9f             	lea    -0x61(%edi),%eax
417497:	0f b7 d7             	movzwl %di,%edx
41749a:	66 3b c1             	cmp    %cx,%ax
41749d:	77 03                	ja     0x4174a2
41749f:	83 ea 20             	sub    $0x20,%edx
4174a2:	83 c2 c9             	add    $0xffffffc9,%edx
4174a5:	8b 4d 10             	mov    0x10(%ebp),%ecx
4174a8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4174ab:	3b d1                	cmp    %ecx,%edx
4174ad:	73 ca                	jae    0x417479
4174af:	8b 7d f8             	mov    -0x8(%ebp),%edi
4174b2:	83 c8 08             	or     $0x8,%eax
4174b5:	89 45 fc             	mov    %eax,-0x4(%ebp)