4170fa:	0b d9                	or     %ecx,%ebx
4170fc:	89 54 24 24          	mov    %edx,0x24(%esp)
417100:	89 5c 24 14          	mov    %ebx,0x14(%esp)
417104:	eb 8a                	jmp    0x417090
417106:	89 47 40             	mov    %eax,0x40(%edi)
417109:	e9 62 fd ff ff       	jmp    0x416e70
41710e:	55                   	push   %ebp
41710f:	8b ec                	mov    %esp,%ebp
417111:	81 ec 84 01 00 00    	sub    $0x184,%esp
417117:	8b c2                	mov    %edx,%eax
417119:	89 8d e0 fe ff ff    	mov    %ecx,-0x120(%ebp)
41711f:	8b 09                	mov    (%ecx),%ecx
417121:	89 85 c0 fe ff ff    	mov    %eax,-0x140(%ebp)
417127:	53                   	push   %ebx
417128:	8b 10                	mov    (%eax),%edx
41712a:	8b c1                	mov    %ecx,%eax
41712c:	c1 e8 0b             	shr    $0xb,%eax
41712f:	83 e0 01             	and    $0x1,%eax
417132:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
417139:	89 45 c4             	mov    %eax,-0x3c(%ebp)
41713c:	8b c1                	mov    %ecx,%eax
41713e:	c1 e8 09             	shr    $0x9,%eax
417141:	56                   	push   %esi
417142:	8b 75 08             	mov    0x8(%ebp),%esi
417145:	83 e0 01             	and    $0x1,%eax
417148:	89 85 24 ff ff ff    	mov    %eax,-0xdc(%ebp)
41714e:	83 f0 01             	xor    $0x1,%eax
417151:	57                   	push   %edi
417152:	33 ff                	xor    %edi,%edi
417154:	89 85 18 ff ff ff    	mov    %eax,-0xe8(%ebp)
41715a:	8b 36                	mov    (%esi),%esi
41715c:	8b df                	mov    %edi,%ebx
41715e:	6a fe                	push   $0xfffffffe
417160:	58                   	pop    %eax
417161:	89 45 a8             	mov    %eax,-0x58(%ebp)
417164:	89 45 94             	mov    %eax,-0x6c(%ebp)
417167:	89 45 ac             	mov    %eax,-0x54(%ebp)
41716a:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41716d:	0f be c1             	movsbl %cl,%eax
417170:	23 45 f4             	and    -0xc(%ebp),%eax
417173:	89 7d b0             	mov    %edi,-0x50(%ebp)
417176:	89 7d c0             	mov    %edi,-0x40(%ebp)
417179:	89 4d cc             	mov    %ecx,-0x34(%ebp)
41717c:	89 bd 64 ff ff ff    	mov    %edi,-0x9c(%ebp)
417182:	89 bd 7c ff ff ff    	mov    %edi,-0x84(%ebp)
417188:	89 55 f8             	mov    %edx,-0x8(%ebp)
41718b:	89 95 58 ff ff ff    	mov    %edx,-0xa8(%ebp)
417191:	89 95 50 ff ff ff    	mov    %edx,-0xb0(%ebp)
417197:	89 7d d0             	mov    %edi,-0x30(%ebp)
41719a:	89 bd 68 ff ff ff    	mov    %edi,-0x98(%ebp)
4171a0:	89 75 fc             	mov    %esi,-0x4(%ebp)
4171a3:	89 7d a0             	mov    %edi,-0x60(%ebp)
4171a6:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4171a9:	89 7d 88             	mov    %edi,-0x78(%ebp)
4171ac:	89 bd 78 ff ff ff    	mov    %edi,-0x88(%ebp)
4171b2:	89 7d d8             	mov    %edi,-0x28(%ebp)
4171b5:	89 7d 84             	mov    %edi,-0x7c(%ebp)
4171b8:	89 7d a4             	mov    %edi,-0x5c(%ebp)
4171bb:	89 7d 9c             	mov    %edi,-0x64(%ebp)
4171be:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
4171c4:	c7 85 4c ff ff ff ff 	movl   $0xff,-0xb4(%ebp)
4171cb:	00 00 00
4171ce:	c7 85 d4 fe ff ff 00 	movl   $0xfc00,-0x12c(%ebp)
4171d5:	fc 00 00
4171d8:	c7 85 b8 fe ff ff 00 	movl   $0xdc00,-0x148(%ebp)
4171df:	dc 00 00
4171e2:	c7 85 a8 fe ff ff 2b 	movl   $0x2b,-0x158(%ebp)
4171e9:	00 00 00
4171ec:	c7 85 d8 fe ff ff 7b 	movl   $0x7b,-0x128(%ebp)
4171f3:	00 00 00
4171f6:	c7 85 1c ff ff ff 30 	movl   $0x30,-0xe4(%ebp)
4171fd:	00 00 00
417200:	c7 85 e8 fe ff ff 29 	movl   $0x29,-0x118(%ebp)
417207:	00 00 00
41720a:	c7 85 70 ff ff ff 39 	movl   $0x39,-0x90(%ebp)
417211:	00 00 00
417214:	c7 85 f0 fe ff ff 3c 	movl   $0x3c,-0x110(%ebp)
41721b:	00 00 00
41721e:	c7 85 bc fe ff ff 52 	movl   $0x52,-0x144(%ebp)
417225:	00 00 00
417228:	c7 85 20 ff ff ff 27 	movl   $0x27,-0xe0(%ebp)
41722f:	00 00 00
417232:	c7 85 ac fe ff ff 2d 	movl   $0x2d,-0x154(%ebp)
417239:	00 00 00
41723c:	c7 85 00 ff ff ff 10 	movl   $0x10,-0x100(%ebp)
417243:	00 00 00
417246:	c7 85 ec fe ff ff 17 	movl   $0x17,-0x114(%ebp)
41724d:	00 00 00
417250:	c7 85 b4 fe ff ff 20 	movl   $0x20,-0x14c(%ebp)
417257:	00 00 00
41725a:	c7 85 fc fe ff ff 1d 	movl   $0x1d,-0x104(%ebp)
417261:	00 00 00
417264:	c7 85 cc fe ff ff 1e 	movl   $0x1e,-0x134(%ebp)
41726b:	00 00 00
41726e:	c7 85 f4 fe ff ff 1f 	movl   $0x1f,-0x10c(%ebp)
417275:	00 00 00
417278:	c7 85 c4 fe ff ff 6e 	movl   $0x6e,-0x13c(%ebp)
41727f:	00 00 00
417282:	c7 85 e4 fe ff ff 6f 	movl   $0x6f,-0x11c(%ebp)
417289:	00 00 00
41728c:	c7 85 b0 fe ff ff 70 	movl   $0x70,-0x150(%ebp)
417293:	00 00 00
417296:	c7 85 dc fe ff ff 71 	movl   $0x71,-0x124(%ebp)
41729d:	00 00 00
4172a0:	c7 85 04 ff ff ff 73 	movl   $0x73,-0xfc(%ebp)
4172a7:	00 00 00
4172aa:	c7 85 f8 fe ff ff 0f 	movl   $0xf,-0x108(%ebp)
4172b1:	00 00 00
4172b4:	0f b7 3e             	movzwl (%esi),%edi
4172b7:	89 7d e8             	mov    %edi,-0x18(%ebp)
4172ba:	85 ff                	test   %edi,%edi
4172bc:	0f 84 65 09 00 00    	je     0x417c27
4172c2:	8b 45 28             	mov    0x28(%ebp),%eax
4172c5:	8b 48 3c             	mov    0x3c(%eax),%ecx
4172c8:	8b 40 10             	mov    0x10(%eax),%eax
4172cb:	8d 04 48             	lea    (%eax,%ecx,2),%eax
4172ce:	05 38 ff ff ff       	add    $0xffffff38,%eax
4172d3:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
4172d7:	74 4f                	je     0x417328
4172d9:	3b d0                	cmp    %eax,%edx
4172db:	0f 87 c8 d3 03 00    	ja     0x4546a9
4172e1:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
4172e7:	3b d0                	cmp    %eax,%edx
4172e9:	0f 82 5b 0f 00 00    	jb     0x41824a
4172ef:	8b ca                	mov    %edx,%ecx
4172f1:	2b c8                	sub    %eax,%ecx
4172f3:	8b 45 2c             	mov    0x2c(%ebp),%eax
4172f6:	d1 f9                	sar    $1,%ecx
4172f8:	8b 10                	mov    (%eax),%edx
4172fa:	b8 eb ff ff 7f       	mov    $0x7fffffeb,%eax
4172ff:	2b c2                	sub    %edx,%eax
417301:	3b c1                	cmp    %ecx,%eax
417303:	0f 8c f8 d2 03 00    	jl     0x454601
417309:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
41730c:	8b 4d 2c             	mov    0x2c(%ebp),%ecx
41730f:	89 01                	mov    %eax,(%ecx)
417311:	85 db                	test   %ebx,%ebx
417313:	74 21                	je     0x417336
417315:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
41731b:	3b d9                	cmp    %ecx,%ebx
41731d:	0f 87 94 02 00 00    	ja     0x4175b7
417323:	8b 55 f8             	mov    -0x8(%ebp),%edx
417326:	eb 17                	jmp    0x41733f
417328:	8b 4d 28             	mov    0x28(%ebp),%ecx
41732b:	39 41 20             	cmp    %eax,0x20(%ecx)
41732e:	0f 87 75 d3 03 00    	ja     0x4546a9
417334:	eb 12                	jmp    0x417348
417336:	8b 95 50 ff ff ff    	mov    -0xb0(%ebp),%edx
41733c:	89 55 f8             	mov    %edx,-0x8(%ebp)
41733f:	8b 4d 28             	mov    0x28(%ebp),%ecx
417342:	89 95 58 ff ff ff    	mov    %edx,-0xa8(%ebp)
417348:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
41734c:	0f 85 c7 a8 03 00    	jne    0x451c19
417352:	8b 55 cc             	mov    -0x34(%ebp),%edx
417355:	8b da                	mov    %edx,%ebx
417357:	83 e3 08             	and    $0x8,%ebx
41735a:	89 5d 98             	mov    %ebx,-0x68(%ebp)
41735d:	0f 85 f1 0e 00 00    	jne    0x418254
417363:	6a 2a                	push   $0x2a
417365:	58                   	pop    %eax
417366:	3b f8                	cmp    %eax,%edi
417368:	0f 84 0f 05 00 00    	je     0x41787d
41736e:	6a 2b                	push   $0x2b
417370:	58                   	pop    %eax
417371:	3b f8                	cmp    %eax,%edi
417373:	0f 84 04 05 00 00    	je     0x41787d
417379:	6a 3f                	push   $0x3f
41737b:	58                   	pop    %eax
41737c:	3b f8                	cmp    %eax,%edi
41737e:	0f 84 f9 04 00 00    	je     0x41787d
417384:	6a 7b                	push   $0x7b
417386:	58                   	pop    %eax
417387:	3b f8                	cmp    %eax,%edi
417389:	0f 84 fa a9 03 00    	je     0x451d89
41738f:	33 c0                	xor    %eax,%eax
417391:	39 45 88             	cmp    %eax,-0x78(%ebp)
417394:	8b c8                	mov    %eax,%ecx
417396:	8b 45 a0             	mov    -0x60(%ebp),%eax
417399:	0f 85 02 aa 03 00    	jne    0x451da1
41739f:	f7 c2 00 40 00 00    	test   $0x4000,%edx
4173a5:	0f 85 37 aa 03 00    	jne    0x451de2
4173ab:	8b 55 f8             	mov    -0x8(%ebp),%edx
4173ae:	6a 3f                	push   $0x3f
4173b0:	58                   	pop    %eax
4173b1:	3b f8                	cmp    %eax,%edi
4173b3:	0f 87 72 01 00 00    	ja     0x41752b
4173b9:	0f 84 3e 07 00 00    	je     0x417afd
4173bf:	8b c7                	mov    %edi,%eax
4173c1:	33 c9                	xor    %ecx,%ecx
4173c3:	2b c1                	sub    %ecx,%eax
4173c5:	0f 84 90 01 00 00    	je     0x41755b
4173cb:	83 e8 24             	sub    $0x24,%eax
4173ce:	0f 84 0f b5 03 00    	je     0x4528e3
4173d4:	83 e8 04             	sub    $0x4,%eax
4173d7:	0f 84 0e 05 00 00    	je     0x4178eb
4173dd:	48                   	dec    %eax
4173de:	0f 84 77 01 00 00    	je     0x41755b
4173e4:	48                   	dec    %eax
4173e5:	0f 84 6d 08 00 00    	je     0x417c58
4173eb:	48                   	dec    %eax
4173ec:	0f 84 6c 0e 00 00    	je     0x41825e
4173f2:	83 e8 03             	sub    $0x3,%eax
4173f5:	0f 84 ee 0b 00 00    	je     0x417fe9
4173fb:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
4173ff:	8b 55 f4             	mov    -0xc(%ebp),%edx
417402:	8b da                	mov    %edx,%ebx
417404:	66 89 bd 08 ff ff ff 	mov    %di,-0xf8(%ebp)
41740b:	74 14                	je     0x417421
41740d:	8b c7                	mov    %edi,%eax
41740f:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
417414:	23 c1                	and    %ecx,%eax
417416:	3d 00 d8 00 00       	cmp    $0xd800,%eax
41741b:	0f 84 b7 bf 03 00    	je     0x4533d8
417421:	6a 02                	push   $0x2
417423:	5e                   	pop    %esi
417424:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
417428:	8b 45 f8             	mov    -0x8(%ebp),%eax
41742b:	89 45 f0             	mov    %eax,-0x10(%ebp)
41742e:	8b 45 cc             	mov    -0x34(%ebp),%eax
417431:	74 4e                	je     0x417481
417433:	84 c2                	test   %al,%dl
417435:	74 4a                	je     0x417481
417437:	0f b7 cf             	movzwl %di,%ecx
41743a:	ba 00 fc 00 00       	mov    $0xfc00,%edx
41743f:	8b c1                	mov    %ecx,%eax
417441:	23 c2                	and    %edx,%eax
417443:	ba 00 d8 00 00       	mov    $0xd800,%edx
417448:	3b c2                	cmp    %edx,%eax
41744a:	0f 84 ce cf 03 00    	je     0x45441e
417450:	8b c1                	mov    %ecx,%eax
417452:	b9 80 00 00 00       	mov    $0x80,%ecx
417457:	99                   	cltd
417458:	f7 f9                	idiv   %ecx
41745a:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
417461:	c1 e0 07             	shl    $0x7,%eax
417464:	03 c2                	add    %edx,%eax
417466:	0f b7 04 45 40 58 4a 	movzwl 0x4a5840(,%eax,2),%eax
41746d:	00
41746e:	0f b6 04 c5 53 2f 4a 	movzbl 0x4a2f53(,%eax,8),%eax
417475:	00
417476:	85 c0                	test   %eax,%eax
417478:	0f 85 f3 0a 00 00    	jne    0x417f71
41747e:	8b 45 cc             	mov    -0x34(%ebp),%eax
417481:	8b 4d f4             	mov    -0xc(%ebp),%ecx
417484:	84 c1                	test   %al,%cl
417486:	8b 7d f8             	mov    -0x8(%ebp),%edi
417489:	6a 00                	push   $0x0
41748b:	58                   	pop    %eax
41748c:	0f 95 c0             	setne  %al
41748f:	6a 1d                	push   $0x1d
417491:	59                   	pop    %ecx
417492:	03 c1                	add    %ecx,%eax
417494:	66 89 07             	mov    %ax,(%edi)
417497:	03 fe                	add    %esi,%edi
417499:	89 7d f8             	mov    %edi,-0x8(%ebp)
41749c:	85 db                	test   %ebx,%ebx
41749e:	74 1a                	je     0x4174ba
4174a0:	8b cb                	mov    %ebx,%ecx
4174a2:	8d b5 08 ff ff ff    	lea    -0xf8(%ebp),%esi
4174a8:	d1 e9                	shr    $1,%ecx
4174aa:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4174ac:	13 c9                	adc    %ecx,%ecx
4174ae:	66 f3 a5             	rep movsw %ds:(%esi),%es:(%edi)
4174b1:	8b 7d f8             	mov    -0x8(%ebp),%edi
4174b4:	8d 3c 5f             	lea    (%edi,%ebx,2),%edi
4174b7:	89 7d f8             	mov    %edi,-0x8(%ebp)
4174ba:	8b 45 e8             	mov    -0x18(%ebp),%eax
4174bd:	6a 0d                	push   $0xd
4174bf:	59                   	pop    %ecx
4174c0:	66 3b c1             	cmp    %cx,%ax
4174c3:	0f 84 81 cf 03 00    	je     0x45444a
4174c9:	6a 0a                	push   $0xa
4174cb:	59                   	pop    %ecx
4174cc:	66 3b c1             	cmp    %cx,%ax
4174cf:	0f 84 75 cf 03 00    	je     0x45444a
4174d5:	8b 4d 28             	mov    0x28(%ebp),%ecx
4174d8:	8b 55 d4             	mov    -0x2c(%ebp),%edx
4174db:	83 fa fe             	cmp    $0xfffffffe,%edx
4174de:	0f 84 59 03 00 00    	je     0x41783d
4174e4:	8b 45 9c             	mov    -0x64(%ebp),%eax
4174e7:	89 45 84             	mov    %eax,-0x7c(%ebp)
4174ea:	8b 45 a4             	mov    -0x5c(%ebp),%eax
4174ed:	89 45 d8             	mov    %eax,-0x28(%ebp)
4174f0:	8b 45 ac             	mov    -0x54(%ebp),%eax
4174f3:	89 55 94             	mov    %edx,-0x6c(%ebp)
4174f6:	89 45 a8             	mov    %eax,-0x58(%ebp)
4174f9:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
4174fc:	0f 85 83 cf 03 00    	jne    0x454485
417502:	0f b7 47 fe          	movzwl -0x2(%edi),%eax
417506:	89 45 a4             	mov    %eax,-0x5c(%ebp)
417509:	8b 41 68             	mov    0x68(%ecx),%eax
41750c:	0b 85 74 ff ff ff    	or     -0x8c(%ebp),%eax
417512:	89 45 ac             	mov    %eax,-0x54(%ebp)
417515:	8b 5d f0             	mov    -0x10(%ebp),%ebx
417518:	8b 75 fc             	mov    -0x4(%ebp),%esi
41751b:	8b 55 f8             	mov    -0x8(%ebp),%edx
41751e:	6a 02                	push   $0x2
417520:	58                   	pop    %eax
417521:	03 f0                	add    %eax,%esi
417523:	89 75 fc             	mov    %esi,-0x4(%ebp)
417526:	e9 89 fd ff ff       	jmp    0x4172b4
41752b:	8b c7                	mov    %edi,%eax
41752d:	83 e8 5b             	sub    $0x5b,%eax
417530:	0f 84 b8 00 00 00    	je     0x4175ee
417536:	48                   	dec    %eax
417537:	0f 84 4b 03 00 00    	je     0x417888
41753d:	48                   	dec    %eax
41753e:	0f 84 76 be 03 00    	je     0x4533ba
417544:	48                   	dec    %eax
417545:	0f 84 48 be 03 00    	je     0x453393
41754b:	83 e8 1d             	sub    $0x1d,%eax
41754e:	0f 84 a3 b3 03 00    	je     0x4528f7
417554:	48                   	dec    %eax
417555:	0f 85 a0 fe ff ff    	jne    0x4173fb
41755b:	8b 45 10             	mov    0x10(%ebp),%eax
41755e:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
417561:	8b 5d 2c             	mov    0x2c(%ebp),%ebx
417564:	89 08                	mov    %ecx,(%eax)
417566:	8b 45 14             	mov    0x14(%ebp),%eax
417569:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
41756c:	89 08                	mov    %ecx,(%eax)
41756e:	8b 45 18             	mov    0x18(%ebp),%eax
417571:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
417574:	89 08                	mov    %ecx,(%eax)
417576:	8b 45 1c             	mov    0x1c(%ebp),%eax
417579:	8b 4d ac             	mov    -0x54(%ebp),%ecx
41757c:	89 08                	mov    %ecx,(%eax)
41757e:	8b 85 c0 fe ff ff    	mov    -0x140(%ebp),%eax
417584:	89 10                	mov    %edx,(%eax)
417586:	8b 45 08             	mov    0x8(%ebp),%eax
417589:	89 30                	mov    %esi,(%eax)
41758b:	85 db                	test   %ebx,%ebx
41758d:	74 1e                	je     0x4175ad
41758f:	2b 95 58 ff ff ff    	sub    -0xa8(%ebp),%edx
417595:	b9 eb ff ff 7f       	mov    $0x7fffffeb,%ecx
41759a:	8b 03                	mov    (%ebx),%eax
41759c:	2b c8                	sub    %eax,%ecx
41759e:	d1 fa                	sar    $1,%edx
4175a0:	3b ca                	cmp    %edx,%ecx
4175a2:	0f 8c 59 d0 03 00    	jl     0x454601
4175a8:	8d 0c 10             	lea    (%eax,%edx,1),%ecx
4175ab:	89 0b                	mov    %ecx,(%ebx)
4175ad:	8b 45 f4             	mov    -0xc(%ebp),%eax
4175b0:	5f                   	pop    %edi
4175b1:	5e                   	pop    %esi
4175b2:	5b                   	pop    %ebx
4175b3:	8b e5                	mov    %ebp,%esp
4175b5:	5d                   	pop    %ebp
4175b6:	c3                   	ret
4175b7:	8b 45 f8             	mov    -0x8(%ebp),%eax