507196:	29 47 14             	sub    %eax,0x14(%edi)
507199:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
50719d:	74 26                	je     0x5071c5
50719f:	8d 46 fc             	lea    -0x4(%esi),%eax
5071a2:	8b 75 fc             	mov    -0x4(%ebp),%esi
5071a5:	50                   	push   %eax
5071a6:	8d 43 04             	lea    0x4(%ebx),%eax
5071a9:	50                   	push   %eax
5071aa:	8b 45 08             	mov    0x8(%ebp),%eax
5071ad:	83 c0 04             	add    $0x4,%eax
5071b0:	03 c6                	add    %esi,%eax
5071b2:	50                   	push   %eax
5071b3:	e8 48 bd 0d 00       	call   0x5e2f00
5071b8:	8b 45 08             	mov    0x8(%ebp),%eax
5071bb:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
5071be:	0f c9                	bswap  %ecx
5071c0:	89 0c 30             	mov    %ecx,(%eax,%esi,1)
5071c3:	eb 0e                	jmp    0x5071d3
5071c5:	8b 45 08             	mov    0x8(%ebp),%eax
5071c8:	03 45 fc             	add    -0x4(%ebp),%eax
5071cb:	56                   	push   %esi
5071cc:	53                   	push   %ebx
5071cd:	50                   	push   %eax
5071ce:	e8 2d bd 0d 00       	call   0x5e2f00
5071d3:	8b 47 40             	mov    0x40(%edi),%eax
5071d6:	83 c4 0c             	add    $0xc,%esp
5071d9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5071dc:	8d 34 48             	lea    (%eax,%ecx,2),%esi
5071df:	0f b7 47 18          	movzwl 0x18(%edi),%eax
5071e3:	2b c1                	sub    %ecx,%eax
5071e5:	03 c0                	add    %eax,%eax
5071e7:	50                   	push   %eax
5071e8:	8d 46 02             	lea    0x2(%esi),%eax
5071eb:	56                   	push   %esi
5071ec:	50                   	push   %eax
5071ed:	e8 8e c2 0d 00       	call   0x5e3480
5071f2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5071f5:	83 c4 0c             	add    $0xc,%esp
5071f8:	8b c1                	mov    %ecx,%eax
5071fa:	88 4e 01             	mov    %cl,0x1(%esi)
5071fd:	8b 4d 08             	mov    0x8(%ebp),%ecx
507200:	c1 f8 08             	sar    $0x8,%eax
507203:	88 06                	mov    %al,(%esi)
507205:	0f b6 47 09          	movzbl 0x9(%edi),%eax
507209:	66 ff 47 18          	incw   0x18(%edi)
50720d:	80 44 08 04 01       	addb   $0x1,0x4(%eax,%ecx,1)
507212:	75 08                	jne    0x50721c
507214:	0f b6 47 09          	movzbl 0x9(%edi),%eax
507218:	fe 44 08 03          	incb   0x3(%eax,%ecx,1)
50721c:	8b 47 34             	mov    0x34(%edi),%eax
50721f:	80 78 11 00          	cmpb   $0x0,0x11(%eax)
507223:	74 51                	je     0x507276
507225:	ff 75 20             	push   0x20(%ebp)
507228:	53                   	push   %ebx
507229:	57                   	push   %edi
50722a:	57                   	push   %edi
50722b:	e8 80 99 00 00       	call   0x510bb0
507230:	83 c4 10             	add    $0x10,%esp
507233:	5f                   	pop    %edi
507234:	5e                   	pop    %esi
507235:	5b                   	pop    %ebx
507236:	8b e5                	mov    %ebp,%esp
507238:	5d                   	pop    %ebp
507239:	c3                   	ret
50723a:	8b 5d 18             	mov    0x18(%ebp),%ebx
50723d:	85 db                	test   %ebx,%ebx
50723f:	74 0f                	je     0x507250
507241:	56                   	push   %esi
507242:	ff 75 10             	push   0x10(%ebp)
507245:	53                   	push   %ebx
507246:	e8 b5 bc 0d 00       	call   0x5e2f00
50724b:	83 c4 0c             	add    $0xc,%esp
50724e:	eb 03                	jmp    0x507253
507250:	8b 5d 10             	mov    0x10(%ebp),%ebx
507253:	8b 45 1c             	mov    0x1c(%ebp),%eax
507256:	85 c0                	test   %eax,%eax
507258:	74 04                	je     0x50725e
50725a:	0f c8                	bswap  %eax
50725c:	89 03                	mov    %eax,(%ebx)
50725e:	8a 47 0c             	mov    0xc(%edi),%al
507261:	0f b6 c8             	movzbl %al,%ecx
507264:	fe c0                	inc    %al
507266:	88 47 0c             	mov    %al,0xc(%edi)
507269:	66 8b 45 0c          	mov    0xc(%ebp),%ax
50726d:	89 5c 8f 24          	mov    %ebx,0x24(%edi,%ecx,4)
507271:	66 89 44 4f 1c       	mov    %ax,0x1c(%edi,%ecx,2)
507276:	5f                   	pop    %edi
507277:	5e                   	pop    %esi
507278:	5b                   	pop    %ebx
507279:	8b e5                	mov    %ebp,%esp
50727b:	5d                   	pop    %ebp
50727c:	c3                   	ret
50727d:	cc                   	int3
50727e:	cc                   	int3
50727f:	cc                   	int3
507280:	55                   	push   %ebp
507281:	8b ec                	mov    %esp,%ebp
507283:	8b 55 0c             	mov    0xc(%ebp),%edx
507286:	8b 4d 10             	mov    0x10(%ebp),%ecx
507289:	56                   	push   %esi
50728a:	85 d2                	test   %edx,%edx
50728c:	74 3a                	je     0x5072c8
50728e:	8b 02                	mov    (%edx),%eax
507290:	85 c0                	test   %eax,%eax
507292:	74 05                	je     0x507299
507294:	8b 72 04             	mov    0x4(%edx),%esi
507297:	eb 02                	jmp    0x50729b
507299:	33 f6                	xor    %esi,%esi
50729b:	40                   	inc    %eax
50729c:	89 4a 04             	mov    %ecx,0x4(%edx)
50729f:	89 02                	mov    %eax,(%edx)
5072a1:	85 f6                	test   %esi,%esi
5072a3:	74 23                	je     0x5072c8
5072a5:	89 31                	mov    %esi,(%ecx)
5072a7:	8b 46 04             	mov    0x4(%esi),%eax
5072aa:	89 41 04             	mov    %eax,0x4(%ecx)
5072ad:	8b 46 04             	mov    0x4(%esi),%eax
5072b0:	85 c0                	test   %eax,%eax
5072b2:	74 08                	je     0x5072bc
5072b4:	89 08                	mov    %ecx,(%eax)
5072b6:	89 4e 04             	mov    %ecx,0x4(%esi)
5072b9:	5e                   	pop    %esi
5072ba:	5d                   	pop    %ebp
5072bb:	c3                   	ret
5072bc:	8b 45 08             	mov    0x8(%ebp),%eax
5072bf:	89 48 08             	mov    %ecx,0x8(%eax)
5072c2:	89 4e 04             	mov    %ecx,0x4(%esi)
5072c5:	5e                   	pop    %esi
5072c6:	5d                   	pop    %ebp
5072c7:	c3                   	ret
5072c8:	8b 55 08             	mov    0x8(%ebp),%edx
5072cb:	8b 42 08             	mov    0x8(%edx),%eax
5072ce:	89 01                	mov    %eax,(%ecx)
5072d0:	8b 42 08             	mov    0x8(%edx),%eax
5072d3:	85 c0                	test   %eax,%eax
5072d5:	74 03                	je     0x5072da
5072d7:	89 48 04             	mov    %ecx,0x4(%eax)
5072da:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
5072e1:	89 4a 08             	mov    %ecx,0x8(%edx)
5072e4:	5e                   	pop    %esi
5072e5:	5d                   	pop    %ebp
5072e6:	c3                   	ret
5072e7:	cc                   	int3
5072e8:	cc                   	int3
5072e9:	cc                   	int3
5072ea:	cc                   	int3
5072eb:	cc                   	int3
5072ec:	cc                   	int3
5072ed:	cc                   	int3
5072ee:	cc                   	int3
5072ef:	cc                   	int3
5072f0:	55                   	push   %ebp
5072f1:	8b ec                	mov    %esp,%ebp
5072f3:	56                   	push   %esi
5072f4:	8b 75 08             	mov    0x8(%ebp),%esi
5072f7:	57                   	push   %edi
5072f8:	8b 4e 6c             	mov    0x6c(%esi),%ecx
5072fb:	39 4e 70             	cmp    %ecx,0x70(%esi)
5072fe:	7f 13                	jg     0x507313
507300:	6a 00                	push   $0x0
507302:	6a 01                	push   $0x1
507304:	6a 03                	push   $0x3
507306:	6a 50                	push   $0x50
507308:	56                   	push   %esi
507309:	e8 f2 f1 ff ff       	call   0x506500
50730e:	83 c4 14             	add    $0x14,%esp
507311:	eb 33                	jmp    0x507346
507313:	8d 41 01             	lea    0x1(%ecx),%eax
507316:	89 46 6c             	mov    %eax,0x6c(%esi)
507319:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
50731c:	8b 46 68             	mov    0x68(%esi),%eax
50731f:	c7 04 88 50 00 00 00 	movl   $0x50,(%eax,%ecx,4)
507326:	c7 44 88 04 03 00 00 	movl   $0x3,0x4(%eax,%ecx,4)
50732d:	00
50732e:	c7 44 88 08 01 00 00 	movl   $0x1,0x8(%eax,%ecx,4)
507335:	00
507336:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
50733d:	00
50733e:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
507345:	00
507346:	8b 7e 6c             	mov    0x6c(%esi),%edi
507349:	8d 57 02             	lea    0x2(%edi),%edx
50734c:	39 7e 70             	cmp    %edi,0x70(%esi)
50734f:	7f 14                	jg     0x507365
507351:	6a 01                	push   $0x1
507353:	52                   	push   %edx
507354:	6a 01                	push   $0x1
507356:	6a 30                	push   $0x30
507358:	56                   	push   %esi
507359:	e8 a2 f1 ff ff       	call   0x506500
50735e:	83 c4 14             	add    $0x14,%esp
507361:	8b f8                	mov    %eax,%edi
507363:	eb 31                	jmp    0x507396
507365:	8d 47 01             	lea    0x1(%edi),%eax
507368:	89 46 6c             	mov    %eax,0x6c(%esi)
50736b:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
50736e:	8b 46 68             	mov    0x68(%esi),%eax
507371:	53                   	push   %ebx
507372:	5b                   	pop    %ebx
507373:	c7 04 88 30 00 00 00 	movl   $0x30,(%eax,%ecx,4)
50737a:	c7 44 88 04 01 00 00 	movl   $0x1,0x4(%eax,%ecx,4)
507381:	00
507382:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
507386:	c7 44 88 0c 01 00 00 	movl   $0x1,0xc(%eax,%ecx,4)
50738d:	00
50738e:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
507395:	00
507396:	8b 4e 6c             	mov    0x6c(%esi),%ecx
507399:	39 4e 70             	cmp    %ecx,0x70(%esi)
50739c:	7f 17                	jg     0x5073b5
50739e:	6a 00                	push   $0x0
5073a0:	6a 00                	push   $0x0
5073a2:	6a 00                	push   $0x0
5073a4:	6a 44                	push   $0x44
5073a6:	56                   	push   %esi
5073a7:	e8 54 f1 ff ff       	call   0x506500
5073ac:	83 c4 14             	add    $0x14,%esp
5073af:	8b c7                	mov    %edi,%eax
5073b1:	5f                   	pop    %edi
5073b2:	5e                   	pop    %esi
5073b3:	5d                   	pop    %ebp
5073b4:	c3                   	ret
5073b5:	8d 41 01             	lea    0x1(%ecx),%eax
5073b8:	89 46 6c             	mov    %eax,0x6c(%esi)
5073bb:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5073be:	8b 46 68             	mov    0x68(%esi),%eax
5073c1:	c7 04 88 44 00 00 00 	movl   $0x44,(%eax,%ecx,4)
5073c8:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
5073cf:	00
5073d0:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
5073d7:	00
5073d8:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5073df:	00
5073e0:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5073e7:	00
5073e8:	8b c7                	mov    %edi,%eax
5073ea:	5f                   	pop    %edi
5073eb:	5e                   	pop    %esi
5073ec:	5d                   	pop    %ebp
5073ed:	c3                   	ret
5073ee:	cc                   	int3
5073ef:	cc                   	int3
5073f0:	55                   	push   %ebp
5073f1:	8b ec                	mov    %esp,%ebp
5073f3:	8b 45 08             	mov    0x8(%ebp),%eax
5073f6:	8b 40 08             	mov    0x8(%eax),%eax
5073f9:	85 c0                	test   %eax,%eax
5073fb:	74 0e                	je     0x50740b
5073fd:	0f 1f 00             	nopl   (%eax)
507400:	80 60 01 fb          	andb   $0xfb,0x1(%eax)
507404:	8b 40 18             	mov    0x18(%eax),%eax
507407:	85 c0                	test   %eax,%eax
507409:	75 f5                	jne    0x507400
50740b:	5d                   	pop    %ebp
50740c:	c3                   	ret
50740d:	cc                   	int3
50740e:	cc                   	int3
50740f:	cc                   	int3
507410:	55                   	push   %ebp
507411:	8b ec                	mov    %esp,%ebp
507413:	8b 4d 08             	mov    0x8(%ebp),%ecx
507416:	80 79 0b 00          	cmpb   $0x0,0xb(%ecx)
50741a:	74 4e                	je     0x50746a
50741c:	8b 41 04             	mov    0x4(%ecx),%eax
50741f:	c6 41 0b 00          	movb   $0x0,0xb(%ecx)
507423:	8b 40 08             	mov    0x8(%eax),%eax
507426:	85 c0                	test   %eax,%eax
507428:	74 40                	je     0x50746a
50742a:	8b 55 18             	mov    0x18(%ebp),%edx
50742d:	53                   	push   %ebx
50742e:	8b 5d 10             	mov    0x10(%ebp),%ebx
507431:	56                   	push   %esi
507432:	8b 75 0c             	mov    0xc(%ebp),%esi
507435:	57                   	push   %edi
507436:	8b 7d 14             	mov    0x14(%ebp),%edi
507439:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
507440:	f6 40 01 10          	testb  $0x10,0x1(%eax)
507444:	74 1a                	je     0x507460
507446:	c6 41 0b 01          	movb   $0x1,0xb(%ecx)
50744a:	39 70 40             	cmp    %esi,0x40(%eax)
50744d:	75 11                	jne    0x507460
50744f:	85 d2                	test   %edx,%edx
507451:	75 0a                	jne    0x50745d
507453:	39 58 20             	cmp    %ebx,0x20(%eax)
507456:	75 08                	jne    0x507460
507458:	39 78 24             	cmp    %edi,0x24(%eax)
50745b:	75 03                	jne    0x507460
50745d:	c6 00 01             	movb   $0x1,(%eax)
507460:	8b 40 18             	mov    0x18(%eax),%eax
507463:	85 c0                	test   %eax,%eax
507465:	75 d9                	jne    0x507440
507467:	5f                   	pop    %edi
507468:	5e                   	pop    %esi
507469:	5b                   	pop    %ebx
50746a:	5d                   	pop    %ebp
50746b:	c3                   	ret
50746c:	cc                   	int3
50746d:	cc                   	int3
50746e:	cc                   	int3
50746f:	cc                   	int3
507470:	55                   	push   %ebp
507471:	8b ec                	mov    %esp,%ebp
507473:	8b 4d 08             	mov    0x8(%ebp),%ecx
507476:	56                   	push   %esi
507477:	8b 31                	mov    (%ecx),%esi
507479:	8b 46 10             	mov    0x10(%esi),%eax
50747c:	8b 40 14             	mov    0x14(%eax),%eax
50747f:	85 c0                	test   %eax,%eax
507481:	74 25                	je     0x5074a8
507483:	80 7e 4f 00          	cmpb   $0x0,0x4f(%esi)
507487:	74 24                	je     0x5074ad
507489:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
50748d:	75 1e                	jne    0x5074ad
50748f:	50                   	push   %eax
507490:	e8 6b 3a 01 00       	call   0x51af00
507495:	8b 46 10             	mov    0x10(%esi),%eax
507498:	56                   	push   %esi
507499:	c7 40 14 00 00 00 00 	movl   $0x0,0x14(%eax)
5074a0:	e8 8b 0a 03 00       	call   0x537f30
5074a5:	83 c4 08             	add    $0x8,%esp
5074a8:	33 c0                	xor    %eax,%eax
5074aa:	5e                   	pop    %esi
5074ab:	5d                   	pop    %ebp
5074ac:	c3                   	ret
5074ad:	68 84 aa 6b 00       	push   $0x6baa84
5074b2:	51                   	push   %ecx
5074b3:	e8 a8 bd 01 00       	call   0x523260
5074b8:	83 c4 08             	add    $0x8,%esp
5074bb:	b8 01 00 00 00       	mov    $0x1,%eax
5074c0:	5e                   	pop    %esi
5074c1:	5d                   	pop    %ebp
5074c2:	c3                   	ret
5074c3:	cc                   	int3
5074c4:	cc                   	int3
5074c5:	cc                   	int3
5074c6:	cc                   	int3
5074c7:	cc                   	int3
5074c8:	cc                   	int3
5074c9:	cc                   	int3
5074ca:	cc                   	int3
5074cb:	cc                   	int3
5074cc:	cc                   	int3
5074cd:	cc                   	int3
5074ce:	cc                   	int3
5074cf:	cc                   	int3
5074d0:	55                   	push   %ebp
5074d1:	8b ec                	mov    %esp,%ebp
5074d3:	83 ec 1c             	sub    $0x1c,%esp
5074d6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
5074db:	33 c5                	xor    %ebp,%eax