52a020:	51                   	push   %ecx
52a021:	89 55 e0             	mov    %edx,-0x20(%ebp)
52a024:	ff 34 10             	push   (%eax,%edx,1)
52a027:	e8 04 3c 01 00       	call   0x53dc30
52a02c:	83 c4 08             	add    $0x8,%esp
52a02f:	85 c0                	test   %eax,%eax
52a031:	75 74                	jne    0x52a0a7
52a033:	8b 0e                	mov    (%esi),%ecx
52a035:	33 ff                	xor    %edi,%edi
52a037:	8b 5d e8             	mov    -0x18(%ebp),%ebx
52a03a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
52a03d:	0f 1f 00             	nopl   (%eax)
52a040:	8b 03                	mov    (%ebx),%eax
52a042:	8b f1                	mov    %ecx,%esi
52a044:	2b f0                	sub    %eax,%esi
52a046:	0f b6 10             	movzbl (%eax),%edx
52a049:	0f b6 0c 06          	movzbl (%esi,%eax,1),%ecx
52a04d:	3b d1                	cmp    %ecx,%edx
52a04f:	75 33                	jne    0x52a084
52a051:	85 d2                	test   %edx,%edx
52a053:	75 41                	jne    0x52a096
52a055:	8b 75 fc             	mov    -0x4(%ebp),%esi
52a058:	85 f6                	test   %esi,%esi
52a05a:	74 0d                	je     0x52a069
52a05c:	8b 45 10             	mov    0x10(%ebp),%eax
52a05f:	8b 4d e0             	mov    -0x20(%ebp),%ecx
52a062:	8b 44 f8 24          	mov    0x24(%eax,%edi,8),%eax
52a066:	89 04 31             	mov    %eax,(%ecx,%esi,1)
52a069:	8b 5d ec             	mov    -0x14(%ebp),%ebx
52a06c:	3b fb                	cmp    %ebx,%edi
52a06e:	8b 55 f8             	mov    -0x8(%ebp),%edx
52a071:	8b 7d f0             	mov    -0x10(%ebp),%edi
52a074:	74 34                	je     0x52a0aa
52a076:	42                   	inc    %edx
52a077:	89 55 f8             	mov    %edx,-0x8(%ebp)
52a07a:	3b d3                	cmp    %ebx,%edx
52a07c:	0f 8c 6e ff ff ff    	jl     0x529ff0
52a082:	eb 26                	jmp    0x52a0aa
52a084:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
52a08b:	0f b6 92 20 2a 6b 00 	movzbl 0x6b2a20(%edx),%edx
52a092:	2b d1                	sub    %ecx,%edx
52a094:	75 03                	jne    0x52a099
52a096:	40                   	inc    %eax
52a097:	eb ad                	jmp    0x52a046
52a099:	47                   	inc    %edi
52a09a:	83 c3 08             	add    $0x8,%ebx
52a09d:	3b 7d ec             	cmp    -0x14(%ebp),%edi
52a0a0:	7d c7                	jge    0x52a069
52a0a2:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
52a0a5:	eb 99                	jmp    0x52a040
52a0a7:	8b 55 f8             	mov    -0x8(%ebp),%edx
52a0aa:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a0ad:	3b d3                	cmp    %ebx,%edx
52a0af:	0f 84 18 ff ff ff    	je     0x529fcd
52a0b5:	8b 7f 14             	mov    0x14(%edi),%edi
52a0b8:	89 7d f0             	mov    %edi,-0x10(%ebp)
52a0bb:	85 ff                	test   %edi,%edi
52a0bd:	74 08                	je     0x52a0c7
52a0bf:	8b 75 fc             	mov    -0x4(%ebp),%esi
52a0c2:	e9 b9 fe ff ff       	jmp    0x529f80
52a0c7:	8b 5d 08             	mov    0x8(%ebp),%ebx
52a0ca:	80 bb 92 00 00 00 00 	cmpb   $0x0,0x92(%ebx)
52a0d1:	75 18                	jne    0x52a0eb
52a0d3:	8b 45 10             	mov    0x10(%ebp),%eax
52a0d6:	ff 70 08             	push   0x8(%eax)
52a0d9:	8b 00                	mov    (%eax),%eax
52a0db:	ff 30                	push   (%eax)
52a0dd:	68 6c a8 6b 00       	push   $0x6ba86c
52a0e2:	53                   	push   %ebx
52a0e3:	e8 78 91 ff ff       	call   0x523260
52a0e8:	83 c4 10             	add    $0x10,%esp
52a0eb:	8b 55 fc             	mov    -0x4(%ebp),%edx
52a0ee:	8b 0b                	mov    (%ebx),%ecx
52a0f0:	85 d2                	test   %edx,%edx
52a0f2:	74 78                	je     0x52a16c
52a0f4:	85 c9                	test   %ecx,%ecx
52a0f6:	74 6b                	je     0x52a163
52a0f8:	83 b9 f8 01 00 00 00 	cmpl   $0x0,0x1f8(%ecx)
52a0ff:	74 16                	je     0x52a117
52a101:	52                   	push   %edx
52a102:	51                   	push   %ecx
52a103:	e8 68 f3 fd ff       	call   0x509470
52a108:	83 c4 08             	add    $0x8,%esp
52a10b:	b8 01 00 00 00       	mov    $0x1,%eax
52a110:	5f                   	pop    %edi
52a111:	5e                   	pop    %esi
52a112:	5b                   	pop    %ebx
52a113:	8b e5                	mov    %ebp,%esp
52a115:	5d                   	pop    %ebp
52a116:	c3                   	ret
52a117:	3b 91 4c 01 00 00    	cmp    0x14c(%ecx),%edx
52a11d:	73 44                	jae    0x52a163
52a11f:	3b 91 44 01 00 00    	cmp    0x144(%ecx),%edx
52a125:	72 1a                	jb     0x52a141
52a127:	8b 81 40 01 00 00    	mov    0x140(%ecx),%eax
52a12d:	5f                   	pop    %edi
52a12e:	89 02                	mov    %eax,(%edx)
52a130:	b8 01 00 00 00       	mov    $0x1,%eax
52a135:	5e                   	pop    %esi
52a136:	89 91 40 01 00 00    	mov    %edx,0x140(%ecx)
52a13c:	5b                   	pop    %ebx
52a13d:	8b e5                	mov    %ebp,%esp
52a13f:	5d                   	pop    %ebp
52a140:	c3                   	ret
52a141:	3b 91 48 01 00 00    	cmp    0x148(%ecx),%edx
52a147:	72 1a                	jb     0x52a163
52a149:	8b 81 38 01 00 00    	mov    0x138(%ecx),%eax
52a14f:	5f                   	pop    %edi
52a150:	89 02                	mov    %eax,(%edx)
52a152:	b8 01 00 00 00       	mov    $0x1,%eax
52a157:	5e                   	pop    %esi
52a158:	89 91 38 01 00 00    	mov    %edx,0x138(%ecx)
52a15e:	5b                   	pop    %ebx
52a15f:	8b e5                	mov    %ebp,%esp
52a161:	5d                   	pop    %ebp
52a162:	c3                   	ret
52a163:	52                   	push   %edx
52a164:	e8 27 0c fc ff       	call   0x4ead90
52a169:	83 c4 04             	add    $0x4,%esp
52a16c:	5f                   	pop    %edi
52a16d:	5e                   	pop    %esi
52a16e:	b8 01 00 00 00       	mov    $0x1,%eax
52a173:	5b                   	pop    %ebx
52a174:	8b e5                	mov    %ebp,%esp
52a176:	5d                   	pop    %ebp
52a177:	c3                   	ret
52a178:	cc                   	int3
52a179:	cc                   	int3
52a17a:	cc                   	int3
52a17b:	cc                   	int3
52a17c:	cc                   	int3
52a17d:	cc                   	int3
52a17e:	cc                   	int3
52a17f:	cc                   	int3
52a180:	55                   	push   %ebp
52a181:	8b ec                	mov    %esp,%ebp
52a183:	51                   	push   %ecx
52a184:	8b 45 08             	mov    0x8(%ebp),%eax
52a187:	56                   	push   %esi
52a188:	33 f6                	xor    %esi,%esi
52a18a:	8b 00                	mov    (%eax),%eax
52a18c:	8b 40 20             	mov    0x20(%eax),%eax
52a18f:	25 00 40 00 00       	and    $0x4000,%eax
52a194:	0b c6                	or     %esi,%eax
52a196:	0f 84 b6 00 00 00    	je     0x52a252
52a19c:	53                   	push   %ebx
52a19d:	57                   	push   %edi
52a19e:	8b 7d 0c             	mov    0xc(%ebp),%edi
52a1a1:	8b 5f 10             	mov    0x10(%edi),%ebx
52a1a4:	85 db                	test   %ebx,%ebx
52a1a6:	74 31                	je     0x52a1d9
52a1a8:	8b 7b 14             	mov    0x14(%ebx),%edi
52a1ab:	85 ff                	test   %edi,%edi
52a1ad:	7e 20                	jle    0x52a1cf
52a1af:	8d 53 24             	lea    0x24(%ebx),%edx
52a1b2:	8b 0a                	mov    (%edx),%ecx
52a1b4:	83 f9 1f             	cmp    $0x1f,%ecx
52a1b7:	7e 05                	jle    0x52a1be
52a1b9:	83 c8 ff             	or     $0xffffffff,%eax
52a1bc:	eb 07                	jmp    0x52a1c5
52a1be:	b8 01 00 00 00       	mov    $0x1,%eax
52a1c3:	d3 e0                	shl    %cl,%eax
52a1c5:	0b f0                	or     %eax,%esi
52a1c7:	83 c2 08             	add    $0x8,%edx
52a1ca:	83 ef 01             	sub    $0x1,%edi
52a1cd:	75 e3                	jne    0x52a1b2
52a1cf:	8b 5b 04             	mov    0x4(%ebx),%ebx
52a1d2:	85 db                	test   %ebx,%ebx
52a1d4:	75 d2                	jne    0x52a1a8
52a1d6:	8b 7d 0c             	mov    0xc(%ebp),%edi
52a1d9:	8b 47 48             	mov    0x48(%edi),%eax
52a1dc:	6a 00                	push   $0x0
52a1de:	ff 37                	push   (%edi)
52a1e0:	83 c0 38             	add    $0x38,%eax
52a1e3:	50                   	push   %eax
52a1e4:	e8 e7 7d fd ff       	call   0x501fd0
52a1e9:	83 c4 0c             	add    $0xc,%esp
52a1ec:	8b 58 08             	mov    0x8(%eax),%ebx
52a1ef:	85 db                	test   %ebx,%ebx
52a1f1:	74 56                	je     0x52a249
52a1f3:	6a 00                	push   $0x0
52a1f5:	8d 45 fc             	lea    -0x4(%ebp),%eax
52a1f8:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
52a1ff:	50                   	push   %eax
52a200:	53                   	push   %ebx
52a201:	57                   	push   %edi
52a202:	ff 75 08             	push   0x8(%ebp)
52a205:	e8 d6 fc ff ff       	call   0x529ee0
52a20a:	8b 55 fc             	mov    -0x4(%ebp),%edx
52a20d:	83 c4 14             	add    $0x14,%esp
52a210:	85 d2                	test   %edx,%edx
52a212:	74 2e                	je     0x52a242
52a214:	0f b7 7a 32          	movzwl 0x32(%edx),%edi
52a218:	85 ff                	test   %edi,%edi
52a21a:	74 23                	je     0x52a23f
52a21c:	8b 52 04             	mov    0x4(%edx),%edx
52a21f:	90                   	nop
52a220:	0f b7 0a             	movzwl (%edx),%ecx
52a223:	66 83 f9 1f          	cmp    $0x1f,%cx
52a227:	7e 05                	jle    0x52a22e
52a229:	83 c8 ff             	or     $0xffffffff,%eax
52a22c:	eb 07                	jmp    0x52a235
52a22e:	b8 01 00 00 00       	mov    $0x1,%eax
52a233:	d3 e0                	shl    %cl,%eax
52a235:	0b f0                	or     %eax,%esi
52a237:	83 c2 02             	add    $0x2,%edx
52a23a:	83 ef 01             	sub    $0x1,%edi
52a23d:	75 e1                	jne    0x52a220
52a23f:	8b 7d 0c             	mov    0xc(%ebp),%edi
52a242:	8b 5b 0c             	mov    0xc(%ebx),%ebx
52a245:	85 db                	test   %ebx,%ebx
52a247:	75 aa                	jne    0x52a1f3
52a249:	5f                   	pop    %edi
52a24a:	5b                   	pop    %ebx
52a24b:	8b c6                	mov    %esi,%eax
52a24d:	5e                   	pop    %esi
52a24e:	8b e5                	mov    %ebp,%esp
52a250:	5d                   	pop    %ebp
52a251:	c3                   	ret
52a252:	8b c6                	mov    %esi,%eax
52a254:	5e                   	pop    %esi
52a255:	8b e5                	mov    %ebp,%esp
52a257:	5d                   	pop    %ebp
52a258:	c3                   	ret
52a259:	cc                   	int3
52a25a:	cc                   	int3
52a25b:	cc                   	int3
52a25c:	cc                   	int3
52a25d:	cc                   	int3
52a25e:	cc                   	int3
52a25f:	cc                   	int3
52a260:	55                   	push   %ebp
52a261:	8b ec                	mov    %esp,%ebp
52a263:	8b 45 08             	mov    0x8(%ebp),%eax
52a266:	53                   	push   %ebx
52a267:	56                   	push   %esi
52a268:	57                   	push   %edi
52a269:	8b 00                	mov    (%eax),%eax
52a26b:	33 ff                	xor    %edi,%edi
52a26d:	8b 40 20             	mov    0x20(%eax),%eax
52a270:	25 00 40 00 00       	and    $0x4000,%eax
52a275:	0b c7                	or     %edi,%eax
52a277:	0f 84 d9 00 00 00    	je     0x52a356
52a27d:	8b 4d 10             	mov    0x10(%ebp),%ecx
52a280:	85 c9                	test   %ecx,%ecx
52a282:	75 32                	jne    0x52a2b6
52a284:	8b 75 0c             	mov    0xc(%ebp),%esi
52a287:	51                   	push   %ecx
52a288:	8b 46 48             	mov    0x48(%esi),%eax
52a28b:	ff 36                	push   (%esi)
52a28d:	83 c0 38             	add    $0x38,%eax
52a290:	50                   	push   %eax
52a291:	e8 3a 7d fd ff       	call   0x501fd0
52a296:	83 c4 0c             	add    $0xc,%esp
52a299:	39 78 08             	cmp    %edi,0x8(%eax)
52a29c:	75 0c                	jne    0x52a2aa
52a29e:	39 7e 10             	cmp    %edi,0x10(%esi)
52a2a1:	75 07                	jne    0x52a2aa
52a2a3:	8b c7                	mov    %edi,%eax
52a2a5:	5f                   	pop    %edi
52a2a6:	5e                   	pop    %esi
52a2a7:	5b                   	pop    %ebx
52a2a8:	5d                   	pop    %ebp
52a2a9:	c3                   	ret
52a2aa:	bf 01 00 00 00       	mov    $0x1,%edi
52a2af:	8b c7                	mov    %edi,%eax
52a2b1:	5f                   	pop    %edi
52a2b2:	5e                   	pop    %esi
52a2b3:	5b                   	pop    %ebx
52a2b4:	5d                   	pop    %ebp
52a2b5:	c3                   	ret
52a2b6:	8b 5d 0c             	mov    0xc(%ebp),%ebx
52a2b9:	8b 73 10             	mov    0x10(%ebx),%esi
52a2bc:	85 f6                	test   %esi,%esi
52a2be:	74 52                	je     0x52a312
52a2c0:	8b 13                	mov    (%ebx),%edx
52a2c2:	8b 46 08             	mov    0x8(%esi),%eax
52a2c5:	85 d2                	test   %edx,%edx
52a2c7:	75 06                	jne    0x52a2cf
52a2c9:	f7 d8                	neg    %eax
52a2cb:	1b c0                	sbb    %eax,%eax
52a2cd:	eb 11                	jmp    0x52a2e0
52a2cf:	85 c0                	test   %eax,%eax
52a2d1:	74 11                	je     0x52a2e4
52a2d3:	50                   	push   %eax
52a2d4:	52                   	push   %edx
52a2d5:	e8 56 39 01 00       	call   0x53dc30
52a2da:	8b 4d 10             	mov    0x10(%ebp),%ecx
52a2dd:	83 c4 08             	add    $0x8,%esp
52a2e0:	85 c0                	test   %eax,%eax
52a2e2:	74 24                	je     0x52a308
52a2e4:	ff 75 14             	push   0x14(%ebp)
52a2e7:	51                   	push   %ecx
52a2e8:	56                   	push   %esi
52a2e9:	53                   	push   %ebx
52a2ea:	e8 21 84 fd ff       	call   0x502710
52a2ef:	8b 76 04             	mov    0x4(%esi),%esi
52a2f2:	83 c4 10             	add    $0x10,%esp
52a2f5:	85 c0                	test   %eax,%eax
52a2f7:	b8 01 00 00 00       	mov    $0x1,%eax
52a2fc:	0f 45 f8             	cmovne %eax,%edi
52a2ff:	85 f6                	test   %esi,%esi
52a301:	74 0f                	je     0x52a312
52a303:	8b 4d 10             	mov    0x10(%ebp),%ecx
52a306:	eb b8                	jmp    0x52a2c0
52a308:	5f                   	pop    %edi
52a309:	5e                   	pop    %esi
52a30a:	b8 02 00 00 00       	mov    $0x2,%eax
52a30f:	5b                   	pop    %ebx
52a310:	5d                   	pop    %ebp
52a311:	c3                   	ret
52a312:	8b 43 48             	mov    0x48(%ebx),%eax
52a315:	6a 00                	push   $0x0
52a317:	ff 33                	push   (%ebx)
52a319:	83 c0 38             	add    $0x38,%eax
52a31c:	50                   	push   %eax
52a31d:	e8 ae 7c fd ff       	call   0x501fd0
52a322:	83 c4 0c             	add    $0xc,%esp
52a325:	8b 70 08             	mov    0x8(%eax),%esi
52a328:	85 f6                	test   %esi,%esi
52a32a:	74 2a                	je     0x52a356
52a32c:	0f 1f 40 00          	nopl   0x0(%eax)
52a330:	ff 75 14             	push   0x14(%ebp)
52a333:	ff 75 10             	push   0x10(%ebp)
52a336:	56                   	push   %esi
52a337:	53                   	push   %ebx
52a338:	e8 63 8d fd ff       	call   0x5030a0
52a33d:	83 c4 10             	add    $0x10,%esp
52a340:	85 c0                	test   %eax,%eax
52a342:	74 0b                	je     0x52a34f
52a344:	80 7e 1a 00          	cmpb   $0x0,0x1a(%esi)
52a348:	75 be                	jne    0x52a308
52a34a:	bf 01 00 00 00       	mov    $0x1,%edi
52a34f:	8b 76 0c             	mov    0xc(%esi),%esi
52a352:	85 f6                	test   %esi,%esi
52a354:	75 da                	jne    0x52a330
52a356:	8b c7                	mov    %edi,%eax
52a358:	5f                   	pop    %edi
52a359:	5e                   	pop    %esi
52a35a:	5b                   	pop    %ebx
52a35b:	5d                   	pop    %ebp
52a35c:	c3                   	ret
52a35d:	cc                   	int3
52a35e:	cc                   	int3
52a35f:	cc                   	int3
52a360:	55                   	push   %ebp
52a361:	8b ec                	mov    %esp,%ebp
52a363:	56                   	push   %esi
52a364:	8b 75 0c             	mov    0xc(%ebp),%esi
52a367:	57                   	push   %edi