4057e7:	d1 e9                	shr    $1,%ecx
4057e9:	f3 a7                	repz cmpsl %es:(%edi),%ds:(%esi)
4057eb:	75 07                	jne    0x4057f4
4057ed:	89 d1                	mov    %edx,%ecx
4057ef:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
4057f1:	75 01                	jne    0x4057f4
4057f3:	40                   	inc    %eax
4057f4:	5f                   	pop    %edi
4057f5:	5e                   	pop    %esi
4057f6:	c3                   	ret
4057f7:	90                   	nop
4057f8:	53                   	push   %ebx
4057f9:	56                   	push   %esi
4057fa:	57                   	push   %edi
4057fb:	8b fa                	mov    %edx,%edi
4057fd:	8b f0                	mov    %eax,%esi
4057ff:	8b c6                	mov    %esi,%eax
405801:	e8 ee e0 ff ff       	call   0x4038f4
405806:	8b d8                	mov    %eax,%ebx
405808:	8b c6                	mov    %esi,%eax
40580a:	e8 e5 e2 ff ff       	call   0x403af4
40580f:	8b d0                	mov    %eax,%edx
405811:	8b c7                	mov    %edi,%eax
405813:	8b cb                	mov    %ebx,%ecx
405815:	e8 6a df ff ff       	call   0x403784
40581a:	85 db                	test   %ebx,%ebx
40581c:	7e 09                	jle    0x405827
40581e:	53                   	push   %ebx
40581f:	8b 07                	mov    (%edi),%eax
405821:	50                   	push   %eax
405822:	e8 a1 f1 ff ff       	call   0x4049c8
405827:	5f                   	pop    %edi
405828:	5e                   	pop    %esi
405829:	5b                   	pop    %ebx
40582a:	c3                   	ret
40582b:	90                   	nop
40582c:	53                   	push   %ebx
40582d:	56                   	push   %esi
40582e:	8b f2                	mov    %edx,%esi
405830:	8b d8                	mov    %eax,%ebx
405832:	6a ff                	push   $0xffffffff
405834:	8b c6                	mov    %esi,%eax
405836:	e8 b9 e2 ff ff       	call   0x403af4
40583b:	50                   	push   %eax
40583c:	6a ff                	push   $0xffffffff
40583e:	8b c3                	mov    %ebx,%eax
405840:	e8 af e2 ff ff       	call   0x403af4
405845:	50                   	push   %eax
405846:	6a 01                	push   $0x1
405848:	68 00 04 00 00       	push   $0x400
40584d:	e8 1a f6 ff ff       	call   0x404e6c
405852:	83 e8 02             	sub    $0x2,%eax
405855:	5e                   	pop    %esi
405856:	5b                   	pop    %ebx
405857:	c3                   	ret
405858:	e8 cf ff ff ff       	call   0x40582c
40585d:	c3                   	ret
40585e:	8b c0                	mov    %eax,%eax
405860:	57                   	push   %edi
405861:	56                   	push   %esi
405862:	53                   	push   %ebx
405863:	89 c6                	mov    %eax,%esi
405865:	89 d7                	mov    %edx,%edi
405867:	89 cb                	mov    %ecx,%ebx
405869:	32 c0                	xor    %al,%al
40586b:	85 c9                	test   %ecx,%ecx
40586d:	74 05                	je     0x405874
40586f:	f2 ae                	repnz scas %es:(%edi),%al
405871:	75 01                	jne    0x405874
405873:	41                   	inc    %ecx
405874:	29 cb                	sub    %ecx,%ebx
405876:	89 f7                	mov    %esi,%edi
405878:	89 d6                	mov    %edx,%esi
40587a:	89 fa                	mov    %edi,%edx
40587c:	89 d9                	mov    %ebx,%ecx
40587e:	c1 e9 02             	shr    $0x2,%ecx
405881:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
405883:	89 d9                	mov    %ebx,%ecx
405885:	83 e1 03             	and    $0x3,%ecx
405888:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40588a:	aa                   	stos   %al,%es:(%edi)
40588b:	89 d0                	mov    %edx,%eax
40588d:	5b                   	pop    %ebx
40588e:	5e                   	pop    %esi
40588f:	5f                   	pop    %edi
405890:	c3                   	ret
405891:	8d 40 00             	lea    0x0(%eax),%eax
405894:	55                   	push   %ebp
405895:	8b ec                	mov    %esp,%ebp
405897:	6a 00                	push   $0x0
405899:	6a 00                	push   $0x0
40589b:	6a 00                	push   $0x0
40589d:	53                   	push   %ebx
40589e:	56                   	push   %esi
40589f:	57                   	push   %edi
4058a0:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4058a3:	8b fa                	mov    %edx,%edi
4058a5:	8b f0                	mov    %eax,%esi
4058a7:	33 c0                	xor    %eax,%eax
4058a9:	55                   	push   %ebp
4058aa:	68 22 59 40 00       	push   $0x405922
4058af:	64 ff 30             	push   %fs:(%eax)
4058b2:	64 89 20             	mov    %esp,%fs:(%eax)
4058b5:	8b 16                	mov    (%esi),%edx
4058b7:	8b c7                	mov    %edi,%eax
4058b9:	e8 7a e3 ff ff       	call   0x403c38
4058be:	8b d8                	mov    %eax,%ebx
4058c0:	85 db                	test   %ebx,%ebx
4058c2:	7e 41                	jle    0x405905
4058c4:	8d 45 f8             	lea    -0x8(%ebp),%eax
4058c7:	50                   	push   %eax
4058c8:	8b cb                	mov    %ebx,%ecx
4058ca:	49                   	dec    %ecx
4058cb:	8b 06                	mov    (%esi),%eax
4058cd:	ba 01 00 00 00       	mov    $0x1,%edx
4058d2:	e8 7d e2 ff ff       	call   0x403b54
4058d7:	ff 75 f8             	push   -0x8(%ebp)
4058da:	ff 75 fc             	push   -0x4(%ebp)
4058dd:	8b c7                	mov    %edi,%eax
4058df:	e8 10 e0 ff ff       	call   0x4038f4
4058e4:	8b d0                	mov    %eax,%edx
4058e6:	03 d3                	add    %ebx,%edx
4058e8:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4058eb:	8b 06                	mov    (%esi),%eax
4058ed:	e8 1a 7e 00 00       	call   0x40d70c
4058f2:	ff 75 f4             	push   -0xc(%ebp)
4058f5:	8b c6                	mov    %esi,%eax
4058f7:	ba 03 00 00 00       	mov    $0x3,%edx
4058fc:	e8 b3 e0 ff ff       	call   0x4039b4
405901:	b3 01                	mov    $0x1,%bl
405903:	eb 02                	jmp    0x405907
405905:	33 db                	xor    %ebx,%ebx
405907:	33 c0                	xor    %eax,%eax
405909:	5a                   	pop    %edx
40590a:	59                   	pop    %ecx
40590b:	59                   	pop    %ecx
40590c:	64 89 10             	mov    %edx,%fs:(%eax)
40590f:	68 29 59 40 00       	push   $0x405929
405914:	8d 45 f4             	lea    -0xc(%ebp),%eax
405917:	ba 02 00 00 00       	mov    $0x2,%edx
40591c:	e8 97 dd ff ff       	call   0x4036b8
405921:	c3                   	ret
405922:	e9 e1 d7 ff ff       	jmp    0x403108
405927:	eb eb                	jmp    0x405914
405929:	8b c3                	mov    %ebx,%eax
40592b:	5f                   	pop    %edi
40592c:	5e                   	pop    %esi
40592d:	5b                   	pop    %ebx
40592e:	8b e5                	mov    %ebp,%esp
405930:	5d                   	pop    %ebp
405931:	c3                   	ret
405932:	8b c0                	mov    %eax,%eax
405934:	57                   	push   %edi
405935:	56                   	push   %esi
405936:	89 d7                	mov    %edx,%edi
405938:	96                   	xchg   %eax,%esi
405939:	83 c9 ff             	or     $0xffffffff,%ecx
40593c:	31 c0                	xor    %eax,%eax
40593e:	f2 ae                	repnz scas %es:(%edi),%al
405940:	f7 d1                	not    %ecx
405942:	89 d7                	mov    %edx,%edi
405944:	31 d2                	xor    %edx,%edx
405946:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
405948:	8a 46 ff             	mov    -0x1(%esi),%al
40594b:	8a 57 ff             	mov    -0x1(%edi),%dl
40594e:	29 d0                	sub    %edx,%eax
405950:	5e                   	pop    %esi
405951:	5f                   	pop    %edi
405952:	c3                   	ret
405953:	90                   	nop
405954:	57                   	push   %edi
405955:	56                   	push   %esi
405956:	53                   	push   %ebx
405957:	89 d7                	mov    %edx,%edi
405959:	89 c6                	mov    %eax,%esi
40595b:	89 cb                	mov    %ecx,%ebx
40595d:	31 c0                	xor    %eax,%eax
40595f:	09 c9                	or     %ecx,%ecx
405961:	74 14                	je     0x405977
405963:	f2 ae                	repnz scas %es:(%edi),%al
405965:	29 cb                	sub    %ecx,%ebx
405967:	89 d9                	mov    %ebx,%ecx
405969:	89 d7                	mov    %edx,%edi
40596b:	31 d2                	xor    %edx,%edx
40596d:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
40596f:	8a 46 ff             	mov    -0x1(%esi),%al
405972:	8a 57 ff             	mov    -0x1(%edi),%dl
405975:	29 d0                	sub    %edx,%eax
405977:	5b                   	pop    %ebx
405978:	5e                   	pop    %esi
405979:	5f                   	pop    %edi
40597a:	c3                   	ret
40597b:	90                   	nop
40597c:	97                   	xchg   %eax,%edi
40597d:	92                   	xchg   %eax,%edx
40597e:	83 c9 ff             	or     $0xffffffff,%ecx
405981:	31 c0                	xor    %eax,%eax
405983:	39 f8                	cmp    %edi,%eax
405985:	74 06                	je     0x40598d
405987:	f2 ae                	repnz scas %es:(%edi),%al
405989:	48                   	dec    %eax
40598a:	48                   	dec    %eax
40598b:	29 c8                	sub    %ecx,%eax
40598d:	89 d7                	mov    %edx,%edi
40598f:	c3                   	ret
405990:	57                   	push   %edi
405991:	89 d7                	mov    %edx,%edi
405993:	85 c0                	test   %eax,%eax
405995:	75 27                	jne    0x4059be
405997:	81 ec 04 01 00 00    	sub    $0x104,%esp
40599d:	89 e1                	mov    %esp,%ecx
40599f:	68 04 01 00 00       	push   $0x104
4059a4:	51                   	push   %ecx
4059a5:	6a 00                	push   $0x0
4059a7:	e8 28 f5 ff ff       	call   0x404ed4
4059ac:	91                   	xchg   %eax,%ecx
4059ad:	89 e2                	mov    %esp,%edx
4059af:	89 f8                	mov    %edi,%eax
4059b1:	e8 ce dd ff ff       	call   0x403784
4059b6:	81 c4 04 01 00 00    	add    $0x104,%esp
4059bc:	5f                   	pop    %edi
4059bd:	c3                   	ret
4059be:	50                   	push   %eax
4059bf:	e8 e0 f4 ff ff       	call   0x404ea4
4059c4:	59                   	pop    %ecx
4059c5:	41                   	inc    %ecx
4059c6:	e8 85 7e 00 00       	call   0x40d850
4059cb:	89 c2                	mov    %eax,%edx
4059cd:	e8 8e 7e 00 00       	call   0x40d860
4059d2:	e2 f2                	loop   0x4059c6
4059d4:	89 c1                	mov    %eax,%ecx
4059d6:	29 d1                	sub    %edx,%ecx
4059d8:	83 f9 02             	cmp    $0x2,%ecx
4059db:	7c 0d                	jl     0x4059ea
4059dd:	80 3a 22             	cmpb   $0x22,(%edx)
4059e0:	75 08                	jne    0x4059ea
4059e2:	80 78 ff 22          	cmpb   $0x22,-0x1(%eax)
4059e6:	75 02                	jne    0x4059ea
4059e8:	42                   	inc    %edx
4059e9:	48                   	dec    %eax
4059ea:	29 d0                	sub    %edx,%eax
4059ec:	91                   	xchg   %eax,%ecx
4059ed:	97                   	xchg   %eax,%edi
4059ee:	e8 91 dd ff ff       	call   0x403784
4059f3:	5f                   	pop    %edi
4059f4:	c3                   	ret
4059f5:	8d 40 00             	lea    0x0(%eax),%eax
4059f8:	0f b6 c9             	movzbl %cl,%ecx
4059fb:	51                   	push   %ecx
4059fc:	6a 00                	push   $0x0
4059fe:	52                   	push   %edx
4059ff:	50                   	push   %eax
405a00:	e8 63 ee ff ff       	call   0x404868
405a05:	c3                   	ret
405a06:	8b c0                	mov    %eax,%eax
405a08:	55                   	push   %ebp
405a09:	8b ec                	mov    %esp,%ebp
405a0b:	81 c4 8c fe ff ff    	add    $0xfffffe8c,%esp
405a11:	53                   	push   %ebx
405a12:	56                   	push   %esi
405a13:	33 c9                	xor    %ecx,%ecx
405a15:	89 8d 8c fe ff ff    	mov    %ecx,-0x174(%ebp)
405a1b:	89 8d 90 fe ff ff    	mov    %ecx,-0x170(%ebp)
405a21:	89 8d 94 fe ff ff    	mov    %ecx,-0x16c(%ebp)
405a27:	89 4d fc             	mov    %ecx,-0x4(%ebp)
405a2a:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405a2d:	8b da                	mov    %edx,%ebx
405a2f:	8b f0                	mov    %eax,%esi
405a31:	33 c0                	xor    %eax,%eax
405a33:	55                   	push   %ebp
405a34:	68 5c 5b 40 00       	push   $0x405b5c
405a39:	64 ff 30             	push   %fs:(%eax)
405a3c:	64 89 20             	mov    %esp,%fs:(%eax)
405a3f:	8b c3                	mov    %ebx,%eax
405a41:	e8 4e dc ff ff       	call   0x403694
405a46:	8d 45 fc             	lea    -0x4(%ebp),%eax
405a49:	8b d6                	mov    %esi,%edx
405a4b:	e8 dc dc ff ff       	call   0x40372c
405a50:	e9 a2 00 00 00       	jmp    0x405af7
405a55:	8d 4d f8             	lea    -0x8(%ebp),%ecx
405a58:	8d 45 fc             	lea    -0x4(%ebp),%eax
405a5b:	ba 74 5b 40 00       	mov    $0x405b74,%edx
405a60:	e8 1b 7d 00 00       	call   0x40d780
405a65:	83 3b 00             	cmpl   $0x0,(%ebx)
405a68:	74 0c                	je     0x405a76
405a6a:	8b c3                	mov    %ebx,%eax
405a6c:	ba 74 5b 40 00       	mov    $0x405b74,%edx
405a71:	e8 86 de ff ff       	call   0x4038fc
405a76:	83 3b 00             	cmpl   $0x0,(%ebx)
405a79:	75 22                	jne    0x405a9d
405a7b:	8b 45 f8             	mov    -0x8(%ebp),%eax
405a7e:	e8 71 de ff ff       	call   0x4038f4
405a83:	83 f8 02             	cmp    $0x2,%eax
405a86:	75 15                	jne    0x405a9d
405a88:	8b 45 f8             	mov    -0x8(%ebp),%eax
405a8b:	80 78 01 3a          	cmpb   $0x3a,0x1(%eax)
405a8f:	75 0c                	jne    0x405a9d
405a91:	8b c3                	mov    %ebx,%eax
405a93:	8b 55 f8             	mov    -0x8(%ebp),%edx
405a96:	e8 4d dc ff ff       	call   0x4036e8
405a9b:	eb 5a                	jmp    0x405af7
405a9d:	68 00 02 00 00       	push   $0x200
405aa2:	68 60 01 00 00       	push   $0x160
405aa7:	8d 85 98 fe ff ff    	lea    -0x168(%ebp),%eax
405aad:	50                   	push   %eax
405aae:	6a 00                	push   $0x0
405ab0:	8b 13                	mov    (%ebx),%edx
405ab2:	8d 85 94 fe ff ff    	lea    -0x16c(%ebp),%eax
405ab8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405abb:	e8 80 de ff ff       	call   0x403940
405ac0:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
405ac6:	e8 29 e0 ff ff       	call   0x403af4
405acb:	50                   	push   %eax
405acc:	e8 4b f5 ff ff       	call   0x40501c
405ad1:	80 bd a4 fe ff ff 00 	cmpb   $0x0,-0x15c(%ebp)
405ad8:	74 13                	je     0x405aed
405ada:	8d 45 f8             	lea    -0x8(%ebp),%eax
405add:	8d 95 a4 fe ff ff    	lea    -0x15c(%ebp),%edx
405ae3:	b9 04 01 00 00       	mov    $0x104,%ecx
405ae8:	e8 ef dd ff ff       	call   0x4038dc
405aed:	8b c3                	mov    %ebx,%eax
405aef:	8b 55 f8             	mov    -0x8(%ebp),%edx
405af2:	e8 05 de ff ff       	call   0x4038fc
405af7:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
405afb:	0f 85 54 ff ff ff    	jne    0x405a55
405b01:	8d 95 90 fe ff ff    	lea    -0x170(%ebp),%edx
405b07:	8b 03                	mov    (%ebx),%eax
405b09:	e8 6e 7e 00 00       	call   0x40d97c
405b0e:	83 bd 90 fe ff ff 00 	cmpl   $0x0,-0x170(%ebp)
405b15:	75 1a                	jne    0x405b31
405b17:	8d 95 8c fe ff ff    	lea    -0x174(%ebp),%edx
405b1d:	8b c6                	mov    %esi,%eax
405b1f:	e8 58 7e 00 00       	call   0x40d97c
405b24:	8b 95 8c fe ff ff    	mov    -0x174(%ebp),%edx
405b2a:	8b c3                	mov    %ebx,%eax
405b2c:	e8 cb dd ff ff       	call   0x4038fc
405b31:	33 c0                	xor    %eax,%eax
405b33:	5a                   	pop    %edx
405b34:	59                   	pop    %ecx
405b35:	59                   	pop    %ecx
405b36:	64 89 10             	mov    %edx,%fs:(%eax)
405b39:	68 63 5b 40 00       	push   $0x405b63
405b3e:	8d 85 8c fe ff ff    	lea    -0x174(%ebp),%eax
405b44:	ba 03 00 00 00       	mov    $0x3,%edx
405b49:	e8 6a db ff ff       	call   0x4036b8
405b4e:	8d 45 f8             	lea    -0x8(%ebp),%eax
405b51:	ba 02 00 00 00       	mov    $0x2,%edx
405b56:	e8 5d db ff ff       	call   0x4036b8
405b5b:	c3                   	ret
405b5c:	e9 a7 d5 ff ff       	jmp    0x403108