5750e5:	f6 40 08 07          	testb  $0x7,0x8(%eax)
5750e9:	75 54                	jne    0x57513f
5750eb:	8b 53 1c             	mov    0x1c(%ebx),%edx
5750ee:	8b 4a 40             	mov    0x40(%edx),%ecx
5750f1:	85 c9                	test   %ecx,%ecx
5750f3:	7c 1c                	jl     0x575111
5750f5:	8b 43 1c             	mov    0x1c(%ebx),%eax
5750f8:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
5750fb:	8b 50 40             	mov    0x40(%eax),%edx
5750fe:	8b 41 3c             	mov    0x3c(%ecx),%eax
575101:	3b d0                	cmp    %eax,%edx
575103:	7f 0c                	jg     0x575111
575105:	8b 53 1c             	mov    0x1c(%ebx),%edx
575108:	83 4a 08 04          	orl    $0x4,0x8(%edx)
57510c:	83 c9 ff             	or     $0xffffffff,%ecx
57510f:	eb 31                	jmp    0x575142
575111:	8b 43 1c             	mov    0x1c(%ebx),%eax
575114:	ff 48 1c             	decl   0x1c(%eax)
575117:	79 11                	jns    0x57512a
575119:	ba 01 00 00 00       	mov    $0x1,%edx
57511e:	8b 43 1c             	mov    0x1c(%ebx),%eax
575121:	e8 02 3c 00 00       	call   0x578d28
575126:	8b c8                	mov    %eax,%ecx
575128:	eb 18                	jmp    0x575142
57512a:	8b 53 1c             	mov    0x1c(%ebx),%edx
57512d:	ff 42 3c             	incl   0x3c(%edx)
575130:	8b 43 1c             	mov    0x1c(%ebx),%eax
575133:	8b 50 18             	mov    0x18(%eax),%edx
575136:	ff 40 18             	incl   0x18(%eax)
575139:	33 c9                	xor    %ecx,%ecx
57513b:	8a 0a                	mov    (%edx),%cl
57513d:	eb 03                	jmp    0x575142
57513f:	83 c9 ff             	or     $0xffffffff,%ecx
575142:	89 4d ec             	mov    %ecx,-0x14(%ebp)
575145:	41                   	inc    %ecx
575146:	75 05                	jne    0x57514d
575148:	83 c8 ff             	or     $0xffffffff,%eax
57514b:	eb 56                	jmp    0x5751a3
57514d:	c1 e6 08             	shl    $0x8,%esi
575150:	8b 55 ec             	mov    -0x14(%ebp),%edx
575153:	81 e2 ff 00 00 00    	and    $0xff,%edx
575159:	0b f2                	or     %edx,%esi
57515b:	4f                   	dec    %edi
57515c:	85 ff                	test   %edi,%edi
57515e:	7f 82                	jg     0x5750e2
575160:	0f b7 53 18          	movzwl 0x18(%ebx),%edx
575164:	33 c9                	xor    %ecx,%ecx
575166:	8b c6                	mov    %esi,%eax
575168:	8a 4b 1a             	mov    0x1a(%ebx),%cl
57516b:	e8 34 06 00 00       	call   0x5757a4
575170:	8b 55 e4             	mov    -0x1c(%ebp),%edx
575173:	89 02                	mov    %eax,(%edx)
575175:	ff 4d f0             	decl   -0x10(%ebp)
575178:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
57517c:	8b 45 f0             	mov    -0x10(%ebp),%eax
57517f:	85 c0                	test   %eax,%eax
575181:	0f 87 52 ff ff ff    	ja     0x5750d9
575187:	ff 45 f4             	incl   -0xc(%ebp)
57518a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
57518d:	c1 e1 02             	shl    $0x2,%ecx
575190:	01 4d e8             	add    %ecx,-0x18(%ebp)
575193:	8b 45 f4             	mov    -0xc(%ebp),%eax
575196:	8b 55 0c             	mov    0xc(%ebp),%edx
575199:	3b c2                	cmp    %edx,%eax
57519b:	0f 82 f6 fe ff ff    	jb     0x575097
5751a1:	33 c0                	xor    %eax,%eax
5751a3:	5f                   	pop    %edi
5751a4:	5e                   	pop    %esi
5751a5:	5b                   	pop    %ebx
5751a6:	8b e5                	mov    %ebp,%esp
5751a8:	5d                   	pop    %ebp
5751a9:	c2 10 00             	ret    $0x10
5751ac:	55                   	push   %ebp
5751ad:	8b ec                	mov    %esp,%ebp
5751af:	83 c4 e4             	add    $0xffffffe4,%esp
5751b2:	53                   	push   %ebx
5751b3:	56                   	push   %esi
5751b4:	57                   	push   %edi
5751b5:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5751b8:	8b 4d 08             	mov    0x8(%ebp),%ecx
5751bb:	66 3b 50 10          	cmp    0x10(%eax),%dx
5751bf:	72 08                	jb     0x5751c9
5751c1:	83 c8 ff             	or     $0xffffffff,%eax
5751c4:	e9 c5 01 00 00       	jmp    0x57538e
5751c9:	0f b7 d2             	movzwl %dx,%edx
5751cc:	8b 40 14             	mov    0x14(%eax),%eax
5751cf:	8b 1c 90             	mov    (%eax,%edx,4),%ebx
5751d2:	8b 43 10             	mov    0x10(%ebx),%eax
5751d5:	8b 55 fc             	mov    -0x4(%ebp),%edx
5751d8:	3b c2                	cmp    %edx,%eax
5751da:	76 25                	jbe    0x575201
5751dc:	8b 55 14             	mov    0x14(%ebp),%edx
5751df:	8b 73 14             	mov    0x14(%ebx),%esi
5751e2:	3b d6                	cmp    %esi,%edx
5751e4:	73 1b                	jae    0x575201
5751e6:	8b 55 fc             	mov    -0x4(%ebp),%edx
5751e9:	8b 75 10             	mov    0x10(%ebp),%esi
5751ec:	03 d6                	add    %esi,%edx
5751ee:	3b c2                	cmp    %edx,%eax
5751f0:	72 0f                	jb     0x575201
5751f2:	8b 45 14             	mov    0x14(%ebp),%eax
5751f5:	8b 55 0c             	mov    0xc(%ebp),%edx
5751f8:	03 c2                	add    %edx,%eax
5751fa:	8b 53 14             	mov    0x14(%ebx),%edx
5751fd:	3b c2                	cmp    %edx,%eax
5751ff:	76 08                	jbe    0x575209
575201:	83 c8 ff             	or     $0xffffffff,%eax
575204:	e9 85 01 00 00       	jmp    0x57538e
575209:	8b 41 14             	mov    0x14(%ecx),%eax
57520c:	8b 55 0c             	mov    0xc(%ebp),%edx
57520f:	3b c2                	cmp    %edx,%eax
575211:	75 0a                	jne    0x57521d
575213:	8b 51 18             	mov    0x18(%ecx),%edx
575216:	8b 75 10             	mov    0x10(%ebp),%esi
575219:	3b d6                	cmp    %esi,%edx
57521b:	74 08                	je     0x575225
57521d:	83 c8 ff             	or     $0xffffffff,%eax
575220:	e9 69 01 00 00       	jmp    0x57538e
575225:	8b 51 1c             	mov    0x1c(%ecx),%edx
575228:	48                   	dec    %eax
575229:	8b 12                	mov    (%edx),%edx
57522b:	89 55 ec             	mov    %edx,-0x14(%ebp)
57522e:	7e 16                	jle    0x575246
575230:	8b 51 1c             	mov    0x1c(%ecx),%edx
575233:	8b 42 04             	mov    0x4(%edx),%eax
575236:	8b 0a                	mov    (%edx),%ecx
575238:	2b c1                	sub    %ecx,%eax
57523a:	85 c0                	test   %eax,%eax
57523c:	79 03                	jns    0x575241
57523e:	83 c0 03             	add    $0x3,%eax
575241:	c1 f8 02             	sar    $0x2,%eax
575244:	eb 02                	jmp    0x575248
575246:	33 c0                	xor    %eax,%eax
575248:	89 45 e8             	mov    %eax,-0x18(%ebp)
57524b:	33 d2                	xor    %edx,%edx
57524d:	89 55 f8             	mov    %edx,-0x8(%ebp)
575250:	8b 4d f8             	mov    -0x8(%ebp),%ecx
575253:	8b 45 0c             	mov    0xc(%ebp),%eax
575256:	3b c8                	cmp    %eax,%ecx
575258:	0f 83 2e 01 00 00    	jae    0x57538c
57525e:	8b 55 ec             	mov    -0x14(%ebp),%edx
575261:	89 55 f0             	mov    %edx,-0x10(%ebp)
575264:	8b 55 14             	mov    0x14(%ebp),%edx
575267:	8b 45 f8             	mov    -0x8(%ebp),%eax
57526a:	03 d0                	add    %eax,%edx
57526c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
57526f:	0f af 53 10          	imul   0x10(%ebx),%edx
575273:	03 d1                	add    %ecx,%edx
575275:	8b 43 1c             	mov    0x1c(%ebx),%eax
575278:	0f af 53 20          	imul   0x20(%ebx),%edx
57527c:	33 c9                	xor    %ecx,%ecx
57527e:	e8 e5 38 00 00       	call   0x578b68
575283:	85 c0                	test   %eax,%eax
575285:	7d 08                	jge    0x57528f
575287:	83 c8 ff             	or     $0xffffffff,%eax
57528a:	e9 ff 00 00 00       	jmp    0x57538e
57528f:	8b 55 10             	mov    0x10(%ebp),%edx
575292:	89 55 f4             	mov    %edx,-0xc(%ebp)
575295:	8b 4d f4             	mov    -0xc(%ebp),%ecx
575298:	85 c9                	test   %ecx,%ecx
57529a:	0f 86 d2 00 00 00    	jbe    0x575372
5752a0:	0f b7 53 18          	movzwl 0x18(%ebx),%edx
5752a4:	8b 45 f0             	mov    -0x10(%ebp),%eax
5752a7:	33 c9                	xor    %ecx,%ecx
5752a9:	8a 4b 1a             	mov    0x1a(%ebx),%cl
5752ac:	8b 00                	mov    (%eax),%eax
5752ae:	e8 c5 04 00 00       	call   0x575778
5752b3:	8b f8                	mov    %eax,%edi
5752b5:	8b 43 20             	mov    0x20(%ebx),%eax
5752b8:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5752bb:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5752be:	85 d2                	test   %edx,%edx
5752c0:	0f 8e 9a 00 00 00    	jle    0x575360
5752c6:	8b 4b 20             	mov    0x20(%ebx),%ecx
5752c9:	8b f7                	mov    %edi,%esi
5752cb:	c1 e1 03             	shl    $0x3,%ecx
5752ce:	8b 43 1c             	mov    0x1c(%ebx),%eax
5752d1:	83 c1 f8             	add    $0xfffffff8,%ecx
5752d4:	d3 fe                	sar    %cl,%esi
5752d6:	81 e6 ff 00 00 00    	and    $0xff,%esi
5752dc:	f6 40 08 07          	testb  $0x7,0x8(%eax)
5752e0:	75 62                	jne    0x575344
5752e2:	8b 53 1c             	mov    0x1c(%ebx),%edx
5752e5:	8b 4a 40             	mov    0x40(%edx),%ecx
5752e8:	85 c9                	test   %ecx,%ecx
5752ea:	7c 1c                	jl     0x575308
5752ec:	8b 43 1c             	mov    0x1c(%ebx),%eax
5752ef:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
5752f2:	8b 50 40             	mov    0x40(%eax),%edx
5752f5:	8b 41 3c             	mov    0x3c(%ecx),%eax
5752f8:	3b d0                	cmp    %eax,%edx
5752fa:	7f 0c                	jg     0x575308
5752fc:	8b 53 1c             	mov    0x1c(%ebx),%edx
5752ff:	83 4a 08 04          	orl    $0x4,0x8(%edx)
575303:	83 c9 ff             	or     $0xffffffff,%ecx
575306:	eb 3f                	jmp    0x575347
575308:	8b 43 1c             	mov    0x1c(%ebx),%eax
57530b:	83 48 04 20          	orl    $0x20,0x4(%eax)
57530f:	8b 53 1c             	mov    0x1c(%ebx),%edx
575312:	ff 4a 1c             	decl   0x1c(%edx)
575315:	79 14                	jns    0x57532b
575317:	8b d6                	mov    %esi,%edx
575319:	8b 43 1c             	mov    0x1c(%ebx),%eax
57531c:	81 e2 ff 00 00 00    	and    $0xff,%edx
575322:	e8 f1 3a 00 00       	call   0x578e18
575327:	8b c8                	mov    %eax,%ecx
575329:	eb 1c                	jmp    0x575347
57532b:	8b 43 1c             	mov    0x1c(%ebx),%eax
57532e:	ff 40 3c             	incl   0x3c(%eax)
575331:	8b 53 1c             	mov    0x1c(%ebx),%edx
575334:	8b 4a 18             	mov    0x18(%edx),%ecx
575337:	ff 42 18             	incl   0x18(%edx)
57533a:	8b c6                	mov    %esi,%eax
57533c:	88 01                	mov    %al,(%ecx)
57533e:	33 c9                	xor    %ecx,%ecx
575340:	8a c8                	mov    %al,%cl
575342:	eb 03                	jmp    0x575347
575344:	83 c9 ff             	or     $0xffffffff,%ecx
575347:	41                   	inc    %ecx
575348:	75 05                	jne    0x57534f
57534a:	83 c8 ff             	or     $0xffffffff,%eax
57534d:	eb 3f                	jmp    0x57538e
57534f:	c1 e7 08             	shl    $0x8,%edi
575352:	ff 4d e4             	decl   -0x1c(%ebp)
575355:	8b 55 e4             	mov    -0x1c(%ebp),%edx
575358:	85 d2                	test   %edx,%edx
57535a:	0f 8f 66 ff ff ff    	jg     0x5752c6
575360:	ff 4d f4             	decl   -0xc(%ebp)
575363:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
575367:	8b 45 f4             	mov    -0xc(%ebp),%eax
57536a:	85 c0                	test   %eax,%eax
57536c:	0f 87 2e ff ff ff    	ja     0x5752a0
575372:	ff 45 f8             	incl   -0x8(%ebp)
575375:	8b 55 e8             	mov    -0x18(%ebp),%edx
575378:	c1 e2 02             	shl    $0x2,%edx
57537b:	01 55 ec             	add    %edx,-0x14(%ebp)
57537e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
575381:	8b 45 0c             	mov    0xc(%ebp),%eax
575384:	3b c8                	cmp    %eax,%ecx
575386:	0f 82 d2 fe ff ff    	jb     0x57525e
57538c:	33 c0                	xor    %eax,%eax
57538e:	5f                   	pop    %edi
57538f:	5e                   	pop    %esi
575390:	5b                   	pop    %ebx
575391:	8b e5                	mov    %ebp,%esp
575393:	5d                   	pop    %ebp
575394:	c2 10 00             	ret    $0x10
575397:	90                   	nop
575398:	53                   	push   %ebx
575399:	56                   	push   %esi
57539a:	33 f6                	xor    %esi,%esi
57539c:	eb 44                	jmp    0x5753e2
57539e:	8b de                	mov    %esi,%ebx
5753a0:	c1 e3 03             	shl    $0x3,%ebx
5753a3:	2b de                	sub    %esi,%ebx
5753a5:	c1 e3 02             	shl    $0x2,%ebx
5753a8:	81 c3 8c 24 6b 00    	add    $0x6b248c,%ebx
5753ae:	8b 43 04             	mov    0x4(%ebx),%eax
5753b1:	85 c0                	test   %eax,%eax
5753b3:	74 0a                	je     0x5753bf
5753b5:	e8 ca 2f 00 00       	call   0x578384
5753ba:	33 d2                	xor    %edx,%edx
5753bc:	89 53 04             	mov    %edx,0x4(%ebx)
5753bf:	8b 43 08             	mov    0x8(%ebx),%eax
5753c2:	85 c0                	test   %eax,%eax
5753c4:	74 0a                	je     0x5753d0
5753c6:	e8 b9 2f 00 00       	call   0x578384
5753cb:	33 d2                	xor    %edx,%edx
5753cd:	89 53 08             	mov    %edx,0x8(%ebx)
5753d0:	8b 43 0c             	mov    0xc(%ebx),%eax
5753d3:	85 c0                	test   %eax,%eax
5753d5:	74 0a                	je     0x5753e1
5753d7:	e8 a8 2f 00 00       	call   0x578384
5753dc:	33 d2                	xor    %edx,%edx
5753de:	89 53 0c             	mov    %edx,0xc(%ebx)
5753e1:	46                   	inc    %esi
5753e2:	8b 0d 44 20 6a 00    	mov    0x6a2044,%ecx
5753e8:	3b f1                	cmp    %ecx,%esi
5753ea:	7c b2                	jl     0x57539e
5753ec:	33 c0                	xor    %eax,%eax
5753ee:	a3 44 20 6a 00       	mov    %eax,0x6a2044
5753f3:	5e                   	pop    %esi
5753f4:	5b                   	pop    %ebx
5753f5:	c3                   	ret
5753f6:	90                   	nop
5753f7:	90                   	nop
5753f8:	55                   	push   %ebp
5753f9:	8b ec                	mov    %esp,%ebp
5753fb:	51                   	push   %ecx
5753fc:	53                   	push   %ebx
5753fd:	56                   	push   %esi
5753fe:	57                   	push   %edi
5753ff:	89 4d fc             	mov    %ecx,-0x4(%ebp)
575402:	8b fa                	mov    %edx,%edi
575404:	8b f0                	mov    %eax,%esi
575406:	85 f6                	test   %esi,%esi
575408:	7c 12                	jl     0x57541c
57540a:	85 ff                	test   %edi,%edi
57540c:	74 0e                	je     0x57541c
57540e:	8b 45 fc             	mov    -0x4(%ebp),%eax
575411:	85 c0                	test   %eax,%eax
575413:	74 07                	je     0x57541c
575415:	8b 55 08             	mov    0x8(%ebp),%edx
575418:	85 d2                	test   %edx,%edx
57541a:	75 17                	jne    0x575433
57541c:	68 42 02 00 00       	push   $0x242
575421:	68 66 20 6a 00       	push   $0x6a2066
575426:	68 48 20 6a 00       	push   $0x6a2048
57542b:	e8 10 57 fe ff       	call   0x55ab40
575430:	83 c4 0c             	add    $0xc,%esp
575433:	a1 44 20 6a 00       	mov    0x6a2044,%eax
575438:	83 f8 20             	cmp    $0x20,%eax
57543b:	7c 08                	jl     0x575445
57543d:	83 c8 ff             	or     $0xffffffff,%eax
575440:	e9 81 00 00 00       	jmp    0x5754c6
575445:	8b d8                	mov    %eax,%ebx
575447:	c1 e3 03             	shl    $0x3,%ebx
57544a:	2b d8                	sub    %eax,%ebx
57544c:	8b c7                	mov    %edi,%eax
57544e:	c1 e3 02             	shl    $0x2,%ebx
575451:	81 c3 8c 24 6b 00    	add    $0x6b248c,%ebx
575457:	89 33                	mov    %esi,(%ebx)
575459:	e8 82 40 00 00       	call   0x5794e0
57545e:	89 43 04             	mov    %eax,0x4(%ebx)
575461:	85 c0                	test   %eax,%eax
575463:	75 05                	jne    0x57546a
575465:	83 c8 ff             	or     $0xffffffff,%eax
575468:	eb 5c                	jmp    0x5754c6
57546a:	8b 45 fc             	mov    -0x4(%ebp),%eax
57546d:	e8 6e 40 00 00       	call   0x5794e0
575472:	89 43 08             	mov    %eax,0x8(%ebx)
575475:	85 c0                	test   %eax,%eax
575477:	75 0d                	jne    0x575486
575479:	8b 43 04             	mov    0x4(%ebx),%eax
57547c:	e8 03 2f 00 00       	call   0x578384
575481:	83 c8 ff             	or     $0xffffffff,%eax
575484:	eb 40                	jmp    0x5754c6
575486:	8b 45 0c             	mov    0xc(%ebp),%eax
575489:	e8 52 40 00 00       	call   0x5794e0
57548e:	89 43 0c             	mov    %eax,0xc(%ebx)
575491:	85 c0                	test   %eax,%eax
575493:	75 15                	jne    0x5754aa
575495:	8b 43 04             	mov    0x4(%ebx),%eax
575498:	e8 e7 2e 00 00       	call   0x578384
57549d:	8b 43 08             	mov    0x8(%ebx),%eax
5754a0:	e8 df 2e 00 00       	call   0x578384
5754a5:	83 c8 ff             	or     $0xffffffff,%eax
5754a8:	eb 1c                	jmp    0x5754c6
5754aa:	8b 55 08             	mov    0x8(%ebp),%edx
5754ad:	8b 0a                	mov    (%edx),%ecx