456c9d:	8b 45 08             	mov    0x8(%ebp),%eax
456ca0:	2b 58 f4             	sub    -0xc(%eax),%ebx
456ca3:	f7 db                	neg    %ebx
456ca5:	eb 2e                	jmp    0x456cd5
456ca7:	8b 45 08             	mov    0x8(%ebp),%eax
456caa:	80 78 fa 00          	cmpb   $0x0,-0x6(%eax)
456cae:	75 25                	jne    0x456cd5
456cb0:	8b 45 08             	mov    0x8(%ebp),%eax
456cb3:	50                   	push   %eax
456cb4:	8b c6                	mov    %esi,%eax
456cb6:	e8 71 ff ff ff       	call   0x456c2c
456cbb:	59                   	pop    %ecx
456cbc:	84 c0                	test   %al,%al
456cbe:	74 15                	je     0x456cd5
456cc0:	0f b7 c7             	movzwl %di,%eax
456cc3:	50                   	push   %eax
456cc4:	a1 44 db 46 00       	mov    0x46db44,%eax
456cc9:	8b 00                	mov    (%eax),%eax
456ccb:	ff d0                	call   *%eax
456ccd:	8b d8                	mov    %eax,%ebx
456ccf:	8b 45 08             	mov    0x8(%ebp),%eax
456cd2:	2b 58 f4             	sub    -0xc(%eax),%ebx
456cd5:	8b c3                	mov    %ebx,%eax
456cd7:	5f                   	pop    %edi
456cd8:	5e                   	pop    %esi
456cd9:	5b                   	pop    %ebx
456cda:	5d                   	pop    %ebp
456cdb:	c3                   	ret
456cdc:	55                   	push   %ebp
456cdd:	8b ec                	mov    %esp,%ebp
456cdf:	83 c4 f4             	add    $0xfffffff4,%esp
456ce2:	53                   	push   %ebx
456ce3:	88 4d fa             	mov    %cl,-0x6(%ebp)
456ce6:	88 55 fb             	mov    %dl,-0x5(%ebp)
456ce9:	89 45 fc             	mov    %eax,-0x4(%ebp)
456cec:	6a f0                	push   $0xfffffff0
456cee:	8b 45 fc             	mov    -0x4(%ebp),%eax
456cf1:	8b 40 04             	mov    0x4(%eax),%eax
456cf4:	e8 f7 f3 fe ff       	call   0x4460f0
456cf9:	50                   	push   %eax
456cfa:	e8 ad f9 fa ff       	call   0x4066ac
456cff:	a9 00 00 84 00       	test   $0x840000,%eax
456d04:	0f 95 c0             	setne  %al
456d07:	83 e0 7f             	and    $0x7f,%eax
456d0a:	89 45 f4             	mov    %eax,-0xc(%ebp)
456d0d:	8b 45 fc             	mov    -0x4(%ebp),%eax
456d10:	80 78 18 01          	cmpb   $0x1,0x18(%eax)
456d14:	75 20                	jne    0x456d36
456d16:	55                   	push   %ebp
456d17:	66 ba 15 00          	mov    $0x15,%dx
456d1b:	33 c0                	xor    %eax,%eax
456d1d:	e8 3e ff ff ff       	call   0x456c60
456d22:	59                   	pop    %ecx
456d23:	8b d8                	mov    %eax,%ebx
456d25:	8b 45 fc             	mov    -0x4(%ebp),%eax
456d28:	8b 40 04             	mov    0x4(%eax),%eax
456d2b:	e8 20 86 fe ff       	call   0x43f350
456d30:	03 d8                	add    %eax,%ebx
456d32:	8b c3                	mov    %ebx,%eax
456d34:	eb 20                	jmp    0x456d56
456d36:	55                   	push   %ebp
456d37:	66 ba 14 00          	mov    $0x14,%dx
456d3b:	66 b8 01 00          	mov    $0x1,%ax
456d3f:	e8 1c ff ff ff       	call   0x456c60
456d44:	59                   	pop    %ecx
456d45:	8b d8                	mov    %eax,%ebx
456d47:	8b 45 fc             	mov    -0x4(%ebp),%eax
456d4a:	8b 40 04             	mov    0x4(%eax),%eax
456d4d:	e8 ba 85 fe ff       	call   0x43f30c
456d52:	03 d8                	add    %eax,%ebx
456d54:	8b c3                	mov    %ebx,%eax
456d56:	5b                   	pop    %ebx
456d57:	8b e5                	mov    %ebp,%esp
456d59:	5d                   	pop    %ebp
456d5a:	c3                   	ret
456d5b:	90                   	nop
456d5c:	53                   	push   %ebx
456d5d:	8b d8                	mov    %eax,%ebx
456d5f:	33 c9                	xor    %ecx,%ecx
456d61:	33 d2                	xor    %edx,%edx
456d63:	8b c3                	mov    %ebx,%eax
456d65:	e8 72 ff ff ff       	call   0x456cdc
456d6a:	3b 43 10             	cmp    0x10(%ebx),%eax
456d6d:	0f 9c c0             	setl   %al
456d70:	5b                   	pop    %ebx
456d71:	c3                   	ret
456d72:	8b c0                	mov    %eax,%eax
456d74:	55                   	push   %ebp
456d75:	8b ec                	mov    %esp,%ebp
456d77:	83 c4 e4             	add    $0xffffffe4,%esp
456d7a:	53                   	push   %ebx
456d7b:	56                   	push   %esi
456d7c:	c7 45 e4 1c 00 00 00 	movl   $0x1c,-0x1c(%ebp)
456d83:	c7 45 e8 10 00 00 00 	movl   $0x10,-0x18(%ebp)
456d8a:	33 db                	xor    %ebx,%ebx
456d8c:	8b 45 08             	mov    0x8(%ebp),%eax
456d8f:	8b 40 fc             	mov    -0x4(%eax),%eax
456d92:	80 78 18 01          	cmpb   $0x1,0x18(%eax)
456d96:	75 05                	jne    0x456d9d
456d98:	bb 01 00 00 00       	mov    $0x1,%ebx
456d9d:	8b 45 08             	mov    0x8(%ebp),%eax
456da0:	8b 70 f8             	mov    -0x8(%eax),%esi
456da3:	0f bf 76 06          	movswl 0x6(%esi),%esi
456da7:	8d 45 e4             	lea    -0x1c(%ebp),%eax
456daa:	50                   	push   %eax
456dab:	53                   	push   %ebx
456dac:	8b 45 08             	mov    0x8(%ebp),%eax
456daf:	8b 40 fc             	mov    -0x4(%eax),%eax
456db2:	8b 40 04             	mov    0x4(%eax),%eax
456db5:	e8 36 f3 fe ff       	call   0x4460f0
456dba:	50                   	push   %eax
456dbb:	a1 48 da 46 00       	mov    0x46da48,%eax
456dc0:	8b 00                	mov    (%eax),%eax
456dc2:	ff d0                	call   *%eax
456dc4:	85 c0                	test   %eax,%eax
456dc6:	74 03                	je     0x456dcb
456dc8:	8b 75 fc             	mov    -0x4(%ebp),%esi
456dcb:	8b c6                	mov    %esi,%eax
456dcd:	5e                   	pop    %esi
456dce:	5b                   	pop    %ebx
456dcf:	8b e5                	mov    %ebp,%esp
456dd1:	5d                   	pop    %ebp
456dd2:	c3                   	ret
456dd3:	90                   	nop
456dd4:	55                   	push   %ebp
456dd5:	8b ec                	mov    %esp,%ebp
456dd7:	83 c4 f0             	add    $0xfffffff0,%esp
456dda:	53                   	push   %ebx
456ddb:	56                   	push   %esi
456ddc:	57                   	push   %edi
456ddd:	89 55 f8             	mov    %edx,-0x8(%ebp)
456de0:	89 45 fc             	mov    %eax,-0x4(%ebp)
456de3:	8b 45 fc             	mov    -0x4(%ebp),%eax
456de6:	80 78 1f 00          	cmpb   $0x0,0x1f(%eax)
456dea:	0f 84 9e 01 00 00    	je     0x456f8e
456df0:	8b 45 f8             	mov    -0x8(%ebp),%eax
456df3:	66 8b 40 04          	mov    0x4(%eax),%ax
456df7:	66 83 e8 04          	sub    $0x4,%ax
456dfb:	0f 83 8d 01 00 00    	jae    0x456f8e
456e01:	8b 45 f8             	mov    -0x8(%ebp),%eax
456e04:	66 8b 40 04          	mov    0x4(%eax),%ax
456e08:	66 83 e8 02          	sub    $0x2,%ax
456e0c:	72 08                	jb     0x456e16
456e0e:	66 83 e8 02          	sub    $0x2,%ax
456e12:	72 23                	jb     0x456e37
456e14:	eb 47                	jmp    0x456e5d
456e16:	8b 45 fc             	mov    -0x4(%ebp),%eax
456e19:	0f b7 58 08          	movzwl 0x8(%eax),%ebx
456e1d:	8b c3                	mov    %ebx,%eax
456e1f:	8b 55 fc             	mov    -0x4(%ebp),%edx
456e22:	8b 4a 40             	mov    0x40(%edx),%ecx
456e25:	99                   	cltd
456e26:	f7 f9                	idiv   %ecx
456e28:	89 45 f4             	mov    %eax,-0xc(%ebp)
456e2b:	8b c3                	mov    %ebx,%eax
456e2d:	99                   	cltd
456e2e:	f7 f9                	idiv   %ecx
456e30:	89 55 f0             	mov    %edx,-0x10(%ebp)
456e33:	8b f1                	mov    %ecx,%esi
456e35:	eb 32                	jmp    0x456e69
456e37:	8b 45 fc             	mov    -0x4(%ebp),%eax
456e3a:	0f b7 40 0a          	movzwl 0xa(%eax),%eax
456e3e:	89 45 f4             	mov    %eax,-0xc(%ebp)
456e41:	8b 45 fc             	mov    -0x4(%ebp),%eax
456e44:	8b 48 3c             	mov    0x3c(%eax),%ecx
456e47:	8b 45 f4             	mov    -0xc(%ebp),%eax
456e4a:	99                   	cltd
456e4b:	f7 f9                	idiv   %ecx
456e4d:	89 55 f0             	mov    %edx,-0x10(%ebp)
456e50:	8b 45 f4             	mov    -0xc(%ebp),%eax
456e53:	99                   	cltd
456e54:	f7 f9                	idiv   %ecx
456e56:	89 45 f4             	mov    %eax,-0xc(%ebp)
456e59:	8b f1                	mov    %ecx,%esi
456e5b:	eb 0c                	jmp    0x456e69
456e5d:	33 f6                	xor    %esi,%esi
456e5f:	33 c0                	xor    %eax,%eax
456e61:	89 45 f4             	mov    %eax,-0xc(%ebp)
456e64:	33 c0                	xor    %eax,%eax
456e66:	89 45 f0             	mov    %eax,-0x10(%ebp)
456e69:	33 ff                	xor    %edi,%edi
456e6b:	85 f6                	test   %esi,%esi
456e6d:	0f 8e 9b 00 00 00    	jle    0x456f0e
456e73:	e8 b8 fa fa ff       	call   0x406930
456e78:	8b d8                	mov    %eax,%ebx
456e7a:	8b c3                	mov    %ebx,%eax
456e7c:	2b c7                	sub    %edi,%eax
456e7e:	8b 55 fc             	mov    -0x4(%ebp),%edx
456e81:	8b 52 20             	mov    0x20(%edx),%edx
456e84:	3b c2                	cmp    %edx,%eax
456e86:	7d 08                	jge    0x456e90
456e88:	2b d0                	sub    %eax,%edx
456e8a:	52                   	push   %edx
456e8b:	e8 58 5b fb ff       	call   0x40c9e8
456e90:	8b fb                	mov    %ebx,%edi
456e92:	8b 45 f8             	mov    -0x8(%ebp),%eax
456e95:	66 8b 40 04          	mov    0x4(%eax),%ax
456e99:	66 83 e8 01          	sub    $0x1,%ax
456e9d:	72 0e                	jb     0x456ead
456e9f:	74 1f                	je     0x456ec0
456ea1:	66 ff c8             	dec    %ax
456ea4:	74 2d                	je     0x456ed3
456ea6:	66 ff c8             	dec    %ax
456ea9:	74 3b                	je     0x456ee6
456eab:	eb 4a                	jmp    0x456ef7
456ead:	8b 45 fc             	mov    -0x4(%ebp),%eax
456eb0:	8b 50 0c             	mov    0xc(%eax),%edx
456eb3:	2b 55 f4             	sub    -0xc(%ebp),%edx
456eb6:	8b 45 fc             	mov    -0x4(%ebp),%eax
456eb9:	e8 86 02 00 00       	call   0x457144
456ebe:	eb 37                	jmp    0x456ef7
456ec0:	8b 45 fc             	mov    -0x4(%ebp),%eax
456ec3:	8b 50 0c             	mov    0xc(%eax),%edx
456ec6:	03 55 f4             	add    -0xc(%ebp),%edx
456ec9:	8b 45 fc             	mov    -0x4(%ebp),%eax
456ecc:	e8 73 02 00 00       	call   0x457144
456ed1:	eb 24                	jmp    0x456ef7
456ed3:	8b 45 fc             	mov    -0x4(%ebp),%eax
456ed6:	8b 50 0c             	mov    0xc(%eax),%edx
456ed9:	2b 55 f4             	sub    -0xc(%ebp),%edx
456edc:	8b 45 fc             	mov    -0x4(%ebp),%eax
456edf:	e8 60 02 00 00       	call   0x457144
456ee4:	eb 11                	jmp    0x456ef7
456ee6:	8b 45 fc             	mov    -0x4(%ebp),%eax
456ee9:	8b 50 0c             	mov    0xc(%eax),%edx
456eec:	03 55 f4             	add    -0xc(%ebp),%edx
456eef:	8b 45 fc             	mov    -0x4(%ebp),%eax
456ef2:	e8 4d 02 00 00       	call   0x457144
456ef7:	8b 45 fc             	mov    -0x4(%ebp),%eax
456efa:	8b 40 04             	mov    0x4(%eax),%eax
456efd:	8b 10                	mov    (%eax),%edx
456eff:	ff 92 88 00 00 00    	call   *0x88(%edx)
456f05:	4e                   	dec    %esi
456f06:	85 f6                	test   %esi,%esi
456f08:	0f 8f 65 ff ff ff    	jg     0x456e73
456f0e:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
456f12:	0f 8e aa 01 00 00    	jle    0x4570c2
456f18:	8b 45 f8             	mov    -0x8(%ebp),%eax
456f1b:	66 8b 40 04          	mov    0x4(%eax),%ax
456f1f:	66 83 e8 01          	sub    $0x1,%ax
456f23:	72 11                	jb     0x456f36
456f25:	74 25                	je     0x456f4c
456f27:	66 ff c8             	dec    %ax
456f2a:	74 36                	je     0x456f62
456f2c:	66 ff c8             	dec    %ax
456f2f:	74 47                	je     0x456f78
456f31:	e9 8c 01 00 00       	jmp    0x4570c2
456f36:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f39:	8b 50 0c             	mov    0xc(%eax),%edx
456f3c:	2b 55 f0             	sub    -0x10(%ebp),%edx
456f3f:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f42:	e8 fd 01 00 00       	call   0x457144
456f47:	e9 76 01 00 00       	jmp    0x4570c2
456f4c:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f4f:	8b 50 0c             	mov    0xc(%eax),%edx
456f52:	03 55 f0             	add    -0x10(%ebp),%edx
456f55:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f58:	e8 e7 01 00 00       	call   0x457144
456f5d:	e9 60 01 00 00       	jmp    0x4570c2
456f62:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f65:	8b 50 0c             	mov    0xc(%eax),%edx
456f68:	2b 55 f0             	sub    -0x10(%ebp),%edx
456f6b:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f6e:	e8 d1 01 00 00       	call   0x457144
456f73:	e9 4a 01 00 00       	jmp    0x4570c2
456f78:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f7b:	8b 50 0c             	mov    0xc(%eax),%edx
456f7e:	03 55 f0             	add    -0x10(%ebp),%edx
456f81:	8b 45 fc             	mov    -0x4(%ebp),%eax
456f84:	e8 bb 01 00 00       	call   0x457144
456f89:	e9 34 01 00 00       	jmp    0x4570c2
456f8e:	8b 45 f8             	mov    -0x8(%ebp),%eax
456f91:	0f bf 40 04          	movswl 0x4(%eax),%eax
456f95:	83 f8 07             	cmp    $0x7,%eax
456f98:	0f 87 24 01 00 00    	ja     0x4570c2
456f9e:	ff 24 85 a5 6f 45 00 	jmp    *0x456fa5(,%eax,4)
456fa5:	c5 6f 45             	lds    0x45(%edi),%ebp
456fa8:	00 e1                	add    %ah,%cl
456faa:	6f                   	outsl  %ds:(%esi),(%dx)
456fab:	45                   	inc    %ebp
456fac:	00 fd                	add    %bh,%ch
456fae:	6f                   	outsl  %ds:(%esi),(%dx)
456faf:	45                   	inc    %ebp
456fb0:	00 1e                	add    %bl,(%esi)
456fb2:	70 45                	jo     0x456ff9
456fb4:	00 3f                	add    %bh,(%edi)
456fb6:	70 45                	jo     0x456ffd
456fb8:	00 6f 70             	add    %ch,0x70(%edi)
456fbb:	45                   	inc    %ebp
456fbc:	00 a8 70 45 00 b4    	add    %ch,-0x4bffba90(%eax)
456fc2:	70 45                	jo     0x457009
456fc4:	00 8b 45 fc 8b 50    	add    %cl,0x508bfc45(%ebx)
456fca:	0c 8b                	or     $0x8b,%al
456fcc:	45                   	inc    %ebp
456fcd:	fc                   	cld
456fce:	0f b7 40 08          	movzwl 0x8(%eax),%eax
456fd2:	2b d0                	sub    %eax,%edx
456fd4:	8b 45 fc             	mov    -0x4(%ebp),%eax
456fd7:	e8 68 01 00 00       	call   0x457144
456fdc:	e9 e1 00 00 00       	jmp    0x4570c2
456fe1:	8b 45 fc             	mov    -0x4(%ebp),%eax
456fe4:	8b 50 0c             	mov    0xc(%eax),%edx
456fe7:	8b 45 fc             	mov    -0x4(%ebp),%eax
456fea:	0f b7 40 08          	movzwl 0x8(%eax),%eax
456fee:	03 d0                	add    %eax,%edx
456ff0:	8b 45 fc             	mov    -0x4(%ebp),%eax
456ff3:	e8 4c 01 00 00       	call   0x457144
456ff8:	e9 c5 00 00 00       	jmp    0x4570c2
456ffd:	33 c9                	xor    %ecx,%ecx
456fff:	b2 01                	mov    $0x1,%dl
457001:	8b 45 fc             	mov    -0x4(%ebp),%eax
457004:	e8 d3 fc ff ff       	call   0x456cdc
457009:	8b 55 fc             	mov    -0x4(%ebp),%edx
45700c:	8b 52 0c             	mov    0xc(%edx),%edx
45700f:	2b d0                	sub    %eax,%edx
457011:	8b 45 fc             	mov    -0x4(%ebp),%eax
457014:	e8 2b 01 00 00       	call   0x457144
457019:	e9 a4 00 00 00       	jmp    0x4570c2
45701e:	33 c9                	xor    %ecx,%ecx
457020:	b2 01                	mov    $0x1,%dl
457022:	8b 45 fc             	mov    -0x4(%ebp),%eax
457025:	e8 b2 fc ff ff       	call   0x456cdc
45702a:	8b d0                	mov    %eax,%edx
45702c:	8b 45 fc             	mov    -0x4(%ebp),%eax
45702f:	03 50 0c             	add    0xc(%eax),%edx
457032:	8b 45 fc             	mov    -0x4(%ebp),%eax
457035:	e8 0a 01 00 00       	call   0x457144
45703a:	e9 83 00 00 00       	jmp    0x4570c2
45703f:	8b 45 fc             	mov    -0x4(%ebp),%eax
457042:	81 78 14 ff 7f 00 00 	cmpl   $0x7fff,0x14(%eax)
457049:	7e 13                	jle    0x45705e
45704b:	55                   	push   %ebp
45704c:	e8 23 fd ff ff       	call   0x456d74
457051:	59                   	pop    %ecx
457052:	8b d0                	mov    %eax,%edx
457054:	8b 45 fc             	mov    -0x4(%ebp),%eax
457057:	e8 e8 00 00 00       	call   0x457144
45705c:	eb 64                	jmp    0x4570c2
45705e:	8b 55 f8             	mov    -0x8(%ebp),%edx
457061:	0f bf 52 06          	movswl 0x6(%edx),%edx
457065:	8b 45 fc             	mov    -0x4(%ebp),%eax
457068:	e8 d7 00 00 00       	call   0x457144
45706d:	eb 53                	jmp    0x4570c2
45706f:	8b 45 fc             	mov    -0x4(%ebp),%eax
457072:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
457076:	74 4a                	je     0x4570c2
457078:	8b 45 fc             	mov    -0x4(%ebp),%eax
45707b:	81 78 14 ff 7f 00 00 	cmpl   $0x7fff,0x14(%eax)
457082:	7e 13                	jle    0x457097
457084:	55                   	push   %ebp