5590b3:	0f 8d 84 00 00 00    	jge    0x55913d
5590b9:	8b 45 fc             	mov    -0x4(%ebp),%eax
5590bc:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
5590c1:	8b 5d 08             	mov    0x8(%ebp),%ebx
5590c4:	2b d0                	sub    %eax,%edx
5590c6:	89 55 0c             	mov    %edx,0xc(%ebp)
5590c9:	8d 78 02             	lea    0x2(%eax),%edi
5590cc:	0f 1f 40 00          	nopl   0x0(%eax)
5590d0:	8b 45 1c             	mov    0x1c(%ebp),%eax
5590d3:	8b 00                	mov    (%eax),%eax
5590d5:	85 c0                	test   %eax,%eax
5590d7:	0f 88 91 00 00 00    	js     0x55916e
5590dd:	8b 4d 14             	mov    0x14(%ebp),%ecx
5590e0:	8d 04 80             	lea    (%eax,%eax,4),%eax
5590e3:	57                   	push   %edi
5590e4:	8b 44 81 04          	mov    0x4(%ecx,%eax,4),%eax
5590e8:	50                   	push   %eax
5590e9:	53                   	push   %ebx
5590ea:	89 45 d8             	mov    %eax,-0x28(%ebp)
5590ed:	e8 5e c1 fc ff       	call   0x525250
5590f2:	83 c4 0c             	add    $0xc,%esp
5590f5:	3b c7                	cmp    %edi,%eax
5590f7:	74 25                	je     0x55911e
5590f9:	8b 4b 08             	mov    0x8(%ebx),%ecx
5590fc:	85 c9                	test   %ecx,%ecx
5590fe:	74 1e                	je     0x55911e
559100:	57                   	push   %edi
559101:	50                   	push   %eax
559102:	8b 45 d8             	mov    -0x28(%ebp),%eax
559105:	8b 40 04             	mov    0x4(%eax),%eax
559108:	25 00 00 20 00       	and    $0x200000,%eax
55910d:	f7 d8                	neg    %eax
55910f:	1b c0                	sbb    %eax,%eax
559111:	83 c0 4e             	add    $0x4e,%eax
559114:	50                   	push   %eax
559115:	51                   	push   %ecx
559116:	e8 c5 89 fe ff       	call   0x541ae0
55911b:	83 c4 10             	add    $0x10,%esp
55911e:	8b 55 0c             	mov    0xc(%ebp),%edx
559121:	8b 45 10             	mov    0x10(%ebp),%eax
559124:	47                   	inc    %edi
559125:	83 45 1c 04          	addl   $0x4,0x1c(%ebp)
559129:	0f bf 40 2a          	movswl 0x2a(%eax),%eax
55912d:	8d 0c 3a             	lea    (%edx,%edi,1),%ecx
559130:	3b c8                	cmp    %eax,%ecx
559132:	7c 9c                	jl     0x5590d0
559134:	8b 5d ec             	mov    -0x14(%ebp),%ebx
559137:	8b 7d 08             	mov    0x8(%ebp),%edi
55913a:	8b 45 10             	mov    0x10(%ebp),%eax
55913d:	f6 40 24 80          	testb  $0x80,0x24(%eax)
559141:	0f 85 d4 01 00 00    	jne    0x55931b
559147:	8b 4e 6c             	mov    0x6c(%esi),%ecx
55914a:	39 4e 70             	cmp    %ecx,0x70(%esi)
55914d:	0f 8f 8f 00 00 00    	jg     0x5591e2
559153:	6a 00                	push   $0x0
559155:	ff 75 fc             	push   -0x4(%ebp)
559158:	ff 75 f8             	push   -0x8(%ebp)
55915b:	6a 7f                	push   $0x7f
55915d:	56                   	push   %esi
55915e:	e8 9d d3 fa ff       	call   0x506500
559163:	8b 55 fc             	mov    -0x4(%ebp),%edx
559166:	83 c4 14             	add    $0x14,%esp
559169:	e9 a5 00 00 00       	jmp    0x559213
55916e:	8b 4e 6c             	mov    0x6c(%esi),%ecx
559171:	39 4e 70             	cmp    %ecx,0x70(%esi)
559174:	7f 1b                	jg     0x559191
559176:	57                   	push   %edi
559177:	8d 04 3a             	lea    (%edx,%edi,1),%eax
55917a:	50                   	push   %eax
55917b:	ff 75 f8             	push   -0x8(%ebp)
55917e:	68 a6 00 00 00       	push   $0xa6
559183:	56                   	push   %esi
559184:	e8 77 d3 fa ff       	call   0x506500
559189:	8b 55 0c             	mov    0xc(%ebp),%edx
55918c:	83 c4 14             	add    $0x14,%esp
55918f:	eb 2e                	jmp    0x5591bf
559191:	8d 41 01             	lea    0x1(%ecx),%eax
559194:	89 46 6c             	mov    %eax,0x6c(%esi)
559197:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
55919a:	8b 46 68             	mov    0x68(%esi),%eax
55919d:	c7 04 88 a6 00 00 00 	movl   $0xa6,(%eax,%ecx,4)
5591a4:	89 7c 88 0c          	mov    %edi,0xc(%eax,%ecx,4)
5591a8:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5591af:	00
5591b0:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
5591b3:	8b 45 f8             	mov    -0x8(%ebp),%eax
5591b6:	89 41 04             	mov    %eax,0x4(%ecx)
5591b9:	8d 04 3a             	lea    (%edx,%edi,1),%eax
5591bc:	89 41 08             	mov    %eax,0x8(%ecx)
5591bf:	8b 46 6c             	mov    0x6c(%esi),%eax
5591c2:	85 c0                	test   %eax,%eax
5591c4:	0f 8e 57 ff ff ff    	jle    0x559121
5591ca:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5591cd:	bb 01 00 00 00       	mov    $0x1,%ebx
5591d2:	8b 46 68             	mov    0x68(%esi),%eax
5591d5:	66 89 5c 88 ee       	mov    %bx,-0x12(%eax,%ecx,4)
5591da:	8b 5d 08             	mov    0x8(%ebp),%ebx
5591dd:	e9 3f ff ff ff       	jmp    0x559121
5591e2:	8b 55 f8             	mov    -0x8(%ebp),%edx
5591e5:	8d 41 01             	lea    0x1(%ecx),%eax
5591e8:	89 46 6c             	mov    %eax,0x6c(%esi)
5591eb:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5591ee:	8b 46 68             	mov    0x68(%esi),%eax
5591f1:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5591f5:	8b 55 fc             	mov    -0x4(%ebp),%edx
5591f8:	c7 04 88 7f 00 00 00 	movl   $0x7f,(%eax,%ecx,4)
5591ff:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
559203:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
55920a:	00
55920b:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
559212:	00
559213:	8b 45 18             	mov    0x18(%ebp),%eax
559216:	85 c0                	test   %eax,%eax
559218:	74 3f                	je     0x559259
55921a:	8d 4a 01             	lea    0x1(%edx),%ecx
55921d:	51                   	push   %ecx
55921e:	50                   	push   %eax
55921f:	57                   	push   %edi
559220:	89 4d 0c             	mov    %ecx,0xc(%ebp)
559223:	e8 28 c0 fc ff       	call   0x525250
559228:	8b 4d 0c             	mov    0xc(%ebp),%ecx
55922b:	83 c4 0c             	add    $0xc,%esp
55922e:	3b c1                	cmp    %ecx,%eax
559230:	74 43                	je     0x559275
559232:	8b 57 08             	mov    0x8(%edi),%edx
559235:	85 d2                	test   %edx,%edx
559237:	74 3c                	je     0x559275
559239:	51                   	push   %ecx
55923a:	50                   	push   %eax
55923b:	8b 45 18             	mov    0x18(%ebp),%eax
55923e:	8b 40 04             	mov    0x4(%eax),%eax
559241:	25 00 00 20 00       	and    $0x200000,%eax
559246:	f7 d8                	neg    %eax
559248:	1b c0                	sbb    %eax,%eax
55924a:	83 c0 4e             	add    $0x4e,%eax
55924d:	50                   	push   %eax
55924e:	52                   	push   %edx
55924f:	e8 8c 88 fe ff       	call   0x541ae0
559254:	83 c4 10             	add    $0x10,%esp
559257:	eb 1c                	jmp    0x559275
559259:	8b 4e 6c             	mov    0x6c(%esi),%ecx
55925c:	8d 42 01             	lea    0x1(%edx),%eax
55925f:	39 4e 70             	cmp    %ecx,0x70(%esi)
559262:	7f 7e                	jg     0x5592e2
559264:	6a 00                	push   $0x0
559266:	50                   	push   %eax
559267:	ff 75 f8             	push   -0x8(%ebp)
55926a:	6a 7f                	push   $0x7f
55926c:	56                   	push   %esi
55926d:	e8 8e d2 fa ff       	call   0x506500
559272:	83 c4 14             	add    $0x14,%esp
559275:	8b 55 fc             	mov    -0x4(%ebp),%edx
559278:	8b 45 dc             	mov    -0x24(%ebp),%eax
55927b:	0f b6 40 2e          	movzbl 0x2e(%eax),%eax
55927f:	89 45 0c             	mov    %eax,0xc(%ebp)
559282:	85 c0                	test   %eax,%eax
559284:	0f 84 79 01 00 00    	je     0x559403
55928a:	8b 16                	mov    (%esi),%edx
55928c:	80 7a 51 00          	cmpb   $0x0,0x51(%edx)
559290:	75 2a                	jne    0x5592bc
559292:	8b 45 e8             	mov    -0x18(%ebp),%eax
559295:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
559298:	8b 46 68             	mov    0x68(%esi),%eax
55929b:	ff 74 88 10          	push   0x10(%eax,%ecx,4)
55929f:	8d 3c 88             	lea    (%eax,%ecx,4),%edi
5592a2:	0f be 47 01          	movsbl 0x1(%edi),%eax
5592a6:	50                   	push   %eax
5592a7:	52                   	push   %edx
5592a8:	e8 03 aa fa ff       	call   0x503cb0
5592ad:	83 c4 0c             	add    $0xc,%esp
5592b0:	66 c7 07 ad 00       	movw   $0xad,(%edi)
5592b5:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
5592bc:	8b 4e 6c             	mov    0x6c(%esi),%ecx
5592bf:	39 4e 70             	cmp    %ecx,0x70(%esi)
5592c2:	0f 8f 09 01 00 00    	jg     0x5593d1
5592c8:	6a 00                	push   $0x0
5592ca:	6a 00                	push   $0x0
5592cc:	ff 75 f8             	push   -0x8(%ebp)
5592cf:	6a 74                	push   $0x74
5592d1:	56                   	push   %esi
5592d2:	e8 29 d2 fa ff       	call   0x506500
5592d7:	8b 7d f0             	mov    -0x10(%ebp),%edi
5592da:	83 c4 14             	add    $0x14,%esp
5592dd:	e9 0c 02 00 00       	jmp    0x5594ee
5592e2:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5592e5:	8d 41 01             	lea    0x1(%ecx),%eax
5592e8:	89 46 6c             	mov    %eax,0x6c(%esi)
5592eb:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5592ee:	8b 46 68             	mov    0x68(%esi),%eax
5592f1:	c7 04 88 7f 00 00 00 	movl   $0x7f,(%eax,%ecx,4)
5592f8:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
5592fc:	8d 5a 01             	lea    0x1(%edx),%ebx
5592ff:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
559303:	8b 5d ec             	mov    -0x14(%ebp),%ebx
559306:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
55930d:	00
55930e:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
559315:	00
559316:	e9 5d ff ff ff       	jmp    0x559278
55931b:	8b 48 08             	mov    0x8(%eax),%ecx
55931e:	85 c9                	test   %ecx,%ecx
559320:	74 10                	je     0x559332
559322:	8b 41 38             	mov    0x38(%ecx),%eax
559325:	24 03                	and    $0x3,%al
559327:	3c 02                	cmp    $0x2,%al
559329:	74 07                	je     0x559332
55932b:	8b 49 14             	mov    0x14(%ecx),%ecx
55932e:	85 c9                	test   %ecx,%ecx
559330:	75 f0                	jne    0x559322
559332:	8b 41 04             	mov    0x4(%ecx),%eax
559335:	8b 4e 6c             	mov    0x6c(%esi),%ecx
559338:	0f b7 00             	movzwl (%eax),%eax
55933b:	0f bf d0             	movswl %ax,%edx
55933e:	89 55 0c             	mov    %edx,0xc(%ebp)
559341:	39 4e 70             	cmp    %ecx,0x70(%esi)
559344:	7f 1a                	jg     0x559360
559346:	ff 75 fc             	push   -0x4(%ebp)
559349:	52                   	push   %edx
55934a:	ff 75 f8             	push   -0x8(%ebp)
55934d:	68 a6 00 00 00       	push   $0xa6
559352:	56                   	push   %esi
559353:	e8 a8 d1 fa ff       	call   0x506500
559358:	8b 55 fc             	mov    -0x4(%ebp),%edx
55935b:	83 c4 14             	add    $0x14,%esp
55935e:	eb 30                	jmp    0x559390
559360:	8b 7d f8             	mov    -0x8(%ebp),%edi
559363:	8d 41 01             	lea    0x1(%ecx),%eax
559366:	89 46 6c             	mov    %eax,0x6c(%esi)
559369:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
55936c:	8b 46 68             	mov    0x68(%esi),%eax
55936f:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
559373:	8b 55 fc             	mov    -0x4(%ebp),%edx
559376:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
55937a:	8b 7d 08             	mov    0x8(%ebp),%edi
55937d:	c7 04 88 a6 00 00 00 	movl   $0xa6,(%eax,%ecx,4)
559384:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
559388:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
55938f:	00
559390:	8b 4e 6c             	mov    0x6c(%esi),%ecx
559393:	8d 42 01             	lea    0x1(%edx),%eax
559396:	89 45 d8             	mov    %eax,-0x28(%ebp)
559399:	8b 45 0c             	mov    0xc(%ebp),%eax
55939c:	83 c0 02             	add    $0x2,%eax
55939f:	03 c2                	add    %edx,%eax
5593a1:	89 45 0c             	mov    %eax,0xc(%ebp)
5593a4:	39 4e 70             	cmp    %ecx,0x70(%esi)
5593a7:	7f 0d                	jg     0x5593b6
5593a9:	6a 00                	push   $0x0
5593ab:	ff 75 d8             	push   -0x28(%ebp)
5593ae:	50                   	push   %eax
5593af:	6a 4e                	push   $0x4e
5593b1:	e9 b6 fe ff ff       	jmp    0x55926c
5593b6:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5593b9:	8d 41 01             	lea    0x1(%ecx),%eax
5593bc:	89 46 6c             	mov    %eax,0x6c(%esi)
5593bf:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5593c2:	8b 46 68             	mov    0x68(%esi),%eax
5593c5:	c7 04 88 4e 00 00 00 	movl   $0x4e,(%eax,%ecx,4)
5593cc:	e9 27 ff ff ff       	jmp    0x5592f8
5593d1:	8b 55 f8             	mov    -0x8(%ebp),%edx
5593d4:	8d 41 01             	lea    0x1(%ecx),%eax
5593d7:	8b 7d f0             	mov    -0x10(%ebp),%edi
5593da:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5593dd:	89 46 6c             	mov    %eax,0x6c(%esi)
5593e0:	8b 46 68             	mov    0x68(%esi),%eax
5593e3:	c7 04 88 74 00 00 00 	movl   $0x74,(%eax,%ecx,4)
5593ea:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5593ee:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
5593f5:	00
5593f6:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5593fd:	00
5593fe:	e9 e3 00 00 00       	jmp    0x5594e6
559403:	8b 47 74             	mov    0x74(%edi),%eax
559406:	8b cf                	mov    %edi,%ecx
559408:	85 c0                	test   %eax,%eax
55940a:	0f 45 c8             	cmovne %eax,%ecx
55940d:	c6 41 14 01          	movb   $0x1,0x14(%ecx)
559411:	8b 4e 6c             	mov    0x6c(%esi),%ecx
559414:	39 4e 70             	cmp    %ecx,0x70(%esi)
559417:	7f 14                	jg     0x55942d
559419:	ff 75 e4             	push   -0x1c(%ebp)
55941c:	ff 75 f4             	push   -0xc(%ebp)
55941f:	52                   	push   %edx
559420:	6a 5b                	push   $0x5b
559422:	56                   	push   %esi
559423:	e8 d8 d0 fa ff       	call   0x506500
559428:	83 c4 14             	add    $0x14,%esp
55942b:	eb 2d                	jmp    0x55945a
55942d:	8d 41 01             	lea    0x1(%ecx),%eax
559430:	89 46 6c             	mov    %eax,0x6c(%esi)
559433:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
559436:	8b 46 68             	mov    0x68(%esi),%eax
559439:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
55943d:	8b 55 f4             	mov    -0xc(%ebp),%edx
559440:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
559444:	8b 55 e4             	mov    -0x1c(%ebp),%edx
559447:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
55944e:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
559452:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
559459:	00
55945a:	8b 4e 6c             	mov    0x6c(%esi),%ecx
55945d:	8b 55 e0             	mov    -0x20(%ebp),%edx
559460:	8b 7d f0             	mov    -0x10(%ebp),%edi
559463:	39 4e 70             	cmp    %ecx,0x70(%esi)
559466:	7f 14                	jg     0x55947c
559468:	6a 00                	push   $0x0
55946a:	52                   	push   %edx
55946b:	57                   	push   %edi
55946c:	6a 78                	push   $0x78
55946e:	56                   	push   %esi
55946f:	e8 8c d0 fa ff       	call   0x506500
559474:	8b 55 e0             	mov    -0x20(%ebp),%edx
559477:	83 c4 14             	add    $0x14,%esp
55947a:	eb 2b                	jmp    0x5594a7
55947c:	8d 41 01             	lea    0x1(%ecx),%eax
55947f:	89 46 6c             	mov    %eax,0x6c(%esi)
559482:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
559485:	8b 46 68             	mov    0x68(%esi),%eax
559488:	c7 04 88 78 00 00 00 	movl   $0x78,(%eax,%ecx,4)
55948f:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
559493:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
559497:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
55949e:	00
55949f:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5594a6:	00
5594a7:	8b 4e 6c             	mov    0x6c(%esi),%ecx
5594aa:	39 4e 70             	cmp    %ecx,0x70(%esi)
5594ad:	7f 12                	jg     0x5594c1
5594af:	52                   	push   %edx
5594b0:	ff 75 e4             	push   -0x1c(%ebp)
5594b3:	57                   	push   %edi
5594b4:	6a 79                	push   $0x79
5594b6:	56                   	push   %esi
5594b7:	e8 44 d0 fa ff       	call   0x506500
5594bc:	83 c4 14             	add    $0x14,%esp
5594bf:	eb 2d                	jmp    0x5594ee
5594c1:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5594c4:	8d 41 01             	lea    0x1(%ecx),%eax
5594c7:	89 46 6c             	mov    %eax,0x6c(%esi)
5594ca:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5594cd:	8b 46 68             	mov    0x68(%esi),%eax
5594d0:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5594d4:	8b 55 e0             	mov    -0x20(%ebp),%edx
5594d7:	c7 04 88 79 00 00 00 	movl   $0x79,(%eax,%ecx,4)
5594de:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
5594e2:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
5594e6:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5594ed:	00
5594ee:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
5594f2:	0f 85 bb 00 00 00    	jne    0x5595b3