402c2e:	46                   	inc    %esi
402c2f:	00 d0                	add    %dl,%al
402c31:	72 12                	jb     0x402c45
402c33:	38 c8                	cmp    %cl,%al
402c35:	77 0e                	ja     0x402c45
402c37:	89 d1                	mov    %edx,%ecx
402c39:	8a 17                	mov    (%edi),%dl
402c3b:	88 07                	mov    %al,(%edi)
402c3d:	47                   	inc    %edi
402c3e:	01 d7                	add    %edx,%edi
402c40:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
402c42:	5f                   	pop    %edi
402c43:	5e                   	pop    %esi
402c44:	c3                   	ret
402c45:	88 c8                	mov    %cl,%al
402c47:	2a 0f                	sub    (%edi),%cl
402c49:	76 f7                	jbe    0x402c42
402c4b:	88 ca                	mov    %cl,%dl
402c4d:	eb e8                	jmp    0x402c37
402c4f:	c3                   	ret
402c50:	33 c9                	xor    %ecx,%ecx
402c52:	8a 0a                	mov    (%edx),%cl
402c54:	41                   	inc    %ecx
402c55:	92                   	xchg   %eax,%edx
402c56:	e8 19 fd ff ff       	call   0x402974
402c5b:	c3                   	ret
402c5c:	53                   	push   %ebx
402c5d:	8a 1a                	mov    (%edx),%bl
402c5f:	3a cb                	cmp    %bl,%cl
402c61:	76 02                	jbe    0x402c65
402c63:	8b cb                	mov    %ebx,%ecx
402c65:	88 08                	mov    %cl,(%eax)
402c67:	42                   	inc    %edx
402c68:	40                   	inc    %eax
402c69:	81 e1 ff 00 00 00    	and    $0xff,%ecx
402c6f:	92                   	xchg   %eax,%edx
402c70:	e8 ff fc ff ff       	call   0x402974
402c75:	5b                   	pop    %ebx
402c76:	c3                   	ret
402c77:	90                   	nop
402c78:	53                   	push   %ebx
402c79:	56                   	push   %esi
402c7a:	57                   	push   %edi
402c7b:	89 c6                	mov    %eax,%esi
402c7d:	89 d7                	mov    %edx,%edi
402c7f:	31 c0                	xor    %eax,%eax
402c81:	31 d2                	xor    %edx,%edx
402c83:	8a 06                	mov    (%esi),%al
402c85:	8a 17                	mov    (%edi),%dl
402c87:	46                   	inc    %esi
402c88:	47                   	inc    %edi
402c89:	29 d0                	sub    %edx,%eax
402c8b:	77 02                	ja     0x402c8f
402c8d:	01 c2                	add    %eax,%edx
402c8f:	52                   	push   %edx
402c90:	c1 ea 02             	shr    $0x2,%edx
402c93:	74 26                	je     0x402cbb
402c95:	8b 0e                	mov    (%esi),%ecx
402c97:	8b 1f                	mov    (%edi),%ebx
402c99:	39 d9                	cmp    %ebx,%ecx
402c9b:	75 44                	jne    0x402ce1
402c9d:	4a                   	dec    %edx
402c9e:	74 15                	je     0x402cb5
402ca0:	8b 4e 04             	mov    0x4(%esi),%ecx
402ca3:	8b 5f 04             	mov    0x4(%edi),%ebx
402ca6:	39 d9                	cmp    %ebx,%ecx
402ca8:	75 37                	jne    0x402ce1
402caa:	83 c6 08             	add    $0x8,%esi
402cad:	83 c7 08             	add    $0x8,%edi
402cb0:	4a                   	dec    %edx
402cb1:	75 e2                	jne    0x402c95
402cb3:	eb 06                	jmp    0x402cbb
402cb5:	83 c6 04             	add    $0x4,%esi
402cb8:	83 c7 04             	add    $0x4,%edi
402cbb:	5a                   	pop    %edx
402cbc:	83 e2 03             	and    $0x3,%edx
402cbf:	74 1c                	je     0x402cdd
402cc1:	8a 0e                	mov    (%esi),%cl
402cc3:	3a 0f                	cmp    (%edi),%cl
402cc5:	75 2f                	jne    0x402cf6
402cc7:	4a                   	dec    %edx
402cc8:	74 13                	je     0x402cdd
402cca:	8a 4e 01             	mov    0x1(%esi),%cl
402ccd:	3a 4f 01             	cmp    0x1(%edi),%cl
402cd0:	75 24                	jne    0x402cf6
402cd2:	4a                   	dec    %edx
402cd3:	74 08                	je     0x402cdd
402cd5:	8a 4e 02             	mov    0x2(%esi),%cl
402cd8:	3a 4f 02             	cmp    0x2(%edi),%cl
402cdb:	75 19                	jne    0x402cf6
402cdd:	01 c0                	add    %eax,%eax
402cdf:	eb 15                	jmp    0x402cf6
402ce1:	5a                   	pop    %edx
402ce2:	38 d9                	cmp    %bl,%cl
402ce4:	75 10                	jne    0x402cf6
402ce6:	38 fd                	cmp    %bh,%ch
402ce8:	75 0c                	jne    0x402cf6
402cea:	c1 e9 10             	shr    $0x10,%ecx
402ced:	c1 eb 10             	shr    $0x10,%ebx
402cf0:	38 d9                	cmp    %bl,%cl
402cf2:	75 02                	jne    0x402cf6
402cf4:	38 fd                	cmp    %bh,%ch
402cf6:	5f                   	pop    %edi
402cf7:	5e                   	pop    %esi
402cf8:	5b                   	pop    %ebx
402cf9:	c3                   	ret
402cfa:	8b c0                	mov    %eax,%eax
402cfc:	53                   	push   %ebx
402cfd:	56                   	push   %esi
402cfe:	51                   	push   %ecx
402cff:	89 ce                	mov    %ecx,%esi
402d01:	c1 ee 02             	shr    $0x2,%esi
402d04:	74 26                	je     0x402d2c
402d06:	8b 08                	mov    (%eax),%ecx
402d08:	8b 1a                	mov    (%edx),%ebx
402d0a:	39 d9                	cmp    %ebx,%ecx
402d0c:	75 45                	jne    0x402d53
402d0e:	4e                   	dec    %esi
402d0f:	74 15                	je     0x402d26
402d11:	8b 48 04             	mov    0x4(%eax),%ecx
402d14:	8b 5a 04             	mov    0x4(%edx),%ebx
402d17:	39 d9                	cmp    %ebx,%ecx
402d19:	75 38                	jne    0x402d53
402d1b:	83 c0 08             	add    $0x8,%eax
402d1e:	83 c2 08             	add    $0x8,%edx
402d21:	4e                   	dec    %esi
402d22:	75 e2                	jne    0x402d06
402d24:	eb 06                	jmp    0x402d2c
402d26:	83 c0 04             	add    $0x4,%eax
402d29:	83 c2 04             	add    $0x4,%edx
402d2c:	5e                   	pop    %esi
402d2d:	83 e6 03             	and    $0x3,%esi
402d30:	74 36                	je     0x402d68
402d32:	8a 08                	mov    (%eax),%cl
402d34:	3a 0a                	cmp    (%edx),%cl
402d36:	75 30                	jne    0x402d68
402d38:	4e                   	dec    %esi
402d39:	74 13                	je     0x402d4e
402d3b:	8a 48 01             	mov    0x1(%eax),%cl
402d3e:	3a 4a 01             	cmp    0x1(%edx),%cl
402d41:	75 25                	jne    0x402d68
402d43:	4e                   	dec    %esi
402d44:	74 08                	je     0x402d4e
402d46:	8a 48 02             	mov    0x2(%eax),%cl
402d49:	3a 4a 02             	cmp    0x2(%edx),%cl
402d4c:	75 1a                	jne    0x402d68
402d4e:	31 c0                	xor    %eax,%eax
402d50:	5e                   	pop    %esi
402d51:	5b                   	pop    %ebx
402d52:	c3                   	ret
402d53:	5e                   	pop    %esi
402d54:	38 d9                	cmp    %bl,%cl
402d56:	75 10                	jne    0x402d68
402d58:	38 fd                	cmp    %bh,%ch
402d5a:	75 0c                	jne    0x402d68
402d5c:	c1 e9 10             	shr    $0x10,%ecx
402d5f:	c1 eb 10             	shr    $0x10,%ebx
402d62:	38 d9                	cmp    %bl,%cl
402d64:	75 02                	jne    0x402d68
402d66:	38 fd                	cmp    %bh,%ch
402d68:	5e                   	pop    %esi
402d69:	5b                   	pop    %ebx
402d6a:	c3                   	ret
402d6b:	90                   	nop
402d6c:	57                   	push   %edi
402d6d:	89 c7                	mov    %eax,%edi
402d6f:	88 cd                	mov    %cl,%ch
402d71:	89 c8                	mov    %ecx,%eax
402d73:	c1 e0 10             	shl    $0x10,%eax
402d76:	66 89 c8             	mov    %cx,%ax
402d79:	89 d1                	mov    %edx,%ecx
402d7b:	c1 f9 02             	sar    $0x2,%ecx
402d7e:	78 09                	js     0x402d89
402d80:	f3 ab                	rep stos %eax,%es:(%edi)
402d82:	89 d1                	mov    %edx,%ecx
402d84:	83 e1 03             	and    $0x3,%ecx
402d87:	f3 aa                	rep stos %al,%es:(%edi)
402d89:	5f                   	pop    %edi
402d8a:	c3                   	ret
402d8b:	90                   	nop
402d8c:	53                   	push   %ebx
402d8d:	56                   	push   %esi
402d8e:	57                   	push   %edi
402d8f:	52                   	push   %edx
402d90:	83 ec 14             	sub    $0x14,%esp
402d93:	89 cf                	mov    %ecx,%edi
402d95:	89 c6                	mov    %eax,%esi
402d97:	99                   	cltd
402d98:	31 d0                	xor    %edx,%eax
402d9a:	29 d0                	sub    %edx,%eax
402d9c:	b9 0a 00 00 00       	mov    $0xa,%ecx
402da1:	31 db                	xor    %ebx,%ebx
402da3:	31 d2                	xor    %edx,%edx
402da5:	f7 f1                	div    %ecx
402da7:	83 c2 30             	add    $0x30,%edx
402daa:	88 14 1c             	mov    %dl,(%esp,%ebx,1)
402dad:	43                   	inc    %ebx
402dae:	85 c0                	test   %eax,%eax
402db0:	75 f1                	jne    0x402da3
402db2:	85 f6                	test   %esi,%esi
402db4:	7d 05                	jge    0x402dbb
402db6:	c6 04 1c 2d          	movb   $0x2d,(%esp,%ebx,1)
402dba:	43                   	inc    %ebx
402dbb:	88 1f                	mov    %bl,(%edi)
402dbd:	47                   	inc    %edi
402dbe:	8b 4c 24 14          	mov    0x14(%esp),%ecx
402dc2:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
402dc8:	7e 05                	jle    0x402dcf
402dca:	b9 ff 00 00 00       	mov    $0xff,%ecx
402dcf:	29 d9                	sub    %ebx,%ecx
402dd1:	7e 07                	jle    0x402dda
402dd3:	00 4f ff             	add    %cl,-0x1(%edi)
402dd6:	b0 20                	mov    $0x20,%al
402dd8:	f3 aa                	rep stos %al,%es:(%edi)
402dda:	8a 44 1c ff          	mov    -0x1(%esp,%ebx,1),%al
402dde:	88 07                	mov    %al,(%edi)
402de0:	47                   	inc    %edi
402de1:	4b                   	dec    %ebx
402de2:	75 f6                	jne    0x402dda
402de4:	83 c4 18             	add    $0x18,%esp
402de7:	5f                   	pop    %edi
402de8:	5e                   	pop    %esi
402de9:	5b                   	pop    %ebx
402dea:	c3                   	ret
402deb:	90                   	nop
402dec:	8b ca                	mov    %edx,%ecx
402dee:	33 d2                	xor    %edx,%edx
402df0:	e8 97 ff ff ff       	call   0x402d8c
402df5:	c3                   	ret
402df6:	8b c0                	mov    %eax,%eax
402df8:	53                   	push   %ebx
402df9:	56                   	push   %esi
402dfa:	57                   	push   %edi
402dfb:	89 c6                	mov    %eax,%esi
402dfd:	50                   	push   %eax
402dfe:	85 c0                	test   %eax,%eax
402e00:	74 6c                	je     0x402e6e
402e02:	31 c0                	xor    %eax,%eax
402e04:	31 db                	xor    %ebx,%ebx
402e06:	bf cc cc cc 0c       	mov    $0xccccccc,%edi
402e0b:	8a 1e                	mov    (%esi),%bl
402e0d:	46                   	inc    %esi
402e0e:	80 fb 20             	cmp    $0x20,%bl
402e11:	74 f8                	je     0x402e0b
402e13:	b5 00                	mov    $0x0,%ch
402e15:	80 fb 2d             	cmp    $0x2d,%bl
402e18:	74 62                	je     0x402e7c
402e1a:	80 fb 2b             	cmp    $0x2b,%bl
402e1d:	74 5f                	je     0x402e7e
402e1f:	80 fb 24             	cmp    $0x24,%bl
402e22:	74 5f                	je     0x402e83
402e24:	80 fb 78             	cmp    $0x78,%bl
402e27:	74 5a                	je     0x402e83
402e29:	80 fb 58             	cmp    $0x58,%bl
402e2c:	74 55                	je     0x402e83
402e2e:	80 fb 30             	cmp    $0x30,%bl
402e31:	75 13                	jne    0x402e46
402e33:	8a 1e                	mov    (%esi),%bl
402e35:	46                   	inc    %esi
402e36:	80 fb 78             	cmp    $0x78,%bl
402e39:	74 48                	je     0x402e83
402e3b:	80 fb 58             	cmp    $0x58,%bl
402e3e:	74 43                	je     0x402e83
402e40:	84 db                	test   %bl,%bl
402e42:	74 20                	je     0x402e64
402e44:	eb 04                	jmp    0x402e4a
402e46:	84 db                	test   %bl,%bl
402e48:	74 2d                	je     0x402e77
402e4a:	80 eb 30             	sub    $0x30,%bl
402e4d:	80 fb 09             	cmp    $0x9,%bl
402e50:	77 25                	ja     0x402e77
402e52:	39 f8                	cmp    %edi,%eax
402e54:	77 21                	ja     0x402e77
402e56:	8d 04 80             	lea    (%eax,%eax,4),%eax
402e59:	01 c0                	add    %eax,%eax
402e5b:	01 d8                	add    %ebx,%eax
402e5d:	8a 1e                	mov    (%esi),%bl
402e5f:	46                   	inc    %esi
402e60:	84 db                	test   %bl,%bl
402e62:	75 e6                	jne    0x402e4a
402e64:	fe cd                	dec    %ch
402e66:	74 09                	je     0x402e71
402e68:	85 c0                	test   %eax,%eax
402e6a:	7d 54                	jge    0x402ec0
402e6c:	eb 09                	jmp    0x402e77
402e6e:	46                   	inc    %esi
402e6f:	eb 06                	jmp    0x402e77
402e71:	f7 d8                	neg    %eax
402e73:	7e 4b                	jle    0x402ec0
402e75:	78 49                	js     0x402ec0
402e77:	5b                   	pop    %ebx
402e78:	29 de                	sub    %ebx,%esi
402e7a:	eb 47                	jmp    0x402ec3
402e7c:	fe c5                	inc    %ch
402e7e:	8a 1e                	mov    (%esi),%bl
402e80:	46                   	inc    %esi
402e81:	eb 9c                	jmp    0x402e1f
402e83:	bf ff ff ff 0f       	mov    $0xfffffff,%edi
402e88:	8a 1e                	mov    (%esi),%bl
402e8a:	46                   	inc    %esi
402e8b:	84 db                	test   %bl,%bl
402e8d:	74 df                	je     0x402e6e
402e8f:	80 fb 61             	cmp    $0x61,%bl
402e92:	72 03                	jb     0x402e97
402e94:	80 eb 20             	sub    $0x20,%bl
402e97:	80 eb 30             	sub    $0x30,%bl
402e9a:	80 fb 09             	cmp    $0x9,%bl
402e9d:	76 0b                	jbe    0x402eaa
402e9f:	80 eb 11             	sub    $0x11,%bl
402ea2:	80 fb 05             	cmp    $0x5,%bl
402ea5:	77 d0                	ja     0x402e77
402ea7:	80 c3 0a             	add    $0xa,%bl
402eaa:	39 f8                	cmp    %edi,%eax
402eac:	77 c9                	ja     0x402e77
402eae:	c1 e0 04             	shl    $0x4,%eax
402eb1:	01 d8                	add    %ebx,%eax
402eb3:	8a 1e                	mov    (%esi),%bl
402eb5:	46                   	inc    %esi
402eb6:	84 db                	test   %bl,%bl
402eb8:	75 d5                	jne    0x402e8f
402eba:	fe cd                	dec    %ch
402ebc:	75 02                	jne    0x402ec0
402ebe:	f7 d8                	neg    %eax
402ec0:	59                   	pop    %ecx
402ec1:	31 f6                	xor    %esi,%esi
402ec3:	89 32                	mov    %esi,(%edx)
402ec5:	5f                   	pop    %edi
402ec6:	5e                   	pop    %esi
402ec7:	5b                   	pop    %ebx
402ec8:	c3                   	ret
402ec9:	8d 40 00             	lea    0x0(%eax),%eax
402ecc:	b9 ff 00 00 00       	mov    $0xff,%ecx
402ed1:	e8 02 00 00 00       	call   0x402ed8
402ed6:	c3                   	ret
402ed7:	90                   	nop
402ed8:	53                   	push   %ebx
402ed9:	50                   	push   %eax
402eda:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
402ee0:	76 05                	jbe    0x402ee7
402ee2:	b9 ff 00 00 00       	mov    $0xff,%ecx
402ee7:	8a 1a                	mov    (%edx),%bl
402ee9:	42                   	inc    %edx
402eea:	84 db                	test   %bl,%bl
402eec:	74 06                	je     0x402ef4
402eee:	40                   	inc    %eax
402eef:	88 18                	mov    %bl,(%eax)
402ef1:	49                   	dec    %ecx
402ef2:	75 f3                	jne    0x402ee7
402ef4:	5a                   	pop    %edx
402ef5:	29 d0                	sub    %edx,%eax