452167:	d1 f8                	sar    $1,%eax
452169:	40                   	inc    %eax
45216a:	66 89 02             	mov    %ax,(%edx)
45216d:	33 c0                	xor    %eax,%eax
45216f:	66 89 42 02          	mov    %ax,0x2(%edx)
452173:	6a 04                	push   $0x4
452175:	58                   	pop    %eax
452176:	03 d0                	add    %eax,%edx
452178:	33 c0                	xor    %eax,%eax
45217a:	8b d8                	mov    %eax,%ebx
45217c:	89 5d f0             	mov    %ebx,-0x10(%ebp)
45217f:	e9 71 5f fc ff       	jmp    0x4180f5
452184:	8b 55 28             	mov    0x28(%ebp),%edx
452187:	6a 7e                	push   $0x7e
452189:	5b                   	pop    %ebx
45218a:	ff 42 5c             	incl   0x5c(%edx)
45218d:	e9 db 14 00 00       	jmp    0x45366d
452192:	6a 3f                	push   $0x3f
452194:	58                   	pop    %eax
452195:	bb 87 00 00 00       	mov    $0x87,%ebx
45219a:	8b d6                	mov    %esi,%edx
45219c:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
45219f:	89 55 90             	mov    %edx,-0x70(%ebp)
4521a2:	66 39 46 02          	cmp    %ax,0x2(%esi)
4521a6:	75 3d                	jne    0x4521e5
4521a8:	6a 43                	push   $0x43
4521aa:	59                   	pop    %ecx
4521ab:	66 39 4e 04          	cmp    %cx,0x4(%esi)
4521af:	75 34                	jne    0x4521e5
4521b1:	0f b7 46 06          	movzwl 0x6(%esi),%eax
4521b5:	6a 03                	push   $0x3
4521b7:	59                   	pop    %ecx
4521b8:	6a 30                	push   $0x30
4521ba:	5f                   	pop    %edi
4521bb:	eb 0e                	jmp    0x4521cb
4521bd:	66 3b 85 70 ff ff ff 	cmp    -0x90(%ebp),%ax
4521c4:	77 0a                	ja     0x4521d0
4521c6:	41                   	inc    %ecx
4521c7:	0f b7 04 4e          	movzwl (%esi,%ecx,2),%eax
4521cb:	66 3b c7             	cmp    %di,%ax
4521ce:	73 ed                	jae    0x4521bd
4521d0:	6a 29                	push   $0x29
4521d2:	58                   	pop    %eax
4521d3:	66 39 04 4e          	cmp    %ax,(%esi,%ecx,2)
4521d7:	6a 3f                	push   $0x3f
4521d9:	58                   	pop    %eax
4521da:	75 09                	jne    0x4521e5
4521dc:	8d 51 01             	lea    0x1(%ecx),%edx
4521df:	8d 14 56             	lea    (%esi,%edx,2),%edx
4521e2:	89 55 90             	mov    %edx,-0x70(%ebp)
4521e5:	66 39 42 02          	cmp    %ax,0x2(%edx)
4521e9:	75 3b                	jne    0x452226
4521eb:	0f b7 42 04          	movzwl 0x4(%edx),%eax
4521ef:	6a 3d                	push   $0x3d
4521f1:	5f                   	pop    %edi
4521f2:	66 3b c7             	cmp    %di,%ax
4521f5:	74 21                	je     0x452218
4521f7:	6a 21                	push   $0x21
4521f9:	59                   	pop    %ecx
4521fa:	66 3b c1             	cmp    %cx,%ax
4521fd:	74 19                	je     0x452218
4521ff:	6a 3c                	push   $0x3c
452201:	59                   	pop    %ecx
452202:	66 3b c1             	cmp    %cx,%ax
452205:	75 1f                	jne    0x452226
452207:	0f b7 42 06          	movzwl 0x6(%edx),%eax
45220b:	66 3b c7             	cmp    %di,%ax
45220e:	74 08                	je     0x452218
452210:	6a 21                	push   $0x21
452212:	59                   	pop    %ecx
452213:	66 3b c1             	cmp    %cx,%ax
452216:	75 0e                	jne    0x452226
452218:	8b 55 28             	mov    0x28(%ebp),%edx
45221b:	8b 45 f4             	mov    -0xc(%ebp),%eax
45221e:	89 42 7c             	mov    %eax,0x7c(%edx)
452221:	e9 47 14 00 00       	jmp    0x45366d
452226:	8b 45 f8             	mov    -0x8(%ebp),%eax
452229:	b9 8d 00 00 00       	mov    $0x8d,%ecx
45222e:	6a 02                	push   $0x2
452230:	33 db                	xor    %ebx,%ebx
452232:	83 cf ff             	or     $0xffffffff,%edi
452235:	09 7d e8             	or     %edi,-0x18(%ebp)
452238:	8b d3                	mov    %ebx,%edx
45223a:	66 89 48 04          	mov    %cx,0x4(%eax)
45223e:	8b cb                	mov    %ebx,%ecx
452240:	8b 75 fc             	mov    -0x4(%ebp),%esi
452243:	58                   	pop    %eax
452244:	03 f0                	add    %eax,%esi
452246:	89 45 e0             	mov    %eax,-0x20(%ebp)
452249:	89 75 fc             	mov    %esi,-0x4(%ebp)
45224c:	89 4d ec             	mov    %ecx,-0x14(%ebp)
45224f:	0f b7 06             	movzwl (%esi),%eax
452252:	66 3b 85 bc fe ff ff 	cmp    -0x144(%ebp),%ax
452259:	0f 85 26 01 00 00    	jne    0x452385
45225f:	6a 26                	push   $0x26
452261:	5b                   	pop    %ebx
452262:	66 39 5e 02          	cmp    %bx,0x2(%esi)
452266:	52                   	push   %edx
452267:	5b                   	pop    %ebx
452268:	0f 85 17 01 00 00    	jne    0x452385
45226e:	6a 04                	push   $0x4
452270:	58                   	pop    %eax
452271:	0b df                	or     %edi,%ebx
452273:	b9 8f 00 00 00       	mov    $0x8f,%ecx
452278:	03 f0                	add    %eax,%esi
45227a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
45227d:	8b 45 f8             	mov    -0x8(%ebp),%eax
452280:	89 75 fc             	mov    %esi,-0x4(%ebp)
452283:	66 89 48 04          	mov    %cx,0x4(%eax)
452287:	8b 75 fc             	mov    -0x4(%ebp),%esi
45228a:	0f b7 06             	movzwl (%esi),%eax
45228d:	6a 30                	push   $0x30
45228f:	59                   	pop    %ecx
452290:	66 3b c1             	cmp    %cx,%ax
452293:	72 0c                	jb     0x4522a1
452295:	6a 39                	push   $0x39
452297:	59                   	pop    %ecx
452298:	66 3b c1             	cmp    %cx,%ax
45229b:	0f 86 e2 22 00 00    	jbe    0x454583
4522a1:	b9 ff 00 00 00       	mov    $0xff,%ecx
4522a6:	66 3b c1             	cmp    %cx,%ax
4522a9:	0f 87 03 23 00 00    	ja     0x4545b2
4522af:	0f b7 c8             	movzwl %ax,%ecx
4522b2:	8b 45 28             	mov    0x28(%ebp),%eax
4522b5:	8b 40 0c             	mov    0xc(%eax),%eax
4522b8:	f6 04 01 10          	testb  $0x10,(%ecx,%eax,1)
4522bc:	0f 84 f0 22 00 00    	je     0x4545b2
4522c2:	6a 02                	push   $0x2
4522c4:	58                   	pop    %eax
4522c5:	89 75 ec             	mov    %esi,-0x14(%ebp)
4522c8:	b9 ff 00 00 00       	mov    $0xff,%ecx
4522cd:	03 f0                	add    %eax,%esi
4522cf:	89 75 fc             	mov    %esi,-0x4(%ebp)
4522d2:	0f b7 06             	movzwl (%esi),%eax
4522d5:	66 3b c1             	cmp    %cx,%ax
4522d8:	77 26                	ja     0x452300
4522da:	8b 4d 28             	mov    0x28(%ebp),%ecx
4522dd:	6a 02                	push   $0x2
4522df:	5b                   	pop    %ebx
4522e0:	8b 49 0c             	mov    0xc(%ecx),%ecx
4522e3:	0f b7 c0             	movzwl %ax,%eax
4522e6:	f6 04 08 10          	testb  $0x10,(%eax,%ecx,1)
4522ea:	74 11                	je     0x4522fd
4522ec:	03 f3                	add    %ebx,%esi
4522ee:	89 75 fc             	mov    %esi,-0x4(%ebp)
4522f1:	0f b7 06             	movzwl (%esi),%eax
4522f4:	66 3b 85 4c ff ff ff 	cmp    -0xb4(%ebp),%ax
4522fb:	76 e6                	jbe    0x4522e3
4522fd:	8b 5d f0             	mov    -0x10(%ebp),%ebx
452300:	8b 45 2c             	mov    0x2c(%ebp),%eax
452303:	8b ce                	mov    %esi,%ecx
452305:	2b 4d ec             	sub    -0x14(%ebp),%ecx
452308:	d1 f9                	sar    $1,%ecx
45230a:	89 4d e8             	mov    %ecx,-0x18(%ebp)
45230d:	85 c0                	test   %eax,%eax
45230f:	74 02                	je     0x452313
452311:	ff 00                	incl   (%eax)
452313:	85 db                	test   %ebx,%ebx
452315:	7e 14                	jle    0x45232b
452317:	66 8b 06             	mov    (%esi),%ax
45231a:	6a 02                	push   $0x2
45231c:	59                   	pop    %ecx
45231d:	03 f1                	add    %ecx,%esi
45231f:	89 75 fc             	mov    %esi,-0x4(%ebp)
452322:	66 3b c3             	cmp    %bx,%ax
452325:	0f 85 74 22 00 00    	jne    0x45459f
45232b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
45232e:	66 8b 06             	mov    (%esi),%ax
452331:	6a 02                	push   $0x2
452333:	5b                   	pop    %ebx
452334:	03 f3                	add    %ebx,%esi
452336:	6a 29                	push   $0x29
452338:	5b                   	pop    %ebx
452339:	89 75 dc             	mov    %esi,-0x24(%ebp)
45233c:	89 75 fc             	mov    %esi,-0x4(%ebp)
45233f:	66 3b c3             	cmp    %bx,%ax
452342:	0f 85 57 22 00 00    	jne    0x45459f
452348:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
45234c:	0f 85 18 13 00 00    	jne    0x45366a
452352:	85 ff                	test   %edi,%edi
452354:	0f 88 09 01 00 00    	js     0x452463
45235a:	85 d2                	test   %edx,%edx
45235c:	0f 8e 2f 22 00 00    	jle    0x454591
452362:	8b 5d 28             	mov    0x28(%ebp),%ebx
452365:	85 ff                	test   %edi,%edi
452367:	0f 84 c8 00 00 00    	je     0x452435
45236d:	6a 2d                	push   $0x2d
45236f:	58                   	pop    %eax
452370:	3b f8                	cmp    %eax,%edi
452372:	0f 85 ba 00 00 00    	jne    0x452432
452378:	8b 43 40             	mov    0x40(%ebx),%eax
45237b:	2b c2                	sub    %edx,%eax
45237d:	8d 50 01             	lea    0x1(%eax),%edx
452380:	e9 b0 00 00 00       	jmp    0x452435
452385:	66 3b 85 f0 fe ff ff 	cmp    -0x110(%ebp),%ax
45238c:	75 19                	jne    0x4523a7
45238e:	6a 3e                	push   $0x3e
452390:	eb 02                	jmp    0x452394
452392:	6a 27                	push   $0x27
452394:	58                   	pop    %eax
452395:	8b d8                	mov    %eax,%ebx
452397:	6a 02                	push   $0x2
452399:	58                   	pop    %eax
45239a:	03 f0                	add    %eax,%esi
45239c:	89 5d f0             	mov    %ebx,-0x10(%ebp)
45239f:	89 75 fc             	mov    %esi,-0x4(%ebp)
4523a2:	e9 e3 fe ff ff       	jmp    0x45228a
4523a7:	66 3b 85 20 ff ff ff 	cmp    -0xe0(%ebp),%ax
4523ae:	74 e2                	je     0x452392
4523b0:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4523b3:	66 3b 85 ac fe ff ff 	cmp    -0x154(%ebp),%ax
4523ba:	74 29                	je     0x4523e5
4523bc:	66 3b 85 a8 fe ff ff 	cmp    -0x158(%ebp),%ax
4523c3:	74 20                	je     0x4523e5
4523c5:	66 3b 85 1c ff ff ff 	cmp    -0xe4(%ebp),%ax
4523cc:	0f 82 cf fe ff ff    	jb     0x4522a1
4523d2:	66 3b 85 70 ff ff ff 	cmp    -0x90(%ebp),%ax
4523d9:	0f 87 ab fe ff ff    	ja     0x45228a
4523df:	33 c0                	xor    %eax,%eax
4523e1:	8b f8                	mov    %eax,%edi
4523e3:	eb 12                	jmp    0x4523f7
4523e5:	8b f8                	mov    %eax,%edi
4523e7:	6a 02                	push   $0x2
4523e9:	58                   	pop    %eax
4523ea:	03 f0                	add    %eax,%esi
4523ec:	89 75 fc             	mov    %esi,-0x4(%ebp)
4523ef:	85 ff                	test   %edi,%edi
4523f1:	0f 88 93 fe ff ff    	js     0x45228a
4523f7:	0f b7 06             	movzwl (%esi),%eax
4523fa:	6a 30                	push   $0x30
4523fc:	5b                   	pop    %ebx
4523fd:	66 3b c3             	cmp    %bx,%ax
452400:	0f 82 28 ff ff ff    	jb     0x45232e
452406:	6a 39                	push   $0x39
452408:	59                   	pop    %ecx
452409:	66 3b c1             	cmp    %cx,%ax
45240c:	0f 87 19 ff ff ff    	ja     0x45232b
452412:	6b ca 0a             	imul   $0xa,%edx,%ecx
452415:	0f b7 d0             	movzwl %ax,%edx
452418:	6a 02                	push   $0x2
45241a:	58                   	pop    %eax
45241b:	03 f0                	add    %eax,%esi
45241d:	83 c2 d0             	add    $0xffffffd0,%edx
452420:	89 75 fc             	mov    %esi,-0x4(%ebp)
452423:	03 d1                	add    %ecx,%edx
452425:	0f b7 06             	movzwl (%esi),%eax
452428:	66 3b c3             	cmp    %bx,%ax
45242b:	73 d9                	jae    0x452406
45242d:	e9 f9 fe ff ff       	jmp    0x45232b
452432:	03 53 40             	add    0x40(%ebx),%edx
452435:	85 d2                	test   %edx,%edx
452437:	0f 8e 90 11 00 00    	jle    0x4535cd
45243d:	3b 53 44             	cmp    0x44(%ebx),%edx
452440:	0f 8f 87 11 00 00    	jg     0x4535cd
452446:	8b 45 f8             	mov    -0x8(%ebp),%eax
452449:	6a 52                	push   $0x52
45244b:	5f                   	pop    %edi
45244c:	66 89 50 06          	mov    %dx,0x6(%eax)
452450:	8b 75 fc             	mov    -0x4(%ebp),%esi
452453:	3b 53 4c             	cmp    0x4c(%ebx),%edx
452456:	7e 03                	jle    0x45245b
452458:	89 53 4c             	mov    %edx,0x4c(%ebx)
45245b:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
45245e:	e9 0d 12 00 00       	jmp    0x453670
452463:	8b 55 28             	mov    0x28(%ebp),%edx
452466:	33 db                	xor    %ebx,%ebx
452468:	8b fb                	mov    %ebx,%edi
45246a:	8b 5a 30             	mov    0x30(%edx),%ebx
45246d:	8b 42 2c             	mov    0x2c(%edx),%eax
452470:	89 45 b8             	mov    %eax,-0x48(%ebp)
452473:	85 db                	test   %ebx,%ebx
452475:	7e 31                	jle    0x4524a8
452477:	8b 75 e8             	mov    -0x18(%ebp),%esi
45247a:	56                   	push   %esi
45247b:	8d 50 02             	lea    0x2(%eax),%edx
45247e:	e8 75 c5 03 00       	call   0x48e9f8
452483:	8b 55 28             	mov    0x28(%ebp),%edx
452486:	59                   	pop    %ecx
452487:	85 c0                	test   %eax,%eax
452489:	74 17                	je     0x4524a2
45248b:	8b 42 34             	mov    0x34(%edx),%eax
45248e:	47                   	inc    %edi
45248f:	8b 4d b8             	mov    -0x48(%ebp),%ecx
452492:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
452495:	89 4d b8             	mov    %ecx,-0x48(%ebp)
452498:	8b 4d ec             	mov    -0x14(%ebp),%ecx
45249b:	8b 45 b8             	mov    -0x48(%ebp),%eax
45249e:	3b fb                	cmp    %ebx,%edi
4524a0:	7c d8                	jl     0x45247a
4524a2:	8b 75 dc             	mov    -0x24(%ebp),%esi
4524a5:	8b 45 b8             	mov    -0x48(%ebp),%eax
4524a8:	3b fb                	cmp    %ebx,%edi
4524aa:	0f 8d 86 00 00 00    	jge    0x452536
4524b0:	0f b7 00             	movzwl (%eax),%eax
4524b3:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4524b6:	89 7d 98             	mov    %edi,-0x68(%ebp)
4524b9:	47                   	inc    %edi
4524ba:	89 45 80             	mov    %eax,-0x80(%ebp)
4524bd:	3b 42 4c             	cmp    0x4c(%edx),%eax
4524c0:	7e 03                	jle    0x4524c5
4524c2:	89 42 4c             	mov    %eax,0x4c(%edx)
4524c5:	3b 7a 30             	cmp    0x30(%edx),%edi
4524c8:	7d 60                	jge    0x45252a
4524ca:	8b 72 34             	mov    0x34(%edx),%esi
4524cd:	8b 45 e8             	mov    -0x18(%ebp),%eax
4524d0:	03 f6                	add    %esi,%esi
4524d2:	8b 4d b8             	mov    -0x48(%ebp),%ecx
4524d5:	03 ce                	add    %esi,%ecx
4524d7:	89 4d b8             	mov    %ecx,-0x48(%ebp)
4524da:	50                   	push   %eax
4524db:	8d 51 02             	lea    0x2(%ecx),%edx
4524de:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4524e1:	e8 12 c5 03 00       	call   0x48e9f8
4524e6:	59                   	pop    %ecx
4524e7:	85 c0                	test   %eax,%eax
4524e9:	75 19                	jne    0x452504
4524eb:	8b 45 e8             	mov    -0x18(%ebp),%eax
4524ee:	33 d2                	xor    %edx,%edx
4524f0:	8b 4d b8             	mov    -0x48(%ebp),%ecx
4524f3:	66 39 54 41 02       	cmp    %dx,0x2(%ecx,%eax,2)
4524f8:	75 0a                	jne    0x452504
4524fa:	8b 55 28             	mov    0x28(%ebp),%edx
4524fd:	43                   	inc    %ebx
4524fe:	47                   	inc    %edi
4524ff:	3b 7a 30             	cmp    0x30(%edx),%edi
452502:	7c d1                	jl     0x4524d5
452504:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
452507:	7e 1e                	jle    0x452527
452509:	8b 55 f8             	mov    -0x8(%ebp),%edx
45250c:	8b 45 98             	mov    -0x68(%ebp),%eax
45250f:	c7 45 e0 03 00 00 00 	movl   $0x3,-0x20(%ebp)
452516:	66 ff 42 04          	incw   0x4(%edx)
45251a:	66 89 42 06          	mov    %ax,0x6(%edx)
45251e:	66 89 5a 08          	mov    %bx,0x8(%edx)
452522:	e9 38 54 fc ff       	jmp    0x41795f
452527:	8b 45 80             	mov    -0x80(%ebp),%eax
45252a:	8b 55 f8             	mov    -0x8(%ebp),%edx
45252d:	66 89 42 06          	mov    %ax,0x6(%edx)
452531:	e9 29 54 fc ff       	jmp    0x41795f
452536:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
45253a:	0f 85 8d 10 00 00    	jne    0x4535cd
452540:	8b 45 ec             	mov    -0x14(%ebp),%eax
452543:	6a 52                	push   $0x52
452545:	5f                   	pop    %edi
452546:	66 39 38             	cmp    %di,(%eax)
452549:	75 58                	jne    0x4525a3
45254b:	8b 5d e8             	mov    -0x18(%ebp),%ebx
45254e:	33 c9                	xor    %ecx,%ecx
452550:	8b 55 f4             	mov    -0xc(%ebp),%edx
452553:	83 fb 01             	cmp    $0x1,%ebx