523f94:	8b 7b 6c             	mov    0x6c(%ebx),%edi
523f97:	48                   	dec    %eax
523f98:	89 45 fc             	mov    %eax,-0x4(%ebp)
523f9b:	39 7b 70             	cmp    %edi,0x70(%ebx)
523f9e:	7f 19                	jg     0x523fb9
523fa0:	8b 75 10             	mov    0x10(%ebp),%esi
523fa3:	56                   	push   %esi
523fa4:	6a 00                	push   $0x0
523fa6:	50                   	push   %eax
523fa7:	6a 15                	push   $0x15
523fa9:	53                   	push   %ebx
523faa:	e8 51 25 fe ff       	call   0x506500
523faf:	8b 55 08             	mov    0x8(%ebp),%edx
523fb2:	83 c4 14             	add    $0x14,%esp
523fb5:	8b f8                	mov    %eax,%edi
523fb7:	eb 38                	jmp    0x523ff1
523fb9:	8b 75 fc             	mov    -0x4(%ebp),%esi
523fbc:	8d 47 01             	lea    0x1(%edi),%eax
523fbf:	89 43 6c             	mov    %eax,0x6c(%ebx)
523fc2:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
523fc5:	8b 43 68             	mov    0x68(%ebx),%eax
523fc8:	89 74 88 04          	mov    %esi,0x4(%eax,%ecx,4)
523fcc:	8b 75 10             	mov    0x10(%ebp),%esi
523fcf:	c7 04 88 15 00 00 00 	movl   $0x15,(%eax,%ecx,4)
523fd6:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
523fdd:	00
523fde:	89 74 88 0c          	mov    %esi,0xc(%eax,%ecx,4)
523fe2:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
523fe9:	00
523fea:	eb 05                	jmp    0x523ff1
523fec:	8b 75 10             	mov    0x10(%ebp),%esi
523fef:	33 ff                	xor    %edi,%edi
523ff1:	56                   	push   %esi
523ff2:	8b 75 0c             	mov    0xc(%ebp),%esi
523ff5:	ff 76 04             	push   0x4(%esi)
523ff8:	52                   	push   %edx
523ff9:	e8 d2 fb ff ff       	call   0x523bd0
523ffe:	83 c6 0d             	add    $0xd,%esi
524001:	83 c4 0c             	add    $0xc,%esp
524004:	80 3e 42             	cmpb   $0x42,(%esi)
524007:	7c 15                	jl     0x52401e
524009:	6a 01                	push   $0x1
52400b:	56                   	push   %esi
52400c:	6a 00                	push   $0x0
52400e:	6a 01                	push   $0x1
524010:	ff 75 10             	push   0x10(%ebp)
524013:	6a 5a                	push   $0x5a
524015:	53                   	push   %ebx
524016:	e8 75 db 01 00       	call   0x541b90
52401b:	83 c4 1c             	add    $0x1c,%esp
52401e:	85 ff                	test   %edi,%edi
524020:	74 2c                	je     0x52404e
524022:	8b 53 6c             	mov    0x6c(%ebx),%edx
524025:	79 03                	jns    0x52402a
524027:	8d 7a ff             	lea    -0x1(%edx),%edi
52402a:	8b 03                	mov    (%ebx),%eax
52402c:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
524030:	74 0f                	je     0x524041
524032:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
524037:	5f                   	pop    %edi
524038:	5e                   	pop    %esi
524039:	5b                   	pop    %ebx
52403a:	89 50 08             	mov    %edx,0x8(%eax)
52403d:	8b e5                	mov    %ebp,%esp
52403f:	5d                   	pop    %ebp
524040:	c3                   	ret
524041:	8b 43 68             	mov    0x68(%ebx),%eax
524044:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
524047:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52404b:	8d 04 88             	lea    (%eax,%ecx,4),%eax
52404e:	5f                   	pop    %edi
52404f:	5e                   	pop    %esi
524050:	5b                   	pop    %ebx
524051:	8b e5                	mov    %ebp,%esp
524053:	5d                   	pop    %ebp
524054:	c3                   	ret
524055:	cc                   	int3
524056:	cc                   	int3
524057:	cc                   	int3
524058:	cc                   	int3
524059:	cc                   	int3
52405a:	cc                   	int3
52405b:	cc                   	int3
52405c:	cc                   	int3
52405d:	cc                   	int3
52405e:	cc                   	int3
52405f:	cc                   	int3
524060:	55                   	push   %ebp
524061:	8b ec                	mov    %esp,%ebp
524063:	53                   	push   %ebx
524064:	56                   	push   %esi
524065:	8b 75 18             	mov    0x18(%ebp),%esi
524068:	57                   	push   %edi
524069:	8b 7d 08             	mov    0x8(%ebp),%edi
52406c:	56                   	push   %esi
52406d:	ff 75 10             	push   0x10(%ebp)
524070:	ff 75 14             	push   0x14(%ebp)
524073:	ff 75 0c             	push   0xc(%ebp)
524076:	ff 77 08             	push   0x8(%edi)
524079:	e8 42 00 00 00       	call   0x5240c0
52407e:	8a 5d 1c             	mov    0x1c(%ebp),%bl
524081:	83 c4 14             	add    $0x14,%esp
524084:	84 db                	test   %bl,%bl
524086:	74 2b                	je     0x5240b3
524088:	8b 7f 08             	mov    0x8(%edi),%edi
52408b:	8b 07                	mov    (%edi),%eax
52408d:	8b 4f 6c             	mov    0x6c(%edi),%ecx
524090:	49                   	dec    %ecx
524091:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
524095:	74 07                	je     0x52409e
524097:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
52409c:	eb 09                	jmp    0x5240a7
52409e:	8d 14 89             	lea    (%ecx,%ecx,4),%edx
5240a1:	8b 4f 68             	mov    0x68(%edi),%ecx
5240a4:	8d 04 91             	lea    (%ecx,%edx,4),%eax
5240a7:	80 38 59             	cmpb   $0x59,(%eax)
5240aa:	75 07                	jne    0x5240b3
5240ac:	0f b6 cb             	movzbl %bl,%ecx
5240af:	66 89 48 02          	mov    %cx,0x2(%eax)
5240b3:	5f                   	pop    %edi
5240b4:	8b c6                	mov    %esi,%eax
5240b6:	5e                   	pop    %esi
5240b7:	5b                   	pop    %ebx
5240b8:	5d                   	pop    %ebp
5240b9:	c3                   	ret
5240ba:	cc                   	int3
5240bb:	cc                   	int3
5240bc:	cc                   	int3
5240bd:	cc                   	int3
5240be:	cc                   	int3
5240bf:	cc                   	int3
5240c0:	55                   	push   %ebp
5240c1:	8b ec                	mov    %esp,%ebp
5240c3:	53                   	push   %ebx
5240c4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5240c7:	85 db                	test   %ebx,%ebx
5240c9:	75 4f                	jne    0x52411a
5240cb:	8b 55 08             	mov    0x8(%ebp),%edx
5240ce:	8b 4a 6c             	mov    0x6c(%edx),%ecx
5240d1:	39 4a 70             	cmp    %ecx,0x70(%edx)
5240d4:	7f 11                	jg     0x5240e7
5240d6:	5b                   	pop    %ebx
5240d7:	c7 45 0c 59 00 00 00 	movl   $0x59,0xc(%ebp)
5240de:	89 55 08             	mov    %edx,0x8(%ebp)
5240e1:	5d                   	pop    %ebp
5240e2:	e9 19 24 fe ff       	jmp    0x506500
5240e7:	8d 41 01             	lea    0x1(%ecx),%eax
5240ea:	89 42 6c             	mov    %eax,0x6c(%edx)
5240ed:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5240f0:	8b 42 68             	mov    0x68(%edx),%eax
5240f3:	c7 04 88 59 00 00 00 	movl   $0x59,(%eax,%ecx,4)
5240fa:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524101:	00
524102:	5b                   	pop    %ebx
524103:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
524106:	8b 45 10             	mov    0x10(%ebp),%eax
524109:	89 41 04             	mov    %eax,0x4(%ecx)
52410c:	8b 45 14             	mov    0x14(%ebp),%eax
52410f:	89 41 08             	mov    %eax,0x8(%ecx)
524112:	8b 45 18             	mov    0x18(%ebp),%eax
524115:	89 41 0c             	mov    %eax,0xc(%ecx)
524118:	5d                   	pop    %ebp
524119:	c3                   	ret
52411a:	8b 55 14             	mov    0x14(%ebp),%edx
52411d:	85 d2                	test   %edx,%edx
52411f:	0f 88 d2 00 00 00    	js     0x5241f7
524125:	0f bf 43 28          	movswl 0x28(%ebx),%eax
524129:	3b d0                	cmp    %eax,%edx
52412b:	0f 84 c6 00 00 00    	je     0x5241f7
524131:	83 7b 38 00          	cmpl   $0x0,0x38(%ebx)
524135:	56                   	push   %esi
524136:	57                   	push   %edi
524137:	74 0a                	je     0x524143
524139:	b8 a6 00 00 00       	mov    $0xa6,%eax
52413e:	e9 8f 00 00 00       	jmp    0x5241d2
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