4025aa:	a9 00 00 00 80       	test   $0x80000000,%eax
4025af:	74 21                	je     0x4025d2
4025b1:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
4025b6:	03 c3                	add    %ebx,%eax
4025b8:	8b d8                	mov    %eax,%ebx
4025ba:	8b 54 24 04          	mov    0x4(%esp),%edx
4025be:	8b c3                	mov    %ebx,%eax
4025c0:	e8 cf f9 ff ff       	call   0x401f94
4025c5:	84 c0                	test   %al,%al
4025c7:	74 09                	je     0x4025d2
4025c9:	8b dd                	mov    %ebp,%ebx
4025cb:	03 df                	add    %edi,%ebx
4025cd:	e9 0d ff ff ff       	jmp    0x4024df
4025d2:	33 c0                	xor    %eax,%eax
4025d4:	eb 19                	jmp    0x4025ef
4025d6:	8b c6                	mov    %esi,%eax
4025d8:	2b c7                	sub    %edi,%eax
4025da:	01 05 b4 95 46 00    	add    %eax,0x4695b4
4025e0:	8b 45 00             	mov    0x0(%ebp),%eax
4025e3:	25 03 00 00 80       	and    $0x80000003,%eax
4025e8:	0b f0                	or     %eax,%esi
4025ea:	89 75 00             	mov    %esi,0x0(%ebp)
4025ed:	b0 01                	mov    $0x1,%al
4025ef:	59                   	pop    %ecx
4025f0:	5a                   	pop    %edx
4025f1:	5d                   	pop    %ebp
4025f2:	5f                   	pop    %edi
4025f3:	5e                   	pop    %esi
4025f4:	5b                   	pop    %ebx
4025f5:	c3                   	ret
4025f6:	8b c0                	mov    %eax,%eax
4025f8:	55                   	push   %ebp
4025f9:	8b ec                	mov    %esp,%ebp
4025fb:	51                   	push   %ecx
4025fc:	53                   	push   %ebx
4025fd:	56                   	push   %esi
4025fe:	57                   	push   %edi
4025ff:	8b f2                	mov    %edx,%esi
402601:	8b d8                	mov    %eax,%ebx
402603:	80 3d c0 95 46 00 00 	cmpb   $0x0,0x4695c0
40260a:	75 13                	jne    0x40261f
40260c:	e8 eb f3 ff ff       	call   0x4019fc
402611:	84 c0                	test   %al,%al
402613:	75 0a                	jne    0x40261f
402615:	33 c0                	xor    %eax,%eax
402617:	89 45 fc             	mov    %eax,-0x4(%ebp)
40261a:	e9 91 00 00 00       	jmp    0x4026b0
40261f:	33 d2                	xor    %edx,%edx
402621:	55                   	push   %ebp
402622:	68 a9 26 40 00       	push   $0x4026a9
402627:	64 ff 32             	push   %fs:(%edx)
40262a:	64 89 22             	mov    %esp,%fs:(%edx)
40262d:	80 3d 49 90 46 00 00 	cmpb   $0x0,0x469049
402634:	74 0a                	je     0x402640
402636:	68 c8 95 46 00       	push   $0x4695c8
40263b:	e8 18 ed ff ff       	call   0x401358
402640:	8b d6                	mov    %esi,%edx
402642:	8b c3                	mov    %ebx,%eax
402644:	e8 d3 fd ff ff       	call   0x40241c
402649:	84 c0                	test   %al,%al
40264b:	74 05                	je     0x402652
40264d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402650:	eb 36                	jmp    0x402688
402652:	8b c6                	mov    %esi,%eax
402654:	e8 8f fa ff ff       	call   0x4020e8
402659:	8b f8                	mov    %eax,%edi
40265b:	8b c3                	mov    %ebx,%eax
40265d:	83 e8 04             	sub    $0x4,%eax
402660:	8b 00                	mov    (%eax),%eax
402662:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
402667:	83 e8 04             	sub    $0x4,%eax
40266a:	3b f0                	cmp    %eax,%esi
40266c:	7d 02                	jge    0x402670
40266e:	8b c6                	mov    %esi,%eax
402670:	85 ff                	test   %edi,%edi
402672:	74 11                	je     0x402685
402674:	8b d7                	mov    %edi,%edx
402676:	8b cb                	mov    %ebx,%ecx
402678:	91                   	xchg   %eax,%ecx
402679:	e8 3a 02 00 00       	call   0x4028b8
40267e:	8b c3                	mov    %ebx,%eax
402680:	e8 f3 fb ff ff       	call   0x402278
402685:	89 7d fc             	mov    %edi,-0x4(%ebp)
402688:	33 c0                	xor    %eax,%eax
40268a:	5a                   	pop    %edx
40268b:	59                   	pop    %ecx
40268c:	59                   	pop    %ecx
40268d:	64 89 10             	mov    %edx,%fs:(%eax)
402690:	68 b0 26 40 00       	push   $0x4026b0
402695:	80 3d 49 90 46 00 00 	cmpb   $0x0,0x469049
40269c:	74 0a                	je     0x4026a8
40269e:	68 c8 95 46 00       	push   $0x4695c8
4026a3:	e8 b8 ec ff ff       	call   0x401360
4026a8:	c3                   	ret
4026a9:	e9 12 13 00 00       	jmp    0x4039c0
4026ae:	eb e5                	jmp    0x402695
4026b0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4026b3:	5f                   	pop    %edi
4026b4:	5e                   	pop    %esi
4026b5:	5b                   	pop    %ebx
4026b6:	59                   	pop    %ecx
4026b7:	5d                   	pop    %ebp
4026b8:	c3                   	ret
4026b9:	8d 40 00             	lea    0x0(%eax),%eax
4026bc:	53                   	push   %ebx
4026bd:	85 c0                	test   %eax,%eax
4026bf:	7e 15                	jle    0x4026d6
4026c1:	ff 15 3c d0 45 00    	call   *0x45d03c
4026c7:	8b d8                	mov    %eax,%ebx
4026c9:	85 db                	test   %ebx,%ebx
4026cb:	75 0b                	jne    0x4026d8
4026cd:	b0 01                	mov    $0x1,%al
4026cf:	e8 44 01 00 00       	call   0x402818
4026d4:	eb 02                	jmp    0x4026d8
4026d6:	33 db                	xor    %ebx,%ebx
4026d8:	8b c3                	mov    %ebx,%eax
4026da:	5b                   	pop    %ebx
4026db:	c3                   	ret
4026dc:	53                   	push   %ebx
4026dd:	85 c0                	test   %eax,%eax
4026df:	74 15                	je     0x4026f6
4026e1:	ff 15 40 d0 45 00    	call   *0x45d040
4026e7:	8b d8                	mov    %eax,%ebx
4026e9:	85 db                	test   %ebx,%ebx
4026eb:	74 0b                	je     0x4026f8
4026ed:	b0 02                	mov    $0x2,%al
4026ef:	e8 24 01 00 00       	call   0x402818
4026f4:	eb 02                	jmp    0x4026f8
4026f6:	33 db                	xor    %ebx,%ebx
4026f8:	8b c3                	mov    %ebx,%eax
4026fa:	5b                   	pop    %ebx
4026fb:	c3                   	ret
4026fc:	8b 08                	mov    (%eax),%ecx
4026fe:	85 c9                	test   %ecx,%ecx
402700:	74 32                	je     0x402734
402702:	85 d2                	test   %edx,%edx
402704:	74 18                	je     0x40271e
402706:	50                   	push   %eax
402707:	89 c8                	mov    %ecx,%eax
402709:	ff 15 44 d0 45 00    	call   *0x45d044
40270f:	59                   	pop    %ecx
402710:	09 c0                	or     %eax,%eax
402712:	74 19                	je     0x40272d
402714:	89 01                	mov    %eax,(%ecx)
402716:	c3                   	ret
402717:	b0 02                	mov    $0x2,%al
402719:	e9 fa 00 00 00       	jmp    0x402818
40271e:	89 10                	mov    %edx,(%eax)
402720:	89 c8                	mov    %ecx,%eax
402722:	ff 15 40 d0 45 00    	call   *0x45d040
402728:	09 c0                	or     %eax,%eax
40272a:	75 eb                	jne    0x402717
40272c:	c3                   	ret
40272d:	b0 01                	mov    $0x1,%al
40272f:	e9 e4 00 00 00       	jmp    0x402818
402734:	85 d2                	test   %edx,%edx
402736:	74 10                	je     0x402748
402738:	50                   	push   %eax
402739:	89 d0                	mov    %edx,%eax
40273b:	ff 15 3c d0 45 00    	call   *0x45d03c
402741:	59                   	pop    %ecx
402742:	09 c0                	or     %eax,%eax
402744:	74 e7                	je     0x40272d
402746:	89 01                	mov    %eax,(%ecx)
402748:	c3                   	ret
402749:	8d 40 00             	lea    0x0(%eax),%eax
40274c:	e8 3b 36 00 00       	call   0x405d8c
402751:	83 b8 00 00 00 00 00 	cmpl   $0x0,0x0(%eax)
402758:	74 0f                	je     0x402769
40275a:	e8 2d 36 00 00       	call   0x405d8c
40275f:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
402765:	8b 40 08             	mov    0x8(%eax),%eax
402768:	c3                   	ret
402769:	33 c0                	xor    %eax,%eax
40276b:	c3                   	ret
40276c:	e8 1b 36 00 00       	call   0x405d8c
402771:	83 b8 00 00 00 00 00 	cmpl   $0x0,0x0(%eax)
402778:	74 0f                	je     0x402789
40277a:	e8 0d 36 00 00       	call   0x405d8c
40277f:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
402785:	8b 40 04             	mov    0x4(%eax),%eax
402788:	c3                   	ret
402789:	33 c0                	xor    %eax,%eax
40278b:	c3                   	ret
40278c:	53                   	push   %ebx
40278d:	56                   	push   %esi
40278e:	e8 f9 35 00 00       	call   0x405d8c
402793:	83 b8 00 00 00 00 00 	cmpl   $0x0,0x0(%eax)
40279a:	74 1a                	je     0x4027b6
40279c:	e8 eb 35 00 00       	call   0x405d8c
4027a1:	8b b0 00 00 00 00    	mov    0x0(%eax),%esi
4027a7:	8b 5e 08             	mov    0x8(%esi),%ebx
4027aa:	e8 dd 35 00 00       	call   0x405d8c
4027af:	33 c0                	xor    %eax,%eax
4027b1:	89 46 08             	mov    %eax,0x8(%esi)
4027b4:	eb 02                	jmp    0x4027b8
4027b6:	33 db                	xor    %ebx,%ebx
4027b8:	8b c3                	mov    %ebx,%eax
4027ba:	5e                   	pop    %esi
4027bb:	5b                   	pop    %ebx
4027bc:	c3                   	ret
4027bd:	8d 40 00             	lea    0x0(%eax),%eax
4027c0:	89 15 04 d0 45 00    	mov    %edx,0x45d004
4027c6:	e8 d9 17 00 00       	call   0x403fa4
4027cb:	c3                   	ret
4027cc:	53                   	push   %ebx
4027cd:	56                   	push   %esi
4027ce:	8b f2                	mov    %edx,%esi
4027d0:	8b d8                	mov    %eax,%ebx
4027d2:	80 e3 7f             	and    $0x7f,%bl
4027d5:	83 3d 08 90 46 00 00 	cmpl   $0x0,0x469008
4027dc:	74 0a                	je     0x4027e8
4027de:	8b d6                	mov    %esi,%edx
4027e0:	8b c3                	mov    %ebx,%eax
4027e2:	ff 15 08 90 46 00    	call   *0x469008
4027e8:	84 db                	test   %bl,%bl
4027ea:	75 0d                	jne    0x4027f9
4027ec:	e8 9b 35 00 00       	call   0x405d8c
4027f1:	8b 98 04 00 00 00    	mov    0x4(%eax),%ebx
4027f7:	eb 0f                	jmp    0x402808
4027f9:	80 fb 18             	cmp    $0x18,%bl
4027fc:	77 0a                	ja     0x402808
4027fe:	33 c0                	xor    %eax,%eax
402800:	8a c3                	mov    %bl,%al
402802:	8a 98 48 d0 45 00    	mov    0x45d048(%eax),%bl
402808:	33 c0                	xor    %eax,%eax
40280a:	8a c3                	mov    %bl,%al
40280c:	8b d6                	mov    %esi,%edx
40280e:	e8 ad ff ff ff       	call   0x4027c0
402813:	5e                   	pop    %esi
402814:	5b                   	pop    %ebx
402815:	c3                   	ret
402816:	8b c0                	mov    %eax,%eax
402818:	83 e0 7f             	and    $0x7f,%eax
40281b:	8b 14 24             	mov    (%esp),%edx
40281e:	e9 a9 ff ff ff       	jmp    0x4027cc
402823:	c3                   	ret
402824:	50                   	push   %eax
402825:	52                   	push   %edx
402826:	51                   	push   %ecx
402827:	e8 60 35 00 00       	call   0x405d8c
40282c:	83 b8 04 00 00 00 00 	cmpl   $0x0,0x4(%eax)
402833:	59                   	pop    %ecx
402834:	5a                   	pop    %edx
402835:	58                   	pop    %eax
402836:	75 01                	jne    0x402839
402838:	c3                   	ret
402839:	31 c0                	xor    %eax,%eax
40283b:	e9 d8 ff ff ff       	jmp    0x402818
402840:	c3                   	ret
402841:	8d 40 00             	lea    0x0(%eax),%eax
402844:	53                   	push   %ebx
402845:	8b d8                	mov    %eax,%ebx
402847:	e8 40 35 00 00       	call   0x405d8c
40284c:	89 98 04 00 00 00    	mov    %ebx,0x4(%eax)
402852:	5b                   	pop    %ebx
402853:	c3                   	ret
402854:	56                   	push   %esi
402855:	57                   	push   %edi
402856:	89 c6                	mov    %eax,%esi
402858:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40285c:	31 c0                	xor    %eax,%eax
40285e:	0a 06                	or     (%esi),%al
402860:	74 2b                	je     0x40288d
402862:	85 d2                	test   %edx,%edx
402864:	7e 18                	jle    0x40287e
402866:	39 c2                	cmp    %eax,%edx
402868:	7f 1b                	jg     0x402885
40286a:	29 d0                	sub    %edx,%eax
40286c:	40                   	inc    %eax
40286d:	85 c9                	test   %ecx,%ecx
40286f:	7c 14                	jl     0x402885
402871:	39 c1                	cmp    %eax,%ecx
402873:	7f 14                	jg     0x402889
402875:	01 d6                	add    %edx,%esi
402877:	88 0f                	mov    %cl,(%edi)
402879:	47                   	inc    %edi
40287a:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40287c:	eb 11                	jmp    0x40288f
40287e:	ba 01 00 00 00       	mov    $0x1,%edx
402883:	eb e5                	jmp    0x40286a
402885:	31 c9                	xor    %ecx,%ecx
402887:	eb ec                	jmp    0x402875
402889:	89 c1                	mov    %eax,%ecx
40288b:	eb e8                	jmp    0x402875
40288d:	88 07                	mov    %al,(%edi)
40288f:	5f                   	pop    %edi
402890:	5e                   	pop    %esi
402891:	c2 04 00             	ret    $0x4
402894:	c3                   	ret
402895:	8d 40 00             	lea    0x0(%eax),%eax
402898:	53                   	push   %ebx
402899:	e8 ee 34 00 00       	call   0x405d8c
40289e:	8b 98 04 00 00 00    	mov    0x4(%eax),%ebx
4028a4:	e8 e3 34 00 00       	call   0x405d8c
4028a9:	33 d2                	xor    %edx,%edx
4028ab:	89 90 04 00 00 00    	mov    %edx,0x4(%eax)
4028b1:	8b c3                	mov    %ebx,%eax
4028b3:	5b                   	pop    %ebx
4028b4:	c3                   	ret
4028b5:	8d 40 00             	lea    0x0(%eax),%eax
4028b8:	56                   	push   %esi
4028b9:	57                   	push   %edi
4028ba:	89 c6                	mov    %eax,%esi
4028bc:	89 d7                	mov    %edx,%edi
4028be:	89 c8                	mov    %ecx,%eax
4028c0:	39 f7                	cmp    %esi,%edi
4028c2:	77 13                	ja     0x4028d7
4028c4:	74 2f                	je     0x4028f5
4028c6:	c1 f9 02             	sar    $0x2,%ecx
4028c9:	78 2a                	js     0x4028f5
4028cb:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4028cd:	89 c1                	mov    %eax,%ecx
4028cf:	83 e1 03             	and    $0x3,%ecx
4028d2:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4028d4:	5f                   	pop    %edi
4028d5:	5e                   	pop    %esi
4028d6:	c3                   	ret
4028d7:	8d 74 31 fc          	lea    -0x4(%ecx,%esi,1),%esi
4028db:	8d 7c 39 fc          	lea    -0x4(%ecx,%edi,1),%edi
4028df:	c1 f9 02             	sar    $0x2,%ecx
4028e2:	78 11                	js     0x4028f5
4028e4:	fd                   	std
4028e5:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4028e7:	89 c1                	mov    %eax,%ecx
4028e9:	83 e1 03             	and    $0x3,%ecx
4028ec:	83 c6 03             	add    $0x3,%esi
4028ef:	83 c7 03             	add    $0x3,%edi
4028f2:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4028f4:	fc                   	cld
4028f5:	5f                   	pop    %edi
4028f6:	5e                   	pop    %esi
4028f7:	c3                   	ret
4028f8:	53                   	push   %ebx
4028f9:	56                   	push   %esi
4028fa:	57                   	push   %edi
4028fb:	55                   	push   %ebp
4028fc:	8b f2                	mov    %edx,%esi
4028fe:	8b d8                	mov    %eax,%ebx
402900:	eb 08                	jmp    0x40290a
402902:	53                   	push   %ebx
402903:	e8 14 e9 ff ff       	call   0x40121c
402908:	8b d8                	mov    %eax,%ebx
40290a:	8a 03                	mov    (%ebx),%al
40290c:	84 c0                	test   %al,%al
40290e:	74 04                	je     0x402914
402910:	3c 20                	cmp    $0x20,%al
402912:	76 ee                	jbe    0x402902
402914:	80 3b 22             	cmpb   $0x22,(%ebx)
402917:	75 0b                	jne    0x402924