448105:	2b da                	sub    %edx,%ebx
448107:	8b 7d d8             	mov    -0x28(%ebp),%edi
44810a:	8b 45 18             	mov    0x18(%ebp),%eax
44810d:	2b fa                	sub    %edx,%edi
44810f:	d1 ff                	sar    $1,%edi
448111:	d1 fb                	sar    $1,%ebx
448113:	89 38                	mov    %edi,(%eax)
448115:	89 58 04             	mov    %ebx,0x4(%eax)
448118:	83 f9 02             	cmp    $0x2,%ecx
44811b:	7e 07                	jle    0x448124
44811d:	2b f2                	sub    %edx,%esi
44811f:	d1 fe                	sar    $1,%esi
448121:	89 70 08             	mov    %esi,0x8(%eax)
448124:	b8 f4 ff ff ff       	mov    $0xfffffff4,%eax
448129:	e9 6b c7 fc ff       	jmp    0x414899
44812e:	8b 51 18             	mov    0x18(%ecx),%edx
448131:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
448134:	89 0a                	mov    %ecx,(%edx)
448136:	e9 e6 c5 fc ff       	jmp    0x414721
44813b:	83 fb 04             	cmp    $0x4,%ebx
44813e:	7c 21                	jl     0x448161
448140:	8d 04 9d f8 ff ff ff 	lea    -0x8(,%ebx,4),%eax
448147:	50                   	push   %eax
448148:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
44814e:	83 c0 08             	add    $0x8,%eax
448151:	50                   	push   %eax
448152:	8b 45 18             	mov    0x18(%ebp),%eax
448155:	83 c0 08             	add    $0x8,%eax
448158:	50                   	push   %eax
448159:	e8 22 8f fd ff       	call   0x421080
44815e:	83 c4 0c             	add    $0xc,%esp
448161:	39 5d 90             	cmp    %ebx,-0x70(%ebp)
448164:	7e 07                	jle    0x44816d
448166:	81 4d 94 00 00 01 00 	orl    $0x10000,-0x6c(%ebp)
44816d:	ff b5 0c ff ff ff    	push   -0xf4(%ebp)
448173:	ff 15 48 57 4a 00    	call   *0x4a5748
448179:	83 c4 04             	add    $0x4,%esp
44817c:	e9 3a c5 fc ff       	jmp    0x4146bb
448181:	3b f3                	cmp    %ebx,%esi
448183:	0f 8c 42 c5 fc ff    	jl     0x4146cb
448189:	33 c9                	xor    %ecx,%ecx
44818b:	e9 44 c5 fc ff       	jmp    0x4146d4
448190:	85 db                	test   %ebx,%ebx
448192:	0f 84 52 c5 fc ff    	je     0x4146ea
448198:	8b 45 1c             	mov    0x1c(%ebp),%eax
44819b:	8d 3c 7d 02 00 00 00 	lea    0x2(,%edi,2),%edi
4481a2:	3b f8                	cmp    %eax,%edi
4481a4:	7e 02                	jle    0x4481a8
4481a6:	8b f8                	mov    %eax,%edi
4481a8:	8d 04 bb             	lea    (%ebx,%edi,4),%eax
4481ab:	33 ff                	xor    %edi,%edi
4481ad:	8b d0                	mov    %eax,%edx
4481af:	8d 34 b3             	lea    (%ebx,%esi,4),%esi
4481b2:	2b d6                	sub    %esi,%edx
4481b4:	83 c2 03             	add    $0x3,%edx
4481b7:	c1 ea 02             	shr    $0x2,%edx
4481ba:	3b c6                	cmp    %esi,%eax
4481bc:	1b c0                	sbb    %eax,%eax
4481be:	f7 d0                	not    %eax
4481c0:	23 c2                	and    %edx,%eax
4481c2:	0f 86 22 c5 fc ff    	jbe    0x4146ea
4481c8:	47                   	inc    %edi
4481c9:	c7 06 ff ff ff ff    	movl   $0xffffffff,(%esi)
4481cf:	8d 76 04             	lea    0x4(%esi),%esi
4481d2:	3b f8                	cmp    %eax,%edi
4481d4:	72 f2                	jb     0x4481c8
4481d6:	e9 0f c5 fc ff       	jmp    0x4146ea
4481db:	8b 50 18             	mov    0x18(%eax),%edx
4481de:	8b 45 b0             	mov    -0x50(%ebp),%eax
4481e1:	89 02                	mov    %eax,(%edx)
4481e3:	e9 37 c5 fc ff       	jmp    0x41471f
4481e8:	8d 49 00             	lea    0x0(%ecx),%ecx
4481eb:	74 48                	je     0x448235
4481ed:	41                   	inc    %ecx
4481ee:	00 d0                	add    %dl,%al
4481f0:	7f 44                	jg     0x448236
4481f2:	00 c6                	add    %al,%dh
4481f4:	7f 44                	jg     0x44823a
4481f6:	00 b6 7f 44 00 d0    	add    %dh,-0x2fffbb81(%esi)
4481fc:	7f 44                	jg     0x448242
4481fe:	00 83 7d 18 00 8d    	add    %al,-0x72ffe783(%ebx)
448204:	4d                   	dec    %ebp
448205:	18 75 19             	sbb    %dh,0x19(%ebp)
448208:	6a 01                	push   $0x1
44820a:	6a 00                	push   $0x0
44820c:	6a 00                	push   $0x0
44820e:	6a 00                	push   $0x0
448210:	6a 00                	push   $0x0
448212:	33 d2                	xor    %edx,%edx
448214:	e8 a7 c7 fc ff       	call   0x4149c0
448219:	83 c4 14             	add    $0x14,%esp
44821c:	e9 1c c9 fc ff       	jmp    0x414b3d
448221:	2b c8                	sub    %eax,%ecx
448223:	85 c9                	test   %ecx,%ecx
448225:	7e 02                	jle    0x448229
448227:	f7 d9                	neg    %ecx
448229:	8b c1                	mov    %ecx,%eax
44822b:	e9 0d c9 fc ff       	jmp    0x414b3d
448230:	8b 45 f8             	mov    -0x8(%ebp),%eax
448233:	89 45 a8             	mov    %eax,-0x58(%ebp)
448236:	8b 45 14             	mov    0x14(%ebp),%eax
448239:	89 45 a4             	mov    %eax,-0x5c(%ebp)
44823c:	8d 45 a4             	lea    -0x5c(%ebp),%eax
44823f:	89 45 14             	mov    %eax,0x14(%ebp)
448242:	c7 86 9c 00 00 00 00 	movl   $0x0,0x9c(%esi)
448249:	00 00 00
44824c:	e9 4f ca fc ff       	jmp    0x414ca0
448251:	ff 46 28             	incl   0x28(%esi)
448254:	8b 46 28             	mov    0x28(%esi),%eax
448257:	3b 46 2c             	cmp    0x2c(%esi),%eax
44825a:	0f 87 d7 60 00 00    	ja     0x44e337
448260:	0f b7 03             	movzwl (%ebx),%eax
448263:	0f b6 88 50 57 4a 00 	movzbl 0x4a5750(%eax),%ecx
44826a:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
44826e:	03 c8                	add    %eax,%ecx
448270:	8d 1c 4b             	lea    (%ebx,%ecx,2),%ebx
448273:	89 5d d0             	mov    %ebx,-0x30(%ebp)
448276:	e9 a4 c7 fc ff       	jmp    0x414a1f
44827b:	8b 45 f8             	mov    -0x8(%ebp),%eax
44827e:	8b be b0 00 00 00    	mov    0xb0(%esi),%edi
448284:	89 5d ec             	mov    %ebx,-0x14(%ebp)
448287:	89 45 d8             	mov    %eax,-0x28(%ebp)
44828a:	8b 45 18             	mov    0x18(%ebp),%eax
44828d:	8d 53 04             	lea    0x4(%ebx),%edx
448290:	8b 4d f8             	mov    -0x8(%ebp),%ecx
448293:	40                   	inc    %eax
448294:	50                   	push   %eax
448295:	ff 75 14             	push   0x14(%ebp)
448298:	56                   	push   %esi
448299:	ff 75 0c             	push   0xc(%ebp)
44829c:	ff 75 08             	push   0x8(%ebp)
44829f:	e8 1c c7 fc ff       	call   0x4149c0
4482a4:	83 c4 14             	add    $0x14,%esp
4482a7:	83 f8 01             	cmp    $0x1,%eax
4482aa:	74 4c                	je     0x4482f8
4482ac:	3d 20 fc ff ff       	cmp    $0xfffffc20,%eax
4482b1:	75 25                	jne    0x4482d8
4482b3:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
4482b7:	8d 0c 4b             	lea    (%ebx,%ecx,2),%ecx
4482ba:	39 8e 80 00 00 00    	cmp    %ecx,0x80(%esi)
4482c0:	0f 83 77 c8 fc ff    	jae    0x414b3d
4482c6:	66 83 3b 77          	cmpw   $0x77,(%ebx)
4482ca:	74 14                	je     0x4482e0
4482cc:	66 83 39 77          	cmpw   $0x77,(%ecx)
4482d0:	0f 85 67 c8 fc ff    	jne    0x414b3d
4482d6:	eb 08                	jmp    0x4482e0
4482d8:	85 c0                	test   %eax,%eax
4482da:	0f 85 5d c8 fc ff    	jne    0x414b3d
4482e0:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
4482e4:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
4482e7:	89 be b0 00 00 00    	mov    %edi,0xb0(%esi)
4482ed:	66 83 3b 77          	cmpw   $0x77,(%ebx)
4482f1:	74 97                	je     0x44828a
4482f3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4482f6:	eb 09                	jmp    0x448301
4482f8:	8b 8e 80 00 00 00    	mov    0x80(%esi),%ecx
4482fe:	89 4d 08             	mov    %ecx,0x8(%ebp)
448301:	0f b7 03             	movzwl (%ebx),%eax
448304:	ba 82 00 00 00       	mov    $0x82,%edx
448309:	66 3b c2             	cmp    %dx,%ax
44830c:	74 09                	je     0x448317
44830e:	83 f8 77             	cmp    $0x77,%eax
448311:	0f 85 47 cd fc ff    	jne    0x41505e
448317:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
44831b:	66 83 3c 43 77       	cmpw   $0x77,(%ebx,%eax,2)
448320:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
448323:	74 f2                	je     0x448317
448325:	66 83 3b 78          	cmpw   $0x78,(%ebx)
448329:	8b 96 90 00 00 00    	mov    0x90(%esi),%edx
44832f:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
448335:	89 55 0c             	mov    %edx,0xc(%ebp)
448338:	89 45 f8             	mov    %eax,-0x8(%ebp)
44833b:	0f 84 4d 06 00 00    	je     0x44898e
448341:	3b 45 d8             	cmp    -0x28(%ebp),%eax
448344:	0f 85 7b 5d 00 00    	jne    0x44e0c5
44834a:	83 c3 04             	add    $0x4,%ebx
44834d:	89 5d d0             	mov    %ebx,-0x30(%ebp)
448350:	e9 4b c9 fc ff       	jmp    0x414ca0
448355:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
44835c:	e9 45 09 00 00       	jmp    0x448ca6
448361:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
448368:	8b c3                	mov    %ebx,%eax
44836a:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
448371:	2b 46 74             	sub    0x74(%esi),%eax
448374:	d1 f8                	sar    $1,%eax
448376:	89 45 d8             	mov    %eax,-0x28(%ebp)
448379:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
44837f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
448382:	81 ff 88 00 00 00    	cmp    $0x88,%edi
448388:	72 0a                	jb     0x448394
44838a:	c7 86 9c 00 00 00 02 	movl   $0x2,0x9c(%esi)
448391:	00 00 00
448394:	8b 45 18             	mov    0x18(%ebp),%eax
448397:	8b 4d f8             	mov    -0x8(%ebp),%ecx
44839a:	40                   	inc    %eax
44839b:	50                   	push   %eax
44839c:	ff 75 14             	push   0x14(%ebp)
44839f:	0f b7 03             	movzwl (%ebx),%eax
4483a2:	56                   	push   %esi
4483a3:	ff 75 0c             	push   0xc(%ebp)
4483a6:	0f b6 80 50 57 4a 00 	movzbl 0x4a5750(%eax),%eax
4483ad:	ff 75 08             	push   0x8(%ebp)
4483b0:	8d 14 43             	lea    (%ebx,%eax,2),%edx
4483b3:	e8 08 c6 fc ff       	call   0x4149c0
4483b8:	8b c8                	mov    %eax,%ecx
4483ba:	83 c4 14             	add    $0x14,%esp
4483bd:	81 f9 1a fc ff ff    	cmp    $0xfffffc1a,%ecx
4483c3:	0f 85 cc 09 00 00    	jne    0x448d95
4483c9:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
4483cf:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4483d2:	89 45 0c             	mov    %eax,0xc(%ebp)
4483d5:	8b 46 74             	mov    0x74(%esi),%eax
4483d8:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
4483df:	8d 1c 48             	lea    (%eax,%ecx,2),%ebx
4483e2:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
4483e8:	89 45 08             	mov    %eax,0x8(%ebp)
4483eb:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
4483f1:	39 45 f8             	cmp    %eax,-0x8(%ebp)
4483f4:	0f 84 ec 09 00 00    	je     0x448de6
4483fa:	89 45 f8             	mov    %eax,-0x8(%ebp)
4483fd:	eb 83                	jmp    0x448382
4483ff:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
448403:	83 c3 04             	add    $0x4,%ebx
448406:	89 45 e0             	mov    %eax,-0x20(%ebp)
448409:	66 83 3b 76          	cmpw   $0x76,(%ebx)
44840d:	0f 85 ca 00 00 00    	jne    0x4484dd
448413:	83 3d 24 75 4c 00 00 	cmpl   $0x0,0x4c7524
44841a:	0f 84 b4 00 00 00    	je     0x4484d4
448420:	c7 85 64 ff ff ff 02 	movl   $0x2,-0x9c(%ebp)
448427:	00 00 00
44842a:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
44842e:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
448434:	8b 46 0c             	mov    0xc(%esi),%eax
448437:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
44843d:	8b 46 78             	mov    0x78(%esi),%eax
448440:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
448446:	8b 46 7c             	mov    0x7c(%esi),%eax
448449:	2b 46 78             	sub    0x78(%esi),%eax
44844c:	d1 f8                	sar    $1,%eax
44844e:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
448454:	8b 45 08             	mov    0x8(%ebp),%eax
448457:	2b 46 78             	sub    0x78(%esi),%eax
44845a:	d1 f8                	sar    $1,%eax
44845c:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
448462:	8b 45 f8             	mov    -0x8(%ebp),%eax
448465:	2b 46 78             	sub    0x78(%esi),%eax
448468:	d1 f8                	sar    $1,%eax
44846a:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
448470:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
448474:	89 45 8c             	mov    %eax,-0x74(%ebp)
448477:	0f b7 43 06          	movzwl 0x6(%ebx),%eax
44847b:	89 45 90             	mov    %eax,-0x70(%ebp)
44847e:	8b 45 0c             	mov    0xc(%ebp),%eax
448481:	99                   	cltd
448482:	2b c2                	sub    %edx,%eax
448484:	d1 f8                	sar    $1,%eax
448486:	89 45 80             	mov    %eax,-0x80(%ebp)
448489:	0f b7 86 94 00 00 00 	movzwl 0x94(%esi),%eax
448490:	89 45 84             	mov    %eax,-0x7c(%ebp)
448493:	85 c0                	test   %eax,%eax
448495:	75 07                	jne    0x44849e
448497:	c7 45 84 ff ff ff ff 	movl   $0xffffffff,-0x7c(%ebp)
44849e:	8b 86 ac 00 00 00    	mov    0xac(%esi),%eax
4484a4:	89 45 88             	mov    %eax,-0x78(%ebp)
4484a7:	8b 86 b4 00 00 00    	mov    0xb4(%esi),%eax
4484ad:	89 45 94             	mov    %eax,-0x6c(%ebp)
4484b0:	8d 85 64 ff ff ff    	lea    -0x9c(%ebp),%eax
4484b6:	50                   	push   %eax
4484b7:	ff 15 24 75 4c 00    	call   *0x4c7524
4484bd:	83 c4 04             	add    $0x4,%esp
4484c0:	85 c0                	test   %eax,%eax
4484c2:	0f 8f 96 cb fc ff    	jg     0x41505e
4484c8:	0f 88 6f c6 fc ff    	js     0x414b3d
4484ce:	8b 55 f8             	mov    -0x8(%ebp),%edx
4484d1:	8b 45 e0             	mov    -0x20(%ebp),%eax
4484d4:	83 c3 08             	add    $0x8,%ebx
4484d7:	83 e8 04             	sub    $0x4,%eax
4484da:	89 45 e0             	mov    %eax,-0x20(%ebp)
4484dd:	0f b7 03             	movzwl (%ebx),%eax
4484e0:	33 c9                	xor    %ecx,%ecx
4484e2:	89 45 cc             	mov    %eax,-0x34(%ebp)
4484e5:	05 73 ff ff ff       	add    $0xffffff73,%eax
4484ea:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4484ed:	83 f8 10             	cmp    $0x10,%eax
4484f0:	0f 87 08 01 00 00    	ja     0x4485fe
4484f6:	0f b6 80 7f 01 45 00 	movzbl 0x45017f(%eax),%eax
4484fd:	ff 24 85 67 01 45 00 	jmp    *0x450167(,%eax,4)
448504:	8b 8e a8 00 00 00    	mov    0xa8(%esi),%ecx
44850a:	85 c9                	test   %ecx,%ecx
44850c:	0f 84 8c 01 00 00    	je     0x44869e
448512:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
448516:	3d ff ff 00 00       	cmp    $0xffff,%eax
44851b:	0f 84 80 00 00 00    	je     0x4485a1
448521:	3b 41 04             	cmp    0x4(%ecx),%eax
448524:	74 7b                	je     0x4485a1
448526:	33 c9                	xor    %ecx,%ecx
448528:	e9 74 01 00 00       	jmp    0x4486a1
44852d:	39 8e a8 00 00 00    	cmp    %ecx,0xa8(%esi)
448533:	0f 84 68 01 00 00    	je     0x4486a1
448539:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
44853d:	0f af 4e 24          	imul   0x24(%esi),%ecx
448541:	8b 46 30             	mov    0x30(%esi),%eax
448544:	8d 04 48             	lea    (%eax,%ecx,2),%eax
448547:	0f b7 4b 04          	movzwl 0x4(%ebx),%ecx
44854b:	89 45 d8             	mov    %eax,-0x28(%ebp)
44854e:	85 c9                	test   %ecx,%ecx
448550:	0f 8e 48 01 00 00    	jle    0x44869e
448556:	8b 86 a8 00 00 00    	mov    0xa8(%esi),%eax
44855c:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
448563:	8b 40 04             	mov    0x4(%eax),%eax
448566:	89 45 ec             	mov    %eax,-0x14(%ebp)
448569:	8b 45 d8             	mov    -0x28(%ebp),%eax
44856c:	49                   	dec    %ecx
44856d:	0f b7 00             	movzwl (%eax),%eax
448570:	3b 45 ec             	cmp    -0x14(%ebp),%eax
448573:	74 2c                	je     0x4485a1
448575:	8b 55 d8             	mov    -0x28(%ebp),%edx
448578:	8b 46 24             	mov    0x24(%esi),%eax
44857b:	8d 14 42             	lea    (%edx,%eax,2),%edx
44857e:	89 55 d8             	mov    %edx,-0x28(%ebp)
448581:	8b 55 f8             	mov    -0x8(%ebp),%edx
448584:	85 c9                	test   %ecx,%ecx
448586:	7f e1                	jg     0x448569
448588:	e9 11 01 00 00       	jmp    0x44869e
44858d:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
448591:	03 c9                	add    %ecx,%ecx
448593:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
448596:	7d 8e                	jge    0x448526
448598:	8b 46 0c             	mov    0xc(%esi),%eax
44859b:	83 3c 88 00          	cmpl   $0x0,(%eax,%ecx,4)
44859f:	7c 85                	jl     0x448526
4485a1:	b9 01 00 00 00       	mov    $0x1,%ecx
4485a6:	e9 d5 00 00 00       	jmp    0x448680
4485ab:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
4485af:	0f af 4e 24          	imul   0x24(%esi),%ecx
4485b3:	8b 46 30             	mov    0x30(%esi),%eax
4485b6:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
4485b9:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
4485bd:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4485c0:	85 c0                	test   %eax,%eax
4485c2:	0f 8e d6 00 00 00    	jle    0x44869e
4485c8:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
4485cf:	0f b7 09             	movzwl (%ecx),%ecx
4485d2:	48                   	dec    %eax
4485d3:	03 c9                	add    %ecx,%ecx
4485d5:	89 45 d8             	mov    %eax,-0x28(%ebp)
4485d8:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
4485db:	7d 09                	jge    0x4485e6
4485dd:	8b 46 0c             	mov    0xc(%esi),%eax
4485e0:	83 3c 88 00          	cmpl   $0x0,(%eax,%ecx,4)