53811a:	50                   	push   %eax
53811b:	e8 c0 58 ff ff       	call   0x52d9e0
538120:	0f b7 43 4e          	movzwl 0x4e(%ebx),%eax
538124:	83 c4 08             	add    $0x8,%esp
538127:	c7 43 48 00 00 00 00 	movl   $0x0,0x48(%ebx)
53812e:	a8 01                	test   $0x1,%al
538130:	74 03                	je     0x538135
538132:	ff 43 04             	incl   0x4(%ebx)
538135:	8b 55 08             	mov    0x8(%ebp),%edx
538138:	25 f6 ff 00 00       	and    $0xfff6,%eax
53813d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
538140:	66 89 43 4e          	mov    %ax,0x4e(%ebx)
538144:	8b 5d fc             	mov    -0x4(%ebp),%ebx
538147:	41                   	inc    %ecx
538148:	83 c3 10             	add    $0x10,%ebx
53814b:	89 4d 0c             	mov    %ecx,0xc(%ebp)
53814e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
538151:	3b 4a 14             	cmp    0x14(%edx),%ecx
538154:	0f 8c a6 fe ff ff    	jl     0x538000
53815a:	5f                   	pop    %edi
53815b:	5e                   	pop    %esi
53815c:	5b                   	pop    %ebx
53815d:	8b e5                	mov    %ebp,%esp
53815f:	5d                   	pop    %ebp
538160:	c3                   	ret
538161:	cc                   	int3
538162:	cc                   	int3
538163:	cc                   	int3
538164:	cc                   	int3
538165:	cc                   	int3
538166:	cc                   	int3
538167:	cc                   	int3
538168:	cc                   	int3
538169:	cc                   	int3
53816a:	cc                   	int3
53816b:	cc                   	int3
53816c:	cc                   	int3
53816d:	cc                   	int3
53816e:	cc                   	int3
53816f:	cc                   	int3
538170:	55                   	push   %ebp
538171:	8b ec                	mov    %esp,%ebp
538173:	83 ec 2c             	sub    $0x2c,%esp
538176:	a1 d4 89 72 00       	mov    0x7289d4,%eax
53817b:	33 c5                	xor    %ebp,%eax
53817d:	89 45 fc             	mov    %eax,-0x4(%ebp)
538180:	8b 45 0c             	mov    0xc(%ebp),%eax
538183:	8b 55 08             	mov    0x8(%ebp),%edx
538186:	89 55 dc             	mov    %edx,-0x24(%ebp)
538189:	89 45 d4             	mov    %eax,-0x2c(%ebp)
53818c:	53                   	push   %ebx
53818d:	56                   	push   %esi
53818e:	57                   	push   %edi
53818f:	85 c0                	test   %eax,%eax
538191:	0f 84 ae 00 00 00    	je     0x538245
538197:	33 ff                	xor    %edi,%edi
538199:	39 38                	cmp    %edi,(%eax)
53819b:	0f 8e a4 00 00 00    	jle    0x538245
5381a1:	8d 58 04             	lea    0x4(%eax),%ebx
5381a4:	8b 33                	mov    (%ebx),%esi
5381a6:	85 f6                	test   %esi,%esi
5381a8:	0f 84 8b 00 00 00    	je     0x538239
5381ae:	8b 42 18             	mov    0x18(%edx),%eax
5381b1:	8b c8                	mov    %eax,%ecx
5381b3:	81 e1 10 90 00 00    	and    $0x9010,%ecx
5381b9:	c7 45 e4 d0 3c 51 00 	movl   $0x513cd0,-0x1c(%ebp)
5381c0:	25 ef 6f ff ff       	and    $0xffff6fef,%eax
5381c5:	89 4d d8             	mov    %ecx,-0x28(%ebp)
5381c8:	8b 0a                	mov    (%edx),%ecx
5381ca:	89 42 18             	mov    %eax,0x18(%edx)
5381cd:	8b 46 18             	mov    0x18(%esi),%eax
5381d0:	89 4d e0             	mov    %ecx,-0x20(%ebp)
5381d3:	c7 45 e8 e0 47 51 00 	movl   $0x5147e0,-0x18(%ebp)
5381da:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
5381e1:	89 55 f8             	mov    %edx,-0x8(%ebp)
5381e4:	01 81 d0 00 00 00    	add    %eax,0xd0(%ecx)
5381ea:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5381ed:	8b 01                	mov    (%ecx),%eax
5381ef:	8b 40 78             	mov    0x78(%eax),%eax
5381f2:	39 81 d0 00 00 00    	cmp    %eax,0xd0(%ecx)
5381f8:	7f 5e                	jg     0x538258
5381fa:	8d 45 e0             	lea    -0x20(%ebp),%eax
5381fd:	56                   	push   %esi
5381fe:	50                   	push   %eax
5381ff:	e8 ac 7d 02 00       	call   0x55ffb0
538204:	8b 55 dc             	mov    -0x24(%ebp),%edx
538207:	83 c4 08             	add    $0x8,%esp
53820a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
53820d:	8b 46 18             	mov    0x18(%esi),%eax
538210:	29 81 d0 00 00 00    	sub    %eax,0xd0(%ecx)
538216:	8b 42 18             	mov    0x18(%edx),%eax
538219:	25 10 80 00 00       	and    $0x8010,%eax
53821e:	09 46 04             	or     %eax,0x4(%esi)
538221:	8b 45 d8             	mov    -0x28(%ebp),%eax
538224:	09 42 18             	or     %eax,0x18(%edx)
538227:	83 7a 14 00          	cmpl   $0x0,0x14(%edx)
53822b:	7f 3a                	jg     0x538267
53822d:	8b 45 e0             	mov    -0x20(%ebp),%eax
538230:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
538234:	7f 31                	jg     0x538267
538236:	8b 45 d4             	mov    -0x2c(%ebp),%eax
538239:	47                   	inc    %edi
53823a:	83 c3 14             	add    $0x14,%ebx
53823d:	3b 38                	cmp    (%eax),%edi
53823f:	0f 8c 5f ff ff ff    	jl     0x5381a4
538245:	5f                   	pop    %edi
538246:	5e                   	pop    %esi
538247:	33 c0                	xor    %eax,%eax
538249:	5b                   	pop    %ebx
53824a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
53824d:	33 cd                	xor    %ebp,%ecx
53824f:	e8 86 92 0a 00       	call   0x5e14da
538254:	8b e5                	mov    %ebp,%esp
538256:	5d                   	pop    %ebp
538257:	c3                   	ret
538258:	50                   	push   %eax
538259:	68 30 90 6b 00       	push   $0x6b9030
53825e:	51                   	push   %ecx
53825f:	e8 fc af fe ff       	call   0x523260
538264:	83 c4 0c             	add    $0xc,%esp
538267:	8b 4d fc             	mov    -0x4(%ebp),%ecx
53826a:	b8 02 00 00 00       	mov    $0x2,%eax
53826f:	5f                   	pop    %edi
538270:	5e                   	pop    %esi
538271:	33 cd                	xor    %ebp,%ecx
538273:	5b                   	pop    %ebx
538274:	e8 61 92 0a 00       	call   0x5e14da
538279:	8b e5                	mov    %ebp,%esp
53827b:	5d                   	pop    %ebp
53827c:	c3                   	ret
53827d:	cc                   	int3
53827e:	cc                   	int3
53827f:	cc                   	int3
538280:	55                   	push   %ebp
538281:	8b ec                	mov    %esp,%ebp
538283:	83 ec 20             	sub    $0x20,%esp
538286:	a1 d4 89 72 00       	mov    0x7289d4,%eax
53828b:	33 c5                	xor    %ebp,%eax
53828d:	89 45 fc             	mov    %eax,-0x4(%ebp)
538290:	56                   	push   %esi
538291:	8b 75 0c             	mov    0xc(%ebp),%esi
538294:	57                   	push   %edi
538295:	8b 7d 08             	mov    0x8(%ebp),%edi
538298:	85 f6                	test   %esi,%esi
53829a:	75 12                	jne    0x5382ae
53829c:	5f                   	pop    %edi
53829d:	33 c0                	xor    %eax,%eax
53829f:	5e                   	pop    %esi
5382a0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5382a3:	33 cd                	xor    %ebp,%ecx
5382a5:	e8 30 92 0a 00       	call   0x5e14da
5382aa:	8b e5                	mov    %ebp,%esp
5382ac:	5d                   	pop    %ebp
5382ad:	c3                   	ret
5382ae:	8b 47 18             	mov    0x18(%edi),%eax
5382b1:	8b 0f                	mov    (%edi),%ecx
5382b3:	53                   	push   %ebx
5382b4:	8b d8                	mov    %eax,%ebx
5382b6:	89 4d e0             	mov    %ecx,-0x20(%ebp)
5382b9:	25 ef 6f ff ff       	and    $0xffff6fef,%eax
5382be:	c7 45 e4 d0 3c 51 00 	movl   $0x513cd0,-0x1c(%ebp)
5382c5:	89 47 18             	mov    %eax,0x18(%edi)
5382c8:	81 e3 10 90 00 00    	and    $0x9010,%ebx
5382ce:	8b 46 18             	mov    0x18(%esi),%eax
5382d1:	c7 45 e8 e0 47 51 00 	movl   $0x5147e0,-0x18(%ebp)
5382d8:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
5382df:	89 7d f8             	mov    %edi,-0x8(%ebp)
5382e2:	01 81 d0 00 00 00    	add    %eax,0xd0(%ecx)
5382e8:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5382eb:	8b 01                	mov    (%ecx),%eax
5382ed:	8b 40 78             	mov    0x78(%eax),%eax
5382f0:	39 81 d0 00 00 00    	cmp    %eax,0xd0(%ecx)
5382f6:	7e 25                	jle    0x53831d
5382f8:	50                   	push   %eax
5382f9:	68 30 90 6b 00       	push   $0x6b9030
5382fe:	51                   	push   %ecx
5382ff:	e8 5c af fe ff       	call   0x523260
538304:	83 c4 0c             	add    $0xc,%esp
538307:	5b                   	pop    %ebx
538308:	5f                   	pop    %edi
538309:	b8 01 00 00 00       	mov    $0x1,%eax
53830e:	5e                   	pop    %esi
53830f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
538312:	33 cd                	xor    %ebp,%ecx
538314:	e8 c1 91 0a 00       	call   0x5e14da
538319:	8b e5                	mov    %ebp,%esp
53831b:	5d                   	pop    %ebp
53831c:	c3                   	ret
53831d:	8d 45 e0             	lea    -0x20(%ebp),%eax
538320:	56                   	push   %esi
538321:	50                   	push   %eax
538322:	e8 89 7c 02 00       	call   0x55ffb0
538327:	8b 4d e0             	mov    -0x20(%ebp),%ecx
53832a:	83 c4 08             	add    $0x8,%esp
53832d:	8b 46 18             	mov    0x18(%esi),%eax
538330:	29 81 d0 00 00 00    	sub    %eax,0xd0(%ecx)
538336:	8b 47 18             	mov    0x18(%edi),%eax
538339:	25 10 80 00 00       	and    $0x8010,%eax
53833e:	09 46 04             	or     %eax,0x4(%esi)
538341:	09 5f 18             	or     %ebx,0x18(%edi)
538344:	83 7f 14 00          	cmpl   $0x0,0x14(%edi)
538348:	7f bd                	jg     0x538307
53834a:	8b 45 e0             	mov    -0x20(%ebp),%eax
53834d:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
538351:	7f b4                	jg     0x538307
538353:	8b 4d fc             	mov    -0x4(%ebp),%ecx
538356:	33 c0                	xor    %eax,%eax
538358:	5b                   	pop    %ebx
538359:	5f                   	pop    %edi
53835a:	33 cd                	xor    %ebp,%ecx
53835c:	5e                   	pop    %esi
53835d:	e8 78 91 0a 00       	call   0x5e14da
538362:	8b e5                	mov    %ebp,%esp
538364:	5d                   	pop    %ebp
538365:	c3                   	ret
538366:	cc                   	int3
538367:	cc                   	int3
538368:	cc                   	int3
538369:	cc                   	int3
53836a:	cc                   	int3
53836b:	cc                   	int3
53836c:	cc                   	int3
53836d:	cc                   	int3
53836e:	cc                   	int3
53836f:	cc                   	int3
538370:	55                   	push   %ebp
538371:	8b ec                	mov    %esp,%ebp
538373:	53                   	push   %ebx
538374:	8b 5d 10             	mov    0x10(%ebp),%ebx
538377:	85 db                	test   %ebx,%ebx
538379:	0f 84 a7 00 00 00    	je     0x538426
53837f:	8b 4d 08             	mov    0x8(%ebp),%ecx
538382:	8b 01                	mov    (%ecx),%eax
538384:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
538388:	0f 85 98 00 00 00    	jne    0x538426
53838e:	80 b9 c8 00 00 00 02 	cmpb   $0x2,0xc8(%ecx)
538395:	0f 83 8b 00 00 00    	jae    0x538426
53839b:	8b 13                	mov    (%ebx),%edx
53839d:	3b 50 74             	cmp    0x74(%eax),%edx
5383a0:	7e 19                	jle    0x5383bb
5383a2:	ff 75 14             	push   0x14(%ebp)
5383a5:	68 a0 8f 6b 00       	push   $0x6b8fa0
5383aa:	51                   	push   %ecx
5383ab:	e8 b0 ae fe ff       	call   0x523260
5383b0:	83 c4 0c             	add    $0xc,%esp
5383b3:	b8 01 00 00 00       	mov    $0x1,%eax
5383b8:	5b                   	pop    %ebx
5383b9:	5d                   	pop    %ebp
5383ba:	c3                   	ret
5383bb:	8b 45 0c             	mov    0xc(%ebp),%eax
5383be:	56                   	push   %esi
5383bf:	57                   	push   %edi
5383c0:	33 ff                	xor    %edi,%edi
5383c2:	8d 73 04             	lea    0x4(%ebx),%esi
5383c5:	8b 50 1c             	mov    0x1c(%eax),%edx
5383c8:	89 55 10             	mov    %edx,0x10(%ebp)
5383cb:	39 3b                	cmp    %edi,(%ebx)
5383cd:	7e 2f                	jle    0x5383fe
5383cf:	90                   	nop
5383d0:	0f b7 46 10          	movzwl 0x10(%esi),%eax
5383d4:	66 85 c0             	test   %ax,%ax
5383d7:	74 1d                	je     0x5383f6
5383d9:	3b 02                	cmp    (%edx),%eax
5383db:	7f 28                	jg     0x538405
5383dd:	6a 00                	push   $0x0
5383df:	ff 75 14             	push   0x14(%ebp)
5383e2:	48                   	dec    %eax
5383e3:	ff 36                	push   (%esi)
5383e5:	50                   	push   %eax
5383e6:	52                   	push   %edx
5383e7:	51                   	push   %ecx
5383e8:	e8 23 b4 fd ff       	call   0x513810
5383ed:	8b 4d 08             	mov    0x8(%ebp),%ecx
5383f0:	83 c4 18             	add    $0x18,%esp
5383f3:	8b 55 10             	mov    0x10(%ebp),%edx
5383f6:	47                   	inc    %edi
5383f7:	83 c6 14             	add    $0x14,%esi
5383fa:	3b 3b                	cmp    (%ebx),%edi
5383fc:	7c d2                	jl     0x5383d0
5383fe:	5f                   	pop    %edi
5383ff:	5e                   	pop    %esi
538400:	33 c0                	xor    %eax,%eax
538402:	5b                   	pop    %ebx
538403:	5d                   	pop    %ebp
538404:	c3                   	ret
538405:	ff 32                	push   (%edx)
538407:	8d 47 01             	lea    0x1(%edi),%eax
53840a:	ff 75 14             	push   0x14(%ebp)
53840d:	50                   	push   %eax
53840e:	68 fc 8e 6b 00       	push   $0x6b8efc
538413:	51                   	push   %ecx
538414:	e8 47 ae fe ff       	call   0x523260
538419:	83 c4 14             	add    $0x14,%esp
53841c:	b8 01 00 00 00       	mov    $0x1,%eax
538421:	5f                   	pop    %edi
538422:	5e                   	pop    %esi
538423:	5b                   	pop    %ebx
538424:	5d                   	pop    %ebp
538425:	c3                   	ret
538426:	33 c0                	xor    %eax,%eax
538428:	5b                   	pop    %ebx
538429:	5d                   	pop    %ebp
53842a:	c3                   	ret
53842b:	cc                   	int3
53842c:	cc                   	int3
53842d:	cc                   	int3
53842e:	cc                   	int3
53842f:	cc                   	int3
538430:	55                   	push   %ebp
538431:	8b ec                	mov    %esp,%ebp
538433:	83 ec 20             	sub    $0x20,%esp
538436:	a1 d4 89 72 00       	mov    0x7289d4,%eax
53843b:	33 c5                	xor    %ebp,%eax
53843d:	89 45 fc             	mov    %eax,-0x4(%ebp)
538440:	8b 45 10             	mov    0x10(%ebp),%eax
538443:	8b 55 0c             	mov    0xc(%ebp),%edx
538446:	8b 4d 08             	mov    0x8(%ebp),%ecx
538449:	89 45 f8             	mov    %eax,-0x8(%ebp)
53844c:	8d 45 e0             	lea    -0x20(%ebp),%eax
53844f:	52                   	push   %edx
538450:	50                   	push   %eax
538451:	c7 45 e4 d0 3c 51 00 	movl   $0x513cd0,-0x1c(%ebp)
538458:	c7 45 e8 e0 47 51 00 	movl   $0x5147e0,-0x18(%ebp)
53845f:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
538466:	89 4d e0             	mov    %ecx,-0x20(%ebp)
538469:	e8 82 79 01 00       	call   0x54fdf0
53846e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
538471:	83 c4 08             	add    $0x8,%esp
538474:	33 cd                	xor    %ebp,%ecx
538476:	e8 5f 90 0a 00       	call   0x5e14da
53847b:	8b e5                	mov    %ebp,%esp
53847d:	5d                   	pop    %ebp
53847e:	c3                   	ret
53847f:	cc                   	int3
538480:	55                   	push   %ebp
538481:	8b ec                	mov    %esp,%ebp
538483:	83 ec 74             	sub    $0x74,%esp
538486:	a1 d4 89 72 00       	mov    0x7289d4,%eax
53848b:	33 c5                	xor    %ebp,%eax
53848d:	89 45 fc             	mov    %eax,-0x4(%ebp)
538490:	53                   	push   %ebx
538491:	8b 5d 14             	mov    0x14(%ebp),%ebx
538494:	8d 45 ac             	lea    -0x54(%ebp),%eax
538497:	56                   	push   %esi
538498:	8b 75 18             	mov    0x18(%ebp),%esi
53849b:	0f 57 c0             	xorps  %xmm0,%xmm0
53849e:	57                   	push   %edi
53849f:	8b 7d 08             	mov    0x8(%ebp),%edi
5384a2:	6a 50                	push   $0x50
5384a4:	6a 00                	push   $0x0