4384e2:	c3                   	ret
4384e3:	8b ff                	mov    %edi,%edi
4384e5:	55                   	push   %ebp
4384e6:	8b ec                	mov    %esp,%ebp
4384e8:	51                   	push   %ecx
4384e9:	56                   	push   %esi
4384ea:	33 c0                	xor    %eax,%eax
4384ec:	57                   	push   %edi
4384ed:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
4384f1:	dd 7d fc             	fnstsw -0x4(%ebp)
4384f4:	0f b7 55 fc          	movzwl -0x4(%ebp),%edx
4384f8:	8b f2                	mov    %edx,%esi
4384fa:	8b c2                	mov    %edx,%eax
4384fc:	c1 ee 02             	shr    $0x2,%esi
4384ff:	83 e0 10             	and    $0x10,%eax
438502:	83 e6 08             	and    $0x8,%esi
438505:	8b ca                	mov    %edx,%ecx
438507:	0b f0                	or     %eax,%esi
438509:	83 e1 02             	and    $0x2,%ecx
43850c:	c1 ee 02             	shr    $0x2,%esi
43850f:	8b c2                	mov    %edx,%eax
438511:	83 e0 08             	and    $0x8,%eax
438514:	c1 e1 03             	shl    $0x3,%ecx
438517:	0b f0                	or     %eax,%esi
438519:	8b c2                	mov    %edx,%eax
43851b:	83 e0 04             	and    $0x4,%eax
43851e:	d1 ee                	shr    $1,%esi
438520:	0b c8                	or     %eax,%ecx
438522:	83 e2 01             	and    $0x1,%edx
438525:	03 c9                	add    %ecx,%ecx
438527:	c1 e2 04             	shl    $0x4,%edx
43852a:	0b f1                	or     %ecx,%esi
43852c:	0b f2                	or     %edx,%esi
43852e:	83 3d bc 68 45 00 01 	cmpl   $0x1,0x4568bc
438535:	7d 04                	jge    0x43853b
438537:	33 ff                	xor    %edi,%edi
438539:	eb 0a                	jmp    0x438545
43853b:	0f ae 5d fc          	stmxcsr -0x4(%ebp)
43853f:	8b 7d fc             	mov    -0x4(%ebp),%edi
438542:	83 e7 3f             	and    $0x3f,%edi
438545:	8b d7                	mov    %edi,%edx
438547:	8b c7                	mov    %edi,%eax
438549:	83 e0 10             	and    $0x10,%eax
43854c:	c1 ea 02             	shr    $0x2,%edx
43854f:	83 e2 08             	and    $0x8,%edx
438552:	8b cf                	mov    %edi,%ecx
438554:	0b d0                	or     %eax,%edx
438556:	83 e1 02             	and    $0x2,%ecx
438559:	8b c7                	mov    %edi,%eax
43855b:	c1 ea 02             	shr    $0x2,%edx
43855e:	83 e0 08             	and    $0x8,%eax
438561:	c1 e1 03             	shl    $0x3,%ecx
438564:	0b d0                	or     %eax,%edx
438566:	8b c7                	mov    %edi,%eax
438568:	83 e0 04             	and    $0x4,%eax
43856b:	d1 ea                	shr    $1,%edx
43856d:	0b c8                	or     %eax,%ecx
43856f:	83 e7 01             	and    $0x1,%edi
438572:	03 c9                	add    %ecx,%ecx
438574:	c1 e7 04             	shl    $0x4,%edi
438577:	0b d1                	or     %ecx,%edx
438579:	0b d7                	or     %edi,%edx
43857b:	8b c2                	mov    %edx,%eax
43857d:	c1 e0 08             	shl    $0x8,%eax
438580:	0b c6                	or     %esi,%eax
438582:	c1 e0 10             	shl    $0x10,%eax
438585:	0b c2                	or     %edx,%eax
438587:	5f                   	pop    %edi
438588:	0b c6                	or     %esi,%eax
43858a:	5e                   	pop    %esi
43858b:	c9                   	leave
43858c:	c3                   	ret
43858d:	8b ff                	mov    %edi,%edi
43858f:	55                   	push   %ebp
438590:	8b ec                	mov    %esp,%ebp
438592:	83 ec 20             	sub    $0x20,%esp
438595:	57                   	push   %edi
438596:	ff 75 08             	push   0x8(%ebp)
438599:	e8 ed fd ff ff       	call   0x43838b
43859e:	59                   	pop    %ecx
43859f:	6a 07                	push   $0x7
4385a1:	0f b7 d0             	movzwl %ax,%edx
4385a4:	8d 7d e0             	lea    -0x20(%ebp),%edi
4385a7:	59                   	pop    %ecx
4385a8:	33 c0                	xor    %eax,%eax
4385aa:	f3 ab                	rep stos %eax,%es:(%edi)
4385ac:	d9 75 e0             	fnstenv -0x20(%ebp)
4385af:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4385b2:	81 e2 3f 1f 00 00    	and    $0x1f3f,%edx
4385b8:	81 e1 c0 e0 ff ff    	and    $0xffffe0c0,%ecx
4385be:	8b c2                	mov    %edx,%eax
4385c0:	0b ca                	or     %edx,%ecx
4385c2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4385c5:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4385c8:	d9 65 e0             	fldenv -0x20(%ebp)
4385cb:	ff 75 08             	push   0x8(%ebp)
4385ce:	e8 02 fd ff ff       	call   0x4382d5
4385d3:	83 3d bc 68 45 00 01 	cmpl   $0x1,0x4568bc
4385da:	59                   	pop    %ecx
4385db:	0f b7 d0             	movzwl %ax,%edx
4385de:	5f                   	pop    %edi
4385df:	7c 25                	jl     0x438606
4385e1:	81 e2 c0 ff 00 00    	and    $0xffc0,%edx
4385e7:	0f b7 c2             	movzwl %dx,%eax
4385ea:	89 45 fc             	mov    %eax,-0x4(%ebp)
4385ed:	0f ae 5d fc          	stmxcsr -0x4(%ebp)
4385f1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4385f4:	81 e1 3f 00 ff ff    	and    $0xffff003f,%ecx
4385fa:	0f b7 c2             	movzwl %dx,%eax
4385fd:	0b c8                	or     %eax,%ecx
4385ff:	89 4d fc             	mov    %ecx,-0x4(%ebp)
438602:	0f ae 55 fc          	ldmxcsr -0x4(%ebp)
438606:	c9                   	leave
438607:	c3                   	ret
438608:	8b ff                	mov    %edi,%edi
43860a:	55                   	push   %ebp
43860b:	8b ec                	mov    %esp,%ebp
43860d:	83 ec 20             	sub    $0x20,%esp
438610:	56                   	push   %esi
438611:	8b 75 08             	mov    0x8(%ebp),%esi
438614:	8b ce                	mov    %esi,%ecx
438616:	c1 e9 10             	shr    $0x10,%ecx
438619:	83 e1 3f             	and    $0x3f,%ecx
43861c:	8b d1                	mov    %ecx,%edx
43861e:	8b c1                	mov    %ecx,%eax
438620:	83 e2 01             	and    $0x1,%edx
438623:	f7 da                	neg    %edx
438625:	57                   	push   %edi
438626:	1b d2                	sbb    %edx,%edx
438628:	8d 7d e0             	lea    -0x20(%ebp),%edi
43862b:	83 e0 02             	and    $0x2,%eax
43862e:	83 e2 20             	and    $0x20,%edx
438631:	f7 d8                	neg    %eax
438633:	6a 00                	push   $0x0
438635:	1b c0                	sbb    %eax,%eax
438637:	83 e0 10             	and    $0x10,%eax
43863a:	0b d0                	or     %eax,%edx
43863c:	8b c1                	mov    %ecx,%eax
43863e:	83 e0 04             	and    $0x4,%eax
438641:	f7 d8                	neg    %eax
438643:	1b c0                	sbb    %eax,%eax
438645:	83 e0 08             	and    $0x8,%eax
438648:	0b d0                	or     %eax,%edx
43864a:	8b c1                	mov    %ecx,%eax
43864c:	83 e0 08             	and    $0x8,%eax
43864f:	f7 d8                	neg    %eax
438651:	1b c0                	sbb    %eax,%eax
438653:	83 e0 04             	and    $0x4,%eax
438656:	0b d0                	or     %eax,%edx
438658:	f7 c1 10 00 00 00    	test   $0x10,%ecx
43865e:	58                   	pop    %eax
43865f:	0f 95 c0             	setne  %al
438662:	83 e1 20             	and    $0x20,%ecx
438665:	0b d0                	or     %eax,%edx
438667:	f7 d9                	neg    %ecx
438669:	6a 07                	push   $0x7
43866b:	1b c9                	sbb    %ecx,%ecx
43866d:	33 c0                	xor    %eax,%eax
43866f:	83 e1 02             	and    $0x2,%ecx
438672:	0b d1                	or     %ecx,%edx
438674:	59                   	pop    %ecx
438675:	f3 ab                	rep stos %eax,%es:(%edi)
438677:	d9 75 e0             	fnstenv -0x20(%ebp)
43867a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
43867d:	83 e2 3f             	and    $0x3f,%edx
438680:	83 e0 c0             	and    $0xffffffc0,%eax
438683:	0b c2                	or     %edx,%eax
438685:	89 45 e4             	mov    %eax,-0x1c(%ebp)
438688:	d9 65 e0             	fldenv -0x20(%ebp)
43868b:	c1 ee 18             	shr    $0x18,%esi
43868e:	83 e6 3f             	and    $0x3f,%esi
438691:	8b ce                	mov    %esi,%ecx
438693:	8b c6                	mov    %esi,%eax
438695:	83 e1 01             	and    $0x1,%ecx
438698:	f7 d9                	neg    %ecx
43869a:	6a 00                	push   $0x0
43869c:	1b c9                	sbb    %ecx,%ecx
43869e:	83 e0 02             	and    $0x2,%eax
4386a1:	83 e1 20             	and    $0x20,%ecx
4386a4:	f7 d8                	neg    %eax
4386a6:	1b c0                	sbb    %eax,%eax
4386a8:	83 e0 10             	and    $0x10,%eax
4386ab:	0b c8                	or     %eax,%ecx
4386ad:	8b c6                	mov    %esi,%eax
4386af:	83 e0 04             	and    $0x4,%eax
4386b2:	f7 d8                	neg    %eax
4386b4:	1b c0                	sbb    %eax,%eax
4386b6:	83 e0 08             	and    $0x8,%eax
4386b9:	0b c8                	or     %eax,%ecx
4386bb:	8b c6                	mov    %esi,%eax
4386bd:	83 e0 08             	and    $0x8,%eax
4386c0:	f7 d8                	neg    %eax
4386c2:	1b c0                	sbb    %eax,%eax
4386c4:	83 e0 04             	and    $0x4,%eax
4386c7:	0b c8                	or     %eax,%ecx
4386c9:	f7 c6 10 00 00 00    	test   $0x10,%esi
4386cf:	58                   	pop    %eax
4386d0:	0f 95 c0             	setne  %al
4386d3:	0b c8                	or     %eax,%ecx
4386d5:	83 e6 20             	and    $0x20,%esi
4386d8:	f7 de                	neg    %esi
4386da:	5f                   	pop    %edi
4386db:	1b f6                	sbb    %esi,%esi
4386dd:	83 e6 02             	and    $0x2,%esi
4386e0:	0b ce                	or     %esi,%ecx
4386e2:	83 3d bc 68 45 00 01 	cmpl   $0x1,0x4568bc
4386e9:	5e                   	pop    %esi
4386ea:	7c 16                	jl     0x438702
4386ec:	0f ae 5d fc          	stmxcsr -0x4(%ebp)
4386f0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4386f3:	83 e1 3f             	and    $0x3f,%ecx
4386f6:	83 e0 c0             	and    $0xffffffc0,%eax
4386f9:	0b c1                	or     %ecx,%eax
4386fb:	89 45 fc             	mov    %eax,-0x4(%ebp)
4386fe:	0f ae 55 fc          	ldmxcsr -0x4(%ebp)
438702:	c9                   	leave
438703:	c3                   	ret
438704:	8b ff                	mov    %edi,%edi
438706:	55                   	push   %ebp
438707:	8b ec                	mov    %esp,%ebp
438709:	51                   	push   %ecx
43870a:	51                   	push   %ecx
43870b:	56                   	push   %esi
43870c:	57                   	push   %edi
43870d:	e8 2f f7 fe ff       	call   0x427e41
438712:	8b f8                	mov    %eax,%edi
438714:	85 ff                	test   %edi,%edi
438716:	74 60                	je     0x438778
438718:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
43871c:	74 5a                	je     0x438778
43871e:	8b 75 08             	mov    0x8(%ebp),%esi
438721:	33 d2                	xor    %edx,%edx
438723:	89 55 fc             	mov    %edx,-0x4(%ebp)
438726:	8d 4e 02             	lea    0x2(%esi),%ecx
438729:	66 8b 06             	mov    (%esi),%ax
43872c:	83 c6 02             	add    $0x2,%esi
43872f:	66 3b c2             	cmp    %dx,%ax
438732:	75 f5                	jne    0x438729
438734:	2b f1                	sub    %ecx,%esi
438736:	d1 fe                	sar    $1,%esi
438738:	eb 38                	jmp    0x438772
43873a:	8b ca                	mov    %edx,%ecx
43873c:	8d 41 02             	lea    0x2(%ecx),%eax
43873f:	89 45 f8             	mov    %eax,-0x8(%ebp)
438742:	66 8b 01             	mov    (%ecx),%ax
438745:	83 c1 02             	add    $0x2,%ecx
438748:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
43874c:	75 f4                	jne    0x438742
43874e:	2b 4d f8             	sub    -0x8(%ebp),%ecx
438751:	d1 f9                	sar    $1,%ecx
438753:	3b ce                	cmp    %esi,%ecx
438755:	76 18                	jbe    0x43876f
438757:	66 83 3c 72 3d       	cmpw   $0x3d,(%edx,%esi,2)
43875c:	75 11                	jne    0x43876f
43875e:	56                   	push   %esi
43875f:	ff 75 08             	push   0x8(%ebp)
438762:	52                   	push   %edx
438763:	e8 67 0b 00 00       	call   0x4392cf
438768:	83 c4 0c             	add    $0xc,%esp
43876b:	85 c0                	test   %eax,%eax
43876d:	74 0f                	je     0x43877e
43876f:	83 c7 04             	add    $0x4,%edi
438772:	8b 17                	mov    (%edi),%edx
438774:	85 d2                	test   %edx,%edx
438776:	75 c2                	jne    0x43873a
438778:	33 c0                	xor    %eax,%eax
43877a:	5f                   	pop    %edi
43877b:	5e                   	pop    %esi
43877c:	c9                   	leave
43877d:	c3                   	ret
43877e:	8b 07                	mov    (%edi),%eax
438780:	8d 04 70             	lea    (%eax,%esi,2),%eax
438783:	83 c0 02             	add    $0x2,%eax
438786:	eb f2                	jmp    0x43877a
438788:	6a 0c                	push   $0xc
43878a:	68 70 34 45 00       	push   $0x453470
43878f:	e8 7c 21 fe ff       	call   0x41a910
438794:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
438798:	6a 0b                	push   $0xb
43879a:	e8 02 e1 fe ff       	call   0x4268a1
43879f:	59                   	pop    %ecx
4387a0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4387a4:	ff 75 14             	push   0x14(%ebp)
4387a7:	ff 75 10             	push   0x10(%ebp)
4387aa:	ff 75 0c             	push   0xc(%ebp)
4387ad:	ff 75 08             	push   0x8(%ebp)
4387b0:	e8 32 00 00 00       	call   0x4387e7
4387b5:	83 c4 10             	add    $0x10,%esp
4387b8:	8b f0                	mov    %eax,%esi
4387ba:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4387bd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4387c4:	e8 15 00 00 00       	call   0x4387de
4387c9:	8b c6                	mov    %esi,%eax
4387cb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4387ce:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4387d5:	59                   	pop    %ecx
4387d6:	5f                   	pop    %edi
4387d7:	5e                   	pop    %esi
4387d8:	5b                   	pop    %ebx
4387d9:	c9                   	leave
4387da:	c3                   	ret
4387db:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4387de:	6a 0b                	push   $0xb
4387e0:	e8 0c e1 fe ff       	call   0x4268f1
4387e5:	59                   	pop    %ecx
4387e6:	c3                   	ret
4387e7:	8b ff                	mov    %edi,%edi
4387e9:	55                   	push   %ebp
4387ea:	8b ec                	mov    %esp,%ebp
4387ec:	51                   	push   %ecx
4387ed:	51                   	push   %ecx
4387ee:	56                   	push   %esi
4387ef:	57                   	push   %edi
4387f0:	8b 7d 08             	mov    0x8(%ebp),%edi
4387f3:	85 ff                	test   %edi,%edi
4387f5:	75 13                	jne    0x43880a
4387f7:	e8 34 b2 fe ff       	call   0x423a30
4387fc:	6a 16                	push   $0x16
4387fe:	5e                   	pop    %esi
4387ff:	89 30                	mov    %esi,(%eax)
438801:	e8 7d 71 fe ff       	call   0x41f983
438806:	8b c6                	mov    %esi,%eax
438808:	eb 7a                	jmp    0x438884
43880a:	8b 75 10             	mov    0x10(%ebp),%esi
43880d:	33 c0                	xor    %eax,%eax
43880f:	53                   	push   %ebx
438810:	8b 5d 0c             	mov    0xc(%ebp),%ebx
438813:	89 45 fc             	mov    %eax,-0x4(%ebp)
438816:	89 07                	mov    %eax,(%edi)
438818:	85 db                	test   %ebx,%ebx
43881a:	74 3f                	je     0x43885b
43881c:	85 f6                	test   %esi,%esi
43881e:	74 3f                	je     0x43885f
438820:	66 89 03             	mov    %ax,(%ebx)
438823:	ff 75 14             	push   0x14(%ebp)
438826:	e8 d9 fe ff ff       	call   0x438704
43882b:	8b d0                	mov    %eax,%edx
43882d:	59                   	pop    %ecx
43882e:	85 d2                	test   %edx,%edx
438830:	74 4f                	je     0x438881
438832:	8b ca                	mov    %edx,%ecx
438834:	8d 41 02             	lea    0x2(%ecx),%eax
438837:	89 45 f8             	mov    %eax,-0x8(%ebp)
43883a:	66 8b 01             	mov    (%ecx),%ax
43883d:	83 c1 02             	add    $0x2,%ecx
438840:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
438844:	75 f4                	jne    0x43883a
438846:	2b 4d f8             	sub    -0x8(%ebp),%ecx
438849:	d1 f9                	sar    $1,%ecx
43884b:	41                   	inc    %ecx