43857f:	33 c0                	xor    %eax,%eax
438581:	50                   	push   %eax
438582:	52                   	push   %edx
438583:	e8 68 02 00 00       	call   0x4387f0
438588:	5e                   	pop    %esi
438589:	5d                   	pop    %ebp
43858a:	c2 04 00             	ret    $0x4
43858d:	8b c2                	mov    %edx,%eax
43858f:	57                   	push   %edi
438590:	8d 78 02             	lea    0x2(%eax),%edi
438593:	66 8b 08             	mov    (%eax),%cx
438596:	83 c0 02             	add    $0x2,%eax
438599:	66 85 c9             	test   %cx,%cx
43859c:	75 f5                	jne    0x438593
43859e:	2b c7                	sub    %edi,%eax
4385a0:	8b ce                	mov    %esi,%ecx
4385a2:	5f                   	pop    %edi
4385a3:	d1 f8                	sar    $1,%eax
4385a5:	50                   	push   %eax
4385a6:	52                   	push   %edx
4385a7:	e8 44 02 00 00       	call   0x4387f0
4385ac:	5e                   	pop    %esi
4385ad:	5d                   	pop    %ebp
4385ae:	c2 04 00             	ret    $0x4
4385b1:	cc                   	int3
4385b2:	cc                   	int3
4385b3:	cc                   	int3
4385b4:	cc                   	int3
4385b5:	cc                   	int3
4385b6:	cc                   	int3
4385b7:	cc                   	int3
4385b8:	cc                   	int3
4385b9:	cc                   	int3
4385ba:	cc                   	int3
4385bb:	cc                   	int3
4385bc:	cc                   	int3
4385bd:	cc                   	int3
4385be:	cc                   	int3
4385bf:	cc                   	int3
4385c0:	56                   	push   %esi
4385c1:	8b f1                	mov    %ecx,%esi
4385c3:	8b 46 14             	mov    0x14(%esi),%eax
4385c6:	83 f8 08             	cmp    $0x8,%eax
4385c9:	72 36                	jb     0x438601
4385cb:	8b 16                	mov    (%esi),%edx
4385cd:	40                   	inc    %eax
4385ce:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
4385d3:	77 41                	ja     0x438616
4385d5:	03 c0                	add    %eax,%eax
4385d7:	3d 00 10 00 00       	cmp    $0x1000,%eax
4385dc:	72 1a                	jb     0x4385f8
4385de:	f6 c2 1f             	test   $0x1f,%dl
4385e1:	75 33                	jne    0x438616
4385e3:	8b 42 fc             	mov    -0x4(%edx),%eax
4385e6:	3b c2                	cmp    %edx,%eax
4385e8:	73 2c                	jae    0x438616
4385ea:	2b d0                	sub    %eax,%edx
4385ec:	83 fa 04             	cmp    $0x4,%edx
4385ef:	72 25                	jb     0x438616
4385f1:	83 fa 23             	cmp    $0x23,%edx
4385f4:	77 20                	ja     0x438616
4385f6:	8b d0                	mov    %eax,%edx
4385f8:	52                   	push   %edx
4385f9:	e8 d2 7e 0b 00       	call   0x4f04d0
4385fe:	83 c4 04             	add    $0x4,%esp
438601:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
438608:	33 c0                	xor    %eax,%eax
43860a:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
438611:	66 89 06             	mov    %ax,(%esi)
438614:	5e                   	pop    %esi
438615:	c3                   	ret
438616:	e8 14 49 1b 00       	call   0x5ecf2f
43861b:	cc                   	int3
43861c:	cc                   	int3
43861d:	cc                   	int3
43861e:	cc                   	int3
43861f:	cc                   	int3
438620:	55                   	push   %ebp
438621:	8b ec                	mov    %esp,%ebp
438623:	8b 55 08             	mov    0x8(%ebp),%edx
438626:	33 c0                	xor    %eax,%eax
438628:	56                   	push   %esi
438629:	8b f1                	mov    %ecx,%esi
43862b:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
438632:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
438639:	66 89 06             	mov    %ax,(%esi)
43863c:	66 39 02             	cmp    %ax,(%edx)
43863f:	75 12                	jne    0x438653
438641:	33 c9                	xor    %ecx,%ecx
438643:	51                   	push   %ecx
438644:	52                   	push   %edx
438645:	8b ce                	mov    %esi,%ecx
438647:	e8 a4 01 00 00       	call   0x4387f0
43864c:	8b c6                	mov    %esi,%eax
43864e:	5e                   	pop    %esi
43864f:	5d                   	pop    %ebp
438650:	c2 04 00             	ret    $0x4
438653:	8b ca                	mov    %edx,%ecx
438655:	57                   	push   %edi
438656:	8d 79 02             	lea    0x2(%ecx),%edi
438659:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
438660:	66 8b 01             	mov    (%ecx),%ax
438663:	83 c1 02             	add    $0x2,%ecx
438666:	66 85 c0             	test   %ax,%ax
438669:	75 f5                	jne    0x438660
43866b:	2b cf                	sub    %edi,%ecx
43866d:	d1 f9                	sar    $1,%ecx
43866f:	5f                   	pop    %edi
438670:	51                   	push   %ecx
438671:	52                   	push   %edx
438672:	8b ce                	mov    %esi,%ecx
438674:	e8 77 01 00 00       	call   0x4387f0
438679:	8b c6                	mov    %esi,%eax
43867b:	5e                   	pop    %esi
43867c:	5d                   	pop    %ebp
43867d:	c2 04 00             	ret    $0x4
438680:	55                   	push   %ebp
438681:	8b ec                	mov    %esp,%ebp
438683:	56                   	push   %esi
438684:	8b f1                	mov    %ecx,%esi
438686:	33 c0                	xor    %eax,%eax
438688:	6a ff                	push   $0xffffffff
43868a:	50                   	push   %eax
43868b:	ff 75 08             	push   0x8(%ebp)
43868e:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
438695:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
43869c:	66 89 06             	mov    %ax,(%esi)
43869f:	e8 4c 02 00 00       	call   0x4388f0
4386a4:	8b c6                	mov    %esi,%eax
4386a6:	5e                   	pop    %esi
4386a7:	5d                   	pop    %ebp
4386a8:	c2 04 00             	ret    $0x4
4386ab:	cc                   	int3
4386ac:	cc                   	int3
4386ad:	cc                   	int3
4386ae:	cc                   	int3
4386af:	cc                   	int3
4386b0:	56                   	push   %esi
4386b1:	8b f1                	mov    %ecx,%esi
4386b3:	8b 46 14             	mov    0x14(%esi),%eax
4386b6:	83 f8 10             	cmp    $0x10,%eax
4386b9:	72 2d                	jb     0x4386e8
4386bb:	8b 16                	mov    (%esi),%edx
4386bd:	40                   	inc    %eax
4386be:	3d 00 10 00 00       	cmp    $0x1000,%eax
4386c3:	72 1a                	jb     0x4386df
4386c5:	f6 c2 1f             	test   $0x1f,%dl
4386c8:	75 31                	jne    0x4386fb
4386ca:	8b 42 fc             	mov    -0x4(%edx),%eax
4386cd:	3b c2                	cmp    %edx,%eax
4386cf:	73 2a                	jae    0x4386fb
4386d1:	2b d0                	sub    %eax,%edx
4386d3:	83 fa 04             	cmp    $0x4,%edx
4386d6:	72 23                	jb     0x4386fb
4386d8:	83 fa 23             	cmp    $0x23,%edx
4386db:	77 1e                	ja     0x4386fb
4386dd:	8b d0                	mov    %eax,%edx
4386df:	52                   	push   %edx
4386e0:	e8 eb 7d 0b 00       	call   0x4f04d0
4386e5:	83 c4 04             	add    $0x4,%esp
4386e8:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
4386ef:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4386f6:	c6 06 00             	movb   $0x0,(%esi)
4386f9:	5e                   	pop    %esi
4386fa:	c3                   	ret
4386fb:	e8 2f 48 1b 00       	call   0x5ecf2f
438700:	cc                   	int3
438701:	cc                   	int3
438702:	cc                   	int3
438703:	cc                   	int3
438704:	cc                   	int3
438705:	cc                   	int3
438706:	cc                   	int3
438707:	cc                   	int3
438708:	cc                   	int3
438709:	cc                   	int3
43870a:	cc                   	int3
43870b:	cc                   	int3
43870c:	cc                   	int3
43870d:	cc                   	int3
43870e:	cc                   	int3
43870f:	cc                   	int3
438710:	55                   	push   %ebp
438711:	8b ec                	mov    %esp,%ebp
438713:	56                   	push   %esi
438714:	ff 75 08             	push   0x8(%ebp)
438717:	8b f1                	mov    %ecx,%esi
438719:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
438720:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
438727:	c6 06 00             	movb   $0x0,(%esi)
43872a:	e8 51 03 00 00       	call   0x438a80
43872f:	8b c6                	mov    %esi,%eax
438731:	5e                   	pop    %esi
438732:	5d                   	pop    %ebp
438733:	c2 04 00             	ret    $0x4
438736:	cc                   	int3
438737:	cc                   	int3
438738:	cc                   	int3
438739:	cc                   	int3
43873a:	cc                   	int3
43873b:	cc                   	int3
43873c:	cc                   	int3
43873d:	cc                   	int3
43873e:	cc                   	int3
43873f:	cc                   	int3
438740:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
438744:	72 03                	jb     0x438749
438746:	8b 01                	mov    (%ecx),%eax
438748:	c3                   	ret
438749:	8b c1                	mov    %ecx,%eax
43874b:	c3                   	ret
43874c:	cc                   	int3
43874d:	cc                   	int3
43874e:	cc                   	int3
43874f:	cc                   	int3
438750:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
438754:	72 03                	jb     0x438759
438756:	8b 01                	mov    (%ecx),%eax
438758:	c3                   	ret
438759:	8b c1                	mov    %ecx,%eax
43875b:	c3                   	ret
43875c:	cc                   	int3
43875d:	cc                   	int3
43875e:	cc                   	int3
43875f:	cc                   	int3
438760:	55                   	push   %ebp
438761:	8b ec                	mov    %esp,%ebp
438763:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
438767:	56                   	push   %esi
438768:	57                   	push   %edi
438769:	8b 7d 0c             	mov    0xc(%ebp),%edi
43876c:	8b f1                	mov    %ecx,%esi
43876e:	74 55                	je     0x4387c5
438770:	8b 46 14             	mov    0x14(%esi),%eax
438773:	83 f8 08             	cmp    $0x8,%eax
438776:	72 4d                	jb     0x4387c5
438778:	53                   	push   %ebx
438779:	8b 1e                	mov    (%esi),%ebx
43877b:	85 ff                	test   %edi,%edi
43877d:	74 11                	je     0x438790
43877f:	8d 04 3f             	lea    (%edi,%edi,1),%eax
438782:	50                   	push   %eax
438783:	53                   	push   %ebx
438784:	56                   	push   %esi
438785:	e8 76 a7 1a 00       	call   0x5e2f00
43878a:	8b 46 14             	mov    0x14(%esi),%eax
43878d:	83 c4 0c             	add    $0xc,%esp
438790:	40                   	inc    %eax
438791:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
438796:	77 43                	ja     0x4387db
438798:	03 c0                	add    %eax,%eax
43879a:	3d 00 10 00 00       	cmp    $0x1000,%eax
43879f:	72 1a                	jb     0x4387bb
4387a1:	f6 c3 1f             	test   $0x1f,%bl
4387a4:	75 35                	jne    0x4387db
4387a6:	8b 43 fc             	mov    -0x4(%ebx),%eax
4387a9:	3b c3                	cmp    %ebx,%eax
4387ab:	73 2e                	jae    0x4387db
4387ad:	2b d8                	sub    %eax,%ebx
4387af:	83 fb 04             	cmp    $0x4,%ebx
4387b2:	72 27                	jb     0x4387db
4387b4:	83 fb 23             	cmp    $0x23,%ebx
4387b7:	77 22                	ja     0x4387db
4387b9:	8b d8                	mov    %eax,%ebx
4387bb:	53                   	push   %ebx
4387bc:	e8 0f 7d 0b 00       	call   0x4f04d0
4387c1:	83 c4 04             	add    $0x4,%esp
4387c4:	5b                   	pop    %ebx
4387c5:	89 7e 10             	mov    %edi,0x10(%esi)
4387c8:	33 c0                	xor    %eax,%eax
4387ca:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
4387d1:	66 89 04 7e          	mov    %ax,(%esi,%edi,2)
4387d5:	5f                   	pop    %edi
4387d6:	5e                   	pop    %esi
4387d7:	5d                   	pop    %ebp
4387d8:	c2 08 00             	ret    $0x8
4387db:	e8 4f 47 1b 00       	call   0x5ecf2f
4387e0:	cc                   	int3
4387e1:	cc                   	int3
4387e2:	cc                   	int3
4387e3:	cc                   	int3
4387e4:	cc                   	int3
4387e5:	cc                   	int3
4387e6:	cc                   	int3
4387e7:	cc                   	int3
4387e8:	cc                   	int3
4387e9:	cc                   	int3
4387ea:	cc                   	int3
4387eb:	cc                   	int3
4387ec:	cc                   	int3
4387ed:	cc                   	int3
4387ee:	cc                   	int3
4387ef:	cc                   	int3
4387f0:	55                   	push   %ebp
4387f1:	8b ec                	mov    %esp,%ebp
4387f3:	53                   	push   %ebx
4387f4:	8b 5d 08             	mov    0x8(%ebp),%ebx
4387f7:	56                   	push   %esi
4387f8:	8b f1                	mov    %ecx,%esi
4387fa:	85 db                	test   %ebx,%ebx
4387fc:	74 48                	je     0x438846
4387fe:	8b 4e 14             	mov    0x14(%esi),%ecx
438801:	83 f9 08             	cmp    $0x8,%ecx
438804:	72 04                	jb     0x43880a
438806:	8b 06                	mov    (%esi),%eax
438808:	eb 02                	jmp    0x43880c
43880a:	8b c6                	mov    %esi,%eax
43880c:	3b d8                	cmp    %eax,%ebx
43880e:	72 36                	jb     0x438846
438810:	83 f9 08             	cmp    $0x8,%ecx
438813:	72 04                	jb     0x438819
438815:	8b 16                	mov    (%esi),%edx
438817:	eb 02                	jmp    0x43881b
438819:	8b d6                	mov    %esi,%edx
43881b:	8b 46 10             	mov    0x10(%esi),%eax
43881e:	8d 04 42             	lea    (%edx,%eax,2),%eax
438821:	3b c3                	cmp    %ebx,%eax
438823:	76 21                	jbe    0x438846
438825:	83 f9 08             	cmp    $0x8,%ecx
438828:	72 04                	jb     0x43882e
43882a:	8b 06                	mov    (%esi),%eax
43882c:	eb 02                	jmp    0x438830
43882e:	8b c6                	mov    %esi,%eax
438830:	ff 75 0c             	push   0xc(%ebp)
438833:	2b d8                	sub    %eax,%ebx
438835:	8b ce                	mov    %esi,%ecx
438837:	d1 fb                	sar    $1,%ebx
438839:	53                   	push   %ebx
43883a:	56                   	push   %esi
43883b:	e8 b0 00 00 00       	call   0x4388f0
438840:	5e                   	pop    %esi
438841:	5b                   	pop    %ebx
438842:	5d                   	pop    %ebp
438843:	c2 08 00             	ret    $0x8
438846:	57                   	push   %edi
438847:	8b 7d 0c             	mov    0xc(%ebp),%edi
43884a:	81 ff fe ff ff 7f    	cmp    $0x7ffffffe,%edi
438850:	0f 87 85 00 00 00    	ja     0x4388db
438856:	8b 46 14             	mov    0x14(%esi),%eax
438859:	3b c7                	cmp    %edi,%eax
43885b:	73 19                	jae    0x438876
43885d:	ff 76 10             	push   0x10(%esi)
438860:	8b ce                	mov    %esi,%ecx
438862:	57                   	push   %edi
438863:	e8 78 08 00 00       	call   0x4390e0
438868:	85 ff                	test   %edi,%edi
43886a:	74 66                	je     0x4388d2
43886c:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
438870:	72 2e                	jb     0x4388a0
438872:	8b 0e                	mov    (%esi),%ecx