41608f:	c1 e6 06             	shl    $0x6,%esi
416092:	03 c6                	add    %esi,%eax
416094:	8a 48 04             	mov    0x4(%eax),%cl
416097:	f6 c1 01             	test   $0x1,%cl
41609a:	75 14                	jne    0x4160b0
41609c:	e8 47 fa fe ff       	call   0x405ae8
4160a1:	89 18                	mov    %ebx,(%eax)
4160a3:	e8 2d fa fe ff       	call   0x405ad5
4160a8:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4160ae:	eb 6a                	jmp    0x41611a
4160b0:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
4160b6:	77 50                	ja     0x416108
4160b8:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4160bb:	3b d3                	cmp    %ebx,%edx
4160bd:	0f 84 08 05 00 00    	je     0x4165cb
4160c3:	f6 c1 02             	test   $0x2,%cl
4160c6:	0f 85 ff 04 00 00    	jne    0x4165cb
4160cc:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
4160cf:	74 37                	je     0x416108
4160d1:	8a 40 24             	mov    0x24(%eax),%al
4160d4:	02 c0                	add    %al,%al
4160d6:	d0 f8                	sar    $1,%al
4160d8:	88 45 fe             	mov    %al,-0x2(%ebp)
4160db:	0f be c0             	movsbl %al,%eax
4160de:	48                   	dec    %eax
4160df:	6a 04                	push   $0x4
4160e1:	59                   	pop    %ecx
4160e2:	74 1c                	je     0x416100
4160e4:	48                   	dec    %eax
4160e5:	75 0e                	jne    0x4160f5
4160e7:	8b c2                	mov    %edx,%eax
4160e9:	f7 d0                	not    %eax
4160eb:	a8 01                	test   $0x1,%al
4160ed:	74 19                	je     0x416108
4160ef:	83 e2 fe             	and    $0xfffffffe,%edx
4160f2:	89 55 10             	mov    %edx,0x10(%ebp)
4160f5:	8b 45 0c             	mov    0xc(%ebp),%eax
4160f8:	89 45 f4             	mov    %eax,-0xc(%ebp)
4160fb:	e9 81 00 00 00       	jmp    0x416181
416100:	8b c2                	mov    %edx,%eax
416102:	f7 d0                	not    %eax
416104:	a8 01                	test   $0x1,%al
416106:	75 21                	jne    0x416129
416108:	e8 db f9 fe ff       	call   0x405ae8
41610d:	89 18                	mov    %ebx,(%eax)
41610f:	e8 c1 f9 fe ff       	call   0x405ad5
416114:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41611a:	53                   	push   %ebx
41611b:	53                   	push   %ebx
41611c:	53                   	push   %ebx
41611d:	53                   	push   %ebx
41611e:	53                   	push   %ebx
41611f:	e8 01 f1 fe ff       	call   0x405225
416124:	83 c4 14             	add    $0x14,%esp
416127:	eb 34                	jmp    0x41615d
416129:	8b c2                	mov    %edx,%eax
41612b:	d1 e8                	shr    $1,%eax
41612d:	89 4d 10             	mov    %ecx,0x10(%ebp)
416130:	3b c1                	cmp    %ecx,%eax
416132:	72 03                	jb     0x416137
416134:	89 45 10             	mov    %eax,0x10(%ebp)
416137:	ff 75 10             	push   0x10(%ebp)
41613a:	e8 21 1a ff ff       	call   0x407b60
41613f:	59                   	pop    %ecx
416140:	89 45 f4             	mov    %eax,-0xc(%ebp)
416143:	3b c3                	cmp    %ebx,%eax
416145:	75 1e                	jne    0x416165
416147:	e8 89 f9 fe ff       	call   0x405ad5
41614c:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
416152:	e8 91 f9 fe ff       	call   0x405ae8
416157:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
41615d:	83 c8 ff             	or     $0xffffffff,%eax
416160:	e9 68 04 00 00       	jmp    0x4165cd
416165:	6a 01                	push   $0x1
416167:	53                   	push   %ebx
416168:	53                   	push   %ebx
416169:	ff 75 08             	push   0x8(%ebp)
41616c:	e8 1d c0 ff ff       	call   0x41218e
416171:	8b 0f                	mov    (%edi),%ecx
416173:	89 44 0e 28          	mov    %eax,0x28(%esi,%ecx,1)
416177:	8b 45 f4             	mov    -0xc(%ebp),%eax
41617a:	83 c4 10             	add    $0x10,%esp
41617d:	89 54 0e 2c          	mov    %edx,0x2c(%esi,%ecx,1)
416181:	8b 0f                	mov    (%edi),%ecx
416183:	03 ce                	add    %esi,%ecx
416185:	f6 41 04 48          	testb  $0x48,0x4(%ecx)
416189:	74 74                	je     0x4161ff
41618b:	8a 49 05             	mov    0x5(%ecx),%cl
41618e:	80 f9 0a             	cmp    $0xa,%cl
416191:	74 6c                	je     0x4161ff
416193:	39 5d 10             	cmp    %ebx,0x10(%ebp)
416196:	74 67                	je     0x4161ff
416198:	88 08                	mov    %cl,(%eax)
41619a:	8b 0f                	mov    (%edi),%ecx
41619c:	40                   	inc    %eax
41619d:	ff 4d 10             	decl   0x10(%ebp)
4161a0:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
4161a7:	c6 44 0e 05 0a       	movb   $0xa,0x5(%esi,%ecx,1)
4161ac:	38 5d fe             	cmp    %bl,-0x2(%ebp)
4161af:	74 4e                	je     0x4161ff
4161b1:	8b 0f                	mov    (%edi),%ecx
4161b3:	8a 4c 0e 25          	mov    0x25(%esi,%ecx,1),%cl
4161b7:	80 f9 0a             	cmp    $0xa,%cl
4161ba:	74 43                	je     0x4161ff
4161bc:	39 5d 10             	cmp    %ebx,0x10(%ebp)
4161bf:	74 3e                	je     0x4161ff
4161c1:	88 08                	mov    %cl,(%eax)
4161c3:	8b 0f                	mov    (%edi),%ecx
4161c5:	40                   	inc    %eax
4161c6:	ff 4d 10             	decl   0x10(%ebp)
4161c9:	80 7d fe 01          	cmpb   $0x1,-0x2(%ebp)
4161cd:	c7 45 f0 02 00 00 00 	movl   $0x2,-0x10(%ebp)
4161d4:	c6 44 0e 25 0a       	movb   $0xa,0x25(%esi,%ecx,1)
4161d9:	75 24                	jne    0x4161ff
4161db:	8b 0f                	mov    (%edi),%ecx
4161dd:	8a 4c 0e 26          	mov    0x26(%esi,%ecx,1),%cl
4161e1:	80 f9 0a             	cmp    $0xa,%cl
4161e4:	74 19                	je     0x4161ff
4161e6:	39 5d 10             	cmp    %ebx,0x10(%ebp)
4161e9:	74 14                	je     0x4161ff
4161eb:	88 08                	mov    %cl,(%eax)
4161ed:	8b 0f                	mov    (%edi),%ecx
4161ef:	40                   	inc    %eax
4161f0:	ff 4d 10             	decl   0x10(%ebp)
4161f3:	c7 45 f0 03 00 00 00 	movl   $0x3,-0x10(%ebp)
4161fa:	c6 44 0e 26 0a       	movb   $0xa,0x26(%esi,%ecx,1)
4161ff:	53                   	push   %ebx
416200:	8d 4d e8             	lea    -0x18(%ebp),%ecx
416203:	51                   	push   %ecx
416204:	ff 75 10             	push   0x10(%ebp)
416207:	50                   	push   %eax
416208:	8b 07                	mov    (%edi),%eax
41620a:	ff 34 06             	push   (%esi,%eax,1)
41620d:	ff 15 8c a1 41 00    	call   *0x41a18c
416213:	85 c0                	test   %eax,%eax
416215:	0f 84 7b 03 00 00    	je     0x416596
41621b:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41621e:	3b cb                	cmp    %ebx,%ecx
416220:	0f 8c 70 03 00 00    	jl     0x416596
416226:	3b 4d 10             	cmp    0x10(%ebp),%ecx
416229:	0f 87 67 03 00 00    	ja     0x416596
41622f:	8b 07                	mov    (%edi),%eax
416231:	01 4d f0             	add    %ecx,-0x10(%ebp)
416234:	8d 44 06 04          	lea    0x4(%esi,%eax,1),%eax
416238:	f6 00 80             	testb  $0x80,(%eax)
41623b:	0f 84 e6 01 00 00    	je     0x416427
416241:	80 7d fe 02          	cmpb   $0x2,-0x2(%ebp)
416245:	0f 84 16 02 00 00    	je     0x416461
41624b:	3b cb                	cmp    %ebx,%ecx
41624d:	74 0d                	je     0x41625c
41624f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
416252:	80 39 0a             	cmpb   $0xa,(%ecx)
416255:	75 05                	jne    0x41625c
416257:	80 08 04             	orb    $0x4,(%eax)
41625a:	eb 03                	jmp    0x41625f
41625c:	80 20 fb             	andb   $0xfb,(%eax)
41625f:	8b 5d f4             	mov    -0xc(%ebp),%ebx
416262:	8b 45 f0             	mov    -0x10(%ebp),%eax
416265:	03 c3                	add    %ebx,%eax
416267:	89 5d 10             	mov    %ebx,0x10(%ebp)
41626a:	89 45 f0             	mov    %eax,-0x10(%ebp)
41626d:	3b d8                	cmp    %eax,%ebx
41626f:	0f 83 d0 00 00 00    	jae    0x416345
416275:	8b 4d 10             	mov    0x10(%ebp),%ecx
416278:	8a 01                	mov    (%ecx),%al
41627a:	3c 1a                	cmp    $0x1a,%al
41627c:	0f 84 ae 00 00 00    	je     0x416330
416282:	3c 0d                	cmp    $0xd,%al
416284:	74 0c                	je     0x416292
416286:	88 03                	mov    %al,(%ebx)
416288:	43                   	inc    %ebx
416289:	41                   	inc    %ecx
41628a:	89 4d 10             	mov    %ecx,0x10(%ebp)
41628d:	e9 90 00 00 00       	jmp    0x416322
416292:	8b 45 f0             	mov    -0x10(%ebp),%eax
416295:	48                   	dec    %eax
416296:	3b c8                	cmp    %eax,%ecx
416298:	73 17                	jae    0x4162b1
41629a:	8d 41 01             	lea    0x1(%ecx),%eax
41629d:	80 38 0a             	cmpb   $0xa,(%eax)
4162a0:	75 0a                	jne    0x4162ac
4162a2:	41                   	inc    %ecx
4162a3:	41                   	inc    %ecx
4162a4:	89 4d 10             	mov    %ecx,0x10(%ebp)
4162a7:	c6 03 0a             	movb   $0xa,(%ebx)
4162aa:	eb 75                	jmp    0x416321
4162ac:	89 45 10             	mov    %eax,0x10(%ebp)
4162af:	eb 6d                	jmp    0x41631e
4162b1:	ff 45 10             	incl   0x10(%ebp)
4162b4:	6a 00                	push   $0x0
4162b6:	8d 45 e8             	lea    -0x18(%ebp),%eax
4162b9:	50                   	push   %eax
4162ba:	6a 01                	push   $0x1
4162bc:	8d 45 ff             	lea    -0x1(%ebp),%eax
4162bf:	50                   	push   %eax
4162c0:	8b 07                	mov    (%edi),%eax
4162c2:	ff 34 06             	push   (%esi,%eax,1)
4162c5:	ff 15 8c a1 41 00    	call   *0x41a18c
4162cb:	85 c0                	test   %eax,%eax
4162cd:	75 0a                	jne    0x4162d9
4162cf:	ff 15 98 a0 41 00    	call   *0x41a098
4162d5:	85 c0                	test   %eax,%eax
4162d7:	75 45                	jne    0x41631e
4162d9:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
4162dd:	74 3f                	je     0x41631e
4162df:	8b 07                	mov    (%edi),%eax
4162e1:	f6 44 06 04 48       	testb  $0x48,0x4(%esi,%eax,1)
4162e6:	74 14                	je     0x4162fc
4162e8:	80 7d ff 0a          	cmpb   $0xa,-0x1(%ebp)
4162ec:	74 b9                	je     0x4162a7
4162ee:	c6 03 0d             	movb   $0xd,(%ebx)
4162f1:	8b 07                	mov    (%edi),%eax
4162f3:	8a 4d ff             	mov    -0x1(%ebp),%cl
4162f6:	88 4c 06 05          	mov    %cl,0x5(%esi,%eax,1)
4162fa:	eb 25                	jmp    0x416321
4162fc:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
4162ff:	75 06                	jne    0x416307
416301:	80 7d ff 0a          	cmpb   $0xa,-0x1(%ebp)
416305:	74 a0                	je     0x4162a7
416307:	6a 01                	push   $0x1
416309:	6a ff                	push   $0xffffffff
41630b:	6a ff                	push   $0xffffffff
41630d:	ff 75 08             	push   0x8(%ebp)
416310:	e8 79 be ff ff       	call   0x41218e
416315:	83 c4 10             	add    $0x10,%esp
416318:	80 7d ff 0a          	cmpb   $0xa,-0x1(%ebp)
41631c:	74 04                	je     0x416322
41631e:	c6 03 0d             	movb   $0xd,(%ebx)
416321:	43                   	inc    %ebx
416322:	8b 45 f0             	mov    -0x10(%ebp),%eax
416325:	39 45 10             	cmp    %eax,0x10(%ebp)
416328:	0f 82 47 ff ff ff    	jb     0x416275
41632e:	eb 15                	jmp    0x416345
416330:	8b 07                	mov    (%edi),%eax
416332:	8d 44 06 04          	lea    0x4(%esi,%eax,1),%eax
416336:	f6 00 40             	testb  $0x40,(%eax)
416339:	75 05                	jne    0x416340
41633b:	80 08 02             	orb    $0x2,(%eax)
41633e:	eb 05                	jmp    0x416345
416340:	8a 01                	mov    (%ecx),%al
416342:	88 03                	mov    %al,(%ebx)
416344:	43                   	inc    %ebx
416345:	8b c3                	mov    %ebx,%eax
416347:	2b 45 f4             	sub    -0xc(%ebp),%eax
41634a:	80 7d fe 01          	cmpb   $0x1,-0x2(%ebp)
41634e:	89 45 f0             	mov    %eax,-0x10(%ebp)
416351:	0f 85 d0 00 00 00    	jne    0x416427
416357:	85 c0                	test   %eax,%eax
416359:	0f 84 c8 00 00 00    	je     0x416427
41635f:	4b                   	dec    %ebx
416360:	8a 0b                	mov    (%ebx),%cl
416362:	84 c9                	test   %cl,%cl
416364:	78 06                	js     0x41636c
416366:	43                   	inc    %ebx
416367:	e9 86 00 00 00       	jmp    0x4163f2
41636c:	33 c0                	xor    %eax,%eax
41636e:	40                   	inc    %eax
41636f:	0f b6 c9             	movzbl %cl,%ecx
416372:	eb 0f                	jmp    0x416383
416374:	83 f8 04             	cmp    $0x4,%eax
416377:	7f 13                	jg     0x41638c
416379:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
41637c:	72 0e                	jb     0x41638c
41637e:	4b                   	dec    %ebx
41637f:	0f b6 0b             	movzbl (%ebx),%ecx
416382:	40                   	inc    %eax
416383:	80 b9 d8 bf 42 00 00 	cmpb   $0x0,0x42bfd8(%ecx)
41638a:	74 e8                	je     0x416374
41638c:	8a 13                	mov    (%ebx),%dl
41638e:	0f b6 ca             	movzbl %dl,%ecx
416391:	0f be 89 d8 bf 42 00 	movsbl 0x42bfd8(%ecx),%ecx
416398:	85 c9                	test   %ecx,%ecx
41639a:	75 0d                	jne    0x4163a9
41639c:	e8 34 f7 fe ff       	call   0x405ad5
4163a1:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
4163a7:	eb 7a                	jmp    0x416423
4163a9:	41                   	inc    %ecx
4163aa:	3b c8                	cmp    %eax,%ecx
4163ac:	75 04                	jne    0x4163b2
4163ae:	03 d8                	add    %eax,%ebx
4163b0:	eb 40                	jmp    0x4163f2
4163b2:	8b 0f                	mov    (%edi),%ecx
4163b4:	03 ce                	add    %esi,%ecx
4163b6:	f6 41 04 48          	testb  $0x48,0x4(%ecx)
4163ba:	74 24                	je     0x4163e0
4163bc:	43                   	inc    %ebx
4163bd:	83 f8 02             	cmp    $0x2,%eax
4163c0:	88 51 05             	mov    %dl,0x5(%ecx)
4163c3:	7c 09                	jl     0x4163ce
4163c5:	8a 13                	mov    (%ebx),%dl
4163c7:	8b 0f                	mov    (%edi),%ecx
4163c9:	88 54 0e 25          	mov    %dl,0x25(%esi,%ecx,1)
4163cd:	43                   	inc    %ebx
4163ce:	83 f8 03             	cmp    $0x3,%eax
4163d1:	75 09                	jne    0x4163dc
4163d3:	8a 13                	mov    (%ebx),%dl
4163d5:	8b 0f                	mov    (%edi),%ecx
4163d7:	88 54 0e 26          	mov    %dl,0x26(%esi,%ecx,1)
4163db:	43                   	inc    %ebx
4163dc:	2b d8                	sub    %eax,%ebx
4163de:	eb 12                	jmp    0x4163f2
4163e0:	f7 d8                	neg    %eax
4163e2:	99                   	cltd
4163e3:	6a 01                	push   $0x1
4163e5:	52                   	push   %edx
4163e6:	50                   	push   %eax
4163e7:	ff 75 08             	push   0x8(%ebp)
4163ea:	e8 9f bd ff ff       	call   0x41218e
4163ef:	83 c4 10             	add    $0x10,%esp
4163f2:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4163f5:	2b 5d f4             	sub    -0xc(%ebp),%ebx
4163f8:	d1 e8                	shr    $1,%eax
4163fa:	50                   	push   %eax
4163fb:	ff 75 0c             	push   0xc(%ebp)
4163fe:	53                   	push   %ebx
4163ff:	ff 75 f4             	push   -0xc(%ebp)
416402:	6a 00                	push   $0x0
416404:	68 e9 fd 00 00       	push   $0xfde9
416409:	ff 15 80 a0 41 00    	call   *0x41a080
41640f:	89 45 f0             	mov    %eax,-0x10(%ebp)
416412:	85 c0                	test   %eax,%eax
416414:	75 34                	jne    0x41644a
416416:	ff 15 98 a0 41 00    	call   *0x41a098
41641c:	50                   	push   %eax
41641d:	e8 d9 f6 fe ff       	call   0x405afb
416422:	59                   	pop    %ecx
416423:	83 4d ec ff          	orl    $0xffffffff,-0x14(%ebp)
416427:	8b 45 f4             	mov    -0xc(%ebp),%eax
41642a:	3b 45 0c             	cmp    0xc(%ebp),%eax
41642d:	74 07                	je     0x416436
41642f:	50                   	push   %eax
416430:	e8 eb eb fe ff       	call   0x405020
416435:	59                   	pop    %ecx
416436:	8b 45 ec             	mov    -0x14(%ebp),%eax
416439:	83 f8 fe             	cmp    $0xfffffffe,%eax
41643c:	0f 85 8b 01 00 00    	jne    0x4165cd
416442:	8b 45 f0             	mov    -0x10(%ebp),%eax
416445:	e9 83 01 00 00       	jmp    0x4165cd
41644a:	8b 45 f0             	mov    -0x10(%ebp),%eax
41644d:	8b 17                	mov    (%edi),%edx
41644f:	33 c9                	xor    %ecx,%ecx
416451:	3b c3                	cmp    %ebx,%eax
416453:	0f 95 c1             	setne  %cl
416456:	03 c0                	add    %eax,%eax
416458:	89 45 f0             	mov    %eax,-0x10(%ebp)
41645b:	89 4c 16 30          	mov    %ecx,0x30(%esi,%edx,1)
41645f:	eb c6                	jmp    0x416427
416461:	3b cb                	cmp    %ebx,%ecx
416463:	74 0e                	je     0x416473
416465:	8b 4d f4             	mov    -0xc(%ebp),%ecx