5d0228:	ff 75 10             	push   0x10(%ebp)
5d022b:	0f 95 c0             	setne  %al
5d022e:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
5d0235:	50                   	push   %eax
5d0236:	ff 75 20             	push   0x20(%ebp)
5d0239:	ff 15 fc 20 68 00    	call   *0x6820fc
5d023f:	8b f8                	mov    %eax,%edi
5d0241:	89 7d f8             	mov    %edi,-0x8(%ebp)
5d0244:	85 ff                	test   %edi,%edi
5d0246:	0f 84 4f 01 00 00    	je     0x5d039b
5d024c:	8d 04 3f             	lea    (%edi,%edi,1),%eax
5d024f:	8d 48 08             	lea    0x8(%eax),%ecx
5d0252:	3b c1                	cmp    %ecx,%eax
5d0254:	1b c0                	sbb    %eax,%eax
5d0256:	23 c1                	and    %ecx,%eax
5d0258:	74 3a                	je     0x5d0294
5d025a:	3d 00 04 00 00       	cmp    $0x400,%eax
5d025f:	77 17                	ja     0x5d0278
5d0261:	e8 ea 1b 01 00       	call   0x5e1e50
5d0266:	8b dc                	mov    %esp,%ebx
5d0268:	85 db                	test   %ebx,%ebx
5d026a:	0f 84 20 01 00 00    	je     0x5d0390
5d0270:	c7 03 cc cc 00 00    	movl   $0xcccc,(%ebx)
5d0276:	eb 17                	jmp    0x5d028f
5d0278:	50                   	push   %eax
5d0279:	e8 32 e5 01 00       	call   0x5ee7b0
5d027e:	8b d8                	mov    %eax,%ebx
5d0280:	59                   	pop    %ecx
5d0281:	85 db                	test   %ebx,%ebx
5d0283:	0f 84 07 01 00 00    	je     0x5d0390
5d0289:	c7 03 dd dd 00 00    	movl   $0xdddd,(%ebx)
5d028f:	83 c3 08             	add    $0x8,%ebx
5d0292:	eb 02                	jmp    0x5d0296
5d0294:	33 db                	xor    %ebx,%ebx
5d0296:	85 db                	test   %ebx,%ebx
5d0298:	0f 84 f2 00 00 00    	je     0x5d0390
5d029e:	57                   	push   %edi
5d029f:	53                   	push   %ebx
5d02a0:	56                   	push   %esi
5d02a1:	ff 75 10             	push   0x10(%ebp)
5d02a4:	6a 01                	push   $0x1
5d02a6:	ff 75 20             	push   0x20(%ebp)
5d02a9:	ff 15 fc 20 68 00    	call   *0x6820fc
5d02af:	85 c0                	test   %eax,%eax
5d02b1:	0f 84 d9 00 00 00    	je     0x5d0390
5d02b7:	6a 00                	push   $0x0
5d02b9:	6a 00                	push   $0x0
5d02bb:	57                   	push   %edi
5d02bc:	53                   	push   %ebx
5d02bd:	ff 75 0c             	push   0xc(%ebp)
5d02c0:	ff 75 08             	push   0x8(%ebp)
5d02c3:	e8 ed 05 01 00       	call   0x5e08b5
5d02c8:	8b f0                	mov    %eax,%esi
5d02ca:	83 c4 18             	add    $0x18,%esp
5d02cd:	85 f6                	test   %esi,%esi
5d02cf:	0f 84 bb 00 00 00    	je     0x5d0390
5d02d5:	ba 00 04 00 00       	mov    $0x400,%edx
5d02da:	85 55 0c             	test   %edx,0xc(%ebp)
5d02dd:	74 2c                	je     0x5d030b
5d02df:	8b 45 1c             	mov    0x1c(%ebp),%eax
5d02e2:	85 c0                	test   %eax,%eax
5d02e4:	0f 84 a8 00 00 00    	je     0x5d0392
5d02ea:	3b f0                	cmp    %eax,%esi
5d02ec:	0f 8f a0 00 00 00    	jg     0x5d0392
5d02f2:	50                   	push   %eax
5d02f3:	ff 75 18             	push   0x18(%ebp)
5d02f6:	57                   	push   %edi
5d02f7:	53                   	push   %ebx
5d02f8:	ff 75 0c             	push   0xc(%ebp)
5d02fb:	ff 75 08             	push   0x8(%ebp)
5d02fe:	e8 b2 05 01 00       	call   0x5e08b5
5d0303:	83 c4 18             	add    $0x18,%esp
5d0306:	e9 87 00 00 00       	jmp    0x5d0392
5d030b:	8d 04 36             	lea    (%esi,%esi,1),%eax
5d030e:	8d 48 08             	lea    0x8(%eax),%ecx
5d0311:	3b c1                	cmp    %ecx,%eax
5d0313:	1b c0                	sbb    %eax,%eax
5d0315:	23 c1                	and    %ecx,%eax
5d0317:	74 2f                	je     0x5d0348
5d0319:	3b c2                	cmp    %edx,%eax
5d031b:	77 13                	ja     0x5d0330
5d031d:	e8 2e 1b 01 00       	call   0x5e1e50
5d0322:	8b fc                	mov    %esp,%edi
5d0324:	85 ff                	test   %edi,%edi
5d0326:	74 5f                	je     0x5d0387
5d0328:	c7 07 cc cc 00 00    	movl   $0xcccc,(%edi)
5d032e:	eb 13                	jmp    0x5d0343
5d0330:	50                   	push   %eax
5d0331:	e8 7a e4 01 00       	call   0x5ee7b0
5d0336:	8b f8                	mov    %eax,%edi
5d0338:	59                   	pop    %ecx
5d0339:	85 ff                	test   %edi,%edi
5d033b:	74 4a                	je     0x5d0387
5d033d:	c7 07 dd dd 00 00    	movl   $0xdddd,(%edi)
5d0343:	83 c7 08             	add    $0x8,%edi
5d0346:	eb 02                	jmp    0x5d034a
5d0348:	33 ff                	xor    %edi,%edi
5d034a:	85 ff                	test   %edi,%edi
5d034c:	74 39                	je     0x5d0387
5d034e:	56                   	push   %esi
5d034f:	57                   	push   %edi
5d0350:	ff 75 f8             	push   -0x8(%ebp)
5d0353:	53                   	push   %ebx
5d0354:	ff 75 0c             	push   0xc(%ebp)
5d0357:	ff 75 08             	push   0x8(%ebp)
5d035a:	e8 56 05 01 00       	call   0x5e08b5
5d035f:	83 c4 18             	add    $0x18,%esp
5d0362:	85 c0                	test   %eax,%eax
5d0364:	74 21                	je     0x5d0387
5d0366:	33 c0                	xor    %eax,%eax
5d0368:	50                   	push   %eax
5d0369:	50                   	push   %eax
5d036a:	39 45 1c             	cmp    %eax,0x1c(%ebp)
5d036d:	75 04                	jne    0x5d0373
5d036f:	50                   	push   %eax
5d0370:	50                   	push   %eax
5d0371:	eb 06                	jmp    0x5d0379
5d0373:	ff 75 1c             	push   0x1c(%ebp)
5d0376:	ff 75 18             	push   0x18(%ebp)
5d0379:	56                   	push   %esi
5d037a:	57                   	push   %edi
5d037b:	50                   	push   %eax
5d037c:	ff 75 20             	push   0x20(%ebp)
5d037f:	ff 15 b4 21 68 00    	call   *0x6821b4
5d0385:	8b f0                	mov    %eax,%esi
5d0387:	57                   	push   %edi
5d0388:	e8 20 00 00 00       	call   0x5d03ad
5d038d:	59                   	pop    %ecx
5d038e:	eb 02                	jmp    0x5d0392
5d0390:	33 f6                	xor    %esi,%esi
5d0392:	53                   	push   %ebx
5d0393:	e8 15 00 00 00       	call   0x5d03ad
5d0398:	59                   	pop    %ecx
5d0399:	8b c6                	mov    %esi,%eax
5d039b:	8d 65 ec             	lea    -0x14(%ebp),%esp
5d039e:	5f                   	pop    %edi
5d039f:	5e                   	pop    %esi
5d03a0:	5b                   	pop    %ebx
5d03a1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5d03a4:	33 cd                	xor    %ebp,%ecx
5d03a6:	e8 2f 11 01 00       	call   0x5e14da
5d03ab:	c9                   	leave
5d03ac:	c3                   	ret
5d03ad:	55                   	push   %ebp
5d03ae:	8b ec                	mov    %esp,%ebp
5d03b0:	8b 45 08             	mov    0x8(%ebp),%eax
5d03b3:	85 c0                	test   %eax,%eax
5d03b5:	74 12                	je     0x5d03c9
5d03b7:	83 e8 08             	sub    $0x8,%eax
5d03ba:	81 38 dd dd 00 00    	cmpl   $0xdddd,(%eax)
5d03c0:	75 07                	jne    0x5d03c9
5d03c2:	50                   	push   %eax
5d03c3:	e8 a8 e2 01 00       	call   0x5ee670
5d03c8:	59                   	pop    %ecx
5d03c9:	5d                   	pop    %ebp
5d03ca:	c3                   	ret
5d03cb:	55                   	push   %ebp
5d03cc:	8b ec                	mov    %esp,%ebp
5d03ce:	56                   	push   %esi
5d03cf:	8b 75 14             	mov    0x14(%ebp),%esi
5d03d2:	85 f6                	test   %esi,%esi
5d03d4:	7e 14                	jle    0x5d03ea
5d03d6:	56                   	push   %esi
5d03d7:	ff 75 10             	push   0x10(%ebp)
5d03da:	e8 62 9c 02 00       	call   0x5fa041
5d03df:	59                   	pop    %ecx
5d03e0:	3b c6                	cmp    %esi,%eax
5d03e2:	59                   	pop    %ecx
5d03e3:	8d 70 01             	lea    0x1(%eax),%esi
5d03e6:	7c 02                	jl     0x5d03ea
5d03e8:	8b f0                	mov    %eax,%esi
5d03ea:	ff 75 1c             	push   0x1c(%ebp)
5d03ed:	ff 75 18             	push   0x18(%ebp)
5d03f0:	56                   	push   %esi
5d03f1:	ff 75 10             	push   0x10(%ebp)
5d03f4:	ff 75 0c             	push   0xc(%ebp)
5d03f7:	ff 75 08             	push   0x8(%ebp)
5d03fa:	e8 b6 04 01 00       	call   0x5e08b5
5d03ff:	83 c4 18             	add    $0x18,%esp
5d0402:	5e                   	pop    %esi
5d0403:	5d                   	pop    %ebp
5d0404:	c3                   	ret
5d0405:	55                   	push   %ebp
5d0406:	8b ec                	mov    %esp,%ebp
5d0408:	ff 75 0c             	push   0xc(%ebp)
5d040b:	8b 4d 08             	mov    0x8(%ebp),%ecx
5d040e:	e8 b0 cc 00 00       	call   0x5dd0c3
5d0413:	f6 d8                	neg    %al
5d0415:	1a c0                	sbb    %al,%al
5d0417:	fe c0                	inc    %al
5d0419:	5d                   	pop    %ebp
5d041a:	c3                   	ret
5d041b:	55                   	push   %ebp
5d041c:	8b ec                	mov    %esp,%ebp
5d041e:	56                   	push   %esi
5d041f:	8b 75 0c             	mov    0xc(%ebp),%esi
5d0422:	eb 0f                	jmp    0x5d0433
5d0424:	0f b7 06             	movzwl (%esi),%eax
5d0427:	8d 4d 14             	lea    0x14(%ebp),%ecx
5d042a:	50                   	push   %eax
5d042b:	e8 72 1b 00 00       	call   0x5d1fa2
5d0430:	83 c6 02             	add    $0x2,%esi
5d0433:	3b 75 10             	cmp    0x10(%ebp),%esi
5d0436:	75 ec                	jne    0x5d0424
5d0438:	8b 45 08             	mov    0x8(%ebp),%eax
5d043b:	8b 4d 14             	mov    0x14(%ebp),%ecx
5d043e:	5e                   	pop    %esi
5d043f:	89 08                	mov    %ecx,(%eax)
5d0441:	8b 4d 18             	mov    0x18(%ebp),%ecx
5d0444:	89 48 04             	mov    %ecx,0x4(%eax)
5d0447:	5d                   	pop    %ebp
5d0448:	c3                   	ret
5d0449:	55                   	push   %ebp
5d044a:	8b ec                	mov    %esp,%ebp
5d044c:	56                   	push   %esi
5d044d:	8b 75 0c             	mov    0xc(%ebp),%esi
5d0450:	eb 0f                	jmp    0x5d0461
5d0452:	0f b7 06             	movzwl (%esi),%eax
5d0455:	8d 4d 14             	lea    0x14(%ebp),%ecx
5d0458:	50                   	push   %eax
5d0459:	e8 52 05 e7 ff       	call   0x4409b0
5d045e:	83 c6 02             	add    $0x2,%esi
5d0461:	3b 75 10             	cmp    0x10(%ebp),%esi
5d0464:	75 ec                	jne    0x5d0452
5d0466:	8b 45 08             	mov    0x8(%ebp),%eax
5d0469:	8b 4d 14             	mov    0x14(%ebp),%ecx
5d046c:	5e                   	pop    %esi
5d046d:	89 08                	mov    %ecx,(%eax)
5d046f:	8b 4d 18             	mov    0x18(%ebp),%ecx
5d0472:	89 48 04             	mov    %ecx,0x4(%eax)
5d0475:	5d                   	pop    %ebp
5d0476:	c3                   	ret
5d0477:	55                   	push   %ebp
5d0478:	8b ec                	mov    %esp,%ebp
5d047a:	51                   	push   %ecx
5d047b:	56                   	push   %esi
5d047c:	8b 75 08             	mov    0x8(%ebp),%esi
5d047f:	8d 45 0c             	lea    0xc(%ebp),%eax
5d0482:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
5d0486:	ff 75 fc             	push   -0x4(%ebp)
5d0489:	50                   	push   %eax
5d048a:	8d 46 34             	lea    0x34(%esi),%eax
5d048d:	50                   	push   %eax
5d048e:	56                   	push   %esi
5d048f:	e8 7f 00 00 00       	call   0x5d0513
5d0494:	83 c4 10             	add    $0x10,%esp
5d0497:	2b c6                	sub    %esi,%eax
5d0499:	d1 f8                	sar    $1,%eax
5d049b:	5e                   	pop    %esi
5d049c:	c9                   	leave
5d049d:	c3                   	ret
5d049e:	55                   	push   %ebp
5d049f:	8b ec                	mov    %esp,%ebp
5d04a1:	51                   	push   %ecx
5d04a2:	56                   	push   %esi
5d04a3:	8b 75 08             	mov    0x8(%ebp),%esi
5d04a6:	8d 45 0c             	lea    0xc(%ebp),%eax
5d04a9:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
5d04ad:	ff 75 fc             	push   -0x4(%ebp)
5d04b0:	50                   	push   %eax
5d04b1:	8d 46 38             	lea    0x38(%esi),%eax
5d04b4:	50                   	push   %eax
5d04b5:	56                   	push   %esi
5d04b6:	e8 58 00 00 00       	call   0x5d0513
5d04bb:	83 c4 10             	add    $0x10,%esp
5d04be:	2b c6                	sub    %esi,%eax
5d04c0:	d1 f8                	sar    $1,%eax
5d04c2:	5e                   	pop    %esi
5d04c3:	c9                   	leave
5d04c4:	c3                   	ret
5d04c5:	55                   	push   %ebp
5d04c6:	8b ec                	mov    %esp,%ebp
5d04c8:	51                   	push   %ecx
5d04c9:	56                   	push   %esi
5d04ca:	8b 75 08             	mov    0x8(%ebp),%esi
5d04cd:	8d 45 0c             	lea    0xc(%ebp),%eax
5d04d0:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
5d04d4:	ff 75 fc             	push   -0x4(%ebp)
5d04d7:	50                   	push   %eax
5d04d8:	8d 46 16             	lea    0x16(%esi),%eax
5d04db:	50                   	push   %eax
5d04dc:	56                   	push   %esi
5d04dd:	e8 31 00 00 00       	call   0x5d0513
5d04e2:	83 c4 10             	add    $0x10,%esp
5d04e5:	2b c6                	sub    %esi,%eax
5d04e7:	d1 f8                	sar    $1,%eax
5d04e9:	5e                   	pop    %esi
5d04ea:	c9                   	leave
5d04eb:	c3                   	ret
5d04ec:	55                   	push   %ebp
5d04ed:	8b ec                	mov    %esp,%ebp
5d04ef:	51                   	push   %ecx
5d04f0:	56                   	push   %esi
5d04f1:	8b 75 08             	mov    0x8(%ebp),%esi
5d04f4:	8d 45 0c             	lea    0xc(%ebp),%eax
5d04f7:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
5d04fb:	ff 75 fc             	push   -0x4(%ebp)
5d04fe:	50                   	push   %eax
5d04ff:	8d 46 1c             	lea    0x1c(%esi),%eax
5d0502:	50                   	push   %eax
5d0503:	56                   	push   %esi
5d0504:	e8 0a 00 00 00       	call   0x5d0513
5d0509:	83 c4 10             	add    $0x10,%esp
5d050c:	2b c6                	sub    %esi,%eax
5d050e:	d1 f8                	sar    $1,%eax
5d0510:	5e                   	pop    %esi
5d0511:	c9                   	leave
5d0512:	c3                   	ret
5d0513:	55                   	push   %ebp
5d0514:	8b ec                	mov    %esp,%ebp
5d0516:	8b 4d 08             	mov    0x8(%ebp),%ecx
5d0519:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
5d051c:	74 13                	je     0x5d0531
5d051e:	8b 45 10             	mov    0x10(%ebp),%eax
5d0521:	0f b7 00             	movzwl (%eax),%eax
5d0524:	66 39 01             	cmp    %ax,(%ecx)
5d0527:	74 08                	je     0x5d0531
5d0529:	83 c1 02             	add    $0x2,%ecx
5d052c:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
5d052f:	75 f3                	jne    0x5d0524
5d0531:	8b c1                	mov    %ecx,%eax
5d0533:	5d                   	pop    %ebp
5d0534:	c3                   	ret
5d0535:	6a 34                	push   $0x34
5d0537:	b8 b8 91 65 00       	mov    $0x6591b8,%eax
5d053c:	e8 ae 1a 01 00       	call   0x5e1fef
5d0541:	8b 45 08             	mov    0x8(%ebp),%eax
5d0544:	8b 75 14             	mov    0x14(%ebp),%esi
5d0547:	8b 5d 10             	mov    0x10(%ebp),%ebx
5d054a:	89 45 cc             	mov    %eax,-0x34(%ebp)
5d054d:	8b 45 0c             	mov    0xc(%ebp),%eax
5d0550:	89 45 c0             	mov    %eax,-0x40(%ebp)
5d0553:	8a 06                	mov    (%esi),%al
5d0555:	89 5d c8             	mov    %ebx,-0x38(%ebp)
5d0558:	84 c0                	test   %al,%al
5d055a:	74 13                	je     0x5d056f
5d055c:	8a c8                	mov    %al,%cl
5d055e:	8b d6                	mov    %esi,%edx
5d0560:	3a c8                	cmp    %al,%cl
5d0562:	75 01                	jne    0x5d0565
5d0564:	43                   	inc    %ebx
5d0565:	42                   	inc    %edx
5d0566:	8a 0a                	mov    (%edx),%cl
5d0568:	84 c9                	test   %cl,%cl
5d056a:	75 f4                	jne    0x5d0560
5d056c:	89 5d c8             	mov    %ebx,-0x38(%ebp)
5d056f:	33 c0                	xor    %eax,%eax
5d0571:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
5d0578:	50                   	push   %eax
5d0579:	53                   	push   %ebx