4060c4:	8b 5d f8             	mov    -0x8(%ebp),%ebx
4060c7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4060ca:	ff 53 04             	call   *0x4(%ebx)
4060cd:	33 c0                	xor    %eax,%eax
4060cf:	5a                   	pop    %edx
4060d0:	59                   	pop    %ecx
4060d1:	59                   	pop    %ecx
4060d2:	64 89 10             	mov    %edx,%fs:(%eax)
4060d5:	eb 0a                	jmp    0x4060e1
4060d7:	e9 20 dd ff ff       	jmp    0x403dfc
4060dc:	e8 2b e1 ff ff       	call   0x40420c
4060e1:	8b 45 f8             	mov    -0x8(%ebp),%eax
4060e4:	8b 00                	mov    (%eax),%eax
4060e6:	89 45 f8             	mov    %eax,-0x8(%ebp)
4060e9:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4060ed:	75 c7                	jne    0x4060b6
4060ef:	5f                   	pop    %edi
4060f0:	5e                   	pop    %esi
4060f1:	5b                   	pop    %ebx
4060f2:	59                   	pop    %ecx
4060f3:	59                   	pop    %ecx
4060f4:	5d                   	pop    %ebp
4060f5:	c3                   	ret
4060f6:	8b c0                	mov    %eax,%eax
4060f8:	8b 15 30 b0 49 00    	mov    0x49b030,%edx
4060fe:	89 10                	mov    %edx,(%eax)
406100:	a3 30 b0 49 00       	mov    %eax,0x49b030
406105:	c3                   	ret
406106:	8b c0                	mov    %eax,%eax
406108:	55                   	push   %ebp
406109:	8b ec                	mov    %esp,%ebp
40610b:	51                   	push   %ecx
40610c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40610f:	33 d2                	xor    %edx,%edx
406111:	55                   	push   %ebp
406112:	68 6c 61 40 00       	push   $0x40616c
406117:	64 ff 32             	push   %fs:(%edx)
40611a:	64 89 22             	mov    %esp,%fs:(%edx)
40611d:	8b 45 fc             	mov    -0x4(%ebp),%eax
406120:	8b 40 04             	mov    0x4(%eax),%eax
406123:	e8 74 ff ff ff       	call   0x40609c
406128:	33 c0                	xor    %eax,%eax
40612a:	5a                   	pop    %edx
40612b:	59                   	pop    %ecx
40612c:	59                   	pop    %ecx
40612d:	64 89 10             	mov    %edx,%fs:(%eax)
406130:	68 73 61 40 00       	push   $0x406173
406135:	8b 45 fc             	mov    -0x4(%ebp),%eax
406138:	3b 05 30 b0 49 00    	cmp    0x49b030,%eax
40613e:	75 0c                	jne    0x40614c
406140:	8b 45 fc             	mov    -0x4(%ebp),%eax
406143:	8b 00                	mov    (%eax),%eax
406145:	a3 30 b0 49 00       	mov    %eax,0x49b030
40614a:	eb 1f                	jmp    0x40616b
40614c:	a1 30 b0 49 00       	mov    0x49b030,%eax
406151:	85 c0                	test   %eax,%eax
406153:	74 16                	je     0x40616b
406155:	8b 10                	mov    (%eax),%edx
406157:	3b 55 fc             	cmp    -0x4(%ebp),%edx
40615a:	75 09                	jne    0x406165
40615c:	8b 55 fc             	mov    -0x4(%ebp),%edx
40615f:	8b 12                	mov    (%edx),%edx
406161:	89 10                	mov    %edx,(%eax)
406163:	eb 06                	jmp    0x40616b
406165:	8b 00                	mov    (%eax),%eax
406167:	85 c0                	test   %eax,%eax
406169:	75 ea                	jne    0x406155
40616b:	c3                   	ret
40616c:	e9 3f df ff ff       	jmp    0x4040b0
406171:	eb c2                	jmp    0x406135
406173:	59                   	pop    %ecx
406174:	5d                   	pop    %ebp
406175:	c3                   	ret
406176:	8b c0                	mov    %eax,%eax
406178:	8b 10                	mov    (%eax),%edx
40617a:	85 d2                	test   %edx,%edx
40617c:	74 0e                	je     0x40618c
40617e:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
406184:	50                   	push   %eax
406185:	52                   	push   %edx
406186:	8b 02                	mov    (%edx),%eax
406188:	ff 50 08             	call   *0x8(%eax)
40618b:	58                   	pop    %eax
40618c:	c3                   	ret
40618d:	8d 40 00             	lea    0x0(%eax),%eax
406190:	85 d2                	test   %edx,%edx
406192:	74 19                	je     0x4061ad
406194:	52                   	push   %edx
406195:	50                   	push   %eax
406196:	8b 02                	mov    (%edx),%eax
406198:	52                   	push   %edx
406199:	ff 50 04             	call   *0x4(%eax)
40619c:	58                   	pop    %eax
40619d:	8b 08                	mov    (%eax),%ecx
40619f:	8f 00                	pop    (%eax)
4061a1:	85 c9                	test   %ecx,%ecx
4061a3:	75 01                	jne    0x4061a6
4061a5:	c3                   	ret
4061a6:	8b 01                	mov    (%ecx),%eax
4061a8:	51                   	push   %ecx
4061a9:	ff 50 08             	call   *0x8(%eax)
4061ac:	c3                   	ret
4061ad:	8b 08                	mov    (%eax),%ecx
4061af:	85 c9                	test   %ecx,%ecx
4061b1:	89 10                	mov    %edx,(%eax)
4061b3:	74 06                	je     0x4061bb
4061b5:	8b 01                	mov    (%ecx),%eax
4061b7:	51                   	push   %ecx
4061b8:	ff 50 08             	call   *0x8(%eax)
4061bb:	c3                   	ret
4061bc:	85 d2                	test   %edx,%edx
4061be:	0f 84 b4 ff ff ff    	je     0x406178
4061c4:	57                   	push   %edi
4061c5:	89 c7                	mov    %eax,%edi
4061c7:	6a 00                	push   $0x0
4061c9:	54                   	push   %esp
4061ca:	51                   	push   %ecx
4061cb:	52                   	push   %edx
4061cc:	8b 02                	mov    (%edx),%eax
4061ce:	ff 10                	call   *(%eax)
4061d0:	85 c0                	test   %eax,%eax
4061d2:	74 07                	je     0x4061db
4061d4:	b0 17                	mov    $0x17,%al
4061d6:	e9 71 cc ff ff       	jmp    0x402e4c
4061db:	8b 07                	mov    (%edi),%eax
4061dd:	85 c0                	test   %eax,%eax
4061df:	74 06                	je     0x4061e7
4061e1:	50                   	push   %eax
4061e2:	8b 00                	mov    (%eax),%eax
4061e4:	ff 50 08             	call   *0x8(%eax)
4061e7:	58                   	pop    %eax
4061e8:	89 07                	mov    %eax,(%edi)
4061ea:	5f                   	pop    %edi
4061eb:	c3                   	ret
4061ec:	85 c0                	test   %eax,%eax
4061ee:	74 06                	je     0x4061f6
4061f0:	50                   	push   %eax
4061f1:	8b 00                	mov    (%eax),%eax
4061f3:	ff 50 04             	call   *0x4(%eax)
4061f6:	c3                   	ret
4061f7:	90                   	nop
4061f8:	83 c0 04             	add    $0x4,%eax
4061fb:	50                   	push   %eax
4061fc:	e8 6b b1 ff ff       	call   0x40136c
406201:	c3                   	ret
406202:	8b c0                	mov    %eax,%eax
406204:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
406208:	74 07                	je     0x406211
40620a:	b0 02                	mov    $0x2,%al
40620c:	e8 3b cc ff ff       	call   0x402e4c
406211:	c3                   	ret
406212:	8b c0                	mov    %eax,%eax
406214:	e8 9b d6 ff ff       	call   0x4038b4
406219:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
406220:	c3                   	ret
406221:	8d 40 00             	lea    0x0(%eax),%eax
406224:	55                   	push   %ebp
406225:	8b ec                	mov    %esp,%ebp
406227:	53                   	push   %ebx
406228:	8b 5d 08             	mov    0x8(%ebp),%ebx
40622b:	8b 4d 10             	mov    0x10(%ebp),%ecx
40622e:	8b 55 0c             	mov    0xc(%ebp),%edx
406231:	8b c3                	mov    %ebx,%eax
406233:	e8 98 d7 ff ff       	call   0x4039d0
406238:	84 c0                	test   %al,%al
40623a:	74 04                	je     0x406240
40623c:	33 c0                	xor    %eax,%eax
40623e:	eb 05                	jmp    0x406245
406240:	b8 02 40 00 80       	mov    $0x80004002,%eax
406245:	5b                   	pop    %ebx
406246:	5d                   	pop    %ebp
406247:	c2 0c 00             	ret    $0xc
40624a:	8b c0                	mov    %eax,%eax
40624c:	55                   	push   %ebp
40624d:	8b ec                	mov    %esp,%ebp
40624f:	8b 45 08             	mov    0x8(%ebp),%eax
406252:	83 c0 04             	add    $0x4,%eax
406255:	50                   	push   %eax
406256:	e8 09 b1 ff ff       	call   0x401364
40625b:	5d                   	pop    %ebp
40625c:	c2 04 00             	ret    $0x4
40625f:	90                   	nop
406260:	55                   	push   %ebp
406261:	8b ec                	mov    %esp,%ebp
406263:	53                   	push   %ebx
406264:	56                   	push   %esi
406265:	8b 5d 08             	mov    0x8(%ebp),%ebx
406268:	8d 43 04             	lea    0x4(%ebx),%eax
40626b:	50                   	push   %eax
40626c:	e8 fb b0 ff ff       	call   0x40136c
406271:	8b f0                	mov    %eax,%esi
406273:	85 f6                	test   %esi,%esi
406275:	75 09                	jne    0x406280
406277:	b2 01                	mov    $0x1,%dl
406279:	8b c3                	mov    %ebx,%eax
40627b:	8b 08                	mov    (%eax),%ecx
40627d:	ff 51 fc             	call   *-0x4(%ecx)
406280:	8b c6                	mov    %esi,%eax
406282:	5e                   	pop    %esi
406283:	5b                   	pop    %ebx
406284:	5d                   	pop    %ebp
406285:	c2 04 00             	ret    $0x4
406288:	85 c0                	test   %eax,%eax
40628a:	79 16                	jns    0x4062a2
40628c:	8b 0d 20 80 4a 00    	mov    0x4a8020,%ecx
406292:	85 c9                	test   %ecx,%ecx
406294:	74 05                	je     0x40629b
406296:	8b 14 24             	mov    (%esp),%edx
406299:	ff d1                	call   *%ecx
40629b:	b0 18                	mov    $0x18,%al
40629d:	e9 aa cb ff ff       	jmp    0x402e4c
4062a2:	c3                   	ret
4062a3:	90                   	nop
4062a4:	55                   	push   %ebp
4062a5:	8b ec                	mov    %esp,%ebp
4062a7:	83 c4 f8             	add    $0xfffffff8,%esp
4062aa:	53                   	push   %ebx
4062ab:	56                   	push   %esi
4062ac:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4062af:	89 55 fc             	mov    %edx,-0x4(%ebp)
4062b2:	33 d2                	xor    %edx,%edx
4062b4:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4062b8:	0f 84 b8 00 00 00    	je     0x406376
4062be:	33 f6                	xor    %esi,%esi
4062c0:	33 c9                	xor    %ecx,%ecx
4062c2:	85 c0                	test   %eax,%eax
4062c4:	0f 84 87 00 00 00    	je     0x406351
4062ca:	eb 6c                	jmp    0x406338
4062cc:	8b 55 f8             	mov    -0x8(%ebp),%edx
4062cf:	0f b7 14 4a          	movzwl (%edx,%ecx,2),%edx
4062d3:	41                   	inc    %ecx
4062d4:	83 fa 7f             	cmp    $0x7f,%edx
4062d7:	77 06                	ja     0x4062df
4062d9:	88 14 30             	mov    %dl,(%eax,%esi,1)
4062dc:	46                   	inc    %esi
4062dd:	eb 59                	jmp    0x406338
4062df:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
4062e5:	76 31                	jbe    0x406318
4062e7:	8d 5e 03             	lea    0x3(%esi),%ebx
4062ea:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
4062ed:	77 53                	ja     0x406342
4062ef:	8b da                	mov    %edx,%ebx
4062f1:	c1 eb 0c             	shr    $0xc,%ebx
4062f4:	80 cb e0             	or     $0xe0,%bl
4062f7:	88 1c 30             	mov    %bl,(%eax,%esi,1)
4062fa:	8b da                	mov    %edx,%ebx
4062fc:	c1 eb 06             	shr    $0x6,%ebx
4062ff:	80 e3 3f             	and    $0x3f,%bl
406302:	80 cb 80             	or     $0x80,%bl
406305:	88 5c 30 01          	mov    %bl,0x1(%eax,%esi,1)
406309:	80 e2 3f             	and    $0x3f,%dl
40630c:	80 ca 80             	or     $0x80,%dl
40630f:	88 54 30 02          	mov    %dl,0x2(%eax,%esi,1)
406313:	83 c6 03             	add    $0x3,%esi
406316:	eb 20                	jmp    0x406338
406318:	8d 5e 02             	lea    0x2(%esi),%ebx
40631b:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
40631e:	77 22                	ja     0x406342
406320:	8b da                	mov    %edx,%ebx
406322:	c1 eb 06             	shr    $0x6,%ebx
406325:	80 cb c0             	or     $0xc0,%bl
406328:	88 1c 30             	mov    %bl,(%eax,%esi,1)
40632b:	80 e2 3f             	and    $0x3f,%dl
40632e:	80 ca 80             	or     $0x80,%dl
406331:	88 54 30 01          	mov    %dl,0x1(%eax,%esi,1)
406335:	83 c6 02             	add    $0x2,%esi
406338:	3b 4d 08             	cmp    0x8(%ebp),%ecx
40633b:	73 05                	jae    0x406342
40633d:	3b 75 fc             	cmp    -0x4(%ebp),%esi
406340:	72 8a                	jb     0x4062cc
406342:	3b 75 fc             	cmp    -0x4(%ebp),%esi
406345:	72 04                	jb     0x40634b
406347:	8b 75 fc             	mov    -0x4(%ebp),%esi
40634a:	4e                   	dec    %esi
40634b:	c6 04 30 00          	movb   $0x0,(%eax,%esi,1)
40634f:	eb 22                	jmp    0x406373
406351:	3b 4d 08             	cmp    0x8(%ebp),%ecx
406354:	73 1d                	jae    0x406373
406356:	8b 45 f8             	mov    -0x8(%ebp),%eax
406359:	0f b7 14 48          	movzwl (%eax,%ecx,2),%edx
40635d:	41                   	inc    %ecx
40635e:	83 fa 7f             	cmp    $0x7f,%edx
406361:	76 0a                	jbe    0x40636d
406363:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
406369:	76 01                	jbe    0x40636c
40636b:	46                   	inc    %esi
40636c:	46                   	inc    %esi
40636d:	46                   	inc    %esi
40636e:	3b 4d 08             	cmp    0x8(%ebp),%ecx
406371:	72 e3                	jb     0x406356
406373:	8d 56 01             	lea    0x1(%esi),%edx
406376:	8b c2                	mov    %edx,%eax
406378:	5e                   	pop    %esi
406379:	5b                   	pop    %ebx
40637a:	59                   	pop    %ecx
40637b:	59                   	pop    %ecx
40637c:	5d                   	pop    %ebp
40637d:	c2 04 00             	ret    $0x4
406380:	55                   	push   %ebp
406381:	8b ec                	mov    %esp,%ebp
406383:	83 c4 f0             	add    $0xfffffff0,%esp
406386:	53                   	push   %ebx
406387:	56                   	push   %esi
406388:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40638b:	89 55 f8             	mov    %edx,-0x8(%ebp)
40638e:	89 45 fc             	mov    %eax,-0x4(%ebp)
406391:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
406395:	75 0a                	jne    0x4063a1
406397:	33 c0                	xor    %eax,%eax
406399:	89 45 f0             	mov    %eax,-0x10(%ebp)
40639c:	e9 04 01 00 00       	jmp    0x4064a5
4063a1:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)
4063a8:	33 c0                	xor    %eax,%eax
4063aa:	33 f6                	xor    %esi,%esi
4063ac:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4063b0:	0f 84 a1 00 00 00    	je     0x406457
4063b6:	eb 7d                	jmp    0x406435
4063b8:	8b 55 f4             	mov    -0xc(%ebp),%edx
4063bb:	0f b6 0c 32          	movzbl (%edx,%esi,1),%ecx
4063bf:	46                   	inc    %esi
4063c0:	f6 c1 80             	test   $0x80,%cl
4063c3:	74 68                	je     0x40642d
4063c5:	3b 75 08             	cmp    0x8(%ebp),%esi
4063c8:	0f 83 d7 00 00 00    	jae    0x4064a5
4063ce:	83 e1 3f             	and    $0x3f,%ecx
4063d1:	f6 c1 20             	test   $0x20,%cl
4063d4:	74 2c                	je     0x406402
4063d6:	8b 55 f4             	mov    -0xc(%ebp),%edx
4063d9:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
4063dd:	46                   	inc    %esi
4063de:	8b da                	mov    %edx,%ebx
4063e0:	80 e3 c0             	and    $0xc0,%bl
4063e3:	80 fb 80             	cmp    $0x80,%bl
4063e6:	0f 85 b9 00 00 00    	jne    0x4064a5
4063ec:	3b 75 08             	cmp    0x8(%ebp),%esi
4063ef:	0f 83 b0 00 00 00    	jae    0x4064a5
4063f5:	80 e2 3f             	and    $0x3f,%dl
4063f8:	0f b6 d2             	movzbl %dl,%edx
4063fb:	c1 e1 06             	shl    $0x6,%ecx
4063fe:	0b d1                	or     %ecx,%edx
406400:	8b ca                	mov    %edx,%ecx
406402:	8b 55 f4             	mov    -0xc(%ebp),%edx
406405:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
406409:	46                   	inc    %esi
40640a:	8b da                	mov    %edx,%ebx
40640c:	80 e3 c0             	and    $0xc0,%bl
40640f:	80 fb 80             	cmp    $0x80,%bl
406412:	0f 85 8d 00 00 00    	jne    0x4064a5
406418:	80 e2 3f             	and    $0x3f,%dl
40641b:	0f b6 d2             	movzbl %dl,%edx