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
40641e:	c1 e1 06             	shl    $0x6,%ecx
406421:	66 0b d1             	or     %cx,%dx
406424:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406427:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
40642b:	eb 07                	jmp    0x406434
40642d:	8b 55 fc             	mov    -0x4(%ebp),%edx
406430:	66 89 0c 42          	mov    %cx,(%edx,%eax,2)
406434:	40                   	inc    %eax
406435:	3b 75 08             	cmp    0x8(%ebp),%esi
406438:	73 09                	jae    0x406443
40643a:	3b 45 f8             	cmp    -0x8(%ebp),%eax
40643d:	0f 82 75 ff ff ff    	jb     0x4063b8
406443:	3b 45 f8             	cmp    -0x8(%ebp),%eax
406446:	72 04                	jb     0x40644c
406448:	8b 45 f8             	mov    -0x8(%ebp),%eax
40644b:	48                   	dec    %eax
40644c:	8b 55 fc             	mov    -0x4(%ebp),%edx
40644f:	66 c7 04 42 00 00    	movw   $0x0,(%edx,%eax,2)
406455:	eb 4a                	jmp    0x4064a1
406457:	3b 75 08             	cmp    0x8(%ebp),%esi
40645a:	73 45                	jae    0x4064a1
40645c:	8b 55 f4             	mov    -0xc(%ebp),%edx
40645f:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
406463:	46                   	inc    %esi
406464:	f6 c2 80             	test   $0x80,%dl
406467:	74 32                	je     0x40649b
406469:	3b 75 08             	cmp    0x8(%ebp),%esi
40646c:	73 37                	jae    0x4064a5
40646e:	80 e2 3f             	and    $0x3f,%dl
406471:	f6 c2 20             	test   $0x20,%dl
406474:	74 15                	je     0x40648b
406476:	8b 55 f4             	mov    -0xc(%ebp),%edx
406479:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
40647d:	46                   	inc    %esi
40647e:	80 e2 c0             	and    $0xc0,%dl
406481:	80 fa 80             	cmp    $0x80,%dl
406484:	75 1f                	jne    0x4064a5
406486:	3b 75 08             	cmp    0x8(%ebp),%esi
406489:	73 1a                	jae    0x4064a5
40648b:	8b 55 f4             	mov    -0xc(%ebp),%edx
40648e:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
406492:	46                   	inc    %esi
406493:	80 e2 c0             	and    $0xc0,%dl
406496:	80 fa 80             	cmp    $0x80,%dl
406499:	75 0a                	jne    0x4064a5
40649b:	40                   	inc    %eax
40649c:	3b 75 08             	cmp    0x8(%ebp),%esi
40649f:	72 bb                	jb     0x40645c
4064a1:	40                   	inc    %eax
4064a2:	89 45 f0             	mov    %eax,-0x10(%ebp)
4064a5:	8b 45 f0             	mov    -0x10(%ebp),%eax
4064a8:	5e                   	pop    %esi
4064a9:	5b                   	pop    %ebx
4064aa:	8b e5                	mov    %ebp,%esp
4064ac:	5d                   	pop    %ebp
4064ad:	c2 04 00             	ret    $0x4
4064b0:	55                   	push   %ebp
4064b1:	8b ec                	mov    %esp,%ebp
4064b3:	83 c4 f8             	add    $0xfffffff8,%esp
4064b6:	53                   	push   %ebx
4064b7:	56                   	push   %esi
4064b8:	33 c9                	xor    %ecx,%ecx
4064ba:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4064bd:	89 55 f8             	mov    %edx,-0x8(%ebp)
4064c0:	8b f0                	mov    %eax,%esi
4064c2:	33 c0                	xor    %eax,%eax
4064c4:	55                   	push   %ebp
4064c5:	68 5c 65 40 00       	push   $0x40655c
4064ca:	64 ff 30             	push   %fs:(%eax)
4064cd:	64 89 20             	mov    %esp,%fs:(%eax)
4064d0:	8b 45 f8             	mov    -0x8(%ebp),%eax
4064d3:	e8 70 e2 ff ff       	call   0x404748
4064d8:	8b c6                	mov    %esi,%eax
4064da:	33 d2                	xor    %edx,%edx
4064dc:	e8 ef eb ff ff       	call   0x4050d0
4064e1:	74 63                	je     0x406546
4064e3:	8b c6                	mov    %esi,%eax
4064e5:	e8 da eb ff ff       	call   0x4050c4
4064ea:	8d 14 40             	lea    (%eax,%eax,2),%edx
4064ed:	8d 45 fc             	lea    -0x4(%ebp),%eax
4064f0:	e8 9f e9 ff ff       	call   0x404e94
4064f5:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4064f8:	85 db                	test   %ebx,%ebx
4064fa:	74 05                	je     0x406501
4064fc:	83 eb 04             	sub    $0x4,%ebx
4064ff:	8b 1b                	mov    (%ebx),%ebx
406501:	8b c6                	mov    %esi,%eax
406503:	e8 bc eb ff ff       	call   0x4050c4
406508:	50                   	push   %eax
406509:	8b c6                	mov    %esi,%eax
40650b:	e8 a4 eb ff ff       	call   0x4050b4
406510:	50                   	push   %eax
406511:	8b 45 fc             	mov    -0x4(%ebp),%eax
406514:	e8 f3 e6 ff ff       	call   0x404c0c
406519:	8d 53 01             	lea    0x1(%ebx),%edx
40651c:	59                   	pop    %ecx
40651d:	e8 82 fd ff ff       	call   0x4062a4
406522:	85 c0                	test   %eax,%eax
406524:	7e 0d                	jle    0x406533
406526:	8b d0                	mov    %eax,%edx
406528:	4a                   	dec    %edx
406529:	8d 45 fc             	lea    -0x4(%ebp),%eax
40652c:	e8 63 e9 ff ff       	call   0x404e94
406531:	eb 08                	jmp    0x40653b
406533:	8d 45 fc             	lea    -0x4(%ebp),%eax
406536:	e8 0d e2 ff ff       	call   0x404748
40653b:	8b 45 f8             	mov    -0x8(%ebp),%eax
40653e:	8b 55 fc             	mov    -0x4(%ebp),%edx
406541:	e8 56 e2 ff ff       	call   0x40479c
406546:	33 c0                	xor    %eax,%eax
406548:	5a                   	pop    %edx
406549:	59                   	pop    %ecx
40654a:	59                   	pop    %ecx
40654b:	64 89 10             	mov    %edx,%fs:(%eax)
40654e:	68 63 65 40 00       	push   $0x406563
406553:	8d 45 fc             	lea    -0x4(%ebp),%eax
406556:	e8 ed e1 ff ff       	call   0x404748
40655b:	c3                   	ret
40655c:	e9 4f db ff ff       	jmp    0x4040b0
406561:	eb f0                	jmp    0x406553
406563:	5e                   	pop    %esi
406564:	5b                   	pop    %ebx
406565:	59                   	pop    %ecx
406566:	59                   	pop    %ecx
406567:	5d                   	pop    %ebp
406568:	c3                   	ret
406569:	8d 40 00             	lea    0x0(%eax),%eax
40656c:	55                   	push   %ebp
40656d:	8b ec                	mov    %esp,%ebp
40656f:	83 c4 f4             	add    $0xfffffff4,%esp
406572:	53                   	push   %ebx
406573:	56                   	push   %esi
406574:	33 c9                	xor    %ecx,%ecx
406576:	89 4d fc             	mov    %ecx,-0x4(%ebp)
406579:	89 55 f8             	mov    %edx,-0x8(%ebp)
40657c:	8b f0                	mov    %eax,%esi
40657e:	33 c0                	xor    %eax,%eax
406580:	55                   	push   %ebp
406581:	68 17 66 40 00       	push   $0x406617
406586:	64 ff 30             	push   %fs:(%eax)
406589:	64 89 20             	mov    %esp,%fs:(%eax)
40658c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40658f:	e8 c0 e9 ff ff       	call   0x404f54
406594:	85 f6                	test   %esi,%esi
406596:	74 69                	je     0x406601
406598:	89 75 f4             	mov    %esi,-0xc(%ebp)
40659b:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40659e:	8b c3                	mov    %ebx,%eax
4065a0:	85 c0                	test   %eax,%eax
4065a2:	74 05                	je     0x4065a9
4065a4:	83 e8 04             	sub    $0x4,%eax
4065a7:	8b 00                	mov    (%eax),%eax
4065a9:	8d 55 fc             	lea    -0x4(%ebp),%edx
4065ac:	92                   	xchg   %eax,%edx
4065ad:	e8 ee eb ff ff       	call   0x4051a0
4065b2:	85 db                	test   %ebx,%ebx
4065b4:	74 05                	je     0x4065bb
4065b6:	83 eb 04             	sub    $0x4,%ebx
4065b9:	8b 1b                	mov    (%ebx),%ebx
4065bb:	53                   	push   %ebx
4065bc:	8b 45 fc             	mov    -0x4(%ebp),%eax
4065bf:	e8 00 eb ff ff       	call   0x4050c4
4065c4:	40                   	inc    %eax
4065c5:	50                   	push   %eax
4065c6:	8b c6                	mov    %esi,%eax
4065c8:	e8 3f e6 ff ff       	call   0x404c0c
4065cd:	50                   	push   %eax
4065ce:	8b 45 fc             	mov    -0x4(%ebp),%eax
4065d1:	e8 de ea ff ff       	call   0x4050b4
4065d6:	59                   	pop    %ecx
4065d7:	5a                   	pop    %edx
4065d8:	e8 a3 fd ff ff       	call   0x406380
4065dd:	85 c0                	test   %eax,%eax
4065df:	7e 0d                	jle    0x4065ee
4065e1:	8b d0                	mov    %eax,%edx