52ef79:	6a 4d                	push   $0x4d
52ef7b:	53                   	push   %ebx
52ef7c:	e8 5f 2b 01 00       	call   0x541ae0
52ef81:	83 c4 10             	add    $0x10,%esp
52ef84:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52ef87:	33 d2                	xor    %edx,%edx
52ef89:	33 c0                	xor    %eax,%eax
52ef8b:	c7 45 88 00 00 00 00 	movl   $0x0,-0x78(%ebp)
52ef92:	89 55 c8             	mov    %edx,-0x38(%ebp)
52ef95:	66 3b 41 2a          	cmp    0x2a(%ecx),%ax
52ef99:	0f 8d 3f 01 00 00    	jge    0x52f0de
52ef9f:	89 45 a4             	mov    %eax,-0x5c(%ebp)
52efa2:	0f bf 41 28          	movswl 0x28(%ecx),%eax
52efa6:	3b d0                	cmp    %eax,%edx
52efa8:	75 0e                	jne    0x52efb8
52efaa:	57                   	push   %edi
52efab:	6a 49                	push   $0x49
52efad:	53                   	push   %ebx
52efae:	e8 cd 2a 01 00       	call   0x541a80
52efb3:	e9 08 01 00 00       	jmp    0x52f0c0
52efb8:	8b 41 04             	mov    0x4(%ecx),%eax
52efbb:	03 45 a4             	add    -0x5c(%ebp),%eax
52efbe:	8b 75 94             	mov    -0x6c(%ebp),%esi
52efc1:	89 45 98             	mov    %eax,-0x68(%ebp)
52efc4:	0f b7 40 10          	movzwl 0x10(%eax),%eax
52efc8:	a8 62                	test   $0x62,%al
52efca:	74 44                	je     0x52f010
52efcc:	ff 45 88             	incl   -0x78(%ebp)
52efcf:	a8 20                	test   $0x20,%al
52efd1:	74 06                	je     0x52efd9
52efd3:	4f                   	dec    %edi
52efd4:	e9 f0 00 00 00       	jmp    0x52f0c9
52efd9:	a8 40                	test   $0x40,%al
52efdb:	74 1b                	je     0x52eff8
52efdd:	f6 85 5c ff ff ff 01 	testb  $0x1,-0xa4(%ebp)
52efe4:	0f 84 df 00 00 00    	je     0x52f0c9
52efea:	57                   	push   %edi
52efeb:	6a 49                	push   $0x49
52efed:	53                   	push   %ebx
52efee:	e8 8d 2a 01 00       	call   0x541a80
52eff3:	e9 c8 00 00 00       	jmp    0x52f0c0
52eff8:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
52effc:	75 18                	jne    0x52f016
52effe:	8b 45 98             	mov    -0x68(%ebp),%eax
52f001:	57                   	push   %edi
52f002:	ff 70 04             	push   0x4(%eax)
52f005:	56                   	push   %esi
52f006:	e8 e5 4e ff ff       	call   0x523ef0
52f00b:	e9 b0 00 00 00       	jmp    0x52f0c0
52f010:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
52f014:	74 44                	je     0x52f05a
52f016:	8b 55 d4             	mov    -0x2c(%ebp),%edx
52f019:	33 c0                	xor    %eax,%eax
52f01b:	8b 52 04             	mov    0x4(%edx),%edx
52f01e:	85 d2                	test   %edx,%edx
52f020:	7e 20                	jle    0x52f042
52f022:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
52f025:	8b 5d c8             	mov    -0x38(%ebp),%ebx
52f028:	8b 09                	mov    (%ecx),%ecx
52f02a:	83 c1 04             	add    $0x4,%ecx
52f02d:	0f 1f 00             	nopl   (%eax)
52f030:	39 19                	cmp    %ebx,(%ecx)
52f032:	74 08                	je     0x52f03c
52f034:	40                   	inc    %eax
52f035:	83 c1 08             	add    $0x8,%ecx
52f038:	3b c2                	cmp    %edx,%eax
52f03a:	7c f4                	jl     0x52f030
52f03c:	8b 5d bc             	mov    -0x44(%ebp),%ebx
52f03f:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52f042:	3b c2                	cmp    %edx,%eax
52f044:	7c 0f                	jl     0x52f055
52f046:	8b 45 98             	mov    -0x68(%ebp),%eax
52f049:	57                   	push   %edi
52f04a:	ff 70 04             	push   0x4(%eax)
52f04d:	56                   	push   %esi
52f04e:	e8 9d 4e ff ff       	call   0x523ef0
52f053:	eb 6b                	jmp    0x52f0c0
52f055:	8b 55 c8             	mov    -0x38(%ebp),%edx
52f058:	eb 1a                	jmp    0x52f074
52f05a:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
52f05e:	75 0f                	jne    0x52f06f
52f060:	8b 45 98             	mov    -0x68(%ebp),%eax
52f063:	57                   	push   %edi
52f064:	ff 70 04             	push   0x4(%eax)
52f067:	56                   	push   %esi
52f068:	e8 83 4e ff ff       	call   0x523ef0
52f06d:	eb 51                	jmp    0x52f0c0
52f06f:	8b c2                	mov    %edx,%eax
52f071:	2b 45 88             	sub    -0x78(%ebp),%eax
52f074:	80 7d d3 00          	cmpb   $0x0,-0x2d(%ebp)
52f078:	74 12                	je     0x52f08c
52f07a:	57                   	push   %edi
52f07b:	50                   	push   %eax
52f07c:	ff 75 a8             	push   -0x58(%ebp)
52f07f:	6a 59                	push   $0x59
52f081:	53                   	push   %ebx
52f082:	e8 b9 2a 01 00       	call   0x541b40
52f087:	83 c4 14             	add    $0x14,%esp
52f08a:	eb 37                	jmp    0x52f0c3
52f08c:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
52f090:	74 1d                	je     0x52f0af
52f092:	8b 75 a0             	mov    -0x60(%ebp),%esi
52f095:	39 75 ac             	cmp    %esi,-0x54(%ebp)
52f098:	8b 75 94             	mov    -0x6c(%ebp),%esi
52f09b:	74 2c                	je     0x52f0c9
52f09d:	03 45 ac             	add    -0x54(%ebp),%eax
52f0a0:	57                   	push   %edi
52f0a1:	50                   	push   %eax
52f0a2:	6a 4e                	push   $0x4e
52f0a4:	53                   	push   %ebx
52f0a5:	e8 36 2a 01 00       	call   0x541ae0
52f0aa:	83 c4 10             	add    $0x10,%esp
52f0ad:	eb 14                	jmp    0x52f0c3
52f0af:	8b 4d 90             	mov    -0x70(%ebp),%ecx
52f0b2:	8d 04 80             	lea    (%eax,%eax,4),%eax
52f0b5:	57                   	push   %edi
52f0b6:	ff 74 81 04          	push   0x4(%ecx,%eax,4)
52f0ba:	56                   	push   %esi
52f0bb:	e8 10 4b ff ff       	call   0x523bd0
52f0c0:	83 c4 0c             	add    $0xc,%esp
52f0c3:	8b 55 c8             	mov    -0x38(%ebp),%edx
52f0c6:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52f0c9:	0f bf 41 2a          	movswl 0x2a(%ecx),%eax
52f0cd:	42                   	inc    %edx
52f0ce:	83 45 a4 14          	addl   $0x14,-0x5c(%ebp)
52f0d2:	47                   	inc    %edi
52f0d3:	89 55 c8             	mov    %edx,-0x38(%ebp)
52f0d6:	3b d0                	cmp    %eax,%edx
52f0d8:	0f 8c c4 fe ff ff    	jl     0x52efa2
52f0de:	ff 4e 38             	decl   0x38(%esi)
52f0e1:	f6 85 5c ff ff ff 01 	testb  $0x1,-0xa4(%ebp)
52f0e8:	8b 46 38             	mov    0x38(%esi),%eax
52f0eb:	89 45 ac             	mov    %eax,-0x54(%ebp)
52f0ee:	0f 84 84 01 00 00    	je     0x52f278
52f0f4:	0f bf 41 2a          	movswl 0x2a(%ecx),%eax
52f0f8:	40                   	inc    %eax
52f0f9:	50                   	push   %eax
52f0fa:	56                   	push   %esi
52f0fb:	e8 20 de ff ff       	call   0x52cf20
52f100:	83 c4 08             	add    $0x8,%esp
52f103:	8b f8                	mov    %eax,%edi
52f105:	8b 45 b0             	mov    -0x50(%ebp),%eax
52f108:	57                   	push   %edi
52f109:	85 c0                	test   %eax,%eax
52f10b:	79 0f                	jns    0x52f11c
52f10d:	6a ff                	push   $0xffffffff
52f10f:	6a 45                	push   $0x45
52f111:	53                   	push   %ebx
52f112:	e8 c9 29 01 00       	call   0x541ae0
52f117:	83 c4 10             	add    $0x10,%esp
52f11a:	eb 78                	jmp    0x52f194
52f11c:	80 7d d3 00          	cmpb   $0x0,-0x2d(%ebp)
52f120:	74 11                	je     0x52f133
52f122:	50                   	push   %eax
52f123:	ff 75 a8             	push   -0x58(%ebp)
52f126:	6a 59                	push   $0x59
52f128:	53                   	push   %ebx
52f129:	e8 12 2a 01 00       	call   0x541b40
52f12e:	83 c4 14             	add    $0x14,%esp
52f131:	eb 13                	jmp    0x52f146
52f133:	8b 4d 90             	mov    -0x70(%ebp),%ecx
52f136:	8d 04 80             	lea    (%eax,%eax,4),%eax
52f139:	ff 74 81 04          	push   0x4(%ecx,%eax,4)
52f13d:	56                   	push   %esi
52f13e:	e8 8d 4a ff ff       	call   0x523bd0
52f143:	83 c4 0c             	add    $0xc,%esp
52f146:	57                   	push   %edi
52f147:	6a 33                	push   $0x33
52f149:	53                   	push   %ebx
52f14a:	e8 31 29 01 00       	call   0x541a80
52f14f:	57                   	push   %edi
52f150:	6a ff                	push   $0xffffffff
52f152:	6a 45                	push   $0x45
52f154:	53                   	push   %ebx
52f155:	89 45 b4             	mov    %eax,-0x4c(%ebp)
52f158:	e8 83 29 01 00       	call   0x541ae0
52f15d:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
52f160:	83 c4 1c             	add    $0x1c,%esp
52f163:	8b 53 6c             	mov    0x6c(%ebx),%edx
52f166:	85 c9                	test   %ecx,%ecx
52f168:	79 03                	jns    0x52f16d
52f16a:	8d 4a ff             	lea    -0x1(%edx),%ecx
52f16d:	8b 03                	mov    (%ebx),%eax
52f16f:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52f173:	74 07                	je     0x52f17c
52f175:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
52f17a:	eb 09                	jmp    0x52f185
52f17c:	8b 43 68             	mov    0x68(%ebx),%eax
52f17f:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52f182:	8d 04 88             	lea    (%eax,%ecx,4),%eax
52f185:	57                   	push   %edi
52f186:	6a 0f                	push   $0xf
52f188:	53                   	push   %ebx
52f189:	89 50 08             	mov    %edx,0x8(%eax)
52f18c:	e8 ef 28 01 00       	call   0x541a80
52f191:	83 c4 0c             	add    $0xc,%esp
52f194:	8b 55 d8             	mov    -0x28(%ebp),%edx
52f197:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
52f19a:	0f bf 42 2c          	movswl 0x2c(%edx),%eax
52f19e:	8d 57 01             	lea    0x1(%edi),%edx
52f1a1:	48                   	dec    %eax
52f1a2:	89 45 b4             	mov    %eax,-0x4c(%ebp)
52f1a5:	39 4b 70             	cmp    %ecx,0x70(%ebx)
52f1a8:	7f 15                	jg     0x52f1bf
52f1aa:	50                   	push   %eax
52f1ab:	52                   	push   %edx
52f1ac:	ff 75 a0             	push   -0x60(%ebp)
52f1af:	6a 4d                	push   $0x4d
52f1b1:	53                   	push   %ebx
52f1b2:	e8 49 73 fd ff       	call   0x506500
52f1b7:	83 c4 14             	add    $0x14,%esp
52f1ba:	8d 57 01             	lea    0x1(%edi),%edx
52f1bd:	eb 30                	jmp    0x52f1ef
52f1bf:	8b 75 a0             	mov    -0x60(%ebp),%esi
52f1c2:	8d 41 01             	lea    0x1(%ecx),%eax
52f1c5:	89 43 6c             	mov    %eax,0x6c(%ebx)
52f1c8:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52f1cb:	8b 43 68             	mov    0x68(%ebx),%eax
52f1ce:	89 74 88 04          	mov    %esi,0x4(%eax,%ecx,4)
52f1d2:	8b 75 b4             	mov    -0x4c(%ebp),%esi
52f1d5:	89 74 88 0c          	mov    %esi,0xc(%eax,%ecx,4)
52f1d9:	8b 75 94             	mov    -0x6c(%ebp),%esi
52f1dc:	c7 04 88 4d 00 00 00 	movl   $0x4d,(%eax,%ecx,4)
52f1e3:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52f1e7:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52f1ee:	00
52f1ef:	8b 45 d8             	mov    -0x28(%ebp),%eax
52f1f2:	f6 40 24 60          	testb  $0x60,0x24(%eax)
52f1f6:	74 0e                	je     0x52f206
52f1f8:	50                   	push   %eax
52f1f9:	52                   	push   %edx
52f1fa:	56                   	push   %esi
52f1fb:	e8 c0 09 ff ff       	call   0x51fbc0
52f200:	8b 45 d8             	mov    -0x28(%ebp),%eax
52f203:	83 c4 0c             	add    $0xc,%esp
52f206:	83 bd 58 ff ff ff 00 	cmpl   $0x0,-0xa8(%ebp)
52f20d:	75 0e                	jne    0x52f21d
52f20f:	8d 4f 01             	lea    0x1(%edi),%ecx
52f212:	51                   	push   %ecx
52f213:	50                   	push   %eax
52f214:	53                   	push   %ebx
52f215:	e8 26 eb 00 00       	call   0x53dd40
52f21a:	83 c4 0c             	add    $0xc,%esp
52f21d:	ff 75 ac             	push   -0x54(%ebp)
52f220:	8b 55 d8             	mov    -0x28(%ebp),%edx
52f223:	8b cf                	mov    %edi,%ecx
52f225:	ff 75 18             	push   0x18(%ebp)
52f228:	0f bf 42 2a          	movswl 0x2a(%edx),%eax
52f22c:	2b c8                	sub    %eax,%ecx
52f22e:	49                   	dec    %ecx
52f22f:	51                   	push   %ecx
52f230:	52                   	push   %edx
52f231:	6a 01                	push   $0x1
52f233:	6a 00                	push   $0x0
52f235:	6a 7d                	push   $0x7d
52f237:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
52f23d:	56                   	push   %esi
52f23e:	e8 ad fb fe ff       	call   0x51edf0
52f243:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52f246:	83 c4 24             	add    $0x24,%esp
52f249:	0f bf 41 2a          	movswl 0x2a(%ecx),%eax
52f24d:	40                   	inc    %eax
52f24e:	83 f8 01             	cmp    $0x1,%eax
52f251:	75 1a                	jne    0x52f26d
52f253:	85 ff                	test   %edi,%edi
52f255:	74 21                	je     0x52f278
52f257:	8a 46 13             	mov    0x13(%esi),%al
52f25a:	3c 08                	cmp    $0x8,%al
52f25c:	73 1a                	jae    0x52f278
52f25e:	0f b6 c0             	movzbl %al,%eax
52f261:	89 bc 86 94 00 00 00 	mov    %edi,0x94(%esi,%eax,4)
52f268:	fe 46 13             	incb   0x13(%esi)
52f26b:	eb 0b                	jmp    0x52f278
52f26d:	3b 46 1c             	cmp    0x1c(%esi),%eax
52f270:	7e 06                	jle    0x52f278
52f272:	89 46 1c             	mov    %eax,0x1c(%esi)
52f275:	89 7e 20             	mov    %edi,0x20(%esi)
52f278:	83 bd 58 ff ff ff 00 	cmpl   $0x0,-0xa8(%ebp)
52f27f:	0f 85 69 02 00 00    	jne    0x52f4ee
52f285:	83 79 38 00          	cmpl   $0x0,0x38(%ecx)
52f289:	74 16                	je     0x52f2a1
52f28b:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
52f291:	6a 00                	push   $0x0
52f293:	6a 48                	push   $0x48
52f295:	53                   	push   %ebx
52f296:	e8 45 28 01 00       	call   0x541ae0
52f29b:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52f29e:	83 c4 10             	add    $0x10,%esp
52f2a1:	8b 45 b0             	mov    -0x50(%ebp),%eax
52f2a4:	85 c0                	test   %eax,%eax
52f2a6:	0f 88 ce 00 00 00    	js     0x52f37a
52f2ac:	80 7d d3 00          	cmpb   $0x0,-0x2d(%ebp)
52f2b0:	74 14                	je     0x52f2c6
52f2b2:	ff 75 c0             	push   -0x40(%ebp)
52f2b5:	50                   	push   %eax
52f2b6:	ff 75 a8             	push   -0x58(%ebp)
52f2b9:	6a 59                	push   $0x59
52f2bb:	53                   	push   %ebx
52f2bc:	e8 7f 28 01 00       	call   0x541b40
52f2c1:	83 c4 14             	add    $0x14,%esp
52f2c4:	eb 48                	jmp    0x52f30e
52f2c6:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
52f2ca:	75 42                	jne    0x52f30e
52f2cc:	8b 55 90             	mov    -0x70(%ebp),%edx
52f2cf:	8d 04 80             	lea    (%eax,%eax,4),%eax
52f2d2:	8b 44 82 04          	mov    0x4(%edx,%eax,4),%eax
52f2d6:	80 38 77             	cmpb   $0x77,(%eax)
52f2d9:	75 26                	jne    0x52f301
52f2db:	83 79 38 00          	cmpl   $0x0,0x38(%ecx)
52f2df:	75 20                	jne    0x52f301
52f2e1:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
52f2e7:	ff 75 c0             	push   -0x40(%ebp)
52f2ea:	ff 75 9c             	push   -0x64(%ebp)
52f2ed:	6a 78                	push   $0x78
52f2ef:	53                   	push   %ebx
52f2f0:	e8 4b 28 01 00       	call   0x541b40
52f2f5:	83 c4 14             	add    $0x14,%esp
52f2f8:	c6 45 c7 01          	movb   $0x1,-0x39(%ebp)
52f2fc:	e9 b5 00 00 00       	jmp    0x52f3b6
52f301:	ff 75 c0             	push   -0x40(%ebp)
52f304:	50                   	push   %eax
52f305:	56                   	push   %esi
52f306:	e8 c5 48 ff ff       	call   0x523bd0
52f30b:	83 c4 0c             	add    $0xc,%esp
52f30e:	8b 7d d8             	mov    -0x28(%ebp),%edi
52f311:	83 7f 38 00          	cmpl   $0x0,0x38(%edi)
52f315:	75 3e                	jne    0x52f355
52f317:	ff 75 c0             	push   -0x40(%ebp)
52f31a:	6a 33                	push   $0x33
52f31c:	53                   	push   %ebx
52f31d:	e8 5e 27 01 00       	call   0x541a80
52f322:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
52f328:	8b f0                	mov    %eax,%esi
52f32a:	ff 75 c0             	push   -0x40(%ebp)
52f32d:	ff 75 9c             	push   -0x64(%ebp)
52f330:	6a 78                	push   $0x78
52f332:	53                   	push   %ebx
52f333:	e8 08 28 01 00       	call   0x541b40
52f338:	56                   	push   %esi
52f339:	53                   	push   %ebx
52f33a:	e8 21 b4 01 00       	call   0x54a760
52f33f:	8b 75 94             	mov    -0x6c(%ebp),%esi
52f342:	83 c4 28             	add    $0x28,%esp
52f345:	ff 75 c0             	push   -0x40(%ebp)
52f348:	6a 0f                	push   $0xf
52f34a:	53                   	push   %ebx
52f34b:	e8 30 27 01 00       	call   0x541a80
52f350:	83 c4 0c             	add    $0xc,%esp
52f353:	eb 64                	jmp    0x52f3b9
52f355:	8b 43 6c             	mov    0x6c(%ebx),%eax