516097:	83 f8 0a             	cmp    $0xa,%eax
51609a:	74 0e                	je     0x5160aa
51609c:	83 f8 09             	cmp    $0x9,%eax
51609f:	74 09                	je     0x5160aa
5160a1:	83 f8 0d             	cmp    $0xd,%eax
5160a4:	74 04                	je     0x5160aa
5160a6:	32 c0                	xor    %al,%al
5160a8:	eb 02                	jmp    0x5160ac
5160aa:	b0 01                	mov    $0x1,%al
5160ac:	88 45 ec             	mov    %al,-0x14(%ebp)
5160af:	85 c9                	test   %ecx,%ecx
5160b1:	0f 84 ab 00 00 00    	je     0x516162
5160b7:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
5160bb:	0f 85 a1 00 00 00    	jne    0x516162
5160c1:	83 7d c0 0c          	cmpl   $0xc,-0x40(%ebp)
5160c5:	0f 84 97 00 00 00    	je     0x516162
5160cb:	83 7d c0 0e          	cmpl   $0xe,-0x40(%ebp)
5160cf:	0f 84 8d 00 00 00    	je     0x516162
5160d5:	8b 49 04             	mov    0x4(%ecx),%ecx
5160d8:	0c 0c                	or     $0xc,%al
5160da:	88 45 ec             	mov    %al,-0x14(%ebp)
5160dd:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5160e0:	89 4d e8             	mov    %ecx,-0x18(%ebp)
5160e3:	8b 00                	mov    (%eax),%eax
5160e5:	3b 08                	cmp    (%eax),%ecx
5160e7:	7d 4e                	jge    0x516137
5160e9:	8b 7d e4             	mov    -0x1c(%ebp),%edi
5160ec:	8b d9                	mov    %ecx,%ebx
5160ee:	8b 75 d4             	mov    -0x2c(%ebp),%esi
5160f1:	8d 0c 9b             	lea    (%ebx,%ebx,4),%ecx
5160f4:	c1 e1 02             	shl    $0x2,%ecx
5160f7:	89 4d c8             	mov    %ecx,-0x38(%ebp)
5160fa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
516100:	8b 07                	mov    (%edi),%eax
516102:	0f b7 44 08 14       	movzwl 0x14(%eax,%ecx,1),%eax
516107:	85 c0                	test   %eax,%eax
516109:	74 16                	je     0x516121
51610b:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
51610e:	66 8b d3             	mov    %bx,%dx
516111:	66 2b 57 04          	sub    0x4(%edi),%dx
516115:	8b 46 1c             	mov    0x1c(%esi),%eax
516118:	66 42                	inc    %dx
51611a:	66 89 14 88          	mov    %dx,(%eax,%ecx,4)
51611e:	8b 4d c8             	mov    -0x38(%ebp),%ecx
516121:	8b 07                	mov    (%edi),%eax
516123:	43                   	inc    %ebx
516124:	83 c1 14             	add    $0x14,%ecx
516127:	89 4d c8             	mov    %ecx,-0x38(%ebp)
51612a:	3b 18                	cmp    (%eax),%ebx
51612c:	7c d2                	jl     0x516100
51612e:	8b 5d b8             	mov    -0x48(%ebp),%ebx
516131:	8b 7d cc             	mov    -0x34(%ebp),%edi
516134:	8b 55 f0             	mov    -0x10(%ebp),%edx
516137:	8b 45 d4             	mov    -0x2c(%ebp),%eax
51613a:	8b 40 1c             	mov    0x1c(%eax),%eax
51613d:	8b 08                	mov    (%eax),%ecx
51613f:	85 c9                	test   %ecx,%ecx
516141:	7e 1c                	jle    0x51615f
516143:	83 c0 14             	add    $0x14,%eax
516146:	66 83 38 00          	cmpw   $0x0,(%eax)
51614a:	76 08                	jbe    0x516154
51614c:	4f                   	dec    %edi
51614d:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
516154:	83 c0 14             	add    $0x14,%eax
516157:	83 e9 01             	sub    $0x1,%ecx
51615a:	75 ea                	jne    0x516146
51615c:	89 7d cc             	mov    %edi,-0x34(%ebp)
51615f:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
516162:	8b 75 d4             	mov    -0x2c(%ebp),%esi
516165:	8a 45 ec             	mov    -0x14(%ebp),%al
516168:	89 55 f4             	mov    %edx,-0xc(%ebp)
51616b:	88 45 f8             	mov    %al,-0x8(%ebp)
51616e:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
516172:	8b 75 ac             	mov    -0x54(%ebp),%esi
516175:	74 19                	je     0x516190
516177:	a8 08                	test   $0x8,%al
516179:	74 15                	je     0x516190
51617b:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
51617f:	7e 0f                	jle    0x516190
516181:	8d 45 f4             	lea    -0xc(%ebp),%eax
516184:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
51618b:	89 41 24             	mov    %eax,0x24(%ecx)
51618e:	eb 15                	jmp    0x5161a5
516190:	ff 75 ec             	push   -0x14(%ebp)
516193:	8b 45 d4             	mov    -0x2c(%ebp),%eax
516196:	6a 00                	push   $0x0
516198:	52                   	push   %edx
516199:	ff 70 1c             	push   0x1c(%eax)
51619c:	53                   	push   %ebx
51619d:	e8 2e db 00 00       	call   0x523cd0
5161a2:	83 c4 14             	add    $0x14,%esp
5161a5:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
5161a9:	0f 84 f5 02 00 00    	je     0x5164a4
5161af:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
5161b2:	0f b6 41 01          	movzbl 0x1(%ecx),%eax
5161b6:	83 e8 01             	sub    $0x1,%eax
5161b9:	0f 84 53 02 00 00    	je     0x516412
5161bf:	83 e8 01             	sub    $0x1,%eax
5161c2:	74 18                	je     0x5161dc
5161c4:	ff 75 f0             	push   -0x10(%ebp)
5161c7:	57                   	push   %edi
5161c8:	ff 75 20             	push   0x20(%ebp)
5161cb:	ff 71 04             	push   0x4(%ecx)
5161ce:	53                   	push   %ebx
5161cf:	e8 7c 37 fe ff       	call   0x4f9950
5161d4:	83 c4 14             	add    $0x14,%esp
5161d7:	e9 6b 02 00 00       	jmp    0x516447
5161dc:	8b 43 2c             	mov    0x2c(%ebx),%eax
5161df:	8d 50 01             	lea    0x1(%eax),%edx
5161e2:	03 c7                	add    %edi,%eax
5161e4:	89 43 2c             	mov    %eax,0x2c(%ebx)
5161e7:	89 55 c8             	mov    %edx,-0x38(%ebp)
5161ea:	8b 16                	mov    (%esi),%edx
5161ec:	80 7a 51 00          	cmpb   $0x0,0x51(%edx)
5161f0:	75 30                	jne    0x516222
5161f2:	8b 41 08             	mov    0x8(%ecx),%eax
5161f5:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5161f8:	8b 46 68             	mov    0x68(%esi),%eax
5161fb:	ff 74 88 10          	push   0x10(%eax,%ecx,4)
5161ff:	8d 3c 88             	lea    (%eax,%ecx,4),%edi
516202:	0f be 47 01          	movsbl 0x1(%edi),%eax
516206:	50                   	push   %eax
516207:	52                   	push   %edx
516208:	e8 a3 da fe ff       	call   0x503cb0
51620d:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
516210:	83 c4 0c             	add    $0xc,%esp
516213:	66 c7 07 ad 00       	movw   $0xad,(%edi)
516218:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
51621f:	8b 7d cc             	mov    -0x34(%ebp),%edi
516222:	8b 49 08             	mov    0x8(%ecx),%ecx
516225:	85 c9                	test   %ecx,%ecx
516227:	79 04                	jns    0x51622d
516229:	8b 4e 6c             	mov    0x6c(%esi),%ecx
51622c:	49                   	dec    %ecx
51622d:	8b 06                	mov    (%esi),%eax
51622f:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
516233:	74 07                	je     0x51623c
516235:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
51623a:	eb 09                	jmp    0x516245
51623c:	8b 46 68             	mov    0x68(%esi),%eax
51623f:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
516242:	8d 04 88             	lea    (%eax,%ecx,4),%eax
516245:	8b 4d c8             	mov    -0x38(%ebp),%ecx
516248:	c6 00 48             	movb   $0x48,(%eax)
51624b:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
516252:	89 48 08             	mov    %ecx,0x8(%eax)
516255:	8b 46 6c             	mov    0x6c(%esi),%eax
516258:	03 c7                	add    %edi,%eax
51625a:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
516261:	89 45 b0             	mov    %eax,-0x50(%ebp)
516264:	85 ff                	test   %edi,%edi
516266:	0f 8e 54 01 00 00    	jle    0x5163c0
51626c:	8b 45 f0             	mov    -0x10(%ebp),%eax
51626f:	33 d2                	xor    %edx,%edx
516271:	2b c8                	sub    %eax,%ecx
516273:	89 45 ec             	mov    %eax,-0x14(%ebp)
516276:	89 55 e8             	mov    %edx,-0x18(%ebp)
516279:	89 4d dc             	mov    %ecx,-0x24(%ebp)
51627c:	0f 1f 40 00          	nopl   0x0(%eax)
516280:	8b 45 d4             	mov    -0x2c(%ebp),%eax
516283:	8b 40 1c             	mov    0x1c(%eax),%eax
516286:	ff 74 10 04          	push   0x4(%eax,%edx,1)
51628a:	53                   	push   %ebx
51628b:	e8 50 00 01 00       	call   0x5262e0
516290:	8b 4e 6c             	mov    0x6c(%esi),%ecx
516293:	8b d0                	mov    %eax,%edx
516295:	8d 47 ff             	lea    -0x1(%edi),%eax
516298:	89 55 b4             	mov    %edx,-0x4c(%ebp)
51629b:	83 c4 08             	add    $0x8,%esp
51629e:	39 45 c4             	cmp    %eax,-0x3c(%ebp)
5162a1:	7d 52                	jge    0x5162f5
5162a3:	39 4e 70             	cmp    %ecx,0x70(%esi)
5162a6:	7f 20                	jg     0x5162c8
5162a8:	8b 45 ec             	mov    -0x14(%ebp),%eax
5162ab:	8b 4d dc             	mov    -0x24(%ebp),%ecx
5162ae:	03 c8                	add    %eax,%ecx
5162b0:	51                   	push   %ecx
5162b1:	ff 75 b0             	push   -0x50(%ebp)
5162b4:	50                   	push   %eax
5162b5:	6a 34                	push   $0x34
5162b7:	56                   	push   %esi
5162b8:	e8 43 02 ff ff       	call   0x506500
5162bd:	8b 55 b4             	mov    -0x4c(%ebp),%edx
5162c0:	83 c4 14             	add    $0x14,%esp
5162c3:	e9 82 00 00 00       	jmp    0x51634a
5162c8:	8b 55 ec             	mov    -0x14(%ebp),%edx
5162cb:	8d 41 01             	lea    0x1(%ecx),%eax
5162ce:	89 46 6c             	mov    %eax,0x6c(%esi)
5162d1:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5162d4:	8b 46 68             	mov    0x68(%esi),%eax
5162d7:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5162db:	c7 04 88 34 00 00 00 	movl   $0x34,(%eax,%ecx,4)
5162e2:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
5162e5:	8b 45 b0             	mov    -0x50(%ebp),%eax
5162e8:	89 41 08             	mov    %eax,0x8(%ecx)
5162eb:	8b 45 dc             	mov    -0x24(%ebp),%eax
5162ee:	03 c2                	add    %edx,%eax
5162f0:	8b 55 b4             	mov    -0x4c(%ebp),%edx
5162f3:	eb 4b                	jmp    0x516340
5162f5:	39 4e 70             	cmp    %ecx,0x70(%esi)
5162f8:	7f 1d                	jg     0x516317
5162fa:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5162fd:	8b 45 dc             	mov    -0x24(%ebp),%eax
516300:	03 c1                	add    %ecx,%eax
516302:	50                   	push   %eax
516303:	ff 75 20             	push   0x20(%ebp)
516306:	51                   	push   %ecx
516307:	6a 35                	push   $0x35
516309:	56                   	push   %esi
51630a:	e8 f1 01 ff ff       	call   0x506500
51630f:	8b 55 b4             	mov    -0x4c(%ebp),%edx
516312:	83 c4 14             	add    $0x14,%esp
516315:	eb 33                	jmp    0x51634a
516317:	8b 5d 20             	mov    0x20(%ebp),%ebx
51631a:	8d 41 01             	lea    0x1(%ecx),%eax
51631d:	89 46 6c             	mov    %eax,0x6c(%esi)
516320:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
516323:	8b 46 68             	mov    0x68(%esi),%eax
516326:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
51632a:	8b 5d b8             	mov    -0x48(%ebp),%ebx
51632d:	c7 04 88 35 00 00 00 	movl   $0x35,(%eax,%ecx,4)
516334:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
516337:	8b 45 ec             	mov    -0x14(%ebp),%eax
51633a:	89 41 04             	mov    %eax,0x4(%ecx)
51633d:	03 45 dc             	add    -0x24(%ebp),%eax
516340:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
516347:	89 41 0c             	mov    %eax,0xc(%ecx)
51634a:	8b 06                	mov    (%esi),%eax
51634c:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
516350:	74 0e                	je     0x516360
516352:	52                   	push   %edx
516353:	6a fe                	push   $0xfffffffe
516355:	50                   	push   %eax
516356:	e8 55 d9 fe ff       	call   0x503cb0
51635b:	83 c4 0c             	add    $0xc,%esp
51635e:	eb 2e                	jmp    0x51638e
516360:	8b 46 6c             	mov    0x6c(%esi),%eax
516363:	48                   	dec    %eax
516364:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
516367:	8b 46 68             	mov    0x68(%esi),%eax
51636a:	80 7c 88 01 00       	cmpb   $0x0,0x1(%eax,%ecx,4)
51636f:	8d 04 88             	lea    (%eax,%ecx,4),%eax
516372:	74 0f                	je     0x516383
516374:	6a fe                	push   $0xfffffffe
516376:	52                   	push   %edx
516377:	50                   	push   %eax
516378:	56                   	push   %esi
516379:	e8 c2 38 04 00       	call   0x559c40
51637e:	83 c4 10             	add    $0x10,%esp
516381:	eb 0b                	jmp    0x51638e
516383:	85 d2                	test   %edx,%edx
516385:	74 07                	je     0x51638e
516387:	89 50 10             	mov    %edx,0x10(%eax)
51638a:	c6 40 01 fe          	movb   $0xfe,0x1(%eax)
51638e:	8b 46 6c             	mov    0x6c(%esi),%eax
516391:	85 c0                	test   %eax,%eax
516393:	7e 10                	jle    0x5163a5
516395:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
516398:	ba 80 00 00 00       	mov    $0x80,%edx
51639d:	8b 46 68             	mov    0x68(%esi),%eax
5163a0:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
5163a5:	8b 45 c4             	mov    -0x3c(%ebp),%eax
5163a8:	8b 55 e8             	mov    -0x18(%ebp),%edx
5163ab:	40                   	inc    %eax
5163ac:	ff 45 ec             	incl   -0x14(%ebp)
5163af:	83 c2 14             	add    $0x14,%edx
5163b2:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5163b5:	89 55 e8             	mov    %edx,-0x18(%ebp)
5163b8:	3b c7                	cmp    %edi,%eax
5163ba:	0f 8c c0 fe ff ff    	jl     0x516280
5163c0:	8b 4e 6c             	mov    0x6c(%esi),%ecx
5163c3:	8d 47 ff             	lea    -0x1(%edi),%eax
5163c6:	39 4e 70             	cmp    %ecx,0x70(%esi)
5163c9:	7f 15                	jg     0x5163e0
5163cb:	8b 55 c8             	mov    -0x38(%ebp),%edx
5163ce:	50                   	push   %eax
5163cf:	52                   	push   %edx
5163d0:	ff 75 f0             	push   -0x10(%ebp)
5163d3:	6a 4d                	push   $0x4d
5163d5:	56                   	push   %esi
5163d6:	e8 25 01 ff ff       	call   0x506500
5163db:	83 c4 14             	add    $0x14,%esp
5163de:	eb 67                	jmp    0x516447
5163e0:	8b 55 f0             	mov    -0x10(%ebp),%edx
5163e3:	8d 41 01             	lea    0x1(%ecx),%eax
5163e6:	89 46 6c             	mov    %eax,0x6c(%esi)
5163e9:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5163ec:	8b 46 68             	mov    0x68(%esi),%eax
5163ef:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5163f3:	8b 55 c8             	mov    -0x38(%ebp),%edx
5163f6:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5163fa:	8d 57 ff             	lea    -0x1(%edi),%edx
5163fd:	c7 04 88 4d 00 00 00 	movl   $0x4d,(%eax,%ecx,4)
516404:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
516408:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
51640f:	00
516410:	eb 35                	jmp    0x516447
516412:	8b 16                	mov    (%esi),%edx
516414:	80 7a 51 00          	cmpb   $0x0,0x51(%edx)
516418:	75 2d                	jne    0x516447
51641a:	8b 41 08             	mov    0x8(%ecx),%eax
51641d:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
516420:	8b 46 68             	mov    0x68(%esi),%eax
516423:	ff 74 88 10          	push   0x10(%eax,%ecx,4)
516427:	8d 3c 88             	lea    (%eax,%ecx,4),%edi
51642a:	0f be 47 01          	movsbl 0x1(%edi),%eax
51642e:	50                   	push   %eax
51642f:	52                   	push   %edx
516430:	e8 7b d8 fe ff       	call   0x503cb0
516435:	66 c7 07 ad 00       	movw   $0xad,(%edi)
51643a:	83 c4 0c             	add    $0xc,%esp
51643d:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
516444:	8b 7d cc             	mov    -0x34(%ebp),%edi
516447:	8b 45 e4             	mov    -0x1c(%ebp),%eax
51644a:	85 c0                	test   %eax,%eax
51644c:	75 59                	jne    0x5164a7
51644e:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
516451:	8b 51 0c             	mov    0xc(%ecx),%edx
516454:	85 d2                	test   %edx,%edx
516456:	7e 4f                	jle    0x5164a7
516458:	8b 4e 6c             	mov    0x6c(%esi),%ecx
51645b:	39 4e 70             	cmp    %ecx,0x70(%esi)
51645e:	7f 13                	jg     0x516473
516460:	6a 01                	push   $0x1
516462:	ff 75 20             	push   0x20(%ebp)
516465:	52                   	push   %edx
516466:	6a 30                	push   $0x30
516468:	56                   	push   %esi
516469:	e8 92 00 ff ff       	call   0x506500
51646e:	83 c4 14             	add    $0x14,%esp
516471:	eb 31                	jmp    0x5164a4
516473:	8b 5d b8             	mov    -0x48(%ebp),%ebx
516476:	8d 41 01             	lea    0x1(%ecx),%eax
516479:	89 46 6c             	mov    %eax,0x6c(%esi)
51647c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51647f:	8b 46 68             	mov    0x68(%esi),%eax
516482:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
516486:	8b 55 20             	mov    0x20(%ebp),%edx
516489:	c7 04 88 30 00 00 00 	movl   $0x30,(%eax,%ecx,4)
516490:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
516494:	c7 44 88 0c 01 00 00 	movl   $0x1,0xc(%eax,%ecx,4)
51649b:	00
51649c:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5164a3:	00
5164a4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5164a7:	8b 55 c0             	mov    -0x40(%ebp),%edx
5164aa:	8d 4a ff             	lea    -0x1(%edx),%ecx
5164ad:	83 f9 0d             	cmp    $0xd,%ecx
5164b0:	0f 87 84 05 00 00    	ja     0x516a3a
5164b6:	ff 24 8d b4 6a 51 00 	jmp    *0x516ab4(,%ecx,4)