529176:	53                   	push   %ebx
529177:	e8 b4 00 00 00       	call   0x529230
52917c:	83 c4 08             	add    $0x8,%esp
52917f:	85 c0                	test   %eax,%eax
529181:	0f 85 9d 00 00 00    	jne    0x529224
529187:	ff 76 24             	push   0x24(%esi)
52918a:	53                   	push   %ebx
52918b:	e8 30 fe ff ff       	call   0x528fc0
529190:	83 c4 08             	add    $0x8,%esp
529193:	85 c0                	test   %eax,%eax
529195:	0f 85 89 00 00 00    	jne    0x529224
52919b:	ff 76 28             	push   0x28(%esi)
52919e:	53                   	push   %ebx
52919f:	e8 ec fe ff ff       	call   0x529090
5291a4:	83 c4 08             	add    $0x8,%esp
5291a7:	85 c0                	test   %eax,%eax
5291a9:	75 79                	jne    0x529224
5291ab:	ff 76 2c             	push   0x2c(%esi)
5291ae:	53                   	push   %ebx
5291af:	e8 0c fe ff ff       	call   0x528fc0
5291b4:	83 c4 08             	add    $0x8,%esp
5291b7:	85 c0                	test   %eax,%eax
5291b9:	75 69                	jne    0x529224
5291bb:	ff 76 30             	push   0x30(%esi)
5291be:	53                   	push   %ebx
5291bf:	e8 cc fe ff ff       	call   0x529090
5291c4:	83 c4 08             	add    $0x8,%esp
5291c7:	85 c0                	test   %eax,%eax
5291c9:	75 59                	jne    0x529224
5291cb:	ff 76 3c             	push   0x3c(%esi)
5291ce:	53                   	push   %ebx
5291cf:	e8 ec fd ff ff       	call   0x528fc0
5291d4:	83 c4 08             	add    $0x8,%esp
5291d7:	85 c0                	test   %eax,%eax
5291d9:	75 49                	jne    0x529224
5291db:	8b 46 40             	mov    0x40(%esi),%eax
5291de:	85 c0                	test   %eax,%eax
5291e0:	74 30                	je     0x529212
5291e2:	33 ff                	xor    %edi,%edi
5291e4:	39 38                	cmp    %edi,(%eax)
5291e6:	7e 2a                	jle    0x529212
5291e8:	33 c9                	xor    %ecx,%ecx
5291ea:	89 4d 0c             	mov    %ecx,0xc(%ebp)
5291ed:	0f 1f 00             	nopl   (%eax)
5291f0:	ff 74 01 10          	push   0x10(%ecx,%eax,1)
5291f4:	53                   	push   %ebx
5291f5:	e8 26 ff ff ff       	call   0x529120
5291fa:	83 c4 08             	add    $0x8,%esp
5291fd:	85 c0                	test   %eax,%eax
5291ff:	75 23                	jne    0x529224
529201:	8b 46 40             	mov    0x40(%esi),%eax
529204:	47                   	inc    %edi
529205:	8b 4d 0c             	mov    0xc(%ebp),%ecx
529208:	83 c1 10             	add    $0x10,%ecx
52920b:	89 4d 0c             	mov    %ecx,0xc(%ebp)
52920e:	3b 38                	cmp    (%eax),%edi
529210:	7c de                	jl     0x5291f0
529212:	8b 76 34             	mov    0x34(%esi),%esi
529215:	85 f6                	test   %esi,%esi
529217:	0f 85 17 ff ff ff    	jne    0x529134
52921d:	5f                   	pop    %edi
52921e:	5e                   	pop    %esi
52921f:	33 c0                	xor    %eax,%eax
529221:	5b                   	pop    %ebx
529222:	5d                   	pop    %ebp
529223:	c3                   	ret
529224:	5f                   	pop    %edi
529225:	5e                   	pop    %esi
529226:	b8 01 00 00 00       	mov    $0x1,%eax
52922b:	5b                   	pop    %ebx
52922c:	5d                   	pop    %ebp
52922d:	c3                   	ret
52922e:	cc                   	int3
52922f:	cc                   	int3
529230:	55                   	push   %ebp
529231:	8b ec                	mov    %esp,%ebp
529233:	8b 45 0c             	mov    0xc(%ebp),%eax
529236:	83 ec 08             	sub    $0x8,%esp
529239:	85 c0                	test   %eax,%eax
52923b:	75 04                	jne    0x529241
52923d:	8b e5                	mov    %ebp,%esp
52923f:	5d                   	pop    %ebp
529240:	c3                   	ret
529241:	53                   	push   %ebx
529242:	56                   	push   %esi
529243:	57                   	push   %edi
529244:	8b 7d 08             	mov    0x8(%ebp),%edi
529247:	8d 70 08             	lea    0x8(%eax),%esi
52924a:	33 db                	xor    %ebx,%ebx
52924c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
52924f:	8b 4f 0c             	mov    0xc(%edi),%ecx
529252:	89 4d f8             	mov    %ecx,-0x8(%ebp)
529255:	39 18                	cmp    %ebx,(%eax)
529257:	0f 8e b0 00 00 00    	jle    0x52930d
52925d:	0f 1f 00             	nopl   (%eax)
529260:	80 7f 08 00          	cmpb   $0x0,0x8(%edi)
529264:	75 39                	jne    0x52929f
529266:	8b 5e 04             	mov    0x4(%esi),%ebx
529269:	85 db                	test   %ebx,%ebx
52926b:	74 1f                	je     0x52928c
52926d:	51                   	push   %ecx
52926e:	53                   	push   %ebx
52926f:	e8 bc 49 01 00       	call   0x53dc30
529274:	83 c4 08             	add    $0x8,%esp
529277:	85 c0                	test   %eax,%eax
529279:	75 70                	jne    0x5292eb
52927b:	85 db                	test   %ebx,%ebx
52927d:	74 0d                	je     0x52928c
52927f:	8b 07                	mov    (%edi),%eax
529281:	53                   	push   %ebx
529282:	ff 30                	push   (%eax)
529284:	e8 e7 80 ff ff       	call   0x521370
529289:	83 c4 08             	add    $0x8,%esp
52928c:	8b 5d fc             	mov    -0x4(%ebp),%ebx
52928f:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
529296:	8b 47 04             	mov    0x4(%edi),%eax
529299:	83 4e 28 40          	orl    $0x40,0x28(%esi)
52929d:	89 06                	mov    %eax,(%esi)
52929f:	ff 76 14             	push   0x14(%esi)
5292a2:	57                   	push   %edi
5292a3:	e8 78 fe ff ff       	call   0x529120
5292a8:	83 c4 08             	add    $0x8,%esp
5292ab:	85 c0                	test   %eax,%eax
5292ad:	75 52                	jne    0x529301
5292af:	ff 76 30             	push   0x30(%esi)
5292b2:	57                   	push   %edi
5292b3:	e8 08 fd ff ff       	call   0x528fc0
5292b8:	83 c4 08             	add    $0x8,%esp
5292bb:	85 c0                	test   %eax,%eax
5292bd:	75 42                	jne    0x529301
5292bf:	f6 46 28 04          	testb  $0x4,0x28(%esi)
5292c3:	74 10                	je     0x5292d5
5292c5:	ff 76 40             	push   0x40(%esi)
5292c8:	57                   	push   %edi
5292c9:	e8 c2 fd ff ff       	call   0x529090
5292ce:	83 c4 08             	add    $0x8,%esp
5292d1:	85 c0                	test   %eax,%eax
5292d3:	75 2c                	jne    0x529301
5292d5:	8b 45 0c             	mov    0xc(%ebp),%eax
5292d8:	43                   	inc    %ebx
5292d9:	83 c6 48             	add    $0x48,%esi
5292dc:	89 5d fc             	mov    %ebx,-0x4(%ebp)
5292df:	3b 18                	cmp    (%eax),%ebx
5292e1:	7d 2a                	jge    0x52930d
5292e3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5292e6:	e9 75 ff ff ff       	jmp    0x529260
5292eb:	53                   	push   %ebx
5292ec:	ff 77 14             	push   0x14(%edi)
5292ef:	ff 77 10             	push   0x10(%edi)
5292f2:	68 c4 9c 6b 00       	push   $0x6b9cc4
5292f7:	ff 37                	push   (%edi)
5292f9:	e8 62 9f ff ff       	call   0x523260
5292fe:	83 c4 14             	add    $0x14,%esp
529301:	5f                   	pop    %edi
529302:	5e                   	pop    %esi
529303:	b8 01 00 00 00       	mov    $0x1,%eax
529308:	5b                   	pop    %ebx
529309:	8b e5                	mov    %ebp,%esp
52930b:	5d                   	pop    %ebp
52930c:	c3                   	ret
52930d:	5f                   	pop    %edi
52930e:	5e                   	pop    %esi
52930f:	33 c0                	xor    %eax,%eax
529311:	5b                   	pop    %ebx
529312:	8b e5                	mov    %ebp,%esp
529314:	5d                   	pop    %ebp
529315:	c3                   	ret
529316:	cc                   	int3
529317:	cc                   	int3
529318:	cc                   	int3
529319:	cc                   	int3
52931a:	cc                   	int3
52931b:	cc                   	int3
52931c:	cc                   	int3
52931d:	cc                   	int3
52931e:	cc                   	int3
52931f:	cc                   	int3
529320:	55                   	push   %ebp
529321:	8b ec                	mov    %esp,%ebp
529323:	83 ec 08             	sub    $0x8,%esp
529326:	53                   	push   %ebx
529327:	56                   	push   %esi
529328:	8b 75 0c             	mov    0xc(%ebp),%esi
52932b:	57                   	push   %edi
52932c:	85 f6                	test   %esi,%esi
52932e:	0f 84 fd 00 00 00    	je     0x529431
529334:	8b 5d 08             	mov    0x8(%ebp),%ebx
529337:	ff 76 08             	push   0x8(%esi)
52933a:	53                   	push   %ebx
52933b:	e8 e0 fd ff ff       	call   0x529120
529340:	83 c4 08             	add    $0x8,%esp
529343:	85 c0                	test   %eax,%eax
529345:	0f 85 ef 00 00 00    	jne    0x52943a
52934b:	ff 76 10             	push   0x10(%esi)
52934e:	53                   	push   %ebx
52934f:	e8 6c fc ff ff       	call   0x528fc0
529354:	83 c4 08             	add    $0x8,%esp
529357:	85 c0                	test   %eax,%eax
529359:	0f 85 db 00 00 00    	jne    0x52943a
52935f:	8b 46 14             	mov    0x14(%esi),%eax
529362:	89 45 fc             	mov    %eax,-0x4(%ebp)
529365:	85 c0                	test   %eax,%eax
529367:	74 2a                	je     0x529393
529369:	33 f6                	xor    %esi,%esi
52936b:	8d 78 04             	lea    0x4(%eax),%edi
52936e:	39 30                	cmp    %esi,(%eax)
529370:	7e 1e                	jle    0x529390
529372:	ff 37                	push   (%edi)
529374:	53                   	push   %ebx
529375:	e8 46 fc ff ff       	call   0x528fc0
52937a:	83 c4 08             	add    $0x8,%esp
52937d:	85 c0                	test   %eax,%eax
52937f:	0f 85 b5 00 00 00    	jne    0x52943a
529385:	8b 45 fc             	mov    -0x4(%ebp),%eax
529388:	46                   	inc    %esi
529389:	83 c7 14             	add    $0x14,%edi
52938c:	3b 30                	cmp    (%eax),%esi
52938e:	7c e2                	jl     0x529372
529390:	8b 75 0c             	mov    0xc(%ebp),%esi
529393:	8b 46 1c             	mov    0x1c(%esi),%eax
529396:	89 45 fc             	mov    %eax,-0x4(%ebp)
529399:	85 c0                	test   %eax,%eax
52939b:	0f 84 82 00 00 00    	je     0x529423
5293a1:	8b 00                	mov    (%eax),%eax
5293a3:	89 45 f8             	mov    %eax,-0x8(%ebp)
5293a6:	85 c0                	test   %eax,%eax
5293a8:	74 23                	je     0x5293cd
5293aa:	33 f6                	xor    %esi,%esi
5293ac:	8d 78 04             	lea    0x4(%eax),%edi
5293af:	39 30                	cmp    %esi,(%eax)
5293b1:	7e 1a                	jle    0x5293cd
5293b3:	ff 37                	push   (%edi)
5293b5:	53                   	push   %ebx
5293b6:	e8 05 fc ff ff       	call   0x528fc0
5293bb:	83 c4 08             	add    $0x8,%esp
5293be:	85 c0                	test   %eax,%eax
5293c0:	75 78                	jne    0x52943a
5293c2:	8b 45 f8             	mov    -0x8(%ebp),%eax
5293c5:	46                   	inc    %esi
5293c6:	83 c7 14             	add    $0x14,%edi
5293c9:	3b 30                	cmp    (%eax),%esi
5293cb:	7c e6                	jl     0x5293b3
5293cd:	8b 75 fc             	mov    -0x4(%ebp),%esi
5293d0:	ff 76 04             	push   0x4(%esi)
5293d3:	53                   	push   %ebx
5293d4:	e8 e7 fb ff ff       	call   0x528fc0
5293d9:	83 c4 08             	add    $0x8,%esp
5293dc:	85 c0                	test   %eax,%eax
5293de:	75 5a                	jne    0x52943a
5293e0:	8b 46 08             	mov    0x8(%esi),%eax
5293e3:	89 45 f8             	mov    %eax,-0x8(%ebp)
5293e6:	85 c0                	test   %eax,%eax
5293e8:	74 23                	je     0x52940d
5293ea:	33 f6                	xor    %esi,%esi
5293ec:	8d 78 04             	lea    0x4(%eax),%edi
5293ef:	39 30                	cmp    %esi,(%eax)
5293f1:	7e 1a                	jle    0x52940d
5293f3:	ff 37                	push   (%edi)
5293f5:	53                   	push   %ebx
5293f6:	e8 c5 fb ff ff       	call   0x528fc0
5293fb:	83 c4 08             	add    $0x8,%esp
5293fe:	85 c0                	test   %eax,%eax
529400:	75 38                	jne    0x52943a
529402:	8b 45 f8             	mov    -0x8(%ebp),%eax
529405:	46                   	inc    %esi
529406:	83 c7 14             	add    $0x14,%edi
529409:	3b 30                	cmp    (%eax),%esi
52940b:	7c e6                	jl     0x5293f3
52940d:	8b 45 fc             	mov    -0x4(%ebp),%eax
529410:	ff 70 0c             	push   0xc(%eax)
529413:	53                   	push   %ebx
529414:	e8 a7 fb ff ff       	call   0x528fc0
529419:	83 c4 08             	add    $0x8,%esp
52941c:	85 c0                	test   %eax,%eax
52941e:	75 1a                	jne    0x52943a
529420:	8b 75 0c             	mov    0xc(%ebp),%esi
529423:	8b 76 24             	mov    0x24(%esi),%esi
529426:	89 75 0c             	mov    %esi,0xc(%ebp)
529429:	85 f6                	test   %esi,%esi
52942b:	0f 85 06 ff ff ff    	jne    0x529337
529431:	5f                   	pop    %edi
529432:	5e                   	pop    %esi
529433:	33 c0                	xor    %eax,%eax
529435:	5b                   	pop    %ebx
529436:	8b e5                	mov    %ebp,%esp
529438:	5d                   	pop    %ebp
529439:	c3                   	ret
52943a:	5f                   	pop    %edi
52943b:	5e                   	pop    %esi
52943c:	b8 01 00 00 00       	mov    $0x1,%eax
529441:	5b                   	pop    %ebx
529442:	8b e5                	mov    %ebp,%esp
529444:	5d                   	pop    %ebp
529445:	c3                   	ret
529446:	cc                   	int3
529447:	cc                   	int3
529448:	cc                   	int3
529449:	cc                   	int3
52944a:	cc                   	int3
52944b:	cc                   	int3
52944c:	cc                   	int3
52944d:	cc                   	int3
52944e:	cc                   	int3
52944f:	cc                   	int3
529450:	55                   	push   %ebp
529451:	8b ec                	mov    %esp,%ebp
529453:	8b 45 08             	mov    0x8(%ebp),%eax
529456:	8b 00                	mov    (%eax),%eax
529458:	8b 40 20             	mov    0x20(%eax),%eax
52945b:	25 00 40 00 00       	and    $0x4000,%eax
529460:	83 c8 00             	or     $0x0,%eax
529463:	74 6b                	je     0x5294d0
529465:	56                   	push   %esi
529466:	57                   	push   %edi
529467:	8b 7d 0c             	mov    0xc(%ebp),%edi
52946a:	6a 00                	push   $0x0
52946c:	8b 47 48             	mov    0x48(%edi),%eax
52946f:	ff 37                	push   (%edi)
529471:	83 c0 38             	add    $0x38,%eax
529474:	50                   	push   %eax
529475:	e8 56 8b fd ff       	call   0x501fd0
52947a:	83 c4 0c             	add    $0xc,%esp
52947d:	8b 70 08             	mov    0x8(%eax),%esi
529480:	85 f6                	test   %esi,%esi
529482:	74 4a                	je     0x5294ce
529484:	53                   	push   %ebx
529485:	8b 5d 18             	mov    0x18(%ebp),%ebx
529488:	85 db                	test   %ebx,%ebx
52948a:	74 12                	je     0x52949e
52948c:	ff 75 1c             	push   0x1c(%ebp)
52948f:	53                   	push   %ebx
529490:	56                   	push   %esi
529491:	57                   	push   %edi
529492:	e8 09 9c fd ff       	call   0x5030a0
529497:	83 c4 10             	add    $0x10,%esp
52949a:	85 c0                	test   %eax,%eax
52949c:	74 28                	je     0x5294c6
52949e:	ff 75 10             	push   0x10(%ebp)
5294a1:	56                   	push   %esi
5294a2:	57                   	push   %edi
5294a3:	ff 75 08             	push   0x8(%ebp)
5294a6:	e8 c5 8c fd ff       	call   0x502170
5294ab:	83 c4 10             	add    $0x10,%esp
5294ae:	85 c0                	test   %eax,%eax
5294b0:	74 14                	je     0x5294c6
5294b2:	6a 00                	push   $0x0
5294b4:	6a 02                	push   $0x2
5294b6:	ff 75 14             	push   0x14(%ebp)
5294b9:	57                   	push   %edi
5294ba:	50                   	push   %eax