438343:	83 e1 1f             	and    $0x1f,%ecx
438346:	c1 e1 06             	shl    $0x6,%ecx
438349:	8b 04 85 e0 49 4c 00 	mov    0x4c49e0(,%eax,4),%eax
438350:	80 64 08 04 fe       	andb   $0xfe,0x4(%eax,%ecx,1)
438355:	ff 15 40 f3 48 00    	call   *0x48f340
43835b:	50                   	push   %eax
43835c:	e8 e6 09 ff ff       	call   0x428d47
438361:	59                   	pop    %ecx
438362:	e8 01 0a ff ff       	call   0x428d68
438367:	8b 18                	mov    (%eax),%ebx
438369:	e9 71 04 00 00       	jmp    0x4387df
43836e:	50                   	push   %eax
43836f:	ff 15 bc f3 48 00    	call   *0x48f3bc
438375:	85 c0                	test   %eax,%eax
438377:	75 42                	jne    0x4383bb
438379:	8b 0f                	mov    (%edi),%ecx
43837b:	8b c1                	mov    %ecx,%eax
43837d:	c1 f8 05             	sar    $0x5,%eax
438380:	83 e1 1f             	and    $0x1f,%ecx
438383:	c1 e1 06             	shl    $0x6,%ecx
438386:	8b 04 85 e0 49 4c 00 	mov    0x4c49e0(,%eax,4),%eax
43838d:	80 64 08 04 fe       	andb   $0xfe,0x4(%eax,%ecx,1)
438392:	ff 15 40 f3 48 00    	call   *0x48f340
438398:	8b f0                	mov    %eax,%esi
43839a:	56                   	push   %esi
43839b:	e8 a7 09 ff ff       	call   0x428d47
4383a0:	59                   	pop    %ecx
4383a1:	ff 75 e4             	push   -0x1c(%ebp)
4383a4:	ff 15 5c f3 48 00    	call   *0x48f35c
4383aa:	85 f6                	test   %esi,%esi
4383ac:	75 b4                	jne    0x438362
4383ae:	e8 b5 09 ff ff       	call   0x428d68
4383b3:	c7 00 0d 00 00 00    	movl   $0xd,(%eax)
4383b9:	eb a7                	jmp    0x438362
4383bb:	83 f8 02             	cmp    $0x2,%eax
4383be:	75 06                	jne    0x4383c6
4383c0:	80 4d ff 40          	orb    $0x40,-0x1(%ebp)
4383c4:	eb 09                	jmp    0x4383cf
4383c6:	83 f8 03             	cmp    $0x3,%eax
4383c9:	75 04                	jne    0x4383cf
4383cb:	80 4d ff 08          	orb    $0x8,-0x1(%ebp)
4383cf:	ff 75 e4             	push   -0x1c(%ebp)
4383d2:	ff 37                	push   (%edi)
4383d4:	e8 91 53 ff ff       	call   0x42d76a
4383d9:	8a 55 ff             	mov    -0x1(%ebp),%dl
4383dc:	59                   	pop    %ecx
4383dd:	59                   	pop    %ecx
4383de:	8b 0f                	mov    (%edi),%ecx
4383e0:	80 ca 01             	or     $0x1,%dl
4383e3:	8b c1                	mov    %ecx,%eax
4383e5:	88 55 ff             	mov    %dl,-0x1(%ebp)
4383e8:	c1 f8 05             	sar    $0x5,%eax
4383eb:	83 e1 1f             	and    $0x1f,%ecx
4383ee:	c1 e1 06             	shl    $0x6,%ecx
4383f1:	8b 04 85 e0 49 4c 00 	mov    0x4c49e0(,%eax,4),%eax
4383f8:	88 54 08 04          	mov    %dl,0x4(%eax,%ecx,1)
4383fc:	8b 0f                	mov    (%edi),%ecx
4383fe:	8b c1                	mov    %ecx,%eax
438400:	c1 f8 05             	sar    $0x5,%eax
438403:	83 e1 1f             	and    $0x1f,%ecx
438406:	c1 e1 06             	shl    $0x6,%ecx
438409:	8b 04 85 e0 49 4c 00 	mov    0x4c49e0(,%eax,4),%eax
438410:	80 64 08 24 80       	andb   $0x80,0x24(%eax,%ecx,1)
438415:	8a c2                	mov    %dl,%al
438417:	8b 4d 14             	mov    0x14(%ebp),%ecx
43841a:	24 48                	and    $0x48,%al
43841c:	88 45 fd             	mov    %al,-0x3(%ebp)
43841f:	0f 85 96 00 00 00    	jne    0x4384bb
438425:	84 d2                	test   %dl,%dl
438427:	0f 89 b2 02 00 00    	jns    0x4386df
43842d:	f6 c1 02             	test   $0x2,%cl
438430:	0f 84 85 00 00 00    	je     0x4384bb
438436:	6a 02                	push   $0x2
438438:	6a ff                	push   $0xffffffff
43843a:	6a ff                	push   $0xffffffff
43843c:	ff 37                	push   (%edi)
43843e:	e8 ce 96 ff ff       	call   0x431b11
438443:	8b c8                	mov    %eax,%ecx
438445:	89 45 d4             	mov    %eax,-0x2c(%ebp)
438448:	23 ca                	and    %edx,%ecx
43844a:	89 55 ec             	mov    %edx,-0x14(%ebp)
43844d:	83 c4 10             	add    $0x10,%esp
438450:	83 f9 ff             	cmp    $0xffffffff,%ecx
438453:	75 19                	jne    0x43846e
438455:	e8 da 08 ff ff       	call   0x428d34
43845a:	81 38 83 00 00 00    	cmpl   $0x83,(%eax)
438460:	74 53                	je     0x4384b5
438462:	ff 37                	push   (%edi)
438464:	e8 c4 88 ff ff       	call   0x430d2d
438469:	e9 f3 fe ff ff       	jmp    0x438361
43846e:	6a 01                	push   $0x1
438470:	8d 45 dc             	lea    -0x24(%ebp),%eax
438473:	89 5d dc             	mov    %ebx,-0x24(%ebp)
438476:	50                   	push   %eax
438477:	ff 37                	push   (%edi)
438479:	e8 2d 8c ff ff       	call   0x4310ab
43847e:	83 c4 0c             	add    $0xc,%esp
438481:	85 c0                	test   %eax,%eax
438483:	75 1c                	jne    0x4384a1
438485:	66 83 7d dc 1a       	cmpw   $0x1a,-0x24(%ebp)
43848a:	75 15                	jne    0x4384a1
43848c:	ff 75 ec             	push   -0x14(%ebp)
43848f:	ff 75 d4             	push   -0x2c(%ebp)
438492:	ff 37                	push   (%edi)
438494:	e8 59 15 00 00       	call   0x4399f2
438499:	83 c4 0c             	add    $0xc,%esp
43849c:	83 f8 ff             	cmp    $0xffffffff,%eax
43849f:	74 c1                	je     0x438462
4384a1:	53                   	push   %ebx
4384a2:	53                   	push   %ebx
4384a3:	53                   	push   %ebx
4384a4:	ff 37                	push   (%edi)
4384a6:	e8 66 96 ff ff       	call   0x431b11
4384ab:	23 c2                	and    %edx,%eax
4384ad:	83 c4 10             	add    $0x10,%esp
4384b0:	83 f8 ff             	cmp    $0xffffffff,%eax
4384b3:	74 ad                	je     0x438462
4384b5:	8a 55 ff             	mov    -0x1(%ebp),%dl
4384b8:	8b 4d 14             	mov    0x14(%ebp),%ecx
4384bb:	84 d2                	test   %dl,%dl
4384bd:	0f 89 1c 02 00 00    	jns    0x4386df
4384c3:	f7 c1 00 40 07 00    	test   $0x74000,%ecx
4384c9:	75 17                	jne    0x4384e2
4384cb:	8b 45 e0             	mov    -0x20(%ebp),%eax
4384ce:	25 00 40 07 00       	and    $0x74000,%eax
4384d3:	75 08                	jne    0x4384dd
4384d5:	81 c9 00 40 00 00    	or     $0x4000,%ecx
4384db:	eb 02                	jmp    0x4384df
4384dd:	0b c8                	or     %eax,%ecx
4384df:	89 4d 14             	mov    %ecx,0x14(%ebp)
4384e2:	8b c1                	mov    %ecx,%eax
4384e4:	25 00 40 07 00       	and    $0x74000,%eax
4384e9:	3d 00 40 00 00       	cmp    $0x4000,%eax
4384ee:	74 44                	je     0x438534
4384f0:	3d 00 00 01 00       	cmp    $0x10000,%eax
4384f5:	74 29                	je     0x438520
4384f7:	3d 00 40 01 00       	cmp    $0x14000,%eax
4384fc:	74 22                	je     0x438520
4384fe:	3d 00 00 02 00       	cmp    $0x20000,%eax
438503:	74 29                	je     0x43852e
438505:	3d 00 40 02 00       	cmp    $0x24000,%eax
43850a:	74 22                	je     0x43852e
43850c:	3d 00 00 04 00       	cmp    $0x40000,%eax
438511:	74 07                	je     0x43851a
438513:	3d 00 40 04 00       	cmp    $0x44000,%eax
438518:	75 1d                	jne    0x438537
43851a:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
43851e:	eb 17                	jmp    0x438537
438520:	8b c1                	mov    %ecx,%eax
438522:	25 01 03 00 00       	and    $0x301,%eax
438527:	3d 01 03 00 00       	cmp    $0x301,%eax
43852c:	75 09                	jne    0x438537
43852e:	c6 45 fe 02          	movb   $0x2,-0x2(%ebp)
438532:	eb 03                	jmp    0x438537
438534:	88 5d fe             	mov    %bl,-0x2(%ebp)
438537:	f7 c1 00 00 07 00    	test   $0x70000,%ecx
43853d:	0f 84 9c 01 00 00    	je     0x4386df
438543:	89 5d ec             	mov    %ebx,-0x14(%ebp)
438546:	f6 c2 40             	test   $0x40,%dl
438549:	0f 85 90 01 00 00    	jne    0x4386df
43854f:	8b 45 f8             	mov    -0x8(%ebp),%eax
438552:	b9 00 00 00 c0       	mov    $0xc0000000,%ecx
438557:	23 c1                	and    %ecx,%eax
438559:	3d 00 00 00 40       	cmp    $0x40000000,%eax
43855e:	0f 84 ed 00 00 00    	je     0x438651
438564:	3d 00 00 00 80       	cmp    $0x80000000,%eax
438569:	74 5b                	je     0x4385c6
43856b:	3b c1                	cmp    %ecx,%eax
43856d:	0f 85 6c 01 00 00    	jne    0x4386df
438573:	85 f6                	test   %esi,%esi
438575:	0f 84 64 01 00 00    	je     0x4386df
43857b:	6a 02                	push   $0x2
43857d:	59                   	pop    %ecx
43857e:	3b f1                	cmp    %ecx,%esi
438580:	0f 86 10 01 00 00    	jbe    0x438696
438586:	83 fe 04             	cmp    $0x4,%esi
438589:	76 0e                	jbe    0x438599
43858b:	83 fe 05             	cmp    $0x5,%esi
43858e:	0f 84 02 01 00 00    	je     0x438696
438594:	e9 46 01 00 00       	jmp    0x4386df
438599:	51                   	push   %ecx
43859a:	53                   	push   %ebx
43859b:	53                   	push   %ebx
43859c:	ff 37                	push   (%edi)
43859e:	e8 6e 95 ff ff       	call   0x431b11
4385a3:	83 c4 10             	add    $0x10,%esp
4385a6:	0b c2                	or     %edx,%eax
4385a8:	0f 84 e5 00 00 00    	je     0x438693
4385ae:	53                   	push   %ebx
4385af:	53                   	push   %ebx
4385b0:	53                   	push   %ebx
4385b1:	ff 37                	push   (%edi)
4385b3:	e8 59 95 ff ff       	call   0x431b11
4385b8:	23 c2                	and    %edx,%eax
4385ba:	83 c4 10             	add    $0x10,%esp
4385bd:	83 f8 ff             	cmp    $0xffffffff,%eax
4385c0:	0f 84 9c fe ff ff    	je     0x438462
4385c6:	6a 03                	push   $0x3
4385c8:	8d 45 ec             	lea    -0x14(%ebp),%eax
4385cb:	50                   	push   %eax
4385cc:	ff 37                	push   (%edi)
4385ce:	e8 d8 8a ff ff       	call   0x4310ab
4385d3:	83 c4 0c             	add    $0xc,%esp
4385d6:	83 f8 ff             	cmp    $0xffffffff,%eax
4385d9:	0f 84 83 fe ff ff    	je     0x438462
4385df:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4385e2:	6a 02                	push   $0x2
4385e4:	5a                   	pop    %edx
4385e5:	3b c2                	cmp    %edx,%eax
4385e7:	74 1a                	je     0x438603
4385e9:	83 f8 03             	cmp    $0x3,%eax
4385ec:	0f 85 88 00 00 00    	jne    0x43867a
4385f2:	81 f9 ef bb bf 00    	cmp    $0xbfbbef,%ecx
4385f8:	75 09                	jne    0x438603
4385fa:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
4385fe:	e9 dc 00 00 00       	jmp    0x4386df
438603:	81 e1 ff ff 00 00    	and    $0xffff,%ecx
438609:	81 f9 fe ff 00 00    	cmp    $0xfffe,%ecx
43860f:	75 17                	jne    0x438628
438611:	ff 37                	push   (%edi)
438613:	e8 15 87 ff ff       	call   0x430d2d
438618:	59                   	pop    %ecx
438619:	e8 4a 07 ff ff       	call   0x428d68
43861e:	6a 16                	push   $0x16
438620:	5b                   	pop    %ebx
438621:	89 18                	mov    %ebx,(%eax)
438623:	e9 b7 01 00 00       	jmp    0x4387df
438628:	81 f9 ff fe 00 00    	cmp    $0xfeff,%ecx
43862e:	75 4a                	jne    0x43867a
438630:	53                   	push   %ebx
438631:	53                   	push   %ebx
438632:	52                   	push   %edx
438633:	ff 37                	push   (%edi)
438635:	e8 d7 94 ff ff       	call   0x431b11
43863a:	23 c2                	and    %edx,%eax
43863c:	83 c4 10             	add    $0x10,%esp
43863f:	83 f8 ff             	cmp    $0xffffffff,%eax
438642:	0f 84 1a fe ff ff    	je     0x438462
438648:	c6 45 fe 02          	movb   $0x2,-0x2(%ebp)
43864c:	e9 8e 00 00 00       	jmp    0x4386df
438651:	85 f6                	test   %esi,%esi
438653:	0f 84 86 00 00 00    	je     0x4386df
438659:	6a 02                	push   $0x2
43865b:	59                   	pop    %ecx
43865c:	3b f1                	cmp    %ecx,%esi
43865e:	76 36                	jbe    0x438696
438660:	83 fe 04             	cmp    $0x4,%esi
438663:	0f 87 22 ff ff ff    	ja     0x43858b
438669:	51                   	push   %ecx
43866a:	53                   	push   %ebx
43866b:	53                   	push   %ebx
43866c:	ff 37                	push   (%edi)
43866e:	e8 9e 94 ff ff       	call   0x431b11
438673:	83 c4 10             	add    $0x10,%esp
438676:	0b c2                	or     %edx,%eax
438678:	74 19                	je     0x438693
43867a:	53                   	push   %ebx
43867b:	53                   	push   %ebx
43867c:	53                   	push   %ebx
43867d:	ff 37                	push   (%edi)
43867f:	e8 8d 94 ff ff       	call   0x431b11
438684:	23 c2                	and    %edx,%eax
438686:	83 c4 10             	add    $0x10,%esp
438689:	83 f8 ff             	cmp    $0xffffffff,%eax
43868c:	75 51                	jne    0x4386df
43868e:	e9 cf fd ff ff       	jmp    0x438462
438693:	6a 02                	push   $0x2
438695:	59                   	pop    %ecx
438696:	0f be 45 fe          	movsbl -0x2(%ebp),%eax
43869a:	8b f3                	mov    %ebx,%esi
43869c:	48                   	dec    %eax
43869d:	74 0c                	je     0x4386ab
43869f:	48                   	dec    %eax
4386a0:	75 3d                	jne    0x4386df
4386a2:	c7 45 ec ff fe 00 00 	movl   $0xfeff,-0x14(%ebp)
4386a9:	eb 0d                	jmp    0x4386b8
4386ab:	6a 03                	push   $0x3
4386ad:	59                   	pop    %ecx
4386ae:	c7 45 ec ef bb bf 00 	movl   $0xbfbbef,-0x14(%ebp)
4386b5:	89 4d d8             	mov    %ecx,-0x28(%ebp)
4386b8:	8b c1                	mov    %ecx,%eax
4386ba:	2b c6                	sub    %esi,%eax
4386bc:	50                   	push   %eax
4386bd:	8d 45 ec             	lea    -0x14(%ebp),%eax
4386c0:	03 c6                	add    %esi,%eax
4386c2:	50                   	push   %eax
4386c3:	ff 37                	push   (%edi)
4386c5:	e8 fc 53 ff ff       	call   0x42dac6
4386ca:	83 c4 0c             	add    $0xc,%esp
4386cd:	83 f8 ff             	cmp    $0xffffffff,%eax
4386d0:	0f 84 8c fd ff ff    	je     0x438462
4386d6:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4386d9:	03 f0                	add    %eax,%esi
4386db:	3b ce                	cmp    %esi,%ecx
4386dd:	7f d9                	jg     0x4386b8
4386df:	8b 17                	mov    (%edi),%edx
4386e1:	8b c2                	mov    %edx,%eax
4386e3:	c1 f8 05             	sar    $0x5,%eax
4386e6:	83 e2 1f             	and    $0x1f,%edx
4386e9:	c1 e2 06             	shl    $0x6,%edx
4386ec:	8b 0c 85 e0 49 4c 00 	mov    0x4c49e0(,%eax,4),%ecx
4386f3:	8a 44 11 24          	mov    0x24(%ecx,%edx,1),%al
4386f7:	32 45 fe             	xor    -0x2(%ebp),%al
4386fa:	24 7f                	and    $0x7f,%al
4386fc:	30 44 11 24          	xor    %al,0x24(%ecx,%edx,1)
438700:	8b 37                	mov    (%edi),%esi
438702:	8b c6                	mov    %esi,%eax
438704:	8b 4d 14             	mov    0x14(%ebp),%ecx
438707:	83 e6 1f             	and    $0x1f,%esi
43870a:	c1 f8 05             	sar    $0x5,%eax
43870d:	c1 e6 06             	shl    $0x6,%esi
438710:	c1 e9 10             	shr    $0x10,%ecx
438713:	c0 e1 07             	shl    $0x7,%cl
438716:	8b 14 85 e0 49 4c 00 	mov    0x4c49e0(,%eax,4),%edx
43871d:	8a 44 32 24          	mov    0x24(%edx,%esi,1),%al
438721:	24 7f                	and    $0x7f,%al
438723:	0a c8                	or     %al,%cl
438725:	88 4c 32 24          	mov    %cl,0x24(%edx,%esi,1)
438729:	8b 4d 14             	mov    0x14(%ebp),%ecx
43872c:	38 5d fd             	cmp    %bl,-0x3(%ebp)
43872f:	75 21                	jne    0x438752
438731:	f6 c1 08             	test   $0x8,%cl
438734:	74 1c                	je     0x438752
438736:	8b 0f                	mov    (%edi),%ecx
438738:	8b c1                	mov    %ecx,%eax
43873a:	c1 f8 05             	sar    $0x5,%eax
43873d:	83 e1 1f             	and    $0x1f,%ecx
438740:	c1 e1 06             	shl    $0x6,%ecx
438743:	8b 04 85 e0 49 4c 00 	mov    0x4c49e0(,%eax,4),%eax
43874a:	80 4c 08 04 20       	orb    $0x20,0x4(%eax,%ecx,1)
43874f:	8b 4d 14             	mov    0x14(%ebp),%ecx
438752:	8b 75 f8             	mov    -0x8(%ebp),%esi
438755:	ba 00 00 00 c0       	mov    $0xc0000000,%edx
43875a:	8b c6                	mov    %esi,%eax
43875c:	23 c2                	and    %edx,%eax
43875e:	3b c2                	cmp    %edx,%eax
438760:	75 7d                	jne    0x4387df
438762:	f6 c1 01             	test   $0x1,%cl
438765:	74 78                	je     0x4387df
438767:	ff 75 e4             	push   -0x1c(%ebp)
43876a:	ff 15 5c f3 48 00    	call   *0x48f35c
438770:	ff 75 f0             	push   -0x10(%ebp)
438773:	8d 45 c8             	lea    -0x38(%ebp),%eax
438776:	81 e6 ff ff ff 7f    	and    $0x7fffffff,%esi
43877c:	ff 75 e8             	push   -0x18(%ebp)
43877f:	6a 03                	push   $0x3
438781:	50                   	push   %eax
438782:	ff 75 f4             	push   -0xc(%ebp)
438785:	56                   	push   %esi
438786:	ff 75 10             	push   0x10(%ebp)