5522ce:	74 45                	je     0x552315
5522d0:	f6 40 0a 06          	testb  $0x6,0xa(%eax)
5522d4:	75 3f                	jne    0x552315
5522d6:	bb ff 1f 00 00       	mov    $0x1fff,%ebx
5522db:	66 85 58 0c          	test   %bx,0xc(%eax)
5522df:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
5522e5:	74 2e                	je     0x552315
5522e7:	85 c9                	test   %ecx,%ecx
5522e9:	74 15                	je     0x552300
5522eb:	6a 00                	push   $0x0
5522ed:	6a 00                	push   $0x0
5522ef:	51                   	push   %ecx
5522f0:	ff b5 f4 fe ff ff    	push   -0x10c(%ebp)
5522f6:	e8 65 e5 fa ff       	call   0x500860
5522fb:	83 c4 10             	add    $0x10,%esp
5522fe:	eb 02                	jmp    0x552302
552300:	33 c0                	xor    %eax,%eax
552302:	50                   	push   %eax
552303:	56                   	push   %esi
552304:	53                   	push   %ebx
552305:	e8 f6 14 fd ff       	call   0x523800
55230a:	8b 95 5c ff ff ff    	mov    -0xa4(%ebp),%edx
552310:	83 c4 0c             	add    $0xc,%esp
552313:	8b f0                	mov    %eax,%esi
552315:	8b 8d f0 fe ff ff    	mov    -0x110(%ebp),%ecx
55231b:	42                   	inc    %edx
55231c:	83 c7 30             	add    $0x30,%edi
55231f:	89 95 5c ff ff ff    	mov    %edx,-0xa4(%ebp)
552325:	3b 51 0c             	cmp    0xc(%ecx),%edx
552328:	7c 96                	jl     0x5522c0
55232a:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
552330:	85 f6                	test   %esi,%esi
552332:	89 b5 3c ff ff ff    	mov    %esi,-0xc4(%ebp)
552338:	8b b5 2c ff ff ff    	mov    -0xd4(%ebp),%esi
55233e:	0f 84 8d 00 00 00    	je     0x5523d1
552344:	6a 00                	push   $0x0
552346:	6a 34                	push   $0x34
552348:	ff 33                	push   (%ebx)
55234a:	e8 91 f0 fc ff       	call   0x5213e0
55234f:	83 c4 0c             	add    $0xc,%esp
552352:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
552358:	85 c0                	test   %eax,%eax
55235a:	74 58                	je     0x5523b4
55235c:	6a 34                	push   $0x34
55235e:	6a 00                	push   $0x0
552360:	50                   	push   %eax
552361:	e8 9a 16 09 00       	call   0x5e3a00
552366:	8b 8d 58 ff ff ff    	mov    -0xa8(%ebp),%ecx
55236c:	83 c8 ff             	or     $0xffffffff,%eax
55236f:	51                   	push   %ecx
552370:	66 89 41 22          	mov    %ax,0x22(%ecx)
552374:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
55237a:	89 41 10             	mov    %eax,0x10(%ecx)
55237d:	c6 01 2c             	movb   $0x2c,(%ecx)
552380:	8b 40 04             	mov    0x4(%eax),%eax
552383:	25 04 01 20 00       	and    $0x200104,%eax
552388:	09 41 04             	or     %eax,0x4(%ecx)
55238b:	e8 30 f3 fa ff       	call   0x5016c0
552390:	8b 03                	mov    (%ebx),%eax
552392:	83 c4 10             	add    $0x10,%esp
552395:	8b 48 78             	mov    0x78(%eax),%ecx
552398:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
55239e:	39 48 18             	cmp    %ecx,0x18(%eax)
5523a1:	7e 28                	jle    0x5523cb
5523a3:	51                   	push   %ecx
5523a4:	68 30 90 6b 00       	push   $0x6b9030
5523a9:	53                   	push   %ebx
5523aa:	e8 b1 0e fd ff       	call   0x523260
5523af:	83 c4 0c             	add    $0xc,%esp
5523b2:	eb 11                	jmp    0x5523c5
5523b4:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
5523ba:	50                   	push   %eax
5523bb:	ff 33                	push   (%ebx)
5523bd:	e8 ee 43 fd ff       	call   0x5267b0
5523c2:	83 c4 08             	add    $0x8,%esp
5523c5:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
5523cb:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
5523d1:	8b 85 1c ff ff ff    	mov    -0xe4(%ebp),%eax
5523d7:	b9 00 04 00 00       	mov    $0x400,%ecx
5523dc:	68 cc ba 6b 00       	push   $0x6bbacc
5523e1:	6a 01                	push   $0x1
5523e3:	53                   	push   %ebx
5523e4:	66 8b 40 28          	mov    0x28(%eax),%ax
5523e8:	66 23 c1             	and    %cx,%ax
5523eb:	66 83 c8 20          	or     $0x20,%ax
5523ef:	0f b7 c0             	movzwl %ax,%eax
5523f2:	89 85 08 ff ff ff    	mov    %eax,-0xf8(%ebp)
5523f8:	e8 e3 77 ff ff       	call   0x549be0
5523fd:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
552403:	33 c0                	xor    %eax,%eax
552405:	83 c4 0c             	add    $0xc,%esp
552408:	89 85 0c ff ff ff    	mov    %eax,-0xf4(%ebp)
55240e:	39 41 0c             	cmp    %eax,0xc(%ecx)
552411:	0f 8e d4 03 00 00    	jle    0x5527eb
552417:	8b 95 40 ff ff ff    	mov    -0xc0(%ebp),%edx
55241d:	0f 1f 00             	nopl   (%eax)
552420:	8d 04 40             	lea    (%eax,%eax,2),%eax
552423:	c1 e0 04             	shl    $0x4,%eax
552426:	03 41 14             	add    0x14(%ecx),%eax
552429:	39 50 14             	cmp    %edx,0x14(%eax)
55242c:	74 0f                	je     0x55243d
55242e:	be 00 04 00 00       	mov    $0x400,%esi
552433:	66 85 70 0c          	test   %si,0xc(%eax)
552437:	0f 84 92 03 00 00    	je     0x5527cf
55243d:	8b 30                	mov    (%eax),%esi
55243f:	33 c0                	xor    %eax,%eax
552441:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
552447:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
55244d:	85 c0                	test   %eax,%eax
55244f:	74 05                	je     0x552456
552451:	89 70 0c             	mov    %esi,0xc(%eax)
552454:	8b f0                	mov    %eax,%esi
552456:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
55245c:	40                   	inc    %eax
55245d:	50                   	push   %eax
55245e:	68 dc ba 6b 00       	push   $0x6bbadc
552463:	6a 01                	push   $0x1
552465:	53                   	push   %ebx
552466:	e8 75 77 ff ff       	call   0x549be0
55246b:	ff b5 20 ff ff ff    	push   -0xe0(%ebp)
552471:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
552477:	6a 00                	push   $0x0
552479:	6a 00                	push   $0x0
55247b:	56                   	push   %esi
55247c:	8b b5 14 ff ff ff    	mov    -0xec(%ebp),%esi
552482:	56                   	push   %esi
552483:	53                   	push   %ebx
552484:	e8 f7 da ff ff       	call   0x54ff80
552489:	83 c4 2c             	add    $0x2c,%esp
55248c:	89 85 e4 fe ff ff    	mov    %eax,-0x11c(%ebp)
552492:	85 c0                	test   %eax,%eax
552494:	0f 84 29 03 00 00    	je     0x5527c3
55249a:	6a 00                	push   $0x0
55249c:	8d 88 f0 02 00 00    	lea    0x2f0(%eax),%ecx
5524a2:	51                   	push   %ecx
5524a3:	56                   	push   %esi
5524a4:	53                   	push   %ebx
5524a5:	e8 76 13 00 00       	call   0x553820
5524aa:	8b 85 1c ff ff ff    	mov    -0xe4(%ebp),%eax
5524b0:	83 c4 10             	add    $0x10,%esp
5524b3:	f6 40 28 10          	testb  $0x10,0x28(%eax)
5524b7:	0f 85 d4 01 00 00    	jne    0x552691
5524bd:	8b 85 04 ff ff ff    	mov    -0xfc(%ebp),%eax
5524c3:	8b b5 0c ff ff ff    	mov    -0xf4(%ebp),%esi
5524c9:	8b 40 0c             	mov    0xc(%eax),%eax
5524cc:	48                   	dec    %eax
5524cd:	3b f0                	cmp    %eax,%esi
5524cf:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
5524d4:	0f 44 f0             	cmove  %eax,%esi
5524d7:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
5524dd:	89 b5 5c ff ff ff    	mov    %esi,-0xa4(%ebp)
5524e3:	f6 40 24 80          	testb  $0x80,0x24(%eax)
5524e7:	75 36                	jne    0x55251f
5524e9:	8b 95 10 ff ff ff    	mov    -0xf0(%ebp),%edx
5524ef:	52                   	push   %edx
5524f0:	ff b5 40 ff ff ff    	push   -0xc0(%ebp)
5524f6:	6a 7f                	push   $0x7f
5524f8:	57                   	push   %edi
5524f9:	e8 e2 f5 fe ff       	call   0x541ae0
5524fe:	56                   	push   %esi
5524ff:	ff b5 10 ff ff ff    	push   -0xf0(%ebp)
552505:	6a 00                	push   $0x0
552507:	ff b5 50 ff ff ff    	push   -0xb0(%ebp)
55250d:	6a 2d                	push   $0x2d
55250f:	57                   	push   %edi
552510:	e8 fb f6 fe ff       	call   0x541c10
552515:	83 c4 28             	add    $0x28,%esp
552518:	8b f0                	mov    %eax,%esi
55251a:	e9 78 01 00 00       	jmp    0x552697
55251f:	50                   	push   %eax
552520:	e8 ab 4e fe ff       	call   0x5373d0
552525:	89 85 dc fe ff ff    	mov    %eax,-0x124(%ebp)
55252b:	0f b7 40 32          	movzwl 0x32(%eax),%eax
55252f:	50                   	push   %eax
552530:	53                   	push   %ebx
552531:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
552537:	e8 e4 a9 fd ff       	call   0x52cf20
55253c:	33 f6                	xor    %esi,%esi
55253e:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
552544:	83 c4 0c             	add    $0xc,%esp
552547:	39 b5 58 ff ff ff    	cmp    %esi,-0xa8(%ebp)
55254d:	76 3e                	jbe    0x55258d
55254f:	8b 9d 58 ff ff ff    	mov    -0xa8(%ebp),%ebx
552555:	8d 0c 06             	lea    (%esi,%eax,1),%ecx
552558:	8b 85 dc fe ff ff    	mov    -0x124(%ebp),%eax
55255e:	51                   	push   %ecx
55255f:	8b 40 04             	mov    0x4(%eax),%eax
552562:	0f bf 04 70          	movswl (%eax,%esi,2),%eax
552566:	50                   	push   %eax
552567:	ff b5 40 ff ff ff    	push   -0xc0(%ebp)
55256d:	ff b5 38 ff ff ff    	push   -0xc8(%ebp)
552573:	57                   	push   %edi
552574:	e8 47 1b fd ff       	call   0x5240c0
552579:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
55257f:	46                   	inc    %esi
552580:	83 c4 14             	add    $0x14,%esp
552583:	3b f3                	cmp    %ebx,%esi
552585:	7c ce                	jl     0x552555
552587:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
55258d:	83 bd 5c ff ff ff 00 	cmpl   $0x0,-0xa4(%ebp)
552594:	8b b5 58 ff ff ff    	mov    -0xa8(%ebp),%esi
55259a:	74 28                	je     0x5525c4
55259c:	56                   	push   %esi
55259d:	50                   	push   %eax
55259e:	6a 00                	push   $0x0
5525a0:	ff b5 50 ff ff ff    	push   -0xb0(%ebp)
5525a6:	6a 1e                	push   $0x1e
5525a8:	57                   	push   %edi
5525a9:	e8 62 f6 fe ff       	call   0x541c10
5525ae:	83 c4 18             	add    $0x18,%esp
5525b1:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
5525b7:	83 bd 5c ff ff ff 00 	cmpl   $0x0,-0xa4(%ebp)
5525be:	0f 8c 91 00 00 00    	jl     0x552655
5525c4:	8b 4f 6c             	mov    0x6c(%edi),%ecx
5525c7:	8b 95 54 ff ff ff    	mov    -0xac(%ebp),%edx
5525cd:	39 4f 70             	cmp    %ecx,0x70(%edi)
5525d0:	7f 15                	jg     0x5525e7
5525d2:	ff b5 10 ff ff ff    	push   -0xf0(%ebp)
5525d8:	56                   	push   %esi
5525d9:	52                   	push   %edx
5525da:	6a 5b                	push   $0x5b
5525dc:	57                   	push   %edi
5525dd:	e8 1e 3f fb ff       	call   0x506500
5525e2:	83 c4 14             	add    $0x14,%esp
5525e5:	eb 2d                	jmp    0x552614
5525e7:	8d 41 01             	lea    0x1(%ecx),%eax
5525ea:	89 47 6c             	mov    %eax,0x6c(%edi)
5525ed:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5525f0:	8b 47 68             	mov    0x68(%edi),%eax
5525f3:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5525f7:	8b 95 10 ff ff ff    	mov    -0xf0(%ebp),%edx
5525fd:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
552604:	89 74 88 08          	mov    %esi,0x8(%eax,%ecx,4)
552608:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
55260c:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
552613:	00
552614:	56                   	push   %esi
552615:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
55261b:	ff b5 10 ff ff ff    	push   -0xf0(%ebp)
552621:	ff b5 50 ff ff ff    	push   -0xb0(%ebp)
552627:	68 83 00 00 00       	push   $0x83
55262c:	57                   	push   %edi
55262d:	e8 de f5 fe ff       	call   0x541c10
552632:	83 c4 18             	add    $0x18,%esp
552635:	83 bd 5c ff ff ff 00 	cmpl   $0x0,-0xa4(%ebp)
55263c:	74 17                	je     0x552655
55263e:	8b 47 6c             	mov    0x6c(%edi),%eax
552641:	85 c0                	test   %eax,%eax
552643:	7e 10                	jle    0x552655
552645:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
552648:	ba 10 00 00 00       	mov    $0x10,%edx
55264d:	8b 47 68             	mov    0x68(%edi),%eax
552650:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
552655:	83 fe 01             	cmp    $0x1,%esi
552658:	75 26                	jne    0x552680
55265a:	8b 8d 54 ff ff ff    	mov    -0xac(%ebp),%ecx
552660:	85 c9                	test   %ecx,%ecx
552662:	74 2d                	je     0x552691
552664:	8a 43 13             	mov    0x13(%ebx),%al
552667:	8b b5 34 ff ff ff    	mov    -0xcc(%ebp),%esi
55266d:	3c 08                	cmp    $0x8,%al
55266f:	73 26                	jae    0x552697
552671:	0f b6 c0             	movzbl %al,%eax
552674:	89 8c 83 94 00 00 00 	mov    %ecx,0x94(%ebx,%eax,4)
55267b:	fe 43 13             	incb   0x13(%ebx)
55267e:	eb 17                	jmp    0x552697
552680:	3b 73 1c             	cmp    0x1c(%ebx),%esi
552683:	7e 0c                	jle    0x552691
552685:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
55268b:	89 73 1c             	mov    %esi,0x1c(%ebx)
55268e:	89 43 20             	mov    %eax,0x20(%ebx)
552691:	8b b5 34 ff ff ff    	mov    -0xcc(%ebp),%esi
552697:	8b 4f 6c             	mov    0x6c(%edi),%ecx
55269a:	39 4f 70             	cmp    %ecx,0x70(%edi)
55269d:	7f 18                	jg     0x5526b7
55269f:	6a 00                	push   $0x0
5526a1:	ff b5 48 ff ff ff    	push   -0xb8(%ebp)
5526a7:	ff 75 98             	push   -0x68(%ebp)
5526aa:	6a 0c                	push   $0xc
5526ac:	57                   	push   %edi
5526ad:	e8 4e 3e fb ff       	call   0x506500
5526b2:	83 c4 14             	add    $0x14,%esp
5526b5:	eb 34                	jmp    0x5526eb
5526b7:	8b 55 98             	mov    -0x68(%ebp),%edx
5526ba:	8d 41 01             	lea    0x1(%ecx),%eax
5526bd:	89 47 6c             	mov    %eax,0x6c(%edi)
5526c0:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5526c3:	8b 47 68             	mov    0x68(%edi),%eax
5526c6:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5526ca:	8b 95 48 ff ff ff    	mov    -0xb8(%ebp),%edx
5526d0:	c7 04 88 0c 00 00 00 	movl   $0xc,(%eax,%ecx,4)
5526d7:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5526db:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5526e2:	00
5526e3:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5526ea:	00
5526eb:	85 f6                	test   %esi,%esi
5526ed:	74 23                	je     0x552712
5526ef:	8b 57 6c             	mov    0x6c(%edi),%edx
5526f2:	79 03                	jns    0x5526f7
5526f4:	8d 72 ff             	lea    -0x1(%edx),%esi
5526f7:	8b 07                	mov    (%edi),%eax
5526f9:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5526fd:	74 07                	je     0x552706
5526ff:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
552704:	eb 09                	jmp    0x55270f
552706:	8b 47 68             	mov    0x68(%edi),%eax
552709:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
55270c:	8d 04 88             	lea    (%eax,%ecx,4),%eax
55270f:	89 50 08             	mov    %edx,0x8(%eax)
552712:	8b 95 e4 fe ff ff    	mov    -0x11c(%ebp),%edx
552718:	b9 01 00 00 00       	mov    $0x1,%ecx
55271d:	8b 85 28 ff ff ff    	mov    -0xd8(%ebp),%eax
552723:	f6 42 30 02          	testb  $0x2,0x30(%edx)
552727:	0f 45 c1             	cmovne %ecx,%eax
55272a:	8b 8a 38 03 00 00    	mov    0x338(%edx),%ecx
552730:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
552736:	f7 41 24 00 02 00 00 	testl  $0x200,0x24(%ecx)
55273d:	74 37                	je     0x552776
55273f:	83 bd 0c ff ff ff 00 	cmpl   $0x0,-0xf4(%ebp)
552746:	74 0b                	je     0x552753
552748:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
55274e:	39 41 20             	cmp    %eax,0x20(%ecx)
552751:	75 23                	jne    0x552776
552753:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
552759:	f6 40 24 80          	testb  $0x80,0x24(%eax)
55275d:	74 0c                	je     0x55276b
55275f:	8b 41 20             	mov    0x20(%ecx),%eax
552762:	8b 40 38             	mov    0x38(%eax),%eax
552765:	24 03                	and    $0x3,%al
552767:	3c 02                	cmp    $0x2,%al
552769:	74 0b                	je     0x552776
55276b:	8b 71 20             	mov    0x20(%ecx),%esi
55276e:	89 b5 24 ff ff ff    	mov    %esi,-0xdc(%ebp)
552774:	eb 0a                	jmp    0x552780
552776:	c7 85 24 ff ff ff 00 	movl   $0x0,-0xdc(%ebp)
55277d:	00 00 00
552780:	52                   	push   %edx
552781:	e8 8a 06 00 00       	call   0x552e10
552786:	8b 8b d4 00 00 00    	mov    0xd4(%ebx),%ecx
55278c:	83 c4 04             	add    $0x4,%esp
55278f:	85 c9                	test   %ecx,%ecx
552791:	75 04                	jne    0x552797
552793:	33 c0                	xor    %eax,%eax
552795:	eb 26                	jmp    0x5527bd
552797:	8b 53 08             	mov    0x8(%ebx),%edx
55279a:	85 c9                	test   %ecx,%ecx
55279c:	79 04                	jns    0x5527a2
55279e:	8b 4a 6c             	mov    0x6c(%edx),%ecx
5527a1:	49                   	dec    %ecx