4382ad:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4382b0:	83 f9 ff             	cmp    $0xffffffff,%ecx
4382b3:	73 42                	jae    0x4382f7
4382b5:	8b f8                	mov    %eax,%edi
4382b7:	c1 e7 02             	shl    $0x2,%edi
4382ba:	8d 04 0f             	lea    (%edi,%ecx,1),%eax
4382bd:	3b c1                	cmp    %ecx,%eax
4382bf:	72 36                	jb     0x4382f7
4382c1:	50                   	push   %eax
4382c2:	e8 74 e1 ff ff       	call   0x43643b
4382c7:	8b f0                	mov    %eax,%esi
4382c9:	59                   	pop    %ecx
4382ca:	3b f3                	cmp    %ebx,%esi
4382cc:	74 29                	je     0x4382f7
4382ce:	8b 55 fc             	mov    -0x4(%ebp),%edx
4382d1:	8d 45 f8             	lea    -0x8(%ebp),%eax
4382d4:	50                   	push   %eax
4382d5:	03 fe                	add    %esi,%edi
4382d7:	57                   	push   %edi
4382d8:	56                   	push   %esi
4382d9:	8d 7d f4             	lea    -0xc(%ebp),%edi
4382dc:	e8 c9 fd ff ff       	call   0x4380aa
4382e1:	8b 45 f8             	mov    -0x8(%ebp),%eax
4382e4:	83 c4 0c             	add    $0xc,%esp
4382e7:	48                   	dec    %eax
4382e8:	a3 94 07 47 00       	mov    %eax,0x470794
4382ed:	89 35 98 07 47 00    	mov    %esi,0x470798
4382f3:	33 c0                	xor    %eax,%eax
4382f5:	eb 03                	jmp    0x4382fa
4382f7:	83 c8 ff             	or     $0xffffffff,%eax
4382fa:	5f                   	pop    %edi
4382fb:	5e                   	pop    %esi
4382fc:	5b                   	pop    %ebx
4382fd:	c9                   	leave
4382fe:	c3                   	ret
4382ff:	8b ff                	mov    %edi,%edi
438301:	55                   	push   %ebp
438302:	8b ec                	mov    %esp,%ebp
438304:	83 ec 0c             	sub    $0xc,%esp
438307:	53                   	push   %ebx
438308:	56                   	push   %esi
438309:	ff 15 6c 35 47 00    	call   *0x47356c
43830f:	8b d8                	mov    %eax,%ebx
438311:	33 f6                	xor    %esi,%esi
438313:	3b de                	cmp    %esi,%ebx
438315:	75 04                	jne    0x43831b
438317:	33 c0                	xor    %eax,%eax
438319:	eb 77                	jmp    0x438392
43831b:	66 39 33             	cmp    %si,(%ebx)
43831e:	74 10                	je     0x438330
438320:	83 c0 02             	add    $0x2,%eax
438323:	66 39 30             	cmp    %si,(%eax)
438326:	75 f8                	jne    0x438320
438328:	83 c0 02             	add    $0x2,%eax
43832b:	66 39 30             	cmp    %si,(%eax)
43832e:	75 f0                	jne    0x438320
438330:	57                   	push   %edi
438331:	8b 3d 68 35 47 00    	mov    0x473568,%edi
438337:	56                   	push   %esi
438338:	56                   	push   %esi
438339:	56                   	push   %esi
43833a:	2b c3                	sub    %ebx,%eax
43833c:	56                   	push   %esi
43833d:	d1 f8                	sar    $1,%eax
43833f:	40                   	inc    %eax
438340:	50                   	push   %eax
438341:	53                   	push   %ebx
438342:	56                   	push   %esi
438343:	56                   	push   %esi
438344:	89 45 f4             	mov    %eax,-0xc(%ebp)
438347:	ff d7                	call   *%edi
438349:	89 45 f8             	mov    %eax,-0x8(%ebp)
43834c:	3b c6                	cmp    %esi,%eax
43834e:	74 38                	je     0x438388
438350:	50                   	push   %eax
438351:	e8 e5 e0 ff ff       	call   0x43643b
438356:	59                   	pop    %ecx
438357:	89 45 fc             	mov    %eax,-0x4(%ebp)
43835a:	3b c6                	cmp    %esi,%eax
43835c:	74 2a                	je     0x438388
43835e:	56                   	push   %esi
43835f:	56                   	push   %esi
438360:	ff 75 f8             	push   -0x8(%ebp)
438363:	50                   	push   %eax
438364:	ff 75 f4             	push   -0xc(%ebp)
438367:	53                   	push   %ebx
438368:	56                   	push   %esi
438369:	56                   	push   %esi
43836a:	ff d7                	call   *%edi
43836c:	85 c0                	test   %eax,%eax
43836e:	75 0c                	jne    0x43837c
438370:	ff 75 fc             	push   -0x4(%ebp)
438373:	e8 25 86 ff ff       	call   0x43099d
438378:	59                   	pop    %ecx
438379:	89 75 fc             	mov    %esi,-0x4(%ebp)
43837c:	53                   	push   %ebx
43837d:	ff 15 64 35 47 00    	call   *0x473564
438383:	8b 45 fc             	mov    -0x4(%ebp),%eax
438386:	eb 09                	jmp    0x438391
438388:	53                   	push   %ebx
438389:	ff 15 64 35 47 00    	call   *0x473564
43838f:	33 c0                	xor    %eax,%eax
438391:	5f                   	pop    %edi
438392:	5e                   	pop    %esi
438393:	5b                   	pop    %ebx
438394:	c9                   	leave
438395:	c3                   	ret
438396:	6a 00                	push   $0x0
438398:	68 00 10 00 00       	push   $0x1000
43839d:	6a 00                	push   $0x0
43839f:	ff 15 70 35 47 00    	call   *0x473570
4383a5:	33 c9                	xor    %ecx,%ecx
4383a7:	85 c0                	test   %eax,%eax
4383a9:	0f 95 c1             	setne  %cl
4383ac:	a3 a0 10 47 00       	mov    %eax,0x4710a0
4383b1:	8b c1                	mov    %ecx,%eax
4383b3:	c3                   	ret
4383b4:	ff 35 a0 10 47 00    	push   0x4710a0
4383ba:	ff 15 74 35 47 00    	call   *0x473574
4383c0:	83 25 a0 10 47 00 00 	andl   $0x0,0x4710a0
4383c7:	c3                   	ret
4383c8:	a1 a0 10 47 00       	mov    0x4710a0,%eax
4383cd:	c3                   	ret
4383ce:	8b ff                	mov    %edi,%edi
4383d0:	55                   	push   %ebp
4383d1:	8b ec                	mov    %esp,%ebp
4383d3:	83 ec 10             	sub    $0x10,%esp
4383d6:	a1 a8 f6 46 00       	mov    0x46f6a8,%eax
4383db:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4383df:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4383e3:	53                   	push   %ebx
4383e4:	57                   	push   %edi
4383e5:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
4383ea:	bb 00 00 ff ff       	mov    $0xffff0000,%ebx
4383ef:	3b c7                	cmp    %edi,%eax
4383f1:	74 0d                	je     0x438400
4383f3:	85 c3                	test   %eax,%ebx
4383f5:	74 09                	je     0x438400
4383f7:	f7 d0                	not    %eax
4383f9:	a3 ac f6 46 00       	mov    %eax,0x46f6ac
4383fe:	eb 65                	jmp    0x438465
438400:	56                   	push   %esi
438401:	8d 45 f8             	lea    -0x8(%ebp),%eax
438404:	50                   	push   %eax
438405:	ff 15 80 35 47 00    	call   *0x473580
43840b:	8b 75 fc             	mov    -0x4(%ebp),%esi
43840e:	33 75 f8             	xor    -0x8(%ebp),%esi
438411:	ff 15 c0 34 47 00    	call   *0x4734c0
438417:	33 f0                	xor    %eax,%esi
438419:	ff 15 40 35 47 00    	call   *0x473540
43841f:	33 f0                	xor    %eax,%esi
438421:	ff 15 7c 35 47 00    	call   *0x47357c
438427:	33 f0                	xor    %eax,%esi
438429:	8d 45 f0             	lea    -0x10(%ebp),%eax
43842c:	50                   	push   %eax
43842d:	ff 15 78 35 47 00    	call   *0x473578
438433:	8b 45 f4             	mov    -0xc(%ebp),%eax
438436:	33 45 f0             	xor    -0x10(%ebp),%eax
438439:	33 f0                	xor    %eax,%esi
43843b:	3b f7                	cmp    %edi,%esi
43843d:	75 07                	jne    0x438446
43843f:	be 4f e6 40 bb       	mov    $0xbb40e64f,%esi
438444:	eb 10                	jmp    0x438456
438446:	85 f3                	test   %esi,%ebx
438448:	75 0c                	jne    0x438456
43844a:	8b c6                	mov    %esi,%eax
43844c:	0d 11 47 00 00       	or     $0x4711,%eax
438451:	c1 e0 10             	shl    $0x10,%eax
438454:	0b f0                	or     %eax,%esi
438456:	89 35 a8 f6 46 00    	mov    %esi,0x46f6a8
43845c:	f7 d6                	not    %esi
43845e:	89 35 ac f6 46 00    	mov    %esi,0x46f6ac
438464:	5e                   	pop    %esi
438465:	5f                   	pop    %edi
438466:	5b                   	pop    %ebx
438467:	c9                   	leave
438468:	c3                   	ret
438469:	8b ff                	mov    %edi,%edi
43846b:	55                   	push   %ebp
43846c:	8b ec                	mov    %esp,%ebp
43846e:	51                   	push   %ecx
43846f:	51                   	push   %ecx
438470:	8b 45 0c             	mov    0xc(%ebp),%eax
438473:	57                   	push   %edi
438474:	8b 7d 08             	mov    0x8(%ebp),%edi
438477:	85 c0                	test   %eax,%eax
438479:	74 02                	je     0x43847d
43847b:	89 38                	mov    %edi,(%eax)
43847d:	85 ff                	test   %edi,%edi
43847f:	75 17                	jne    0x438498
438481:	e8 22 c5 ff ff       	call   0x4349a8
438486:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
43848c:	e8 dd be ff ff       	call   0x43436e
438491:	33 c0                	xor    %eax,%eax
438493:	e9 90 01 00 00       	jmp    0x438628
438498:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
43849c:	74 0c                	je     0x4384aa
43849e:	83 7d 10 02          	cmpl   $0x2,0x10(%ebp)
4384a2:	7c dd                	jl     0x438481
4384a4:	83 7d 10 24          	cmpl   $0x24,0x10(%ebp)
4384a8:	7f d7                	jg     0x438481
4384aa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4384ae:	53                   	push   %ebx
4384af:	56                   	push   %esi
4384b0:	6a 08                	push   $0x8
4384b2:	5b                   	pop    %ebx
4384b3:	0f b7 37             	movzwl (%edi),%esi
4384b6:	53                   	push   %ebx
4384b7:	56                   	push   %esi
4384b8:	83 c7 02             	add    $0x2,%edi
4384bb:	e8 25 a3 ff ff       	call   0x4327e5
4384c0:	59                   	pop    %ecx
4384c1:	59                   	pop    %ecx
4384c2:	85 c0                	test   %eax,%eax
4384c4:	75 ed                	jne    0x4384b3
4384c6:	66 83 fe 2d          	cmp    $0x2d,%si
4384ca:	75 06                	jne    0x4384d2
4384cc:	83 4d 14 02          	orl    $0x2,0x14(%ebp)
4384d0:	eb 06                	jmp    0x4384d8
4384d2:	66 83 fe 2b          	cmp    $0x2b,%si
4384d6:	75 06                	jne    0x4384de
4384d8:	0f b7 37             	movzwl (%edi),%esi
4384db:	83 c7 02             	add    $0x2,%edi
4384de:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4384e2:	75 2d                	jne    0x438511
4384e4:	56                   	push   %esi
4384e5:	e8 46 9a 00 00       	call   0x441f30
4384ea:	59                   	pop    %ecx
4384eb:	85 c0                	test   %eax,%eax
4384ed:	74 09                	je     0x4384f8
4384ef:	c7 45 10 0a 00 00 00 	movl   $0xa,0x10(%ebp)
4384f6:	eb 3e                	jmp    0x438536
4384f8:	0f b7 07             	movzwl (%edi),%eax
4384fb:	83 f8 78             	cmp    $0x78,%eax
4384fe:	74 0a                	je     0x43850a
438500:	83 f8 58             	cmp    $0x58,%eax
438503:	74 05                	je     0x43850a
438505:	89 5d 10             	mov    %ebx,0x10(%ebp)
438508:	eb 2c                	jmp    0x438536
43850a:	c7 45 10 10 00 00 00 	movl   $0x10,0x10(%ebp)
438511:	83 7d 10 10          	cmpl   $0x10,0x10(%ebp)
438515:	75 1f                	jne    0x438536
438517:	56                   	push   %esi
438518:	e8 13 9a 00 00       	call   0x441f30
43851d:	59                   	pop    %ecx
43851e:	85 c0                	test   %eax,%eax
438520:	75 14                	jne    0x438536
438522:	0f b7 07             	movzwl (%edi),%eax
438525:	83 f8 78             	cmp    $0x78,%eax
438528:	74 05                	je     0x43852f
43852a:	83 f8 58             	cmp    $0x58,%eax
43852d:	75 07                	jne    0x438536
43852f:	0f b7 77 02          	movzwl 0x2(%edi),%esi
438533:	83 c7 04             	add    $0x4,%edi
438536:	83 c8 ff             	or     $0xffffffff,%eax
438539:	33 d2                	xor    %edx,%edx
43853b:	f7 75 10             	divl   0x10(%ebp)
43853e:	89 55 f8             	mov    %edx,-0x8(%ebp)
438541:	8b d8                	mov    %eax,%ebx
438543:	56                   	push   %esi
438544:	e8 e7 99 00 00       	call   0x441f30
438549:	59                   	pop    %ecx
43854a:	83 f8 ff             	cmp    $0xffffffff,%eax
43854d:	75 29                	jne    0x438578
43854f:	6a 41                	push   $0x41
438551:	58                   	pop    %eax
438552:	66 3b c6             	cmp    %si,%ax
438555:	77 06                	ja     0x43855d
438557:	66 83 fe 5a          	cmp    $0x5a,%si
43855b:	76 09                	jbe    0x438566
43855d:	8d 46 9f             	lea    -0x61(%esi),%eax
438560:	66 83 f8 19          	cmp    $0x19,%ax
438564:	77 31                	ja     0x438597
438566:	8d 46 9f             	lea    -0x61(%esi),%eax
438569:	66 83 f8 19          	cmp    $0x19,%ax
43856d:	0f b7 c6             	movzwl %si,%eax
438570:	77 03                	ja     0x438575
438572:	83 e8 20             	sub    $0x20,%eax
438575:	83 c0 c9             	add    $0xffffffc9,%eax
438578:	3b 45 10             	cmp    0x10(%ebp),%eax
43857b:	73 1a                	jae    0x438597
43857d:	83 4d 14 08          	orl    $0x8,0x14(%ebp)
438581:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
438584:	72 2a                	jb     0x4385b0
438586:	75 05                	jne    0x43858d
438588:	3b 45 f8             	cmp    -0x8(%ebp),%eax
43858b:	76 23                	jbe    0x4385b0
43858d:	83 4d 14 04          	orl    $0x4,0x14(%ebp)
438591:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
438595:	75 25                	jne    0x4385bc
438597:	8b 45 14             	mov    0x14(%ebp),%eax
43859a:	83 ef 02             	sub    $0x2,%edi
43859d:	a8 08                	test   $0x8,%al
43859f:	75 26                	jne    0x4385c7
4385a1:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4385a5:	74 03                	je     0x4385aa
4385a7:	8b 7d 08             	mov    0x8(%ebp),%edi
4385aa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4385ae:	eb 61                	jmp    0x438611
4385b0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4385b3:	0f af 4d 10          	imul   0x10(%ebp),%ecx
4385b7:	03 c8                	add    %eax,%ecx
4385b9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4385bc:	0f b7 37             	movzwl (%edi),%esi
4385bf:	83 c7 02             	add    $0x2,%edi
4385c2:	e9 7c ff ff ff       	jmp    0x438543
4385c7:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
4385cc:	a8 04                	test   $0x4,%al
4385ce:	75 1b                	jne    0x4385eb
4385d0:	a8 01                	test   $0x1,%al
4385d2:	75 3d                	jne    0x438611
4385d4:	83 e0 02             	and    $0x2,%eax
4385d7:	74 09                	je     0x4385e2
4385d9:	81 7d fc 00 00 00 80 	cmpl   $0x80000000,-0x4(%ebp)
4385e0:	77 09                	ja     0x4385eb
4385e2:	85 c0                	test   %eax,%eax
4385e4:	75 2b                	jne    0x438611
4385e6:	39 75 fc             	cmp    %esi,-0x4(%ebp)
4385e9:	76 26                	jbe    0x438611
4385eb:	e8 b8 c3 ff ff       	call   0x4349a8
4385f0:	f6 45 14 01          	testb  $0x1,0x14(%ebp)
4385f4:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4385fa:	74 06                	je     0x438602
4385fc:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
438600:	eb 0f                	jmp    0x438611
438602:	f6 45 14 02          	testb  $0x2,0x14(%ebp)
438606:	6a 00                	push   $0x0
438608:	58                   	pop    %eax
438609:	0f 95 c0             	setne  %al
43860c:	03 c6                	add    %esi,%eax
43860e:	89 45 fc             	mov    %eax,-0x4(%ebp)
438611:	8b 45 0c             	mov    0xc(%ebp),%eax
438614:	5e                   	pop    %esi
438615:	5b                   	pop    %ebx
438616:	85 c0                	test   %eax,%eax
438618:	74 02                	je     0x43861c
43861a:	89 38                	mov    %edi,(%eax)
43861c:	f6 45 14 02          	testb  $0x2,0x14(%ebp)
438620:	74 03                	je     0x438625
438622:	f7 5d fc             	negl   -0x4(%ebp)
438625:	8b 45 fc             	mov    -0x4(%ebp),%eax
438628:	5f                   	pop    %edi
438629:	c9                   	leave
43862a:	c3                   	ret
43862b:	8b ff                	mov    %edi,%edi
43862d:	55                   	push   %ebp
43862e:	8b ec                	mov    %esp,%ebp
438630:	6a 00                	push   $0x0
438632:	ff 75 10             	push   0x10(%ebp)
438635:	ff 75 0c             	push   0xc(%ebp)