456ae3:	53                   	push   %ebx
456ae4:	8b d8                	mov    %eax,%ebx
456ae6:	80 7b 57 00          	cmpb   $0x0,0x57(%ebx)
456aea:	74 4e                	je     0x456b3a
456aec:	8a 43 5b             	mov    0x5b(%ebx),%al
456aef:	2c 02                	sub    $0x2,%al
456af1:	72 04                	jb     0x456af7
456af3:	74 3c                	je     0x456b31
456af5:	eb 43                	jmp    0x456b3a
456af7:	80 7b 5b 01          	cmpb   $0x1,0x5b(%ebx)
456afb:	74 12                	je     0x456b0f
456afd:	a0 40 6b 45 00       	mov    0x456b40,%al
456b02:	22 43 61             	and    0x61(%ebx),%al
456b05:	8a 15 44 6b 45 00    	mov    0x456b44,%dl
456b0b:	3a d0                	cmp    %al,%dl
456b0d:	75 2b                	jne    0x456b3a
456b0f:	8b 45 08             	mov    0x8(%ebp),%eax
456b12:	8b 40 f8             	mov    -0x8(%eax),%eax
456b15:	8b 50 0c             	mov    0xc(%eax),%edx
456b18:	03 53 44             	add    0x44(%ebx),%edx
456b1b:	03 53 4c             	add    0x4c(%ebx),%edx
456b1e:	8b 45 08             	mov    0x8(%ebp),%eax
456b21:	8b 40 fc             	mov    -0x4(%eax),%eax
456b24:	e8 2f dc fc ff       	call   0x424758
456b29:	8b 55 08             	mov    0x8(%ebp),%edx
456b2c:	89 42 fc             	mov    %eax,-0x4(%edx)
456b2f:	eb 09                	jmp    0x456b3a
456b31:	8b 45 08             	mov    0x8(%ebp),%eax
456b34:	8b 53 4c             	mov    0x4c(%ebx),%edx
456b37:	01 50 f4             	add    %edx,-0xc(%eax)
456b3a:	5b                   	pop    %ebx
456b3b:	5d                   	pop    %ebp
456b3c:	c3                   	ret
456b3d:	00 00                	add    %al,(%eax)
456b3f:	00 0a                	add    %cl,(%edx)
456b41:	00 00                	add    %al,(%eax)
456b43:	00 02                	add    %al,(%edx)
456b45:	00 00                	add    %al,(%eax)
456b47:	00 55 8b             	add    %dl,-0x75(%ebp)
456b4a:	ec                   	in     (%dx),%al
456b4b:	83 c4 f4             	add    $0xfffffff4,%esp
456b4e:	53                   	push   %ebx
456b4f:	56                   	push   %esi
456b50:	89 45 f8             	mov    %eax,-0x8(%ebp)
456b53:	8b 45 f8             	mov    -0x8(%ebp),%eax
456b56:	8b 58 04             	mov    0x4(%eax),%ebx
456b59:	80 bb 10 02 00 00 00 	cmpb   $0x0,0x210(%ebx)
456b60:	0f 84 87 00 00 00    	je     0x456bed
456b66:	8b c3                	mov    %ebx,%eax
456b68:	8b 10                	mov    (%eax),%edx
456b6a:	ff 92 c8 00 00 00    	call   *0xc8(%edx)
456b70:	84 c0                	test   %al,%al
456b72:	74 6f                	je     0x456be3
456b74:	33 c0                	xor    %eax,%eax
456b76:	89 45 fc             	mov    %eax,-0x4(%ebp)
456b79:	33 c0                	xor    %eax,%eax
456b7b:	89 45 f4             	mov    %eax,-0xc(%ebp)
456b7e:	8b 45 f8             	mov    -0x8(%ebp),%eax
456b81:	8b 40 04             	mov    0x4(%eax),%eax
456b84:	e8 97 c2 fe ff       	call   0x442e20
456b89:	8b d8                	mov    %eax,%ebx
456b8b:	4b                   	dec    %ebx
456b8c:	85 db                	test   %ebx,%ebx
456b8e:	7c 3a                	jl     0x456bca
456b90:	43                   	inc    %ebx
456b91:	33 f6                	xor    %esi,%esi
456b93:	8b 45 f8             	mov    -0x8(%ebp),%eax
456b96:	80 78 18 00          	cmpb   $0x0,0x18(%eax)
456b9a:	75 16                	jne    0x456bb2
456b9c:	55                   	push   %ebp
456b9d:	8b 45 f8             	mov    -0x8(%ebp),%eax
456ba0:	8b 40 04             	mov    0x4(%eax),%eax
456ba3:	8b d6                	mov    %esi,%edx
456ba5:	e8 3a c2 fe ff       	call   0x442de4
456baa:	e8 c5 fe ff ff       	call   0x456a74
456baf:	59                   	pop    %ecx
456bb0:	eb 14                	jmp    0x456bc6
456bb2:	55                   	push   %ebp
456bb3:	8b 45 f8             	mov    -0x8(%ebp),%eax
456bb6:	8b 40 04             	mov    0x4(%eax),%eax
456bb9:	8b d6                	mov    %esi,%edx
456bbb:	e8 24 c2 fe ff       	call   0x442de4
456bc0:	e8 1b ff ff ff       	call   0x456ae0
456bc5:	59                   	pop    %ecx
456bc6:	46                   	inc    %esi
456bc7:	4b                   	dec    %ebx
456bc8:	75 c9                	jne    0x456b93
456bca:	8b 55 fc             	mov    -0x4(%ebp),%edx
456bcd:	03 55 f4             	add    -0xc(%ebp),%edx
456bd0:	8b 45 f8             	mov    -0x8(%ebp),%eax
456bd3:	0f b7 40 1a          	movzwl 0x1a(%eax),%eax
456bd7:	03 d0                	add    %eax,%edx
456bd9:	8b 45 f8             	mov    -0x8(%ebp),%eax
456bdc:	e8 9b 06 00 00       	call   0x45727c
456be1:	eb 0a                	jmp    0x456bed
456be3:	33 d2                	xor    %edx,%edx
456be5:	8b 45 f8             	mov    -0x8(%ebp),%eax
456be8:	e8 8f 06 00 00       	call   0x45727c
456bed:	5e                   	pop    %esi
456bee:	5b                   	pop    %ebx
456bef:	8b e5                	mov    %ebp,%esp
456bf1:	5d                   	pop    %ebp
456bf2:	c3                   	ret
456bf3:	90                   	nop
456bf4:	53                   	push   %ebx
456bf5:	56                   	push   %esi
456bf6:	8b d8                	mov    %eax,%ebx
456bf8:	be 00 00 10 00       	mov    $0x100000,%esi
456bfd:	80 7b 18 01          	cmpb   $0x1,0x18(%ebx)
456c01:	75 05                	jne    0x456c08
456c03:	be 00 00 20 00       	mov    $0x200000,%esi
456c08:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
456c0c:	74 14                	je     0x456c22
456c0e:	6a f0                	push   $0xfffffff0
456c10:	8b 43 04             	mov    0x4(%ebx),%eax
456c13:	e8 d8 f4 fe ff       	call   0x4460f0
456c18:	50                   	push   %eax
456c19:	e8 8e fa fa ff       	call   0x4066ac
456c1e:	85 f0                	test   %esi,%eax
456c20:	75 05                	jne    0x456c27
456c22:	33 c0                	xor    %eax,%eax
456c24:	5e                   	pop    %esi
456c25:	5b                   	pop    %ebx
456c26:	c3                   	ret
456c27:	b0 01                	mov    $0x1,%al
456c29:	5e                   	pop    %esi
456c2a:	5b                   	pop    %ebx
456c2b:	c3                   	ret
456c2c:	55                   	push   %ebp
456c2d:	8b ec                	mov    %esp,%ebp
456c2f:	53                   	push   %ebx
456c30:	bb 00 00 10 00       	mov    $0x100000,%ebx
456c35:	66 83 f8 01          	cmp    $0x1,%ax
456c39:	75 05                	jne    0x456c40
456c3b:	bb 00 00 20 00       	mov    $0x200000,%ebx
456c40:	6a f0                	push   $0xfffffff0
456c42:	8b 45 08             	mov    0x8(%ebp),%eax
456c45:	8b 40 fc             	mov    -0x4(%eax),%eax
456c48:	8b 40 04             	mov    0x4(%eax),%eax
456c4b:	e8 a0 f4 fe ff       	call   0x4460f0
456c50:	50                   	push   %eax
456c51:	e8 56 fa fa ff       	call   0x4066ac
456c56:	85 d8                	test   %ebx,%eax
456c58:	0f 95 c0             	setne  %al
456c5b:	5b                   	pop    %ebx
456c5c:	5d                   	pop    %ebp
456c5d:	c3                   	ret
456c5e:	8b c0                	mov    %eax,%eax
456c60:	55                   	push   %ebp
456c61:	8b ec                	mov    %esp,%ebp
456c63:	53                   	push   %ebx
456c64:	56                   	push   %esi
456c65:	57                   	push   %edi
456c66:	8b fa                	mov    %edx,%edi
456c68:	8b f0                	mov    %eax,%esi
456c6a:	33 db                	xor    %ebx,%ebx
456c6c:	8b 45 08             	mov    0x8(%ebp),%eax
456c6f:	80 78 fb 00          	cmpb   $0x0,-0x5(%eax)
456c73:	75 60                	jne    0x456cd5
456c75:	8b 45 08             	mov    0x8(%ebp),%eax
456c78:	80 78 fa 00          	cmpb   $0x0,-0x6(%eax)
456c7c:	74 29                	je     0x456ca7
456c7e:	8b 45 08             	mov    0x8(%ebp),%eax
456c81:	50                   	push   %eax
456c82:	8b c6                	mov    %esi,%eax
456c84:	e8 a3 ff ff ff       	call   0x456c2c
456c89:	59                   	pop    %ecx
456c8a:	84 c0                	test   %al,%al
456c8c:	75 19                	jne    0x456ca7
456c8e:	0f b7 c7             	movzwl %di,%eax
456c91:	50                   	push   %eax
456c92:	a1 44 db 46 00       	mov    0x46db44,%eax
456c97:	8b 00                	mov    (%eax),%eax
456c99:	ff d0                	call   *%eax
456c9b:	8b d8                	mov    %eax,%ebx
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