552064:	00 00 00
552067:	8b 48 10             	mov    0x10(%eax),%ecx
55206a:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
552070:	c7 85 10 ff ff ff 00 	movl   $0x0,-0xf0(%ebp)
552077:	00 00 00
55207a:	c7 85 28 ff ff ff 00 	movl   $0x0,-0xd8(%ebp)
552081:	00 00 00
552084:	89 8d 38 ff ff ff    	mov    %ecx,-0xc8(%ebp)
55208a:	8b 40 30             	mov    0x30(%eax),%eax
55208d:	8b 00                	mov    (%eax),%eax
55208f:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
552095:	8b 40 1c             	mov    0x1c(%eax),%eax
552098:	89 56 38             	mov    %edx,0x38(%esi)
55209b:	8b 95 1c ff ff ff    	mov    -0xe4(%ebp),%edx
5520a1:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
5520a7:	c6 46 35 41          	movb   $0x41,0x35(%esi)
5520ab:	8a 42 2c             	mov    0x2c(%edx),%al
5520ae:	3c 01                	cmp    $0x1,%al
5520b0:	0f 86 3b 01 00 00    	jbe    0x5521f1
5520b6:	8b 8d f4 fe ff ff    	mov    -0x10c(%ebp),%ecx
5520bc:	0f b6 c0             	movzbl %al,%eax
5520bf:	2b 45 14             	sub    0x14(%ebp),%eax
5520c2:	48                   	dec    %eax
5520c3:	89 85 08 ff ff ff    	mov    %eax,-0xf8(%ebp)
5520c9:	6a 00                	push   $0x0
5520cb:	8d 04 c0             	lea    (%eax,%eax,8),%eax
5520ce:	8d 04 c5 50 00 00 00 	lea    0x50(,%eax,8),%eax
5520d5:	50                   	push   %eax
5520d6:	85 c9                	test   %ecx,%ecx
5520d8:	74 13                	je     0x5520ed
5520da:	51                   	push   %ecx
5520db:	e8 00 f3 fc ff       	call   0x5213e0
5520e0:	8b c8                	mov    %eax,%ecx
5520e2:	83 c4 0c             	add    $0xc,%esp
5520e5:	89 8d 14 ff ff ff    	mov    %ecx,-0xec(%ebp)
5520eb:	eb 10                	jmp    0x5520fd
5520ed:	e8 6e ee fd ff       	call   0x530f60
5520f2:	83 c4 08             	add    $0x8,%esp
5520f5:	89 85 14 ff ff ff    	mov    %eax,-0xec(%ebp)
5520fb:	8b c8                	mov    %eax,%ecx
5520fd:	85 c9                	test   %ecx,%ecx
5520ff:	75 17                	jne    0x552118
552101:	8b 45 1c             	mov    0x1c(%ebp),%eax
552104:	8b 55 20             	mov    0x20(%ebp),%edx
552107:	5f                   	pop    %edi
552108:	5e                   	pop    %esi
552109:	5b                   	pop    %ebx
55210a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55210d:	33 cd                	xor    %ebp,%ecx
55210f:	e8 c6 f3 08 00       	call   0x5e14da
552114:	8b e5                	mov    %ebp,%esp
552116:	5d                   	pop    %ebp
552117:	c3                   	ret
552118:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
55211e:	8d 42 01             	lea    0x1(%edx),%eax
552121:	0f b6 c0             	movzbl %al,%eax
552124:	89 41 04             	mov    %eax,0x4(%ecx)
552127:	89 01                	mov    %eax,(%ecx)
552129:	8b 85 ec fe ff ff    	mov    -0x114(%ebp),%eax
55212f:	0f 10 00             	movups (%eax),%xmm0
552132:	0f 11 41 08          	movups %xmm0,0x8(%ecx)
552136:	0f 10 40 10          	movups 0x10(%eax),%xmm0
55213a:	0f 11 41 18          	movups %xmm0,0x18(%ecx)
55213e:	0f 10 40 20          	movups 0x20(%eax),%xmm0
552142:	0f 11 41 28          	movups %xmm0,0x28(%ecx)
552146:	0f 10 40 30          	movups 0x30(%eax),%xmm0
55214a:	0f 11 41 38          	movups %xmm0,0x38(%ecx)
55214e:	f3 0f 7e 40 40       	movq   0x40(%eax),%xmm0
552153:	8b 85 1c ff ff ff    	mov    -0xe4(%ebp),%eax
552159:	66 0f d6 41 48       	movq   %xmm0,0x48(%ecx)
55215e:	8b 40 04             	mov    0x4(%eax),%eax
552161:	83 fa 01             	cmp    $0x1,%edx
552164:	7c 57                	jl     0x5521bd
552166:	83 c1 50             	add    $0x50,%ecx
552169:	8d be 8c 00 00 00    	lea    0x8c(%esi),%edi
55216f:	8b d8                	mov    %eax,%ebx
552171:	0f b6 07             	movzbl (%edi),%eax
552174:	8d 7f 58             	lea    0x58(%edi),%edi
552177:	8d 49 48             	lea    0x48(%ecx),%ecx
55217a:	8d 04 c0             	lea    (%eax,%eax,8),%eax
55217d:	0f 10 44 c3 08       	movups 0x8(%ebx,%eax,8),%xmm0
552182:	0f 11 41 b8          	movups %xmm0,-0x48(%ecx)
552186:	0f 10 44 c3 18       	movups 0x18(%ebx,%eax,8),%xmm0
55218b:	0f 11 41 c8          	movups %xmm0,-0x38(%ecx)
55218f:	0f 10 44 c3 28       	movups 0x28(%ebx,%eax,8),%xmm0
552194:	0f 11 41 d8          	movups %xmm0,-0x28(%ecx)
552198:	0f 10 44 c3 38       	movups 0x38(%ebx,%eax,8),%xmm0
55219d:	0f 11 41 e8          	movups %xmm0,-0x18(%ecx)
5521a1:	f3 0f 7e 44 c3 48    	movq   0x48(%ebx,%eax,8),%xmm0
5521a7:	66 0f d6 41 f8       	movq   %xmm0,-0x8(%ecx)
5521ac:	83 ea 01             	sub    $0x1,%edx
5521af:	75 c0                	jne    0x552171
5521b1:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
5521b7:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
5521bd:	8b 8d 38 ff ff ff    	mov    -0xc8(%ebp),%ecx
5521c3:	8b 85 1c ff ff ff    	mov    -0xe4(%ebp),%eax
5521c9:	f6 40 28 10          	testb  $0x10,0x28(%eax)
5521cd:	75 6e                	jne    0x55223d
5521cf:	f6 41 24 80          	testb  $0x80,0x24(%ecx)
5521d3:	75 27                	jne    0x5521fc
5521d5:	ff 43 2c             	incl   0x2c(%ebx)
5521d8:	8b 43 2c             	mov    0x2c(%ebx),%eax
5521db:	50                   	push   %eax
5521dc:	6a 00                	push   $0x0
5521de:	6a 48                	push   $0x48
5521e0:	57                   	push   %edi
5521e1:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
5521e7:	e8 f4 f8 fe ff       	call   0x541ae0
5521ec:	83 c4 10             	add    $0x10,%esp
5521ef:	eb 40                	jmp    0x552231
5521f1:	8b 42 04             	mov    0x4(%edx),%eax
5521f4:	89 85 14 ff ff ff    	mov    %eax,-0xec(%ebp)
5521fa:	eb c7                	jmp    0x5521c3
5521fc:	51                   	push   %ecx
5521fd:	e8 ce 51 fe ff       	call   0x5373d0
552202:	8b f0                	mov    %eax,%esi
552204:	8b 43 28             	mov    0x28(%ebx),%eax
552207:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
55220d:	8d 48 01             	lea    0x1(%eax),%ecx
552210:	89 4b 28             	mov    %ecx,0x28(%ebx)
552213:	0f b7 4e 32          	movzwl 0x32(%esi),%ecx
552217:	51                   	push   %ecx
552218:	50                   	push   %eax
552219:	6a 64                	push   $0x64
55221b:	57                   	push   %edi
55221c:	e8 bf f8 fe ff       	call   0x541ae0
552221:	56                   	push   %esi
552222:	53                   	push   %ebx
552223:	e8 28 ae ff ff       	call   0x54d050
552228:	8b b5 2c ff ff ff    	mov    -0xd4(%ebp),%esi
55222e:	83 c4 1c             	add    $0x1c,%esp
552231:	ff 43 2c             	incl   0x2c(%ebx)
552234:	8b 43 2c             	mov    0x2c(%ebx),%eax
552237:	89 85 10 ff ff ff    	mov    %eax,-0xf0(%ebp)
55223d:	8b 57 6c             	mov    0x6c(%edi),%edx
552240:	89 95 30 ff ff ff    	mov    %edx,-0xd0(%ebp)
552246:	39 57 70             	cmp    %edx,0x70(%edi)
552249:	7f 1a                	jg     0x552265
55224b:	6a 00                	push   $0x0
55224d:	ff 75 98             	push   -0x68(%ebp)
552250:	6a 00                	push   $0x0
552252:	6a 45                	push   $0x45
552254:	57                   	push   %edi
552255:	e8 a6 42 fb ff       	call   0x506500
55225a:	83 c4 14             	add    $0x14,%esp
55225d:	89 85 30 ff ff ff    	mov    %eax,-0xd0(%ebp)
552263:	eb 32                	jmp    0x552297
552265:	8d 42 01             	lea    0x1(%edx),%eax
552268:	89 47 6c             	mov    %eax,0x6c(%edi)
55226b:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
55226e:	8b 47 68             	mov    0x68(%edi),%eax
552271:	8b 55 98             	mov    -0x68(%ebp),%edx
552274:	c7 04 88 45 00 00 00 	movl   $0x45,(%eax,%ecx,4)
55227b:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
552282:	00
552283:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
552287:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
55228e:	00
55228f:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
552296:	00
552297:	8b 8d f0 fe ff ff    	mov    -0x110(%ebp),%ecx
55229d:	8b 41 0c             	mov    0xc(%ecx),%eax
5522a0:	83 f8 01             	cmp    $0x1,%eax
5522a3:	0f 8e 28 01 00 00    	jle    0x5523d1
5522a9:	33 d2                	xor    %edx,%edx
5522ab:	89 95 5c ff ff ff    	mov    %edx,-0xa4(%ebp)
5522b1:	85 c0                	test   %eax,%eax
5522b3:	0f 8e 18 01 00 00    	jle    0x5523d1
5522b9:	33 ff                	xor    %edi,%edi
5522bb:	33 f6                	xor    %esi,%esi
5522bd:	0f 1f 00             	nopl   (%eax)
5522c0:	8b 41 14             	mov    0x14(%ecx),%eax
5522c3:	8b 0c 38             	mov    (%eax,%edi,1),%ecx
5522c6:	03 c7                	add    %edi,%eax
5522c8:	3b 85 44 ff ff ff    	cmp    -0xbc(%ebp),%eax
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