524143:	8b 43 04             	mov    0x4(%ebx),%eax
524146:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
524149:	8d 3c 88             	lea    (%eax,%ecx,4),%edi
52414c:	0f b7 4f 10          	movzwl 0x10(%edi),%ecx
524150:	f6 c1 20             	test   $0x20,%cl
524153:	74 55                	je     0x5241aa
524155:	8b 45 08             	mov    0x8(%ebp),%eax
524158:	8b 58 0c             	mov    0xc(%eax),%ebx
52415b:	f7 c1 00 01 00 00    	test   $0x100,%ecx
524161:	74 15                	je     0x524178
524163:	ff 37                	push   (%edi)
524165:	68 28 92 6b 00       	push   $0x6b9228
52416a:	53                   	push   %ebx
52416b:	e8 f0 f0 ff ff       	call   0x523260
524170:	83 c4 0c             	add    $0xc,%esp
524173:	5f                   	pop    %edi
524174:	5e                   	pop    %esi
524175:	5b                   	pop    %ebx
524176:	5d                   	pop    %ebp
524177:	c3                   	ret
524178:	ff 75 18             	push   0x18(%ebp)
52417b:	8b 73 34             	mov    0x34(%ebx),%esi
52417e:	81 c9 00 01 00 00    	or     $0x100,%ecx
524184:	8b 45 10             	mov    0x10(%ebp),%eax
524187:	40                   	inc    %eax
524188:	66 89 4f 10          	mov    %cx,0x10(%edi)
52418c:	57                   	push   %edi
52418d:	53                   	push   %ebx
52418e:	89 43 34             	mov    %eax,0x34(%ebx)
524191:	e8 ea fd ff ff       	call   0x523f80
524196:	83 c4 0c             	add    $0xc,%esp
524199:	89 73 34             	mov    %esi,0x34(%ebx)
52419c:	b8 ff fe 00 00       	mov    $0xfeff,%eax
5241a1:	66 21 47 10          	and    %ax,0x10(%edi)
5241a5:	5f                   	pop    %edi
5241a6:	5e                   	pop    %esi
5241a7:	5b                   	pop    %ebx
5241a8:	5d                   	pop    %ebp
5241a9:	c3                   	ret
5241aa:	f6 43 24 80          	testb  $0x80,0x24(%ebx)
5241ae:	52                   	push   %edx
5241af:	53                   	push   %ebx
5241b0:	74 10                	je     0x5241c2
5241b2:	e8 19 32 01 00       	call   0x5373d0
5241b7:	83 c4 04             	add    $0x4,%esp
5241ba:	50                   	push   %eax
5241bb:	e8 60 9c 01 00       	call   0x53de20
5241c0:	eb 05                	jmp    0x5241c7
5241c2:	e8 89 9c 01 00       	call   0x53de50
5241c7:	0f bf d0             	movswl %ax,%edx
5241ca:	83 c4 08             	add    $0x8,%esp
5241cd:	b8 59 00 00 00       	mov    $0x59,%eax
5241d2:	8b 7d 18             	mov    0x18(%ebp),%edi
5241d5:	8b 75 08             	mov    0x8(%ebp),%esi
5241d8:	57                   	push   %edi
5241d9:	52                   	push   %edx
5241da:	ff 75 10             	push   0x10(%ebp)
5241dd:	50                   	push   %eax
5241de:	56                   	push   %esi
5241df:	e8 5c d9 01 00       	call   0x541b40
5241e4:	57                   	push   %edi
5241e5:	ff 75 14             	push   0x14(%ebp)
5241e8:	53                   	push   %ebx
5241e9:	56                   	push   %esi
5241ea:	e8 e1 b1 ff ff       	call   0x51f3d0
5241ef:	83 c4 24             	add    $0x24,%esp
5241f2:	5f                   	pop    %edi
5241f3:	5e                   	pop    %esi
5241f4:	5b                   	pop    %ebx
5241f5:	5d                   	pop    %ebp
5241f6:	c3                   	ret
5241f7:	ff 75 18             	push   0x18(%ebp)
5241fa:	ff 75 10             	push   0x10(%ebp)
5241fd:	6a 7f                	push   $0x7f
5241ff:	ff 75 08             	push   0x8(%ebp)
524202:	e8 d9 d8 01 00       	call   0x541ae0
524207:	83 c4 10             	add    $0x10,%esp
52420a:	5b                   	pop    %ebx
52420b:	5d                   	pop    %ebp
52420c:	c3                   	ret
52420d:	cc                   	int3
52420e:	cc                   	int3
52420f:	cc                   	int3
524210:	55                   	push   %ebp
524211:	8b ec                	mov    %esp,%ebp
524213:	83 ec 4c             	sub    $0x4c,%esp
524216:	a1 d4 89 72 00       	mov    0x7289d4,%eax
52421b:	33 c5                	xor    %ebp,%eax
52421d:	89 45 fc             	mov    %eax,-0x4(%ebp)
524220:	8b 45 10             	mov    0x10(%ebp),%eax
524223:	53                   	push   %ebx
524224:	8b 5d 0c             	mov    0xc(%ebp),%ebx
524227:	89 45 f0             	mov    %eax,-0x10(%ebp)
52422a:	8b 45 14             	mov    0x14(%ebp),%eax
52422d:	57                   	push   %edi
52422e:	8b 7d 08             	mov    0x8(%ebp),%edi
524231:	89 45 d4             	mov    %eax,-0x2c(%ebp)
524234:	33 c0                	xor    %eax,%eax
524236:	89 45 e4             	mov    %eax,-0x1c(%ebp)
524239:	89 45 f4             	mov    %eax,-0xc(%ebp)
52423c:	8b 43 0c             	mov    0xc(%ebx),%eax
52423f:	53                   	push   %ebx
524240:	57                   	push   %edi
524241:	89 7d c4             	mov    %edi,-0x3c(%ebp)
524244:	89 5d e0             	mov    %ebx,-0x20(%ebp)
524247:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
52424e:	89 45 cc             	mov    %eax,-0x34(%ebp)
524251:	e8 ba f8 ff ff       	call   0x523b10
524256:	83 c4 08             	add    $0x8,%esp
524259:	85 c0                	test   %eax,%eax
52425b:	0f 85 ed 0e 00 00    	jne    0x52514e
524261:	53                   	push   %ebx
524262:	57                   	push   %edi
524263:	e8 b8 c8 fd ff       	call   0x500b20
524268:	89 45 c0             	mov    %eax,-0x40(%ebp)
52426b:	83 c4 08             	add    $0x8,%esp
52426e:	8b 43 0c             	mov    0xc(%ebx),%eax
524271:	8a 08                	mov    (%eax),%cl
524273:	80 f9 ad             	cmp    $0xad,%cl
524276:	75 03                	jne    0x52427b
524278:	8a 48 02             	mov    0x2(%eax),%cl
52427b:	80 f9 ae             	cmp    $0xae,%cl
52427e:	75 07                	jne    0x524287
524280:	8b 40 14             	mov    0x14(%eax),%eax
524283:	8b 18                	mov    (%eax),%ebx
524285:	eb 14                	jmp    0x52429b
524287:	80 f9 88             	cmp    $0x88,%cl
52428a:	75 0a                	jne    0x524296
52428c:	8b 40 14             	mov    0x14(%eax),%eax
52428f:	8b 40 1c             	mov    0x1c(%eax),%eax
524292:	8b 18                	mov    (%eax),%ebx
524294:	eb 05                	jmp    0x52429b
524296:	bb 01 00 00 00       	mov    $0x1,%ebx
52429b:	8b 07                	mov    (%edi),%eax
52429d:	56                   	push   %esi
52429e:	8d 34 9d 01 00 00 00 	lea    0x1(,%ebx,4),%esi
5242a5:	89 5d e8             	mov    %ebx,-0x18(%ebp)
5242a8:	03 f3                	add    %ebx,%esi
5242aa:	6a 00                	push   $0x0
5242ac:	56                   	push   %esi
5242ad:	85 c0                	test   %eax,%eax
5242af:	74 10                	je     0x5242c1
5242b1:	50                   	push   %eax
5242b2:	e8 29 d1 ff ff       	call   0x5213e0
5242b7:	8b c8                	mov    %eax,%ecx
5242b9:	83 c4 0c             	add    $0xc,%esp
5242bc:	89 4d b8             	mov    %ecx,-0x48(%ebp)
5242bf:	eb 0d                	jmp    0x5242ce
5242c1:	e8 9a cc 00 00       	call   0x530f60
5242c6:	83 c4 08             	add    $0x8,%esp
5242c9:	89 45 b8             	mov    %eax,-0x48(%ebp)
5242cc:	8b c8                	mov    %eax,%ecx
5242ce:	85 c9                	test   %ecx,%ecx
5242d0:	74 0f                	je     0x5242e1
5242d2:	56                   	push   %esi
5242d3:	6a 00                	push   $0x0
5242d5:	51                   	push   %ecx
5242d6:	e8 25 f7 0b 00       	call   0x5e3a00
5242db:	8b 4d b8             	mov    -0x48(%ebp),%ecx
5242de:	83 c4 0c             	add    $0xc,%esp
5242e1:	8b 07                	mov    (%edi),%eax
5242e3:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5242e7:	0f 85 b8 0c 00 00    	jne    0x524fa5
5242ed:	8b 55 d4             	mov    -0x2c(%ebp),%edx
5242f0:	8d 45 f4             	lea    -0xc(%ebp),%eax
5242f3:	8b 77 08             	mov    0x8(%edi),%esi
5242f6:	50                   	push   %eax
5242f7:	51                   	push   %ecx
5242f8:	33 c9                	xor    %ecx,%ecx
5242fa:	89 75 bc             	mov    %esi,-0x44(%ebp)
5242fd:	39 55 f0             	cmp    %edx,-0x10(%ebp)
524300:	8d 45 f8             	lea    -0x8(%ebp),%eax
524303:	0f 44 c1             	cmove  %ecx,%eax
524306:	50                   	push   %eax
524307:	6a 03                	push   $0x3
524309:	ff 75 e0             	push   -0x20(%ebp)
52430c:	57                   	push   %edi
52430d:	e8 5e 3e 00 00       	call   0x528170
524312:	89 45 dc             	mov    %eax,-0x24(%ebp)
524315:	8d 45 b4             	lea    -0x4c(%ebp),%eax
524318:	50                   	push   %eax
524319:	8b 45 cc             	mov    -0x34(%ebp),%eax
52431c:	50                   	push   %eax
52431d:	57                   	push   %edi
52431e:	e8 9d c2 fd ff       	call   0x5005c0
524323:	83 c4 24             	add    $0x24,%esp
524326:	89 45 b4             	mov    %eax,-0x4c(%ebp)
524329:	33 c9                	xor    %ecx,%ecx
52432b:	85 db                	test   %ebx,%ebx
52432d:	7e 10                	jle    0x52433f
52432f:	8b 45 b8             	mov    -0x48(%ebp),%eax
524332:	39 0c 88             	cmp    %ecx,(%eax,%ecx,4)
524335:	75 05                	jne    0x52433c
524337:	41                   	inc    %ecx
524338:	3b cb                	cmp    %ebx,%ecx
52433a:	7c f6                	jl     0x524332
52433c:	8b 45 b4             	mov    -0x4c(%ebp),%eax
52433f:	3b cb                	cmp    %ebx,%ecx
524341:	75 07                	jne    0x52434a
524343:	8b c8                	mov    %eax,%ecx
524345:	89 4d ec             	mov    %ecx,-0x14(%ebp)
524348:	eb 78                	jmp    0x5243c2
52434a:	53                   	push   %ebx
52434b:	57                   	push   %edi
52434c:	e8 cf 8b 00 00       	call   0x52cf20
524351:	33 db                	xor    %ebx,%ebx
524353:	83 c4 08             	add    $0x8,%esp
524356:	8b c8                	mov    %eax,%ecx
524358:	89 4d ec             	mov    %ecx,-0x14(%ebp)
52435b:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
52435e:	7e 5f                	jle    0x5243bf
524360:	8b 7d b4             	mov    -0x4c(%ebp),%edi
524363:	8b 45 b8             	mov    -0x48(%ebp),%eax
524366:	8b 14 98             	mov    (%eax,%ebx,4),%edx
524369:	03 d1                	add    %ecx,%edx
52436b:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52436e:	39 4e 70             	cmp    %ecx,0x70(%esi)
524371:	7f 11                	jg     0x524384
524373:	6a 00                	push   $0x0
524375:	52                   	push   %edx
524376:	57                   	push   %edi
524377:	6a 4d                	push   $0x4d
524379:	56                   	push   %esi
52437a:	e8 81 21 fe ff       	call   0x506500
52437f:	83 c4 14             	add    $0x14,%esp
524382:	eb 2e                	jmp    0x5243b2
524384:	8d 41 01             	lea    0x1(%ecx),%eax
524387:	89 46 6c             	mov    %eax,0x6c(%esi)
52438a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52438d:	8b 46 68             	mov    0x68(%esi),%eax
524390:	8b 75 bc             	mov    -0x44(%ebp),%esi
524393:	c7 04 88 4d 00 00 00 	movl   $0x4d,(%eax,%ecx,4)
52439a:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
52439e:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5243a2:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5243a9:	00
5243aa:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5243b1:	00
5243b2:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5243b5:	43                   	inc    %ebx
5243b6:	47                   	inc    %edi
5243b7:	3b 5d e8             	cmp    -0x18(%ebp),%ebx
5243ba:	7c a7                	jl     0x524363
5243bc:	8b 7d c4             	mov    -0x3c(%ebp),%edi
5243bf:	8b 5d e8             	mov    -0x18(%ebp),%ebx
5243c2:	83 7d dc 05          	cmpl   $0x5,-0x24(%ebp)
5243c6:	0f 85 fb 04 00 00    	jne    0x5248c7
5243cc:	8b 5d e0             	mov    -0x20(%ebp),%ebx
5243cf:	ff 73 0c             	push   0xc(%ebx)
5243d2:	8b 43 14             	mov    0x14(%ebx),%eax
5243d5:	57                   	push   %edi
5243d6:	89 45 d0             	mov    %eax,-0x30(%ebp)
5243d9:	e8 02 1f 00 00       	call   0x5262e0
5243de:	ff 4f 38             	decl   0x38(%edi)
5243e1:	83 c4 08             	add    $0x8,%esp
5243e4:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5243e7:	8b 47 38             	mov    0x38(%edi),%eax
5243ea:	89 45 d8             	mov    %eax,-0x28(%ebp)
5243ed:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5243f0:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
5243f7:	3b 45 f0             	cmp    -0x10(%ebp),%eax
5243fa:	74 69                	je     0x524465
5243fc:	8a 47 13             	mov    0x13(%edi),%al
5243ff:	84 c0                	test   %al,%al
524401:	75 08                	jne    0x52440b
524403:	ff 47 2c             	incl   0x2c(%edi)
524406:	8b 57 2c             	mov    0x2c(%edi),%edx
524409:	eb 0f                	jmp    0x52441a
52440b:	fe c8                	dec    %al
52440d:	88 47 13             	mov    %al,0x13(%edi)
524410:	0f b6 c0             	movzbl %al,%eax
524413:	8b 94 87 94 00 00 00 	mov    0x94(%edi,%eax,4),%edx
52441a:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52441d:	89 55 e8             	mov    %edx,-0x18(%ebp)
524420:	39 4e 70             	cmp    %ecx,0x70(%esi)
524423:	7f 13                	jg     0x524438
524425:	8b 45 ec             	mov    -0x14(%ebp),%eax
524428:	52                   	push   %edx
524429:	50                   	push   %eax
52442a:	50                   	push   %eax
52442b:	6a 65                	push   $0x65
52442d:	56                   	push   %esi
52442e:	e8 cd 20 fe ff       	call   0x506500
524433:	83 c4 14             	add    $0x14,%esp
524436:	eb 2d                	jmp    0x524465
524438:	8b 5d ec             	mov    -0x14(%ebp),%ebx
52443b:	8d 41 01             	lea    0x1(%ecx),%eax
52443e:	89 46 6c             	mov    %eax,0x6c(%esi)
524441:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
524444:	8b 46 68             	mov    0x68(%esi),%eax
524447:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
52444b:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
52444f:	8b 5d e0             	mov    -0x20(%ebp),%ebx
524452:	c7 04 88 65 00 00 00 	movl   $0x65,(%eax,%ecx,4)
524459:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
52445d:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524464:	00
524465:	ff 73 0c             	push   0xc(%ebx)
524468:	e8 43 f1 ff ff       	call   0x5235b0
52446d:	33 d2                	xor    %edx,%edx
52446f:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
524476:	83 c4 04             	add    $0x4,%esp
524479:	3c 45                	cmp    $0x45,%al
52447b:	8b 45 d0             	mov    -0x30(%ebp),%eax
52447e:	0f 94 c2             	sete   %dl
524481:	89 55 bc             	mov    %edx,-0x44(%ebp)
524484:	83 38 00             	cmpl   $0x0,(%eax)
524487:	0f 8e 4d 03 00 00    	jle    0x5247da
52448d:	8d 48 04             	lea    0x4(%eax),%ecx
524490:	89 4d cc             	mov    %ecx,-0x34(%ebp)
524493:	85 d2                	test   %edx,%edx
524495:	0f 84 cd 00 00 00    	je     0x524568
52449b:	8a 47 13             	mov    0x13(%edi),%al
52449e:	84 c0                	test   %al,%al
5244a0:	75 08                	jne    0x5244aa
5244a2:	ff 47 2c             	incl   0x2c(%edi)
5244a5:	8b 5f 2c             	mov    0x2c(%edi),%ebx
5244a8:	eb 0f                	jmp    0x5244b9
5244aa:	fe c8                	dec    %al
5244ac:	88 47 13             	mov    %al,0x13(%edi)
5244af:	0f b6 c0             	movzbl %al,%eax
5244b2:	8b 9c 87 94 00 00 00 	mov    0x94(%edi,%eax,4),%ebx
5244b9:	53                   	push   %ebx
5244ba:	ff 31                	push   (%ecx)
5244bc:	89 5d e0             	mov    %ebx,-0x20(%ebp)
5244bf:	57                   	push   %edi
5244c0:	89 5d f4             	mov    %ebx,-0xc(%ebp)
5244c3:	e8 08 f7 ff ff       	call   0x523bd0
5244c8:	8b 56 6c             	mov    0x6c(%esi),%edx
5244cb:	83 c4 0c             	add    $0xc,%esp
5244ce:	39 56 70             	cmp    %edx,0x70(%esi)
5244d1:	7f 14                	jg     0x5244e7
5244d3:	6a 00                	push   $0x0
5244d5:	6a 01                	push   $0x1
5244d7:	53                   	push   %ebx
5244d8:	6a 5a                	push   $0x5a
5244da:	56                   	push   %esi
5244db:	e8 20 20 fe ff       	call   0x506500
5244e0:	83 c4 14             	add    $0x14,%esp
5244e3:	8b d0                	mov    %eax,%edx
5244e5:	eb 32                	jmp    0x524519
5244e7:	8b 7d c4             	mov    -0x3c(%ebp),%edi
5244ea:	8d 42 01             	lea    0x1(%edx),%eax
5244ed:	89 46 6c             	mov    %eax,0x6c(%esi)
5244f0:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
5244f3:	8b 46 68             	mov    0x68(%esi),%eax
5244f6:	c7 04 88 5a 00 00 00 	movl   $0x5a,(%eax,%ecx,4)
5244fd:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
524501:	c7 44 88 08 01 00 00 	movl   $0x1,0x8(%eax,%ecx,4)
524508:	00