5020a9:	6a 2e                	push   $0x2e
5020ab:	68 54 a0 62 00       	push   $0x62a054
5020b0:	6a 41                	push   $0x41
5020b2:	68 1a 01 00 00       	push   $0x11a
5020b7:	6a 10                	push   $0x10
5020b9:	e8 c2 6e fd ff       	call   0x4d8f80
5020be:	83 c4 14             	add    $0x14,%esp
5020c1:	33 c0                	xor    %eax,%eax
5020c3:	5f                   	pop    %edi
5020c4:	5e                   	pop    %esi
5020c5:	c3                   	ret
5020c6:	8b 44 24 0c          	mov    0xc(%esp),%eax
5020ca:	66 c7 46 0c ff 01    	movw   $0x1ff,0xc(%esi)
5020d0:	89 70 14             	mov    %esi,0x14(%eax)
5020d3:	8b 44 24 10          	mov    0x10(%esp),%eax
5020d7:	8b 78 14             	mov    0x14(%eax),%edi
5020da:	8b 07                	mov    (%edi),%eax
5020dc:	85 c0                	test   %eax,%eax
5020de:	74 0f                	je     0x5020ef
5020e0:	50                   	push   %eax
5020e1:	e8 ea b7 00 00       	call   0x50d8d0
5020e6:	83 c4 04             	add    $0x4,%esp
5020e9:	89 06                	mov    %eax,(%esi)
5020eb:	85 c0                	test   %eax,%eax
5020ed:	74 50                	je     0x50213f
5020ef:	8b 47 04             	mov    0x4(%edi),%eax
5020f2:	89 46 04             	mov    %eax,0x4(%esi)
5020f5:	8b 47 08             	mov    0x8(%edi),%eax
5020f8:	85 c0                	test   %eax,%eax
5020fa:	74 10                	je     0x50210c
5020fc:	50                   	push   %eax
5020fd:	e8 4e f6 fe ff       	call   0x4f1750
502102:	83 c4 04             	add    $0x4,%esp
502105:	89 46 08             	mov    %eax,0x8(%esi)
502108:	85 c0                	test   %eax,%eax
50210a:	74 33                	je     0x50213f
50210c:	8a 47 0d             	mov    0xd(%edi),%al
50210f:	88 46 0d             	mov    %al,0xd(%esi)
502112:	8b 47 10             	mov    0x10(%edi),%eax
502115:	89 46 10             	mov    %eax,0x10(%esi)
502118:	8b 47 1c             	mov    0x1c(%edi),%eax
50211b:	89 46 1c             	mov    %eax,0x1c(%esi)
50211e:	8b 47 14             	mov    0x14(%edi),%eax
502121:	85 c0                	test   %eax,%eax
502123:	74 1f                	je     0x502144
502125:	6a 4f                	push   $0x4f
502127:	68 54 a0 62 00       	push   $0x62a054
50212c:	ff 77 18             	push   0x18(%edi)
50212f:	50                   	push   %eax
502130:	e8 3b ff fd ff       	call   0x4e2070
502135:	83 c4 10             	add    $0x10,%esp
502138:	89 46 14             	mov    %eax,0x14(%esi)
50213b:	85 c0                	test   %eax,%eax
50213d:	75 0c                	jne    0x50214b
50213f:	5f                   	pop    %edi
502140:	33 c0                	xor    %eax,%eax
502142:	5e                   	pop    %esi
502143:	c3                   	ret
502144:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
50214b:	8b 47 18             	mov    0x18(%edi),%eax
50214e:	89 46 18             	mov    %eax,0x18(%esi)
502151:	b8 01 00 00 00       	mov    $0x1,%eax
502156:	5f                   	pop    %edi
502157:	5e                   	pop    %esi
502158:	c3                   	ret
502159:	cc                   	int3
50215a:	cc                   	int3
50215b:	cc                   	int3
50215c:	cc                   	int3
50215d:	cc                   	int3
50215e:	cc                   	int3
50215f:	cc                   	int3
502160:	56                   	push   %esi
502161:	57                   	push   %edi
502162:	8b 7c 24 0c          	mov    0xc(%esp),%edi
502166:	8b 77 14             	mov    0x14(%edi),%esi
502169:	85 f6                	test   %esi,%esi
50216b:	74 35                	je     0x5021a2
50216d:	ff 36                	push   (%esi)
50216f:	e8 fc b8 00 00       	call   0x50da70
502174:	ff 76 08             	push   0x8(%esi)
502177:	e8 14 f6 fe ff       	call   0x4f1790
50217c:	6a 5e                	push   $0x5e
50217e:	68 54 a0 62 00       	push   $0x62a054
502183:	ff 76 14             	push   0x14(%esi)
502186:	e8 f5 e5 fd ff       	call   0x4e0780
50218b:	6a 5f                	push   $0x5f
50218d:	68 54 a0 62 00       	push   $0x62a054
502192:	56                   	push   %esi
502193:	e8 e8 e5 fd ff       	call   0x4e0780
502198:	83 c4 20             	add    $0x20,%esp
50219b:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)
5021a2:	5f                   	pop    %edi
5021a3:	5e                   	pop    %esi
5021a4:	c3                   	ret
5021a5:	cc                   	int3
5021a6:	cc                   	int3
5021a7:	cc                   	int3
5021a8:	cc                   	int3
5021a9:	cc                   	int3
5021aa:	cc                   	int3
5021ab:	cc                   	int3
5021ac:	cc                   	int3
5021ad:	cc                   	int3
5021ae:	cc                   	int3
5021af:	cc                   	int3
5021b0:	8b 44 24 04          	mov    0x4(%esp),%eax
5021b4:	53                   	push   %ebx
5021b5:	55                   	push   %ebp
5021b6:	8b 68 14             	mov    0x14(%eax),%ebp
5021b9:	8b 40 08             	mov    0x8(%eax),%eax
5021bc:	8b 58 18             	mov    0x18(%eax),%ebx
5021bf:	53                   	push   %ebx
5021c0:	e8 5b b2 01 00       	call   0x51d420
5021c5:	8b c8                	mov    %eax,%ecx
5021c7:	83 c4 04             	add    $0x4,%esp
5021ca:	85 c9                	test   %ecx,%ecx
5021cc:	7f 05                	jg     0x5021d3
5021ce:	5d                   	pop    %ebp
5021cf:	33 c0                	xor    %eax,%eax
5021d1:	5b                   	pop    %ebx
5021d2:	c3                   	ret
5021d3:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
5021d8:	75 0e                	jne    0x5021e8
5021da:	8b 44 24 14          	mov    0x14(%esp),%eax
5021de:	5d                   	pop    %ebp
5021df:	5b                   	pop    %ebx
5021e0:	89 08                	mov    %ecx,(%eax)
5021e2:	b8 01 00 00 00       	mov    $0x1,%eax
5021e7:	c3                   	ret
5021e8:	56                   	push   %esi
5021e9:	8b 74 24 18          	mov    0x18(%esp),%esi
5021ed:	39 0e                	cmp    %ecx,(%esi)
5021ef:	73 1e                	jae    0x50220f
5021f1:	6a 77                	push   $0x77
5021f3:	68 54 a0 62 00       	push   $0x62a054
5021f8:	6a 64                	push   $0x64
5021fa:	68 da 00 00 00       	push   $0xda
5021ff:	6a 10                	push   $0x10
502201:	e8 7a 6d fd ff       	call   0x4d8f80
502206:	83 c4 14             	add    $0x14,%esp
502209:	33 c0                	xor    %eax,%eax
50220b:	5e                   	pop    %esi
50220c:	5d                   	pop    %ebp
50220d:	5b                   	pop    %ebx
50220e:	c3                   	ret
50220f:	8b 45 04             	mov    0x4(%ebp),%eax
502212:	85 c0                	test   %eax,%eax
502214:	74 0b                	je     0x502221
502216:	50                   	push   %eax
502217:	e8 a4 de fe ff       	call   0x4f00c0
50221c:	83 c4 04             	add    $0x4,%esp
50221f:	eb 05                	jmp    0x502226
502221:	b8 40 00 00 00       	mov    $0x40,%eax
502226:	53                   	push   %ebx
502227:	8d 4c 24 14          	lea    0x14(%esp),%ecx
50222b:	51                   	push   %ecx
50222c:	ff 74 24 1c          	push   0x1c(%esp)
502230:	ff 74 24 2c          	push   0x2c(%esp)
502234:	ff 74 24 2c          	push   0x2c(%esp)
502238:	50                   	push   %eax
502239:	e8 e2 af 01 00       	call   0x51d220
50223e:	83 c4 18             	add    $0x18,%esp
502241:	85 c0                	test   %eax,%eax
502243:	7e 0b                	jle    0x502250
502245:	8b 44 24 10          	mov    0x10(%esp),%eax
502249:	89 06                	mov    %eax,(%esi)
50224b:	b8 01 00 00 00       	mov    $0x1,%eax
502250:	5e                   	pop    %esi
502251:	5d                   	pop    %ebp
502252:	5b                   	pop    %ebx
502253:	c3                   	ret
502254:	cc                   	int3
502255:	cc                   	int3
502256:	cc                   	int3
502257:	cc                   	int3
502258:	cc                   	int3
502259:	cc                   	int3
50225a:	cc                   	int3
50225b:	cc                   	int3
50225c:	cc                   	int3
50225d:	cc                   	int3
50225e:	cc                   	int3
50225f:	cc                   	int3
502260:	8b 4c 24 04          	mov    0x4(%esp),%ecx
502264:	56                   	push   %esi
502265:	8b 41 08             	mov    0x8(%ecx),%eax
502268:	8b 70 18             	mov    0x18(%eax),%esi
50226b:	8b 41 14             	mov    0x14(%ecx),%eax
50226e:	8b 40 04             	mov    0x4(%eax),%eax
502271:	85 c0                	test   %eax,%eax
502273:	74 0b                	je     0x502280
502275:	50                   	push   %eax
502276:	e8 45 de fe ff       	call   0x4f00c0
50227b:	83 c4 04             	add    $0x4,%esp
50227e:	eb 05                	jmp    0x502285
502280:	b8 40 00 00 00       	mov    $0x40,%eax
502285:	56                   	push   %esi
502286:	ff 74 24 14          	push   0x14(%esp)
50228a:	ff 74 24 14          	push   0x14(%esp)
50228e:	ff 74 24 24          	push   0x24(%esp)
502292:	ff 74 24 24          	push   0x24(%esp)
502296:	50                   	push   %eax
502297:	e8 14 b0 01 00       	call   0x51d2b0
50229c:	83 c4 18             	add    $0x18,%esp
50229f:	5e                   	pop    %esi
5022a0:	c3                   	ret
5022a1:	cc                   	int3
5022a2:	cc                   	int3
5022a3:	cc                   	int3
5022a4:	cc                   	int3
5022a5:	cc                   	int3
5022a6:	cc                   	int3
5022a7:	cc                   	int3
5022a8:	cc                   	int3
5022a9:	cc                   	int3
5022aa:	cc                   	int3
5022ab:	cc                   	int3
5022ac:	cc                   	int3
5022ad:	cc                   	int3
5022ae:	cc                   	int3
5022af:	cc                   	int3
5022b0:	55                   	push   %ebp
5022b1:	56                   	push   %esi
5022b2:	57                   	push   %edi
5022b3:	8b 7c 24 10          	mov    0x10(%esp),%edi
5022b7:	33 ed                	xor    %ebp,%ebp
5022b9:	8b 77 14             	mov    0x14(%edi),%esi
5022bc:	80 7e 0d 01          	cmpb   $0x1,0xd(%esi)
5022c0:	75 15                	jne    0x5022d7
5022c2:	ff 74 24 18          	push   0x18(%esp)
5022c6:	ff 74 24 18          	push   0x18(%esp)
5022ca:	57                   	push   %edi
5022cb:	e8 c0 07 00 00       	call   0x502a90
5022d0:	83 c4 0c             	add    $0xc,%esp
5022d3:	5f                   	pop    %edi
5022d4:	5e                   	pop    %esi
5022d5:	5d                   	pop    %ebp
5022d6:	c3                   	ret
5022d7:	8b 44 24 18          	mov    0x18(%esp),%eax
5022db:	39 6c 24 14          	cmp    %ebp,0x14(%esp)
5022df:	75 0e                	jne    0x5022ef
5022e1:	8b 4e 1c             	mov    0x1c(%esi),%ecx
5022e4:	5f                   	pop    %edi
5022e5:	5e                   	pop    %esi
5022e6:	89 08                	mov    %ecx,(%eax)
5022e8:	b8 01 00 00 00       	mov    $0x1,%eax
5022ed:	5d                   	pop    %ebp
5022ee:	c3                   	ret
5022ef:	8b 00                	mov    (%eax),%eax
5022f1:	3b 46 1c             	cmp    0x1c(%esi),%eax
5022f4:	0f 85 b0 00 00 00    	jne    0x5023aa
5022fa:	8d 44 24 10          	lea    0x10(%esp),%eax
5022fe:	50                   	push   %eax
5022ff:	6a 00                	push   $0x0
502301:	57                   	push   %edi
502302:	e8 89 07 00 00       	call   0x502a90
502307:	83 c4 0c             	add    $0xc,%esp
50230a:	85 c0                	test   %eax,%eax
50230c:	0f 84 98 00 00 00    	je     0x5023aa
502312:	53                   	push   %ebx
502313:	68 cd 00 00 00       	push   $0xcd
502318:	68 54 a0 62 00       	push   $0x62a054
50231d:	ff 74 24 1c          	push   0x1c(%esp)
502321:	e8 2a e4 fd ff       	call   0x4e0750
502326:	8b d8                	mov    %eax,%ebx
502328:	83 c4 0c             	add    $0xc,%esp
50232b:	85 db                	test   %ebx,%ebx
50232d:	75 22                	jne    0x502351
50232f:	68 ce 00 00 00       	push   $0xce
502334:	68 54 a0 62 00       	push   $0x62a054
502339:	6a 41                	push   $0x41
50233b:	68 1b 01 00 00       	push   $0x11b
502340:	6a 10                	push   $0x10
502342:	e8 39 6c fd ff       	call   0x4d8f80
502347:	83 c4 14             	add    $0x14,%esp
50234a:	33 c0                	xor    %eax,%eax
50234c:	5b                   	pop    %ebx
50234d:	5f                   	pop    %edi
50234e:	5e                   	pop    %esi
50234f:	5d                   	pop    %ebp
502350:	c3                   	ret
502351:	8d 44 24 14          	lea    0x14(%esp),%eax
502355:	50                   	push   %eax
502356:	53                   	push   %ebx
502357:	57                   	push   %edi
502358:	e8 33 07 00 00       	call   0x502a90
50235d:	8b 7c 24 20          	mov    0x20(%esp),%edi
502361:	83 c4 0c             	add    $0xc,%esp
502364:	85 c0                	test   %eax,%eax
502366:	74 27                	je     0x50238f
502368:	ff 76 10             	push   0x10(%esi)
50236b:	8b 44 24 20          	mov    0x20(%esp),%eax
50236f:	ff 76 18             	push   0x18(%esi)
502372:	ff 76 14             	push   0x14(%esi)
502375:	57                   	push   %edi
502376:	53                   	push   %ebx
502377:	ff 30                	push   (%eax)
502379:	ff 74 24 30          	push   0x30(%esp)
50237d:	e8 ce c8 01 00       	call   0x51ec50
502382:	83 c4 1c             	add    $0x1c,%esp
502385:	b9 01 00 00 00       	mov    $0x1,%ecx
50238a:	85 c0                	test   %eax,%eax
50238c:	0f 45 e9             	cmovne %ecx,%ebp
50238f:	68 da 00 00 00       	push   $0xda
502394:	68 54 a0 62 00       	push   $0x62a054
502399:	57                   	push   %edi
50239a:	53                   	push   %ebx
50239b:	e8 a0 e4 fd ff       	call   0x4e0840
5023a0:	83 c4 10             	add    $0x10,%esp
5023a3:	8b c5                	mov    %ebp,%eax
5023a5:	5b                   	pop    %ebx
5023a6:	5f                   	pop    %edi
5023a7:	5e                   	pop    %esi
5023a8:	5d                   	pop    %ebp
5023a9:	c3                   	ret
5023aa:	5f                   	pop    %edi
5023ab:	5e                   	pop    %esi
5023ac:	33 c0                	xor    %eax,%eax
5023ae:	5d                   	pop    %ebp
5023af:	c3                   	ret
5023b0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5023b4:	8b 44 24 08          	mov    0x8(%esp),%eax
5023b8:	53                   	push   %ebx
5023b9:	56                   	push   %esi
5023ba:	8b 71 14             	mov    0x14(%ecx),%esi
5023bd:	57                   	push   %edi
5023be:	3d 01 10 00 00       	cmp    $0x1001,%eax
5023c3:	0f 8f 46 01 00 00    	jg     0x50250f
5023c9:	0f 84 f5 00 00 00    	je     0x5024c4
5023cf:	48                   	dec    %eax
5023d0:	83 f8 0c             	cmp    $0xc,%eax
5023d3:	0f 87 f7 02 00 00    	ja     0x5026d0
5023d9:	0f b6 80 ec 26 50 00 	movzbl 0x5026ec(%eax),%eax
5023e0:	ff 24 85 dc 26 50 00 	jmp    *0x5026dc(,%eax,4)
5023e7:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
5023eb:	57                   	push   %edi
5023ec:	e8 cf dc fe ff       	call   0x4f00c0
5023f1:	83 c4 04             	add    $0x4,%esp
5023f4:	83 f8 40             	cmp    $0x40,%eax
5023f7:	0f 84 a9 00 00 00    	je     0x5024a6
5023fd:	57                   	push   %edi
5023fe:	e8 bd dc fe ff       	call   0x4f00c0
502403:	83 c4 04             	add    $0x4,%esp
502406:	3d a0 01 00 00       	cmp    $0x1a0,%eax
50240b:	0f 84 95 00 00 00    	je     0x5024a6
502411:	57                   	push   %edi
502412:	e8 a9 dc fe ff       	call   0x4f00c0
502417:	83 c4 04             	add    $0x4,%esp
50241a:	3d a3 02 00 00       	cmp    $0x2a3,%eax