448fa3:	8a 00                	mov    (%eax),%al
448fa5:	3c 41                	cmp    $0x41,%al
448fa7:	0f be d8             	movsbl %al,%ebx
448faa:	0f 9c c1             	setl   %cl
448fad:	49                   	dec    %ecx
448fae:	83 e1 2b             	and    $0x2b,%ecx
448fb1:	83 c1 16             	add    $0x16,%ecx
448fb4:	2b d9                	sub    %ecx,%ebx
448fb6:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
448fb9:	e9 6a fe ff ff       	jmp    0x448e28
448fbe:	a1 cc b3 4b 00       	mov    0x4bb3cc,%eax
448fc3:	80 38 00             	cmpb   $0x0,(%eax)
448fc6:	74 06                	je     0x448fce
448fc8:	ff 05 cc b3 4b 00    	incl   0x4bb3cc
448fce:	83 fb 1f             	cmp    $0x1f,%ebx
448fd1:	0f 87 57 01 00 00    	ja     0x44912e
448fd7:	ff 75 10             	push   0x10(%ebp)
448fda:	8d 4d f4             	lea    -0xc(%ebp),%ecx
448fdd:	e8 50 de ff ff       	call   0x446e32
448fe2:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
448fe6:	8d 45 f4             	lea    -0xc(%ebp),%eax
448fe9:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
448fed:	8d 4d dc             	lea    -0x24(%ebp),%ecx
448ff0:	50                   	push   %eax
448ff1:	e8 10 e3 ff ff       	call   0x447306
448ff6:	8b 45 dc             	mov    -0x24(%ebp),%eax
448ff9:	8b 4d e0             	mov    -0x20(%ebp),%ecx
448ffc:	89 45 f4             	mov    %eax,-0xc(%ebp)
448fff:	89 4d f8             	mov    %ecx,-0x8(%ebp)
449002:	85 ff                	test   %edi,%edi
449004:	74 2b                	je     0x449031
449006:	89 4d d8             	mov    %ecx,-0x28(%ebp)
449009:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
44900c:	6a 20                	push   $0x20
44900e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
449011:	e8 31 e3 ff ff       	call   0x447347
449016:	8d 45 ec             	lea    -0x14(%ebp),%eax
449019:	50                   	push   %eax
44901a:	8d 45 b4             	lea    -0x4c(%ebp),%eax
44901d:	50                   	push   %eax
44901e:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
449021:	e8 36 e2 ff ff       	call   0x44725c
449026:	8b 08                	mov    (%eax),%ecx
449028:	8b 40 04             	mov    0x4(%eax),%eax
44902b:	89 4d f4             	mov    %ecx,-0xc(%ebp)
44902e:	89 45 f8             	mov    %eax,-0x8(%ebp)
449031:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
449034:	85 c9                	test   %ecx,%ecx
449036:	74 2e                	je     0x449066
449038:	8b 45 e8             	mov    -0x18(%ebp),%eax
44903b:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
44903e:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
449041:	6a 20                	push   $0x20
449043:	89 45 d8             	mov    %eax,-0x28(%ebp)
449046:	e8 fc e2 ff ff       	call   0x447347
44904b:	8d 45 f4             	lea    -0xc(%ebp),%eax
44904e:	50                   	push   %eax
44904f:	8d 45 b4             	lea    -0x4c(%ebp),%eax
449052:	50                   	push   %eax
449053:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
449056:	e8 01 e2 ff ff       	call   0x44725c
44905b:	8b 08                	mov    (%eax),%ecx
44905d:	8b 40 04             	mov    0x4(%eax),%eax
449060:	89 4d f4             	mov    %ecx,-0xc(%ebp)
449063:	89 45 f8             	mov    %eax,-0x8(%ebp)
449066:	f6 c3 10             	test   $0x10,%bl
449069:	0f 84 dc 00 00 00    	je     0x44914b
44906f:	85 f6                	test   %esi,%esi
449071:	0f 85 b7 00 00 00    	jne    0x44912e
449077:	8b 45 10             	mov    0x10(%ebp),%eax
44907a:	80 38 00             	cmpb   $0x0,(%eax)
44907d:	74 7c                	je     0x4490fb
44907f:	68 50 b8 49 00       	push   $0x49b850
449084:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
449087:	e8 a6 dd ff ff       	call   0x446e32
44908c:	8d 4d f4             	lea    -0xc(%ebp),%ecx
44908f:	51                   	push   %ecx
449090:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
449093:	51                   	push   %ecx
449094:	8b c8                	mov    %eax,%ecx
449096:	e8 c1 e1 ff ff       	call   0x44725c
44909b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44909e:	89 45 f4             	mov    %eax,-0xc(%ebp)
4490a1:	8b 45 d8             	mov    -0x28(%ebp),%eax
4490a4:	89 45 f8             	mov    %eax,-0x8(%ebp)
4490a7:	a1 cc b3 4b 00       	mov    0x4bb3cc,%eax
4490ac:	80 38 00             	cmpb   $0x0,(%eax)
4490af:	74 23                	je     0x4490d4
4490b1:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4490b4:	50                   	push   %eax
4490b5:	e8 88 1d 00 00       	call   0x44ae42
4490ba:	59                   	pop    %ecx
4490bb:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4490be:	51                   	push   %ecx
4490bf:	8d 4d bc             	lea    -0x44(%ebp),%ecx
4490c2:	51                   	push   %ecx
4490c3:	8b c8                	mov    %eax,%ecx
4490c5:	e8 92 e1 ff ff       	call   0x44725c
4490ca:	8b 08                	mov    (%eax),%ecx
4490cc:	8b 40 04             	mov    0x4(%eax),%eax
4490cf:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4490d2:	eb 22                	jmp    0x4490f6
4490d4:	6a 01                	push   $0x1
4490d6:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4490d9:	e8 87 dd ff ff       	call   0x446e65
4490de:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4490e1:	51                   	push   %ecx
4490e2:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4490e5:	51                   	push   %ecx
4490e6:	8b c8                	mov    %eax,%ecx
4490e8:	e8 6f e1 ff ff       	call   0x44725c
4490ed:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4490f0:	89 45 f4             	mov    %eax,-0xc(%ebp)
4490f3:	8b 45 d8             	mov    -0x28(%ebp),%eax
4490f6:	89 45 f8             	mov    %eax,-0x8(%ebp)
4490f9:	eb 1d                	jmp    0x449118
4490fb:	a1 cc b3 4b 00       	mov    0x4bb3cc,%eax
449100:	80 38 00             	cmpb   $0x0,(%eax)
449103:	74 3c                	je     0x449141
449105:	8d 45 b4             	lea    -0x4c(%ebp),%eax
449108:	50                   	push   %eax
449109:	e8 34 1d 00 00       	call   0x44ae42
44910e:	59                   	pop    %ecx
44910f:	50                   	push   %eax
449110:	8d 4d f4             	lea    -0xc(%ebp),%ecx
449113:	e8 cf e3 ff ff       	call   0x4474e7
449118:	a1 cc b3 4b 00       	mov    0x4bb3cc,%eax
44911d:	8a 08                	mov    (%eax),%cl
44911f:	84 c9                	test   %cl,%cl
449121:	74 1e                	je     0x449141
449123:	40                   	inc    %eax
449124:	a3 cc b3 4b 00       	mov    %eax,0x4bb3cc
449129:	80 f9 40             	cmp    $0x40,%cl
44912c:	74 1d                	je     0x44914b
44912e:	8b 45 08             	mov    0x8(%ebp),%eax
449131:	83 60 04 00          	andl   $0x0,0x4(%eax)
449135:	83 20 00             	andl   $0x0,(%eax)
449138:	c6 40 04 02          	movb   $0x2,0x4(%eax)
44913c:	e9 49 02 00 00       	jmp    0x44938a
449141:	6a 01                	push   $0x1
449143:	8d 4d f4             	lea    -0xc(%ebp),%ecx
449146:	e8 12 e3 ff ff       	call   0x44745d
44914b:	a1 d4 b3 4b 00       	mov    0x4bb3d4,%eax
449150:	8b cb                	mov    %ebx,%ecx
449152:	d1 e8                	shr    $1,%eax
449154:	83 e1 0c             	and    $0xc,%ecx
449157:	f7 d0                	not    %eax
449159:	a8 01                	test   $0x1,%al
44915b:	74 2f                	je     0x44918c
44915d:	83 f9 0c             	cmp    $0xc,%ecx
449160:	75 42                	jne    0x4491a4
449162:	85 f6                	test   %esi,%esi
449164:	75 c8                	jne    0x44912e
449166:	8d 45 b4             	lea    -0x4c(%ebp),%eax
449169:	50                   	push   %eax
44916a:	e8 f9 f5 ff ff       	call   0x448768
44916f:	59                   	pop    %ecx
449170:	8d 4d f4             	lea    -0xc(%ebp),%ecx
449173:	51                   	push   %ecx
449174:	8d 4d bc             	lea    -0x44(%ebp),%ecx
449177:	51                   	push   %ecx
449178:	8b c8                	mov    %eax,%ecx
44917a:	e8 dd e0 ff ff       	call   0x44725c
44917f:	8b 08                	mov    (%eax),%ecx
449181:	8b 40 04             	mov    0x4(%eax),%eax
449184:	89 4d f4             	mov    %ecx,-0xc(%ebp)
449187:	89 45 f8             	mov    %eax,-0x8(%ebp)
44918a:	eb 18                	jmp    0x4491a4
44918c:	83 f9 0c             	cmp    $0xc,%ecx
44918f:	75 13                	jne    0x4491a4
449191:	8d 45 b4             	lea    -0x4c(%ebp),%eax
449194:	50                   	push   %eax
449195:	e8 ce f5 ff ff       	call   0x448768
44919a:	59                   	pop    %ecx
44919b:	50                   	push   %eax
44919c:	8d 4d f4             	lea    -0xc(%ebp),%ecx
44919f:	e8 43 e3 ff ff       	call   0x4474e7
4491a4:	f6 c3 02             	test   $0x2,%bl
4491a7:	74 28                	je     0x4491d1
4491a9:	68 d4 bb 49 00       	push   $0x49bbd4
4491ae:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4491b1:	e8 7c dc ff ff       	call   0x446e32
4491b6:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4491b9:	51                   	push   %ecx
4491ba:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4491bd:	51                   	push   %ecx
4491be:	8b c8                	mov    %eax,%ecx
4491c0:	e8 97 e0 ff ff       	call   0x44725c
4491c5:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4491c8:	89 45 f4             	mov    %eax,-0xc(%ebp)
4491cb:	8b 45 d8             	mov    -0x28(%ebp),%eax
4491ce:	89 45 f8             	mov    %eax,-0x8(%ebp)
4491d1:	f6 c3 01             	test   $0x1,%bl
4491d4:	74 28                	je     0x4491fe
4491d6:	68 e0 bb 49 00       	push   $0x49bbe0
4491db:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4491de:	e8 4f dc ff ff       	call   0x446e32
4491e3:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4491e6:	51                   	push   %ecx
4491e7:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4491ea:	51                   	push   %ecx
4491eb:	8b c8                	mov    %eax,%ecx
4491ed:	e8 6a e0 ff ff       	call   0x44725c
4491f2:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4491f5:	89 45 f4             	mov    %eax,-0xc(%ebp)
4491f8:	8b 45 d8             	mov    -0x28(%ebp),%eax
4491fb:	89 45 f8             	mov    %eax,-0x8(%ebp)
4491fe:	80 7d fe 00          	cmpb   $0x0,-0x2(%ebp)
449202:	74 25                	je     0x449229
449204:	8b 45 f4             	mov    -0xc(%ebp),%eax
449207:	8d 4d dc             	lea    -0x24(%ebp),%ecx
44920a:	89 45 dc             	mov    %eax,-0x24(%ebp)
44920d:	8b 45 f8             	mov    -0x8(%ebp),%eax
449210:	68 e8 bb 49 00       	push   $0x49bbe8
449215:	89 45 e0             	mov    %eax,-0x20(%ebp)
449218:	e8 df e1 ff ff       	call   0x4473fc
44921d:	8b 45 dc             	mov    -0x24(%ebp),%eax
449220:	89 45 f4             	mov    %eax,-0xc(%ebp)
449223:	8b 45 e0             	mov    -0x20(%ebp),%eax
449226:	89 45 f8             	mov    %eax,-0x8(%ebp)
449229:	80 7d fd 00          	cmpb   $0x0,-0x3(%ebp)
44922d:	74 25                	je     0x449254
44922f:	8b 45 f4             	mov    -0xc(%ebp),%eax
449232:	8d 4d dc             	lea    -0x24(%ebp),%ecx
449235:	89 45 dc             	mov    %eax,-0x24(%ebp)
449238:	8b 45 f8             	mov    -0x8(%ebp),%eax
44923b:	68 ec bb 49 00       	push   $0x49bbec
449240:	89 45 e0             	mov    %eax,-0x20(%ebp)
449243:	e8 b4 e1 ff ff       	call   0x4473fc
449248:	8b 45 dc             	mov    -0x24(%ebp),%eax
44924b:	89 45 f4             	mov    %eax,-0xc(%ebp)
44924e:	8b 45 e0             	mov    -0x20(%ebp),%eax
449251:	89 45 f8             	mov    %eax,-0x8(%ebp)
449254:	bb 00 01 00 00       	mov    $0x100,%ebx
449259:	85 f6                	test   %esi,%esi
44925b:	0f 85 83 00 00 00    	jne    0x4492e4
449261:	8b 75 0c             	mov    0xc(%ebp),%esi
449264:	8b 0e                	mov    (%esi),%ecx
449266:	85 c9                	test   %ecx,%ecx
449268:	74 50                	je     0x4492ba
44926a:	8b 46 04             	mov    0x4(%esi),%eax
44926d:	85 c3                	test   %eax,%ebx
44926f:	75 3a                	jne    0x4492ab
449271:	8b 7d 14             	mov    0x14(%ebp),%edi
449274:	83 3f 00             	cmpl   $0x0,(%edi)
449277:	74 32                	je     0x4492ab
449279:	6a 20                	push   $0x20
44927b:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
44927e:	e8 42 db ff ff       	call   0x446dc5
449283:	57                   	push   %edi
449284:	8d 4d cc             	lea    -0x34(%ebp),%ecx
449287:	51                   	push   %ecx
449288:	8b c8                	mov    %eax,%ecx
44928a:	e8 cd df ff ff       	call   0x44725c
44928f:	6a 20                	push   $0x20
449291:	8d 45 bc             	lea    -0x44(%ebp),%eax
449294:	50                   	push   %eax
449295:	8d 4d cc             	lea    -0x34(%ebp),%ecx
449298:	e8 e1 df ff ff       	call   0x44727e
44929d:	56                   	push   %esi
44929e:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
4492a1:	51                   	push   %ecx
4492a2:	8b c8                	mov    %eax,%ecx
4492a4:	e8 b3 df ff ff       	call   0x44725c
4492a9:	eb 30                	jmp    0x4492db
4492ab:	a9 00 08 00 00       	test   $0x800,%eax
4492b0:	74 10                	je     0x4492c2
4492b2:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4492b5:	89 45 f8             	mov    %eax,-0x8(%ebp)
4492b8:	eb 2a                	jmp    0x4492e4
4492ba:	8b 75 14             	mov    0x14(%ebp),%esi
4492bd:	83 3e 00             	cmpl   $0x0,(%esi)
4492c0:	74 22                	je     0x4492e4
4492c2:	6a 20                	push   $0x20
4492c4:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4492c7:	e8 f9 da ff ff       	call   0x446dc5
4492cc:	56                   	push   %esi
4492cd:	8d 4d cc             	lea    -0x34(%ebp),%ecx
4492d0:	51                   	push   %ecx
4492d1:	8b c8                	mov    %eax,%ecx
4492d3:	e8 84 df ff ff       	call   0x44725c
4492d8:	8d 45 cc             	lea    -0x34(%ebp),%eax
4492db:	50                   	push   %eax
4492dc:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4492df:	e8 22 e0 ff ff       	call   0x447306
4492e4:	8b 55 f8             	mov    -0x8(%ebp),%edx
4492e7:	0b d3                	or     %ebx,%edx
4492e9:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
4492ed:	74 06                	je     0x4492f5
4492ef:	81 ca 00 20 00 00    	or     $0x2000,%edx
4492f5:	8b 45 08             	mov    0x8(%ebp),%eax
4492f8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4492fb:	89 08                	mov    %ecx,(%eax)
4492fd:	89 50 04             	mov    %edx,0x4(%eax)
449300:	e9 85 00 00 00       	jmp    0x44938a
449305:	8b 45 08             	mov    0x8(%ebp),%eax
449308:	89 08                	mov    %ecx,(%eax)
44930a:	8b 4d d0             	mov    -0x30(%ebp),%ecx
44930d:	e9 da fa ff ff       	jmp    0x448dec
449312:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
449316:	75 65                	jne    0x44937d
449318:	8b 75 0c             	mov    0xc(%ebp),%esi
44931b:	83 3e 00             	cmpl   $0x0,(%esi)
44931e:	74 52                	je     0x449372
449320:	f7 46 04 00 01 00 00 	testl  $0x100,0x4(%esi)
449327:	75 39                	jne    0x449362
449329:	8b 7d 14             	mov    0x14(%ebp),%edi
44932c:	83 3f 00             	cmpl   $0x0,(%edi)
44932f:	74 31                	je     0x449362
449331:	6a 01                	push   $0x1
449333:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
449336:	e8 2a db ff ff       	call   0x446e65
44933b:	57                   	push   %edi
44933c:	8d 4d cc             	lea    -0x34(%ebp),%ecx
44933f:	51                   	push   %ecx
449340:	8b c8                	mov    %eax,%ecx
449342:	e8 15 df ff ff       	call   0x44725c
449347:	6a 20                	push   $0x20
449349:	8d 45 bc             	lea    -0x44(%ebp),%eax
44934c:	50                   	push   %eax
44934d:	8d 4d cc             	lea    -0x34(%ebp),%ecx
449350:	e8 29 df ff ff       	call   0x44727e
449355:	56                   	push   %esi
449356:	ff 75 08             	push   0x8(%ebp)
449359:	8b c8                	mov    %eax,%ecx
44935b:	e8 fc de ff ff       	call   0x44725c
449360:	eb 25                	jmp    0x449387
449362:	56                   	push   %esi
449363:	6a 01                	push   $0x1
449365:	ff 75 08             	push   0x8(%ebp)
449368:	e8 cd de ff ff       	call   0x44723a
44936d:	83 c4 0c             	add    $0xc,%esp
449370:	eb 15                	jmp    0x449387
449372:	8b 45 14             	mov    0x14(%ebp),%eax
449375:	83 38 00             	cmpl   $0x0,(%eax)
449378:	74 03                	je     0x44937d
44937a:	50                   	push   %eax
44937b:	eb e6                	jmp    0x449363
44937d:	8b 4d 08             	mov    0x8(%ebp),%ecx
449380:	6a 01                	push   $0x1
449382:	e8 de da ff ff       	call   0x446e65
449387:	8b 45 08             	mov    0x8(%ebp),%eax
44938a:	5f                   	pop    %edi
44938b:	5e                   	pop    %esi
44938c:	5b                   	pop    %ebx
44938d:	c9                   	leave
44938e:	c3                   	ret
44938f:	55                   	push   %ebp
449390:	8b ec                	mov    %esp,%ebp
449392:	83 ec 10             	sub    $0x10,%esp