4088df:	89 55 ec             	mov    %edx,-0x14(%ebp)
4088e2:	8b 45 f4             	mov    -0xc(%ebp),%eax
4088e5:	33 d2                	xor    %edx,%edx
4088e7:	52                   	push   %edx
4088e8:	50                   	push   %eax
4088e9:	8b 45 e8             	mov    -0x18(%ebp),%eax
4088ec:	8b 55 ec             	mov    -0x14(%ebp),%edx
4088ef:	e8 30 c5 ff ff       	call   0x404e24
4088f4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4088f7:	89 01                	mov    %eax,(%ecx)
4088f9:	89 51 04             	mov    %edx,0x4(%ecx)
4088fc:	8b 45 f0             	mov    -0x10(%ebp),%eax
4088ff:	33 d2                	xor    %edx,%edx
408901:	52                   	push   %edx
408902:	50                   	push   %eax
408903:	8b 45 e8             	mov    -0x18(%ebp),%eax
408906:	8b 55 ec             	mov    -0x14(%ebp),%edx
408909:	e8 16 c5 ff ff       	call   0x404e24
40890e:	8b 4d 10             	mov    0x10(%ebp),%ecx
408911:	89 01                	mov    %eax,(%ecx)
408913:	89 51 04             	mov    %edx,0x4(%ecx)
408916:	8b c3                	mov    %ebx,%eax
408918:	5b                   	pop    %ebx
408919:	8b e5                	mov    %ebp,%esp
40891b:	5d                   	pop    %ebp
40891c:	c2 10 00             	ret    $0x10
40891f:	90                   	nop
408920:	89 fa                	mov    %edi,%edx
408922:	89 c7                	mov    %eax,%edi
408924:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
408929:	32 c0                	xor    %al,%al
40892b:	f2 ae                	repnz scas %es:(%edi),%al
40892d:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
408932:	29 c8                	sub    %ecx,%eax
408934:	89 d7                	mov    %edx,%edi
408936:	c3                   	ret
408937:	90                   	nop
408938:	89 fa                	mov    %edi,%edx
40893a:	89 c7                	mov    %eax,%edi
40893c:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
408941:	32 c0                	xor    %al,%al
408943:	f2 ae                	repnz scas %es:(%edi),%al
408945:	8d 47 ff             	lea    -0x1(%edi),%eax
408948:	89 d7                	mov    %edx,%edi
40894a:	c3                   	ret
40894b:	90                   	nop
40894c:	56                   	push   %esi
40894d:	8b f0                	mov    %eax,%esi
40894f:	92                   	xchg   %eax,%edx
408950:	e8 9b 9f ff ff       	call   0x4028f0
408955:	8b c6                	mov    %esi,%eax
408957:	5e                   	pop    %esi
408958:	c3                   	ret
408959:	8d 40 00             	lea    0x0(%eax),%eax
40895c:	57                   	push   %edi
40895d:	56                   	push   %esi
40895e:	89 c6                	mov    %eax,%esi
408960:	89 d7                	mov    %edx,%edi
408962:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
408967:	32 c0                	xor    %al,%al
408969:	f2 ae                	repnz scas %es:(%edi),%al
40896b:	f7 d1                	not    %ecx
40896d:	89 f7                	mov    %esi,%edi
40896f:	89 d6                	mov    %edx,%esi
408971:	89 ca                	mov    %ecx,%edx
408973:	89 f8                	mov    %edi,%eax
408975:	c1 e9 02             	shr    $0x2,%ecx
408978:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40897a:	89 d1                	mov    %edx,%ecx
40897c:	83 e1 03             	and    $0x3,%ecx
40897f:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
408981:	5e                   	pop    %esi
408982:	5f                   	pop    %edi
408983:	c3                   	ret
408984:	57                   	push   %edi
408985:	56                   	push   %esi
408986:	53                   	push   %ebx
408987:	89 c6                	mov    %eax,%esi
408989:	89 d7                	mov    %edx,%edi
40898b:	89 cb                	mov    %ecx,%ebx
40898d:	32 c0                	xor    %al,%al
40898f:	85 c9                	test   %ecx,%ecx
408991:	74 05                	je     0x408998
408993:	f2 ae                	repnz scas %es:(%edi),%al
408995:	75 01                	jne    0x408998
408997:	41                   	inc    %ecx
408998:	29 cb                	sub    %ecx,%ebx
40899a:	89 f7                	mov    %esi,%edi
40899c:	89 d6                	mov    %edx,%esi
40899e:	89 fa                	mov    %edi,%edx
4089a0:	89 d9                	mov    %ebx,%ecx
4089a2:	c1 e9 02             	shr    $0x2,%ecx
4089a5:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4089a7:	89 d9                	mov    %ebx,%ecx
4089a9:	83 e1 03             	and    $0x3,%ecx
4089ac:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4089ae:	aa                   	stos   %al,%es:(%edi)
4089af:	89 d0                	mov    %edx,%eax
4089b1:	5b                   	pop    %ebx
4089b2:	5e                   	pop    %esi
4089b3:	5f                   	pop    %edi
4089b4:	c3                   	ret
4089b5:	8d 40 00             	lea    0x0(%eax),%eax
4089b8:	53                   	push   %ebx
4089b9:	56                   	push   %esi
4089ba:	8b da                	mov    %edx,%ebx
4089bc:	8b f0                	mov    %eax,%esi
4089be:	8b c3                	mov    %ebx,%eax
4089c0:	e8 4b b9 ff ff       	call   0x404310
4089c5:	50                   	push   %eax
4089c6:	8b c3                	mov    %ebx,%eax
4089c8:	e8 43 bb ff ff       	call   0x404510
4089cd:	8b d0                	mov    %eax,%edx
4089cf:	8b c6                	mov    %esi,%eax
4089d1:	59                   	pop    %ecx
4089d2:	e8 ad ff ff ff       	call   0x408984
4089d7:	5e                   	pop    %esi
4089d8:	5b                   	pop    %ebx
4089d9:	c3                   	ret
4089da:	8b c0                	mov    %eax,%eax
4089dc:	53                   	push   %ebx
4089dd:	56                   	push   %esi
4089de:	57                   	push   %edi
4089df:	8b f9                	mov    %ecx,%edi
4089e1:	8b f2                	mov    %edx,%esi
4089e3:	8b d8                	mov    %eax,%ebx
4089e5:	8b c6                	mov    %esi,%eax
4089e7:	e8 24 bb ff ff       	call   0x404510
4089ec:	8b d0                	mov    %eax,%edx
4089ee:	8b cf                	mov    %edi,%ecx
4089f0:	8b c3                	mov    %ebx,%eax
4089f2:	e8 8d ff ff ff       	call   0x408984
4089f7:	5f                   	pop    %edi
4089f8:	5e                   	pop    %esi
4089f9:	5b                   	pop    %ebx
4089fa:	c3                   	ret
4089fb:	90                   	nop
4089fc:	57                   	push   %edi
4089fd:	56                   	push   %esi
4089fe:	89 d7                	mov    %edx,%edi
408a00:	89 c6                	mov    %eax,%esi
408a02:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
408a07:	31 c0                	xor    %eax,%eax
408a09:	f2 ae                	repnz scas %es:(%edi),%al
408a0b:	f7 d1                	not    %ecx
408a0d:	89 d7                	mov    %edx,%edi
408a0f:	31 d2                	xor    %edx,%edx
408a11:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
408a13:	8a 46 ff             	mov    -0x1(%esi),%al
408a16:	8a 57 ff             	mov    -0x1(%edi),%dl
408a19:	29 d0                	sub    %edx,%eax
408a1b:	5e                   	pop    %esi
408a1c:	5f                   	pop    %edi
408a1d:	c3                   	ret
408a1e:	8b c0                	mov    %eax,%eax
408a20:	57                   	push   %edi
408a21:	56                   	push   %esi
408a22:	89 d7                	mov    %edx,%edi
408a24:	89 c6                	mov    %eax,%esi
408a26:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
408a2b:	31 c0                	xor    %eax,%eax
408a2d:	f2 ae                	repnz scas %es:(%edi),%al
408a2f:	f7 d1                	not    %ecx
408a31:	89 d7                	mov    %edx,%edi
408a33:	31 d2                	xor    %edx,%edx
408a35:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
408a37:	74 21                	je     0x408a5a
408a39:	8a 46 ff             	mov    -0x1(%esi),%al
408a3c:	3c 61                	cmp    $0x61,%al
408a3e:	72 06                	jb     0x408a46
408a40:	3c 7a                	cmp    $0x7a,%al
408a42:	77 02                	ja     0x408a46
408a44:	2c 20                	sub    $0x20,%al
408a46:	8a 57 ff             	mov    -0x1(%edi),%dl
408a49:	80 fa 61             	cmp    $0x61,%dl
408a4c:	72 08                	jb     0x408a56
408a4e:	80 fa 7a             	cmp    $0x7a,%dl
408a51:	77 03                	ja     0x408a56
408a53:	80 ea 20             	sub    $0x20,%dl
408a56:	29 d0                	sub    %edx,%eax
408a58:	74 db                	je     0x408a35
408a5a:	5e                   	pop    %esi
408a5b:	5f                   	pop    %edi
408a5c:	c3                   	ret
408a5d:	8d 40 00             	lea    0x0(%eax),%eax
408a60:	57                   	push   %edi
408a61:	56                   	push   %esi
408a62:	53                   	push   %ebx
408a63:	89 d7                	mov    %edx,%edi
408a65:	89 c6                	mov    %eax,%esi
408a67:	89 cb                	mov    %ecx,%ebx
408a69:	31 c0                	xor    %eax,%eax
408a6b:	09 c9                	or     %ecx,%ecx
408a6d:	74 2f                	je     0x408a9e
408a6f:	f2 ae                	repnz scas %es:(%edi),%al
408a71:	29 cb                	sub    %ecx,%ebx
408a73:	89 d9                	mov    %ebx,%ecx
408a75:	89 d7                	mov    %edx,%edi
408a77:	31 d2                	xor    %edx,%edx
408a79:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
408a7b:	74 21                	je     0x408a9e
408a7d:	8a 46 ff             	mov    -0x1(%esi),%al
408a80:	3c 61                	cmp    $0x61,%al
408a82:	72 06                	jb     0x408a8a
408a84:	3c 7a                	cmp    $0x7a,%al
408a86:	77 02                	ja     0x408a8a
408a88:	2c 20                	sub    $0x20,%al
408a8a:	8a 57 ff             	mov    -0x1(%edi),%dl
408a8d:	80 fa 61             	cmp    $0x61,%dl
408a90:	72 08                	jb     0x408a9a
408a92:	80 fa 7a             	cmp    $0x7a,%dl
408a95:	77 03                	ja     0x408a9a
408a97:	80 ea 20             	sub    $0x20,%dl
408a9a:	29 d0                	sub    %edx,%eax
408a9c:	74 db                	je     0x408a79
408a9e:	5b                   	pop    %ebx
408a9f:	5e                   	pop    %esi
408aa0:	5f                   	pop    %edi
408aa1:	c3                   	ret
408aa2:	8b c0                	mov    %eax,%eax
408aa4:	eb 08                	jmp    0x408aae
408aa6:	84 c9                	test   %cl,%cl
408aa8:	75 03                	jne    0x408aad
408aaa:	33 c0                	xor    %eax,%eax
408aac:	c3                   	ret
408aad:	40                   	inc    %eax
408aae:	8a 08                	mov    (%eax),%cl
408ab0:	3a d1                	cmp    %cl,%dl
408ab2:	75 f2                	jne    0x408aa6
408ab4:	c3                   	ret
408ab5:	8d 40 00             	lea    0x0(%eax),%eax
408ab8:	57                   	push   %edi
408ab9:	56                   	push   %esi
408aba:	53                   	push   %ebx
408abb:	09 c0                	or     %eax,%eax
408abd:	74 44                	je     0x408b03
408abf:	09 d2                	or     %edx,%edx
408ac1:	74 40                	je     0x408b03
408ac3:	89 c3                	mov    %eax,%ebx
408ac5:	89 d7                	mov    %edx,%edi
408ac7:	32 c0                	xor    %al,%al
408ac9:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
408ace:	f2 ae                	repnz scas %es:(%edi),%al
408ad0:	f7 d1                	not    %ecx
408ad2:	49                   	dec    %ecx
408ad3:	74 2e                	je     0x408b03
408ad5:	89 ce                	mov    %ecx,%esi
408ad7:	89 df                	mov    %ebx,%edi
408ad9:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
408ade:	f2 ae                	repnz scas %es:(%edi),%al
408ae0:	f7 d1                	not    %ecx
408ae2:	29 f1                	sub    %esi,%ecx
408ae4:	76 1d                	jbe    0x408b03
408ae6:	89 df                	mov    %ebx,%edi
408ae8:	8d 5e ff             	lea    -0x1(%esi),%ebx
408aeb:	89 d6                	mov    %edx,%esi
408aed:	ac                   	lods   %ds:(%esi),%al
408aee:	f2 ae                	repnz scas %es:(%edi),%al
408af0:	75 11                	jne    0x408b03
408af2:	89 c8                	mov    %ecx,%eax
408af4:	57                   	push   %edi
408af5:	89 d9                	mov    %ebx,%ecx
408af7:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
408af9:	5f                   	pop    %edi
408afa:	89 c1                	mov    %eax,%ecx
408afc:	75 ed                	jne    0x408aeb
408afe:	8d 47 ff             	lea    -0x1(%edi),%eax
408b01:	eb 02                	jmp    0x408b05
408b03:	31 c0                	xor    %eax,%eax
408b05:	5b                   	pop    %ebx
408b06:	5e                   	pop    %esi
408b07:	5f                   	pop    %edi
408b08:	c3                   	ret
408b09:	8d 40 00             	lea    0x0(%eax),%eax
408b0c:	53                   	push   %ebx
408b0d:	56                   	push   %esi
408b0e:	8b f2                	mov    %edx,%esi
408b10:	8b d8                	mov    %eax,%ebx
408b12:	8b c6                	mov    %esi,%eax
408b14:	8b d3                	mov    %ebx,%edx
408b16:	e8 2d b7 ff ff       	call   0x404248
408b1b:	5e                   	pop    %esi
408b1c:	5b                   	pop    %ebx
408b1d:	c3                   	ret
408b1e:	8b c0                	mov    %eax,%eax
408b20:	53                   	push   %ebx
408b21:	8b d8                	mov    %eax,%ebx
408b23:	83 c3 04             	add    $0x4,%ebx
408b26:	8b c3                	mov    %ebx,%eax
408b28:	e8 c7 9b ff ff       	call   0x4026f4
408b2d:	89 18                	mov    %ebx,(%eax)
408b2f:	83 c0 04             	add    $0x4,%eax
408b32:	5b                   	pop    %ebx
408b33:	c3                   	ret
408b34:	83 e8 04             	sub    $0x4,%eax
408b37:	8b 00                	mov    (%eax),%eax
408b39:	83 e8 04             	sub    $0x4,%eax
408b3c:	c3                   	ret
408b3d:	8d 40 00             	lea    0x0(%eax),%eax
408b40:	53                   	push   %ebx
408b41:	56                   	push   %esi
408b42:	8b d8                	mov    %eax,%ebx
408b44:	85 db                	test   %ebx,%ebx
408b46:	75 05                	jne    0x408b4d
408b48:	33 c0                	xor    %eax,%eax
408b4a:	5e                   	pop    %esi
408b4b:	5b                   	pop    %ebx
408b4c:	c3                   	ret
408b4d:	8b c3                	mov    %ebx,%eax
408b4f:	e8 cc fd ff ff       	call   0x408920
408b54:	8b f0                	mov    %eax,%esi
408b56:	46                   	inc    %esi
408b57:	8b c6                	mov    %esi,%eax
408b59:	e8 c2 ff ff ff       	call   0x408b20
408b5e:	8b ce                	mov    %esi,%ecx
408b60:	8b d3                	mov    %ebx,%edx
408b62:	e8 e5 fd ff ff       	call   0x40894c
408b67:	5e                   	pop    %esi
408b68:	5b                   	pop    %ebx
408b69:	c3                   	ret
408b6a:	8b c0                	mov    %eax,%eax
408b6c:	85 c0                	test   %eax,%eax
408b6e:	74 0a                	je     0x408b7a
408b70:	83 e8 04             	sub    $0x4,%eax
408b73:	8b 10                	mov    (%eax),%edx
408b75:	e8 9a 9b ff ff       	call   0x402714
408b7a:	c3                   	ret
408b7b:	90                   	nop
408b7c:	53                   	push   %ebx
408b7d:	56                   	push   %esi
408b7e:	57                   	push   %edi
408b7f:	83 c4 d8             	add    $0xffffffd8,%esp
408b82:	8b d9                	mov    %ecx,%ebx
408b84:	8b f2                	mov    %edx,%esi
408b86:	8b f8                	mov    %eax,%edi
408b88:	83 fb 1f             	cmp    $0x1f,%ebx
408b8b:	76 05                	jbe    0x408b92
408b8d:	bb 1f 00 00 00       	mov    $0x1f,%ebx
408b92:	8b d3                	mov    %ebx,%edx
408b94:	4a                   	dec    %edx
408b95:	8b c6                	mov    %esi,%eax
408b97:	e8 30 39 00 00       	call   0x40c4cc
408b9c:	3c 01                	cmp    $0x1,%al
408b9e:	75 01                	jne    0x408ba1
408ba0:	4b                   	dec    %ebx
408ba1:	8b c4                	mov    %esp,%eax
408ba3:	8b cb                	mov    %ebx,%ecx
408ba5:	8b d6                	mov    %esi,%edx
408ba7:	e8 a0 fd ff ff       	call   0x40894c
408bac:	c6 04 1c 00          	movb   $0x0,(%esp,%ebx,1)